<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HTMList.com, A Web Development Blog by Synapse StudiosReviews   </title>
	<atom:link href="http://www.htmlist.com/category/reviews/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htmlist.com</link>
	<description>A Web Development Blog by Synapse Studios</description>
	<lastBuildDate>Thu, 19 Jan 2012 09:30:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Olark: Live Chat Made Amazing (and Simple!)</title>
		<link>http://www.htmlist.com/cool-stuff/olark-live-chat-made-amazing-and-simple/</link>
		<comments>http://www.htmlist.com/cool-stuff/olark-live-chat-made-amazing-and-simple/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 09:30:04 +0000</pubDate>
		<dc:creator>Chris Cardinal</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[olark]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=647</guid>
		<description><![CDATA[Whilst in the throes of exploring my favorite airfare booking site (Hipmunk), I noticed their live chat tool looked a little&#8230; different. It was bouncy, fun, and unassuming. Turns out, they use Olark: by far the most impressive live chat tool I&#8217;ve ever had the pleasure of dealing with. Olark is absolutely simple to integrate: a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.olark.com/?r=xbmkh5ky"><img class="alignleft" title="Olark Logo" src="http://www.olark.com/images/sky/common/logo-medium-3d.png" alt="Olark Logo" width="207" height="134" /></a>Whilst in the throes of exploring my favorite airfare booking site (<a title="Hipmunk" href="http://www.hipmunk.com">Hipmunk</a>), I noticed their live chat tool looked a little&#8230; different. It was bouncy, fun, and unassuming. Turns out, they use <strong><a title="Olark" href="http://www.olark.com/?r=xbmkh5ky">Olark</a></strong>: by far the most impressive live chat tool I&#8217;ve ever had the pleasure of dealing with.</p>
<p>Olark is absolutely simple to integrate: a single snippet of JavaScript. But it offers a great deal of power: you can push a logged in user&#8217;s name and email address through the chat, and set their IP address, browser build, and other details as that user&#8217;s &#8220;status&#8221; when chatting. (You can even have the chat bot message you that information at the beginning of the session.)</p>
<p>The fun doesn&#8217;t end there: Olark allows you to actually redirect a user to a different URL, including external addresses, all while maintaining persistent chat. This is absolutely fantastic, as you can literally direct a user to the page they need while still helping them out. Olark reports what page they&#8217;re currently looking at, and their new co-browsing feature allows you to literally see what your users see, scroll the page for them, and circle certain elements.</p>
<p>This level of interaction is fantastic: it can help clinch a waffling pre-sale customer who has a small question but isn&#8217;t able to find an answer and doesn&#8217;t want to go through the trouble of filling out a contact form. Or it can assist with the on-boarding process: new users are the most likely to encounter experience-ruining burrs, problems, small barriers to entry that can be resolved with a simple chat.</p>
<p>The ability to transfer conversations, native Jabber/XMPP utilization (such that I can use Trillian for managing my chats), and a robust API round out the core features of a very compelling product. Olark is free for up to 20 conversations a month and one operator, but the clients we&#8217;ve signed up on Olark needed the Gold plan, since it&#8217;s the lowest plan that supports SSL.</p>
<p>Check out Olark for pre-sale potential customer engagement, and post-sale onboarding/getting started assistance. Reducing friction for new and potential users is the surest way to build a loyal following or make a sale.</p>
<p><a title="Olark live chat" href="http://www.olark.com/?r=xbmkh5ky">Olark</a></p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=647&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/cool-stuff/olark-live-chat-made-amazing-and-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cut Through The Twitter Crap with Filttr: A Quick Review</title>
		<link>http://www.htmlist.com/cool-stuff/cut-through-the-twitter-crap-with-filttr-quick-review/</link>
		<comments>http://www.htmlist.com/cool-stuff/cut-through-the-twitter-crap-with-filttr-quick-review/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 22:09:11 +0000</pubDate>
		<dc:creator>Chris Cardinal</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[aggregators]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[filttr]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitter plugins]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=421</guid>
		<description><![CDATA[We take a quick look at Twitter aggregator Filttr.com.]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-422 alignleft" title="app-shot" src="http://www.htmlist.com/wordpress/wp-content/uploads/2009/01/app-shot-238x300.png" alt="app-shot" width="238" height="300" />Just today I was bemoaning the lack of any capacity to filter Tweets from people I want to follow&#8230; but don&#8217;t want to hear that much from. There are plenty of people I follow because they&#8217;re occasionally interesting and I like to keep a peripheral awareness of things in their communities&#8230; but some of these people tend to tweet a LOT. Facebook offers you a way to customize your feeds, both by specifying which individuals you want to hear more or less from, and which types of updates you want to hear about.</p>
<p>The problem with following these people is that, while they keep things interesting, they sometimes drone out the people I care most about.</p>
<p>Enter <a title="Filttr.com" href="http://filttr.com/home/">Filttr</a>. Filttr is a clever tool that grabs your twitter timeline (as your home page is called) and applies some algorithmic magic (the best sort of magic, we always say) to show you tweets it thinks you&#8217;ll be more interested in.</p>
<p>Filttr offers you the ability to add whitelist and blacklist keywords, which I don&#8217;t find particularly useful, since &#8220;blacklisting&#8221; any particular word or phrase is a bit strange to me (since, without context, how do you know if you&#8217;re really not interested, unless you just want to &#8220;mute&#8221; a particular topic for a bit) but it also offers the ability to rank individuals. So I&#8217;ve gone ahead and put a few of my friends on &#8220;less&#8221; and a couple others on &#8220;more&#8221; and Filtrr&#8217;s timeline is showing me a compressed version of the regular timeline, without all the crap. You can still view hidden tweets, but they&#8217;re compressed and cleaned up.</p>
<p>I&#8217;ve already suggested that they do a better job aggregating filtered tweets, since they still take up one &#8220;row&#8221; worth of space, but they&#8217;re on the right track here. Further, Filttr threads replies when a friend is replying to someone who had tweeted at them. This is a REALLY nice feature because it gives you context right there. I don&#8217;t particularly mind following through an interesting looking reply to see the other side of a conversation, but this is just a nice feature.</p>
<p>You can also establish groups of friends, much like you can do on Facebook, to only see a timeline of a certain subset of the users you follow. This is another useful feature that I&#8217;m glad someone else has bolted on to Twitter.</p>
<p>Filttr also offers a free Adobe AIR application to show the feed on your desktop. The app is new and a bit buggy: Scrolling is slow and can spike CPU usage, the app can&#8217;t be properly minimized to the system tray, and there are absolutely no options which they say was related to their effort to keep things as lightweight as possible. The app <em>is</em> lightweight, but I&#8217;d like to be able to configure a few things, and the lack of even a minimize button is a little strange to me.</p>
<p>When someone builds what is, to me, such an obvious feature for Twitter, it always piques my interest. There&#8217;s essentially nothing stopping Twitter from offering the exact same featureset. In fact, I&#8217;d expect them to add at least a few of these features. This brings about the argument of the platform versus the provider—many people wondered what would happen with Facebook&#8217;s third-party developers, since Facebook&#8217;s applications sometimes had direct competition in third-party apps. Thus far, they&#8217;ve been able to co-exist, but a third-party app will always be at a disadvantage if the platform decides to start delivering the same applications that the provider is offering. I&#8217;ll save the rest of my arguments on that for another post.</p>
<p>For now, try <a title="Filttr.com" href="http://www.filttr.com/">Filttr</a>. It requires you to change the way you do things a bit, but there are some compelling reasons to give it a shot. What do you think?</p>
<p><a title="Filttr.com" href="http://www.filttr.com/">Filttr</a> (<a title="Filttr.com Blog" href="http://blog.filttr.com/2009/01/24/3-2-1-beep/">Blog Post</a>) via <a title="TechCrunch Filttr review" href="http://www.techcrunch.com/2009/01/28/too-much-noise-on-twitter-filttr-will-tell-you-whats-worth-reading/">Techcrunch<br />
</a></p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=421&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/cool-stuff/cut-through-the-twitter-crap-with-filttr-quick-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lunascape Multi-Rendering-Engine Browser Review: Verdict—Three Trick Pony</title>
		<link>http://www.htmlist.com/development/lunascape-multi-rendering-engine-browser-review-verdict%e2%80%94three-trick-pony/</link>
		<comments>http://www.htmlist.com/development/lunascape-multi-rendering-engine-browser-review-verdict%e2%80%94three-trick-pony/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 00:08:26 +0000</pubDate>
		<dc:creator>Chris Cardinal</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gecko]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[lunascape]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[rendering engines]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[trident]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=391</guid>
		<description><![CDATA[We take a look at Lunascape: a new browser that allows users to switch their rendering engine on the fly.]]></description>
			<content:encoded><![CDATA[<p><a title="Lunascape" href="http://www.lunascape.tv/"><img class="alignnone size-full wp-image-392" title="lunascape" src="http://www.htmlist.com/wordpress/wp-content/uploads/2008/11/lunascape.png" alt="lunascape" width="392" height="182" align="left" /></a> <a title="Lunascape" href="http://www.lunascape.tv/">Lunascape</a> is a new browser that allows you to switch rendering engines on-the-fly. Internet Explorer, Firefox, and Google Chrome/Apple Safari all use different rendering engines and JavaScript engines to display your pretty web pages to you. This is the root cause of browser incompatibility issues—different engines interpret things (like web &#8220;standards&#8221;) differently and so you see pages display differently. This is the bane of a lot of developers, as we have to fight the many, many quirks that abound when we use certain parts of the DOM or certain JavaScript or CSS tricks. For a lot more on these issues, <a title="QuirksMode" href="http://www.quirksmode.org/">QuirksMode</a> is a great resource.</p>
<p>Lunascape presents an interesting product, though one that&#8217;s only in the Alpha stage, so I&#8217;m sure we&#8217;ll be seeing a lot of things evolve from them. As a developer, I have Firefox, Internet Explorer and Google Chrome all installed and at the ready. It&#8217;s pretty simple, though a bit annoying, to boot up IE to make sure a page renders properly, even though we develop under Firefox.  (There are FF extensions that make this a simple right-click affair, however.) Lunascape simplifies the process a bit by allowing you to switch a tab&#8217;s rendering engine just with a right-click. And it works, for sure.</p>
<p>But I begin to question the utility of a browser that lets me switch rendering engines, but provides me with very few debugging tools or console access. We develop under Firefox because of things like the <a href="https://addons.mozilla.org/firefox/addon/60">Web Developer</a> extension and <a title="Firebug" href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a>. These superb debugging tools let us delve into the DOM and help us identify our many AJAX transgressions. Without these tools, though, the workflow isn&#8217;t improved enough to justify a switch from just running the browsers separately.</p>
<p>Now, Lunascape currently supports IE extensions, so perhaps Firefox extension support is on the horizon&#8230; but this seems like something that could be very difficult to accomplish, given that <a title="XUL" href="http://en.wikipedia.org/wiki/XUL">XUL</a> (which powers Firefox and the window chrome surrounding it) is a part of Gecko that exists a bit existentially to the site being rendered: Though, if Lunascape itself is XUL-powered, then that would help considerably.</p>
<p>Even still, the appeal just isn&#8217;t there for me. Lunascape clearly is betting on its three-trick-pony concept, but that only appeals to developers who know what a rendering engine is. Firefox is a considerably better browsing option for regular end users, so they&#8217;re left needing to improve the value proposition for developers and to give us a reason to switch. And they haven&#8217;t done that yet. One way they could start is by offering advanced debugging tools, better if they&#8217;re rendering engine-specific. Another might be to allow for regression testing in IE: Allowing us to render in older IE engines, like how <a title="IETester" href="http://www.my-debugbar.com/wiki/IETester/HomePage">IETester</a> works.</p>
<p>For now, I plan on leaving this in the Alpha bin it came in and working with FF 3, Chrome/Safari and IE, side-by-side.</p>
<p>See also: <a href="http://www.techcrunch.com/2008/11/25/lunascape-browser-firefox-internet-explorer-and-chrome-all-in-one/trackback/">TechCrunch</a> &amp; <a href="http://lifehacker.com/5097777/lunascape-is-firefox-chrome-and-internet-explorer-rolled-into-one">Lifehacker</a>&#8216;s coverage. (The latter, whose screenshot we borrowed.)</p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=391&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/development/lunascape-multi-rendering-engine-browser-review-verdict%e2%80%94three-trick-pony/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Magento eCommerce Review: Platform Perils and Impressions, Three Months In</title>
		<link>http://www.htmlist.com/development/magento-ecommerce-review-platform-perils-and-impressions-three-months-in/</link>
		<comments>http://www.htmlist.com/development/magento-ecommerce-review-platform-perils-and-impressions-three-months-in/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 07:57:53 +0000</pubDate>
		<dc:creator>Brandon Ching</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[EAV]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=279</guid>
		<description><![CDATA[Three months into using the Magento e-commerce platform, we take a look at where it can improve and the issues we've had with it.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been about three months since I broke into <a href="http://www.magentocommerce.com/" target="_blank">Magento</a> for my first project here at <a href="http://www.synapsestudios.com/">Synapse Studios</a> so I thought I&#8217;d give my impression on the shopping cart tool having gotten to know it a bit better.</p>
<p>Obviously a free, full-featured, shopping cart and e-commerce solution is great concept. I mean, really, one can&#8217;t bitch too much about something that is free (notwithstanding, say, venereal diseases or OScommerce&#8230;) Magento&#8217;s feature list is comprehensive: coupons, specials, multiple checkout and shipping options, tiered pricing, layered navigation, etc. Unfortunately, when you are neck-deep into anything, you get a better sense of the minor and major flaws lurking just under the rosy surface. Take a look after the jump at some of its more vexing problems.</p>
<p><span id="more-279"></span></p>
<ol>
<li>By far, the most annoying thing about Magento is its complexity. If the default installation suits your needs, then Magento is perfect. However, if you need to modify anything (and I mean pretty well <em>anything</em>) like adding new functionality (modules), changing the layout, or creating a custom results (any type of result: users, products, etc) page, then you can expect to spend many, many, <em>many</em> hours digging through the code and fighting the schema. The XML layout method is confusing as hell and custom module creation is, well, good luck.</li>
<li>The <a href="http://en.wikipedia.org/wiki/Entity-Attribute-Value_model" target="_blank">EAV</a> data model is great. It&#8217;s fast and makes sense when you have many, many possible attributes to assign to a specific object. However, trying to make database-level changes to all or a subset of products is quite a pain in the ass. This is not so much a knock on Magento since the model <em>does</em> make sense given the options to add arbitrary attributes and such. I suppose this goes back to Magento&#8217;s lack of a well-documented database schema (or decent <a title="code documentation" href="http://www.htmlist.com/projects/the-bane-of-documentation/">documentation in general</a>).</li>
<li>Performance is horrible. Changing a single attribute to a product in the backend takes an average of about a minute to perform, on an otherwise responsive server. AJAX or not, that is entirely unacceptable. The frontend, despite being cached, is not all that much better. I mean, yeah, you&#8217;re talking about a lot of features here but at the expense of performance to an annoying degree. The <a href="http://www.magentocommerce.com/download/release_notes#Release%20Notes%20-%20Magento%201.1.1%20(July%2024,%202008)" target="_blank">latest version</a> is supposed to address certain performance issues, so we&#8217;ll keep you posted if that situation changes.</li>
<li>Why slack on viewing images? When viewing a product with multiple images, why the hell does the image open a new popup window? They&#8217;ve built an entire application utilizing AJAX but they can&#8217;t implement a simple image swapping feature for product details?</li>
<li>While on the topic of images, since Magento&#8217;s product entry method requires that you enter each product type as a different simple product, why doesn&#8217;t the parent configurable product inherit its child images? For instance, if you had a shirt in three different colors, you might think that by entering the red shirt image in the red shirt simple product that it would automatically show when viewing the parent configurable product. NO! Instead, you have to add all three color shirt images into the parent configurable product. Seems like a serious break of the inventory/product entry methodology that Magento flaunts.</li>
</ol>
<p>Still, aside from a seriously steep learning curve, lack of meaningful image features, and poor performance, Magento is a very decent product. Again, for free, you really can&#8217;t beat it. And it&#8217;s leaps and bounds ahead of OScommerce. We&#8217;ve just found it to be a very heavy solution to a complex problem. That&#8217;s not always a bad thing, but certain problems can make working with it to customize it rather a nightmare.</p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=279&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/development/magento-ecommerce-review-platform-perils-and-impressions-three-months-in/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Web Analytics/Hit Tracking Done Right With Clicky</title>
		<link>http://www.htmlist.com/cool-stuff/web-analytics-hit-tracking-done-right-with-clicky/</link>
		<comments>http://www.htmlist.com/cool-stuff/web-analytics-hit-tracking-done-right-with-clicky/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 20:42:34 +0000</pubDate>
		<dc:creator>Chris Cardinal</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[clicky]]></category>
		<category><![CDATA[get clicky]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[hit tracking]]></category>
		<category><![CDATA[visitor demographics]]></category>
		<category><![CDATA[web analytics]]></category>
		<category><![CDATA[web statistics]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=89</guid>
		<description><![CDATA[We take a quick look at an impressive web analytics tool we've been making use of recently: <a href="http://getclicky.com/31692">Clicky.</a>.]]></description>
			<content:encoded><![CDATA[<p><a title="Clicky Web Analytics" href="http://getclicky.com/31692"><img style="padding-right: 5px;" src="http://static.getclicky.com/media/logo3.gif" border="0" alt="Get Clicky!" align="left" /></a> We&#8217;ve been using the popular and free <a href="http://analytics.google.com/">Google Analytics</a> hit statistics/analytics package for some time now, but we wanted something more. Google Analytics doesn&#8217;t allow you to track an individual visitor&#8217;s progress through the site. Determining when your users exit and how is important and not having this feature was frustrating.</p>
<p>Enter <a title="Clicky Web Analytics" href="http://getclicky.com/31692">Clicky</a>. Clicky is an amazing tool with a clean, simple interface that lets us track our users in real-time, including their location, browser resolution, OS and all the other goodies you&#8217;d expect. It&#8217;s also free, though they have a premium option for managing multiple sites and with a few additional features tacked on.</p>
<p><span id="more-89"></span></p>
<p>The interface is clean, easy to use and intuitive. The graphs are nice and Flashy, just like GA&#8217;s but everything just comes together:</p>
<p><img class="alignnone" src="http://static.getclicky.com/media/screenshots/dashboard_small.gif" alt="" width="350" height="200" /></p>
<p>But they&#8217;ve tacked on some additional great features that were sorely lacking in Google Analytics and other packages we looked at. Here&#8217;s a quick look at a few of them:</p>
<p>Visitor detail includes where they&#8217;re coming from, their IP address, (or their host/organization name, if it can be resolved) and all of their progress on the site:</p>
<p><a href="http://www.htmlist.com/wordpress/wp-content/uploads/2008/07/visitor1.gif"><img class="alignnone size-full wp-image-140" title="visitor1" src="http://www.htmlist.com/wordpress/wp-content/uploads/2008/07/visitor1.gif" alt="" width="500" height="342" /></a></p>
<p>It features incredibly easy filtering and custom user tracking, so you can easily and automatically exclude yourself or organization from your own hit tracking data. (GA has some filters like this, but they can be frustrating to update and aren&#8217;t cookie based, so if your IP changes, you have to remember to change them.)</p>
<p>Clicky also features the stalker-ish and really cool <a href="http://www.getclicky.com/stats/spy?site_id=10">Spy feature</a>. It&#8217;s a live view of the traffic on your site, so you can see visitors as they appear, where they browse to and what links they click. This is a premium feature, but Clicky is pretty damn affordable, so we picked up a year-long premium account for all of $40. The only downside to the spy is that it&#8217;s consummately boring when no one&#8217;s visiting your site, and a little depressing.</p>
<p>There are about a dozen other features that are just done right. They include Google Maps integration when geolocating IP addresses, they intelligently group visitors together to give an accurate &#8220;uniques&#8221; count, they feature an impressive API and bunches of useful widgets for publishing stats info and they intelligently parse out which search terms are driving you traffic. Some of those aren&#8217;t unique to Clicky, of course, but the thoughtfulness prescribed to each of the components and the &#8220;what if&#8221; approach towards building software with so many features (and such a small dev team) really reflects positively on them and their product.</p>
<p>There are a few issues we&#8217;ve noticed with Clicky: Identical pages sometimes are tracked as separate pages, some search terms can screw up the reporting and some scalability concerns have come into play with how they architected the site early on. But they&#8217;re very transparent and work with the community to build a pretty amazing stats tracking tool that we considered good enough to pay for.</p>
<p>Check it out, as they&#8217;re offering a free 30 day trial with their pro features:</p>
<p><a href="http://getclicky.com/31692">Get Clicky | Web Analytics 2.0</a></p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=89&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/cool-stuff/web-analytics-hit-tracking-done-right-with-clicky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: php&#124;architect’s Guide to Enterprise PHP Development</title>
		<link>http://www.htmlist.com/reviews/phparchitects-guide-to-enterprise-php-development/</link>
		<comments>http://www.htmlist.com/reviews/phparchitects-guide-to-enterprise-php-development/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 17:52:35 +0000</pubDate>
		<dc:creator>David Bernal</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[enterprise development]]></category>
		<category><![CDATA[enterprise php]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-architect]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[software development lifecycle]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=84</guid>
		<description><![CDATA[php&#124;architect’s Guide to Enterprise PHP Development by Ivo Jansch, while not flawless, provides an excellent introduction to many aspects of software development. The book is a great read for teams looking for countless jump-off points to improve their development process.]]></description>
			<content:encoded><![CDATA[<p><a title="Phoenix, Arizona Web Development" href="http://www.synapsestudios.com/">Our office</a> purchased a copy of <a href="http://www.phparch.com/c/books/id/9780973862188">php|architect’s</a> <a href="http://www.enterprisephp.nl/">Guide to Enterprise PHP Development</a> (<a href="http://www.enterprisephp.nl/2008/06/23/table-of-contents/">TOC</a>) by <a href="http://www.jansch.nl/2008/06/18/phparchitects-guide-to-enterprise-php-development-is-out/">Ivo Jansch</a> last week, and I called dibs on the review. In it, Jansch sets out to identify tools and methodologies PHP developers can use (and have traditionally <em>not</em> used) to increase their chances of success. Jansch points out that PHP rapidly went from a tool used mainly to develop Personal Home Pages (I don&#8217;t know why I capitalized that&#8230; so weird) to an increasingly well-regarded enterprise-level platform. Unfortunately, while the open source community surrounding PHP is one of the most active and vibrant ones around, it has been reluctant to pick up some of the more formal development processes that the .NET and J2EE platforms are known for. We&#8217;ll dive deeper into the book in about 20 pixels. (You might have to click on a link or something, just a heads-up.)</p>
<p><span id="more-84"></span></p>
<p>This book attempts to fill that gap by walking us through the delightful and fruitful garden known as the software development lifecycle (SDLC). It provides a brief overview of each phase of development, ranging from pre-project team selection and hiring all the way through deployment and support. In each section, it outlines common pitfalls, ways to get around them and tools others use to keep things running smoothly.</p>
<p>Think of this book as an experienced developer watching your team in action <em>through your whole process</em>, and at the end, sitting you down and saying, &#8220;Look, you suck at this. You&#8217;re making every beginner-mistake in the book, so I&#8217;m going to break it down for you. This is the way you develop software, and here&#8217;s why.&#8221; This book is <em>not</em> about how to write code at an enterprise level (cf. <a href="http://martinfowler.com/books.html#eaa">Fowler</a>, or <a href="http://www.amazon.com/PHP-5-Objects-Patterns-Practice/dp/1590593804">Zandstra</a> for a gentler intro), nor does it cover any one facet of the lifecycle in particular detail, rather it is aimed at getting you up-to-speed on the entire cycle and pointing you towards other resources to research further.</p>
<p>Following a couple of worthless chapters that we&#8217;ll mention towards the end of this review, the book is roughly broken up into chapters that follow each phase of the SDLC. This breadth is at-once the book&#8217;s strongest point and its weakest. Both Bob and I observed that certain chapters seemed rather weak, but it became clear to us that the subjects we were most familiar with were also the ones that the book seemed weakest on. It isn&#8217;t that these chapters are necessarily flawed, but rather that it is simply impossible to do any one phase justice in such a small amount of space (and the book is quite pithy, at a mere <del>175</del> 275 pages. <em>[author's note: apparently the </em>php|architect <em>website mistakenly lists the book as 175 pages. Shame on me for not verifying]</em>) Nevertheless, there were so many gaping holes in our process (and must be in yours, as well, if you&#8217;re even considering this book still), that the payoff of those seemingly weaker chapters was the incredible wealth of introduction contained in one book. I&#8217;ll now outline a few of the chapters I found to be most useful, so that you can get an idea of what you&#8217;re in for.</p>
<p>The chapter covering planning was a gem for us. Software development is a notoriously over-time and over-budget undertaking and this book identifies a few reasons why. Reading this section, there were several &#8220;mmhmm&#8221; moments, where I was clearly able to identify instances where our team had made the exact mistake described. Jansch points out, for example, that software is never done. Give a developer 12 hours to complete a task, and he&#8217;ll complete it in 12. It could have been done in 8, but given the 4 extra hours, the developer took some time to create some better icons, add a bit of AJAX, and get everything just so. This tendency means that when we calculate the time required to do a task, adding a margin of time for safety, we are actually locking ourselves in to taking that full amount of time to complete the task. As a remedy, Jansch suggests that we instead quote a task according to the amount of time we think it <em>should</em> be done in. Then, a margin is added to the <em>whole project</em>, so that no individual task is simply allowed to go over. I have no idea if this actually works, but I suspect it addresses at least part of the problem.</p>
<p>The next chapter I was really impressed by was the chapter on tools. In this, Jansch identifies some tools developers can (and should!) use to streamline development and testing. The first subject this chapter addresses is the great IDE vs. Editor debate. Personally, I&#8217;ve been using IDEs to develop code from the beginning, but some developers need more convincing and Jansch makes a good argument. More interesting to me was the section on debugging. In the past, I did a lot of desktop application development, and one thing that I&#8217;ve always missed on the web-app side was the ability to do things like set watches and breakpoints in code. I was aware of Zend&#8217;s offerings in this arena, but had never looked into it any further than Zend Platform&#8217;s hefty price tag. As it turns out, there are numerous <a href="http://pecl.php.net/package/apd">other </a><a href="http://xdebug.org/">offerings</a> in this area.</p>
<p>The QA chapter was another that was useful to me. It discusses both functional and performance testing. We have been using unit testing here for a while, but performance testing was something that we&#8217;d only begun to need to consider with some of our more recent projects. In his section covering the topic, Jansch discusses the use of tools such as <a href="http://httpd.apache.org/docs/2.0/programs/ab.html">Apache Bench</a> and <a href="http://httpd.apache.org/test/flood/">Apache Flood</a>, both of which allow you to run automated performance tests against your site. This kind of automation, as Jansch points out, is key in watching for serious performance problems, as well as regression introduced by new features.</p>
<p>One last tool mentioned in the QA chapter that I hadn&#8217;t heard of is <a href="http://selenium.openqa.org/">Selenium</a> (<a href="http://www.youtube.com/watch?v=k-03mDiEWEg">Tech Talk link</a>). Selenium allows you to record and playback automated test cases that can check such things as whether the pages contains key elements (submit buttons, crucial bits of text), or whether the application is flowing correctly. This sounds very compelling to me (though I haven&#8217;t checked it out yet), as it addresses one of the key issues we&#8217;d been discussing with test-driven development around the office. Namely, unit tests are great for testing a specific very fine-grained aspect of the code, but how do you test the application as a whole? Anyway, that is the subject of a future blog post, no doubt.</p>
<p>Though this book is overall a strong read and a good buy for a team looking to streamline their processes and quit making the same mistakes over and over again, it does have its weaknesses. In this book at least, Jansch is at his best when talking about tools and process, rather than code. While object-oriented development is an important methodology in enterprise development, I don&#8217;t feel that the brief section covering the topic provides a very effective introduction. In my mind, Jansch spends a little bit too much time showing code and discussing implementation details (some specific to PHP), and not enough time discussing the advantages of OO on a conceptual level.</p>
<p>Similarly, the opening two chapters discussing the history of PHP, the LAMP stack, and PHP&#8217;s growing prominence in enterprise development were a bit too long for my tastes. The first chapter contained a lot of information that, while interesting, is readily available on the internet and hardly relevant to enterprise-level software development. The second chapter, on the other hand, felt like a combination of justification for the book, and sales pitch. Certainly I agree with Jansch&#8217;s stance on some of the weaknesses and strengths of PHP, but to my mind, a reader of this book is already aware enough of them to know he needs the book. I don&#8217;t necessarily feel that these sections should be removed altogether, but I did feel that in a book as short as this, they took up a bit more space than needed.</p>
<p>To be clear, these are minor shortcomings in an otherwise useful book. The great thing about a book like this is that it puts a lot of ideas into readers&#8217; heads, which they can go on to research further. Just in the process of writing this post, I&#8217;ve linked to several projects that themselves would be worthy of their own post, and I even left out a couple of chapters that I liked. In short, I would recommend this book for any team looking for a broad reference they can use to enhance their development process.</p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=84&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/reviews/phparchitects-guide-to-enterprise-php-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Book Review: php&#124;architect’s Guide to Programming Magento</title>
		<link>http://www.htmlist.com/development/book-review-phparchitects-guide-to-programming-magento/</link>
		<comments>http://www.htmlist.com/development/book-review-phparchitects-guide-to-programming-magento/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 20:50:59 +0000</pubDate>
		<dc:creator>Brandon Ching</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[php-architect]]></category>

		<guid isPermaLink="false">http://www.htmlist.com/?p=58</guid>
		<description><![CDATA[We review php&#124;architect's Guide to Programming Magento by Mark Kimsal. The book proves to be pretty useful but falls short in a bunch of frustrating ways (much like Magento itself). Read our full review for the skinny.]]></description>
			<content:encoded><![CDATA[<p style="0in;"><img class="imageRight" style="float: right;" src="http://phparch.com/img/phpa/books/9780973862171.jpg" alt="Guide to Programming with Magento" width="135" height="167" />Today, I&#8217;ll be reviewing <em><a title="Guide to Programming Magento" href="http://www.phparch.com/c/books/id/9780973862171">php|architect&#8217;s Guide to Programming Magento</a> </em><span style="normal;">by Mark Kimsal. <a title="Magento Commerce" href="http://www.magentocommerce.com/">Magento</a> is a relatively new open-source e-commerce application written in PHP with a MySQL back. All in all, the Magento package is an impressive application with great administrative features and a flashy user interface. But under the hood, Magento is a complicated piece of machinery. At the very least, it&#8217;s definitely not for the faint of heart. So in order to navigate this maze of XML layout files, multiple template and style directories and the EAV database schema, we purchased Mark Kimsal&#8217;s Magento programming book. Find out what we thought of it, after the jump.</span></p>
<p style="0in;"><span style="normal;">At first glance of the index, I got warm fuzzies all over. File hierarchy layout, EAV schema and custom module development&#8230;who wouldn&#8217;t feel a little happy? However, I&#8217;m not really the type of person to give accolades unless something is absolutely stellar. As such, this post will primarily be about the shortcomings of the book. </span></p>
<p style="0in;"><span id="more-58"></span><span style="normal;">As developers, one of the most important things we&#8217;re interested in with a new software package is how we can modify, hack and expand it to suit our needs. Let me be the first to tell you, the Magento devs did not have this in mind when building their code base. While Kimsal devotes four chapters to module development, at the end of it all, I still didn&#8217;t feel like I had the foundation necessary to construct a robust expansion module from scratch. Kimsal does go into detail about the files and contents you&#8217;ll need to fit within the Magento/Zend model, but his examples seem to only expand or override functionality already present in the Magento core modules, rather than creating something completely from scratch. About the closest he comes to a completely custom module is the “Points and Rewards Module” chapter. However, the construction of a completely custom module seems so complex that Kimsal either does not include all the finer nuances or simply cannot coherently describe its creation—a sign that does not particularly bode well.<br />
</span></p>
<p style="0in;"><span style="normal;">Reading the book also gave me the distinct impression that an actual editor was somehow left out of the loop as the book was rife with grammar and spelling errors. Another annoying attribute is that code continually runs from page to page with no clear delineation or separation. Code and list segments span multiple page breaks, something that of course sometimes cannot be helped, but when you have 11 lines of code on one page with the remaining “&lt;/div&gt;” as the only line of code on the next&#8230;it gets a little annoying (page 126-127 if you&#8217;re interested). </span></p>
<p style="0in;"><span style="normal;">Now, I understand that Magento is <strong>very</strong> new (as of this post, I think Mr. Kimsal&#8217;s book is the only one available <em>[and we have the pre-order PDF of the book, still waiting on the actual book to arrive—Ed.]</em>), but I think that the first book in any series should try to include some sort of reference for at least the most important classes, methods and in the case of Magento, obscure XML tags and attributes. For instance, in the chapter about templating and layouts, Kimsal gives brief descriptions about what the tag names are but lacks any meaningful detail about how to use them and how they interact with other tags (see <a title="Why documentation is important" href="http://www.htmlist.com/development/the-bane-of-documentation/">my previous blog about examples in documentation</a>). </span></p>
<p style="0in;"><span style="normal;">Technical books typically strive to factually explain the topics they cover. Something I found a little interesting was that Kimsal gave negative conjecture at random places in regard to how Magento does certain tasks. I personally find it amusing but some people may not. However, if you&#8217;re going to rag on how the subject of your book does things, consider suggesting a better alternative or publish some code to correct the problem. Just a thought.</span></p>
<p style="0in;"><span style="normal;">Finally, you know you might be in trouble when the very last question in the book&#8217;s final chapter “Quick Answers to Common Questions,” states, “I give up! Magento is too confusing.” And what pray tell, be Kimsal&#8217;s response? ”I hear you&#8230;”</span></p>
<p style="0in;">A bit half-baked but that could be a condition of what happens when you work to be first-to-market with resource material and it doesn&#8217;t help that Magento is no small, simple beast itself. We&#8217;ll take a look at any other books that come along and let you know how they stack up.</p>
<img src="http://www.htmlist.com/wordpress/?ak_action=api_record_view&id=58&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.htmlist.com/development/book-review-phparchitects-guide-to-programming-magento/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

