<?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>Virtuous Code &#187; web</title>
	<atom:link href="http://devblog.avdi.org/tag/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.avdi.org</link>
	<description>&#34;The three virtues of a programmer: laziness, impatience, and hubris&#34; -- Larry Wall</description>
	<lastBuildDate>Wed, 22 May 2013 22:30:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Starting Points for Pushing Async Notifications to Browsers</title>
		<link>http://devblog.avdi.org/2011/10/24/starting-points-for-pushing-async-notifications-to-browsers/</link>
		<comments>http://devblog.avdi.org/2011/10/24/starting-points-for-pushing-async-notifications-to-browsers/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 13:00:00 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asychronous]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[notifications]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[websockets]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=1887</guid>
		<description><![CDATA[I asked on Twitter for some starting points on pushing asynchronous notifications to web browsers. Here are the results, summarized. <a href="http://devblog.avdi.org/2011/10/24/starting-points-for-pushing-async-notifications-to-browsers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I haven&#8217;t had the opportunity yet to work with an app which required asynchronous updates to be pushed &#8220;live&#8221; to clients. Friday a pair-programming client asked me about the subject, so I put the question out on Twitter. Here are the results, summarized.</p>
<p>Like I said I&#8217;m not experienced with this stuff, so this is just a collection of notes, not a recommendation.</p>
<ul>
<li>Lots of people pointed me to <a href="http://faye.jcoglan.com/">Faye</a>. From the home page:<br />
<blockquote><p>Faye is a publish-subscribe messaging system based on the Bayeux<br />
protocol. It provides message servers for Node.js and Ruby, and<br />
clients for use in Node and Ruby programs and in all major web<br />
browsers.</p></blockquote>
</li>
<li><a href="http://pusher.com/">Pusher</a> is a service I had already heard of, and it comes highly recommended from many sources. I know Larry Marburger uses it on <a href="http://getcloudapp.com/">CloudApp</a> and has nothing but good things to say about it.</li>
<li>Lots of mentions of <a href="https://github.com/maccman/juggernaut">Juggernaut</a>. From the website:<br />
<blockquote><p>Juggernaut gives you a realtime connection between your servers and<br />
client browsers. You can literally push data to clients using your<br />
web application, which lets you do awesome things like multiplayer<br />
gaming, chat, group collaboration and more.</p></blockquote>
</li>
<li>Several people mentioned <a href="http://www.pubnub.com/">PubNub</a>, which appears at first glance to be a similar service to Pusher.</li>
<li>In addition, lots of people replied with various combinations of lower-level tools and technologies, including: <a href="http://socket.io/">Socket.io</a>, <a href="http://postrank-labs.github.com/goliath/">Goliath</a>, <a href="http://dev.w3.org/html5/websockets/">WebSockets</a>, and <a href="http://rubyeventmachine.com/">EventMachine</a>.</li>
<li>EDIT: A couple people have also pointed out that T<a href="http://torquebox.org/2x/builds/html-docs/websockets.html">orqueBox provides built-in WebSockets</a> support.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2011/10/24/starting-points-for-pushing-async-notifications-to-browsers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>My 99Designs Experience</title>
		<link>http://devblog.avdi.org/2011/03/04/my-99designs-experience/</link>
		<comments>http://devblog.avdi.org/2011/03/04/my-99designs-experience/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 19:48:33 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[99designs]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[designers]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=1123</guid>
		<description><![CDATA[A lot of people asked me to report on my experience with 99Designs, so now that the contest is over I thought I&#8217;d jot down some notes. For those who don&#8217;t know, 99Designs is a &#8220;design crowdsourcing&#8221; service. You post &#8230; <a href="http://devblog.avdi.org/2011/03/04/my-99designs-experience/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A lot of people asked me to report on my experience with <a class="zem_slink" title="99designs" rel="homepage" href="http://99designs.com/">99Designs</a>, so now that <a href="http://99designs.com/other-design-tasks/contests/ebook-cover-design-software-dev-book-65458">the contest</a> is over I thought I&#8217;d jot down some notes.</p>
<p>For those who don&#8217;t know, 99Designs is a &#8220;design crowdsourcing&#8221; service. You post a contest in one of several design categories, with a specified monetary prize for the winner. Designers submit designs, which you rate and comment on, and based on the feedback they may submit updated designs. At the end of the contest period (a week, by default) you pick a winner. They get the money, and you get the rights to their design.</p>
<p>Getting my contest started was straightforward enough, although they could have provided some more examples of how to write a good spec.</p>
<p>For the first couple of days I saw zero entries. This was a nerve-wracking period &#8211; I was wondering if I had committed some 99Designs faux pas, or if it normally took a while for designs to appear. They would do well to add some kind of notice for contest holders saying &#8220;<strong>Don&#8217;t panic! Designers are working on their submissions</strong>&#8220;. Or maybe even provide a way for designers to indicate that they are interested and working on an initial submission.</p>
<p>Eventually designs started trickling in. Around the 4th day I saw a design that was good enough that I felt confident switching to &#8220;guaranteed payment&#8221;&#8212;in which it is guaranteed that someone will get the prize. After that submissions came at a steady clip. At the end I had a remarkable 93 submissions, all for a $145 &#8220;Bronze&#8221; level prize.</p>
<p>The design of the feedback system is simply <strong>awful</strong>. As a contest holder, you have (at least) three avenues of communication. There&#8217;s an &#8220;Inbox&#8221; &#8211; which never has anything in it. There&#8217;s  contest-level message board (which doesn&#8217;t feed into your Inbox). And then every designer to submit to your contest gets their own contest/designer-specific message boards, which have no connection to the main contest message board or your &#8220;Inbox&#8221;. If you leave feedback on a design, you leave it on the designer-specific message board. If they reply, you are not notified in <strong>any</strong> way. That means that if 20 designers submit designs, in order to keep up with responses to your feedback you must remember to check 20 different message boards manually. In addition, it is apparently impossible for designers to private-message the contest-holder. For an otherwise well laid-out site, the communication UX is a disaster.</p>
<p>Apart from that my experience was good. There were a lot of just plain low-quality designs, yes; but there were enough good ones to choose from at the end of the contest that I felt like my $145 (actually $100, I had a coupon) was well-spent.</p>
<p>The really nice part, for me, was that it enabled me to not think too hard about the design. This particular design was something that I wanted to look good, but apart from that I wasn&#8217;t very particular. 99Designs let me get a lot of different design perspectives on it without having to spend a ton of time working with a designer to hash out ideas.</p>
<p>Bottom line, I would use them again.</p>
<p>EDIT: Something I forgot to write about. One thing I noticed about the designs was that a lot of the designers seemed to be cuing off of previous designs more than the actual design spec. For instance, a designer would add a subtitle which was <strong>not</strong> part of the spec, and then subsequent designers would copy the subtitle word-for-word. This was a little annoying.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=74d5e463-592b-4ac4-8f87-143c30c0135f" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2011/03/04/my-99designs-experience/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>REST Resources</title>
		<link>http://devblog.avdi.org/2011/02/17/rest-resources/</link>
		<comments>http://devblog.avdi.org/2011/02/17/rest-resources/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 18:44:32 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[hateoas]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=1050</guid>
		<description><![CDATA[From time to time people ask me questions about RESTful architecture. I thought it might be helpful to list the resources that I keep near at hand for asnwering tricky REST questions. Standards: RFC2616 Hypertext Transfer Protocol: If you haven&#8217;t read &#8230; <a href="http://devblog.avdi.org/2011/02/17/rest-resources/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>From time to time people ask me questions about <a class="zem_slink" title="Representational State Transfer" rel="wikipedia" href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful</a> architecture. I thought it might be helpful to list the resources that I keep near at hand for asnwering tricky REST questions.</p>
<h2>Standards:</h2>
<ul>
<li><a href="http://tools.ietf.org/html/rfc2616">RFC2616 Hypertext Transfer Protocol</a>: If you haven&#8217;t read this RFC, you might be surprised at what you don&#8217;t know about HTTP. I keep a printed copy nearby at all times.</li>
<li><a href="http://tools.ietf.org/html/rfc5988">RFC5988: Web Linking</a>. You might not have heard of this one, but I think it&#8217;s one of the more important recent developments in HTTP from a RESTful standpoint. REST is all about hyperlinks, but how do you link a non-HTML resource &#8211; like an image, for instance &#8211; to other resources? This RFC tells you how.</li>
<li><a href="http://tools.ietf.org/html/draft-gregorio-uritemplate-04">URI Templates</a>. This one&#8217;s still a draft. In general forcing clients to build their own URIs is bad form; contrary to a zillion &#8220;How to use our RESTful API&#8221; articles you may have read, URIs are supposed to be opaque. However, sometimes URI construction is inevitable; when that&#8217;s the case, we can at least specify it in a machine-understandable format with URI templates.</li>
</ul>
<h2>Books:</h2>
<p><a href="http://www.amazon.com/HTTP-Definitive-Guide-David-Gourley/dp/1565925092%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1565925092"><img style="margin: 3px;" src="http://ecx.images-amazon.com/images/I/51IUamGxHkL._SL75_.jpg" alt="" width="56" height="75" /></a><a href="http://www.amazon.com/Restful-Web-Services-Leonard-Richardson/dp/0596529260%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596529260"><img style="margin: 3px;" src="http://ecx.images-amazon.com/images/I/51c26sG-DDL._SL75_.jpg" alt="" width="57" height="75" /></a><a href="http://www.amazon.com/RESTful-Web-Services-Cookbook-Scalability/dp/0596801688%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596801688"><img style="margin: 3px;" src="http://ecx.images-amazon.com/images/I/41ylZjFsWYL._SL75_.jpg" alt="" width="57" height="75" /></a><img style="margin: 3px;" src="http://ecx.images-amazon.com/images/I/51xSVWRSEFL._SL75_.jpg" alt="" width="57" height="75" /></p>
<ul>
<li><a class="zem_slink" title="HTTP: The Definitive Guide" rel="amazon" href="http://www.amazon.com/HTTP-Definitive-Guide-David-Gourley/dp/1565925092%3FSubscriptionId%3D0G81C5DAZ03ZR9WH9X82%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1565925092">HTTP: The Definitive Guide</a>. A good HTTP reference is essential, and this book offers a lot more exposition and examples than plain RFC2616. It also draws in related material so you don&#8217;t have to go hunting down all the referenced RFCs yourself.</li>
<li><a href="http://www.amazon.com/Restful-Web-Services-Leonard-Richardson/dp/0596529260%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596529260">Restful Web Services</a>. Probably the best guide available for building REST services.</li>
<li><a href="http://www.amazon.com/RESTful-Web-Services-Cookbook-Scalability/dp/0596801688%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596801688">RESTful Web Services Cookbook: Solutions for Improving Scalability and Simplicity</a>. The companion volume to RESTful Web Services.</li>
<li><a href="http://www.amazon.com/REST-Practice-Hypermedia-Systems-Architecture/dp/0596805829%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596805829">REST in Practice: Hypermedia and Systems Architecture</a> &#8211; I haven&#8217;t delved deeply into this one yet, but it seems to deal with higher-level patterns built on the principles laid out in the other books.</li>
</ul>
<h2>Articles:</h2>
<ul>
<li><a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">Roy Fielding&#8217;s thesis</a>. Duh.</li>
<li><a href="http://martinfowler.com/articles/richardsonMaturityModel.html">The Richardson Maturity Model</a>. Characterizing different levels of RESTfullness.</li>
<li><a href="http://barelyenough.org/blog/2008/05/versioning-rest-web-services/">Versioning REST Web Services</a>, by Peter Williams. In which we learn a much better alternative to API endpoints with /v1/ and /v2/ in the URL.</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1566460">Versioning REST Services</a>, by Scott Seely. An interesting variation on the scheme above that uses mimetype version arguments instead of a version built-in to the mimetype.</li>
<li><a href="http://www.theamazingrando.com/blog/?p=107">Your Web Service Might Not be RESTful if&#8230;</a> by Paul Sadauskas. Think you know REST? Think again.</li>
<li><a href="http://timeless.judofyr.net/haters-gonna-hateoas">Haters gonna HATEOAS</a>, by Magnus Holm and Steve Klabnik. One of the better explanations of just what the hell Hypertext As The Engine Of Application State (HATEOAS) means.</li>
<li><a href="http://blogs.sun.com/craigmcc/entry/why_hateoas">Why HATEOAS</a>, by Craig McLanahan. OK, so now you know your API isn&#8217;t really RESTful. Why should you care? This article provides a few reasons.</li>
</ul>
<p>What about you? What are your favorite resources on RESTful architecture?</p>
<p>Note: Any comments to the tune of &#8220;blah blah REST orthodoxy blah blah zealots blah blah real world blah blah who cares&#8221; will be summarily deleted. The books and articles listed above are by real developers who have solved real deficiencies in HTTP APIs using RESTful principles. If you and/or your users don&#8217;t have the problems these techniques address, <strong>that&#8217;s fine</strong>. This article isn&#8217;t for you. Move along.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=bbae9320-2fe8-4ad3-90d3-77e4ef293518" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2011/02/17/rest-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Mechanics of Web Design</title>
		<link>http://devblog.avdi.org/2010/11/10/the-mechanics-of-web-design/</link>
		<comments>http://devblog.avdi.org/2010/11/10/the-mechanics-of-web-design/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 20:57:49 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=834</guid>
		<description><![CDATA[I am a stereotypical developer: I can&#8217;t design my way out of a wet paper bag, and I tend to regard every potential bout with CSS with trepidation. I&#8217;m trying to get better, though. Progress is slow. I started working &#8230; <a href="http://devblog.avdi.org/2010/11/10/the-mechanics-of-web-design/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I am a stereotypical developer: I can&#8217;t design my way out of a wet paper bag, and I tend to regard every potential bout with CSS with trepidation. I&#8217;m trying to get better, though. Progress is slow.</p>
<p>I started working through <a href="http://www.amazon.com/gp/product/1934356131?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1934356131">Web Design for Developers</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=1934356131" border="0" alt="" width="1" height="1" /> recently, but I haven&#8217;t been very happy with it and I don&#8217;t think I&#8217;m going to finish it. I asked around for some recommendations for books on web design, and got quite a few responses; I&#8217;ll list them below.</p>
<p>What I realized, though, is that the book I&#8217;m looking for right at this moment probably doesn&#8217;t exist. Most of the design/CSS books out there are coming at it from one of two angles: either they are telling you how to come up with an attractive and functional design from scratch, or they are telling you all about how the individual CSS selectors work. That&#8217;s all stuff I want to understand better, but as a working web developer I often find myself with a much more tightly constrained problem. More often than not, all I need is to be able to take a comp in PSD format and produce a functional web page that looks exactly like the comp.</p>
<p>The book I&#8217;m looking for would be a slim volume, and it would be called something like &#8220;<strong>The Mechanics of Web Design</strong>&#8220;. It would be a step-by-step guide for slicing a comp and turning it into HTML, CSS, and images. It would answer questions such as:</p>
<ul>
<li>Just what the hell is &#8220;comp&#8221; short for, anyway? &#8220;Composition&#8221;?</li>
<li>How do I use guidelines in Photoshop or the GIMP to make slicing easier?</li>
<li>When slicing up images, where should I make the cuts to end up with something I can best use in the final HTML?</li>
<li>What points on the mockup text should I measure to determine the correct CSS pixel size?</li>
<li>When should I use pixels, when ems, when exes?</li>
<li>What are some guidelines for organizing my CSS or SASS files? (Both within the file and how to divide up the files)</li>
<li>When should I use PNG? When JPEG? When GIF? What image compression settings should I use?</li>
<li>What are some good naming conventions for image assets that go into making up the design?</li>
<li>When do I use margins vs. padding for spacing?</li>
<li>When do I use floats?</li>
<li>How do I do those &#8220;sliding window&#8221; button styles with a minimum of effort?</li>
<li>Where do I use absolute positioning? Where do I use relative?</li>
<li>Etc.</li>
</ul>
<p>Basically the problem I have is that while I long ago moved past doing messy trial-and-error when going from a failing unit test to working code, I&#8217;m still just poking things around to see what works when it comes to translating a visual design to HTML/CSS. And what I end up with always feels like a big messy unmaintainable ball of mud without consistent techniques or idioms.</p>
<p>Actually, the more I think about it, the more this sounds like it would make a better screencast than book.</p>
<p>Anyway, here are the books that were recommended to me:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/0321344758?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321344758">Don&#8217;t Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=0321344758" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/0471289604?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0471289604">Principles of Two-Dimensional Design</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=0471289604" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/0321509021?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321509021">Bulletproof Web Design: Improving flexibility and protecting against worst-case scenarios with XHTML and CSS (2nd Edition)</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=0321509021" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/0321643380?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321643380">Handcrafted CSS: More Bulletproof Web Design</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=0321643380" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/1430219203?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1430219203">Web Standards Solutions: The Markup and Style Handbook, Special Edition (Volume 0)</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=1430219203" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/0975841963?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0975841963">The Principles of Beautiful Web Design</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=0975841963" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/0980455235?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0980455235">Sexy Web Design: Creating Interfaces That Work</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=0980455235" border="0" alt="" width="1" height="1" /></li>
<li><a href="http://www.amazon.com/gp/product/032145345X?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=032145345X">Designing the Obvious: A Common Sense Approach to Web Application Design</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=032145345X" border="0" alt="" width="1" height="1" /></li>
</ul>
<p>Thanks to <a href="http://twitter.com/RobotDeathSquad">@RobotDeathSquad</a>, <a href="http://twitter.com/batasrki">@batasrki</a>, <a href="http://twitter.com/jptoto">@jptoto</a>, <a href="http://twitter.com/laktek">@laktek</a>, <a href="http://twitter.com/kenrichard">@kenrichard</a>, <a href="http://twitter.com/djbrowning">@djbrowning</a>, <a href="http://twitter.com/gavinlaking">@gavinlaking</a>, and <a href="http://twitter.com/JoshuaChilds">@JoshuaChilds</a> for pointers to books and other resources.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2010/11/10/the-mechanics-of-web-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
