<?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>Fractions Of A Penny &#187; User Experience</title>
	<atom:link href="http://www.fractionsofapenny.com/category/user-experience/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fractionsofapenny.com</link>
	<description>Some mundane details...</description>
	<lastBuildDate>Thu, 01 Apr 2010 00:16:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Meebo misses me</title>
		<link>http://www.fractionsofapenny.com/user-experience/meebo-misses-me</link>
		<comments>http://www.fractionsofapenny.com/user-experience/meebo-misses-me#comments</comments>
		<pubDate>Wed, 22 Apr 2009 02:17:30 +0000</pubDate>
		<dc:creator>Brandon Hornseth</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[meebo]]></category>

		<guid isPermaLink="false">http://www.fractionsofapenny.com/?p=130</guid>
		<description><![CDATA[When I was a student at MSUM, we had one small computer lab that was the unofficial geek hangout: the Linux Lab. The computers were nothing extravagent, and until the last year of my undergrad degree they still had CRT monitors, but it was our lab. The one downside was that the lab was so [...]]]></description>
			<content:encoded><![CDATA[<p>When I was a student at MSUM, we had one small computer lab that was the unofficial geek hangout: the Linux Lab.</p>
<p>The computers were nothing extravagent, and until the last year of my undergrad degree they still had CRT monitors, but it was <em>our </em>lab. The one downside was that the lab was so locked down network-wise, we couldn&#8217;t use the already-installed IM clients (probably for good reason). Fortunately, <a href="http://www.meebo.com/">Meebo</a> was coming in to it&#8217;s own during the same time period.</p>
<p>Meebo is pretty cool in it&#8217;s own right, but I pretty much had no use for it after I finished college, and so I forgot about it until the other day when I received this email:</p>
<div>
<img class="aligncenter size-full wp-image-132" title="Hello from Meebo :-)" src="http://www.fractionsofapenny.com/wp-content/uploads/2009/04/meebo_misses_me.jpg" alt="Hello from Meebo :-)" width="519" height="513" />
</div>
<p>I don&#8217;t know exactly why, but somehow this obviously automated email seemed strangely personal. Someone at Meebo went out of their way to solicit some feedback about why I stopped using their service, which is enough to make me think, &#8220;This company is worth my time.&#8221; Tiny glimpses at the personality driving services like Meebo make software seem not so impersonal, and that can really make a difference in how your userbase views you as a company.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fractionsofapenny.com/user-experience/meebo-misses-me/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preload your CSS Images</title>
		<link>http://www.fractionsofapenny.com/user-experience/preload-your-css-images</link>
		<comments>http://www.fractionsofapenny.com/user-experience/preload-your-css-images#comments</comments>
		<pubDate>Fri, 27 Feb 2009 04:18:14 +0000</pubDate>
		<dc:creator>Brandon Hornseth</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[best-practice]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web-development]]></category>

		<guid isPermaLink="false">http://www.fractionsofapenny.com/?p=96</guid>
		<description><![CDATA[Here&#8217;s something I come across occasionally that I find rather annoying. You&#8217;re browsing around the web at 2am, searching for the perfect gift for that special someone. You mouse over the tab navigation and.. WTF&#8230; the tab completely disappears for a second. After another round-trip to the server, the on-hover image for the tab finally [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s something I come across occasionally that I find rather annoying.</p>
<p>You&#8217;re browsing around the web at 2am, searching for the <a href="http://www.zazzle.com/lolcat+gifts">perfect gift</a> for that special someone. You mouse over the tab navigation and.. WTF&#8230; the tab <strong>completely disappears</strong> for a second. After another round-trip to the server, the on-hover image for the tab finally loads displays as it was intended.</p>
<p>Sometimes this isn&#8217;t a big deal, since it&#8217;s only a 200ms round-trip to the server for a tiny image, but occasionally on a high-traffic server, or a site that has quite a bit of latency, it creates a noticeable eyesore, and to me, it seems flat out lazy when there&#8217;s easy ways of avoiding it, such as:</p>
<p><strong>1. Image Sprites</strong></p>
<p><a title="Wikipedia: Sprite (computer graphics)" href="http://en.wikipedia.org/wiki/Sprite_(computer_graphics)">Sprites</a> are becoming more and more common these days. The basic idea of an image sprite is that you combine many small images into a single large image and use CSS to manipulate the position of the image so only the desired section shows up where needed. For example, to get the hover state image for the undo icon, they would have to set the background-position to -200px  -40px (200px from the left, 40px from the top of the image sprite).</p>
<p><img class="aligncenter size-full wp-image-100" title="sprite_ex" src="http://www.fractionsofapenny.com/wp-content/uploads/2009/02/sprite_ex.jpg" alt="sprite_ex" width="260" height="60" /></p>
<p>Instead of the client having to download 7 icons that display on a page, the use of a sprite collapses 7 HTTP GET requests into a single request, albeit one that takes slightly longer due to the large image size. Take a look at the sprite as it&#8217;s used in the Stack Overflow <a title="The Markdown Project" href="http://daringfireball.net/projects/markdown/">Markdown</a> editor.</p>
<p><img class="aligncenter size-full wp-image-107" title="sofia1" src="http://www.fractionsofapenny.com/wp-content/uploads/2009/02/sofia1.jpg" alt="sofia1" width="509" height="225" /></p>
<p>With a bit of context, you can see that the 3 rows represent the regular, disabled, and hover states, respectively from top to bottom, for each icon. They&#8217;ve reduced 39 requests to a single 4Kb byte request. This saves a substantial amount of time in setting up and tearing down TCP connections, and it&#8217;s fewer hits for your webserver to service, so everybody wins. There are  some good <a title="Project Fondue: CSS Sprite Generator" href="http://spritegen.website-performance.org/">sprite generators</a> around the web, which takes almost all of the hard work out of the equation for you.</p>
<p><strong>2. Preload page images with JavaScript</strong></p>
<p>This one is not quite as elegant, but it&#8217;s still used quite a bit, and can be a reasonable solution to a one-off problem.</p>
<p>When I had to build an <a title="My Tech Writing Web Portfolio" href="http://sws.mnstate.edu/hornsebr/">online portfolio</a> for my Technical Writing class at MSUM, I was required to add links to three tools that I use on a regular basis. I wanted to dazzle a bit, so I took screenshots of the three sites I chose, and used <a title="Lightbox 2" href="http://www.lokeshdhakar.com/projects/lightbox2/">LightBox</a> to load larger, high-quality screenshots.</p>
<p>Logically, the user is going to scan the first paragraph, then move to the first section and start scanning. My guess was at that point, they&#8217;d be bored and would click on the image to see a larger version. But in the meantime, enough time has probably elapsed to have downloaded all 3 high-quality versions, so why not make the browser download them in the meantime? Easy.<br />
<script src="http://gist.github.com/275790.js?file=gistfile1.js" type="text/javascript"></script><br />
<noscript></p>
<pre>
var imgs = ["images/kuler_large.jpg", "images/reddit_large.jpg", "images/mdc_large.jpg", "images/wikimedia_large.jpg"];
for (i in imgs){
    var newimg = new Image();
    newimg.src = imgs[i];
}</pre>
<p></noscript><br />
<strong>3. Make jQuery do everything for you</strong></p>
<p>jQuery is a wonderful library. It&#8217;s made even more wonderful by the vast number of extensions, one of which is is the <a title="Automated image preloading for a snappy UI" href="http://www.filamentgroup.com/lab/automated_image_preloading_for_a_snappy_ui/">CSS Image Preloader</a>, written by the JavaScript masters at the Filament Group.</p>
<p>What&#8217;s cool about this approach is that it&#8217;s a great balance between the other two: It&#8217;s simple, only requiring two javascript files (jquery core and the plugin) and a couple lines of code, but unlike the manual method of typing filenames, this plugin automatically parses linked and imported stylesheets. So if you change image urls, or add or remove images from a page, the plugin does the tough work for you. No need to update anything else. They have a <a title="CSS Image Preload: Demo" href="http://www.filamentgroup.com/examples/preloadImages/">great demo</a> set up over at their website as well.<br />
<script src="http://gist.github.com/275790.js?file=gistfile2.js" type="text/javascript"></script><br />
<noscript></p>
<pre>
$(document).ready(function(){
  $.preloadCssImages();
});
</pre>
<p></noscript></p>
<p>Ultimately, the &#8216;right&#8217; approach depends on what your individual needs are. I can see applications and arguments for and against all three of these examples. The first is pure CSS, which is always a plus in my book, but it also requires that you decide on a good way to organize your related images into sprites. The latter two both require JavaScript, which is almost always fine these days, but some people prefer to browse with it turned off, and it&#8217;s up to us developers to make sure that their experience isn&#8217;t hindered (much) because they chose to not trust our scripts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fractionsofapenny.com/user-experience/preload-your-css-images/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
