<?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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>The Book of Ryan</title>
	<atom:link href="http://ryancannon.com/feed" rel="self" type="application/rss+xml" />
	<link>http://ryancannon.com</link>
	<description>Wordslinger, dissident, webwright</description>
	<pubDate>Fri, 04 Jul 2008 11:06:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>&#xA9; </copyright>
		<managingEditor>ryan@ryancannon.com ()</managingEditor>
		<webMaster>ryan@ryancannon.com()</webMaster>
		<category></category>
		<ttl>1440</ttl>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>Wordslinger, dissident, webwright</itunes:summary>
		<itunes:author></itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name></itunes:name>
			<itunes:email>ryan@ryancannon.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://ryancannon.com/wp-content/attic/images/album_art-144x144.png" />
		<image>
			<url>http://ryancannon.com/wp-content/attic/images/album_art-144x144.png</url>
			<title>The Book of Ryan</title>
			<link>http://ryancannon.com</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>The other side of the interview table</title>
		<link>http://ryancannon.com/2008/07/04/the-other-side-of-the-interview-table</link>
		<comments>http://ryancannon.com/2008/07/04/the-other-side-of-the-interview-table#comments</comments>
		<pubDate>Fri, 04 Jul 2008 11:06:22 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Web Design/Programming]]></category>

		<category><![CDATA[interviewing resumes jobs javascript css]]></category>

		<guid isPermaLink="false">http://ryancannon.com/?p=182</guid>
		<description><![CDATA[As I mentioned before, the NFL is expanding their Web staff, and that put me into a strange position: the interviewer. I&#8217;d spent the better part of three years interviewing, studying and networking trying to get a job, and suddenly I was being asked to evaluate candidates who were going to be&#8230;well&#8230;me.



We went through a [...]]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://ryancannon.com/2008/02/01/football-company-seeks-the-moderately-webby" title="Football company seeks the moderately webby">mentioned before</a>, the NFL is expanding their Web staff, and that put me into a strange position: the interview<em>er</em>. I&#8217;d spent the better part of three years interviewing, studying and networking trying to get a job, and suddenly I was being asked to evaluate candidates who were going to be&#8230;well&#8230;me.</p>

<p><span id="more-182"></span></p>

<p>We went through a ton of candidates. It amazed me the range of skills and knowledge people applying for a Web Developer position had. But in general, I ran a few common issues that soured me on many candidates.</p>

<h3>Know what you don&#8217;t know</h3>

<p>One of the first questions I ask candidates is how they rate themselves on a one-to-ten scale with HTML, CSS, JavaScript and Flash. Amazingly, <em>most</em> of the candidates rate themselves a nine or ten in HTML. Now I&#8217;m pretty sure only <a href="http://ln.hixie.ch/" title="Hixi's Natural Log">Ian Hickson</a>, and maybe <a href="http://annevankesteren.nl/" title="Anne's Weblog">Anne Van Kesteren</a> grok HTML in it&#8217;s fullness, but if you rate yourself a ten in HTML and cannot describe the differences between HTML and SGML, or the parsing irregularities between the four major browsers, it reflects poorly. Many candidates rated themselves a seven or higher, but could not describe the purpose of a <code>&lt;label&gt;</code> element.</p>

<h3>JavaScript is not just frameworks</h3>

<p>I wasn&#8217;t prepared for the number of people with little or no idea how to program professionally in JavaScript. While I don&#8217;t require an intimate knowledge of the various native objects or having the ECMA standard memorized, good Web Applications require understanding <em>why</em> framework makers have to work around quirks like the event model&#8211;not just that they do.</p>

<p>In addition, most self-taught programmers have little grasp of good programming patterns that save time and make self-documenting code. The best Web application in the world is useless to me if I have to re-write it form scratch a month later because it would take less time than learning how it works.</p>

<p>I had a number of candidates ask me how I came about my JavaScript knowledge, and I didn&#8217;t have much to offer them. I&#8217;ve never taken a JavaScript class, although my unsuccessful interview at Google could be considered one. I do, however, recommend two books: <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fppk-JavaScript-1-e-VOICES%2Fdp%2F0321423305%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1215169247%26sr%3D8-1&amp;tag=ryancannondot-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" title="Amazon Page for PPK on JavaScript">PPK on JavaScript</a> by <a href="http://www.quirksmode.org/" title="QuirksMode: For all you Browser Quirks">Peter-Paul Koch</a> and <a href="http://www.amazon.com/JavaScript-Design-Patterns-Recipes-Problem-Solution/dp/159059908X/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1215169405&amp;sr=1-1" title="Amazon Page for Pro JavaScript Design Patterns">Pro JavaScript Design Patterns</a> by <a href="http://dustindiaz.com/" title="./ With Imagination">Dustin Diaz</a> were invaluable resources. The first is a very low-level examination of the history of JavaScript, while the second is a high-level translation of classic programming methods to JavaScript.</p>

<h3>Play</h3>

<p>The people who stand out to me are the people who play with the discipline. If your resume is a Word Doc or PDF, you&#8217;re starting with a strike against you. Have interesting side projects and who show a curiosity in the medium. Own yourname.com or yourlameinternethandle.com and show me what interesting things you&#8217;re doing with the Web 2.0 API of the week. Even if it&#8217;s a horrible hack or you code is just plain bad, I&#8217;d rather have that than a code wizard on autopilot.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/07/04/the-other-side-of-the-interview-table/feed</wfw:commentRss>
		</item>
		<item>
		<title>When it comes to hockey, nobody says it better than Woot!</title>
		<link>http://ryancannon.com/2008/06/06/when-it-comes-to-hockey-nobody-says-it-better-than-woot</link>
		<comments>http://ryancannon.com/2008/06/06/when-it-comes-to-hockey-nobody-says-it-better-than-woot#comments</comments>
		<pubDate>Fri, 06 Jun 2008 18:27:46 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ryancannon.com/?p=181</guid>
		<description><![CDATA[If you haven&#8217;t noticed, I&#8217;m a pretty die hard Wings fan. I think the Woot.com Podcast summarizes my feelings perfectly.
]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t noticed, I&#8217;m a pretty <a title="Detroit thanks Yzerman; so do I" href="http://ryancannon.com/2007/01/03/yzerman">die hard Wings fan</a>. I think the <a title="The Woot.com podcast for Friday, June 6th" href="http://s3.amazonaws.com/wootfiles/20080606-2zkry3.mp3" type="audio/mp3">Woot.com Podcast</a> summarizes my feelings perfectly.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/06/06/when-it-comes-to-hockey-nobody-says-it-better-than-woot/feed</wfw:commentRss>
<enclosure url="http://s3.amazonaws.com/wootfiles/20080606-2zkry3.mp3" length="680228" type="audio/mpeg" />
		</item>
		<item>
		<title>Uptime is for Obsession</title>
		<link>http://ryancannon.com/2008/06/04/uptime-is-for-obsession</link>
		<comments>http://ryancannon.com/2008/06/04/uptime-is-for-obsession#comments</comments>
		<pubDate>Wed, 04 Jun 2008 20:06:15 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://ryancannon.com/?p=180</guid>
		<description><![CDATA[Dreamhost, rationalizing their decoupling of e-mail and Web hosting.


  Just over HALF of all the support requests we get are about email. Everything else we offer, combined, doesn’t add up to the amount of trouble, expense, use, and effort that goes into “simple” old email.
  
  And that’s kind of funny, because [...]]]></description>
			<content:encoded><![CDATA[<p>Dreamhost, rationalizing their <a href="http://blog.dreamhost.com/2008/05/23/what-web-hosting-is-for/">decoupling</a> of e-mail and Web hosting.</p>

<blockquote>
  <p>Just over HALF of all the support requests we get are about email. Everything else we offer, combined, doesn’t add up to the amount of trouble, expense, use, and effort that goes into “simple” old email.</p>
  
  <p>And that’s kind of funny, because as far as I can tell, almost nobody CHOOSES a web host based on their email features. Everybody’s just looking at how much disk/bandwidth they get, what version of PHP they run, how good their support is, do they have a funny blog, is their CEO really studly, do the data centers have water beds, and so on…</p>
  
  <p>They’ve been conditioned by Yahoo! Mail, Hotmail, and Gmail to give email no value. I mean, everybody gives it away for free… nobody gives (real) web hosting away for free.</p>
  
  <p>And yet, in the end, the only thing (sadly?) that actually ends up getting used, is that “no-value” email! If a web server with maybe 750 customer sites on it were to go down for even as long as five hours, we’d probably get two angry messages about it. But if email goes down for the same number of customers for just five minutes we’ll have already received 50!</p>
</blockquote>

<p>Amazing that people complain more about their obsessions than things costing them money. This came to mind after <a href="http://twitter.com/rcanine/statuses/827093147">grumping</a> about all the grousing I hear over Twitter&#8217;s downtime.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/06/04/uptime-is-for-obsession/feed</wfw:commentRss>
		</item>
		<item>
		<title>Bookmarks</title>
		<link>http://ryancannon.com/2008/05/21/bookmarks</link>
		<comments>http://ryancannon.com/2008/05/21/bookmarks#comments</comments>
		<pubDate>Wed, 21 May 2008 19:17:43 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ryancannon.com/?p=179</guid>
		<description><![CDATA[I&#8217;ve been playing a bit with tumblogging, and I find it much more conducive to the way I write&#8211;especially with regards to shorter entries. Check out my bookmarks page to note my progress. Bookmarks are part of my Total Webernet Feed, so if you&#8217;re subscribed to that you&#8217;re already seeing my bookmarks.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing a bit with tumblogging, and I find it much more conducive to the way I write&#8211;especially with regards to shorter entries. Check out my <a href="http://bookmarks.ryancannon.com/">bookmarks</a> page to note my progress. Bookmarks are part of my <a href="http://ryancannon.com/feeds/atom/">Total Webernet Feed</a>, so if you&#8217;re subscribed to that you&#8217;re already seeing my bookmarks.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/05/21/bookmarks/feed</wfw:commentRss>
		</item>
		<item>
		<title>Infected</title>
		<link>http://ryancannon.com/2008/04/17/infected</link>
		<comments>http://ryancannon.com/2008/04/17/infected#comments</comments>
		<pubDate>Thu, 17 Apr 2008 08:22:48 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<guid isPermaLink="false">http://ryancannon.com/2008/04/17/infected</guid>
		<description><![CDATA[The consequences of playing fast and loose in Web 2.0

You always think yourself invincible. You read about it. you see it happen to others. But you think, &#8220;It could never happen to me.&#8221; You&#8217;re Internet savvy. You protect yourself. Sure, there was a little while—back in the 2.3.2 days—where you were a little risky, but [...]]]></description>
			<content:encoded><![CDATA[<p><em>The consequences of playing fast and loose in Web 2.0</em></p>

<p>You always think yourself invincible. You <a href="http://technorati.com/weblog/2008/02/423.html" title="Patch or Upgrade Your Wordpress Installation, Now">read about it</a>. <a href="http://www.profy.com/2008/04/15/the-tumblr-security-hole-bad-set-up-bad-response/" title="The Tumblr Security Hole: Bad Set-up, Bad Response">you see it happen to others</a>. But you think, &#8220;It could never happen to me.&#8221; You&#8217;re Internet savvy. You protect yourself. Sure, there was a little while—back in the 2.3.2 days—where you were a little risky, but you made it out okay, right?</p>

<p>Right?</p>

<p><span id="more-178"></span></p>

<p>And then <a href="https://twitter.com/rcanine/statuses/533138512" title="Twitter/Ryan Cannon: Hacked on Christmas!">it happens</a>. Suddenly things look wrong. Down there—in the footer. Someone used a WordPress security hole to set your theme and upload locations to <code>../../../../../../tmp</code> and they&#8217;re running PHP scripts from there.</p>

<p>You panic. You e-mail support. Your message is half in all-caps and its spelling only vaguely resembles English. When they reply it&#8217;s only to tell you that there&#8217;s nothing they can do. They suggest you change your passwords. Take two asprin. Call them if it gets worse.</p>

<p>It doesn&#8217;t. And time passes.</p>

<p>You don&#8217;t think about it much. You&#8217;re smart now; you&#8217;re secure. Your blog is up-to-date. You use <abbr title="Secure Shell File Transfer Protocol">SFTP</abbr>, check your e-mail with <abbr title="Secure Sockets Layer">SSL</abbr> encryption and put passwords on your screen saver.</p>

<p>Sometimes, when you&#8217;re lying in bed, you wonder why your Technorati reactions are filled with smut, but of course you&#8217;ve read about them <a href="http://www.businessweek.com/the_thread/blogspotting/archives/2008/01/updated_blog_nu.html?campaign_id=rss_blog_blogspotting" title="Blogspotting Updated blog numbers from David Sifry">drowning in spam</a>, so you don&#8217;t think too much about it.</p>

<p>Then it happens again.</p>

<p>How?!? You&#8217;ve been safe this whole time! But you can&#8217;t deny it when your Live search results show spam <em>coming from your site</em>. You check the URL and, sure enough, there are women being objectified in horrible, horrible ways.</p>

<p>Once you get control of your breathing, you check your server. Sure enough, there&#8217;s an <code>index.php</code> that you didn&#8217;t add that pipes in pr0n from another domain. And worse: the timestamp says this has been up for <em>seven months</em>. It&#8217;s your old mistakes coming back to haunt you.</p>

<p>So that&#8217;s when the research starts, and the awkward e-mails.</p>

<blockquote>
  <p>I just noticed some bad content coming from a blog reactions from Technorati. Please check the <code>index.php</code> file in the following directory:</p>

<pre><code>wp-content/uploads/2007/02
</code></pre>
  
  <p>I believe you site was hacked&#8211;I found a similar hack on my site.</p>
</blockquote>

<p>You feel dirty. You begin the agonizing inspection of your entire code body. Sure enough, you find some spammy lumps: links to <abbr>MP3</abbr> download services hidden from users with <abbr title="Cascading Style Sheets">CSS</abbr>. You ask yourself where you went wrong, how you could have been safer. You wondering if this Web 2.0 thing is worth the fanfare.</p>

<p>Uncomfortable and alone, you do the only thing you can think to soothe yourself: sit down at your laptop to blog about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/04/17/infected/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ready to Fight!</title>
		<link>http://ryancannon.com/2008/03/27/ready-to-fight</link>
		<comments>http://ryancannon.com/2008/03/27/ready-to-fight#comments</comments>
		<pubDate>Thu, 27 Mar 2008 17:22:01 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ryancannon.com/2008/03/27/ready-to-fight</guid>
		<description><![CDATA[After two weeks of trying, I&#8217;ve finally unlocked all the characters and stages in Super Smash Bros. Brawl. The online mode is excellent. Who is ready to fight? Favorite characters: Link, Pit, Falco, Zelda/Sheik.


]]></description>
			<content:encoded><![CDATA[<p>After two weeks of trying, I&#8217;ve finally unlocked all the characters and stages in Super Smash Bros. Brawl. The online mode is excellent. Who is ready to fight? Favorite characters: Link, Pit, Falco, Zelda/Sheik.</p>

<div class="photo"><img class="full" src='http://ryancannon.com/wp-content/attic/2008/03/smash-bros-brawl.jpg' alt='Smash Bros Brawl' /></div>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/03/27/ready-to-fight/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ten Things I won&#8217;t miss leaving SXSW</title>
		<link>http://ryancannon.com/2008/03/11/ten-things-i-wont-miss-leaving-sxsw</link>
		<comments>http://ryancannon.com/2008/03/11/ten-things-i-wont-miss-leaving-sxsw#comments</comments>
		<pubDate>Tue, 11 Mar 2008 21:17:03 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ryancannon.com/2008/03/11/ten-things-i-wont-miss-leaving-sxsw</guid>
		<description><![CDATA[Don&#8217;t get me wrong, I&#8217;ve had a great time here. But there are a few
things I definitely won&#8217;t miss. I&#8217;ll follow up with a write up of the
great parts, but until then these might be worth a chuckle.




Buzzwords
Vertically-integrated, CPM-increasing social network leveraging 
monetized startup marketing.
70% Calories from fat
My kingdom for some oatmeal.
Lines
Nothing sells a $4 [...]]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t get me wrong, I&#8217;ve had a great time here. But there are a few
things I definitely won&#8217;t miss. I&#8217;ll follow up with a write up of the
great parts, but until then these might be worth a chuckle.</p>

<p><span id="more-174"></span></p>

<ol>
<li><strong>Buzzwords</strong><br />
Vertically-integrated, CPM-increasing social network leveraging 
monetized startup marketing.</li>
<li><strong>70% Calories from fat</strong><br />
My kingdom for some oatmeal.</li>
<li><strong>Lines</strong><br />
Nothing sells a $4 beer like 300 people queued at the open bar.</li>
<li><strong>Beards</strong><br />
I&#8217;ve said it <a href="http://twitter.com/rcanine/statuses/769591315" title="Twittering about facial hair.">before</a>. Stop scratching. Is it&#8230; is it moving?
I don&#8217;t like sitting this close.</li>
<li><strong>The integrated social community application sales force</strong><br />
Did you go to our panel?</li>
<li><strong>Standering room in front of a seated crowded</strong><br />
It&#8217;s fine; don&#8217;t worry about it. Have you been working out?</li>
<li><strong>Sport coats over tee shirts</strong><br />
Buisness card reads: VP of JavaScript&#8230;Cheeseburgers?</li>
<li><strong>Rawk</strong><br />
I get it, you&#8217;re &#8220;creative.&#8221; Unless you <a href="http://www.urbandictionary.com/define.php?term=rawk" title="Rawk. n. The sound an albatross makes.">have feathers</a>, 
this is off limits.</li>
<li><strong>Shyness</strong><br />
Introduction lines always sound better when rehearsed in my 
head.</li>
<li><strong>People introducing themselves as their-name-dot-com</strong><br />
I&#8217;ll Google you if I&#8217;m interested.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/03/11/ten-things-i-wont-miss-leaving-sxsw/feed</wfw:commentRss>
		</item>
		<item>
		<title>Fortified with Vitamin W</title>
		<link>http://ryancannon.com/2008/03/04/fortified-with-vitamin-w</link>
		<comments>http://ryancannon.com/2008/03/04/fortified-with-vitamin-w#comments</comments>
		<pubDate>Wed, 05 Mar 2008 01:59:21 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[]]></category>

		<guid isPermaLink="false">http://ryancannon.com/2008/03/05/fortified-with-vitamin-w</guid>
		<description><![CDATA[I&#8217;ve been experimenting with tumblelogging (aka microbloging, aka link logging) at my brand-spanking new bookmarks site, and it turns out I very much like it. I come across tons of fascinating reads/quotes/random thoughts, and this seems to be a great way to share them. I also like the idea of owning my information: while I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been experimenting with <a href="http://de.wikipedia.org/wiki/Tumblelog" title="Tumblelog - Wikipedia">tumblelogging</a> (<abbr title="also known as">aka</abbr> microbloging, <abbr title="also known as">aka</abbr> link logging) at my brand-spanking new <a href="http://bookmarks.ryancannon.com/" title="My Tumblelog">bookmarks</a> site, and it turns out I very much like it. I come across tons of fascinating reads/quotes/random thoughts, and this seems to be a great way to share them. I also like the idea of owning my information: while I love the interfaces of FaceboTwit.icio.kcr, I&#8217;m going to try and move my data into my own databases, and then find interesting ways of sharing it.</p>

<p><a href="http://pipes.yahoo.com/">Yahoo! Pipes</a> is great for doing mash-ups like this, and so I&#8217;ve taken the step of fortifying my <a href="http://ryancannon.com/feed/atom" title="Now with more Webernet!">Atom feed</a> with <strong>Vitamin Webernet</strong>—infused with tumblelogs, Flickr photos, and del.icio.us links (deprecated). I had thought about adding <a href="http://twitter.com/rcanine">my Twitter tweets</a> as well, but the result was a bit obnoxious. If this seems like way too much Ryan for your tastes, switch to the <a href="http://ryancannon.com/feed">RSS feed</a> instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/03/04/fortified-with-vitamin-w/feed</wfw:commentRss>
		</item>
		<item>
		<title>Doublethinking version targeting</title>
		<link>http://ryancannon.com/2008/02/27/doublethinking-version-targeting</link>
		<comments>http://ryancannon.com/2008/02/27/doublethinking-version-targeting#comments</comments>
		<pubDate>Wed, 27 Feb 2008 12:04:41 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Web Design/Programming]]></category>

		<category><![CDATA[]]></category>

		<guid isPermaLink="false">http://ryancannon.com/2008/02/28/doublethinking-version-targeting</guid>
		<description><![CDATA[Microsoft&#8217;s version targeting proposal for IE8 is all the rage on the Internets. I&#8217;ve been reading the arguments for and against, and have settled on holding two contradictory beliefs in my mind and accepting them both. Version targeting is a terrible proposal, one that threatens the advancement of Web design as we know it, and [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft&#8217;s <a href="http://blogs.msdn.com/ie/archive/2008/01/21/compatibility-and-ie8.aspx" title="IEBlog : Compatibility and IE8">version targeting proposal</a> for IE8 is all the rage on the Internets. I&#8217;ve been reading the arguments for and against, and have settled on <a href="http://en.wikipedia.org/wiki/Doublethink" title="Doublethink - Wikipedia, the free encyclopedia">holding two contradictory beliefs in my mind and accepting them both</a>. Version targeting is a terrible proposal, one that threatens the advancement of Web design as we know it, and props up a monolithic company that hasn&#8217;t been too good to Web developers in the past. We need it.</p>

<p><span id="more-172"></span></p>

<p>Visionaries of <a href="http://zeldman.com/" title="Jeffrey Zeldman Presents">HTML</a>, <a href="http://meyerweb.com/" title="meyerweb.com">CSS</a> and <a href="http://www.quirksmode.com" title="QuirksMode - for all your browser quirks">JavaScript</a> have been promoting this change—which they knew about before the rest of the world—with an odd sort of fanfare. <a href="http://alistapart.com/articles/minorthreat" title="A List Apart: Articles: Version Targeting: Threat or Menace?">Says Zeldman</a>:</p>

<blockquote>
  <p>What’s really new is that by opting out of Microsoft’s version targeting &#8230;
  you get to skip testing in
  future versions of IE. If your site works in IE7 today, it will work in IE47, or
  so Microsoft has promised.</p>
</blockquote>

<p>It&#8217;s the <em>Microsoft has promised</em> line that raises my hackles. Microsoft is somehow going to port every rendering mode since IE 5.5 into future versions of IE. How long will the cost of backporting IE7&#8217;s bugs and quirks to the latest Windows version will be seen as benefiting Microsoft&#8217;s shareholders? Methinks it won&#8217;t be 40 versions. My guess is two. Tops.</p>

<p>By taking the onus of maintaining sites off of Web developers and onto a fairly untrustworthy party—especially one with a <a href="http://www.microsoft.com/silverlight/" title="Microsoft Silverlight: Light Up the Web">business case for stagnating standards-based development</a> and a <a href="http://blogs.wsj.com/deals/2008/02/27/yahoos-deteriorating-defenses-against-the-microsoft-bid/?mod=googlenews_wsj" title="Deal Journal - WSJ.com : Yahoo's Deteriorating Defenses Against the Microsoft Bid">means to force it into broad acceptance</a>—we are making a deal with the devil. Version targeting is bad for the Internet.</p>

<h3>Who are the unenlightened?</h3>

<p>Worse, however, than betting on Microsoft to save us is that Zeldman blames the situation on some theoretical group of unwashed masses that are making bad Web sites:</p>

<blockquote>
  <p>Zillions of people who don’t know any better do tailor sites to the
  quirks of IE6. That’s why an improved IE7 “broke” old sites. And it’s 
  why, in crafting a new switch, Microsoft must build its default to 
  protect unenlightened developers.</p>
</blockquote>

<p>PPK walks lock-step with Zeldman, <a href="http://www.quirksmode.org/blog/archives/2008/01/the_versioning_1.html" title="QuirksBlog: The versioning switch's default is correct">using the same rationale as colonial Europe when pillaging Africa</a>.</p>

<blockquote>
  <p><em>Noblesse oblige.</em> Since we know more and can do more and better things with web sites, more is expected of us. If our ways are so much better, we should shoulder more responsibilities than those whose ways are wrong. Our shoulders are fit to bear these burdens; [standards-unaware web developers] aren&#8217;t.</p>
</blockquote>

<p>Both of these articles assume that these unenlightened people are going to magically become enlightened, and not abuse this new property as they do the rest of HTML currently. What seems realistic to me is that these people will start new projects. They&#8217;ll want to use new IE features. They&#8217;ll use—because they&#8217;re not &#8220;enlightened&#8221;—<code>IE=edge</code>. And Microsoft will have to dream up some other scheme to prevent the Web from breaking, and this hubub will start all over.</p>

<p>We need to stop being elitist. The &#8220;problem sites&#8221; aren&#8217;t just being created by these <a id="ref-unenlightened" href="#note-unenlightened">&#8220;unenlightened&#8221; developers</a>; they were created by developers—enlightened or not—and have been left fallow. Our industry is flush with hit-and-run agencies and freelancers that throw up a site and then dump it on understaffed, underpaid and under-experienced teams to manage. It&#8217;s easy to see that <a href="http://www.happycog.com/about/zeldman/" title="Happy Cog Studios: About Jeffrey Zeldman">three</a> <a href="http://complexspiral.com/about/eric/" title="About Complex Spiral Consulting: Eric A. Meyer">agency</a> <a href="http://quirksmode.org/freelance/intro.html" title="Peter-Paul Koch - Freelancer">guys</a> might focus on sites created by novice Web developers or existing since the 20th century as the main problems, but I have a hard time believing every Happy Cog site would survive IE8 without <em>some</em> kinds of tweaks. Sites which are not actively maintained, but still have value to Internet users—these are the sites Microsoft is afraid of breaking. A fix is never simple if there is no one to do it.</p>

<p>My guess is that the IE7 update is not the one that fueled the version targeting decision: it was the rancor over Vista. A vast number of applications and device drivers would not function with Windows Vista&#8217;s new API&#8217;s, and as a result the operating system has had a fairly frosty reception. IE7&#8217;s release was a party in comparison. Apparently there exists a hearty core of people that desired to use applications and hardware <em>years</em> after they&#8217;ve stopped being maintained. The scripting and CSS updates alluded to with IE8 may bring similar Web sites down, and that&#8217;s ill will Microsoft can&#8217;t afford to engender.</p>

<p>In other words, updating IE without setting up version targeting to a <a id="ref-current" href="#note-current">current browser</a> will break an unknowable number of Web sites which may still contain valuable content but have no means to upgrade and stay current. We need it.</p>

<h3>Opting to opt out</h3>

<p>Somehow, I&#8217;ve got to reconcile this conflict. I&#8217;m glad that Microsoft created a way to improve the state of their browser without throwing away the old Internet. That said, I don&#8217;t have a very high opinion of that company and am loathe to contribute a spare byte of mindshare to their products by inserting IE crutches in my code. I&#8217;m going to let it break. Refusing to use IE&#8217;s meta tag will lock their browser to a predictable set of features and bugs—or as predictable as such things will ever be, and for the foreseeable future, IE7&#8217;s Web standards support is passable enough for most work, and we&#8217;re going to have to support IE7 (the browser, not just the rendering mode) anyway.</p>

<p>I&#8217;ve long believed that Web Developers have been, as a group, too milquetoast about dealing with IE&#8217;s problems. We tediously work around a  cranky browser and then, hypocritically, use buttons that read &#8220;this site requires flash,&#8221; and &#8220;download the PDF viewer.&#8221; For me no longer. Any site in beta, any site I develop for fun, and any site without a demonstrable need for IE8 features is going to stay in IE7 mode. At least, that is, <a href="http://ejohn.org/blog/html5-doctype/" title="John Resig - HTML5 DOCTYPE">until HTML5 is usable</a>.</p>

<h3>Notes</h3>

<ol>
<li><span id="note-unenlightened">Mr. Meyer does <a href="http://alistapart.com/articles/fromswitchestotargets" title="A List Apart: Articles: From Switches to Targets: A Standardista's Journey">cite</a> some Web research, but both studies do not prove anything about the current state of Web development. <a href="http://code.google.com/webstats/" title="Google Code: Web Authoring Statistics">Google&#8217;s statistics</a> surveys the entire Internet with no regard to <em>when</em> a page was developed, while <a href="http://www.markokarppinen.com/20020222.html" title="Marko Karppinen | State of the Validation 2002">Marko Karppinen&#8217;s study</a> assumes that validity has anything to do with standards-based design, <a href="http://www.mikeindustries.com/blog/archive/2004/06/march-to-your-own-standard" title="Mike Davidson  -  March to Your Own Standard">which it clearly does not</a>.</span> <a class="return" href="#ref-unenlightened">↩</a></li>
<li><span id="note-current">If the IE team truly wanted to preserve the Internet, they&#8217;d make version targeting default to IE6 rendering, and not IE7, as IE6 has been actively targeted by Web developers for almost ten years, IE7 a fraction of that. Admitting this, however, makes me die a little on the inside. <a class="return" href="#ref-current">↩</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/02/27/doublethinking-version-targeting/feed</wfw:commentRss>
		</item>
		<item>
		<title>EVE on Rails - Creating an EVE in-game-optimised version of your Rails site</title>
		<link>http://ryancannon.com/2008/02/14/eve-on-rails-creating-an-eve-in-game-optimised-version-of-your-rails-site</link>
		<comments>http://ryancannon.com/2008/02/14/eve-on-rails-creating-an-eve-in-game-optimised-version-of-your-rails-site#comments</comments>
		<pubDate>Thu, 14 Feb 2008 10:15:39 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Web Design/Programming]]></category>

		<guid isPermaLink="false">http://ryancannon.com/2008/02/14/eve-on-rails-creating-an-eve-in-game-optimised-version-of-your-rails-site</guid>
		<description><![CDATA[One thing I love about being a Rails hobbyist is that I can continually think about the best way to do things. With no paycheck hinging on a deliverable, I can refactor continuously until I&#8217;m convinced I have the best code I can muster. Sure, I never get anything done, but the exercise makes me [...]]]></description>
			<content:encoded><![CDATA[<p>One thing I love about being a Rails hobbyist is that I can continually think about the best way to do things. With no paycheck hinging on a deliverable, I can refactor continuously until I&#8217;m convinced I have the best code I can muster. Sure, I never get anything done, but the exercise makes me a better programmer.</p>

<p><span id="more-171"></span>
I mentioned previously <a href="http://ryancannon.com/2008/02/06/setting-up-a-rails-application-for-eve-online">how to set up an EVE Online-focused rails site</a>. After reading through old <a href="http://weblog.rubyonrails.com/">Riding Rails</a> posts, I noticed this excellent post on <a href="http://www.slashdotdash.net/articles/2007/12/04/iphone-on-rails-creating-an-iphone-optimised-version-of-your-rails-site-using-iui-and-rails-2" title="iPhone on Rails - Creating an iPhone optimised version of your Rails site using iUI and Rails 2">iPhone-optimising your rails project</a>. This process is almost exactly the same for sharing views between EVE and a normal browser. In Rails 2.0 all you have to do is register the MIME Type.</p>

<pre><code>config/initializers/mime_types.rb:

Mime::Type.register_alias "text/html", :eve
</code></pre>

<p>Then, in your application controller, use a <code>before_filter</code> to adjust the format as necessary.</p>

<pre><code>app/controllers/application_controller.rb:

before_filter :isolate_eve_browser

private
  # EVE-specific data
  def isolate_eve_browser
    if eve?
      request.format = :eve
      request_trust unless trusted?
      end
    end
  end
</code></pre>

<p>Now everywhere you want to separate your EVE views from your standard browser views, simply use <code>respond_to</code>.</p>

<pre><code>app/controllers/home_controller.rb:

class HomeController &lt; ApplicationController
  def index
    respond_to do |format|
      format.html
      format.eve
    end
  end  
end
</code></pre>

<p>You can then use <code>app/views/home/index.html.erb</code> and <code>app/views/home/index.eve.erb</code> respectively. This means you can also request trust on the appliaction level instead of on the action level as I mentioned previously. Notice that <code>request_trust</code> method above? It should look something like:</p>

<pre><code>app/controllers/application_controller.rb:

private
  def request_trust
    response.headers["eve.trustme"] = (
      &#8220;http://#{request.env['HTTP_HOST']}/&#8221; +
      &#8220;::Your custom message begging for trust.&#8221;
    )
    render :template =&gt; &#8216;trust_me&#8217;
  end
</code></pre>

<p>The action is rounded out by creating <code>app/views/trustme.eve.erb</code>, which is the template rendered above when the user declines to trust you. Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://ryancannon.com/2008/02/14/eve-on-rails-creating-an-eve-in-game-optimised-version-of-your-rails-site/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
