<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.backdrifter.com/~d/styles/itemcontent.css"?><rss 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" version="2.0">

<channel>
	<title>Backdrifter</title>
	
	<link>http://www.backdrifter.com</link>
	<description>The personal site of Jared Hanson</description>
	<pubDate>Tue, 02 Jun 2009 06:33:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.backdrifter.com/backdrifter" type="application/rss+xml" /><item>
		<title>User Interface Implications of Google Wave</title>
		<link>http://www.backdrifter.com/2009/06/01/user-interface-implications-of-google-wave/</link>
		<comments>http://www.backdrifter.com/2009/06/01/user-interface-implications-of-google-wave/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 06:33:20 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[wave]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=132</guid>
		<description><![CDATA[I set aside the time tonight to watch the full hour and a half demo of Google Wave.  Seeing the creators use their product shed some light onto the possibilities of the system.  However, I&#8217;m glad I read the technical specifications before witnessing the user interface.
The initial focus and reaction around Google Wave [...]]]></description>
			<content:encoded><![CDATA[<p>I set aside the time tonight to <a href="http://www.youtube.com/watch?v=v_UyVmITiYQ">watch</a> the full hour and a half demo of <a href="http://wave.google.com/">Google Wave</a>.  Seeing the creators use their product shed some light onto the possibilities of the system.  However, I&#8217;m glad I read the technical specifications before witnessing the user interface.</p>
<p>The initial focus and reaction around Google Wave centers, rightfully, on communication.  In particular, the real-time aspects were highlighted and comparisons drawn to <a href="http://twitter.com/">Twitter</a> and <a href="http://friendfeed.com/">FriendFeed</a>.  Some even tout it as the &#8220;one true&#8221; communication tool.</p>
<p>It&#8217;s important to note, though, that different people have different needs.  For example, both <a href="http://www.wordyard.com/2009/05/29/wave-or-river/">Scott Rosenberg</a> and <a href="http://www.avc.com/a_vc/2009/05/cloud-based-messaging.html">Fred Wilson</a> find the interface to be complicated.  Fortunately, under the open development model <a href="http://www.google.com/">Google</a> is taking, others are free to design simpler interfaces.</p>
<p><span id="more-132"></span></p>
<p>Looking at things from a technical perspective, the communication-centric mindset is noticeably absent.  The general architecture is nothing more than an instantly distributed version control system, complete with access control and an extensible content model.</p>
<p>True, that forms a solid foundation for Google Wave the communication tool.  It also forms a solid foundation for myriad other applications, including those yet to be imagined.  (I&#8217;m starting a timer; stop me when the first <a href="http://fuse.sourceforge.net/">FUSE</a> file system is released.)</p>
<p>While its interesting to explore the impact of Wave on existing ideas, I also think its important to step away from drawing comparisons.  The &#8220;killer app&#8221; for Wave is likely something that doesn&#8217;t exist currently.  The synthesis of features in the underlying technology will allow something new to germinate.</p>
<p>It&#8217;ll be interesting to see how this evolves.  I fully expect to see many front-end interfaces to Wave designed.  Some of those will certainly <i>not</i> be geared toward communication uses for the back-end.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/06/01/user-interface-implications-of-google-wave/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Google Wave Announcement</title>
		<link>http://www.backdrifter.com/2009/05/28/the-google-wave-announcement/</link>
		<comments>http://www.backdrifter.com/2009/05/28/the-google-wave-announcement/#comments</comments>
		<pubDate>Fri, 29 May 2009 05:05:35 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[wave]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=131</guid>
		<description><![CDATA[The big news to hit the web today was the announcement of Google Wave at Google I/O.  Described as &#8220;the e-mail of the future,&#8221; Wave is an ambitious project with a grand vision of unified communications.
A concise description of what Wave is, exactly, seems to be hard to formulate.  You have to see [...]]]></description>
			<content:encoded><![CDATA[<p>The big news to hit the web today was the announcement of <a href="http://wave.google.com/">Google Wave</a> at <a href="http://code.google.com/events/io/">Google I/O</a>.  Described as &#8220;the e-mail of the future,&#8221; Wave is an ambitious project with a grand vision of unified communications.</p>
<p>A concise description of what Wave is, exactly, seems to be hard to formulate.  You have to see it to understand it seems to be a growing consensus.  That is a bit frustrating to those trying to conceptualize, but it may be appropriate if Wave truly is a leap forward for communication.</p>
<p><a href="http://radar.oreilly.com/tim/">Tim O&#8217;Reilly</a> has the best <a href="http://radar.oreilly.com/2009/05/google-wave-what-might-email-l.html">description</a> I&#8217;ve come across:</p>
<blockquote><p>
Jens, Lars, and team re-imagined email and instant-messaging in a connected world, a world in which messages no longer need to be sent from one place to another, but could become a conversation in the cloud. Effectively, a message (a wave) is a shared communications space with elements drawn from email, instant messaging, social networking, and even wikis.
</p></blockquote>
<p><span id="more-131"></span></p>
<p><a href="http://www.techcrunch.com/">TechCrunch</a> also has an extensive <a href="http://www.techcrunch.com/2009/05/28/google-wave-drips-with-ambition-can-it-fulfill-googles-grand-web-vision/">rundown</a> of Wave and the capabilities that were demonstrated today.</p>
<p>Wave is the result of a two-year long effort led by Lars and Jens Rasmussen, the creators of what became <a href="http://maps.google.com/">Google Maps</a>.  Their success on that project gave them the opportunity to pursue this open-ended idea.  While they have raised the hype meter to new levels, only time will tell if they have another hit on their hands.</p>
<p>Wave remains in the prototype stage at this juncture.  It was announced at a developer conference for a reason: feedback is needed from the engineering community.  For it to gain public acceptance, developers will need to embrace it and build capabilities around it.</p>
<p>My interest has certainly been piqued.  I&#8217;ve spent the day reading articles, watching videos, and researching specifications.  Expect follow-up posts with more detailed thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/05/28/the-google-wave-announcement/feed/</wfw:commentRss>
		</item>
		<item>
		<title>People, Services and Content</title>
		<link>http://www.backdrifter.com/2009/05/27/people-services-and-content/</link>
		<comments>http://www.backdrifter.com/2009/05/27/people-services-and-content/#comments</comments>
		<pubDate>Wed, 27 May 2009 16:46:40 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[eaut]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[xrd]]></category>

		<category><![CDATA[xrds]]></category>

		<category><![CDATA[yadis]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=130</guid>
		<description><![CDATA[A couple weeks ago, Marc Canter wrote a entry outlining the constructs of people, services and content.  These are the central pillars around which collaboration software is structured.
Content, as a concept, encompasses a wide area.  It could be a newspaper article, a radio program, a TV show, a spreadsheet or presentation.  Creating [...]]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago, <a href="http://marc.blogs.it/">Marc Canter</a> wrote a <a href="http://blog.broadbandmechanics.com/2009/05/08/people-services-and-content-the-3-hiways/">entry</a> outlining the constructs of people, services and content.  These are the central pillars around which collaboration software is structured.</p>
<p>Content, as a concept, encompasses a wide area.  It could be a newspaper article, a radio program, a TV show, a spreadsheet or presentation.  Creating and managing content has been one of the primary purposes of computers, ever since they came into existence.</p>
<p>With the rise of the Internet, and particularly social networking, there has been a renewed focus on people and the role they play in a system.  Proper emphasis on individuals and groups makes collaboration more efficient.</p>
<p><span id="more-130"></span></p>
<p>One of the problems surrounding identity in the past has been the lack of a widely adopted standard.  This has made it very difficult to build solutions that are interoperable.  Thankfully, <a href="http://openid.net/">OpenID</a> is gaining traction, along with usability improvements through <a href="http://eaut.org/">EAUT</a> and other initiatives.</p>
<p>Underlying OpenID, the <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xri">XRD</a> specification, emerging from earlier work on <a href="http://xrds-simple.net/">XRDS-Simple</a> and <a href="http://yadis.org/">Yadis</a>, will tie people and content together through services that allow interaction among the two.</p>
<p>There is a lot of work remaining, but its conceivable at this point to envision a future where signing up for a service is as simple as entering your email address and approving access. When the mesh realizes that level of usability, innovation will both flourish and be self-reinforcing.</p>
<p>Developers would be well advised to pay attention to these standards.  Integrating these technologies will allow software to participate in the larger web-based ecosystem, both deriving and yielding benefits from and to the whole.</p>
<p>As I noted in my <a href="http://blog.broadbandmechanics.com/2009/05/08/people-services-and-content-the-3-hiways/#comment-17802">comment</a>:</p>
<blockquote><p>
The standards are all coming together. In my mind, the flow looks something like this:</p>
<p>1. People become directly addressable (i.e. through email addresses).<br />
2. Programs dereference the email address and get an XRD document, which identifies associated services.<br />
3. Programs interact with the discovered services to publish and subscribe to content.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/05/27/people-services-and-content/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Multiple Versions of Rake</title>
		<link>http://www.backdrifter.com/2009/04/07/using-multiple-versions-of-rake/</link>
		<comments>http://www.backdrifter.com/2009/04/07/using-multiple-versions-of-rake/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 18:58:04 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[chrysalis]]></category>

		<category><![CDATA[rake]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[rubygems]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=129</guid>
		<description><![CDATA[Rake has become a critical component of my development toolchain.  So much so that I have developed extensions, such as Chrysalis, to assist with common aspects of the build cycle.
However, due to time constraints, Chrysalis does not support the latest version of Rake (currently 0.8.3).  The 0.8 branch reworked some of the internals, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rake.rubyforge.org/">Rake</a> has become a critical component of my development toolchain.  So much so that I have developed extensions, such as <a href="http://chrysalis.rubyforge.org/">Chrysalis</a>, to assist with common aspects of the build cycle.</p>
<p>However, due to time constraints, Chrysalis does not support the latest version of Rake (currently 0.8.3).  The 0.8 branch reworked some of the internals, and Chrysalis was developed against 0.7.3.  As such, I often need to quickly switch between multiple versions of Rake.</p>
<p>Thankfully, the executable <a href="http://www.rubygems.org/">RubyGems</a> places in the bin directory makes this easy.  I had long been curious how this works, so I took the time to figure it out.</p>
<p><span id="more-129"></span></p>
<p>The executable scripts generated by RubyGems, in this case for Rake, look like the following:<br />
<code><br />
require 'rubygems'<br />
&nbsp;<br />
version = "&gt;= 0"<br />
&nbsp;<br />
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then<br />
&nbsp;&nbsp;version = $1<br />
&nbsp;&nbsp;ARGV.shift<br />
end<br />
&nbsp;<br />
gem 'rake', version<br />
load 'rake'<br />
</code></p>
<p>There is a bit of regular expression magic that works on the first argument to the command, accessed through <code>ARGV.first</code>.  The <code>=~</code> is the positive match operator for regular expressions.  If a match is found, a portion of it will be stored in the global variable <code>$1</code>.</p>
<p>The goal of the RubyGems-generated script is to match a user-supplied version number, without interfering with any other arguments the actual script may expect.  In order to do so, the version argument is surrounded by underscores.  This is enforced by using the <code>^</code> and <code>$</code> as achors for the beginning and end of the string, respectively.</p>
<p>The result of all this is a simple way to switch between versions easily on the command line.<br />
<code><br />
$ rake _0.7.3_ --version<br />
$ rake _0.8.3_ --version<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/04/07/using-multiple-versions-of-rake/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Green Road to Prosperity</title>
		<link>http://www.backdrifter.com/2009/03/30/the-green-road-to-prosperity/</link>
		<comments>http://www.backdrifter.com/2009/03/30/the-green-road-to-prosperity/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 01:28:38 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[climate]]></category>

		<category><![CDATA[energy]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=128</guid>
		<description><![CDATA[John Doerr a partner at Kleiner Perkins Caufield &#038; Byers has written an article on Scientific American in which he suggests:

America is confronting three interrelated crises: an economic crisis, a climate crisis and an energy security crisis. The country’s best response to all three is a bold, coor­dinated campaign of investment and incentives to accelerate [...]]]></description>
			<content:encoded><![CDATA[<p>John Doerr a partner at <a href="http://www.kpcb.com/">Kleiner Perkins Caufield &#038; Byers</a> has written an <a href="http://www.sciam.com/article.cfm?id=the-green-road-to-prosperity">article</a> on <a href="http://www.sciam.com/">Scientific American</a> in which he suggests:</p>
<blockquote><p>
America is confronting three interrelated crises: an economic crisis, a climate crisis and an energy security crisis. The country’s best response to all three is a bold, coor­dinated campaign of investment and incentives to accelerate green innovation. Doing so will ensure that the U.S. becomes the worldwide winner in the next great global industry: green technologies.
</p></blockquote>
<p>After briefly summarizing the initiatives being undertaken by three companies that his venture capital firm has invested in, he notes:</p>
<blockquote><p>
Notice the trend. Two of these ventures came from outside the U.S. Of today’s top 30 solar, wind and advanced battery companies, American firms hold only six spots. That should worry us. In the race to save the planet, we are not winning.
</p></blockquote>
<p><span id="more-128"></span></p>
<p>While I agree with the policies he recommends for the United States, it is important to note that any innovation that solves sustainability challenges, no matter what country it originates from, makes everyone winners.</p>
<p>Competitive spirit, without a doubt, drives entrepreneurs and serves as a catalyst for innovation.  But, many of the major problems we face today, we also face together.  Collaboration is just as important competition.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/03/30/the-green-road-to-prosperity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Connecting VPN Tracker to Linksys BEFVP41</title>
		<link>http://www.backdrifter.com/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/</link>
		<comments>http://www.backdrifter.com/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 04:24:08 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[equinux]]></category>

		<category><![CDATA[linksys]]></category>

		<category><![CDATA[vpn]]></category>

		<category><![CDATA[vpntracker]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=127</guid>
		<description><![CDATA[One of my priorities when setting up my new MacBook Pro was to allow VPN access into my home network.  When I&#8217;m working in a cafe, it is occasionally handy to access files or data on a system at my apartment. 
VPNs are notoriosly difficult to configure and maintain, and I wanted something that [...]]]></description>
			<content:encoded><![CDATA[<p>One of my priorities when setting up my new <a href="http://www.apple.com/macbookpro/">MacBook Pro</a> was to allow <a href="http://en.wikipedia.org/wiki/VPN">VPN</a> access into my home network.  When I&#8217;m working in a cafe, it is occasionally handy to access files or data on a system at my apartment. </p>
<p>VPNs are notoriosly difficult to configure and maintain, and I wanted something that would eliminate most of these hassles.  As such, I decided to use <a href="http://www.equinux.com/us/products/vpntracker/index.html">VPN Tracker</a> from <a href="http://www.equinux.com/us/start/index.html">equinux</a> to connect to my <a href="http://www.linksysbycisco.com/US/en/products/BEFVP41">Linksys BEFVP41</a>.</p>
<p>It&#8217;s not how I envision the ideal scenario, and it requires some geek-cred to set up, but it does work.</p>
<p><span id="more-127"></span></p>
<p><b>Add a New Connection</b></p>
<p><a href="/assets/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/step1.jpg"><img src="/assets/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/step1-tn.jpg" alt="Step 1" width="125" height="100" class="align-left"/></a> In the initial window that is displayed when launching VPN Tracker, click the + button to add a new connection.  A device selection dialog will appear, allowing you to choose a template of common settings for the particular connection being setup.</p>
<p><a href="/assets/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/step2.jpg"><img src="/assets/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/step2-tn.jpg" alt="Step 2" width="225" height="136" class="align-right"/></a> In my case, I am connecting to a Linksys BEFVP41, so I chose the corresponding selection.  equinux provides a <a href="http://www.equinux.com/cms_components/media/vpnt/VPNT_Interop_Howtos/81/Linksys_BEFVP41-4-EN.pdf">how-to</a> for interoperability between VPN Tracker and the BEFVP41.  It&#8217;s based on the previous version of VPN Tracker, but has some good information I suggest reading.</p>
<p><b>Configure the Connection</b></p>
<p><a href="/assets/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/step3.jpg"><img src="/assets/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/step3-tn.jpg" alt="Step 3" width="400" height="261" class="center"/></a></p>
<p>There are a lot of toggles to fiddle with under the Basic and Advanced configuration tabs.  To be honest, even I can&#8217;t describe what each is used for.</p>
<p>The first critical setting is <b>VPN Gateway</b>.  This can be either an IP address or host name.  I&#8217;ve chosen to use <a href="http://www.dyndns.com/">DynDNS.com</a> to point a DNS entry to my IP address, which is dynamically assigned by <a href="http://www.att.com/">AT&#038;T</a>.  I recommend this method, as dynamic IP addresses can and will periodically change, potentially leaving you stranded from your network if you are unable to determine the new address.</p>
<p><b>Remote Networks</b> need to be configured as well, so the address range of the internal network is known.  Typical home networks will use 192.168.1.0 / 255.255.255.0.  I&#8217;ve modified my address range just to be different.</p>
<p>Finally, set the <b>Identifiers</b> to Local Endpoint IP Address and Remote Endpoint IP Address.</p>
<p>With those settings, flip the connection switch to on and hope the connection establishes correctly.  If it works, you should be able to issue a ping command to the broadcast address and see responses from the systems on your network.</p>
<p><code>$ ping 192.168.1.255</code></p>
<p>As I previously noted, there are many permutations of settings, both in VPN Tracker and on the Linksys BEFVP41 itself.  As I recall, my Linksys BEFVP41 should be using the factory settings, which I&#8217;ve left alone.  If you encounter trouble, break out the documentation, sharpen your Google search skills, and get ready to learn a whole lot of esoteric network configuration knowledge.  Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/02/18/connecting-vpn-tracker-to-linksys-befvp41/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MobileMe Activation</title>
		<link>http://www.backdrifter.com/2009/02/17/mobileme-activation/</link>
		<comments>http://www.backdrifter.com/2009/02/17/mobileme-activation/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 04:08:22 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[mobileme]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=126</guid>
		<description><![CDATA[Approximately one month ago, I received my new MacBook Pro and began the process of setting it up and configuring its software.  One of the first things I did was use the discounted MobileMe activation key to renew my subscription.
Perhaps it was the clean, new sheen of the display, but I was struck by [...]]]></description>
			<content:encoded><![CDATA[<p>Approximately one month ago, I received my new <a href="http://www.apple.com/macbookpro/">MacBook Pro</a> and began the process of setting it up and configuring its software.  One of the first things I did was use the discounted <a href="http://www.apple.com/mobileme/">MobileMe</a> activation key to renew my subscription.</p>
<p>Perhaps it was the clean, new sheen of the display, but I was struck by how even this simple process has received Apple&#8217;s design polish and refinement.  I took a couple screen shots to document the process, which I include here along with my notes.</p>
<p><span id="more-126"></span></p>
<p>The MobileMe me retail box comes with a slip of paper inside containing an activation key along with instructions directing you to <a href="http://www.me.com/activate">www.me.com/activate</a> to get started.</p>
<p>The first step is to enter the activation key, and either create a new account, reactivate an expired account, or renew an existing one.</p>
<p><a href="/assets/2009/02/17/mobileme-activation/step1.jpg"><img src="/assets/2009/02/17/mobileme-activation/step1.jpg" alt="Step 1" width="375" height="200" class="center"/></a></p>
<p>I renewed my existing account, so I&#8217;m not sure where the flow goes if one of the other two paths are taken.  It seems to me, however, that things could be simplified further, as it should be possible to combine renewal and reactivation of expired accounts into a single option.</p>
<p>Some confusion could be encountered when reactivating an expired account, because that option also asks for both a member name and password.  My suspicion is that many people with expired accounts are likely to have forgotten or discarded their password, especially if the account has been inactive for some time.</p>
<p>After logging in with my member name and password, the second screen prompted me to confirm my renewal.</p>
<p><a href="/assets/2009/02/17/mobileme-activation/step2.jpg"><img src="/assets/2009/02/17/mobileme-activation/step2.jpg" alt="Step 2" width="375" height="128" class="center"/></a></p>
<p>One click later, and my renewal was successful.</p>
<p><a href="/assets/2009/02/17/mobileme-activation/step3.jpg"><img src="/assets/2009/02/17/mobileme-activation/step3.jpg" alt="Step 3" width="375" height="99" class="center"/></a></p>
<p>Simple, quick, and easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/02/17/mobileme-activation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Regarding Format Debt</title>
		<link>http://www.backdrifter.com/2009/01/12/regarding-format-debt/</link>
		<comments>http://www.backdrifter.com/2009/01/12/regarding-format-debt/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 00:27:17 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[atom]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[microformats]]></category>

		<category><![CDATA[mime]]></category>

		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=125</guid>
		<description><![CDATA[An interesting (non-geeks, excuse yourself) discussion has arisen as the result of Bill de hÓra&#8217;s post Format Debt, what you can&#8217;t say.  At the heart of the argument is how to appropriately indicate layering given the inadequacy of Internet media types to specify that information.  The problem crops up often, especially in regard [...]]]></description>
			<content:encoded><![CDATA[<p>An interesting (non-geeks, excuse yourself) discussion has arisen as the result of <a href="http://dehora.net/">Bill de hÓra</a>&#8217;s post <a href="http://dehora.net/journal/2009/01/10/format-debt-what-you-cant-say/">Format Debt, what you can&#8217;t say</a>.  At the heart of the argument is how to appropriately indicate layering given the inadequacy of <a href="http://en.wikipedia.org/wiki/Internet_media_type">Internet media types</a> to specify that information.  The problem crops up often, especially in regard to <a href="http://en.wikipedia.org/wiki/HTML">HTML</a> with nested <a href="http://microformats.org/">microformats</a>.</p>
<p>For example, an HTML document is served up with a media type of <code>text/html</code>, but the actual information in the page is a person&#8217;s contact information marked up using <a href="http://microformats.org/wiki/hcard">hCard</a>.  An application interested in utilizing that contact information has no way of knowing whether or not the page contains that data without resorting to parsing it.</p>
<p><span id="more-125"></span></p>
<blockquote><p>
We say we want layered formats, because that&#8217;s what the combination of IETF IDs, W3C Recommendations and deployed browsers and servers allow us to say. It&#8217;s the Web version of of the <a href="http://www.paulgraham.com/avg.html">Blub paradox</a>.  What we want is layered data.  What we want is not just to qualify a media type, but to describe the ingredients in the entity whose &#8220;shell&#8221; is the media type.
</p></blockquote>
<p>I&#8217;d suggest that if you arrive at this point, it may indicate you&#8217;ve picked the wrong &#8220;shell.&#8221; Maybe I&#8217;m too dismissive, but I think there will always exist an impedance mismatch when attempting to define nested schemas for formats not suited to the purpose.  The fact that we&#8217;ve reached a certain level of maturity with regard to extensibility (a huge engineering boon) is an exacerbating factor.</p>
<p>Before I get criticized for this viewpoint, I want to note explicitly that I am a proponent of microformats.  I think they are incredible, and the enabling potential they offer to future browser extensions is well worth the effort in defining and developing them.</p>
<p>However, I believe this propensity towards nesting is ill-suited for scenarious involving structured data, often implying machine-to-machine communication.  Any inadequecies inherent in media types can be easily overcome: simply define more formats that don&#8217;t necessitate deeper nesting.  As a bonus, this fully complies with the <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> architectural constraints.</p>
<p>In the address book example, HTML pages with microformats can continue to be delivered to people surfing via browsers.  However, applications that are interested in structured data can request the same information be returned, not as HTML, but as <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>, a format designed specifically for the purpose of storing contact information, and delivered with a media type of <code>text/x-vcard</code>.</p>
<p>Nesting information in <a href="http://en.wikipedia.org/wiki/Atom_(standard)">Atom</a> (or <a href="http://en.wikipedia.org/wiki/RSS_(file_format)">RSS</a>), while not obviating the media type issue, does not pose nearly the same problems.  The reason is because Atom has a clear purpose as a container format, namely carrying a feed of items, such as news articles, that are generated over time.  In contrast to the generic document markup of HTML, there are already constraints in place that should serve as guides when deciding whether or not Atom is an appropriate container.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2009/01/12/regarding-format-debt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Last Post of 2008</title>
		<link>http://www.backdrifter.com/2008/12/31/last-post-of-2008/</link>
		<comments>http://www.backdrifter.com/2008/12/31/last-post-of-2008/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 01:45:33 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=124</guid>
		<description><![CDATA[It&#8217;s New Year&#8217;s Eve, and while I&#8217;m not the type to make resolutions, today does provide an opportunity to reflect on the past year and look forward to the next.
Simplification was one of my priorities in 2008.  In general, I try to live relatively minimally.  However, it does require a concentrated effort to [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s New Year&#8217;s Eve, and while I&#8217;m not the type to make resolutions, today does provide an opportunity to reflect on the past year and look forward to the next.</p>
<p>Simplification was one of my priorities in 2008.  In general, I try to live relatively minimally.  However, it does require a concentrated effort to identify those things which are unnecessary or inefficient.  I eliminated many sources of both mental and physical clutter, which allows me to focus on things that truly matter.</p>
<p>My engineering background, combined with a general curiosity, causes me to constantly brainstorm new ideas.  At times, this can be overwhelming, if not tempered by a degree of focus.  Thankfully, I&#8217;ve been able to maintain focus and have made steady progress on the projects I&#8217;m undertaking.</p>
<p>I intend to carry this momentum forward into the new year.  With continued determination, and a little luck, 2009 should present some exciting opportunities.</p>
<p>Thank you to my family and friends, both new and old.  I wish you all a Happy New Year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2008/12/31/last-post-of-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google’s Many Mobile Platforms</title>
		<link>http://www.backdrifter.com/2008/11/18/googles-many-mobile-platforms/</link>
		<comments>http://www.backdrifter.com/2008/11/18/googles-many-mobile-platforms/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 06:00:41 +0000</pubDate>
		<dc:creator>Jared Hanson</dc:creator>
		
		<category><![CDATA[Unknown]]></category>

		<category><![CDATA[android]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://www.backdrifter.com/?p=123</guid>
		<description><![CDATA[After a couple days of working through Apple&#8217;s infamous App Store bureaucracy, the latest version of Google Mobile App is available.  The feature everyone is raving about is, of course, the ability to lift the phone to your ear and simply say what you are searching for.  I&#8217;ve installed it on my iPhone, [...]]]></description>
			<content:encoded><![CDATA[<p>After a couple days of working through <a href="http://www.apple.com/">Apple</a>&#8217;s infamous <a href="http://www.apple.com/iphone/appstore/">App Store</a> bureaucracy, the latest version of <a href="http://www.google.com/mobile/apple/app.html">Google Mobile App</a> is available.  The feature everyone is raving about is, of course, the ability to lift the phone to your ear and simply say what you are searching for.  I&#8217;ve installed it on my <a href="http://www.apple.com/iphone/">iPhone</a>, and it is pretty slick.</p>
<p>One of the more interesting articles I came across in the days preceding the release, was on <a href="http://technologizer.com/">Technologizer</a>, which asked <a href="http://technologizer.com/2008/11/14/how-long-does-google-baby-the-iphone/">How Long Does Google Baby the iPhone?</a></p>
<blockquote><p>
I am, however, fascinated by one thing about it: The fact that it’s debuting on the iPhone. It’s the second interesting Google app to do so in recent weeks. (Google Earth made its mobile premiere on the iPhone back in late October.) The iPhone is a terrific platform for mobile apps, so there’d be nothing noteworthy about this except for one thing: Google has its own terrific platform for mobile apps, Android.
</p></blockquote>
<p>The answer to the question, in my opinion, is simple: as long as iPhone is a first-tier mobile platform (read: forever).</p>
<p><span id="more-123"></span></p>
<p>To <a href="http://www.google.com/">Google</a>, the only platform that matters is the web.  That is one of the key aspects to their success, and it is ingrained deeply in their culture.  So much so, that any software platform developed by Google is done so under the primary goal of advancing the web itself.</p>
<p><a href="http://www.android.com/">Android</a> as a mobile operating system is, clearly, the most overt platform play from Google to date.  However, if mere in-house control of a platform exerted influence on support for third-party platforms, Google&#8217;s web strategy would begin to decay.</p>
<p>I suspect Google realizes this tendency, which is one of the reasons why Android is completely open source.  No company, not even Google, its primary creator, can claim complete control.  The act of open sourcing the platform created a level playing field, perhaps most importantly within Google itself.</p>
<p>Contrast this to <a href="http://www.microsoft.com/">Microsoft</a>, where support for any non-Microsoft technologies is met with overwhelming resistance.  Through their subsidiary <a href="http://www.tellme.com/">Tellme</a>, Microsoft had the capability to beat Google to the iPhone with this technology, and gain ground in the mobile search arena.  That didn&#8217;t happen.</p>
<p>Microsoft sees the web running on top of its platform.  Google sees platforms running on top of the web.  Advantage: Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.backdrifter.com/2008/11/18/googles-many-mobile-platforms/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
