<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.1" -->
<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/"
	>

<channel>
	<title>lesscode.org</title>
	<link>http://lesscode.org</link>
	<description>AAaaaaahhhhrrrrrrr!</description>
	<pubDate>Sun, 19 Aug 2007 14:16:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.1</generator>
	<language>en</language>
			<item>
		<title>Design Patterns as a statement of failure</title>
		<link>http://lesscode.org/2006/10/01/design-patterns-as-a-statement-of-failure/</link>
		<comments>http://lesscode.org/2006/10/01/design-patterns-as-a-statement-of-failure/#comments</comments>
		<pubDate>Sun, 01 Oct 2006 18:14:37 +0000</pubDate>
		<dc:creator>Aristotle Pagaltzis</dc:creator>
		
	<category>Talk</category>
		<guid isPermaLink="false">http://lesscode.org/2006/10/01/design-patterns-as-a-statement-of-failure/</guid>
		<description><![CDATA[Mark Jason Dominus:

If the Design Patterns movement had been popular in the 1980’s, we wouldn’t even have C++ or Java; we would still be implementing Object-Oriented Classes in C with structs, and the argument would go that since programmers were forced to use C anyway, we should at least help them as much as possible. [...]]]></description>
			<content:encoded><![CDATA[<p><cite><a href="http://www.plover.com/blog/prog/design-patterns.html" title="Design patterns of 1972">Mark Jason Dominus</a></cite>:</p>

<blockquote cite="http://www.plover.com/blog/prog/design-patterns.html"><p>If the Design Patterns movement had been popular in the 1980’s, we wouldn’t even have C++ or Java; we would still be implementing Object-Oriented Classes in C with structs, and the argument would go that since programmers were forced to use C anyway, we should at least help them as much as possible. But the way to provide as much help as possible was not to train people to habitually implement Object-Oriented Classes when necessary; it was to develop languages like C++ and Java that had this pattern built in, so that programmers could concentrate on using OOP style instead of on implementing it.</p></blockquote>

<p><ins><p><i>Update:</i> and <a href="http://www.plover.com/blog/prog/johnson.html" title="Ralph Johnson on design patterns">an excellent follow-up by Mark</a> addressing a <a href="http://www.cincomsmalltalk.com/userblogs/ralph/blogView?entry=3335803396" title="Design patterns and language design">response by Ralph Johnson (one of the Gang of Four)</a>.</p></ins></p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/10/01/design-patterns-as-a-statement-of-failure/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Luke Plant on the pain of going back</title>
		<link>http://lesscode.org/2006/10/01/luke-plant-on-the-pain-of-going-back/</link>
		<comments>http://lesscode.org/2006/10/01/luke-plant-on-the-pain-of-going-back/#comments</comments>
		<pubDate>Sun, 01 Oct 2006 18:09:04 +0000</pubDate>
		<dc:creator>Aristotle Pagaltzis</dc:creator>
		
	<category>Talk</category>
		<guid isPermaLink="false">http://lesscode.org/2006/10/01/luke-plant-on-the-pain-of-going-back/</guid>
		<description><![CDATA[I wanted to point out an article called Why learning Haskell/Python makes you a worse programmer.

When I found the link in my aggregator, I was expecting the worst, but the title is just gratuitously incendiary. The actual article is thoroughly reasonable. It asserts that learning better languages will make your day job an excercise in [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to point out an article called <a href="http://lukeplant.me.uk/blog.php?id=1107301645">Why learning Haskell/Python makes you a worse programmer</a>.</p>

<p>When I found the link in my aggregator, I was expecting the worst, but the title is just gratuitously incendiary. The actual article is thoroughly reasonable. It asserts that learning better languages will make your day job an excercise in demoralization and then asks the question: if you’re a C#/Java developer in the trenches, how <em>do</em> you benefit from your broadened horizons?</p>

<p>There is lots of good discussion in the comments; don’t skip them. What there is not, unfortunately but unsurprisingly, is an easy solution.</p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/10/01/luke-plant-on-the-pain-of-going-back/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Many Lives &#8212; Just One You</title>
		<link>http://lesscode.org/2006/04/15/many-lives-just-one-you/</link>
		<comments>http://lesscode.org/2006/04/15/many-lives-just-one-you/#comments</comments>
		<pubDate>Sat, 15 Apr 2006 12:53:06 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
		
	<category>First they ignore you..</category>
	<category>Web as platform</category>
		<guid isPermaLink="false">http://lesscode.org/2006/04/15/many-lives-just-one-you/</guid>
		<description><![CDATA[You lead many lives. You&#8217;re a spouse and a parent. A soccer coach and a scout leader. A volunteer and an activist.  You are an employee and an entrepreneur. Why do the systems you use not understand this?  It&#8217;s like somebody out there just doesn&#8217;t care.

If you&#8217;re like me, and I know I [...]]]></description>
			<content:encoded><![CDATA[<p>You lead many lives. You&#8217;re a spouse and a parent. A soccer coach and a scout leader. A volunteer and an activist.  You are an employee and an entrepreneur. Why do the systems you use not understand this?  It&#8217;s like somebody out there just doesn&#8217;t care.</p>

<p>If you&#8217;re like me, and I know I am, you&#8217;ve got about a hundred accounts to keep track of on various systems &mdash; systems on the Internet, systems running in various corporate data-centers accessible only via VPN.  You&#8217;ve got a slew of credentials to manage and no ability to leverage all that information at once. You spend your day duplicating and copying information between these systems, like some sort of freaking acolyte &mdash; serving The System &mdash; when The System should be serving you.</p>

<p>Meanwhile a million Web 2.0 <a href="http://www.sacredcowdung.com/archives/2006/03/all_things_web.html">startups</a> are <a href="http://www.zefrank.com/flowers/">blooming</a>.  All DIY&#8217;ing for attention-equals-users-equals-dollars.  Many of those startups are trying to tap <a href="http://stikipad.com/features/">both</a> the consumer market and the corporate one too.  It ain&#8217;t easy though since consumer buzz or even adoption does <a href="http://www.bubblegeneration.com/2006/02/getting-ninged-getting-flocked-two.cfm">not always lead</a> to access to fat corporate accounts.</p>

<p>What would it mean to you if you could use your favorite set of Web Apps all day and never have to log in twice regardless of which life you were leading moment-by-moment? How much more effective would you be if for each application, all your information in that application was available at once instead of <a href="http://en.wikipedia.org/wiki/Deep_web">walled off</a> in separate accounts?</p>

<p>What would it mean to a Web Application provider if it was able to paint that picture for you?  Would you be more <a href="http://www.monochrom.at/markenzeichnen/index-eng.htm">loyal</a> to that brand?  Would you induce your employer, your client, your scout troop to use/purchase that brand?</p>

<p>I think there is a way and if you&#8217;ll lend me a few more minutes of your precious attention I&#8217;ll spin it out.</p>

<h3>Imagine</h3>

<p>The prevailing identity model in information systems arose around the enterprise system deployment model.  In an enterprise system deployment, substantially all of the users of the system are employees of the enterprise.  The enterprise itself is not represented at all in the model since each system serves only one enterprise.</p>

<p>This identity model has been carried forward to Internet-based applications.  Just about all Internet-based applications offer accounts.  An account represents a contract between the service provider and an individual.  As such, most Internet-based applications are modeled like one big enterprise. Web Applications that offer corporate contracts offer separate identity systems for each corporate entity.  At the end of the day, each of these identity systems &mdash; the &#8220;consumer&#8221; space ones and the &#8220;corporate&#8221; ones are separate.</p>

<p>Now let&#8217;s imagine a future where all applications are Internet-based.  It&#8217;s easy if you try.  Further, lets imagine that the market for some key Web Applications has settled down and <a href="http://weblog.infoworld.com/techwatch/archives/005031.html">consolidated</a> a bit.  So instead of a hundred wiki providers maybe there are three very popular ones.  Kind of the way things were five years ago on the <a href="http://en.wikipedia.org/wiki/Microsoft">desktop</a> with Word/Excel/Powerpoint/Outlook but this time, Internet-based.</p>

<p>Now let&#8217;s take a look at a knowledge worker, &#8220;Jessica&#8221; using say a wiki service, &#8220;WikiGood&#8221;.  In the morning Jessica spends a few minutes in WikiGood writing out her plans for the day and reviewing progress against yesterday&#8217;s.  Jessica has consulting engagements with two clients, &#8220;<a href="http://politicalhumor.about.com/od/jibjab/v/jibjabboxmart.htm">BigBoxCorp</a>&#8221; and &#8220;NowYouSeeIt&#8221; but she&#8217;s in luck &mdash; both of her clients have standardized on the WikiGood service and use it heavily for day-to-day operations. As the day progresses she will interact with both of these corporate wikis as well.</p>

<p>In the first usage instance, Jessica is working on her own behalf, and wishes to keep the content private.  What happens when she decides to do some work for BigBoxCorp?  Well she logs out of WikiGood and logs back in with the identity assigned to her by BigBoxCorp.  No problem.  Other than the fact that she has two sets of credentials for WikiGood, oh snap, hang on &mdash; three sets of credentials because she&#8217;ll also be doing work for NowYouSeeIt.</p>

<p>There is a <a href="http://it.slashdot.org/article.pl?sid=05/09/27/1935210&#038;from=rss">proliferation</a> of accounts and credentials, but that&#8217;s not the worst of it.  The deeper problem is that each WikiGood account is an island &mdash; even though all of the accounts are Jessica&#8217;s.  Her preferences, her usage history, in short, everything associated with her in the system is divided, <a href="http://en.wikipedia.org/wiki/Deep_web">walled off</a>, in three separate spaces.  When Jessica is logged in under her NowYouSeeIt account and issues a search for instance, she will not find results for any of her personal wiki pages since the system knows her only (at the moment) as jessica@nowyouseeit.  What if WikiGood is using Google AdWords to present Jessica with targeted advertisement?  Is she a different Jessica when she&#8217;s logged in to her personal account than she is when she is logged in to her BigBoxCorp account?  Google would like to think not.</p>

<p>Relate this scenario (personal account, and two corporate accounts) to other applications you use every day like email, contact list, calendaring, meeting scheduling, blogging, idea management, note taking, project management, personal task list, IM, VOIP, search.  As these applications learn more about you, and you invest more time creating information in each application it rapidly becomes unacceptable to switch systems or even to switch accounts on the same system.</p>

<p>People <a href="http://www.sensible.com/">increasingly expect</a> and need the systems they use to learn more about them and to provide enhanced service based on that knowledge.  Systems architected ignorant of the multiplicity of lives people lead force people to waste time repeating themselves (to systems) and copying information (between systems).  More generally users of these systems fail to realize the full potential benefit of the knowledge they have shared.  This is not a new problem, but it is certainly seems like a more pronounced missed opportunity in the age of Internet-based applications.</p>

<p>The situation is problematic. Users of systems would like to minimize the proliferation of credentials they must carry.  Also they would benefit greatly from the ability to connect their <a href="http://finotto.org/2004/12/28/too-many-emails/">accounts</a> in a single system in such a way that they have visibility across all their content at once, and in such a way that they wouldn&#8217;t have to spend time re-entering profile, preference and other information into each account. Corporations seek these same benefits for their workers because it makes the workers, and hence the corporation, more efficient.  On the other hand, corporations still have a desire to limit access to information (e.g. to employees only), and to monitor employees activities (shudder) if not for pure evil purposes, for regulatory ones.</p>

<p>But what of the service provider&#8217;s interests? WikiGood would like to continue to offer free or cheap service to individuals and premium service to corporations.  The logic goes something like &#8220;we&#8217;ll attract consumers and that will lead to corporate customers&#8221;.  But from the foregoing it should be clear that WikiGood is missing the opportunity to <a href="http://sethgodin.typepad.com/seths_blog/2005/12/where_do_sneeze.html">activate</a> those very consumer-users, by failing to provide a vision for Jessica that looks substantially better than the walled-off nightmare.  Users have little incentive to induce employers to switch to gmail for instance, if that would lead to each user having two gmail accounts instead of one.  That situation is not appreciably better than the situation where the user has a gmail account and a corporate Exchange account.  Contacts are still separate.  Searches still fail to find results across accounts.  The tags created for one account are completely separate (and return separate results) from the tags created in another account.</p>

<h3>Many Lives &mdash; Just One You</h3>

<p>The key missed opportunity is for WikiGood to acknowledge that users often act as agents for other legal entities.  I&#8217;m using agency in the legal sense here.  First from the American Heritage Dictionary:</p>

<blockquote>
    <p>One empowered to act for or represent another: an author&#8217;s agent; an insurance agent.</p>
</blockquote>

<p>And now from the <a href="http://en.wikipedia.org/wiki/Agency_%28law%29">Agency (law)</a> entry in <a href="http://en.wikipedia.org/wiki/Main_Page">Wikipedia</a>:</p>

<blockquote>
<p>The Agent&#8217;s primary fiduciary duty is to be loyal to the Principal. This involves duties:</p>
<ul><li>not to accept any new obligations that are inconsistent with the duties owed to the Principal. Agents can represent the interests of more than one Principal, conflicting or potentially conflicting, only on the basis of full and timely disclosure or where the different agencies are based on a limited form of authority to prevent a situation where the Agent&#8217;s loyalty to any one of the Principals is compromised. For this purpose, express clauses in the agreement signed by each Principal with the Agent may identify specific types or categories of activities that will not breach the duty of loyalty and so long as these exceptions are not unreasonable, they will bind the Principals.</li>
<li>not to make a private profit or unjustly enrich himself from the agency relationship.</li>
</ul>
<p>In return, the Principal must make a full disclosure of all information relevant to the transactions that the Agent is authorized to negotiate and pay the Agent either the commission or fee as agreed, or a reasonable fee if none was agreed.</p>
</blockquote>

<p>If WikiGood introduced the concept of agency into its system, it would enable Jessica to have a consistent identity over time as she worked in her own interest, or in the interest BigBoxCorp or NowYouSeeIt, yet retain full visibility across all her content.</p>

<p>The core concept, is that within each application, a person has the ability to act as an &#8220;agent of&#8221; some identifiable &#8220;interest&#8221; or &#8220;principal&#8221; &mdash; think &#8220;employer&#8221; or &#8220;customer&#8221; or &#8220;client&#8221;.  But the person retains her identity &mdash; the system always knows the person&#8217;s identity.  There is one set of authentication credentials.  Knowledge expressed to the system by the person is retained by the system and associated with that person &mdash; regardless of which &#8220;principal&#8221; they represent moment-to-moment.</p>

<p>In this way, principals can have (purchase) rights in the system, and those principals can assign their agents limited rights in the system too.  The user switches between agencies as she operates.  She expresses this switch through the user interface.  If you&#8217;ve used a mail client that lets you <a href="http://mail.google.com/support/bin/answer.py?ctx=%67mail&#038;hl=en&#038;answer=20616">select</a> from multiple &#8220;from&#8221; addresses when sending mail you have the basic idea, only you&#8217;d make a &#8220;working for&#8221; selection each time you changed tasks.  Perhaps you could &#8220;work for&#8221; more than one principal at a time &mdash; why not?</p>

<p>Instead of requiring the user to do this switching, perhaps smart systems could <a href="http://www.attentiontrust.org/">infer</a> agency on-the-go based on time of day or content or physical location of the user.  These smart systems could prominently display their guess and the user could change it if it was wrong.</p>

<p>In this way, no &#8220;closed system&#8221; like VPN is required to protect a principal&#8217;s interests.  The principal contracts with various service providers the terms under which its agents can act.  Principals then assign rights to their agents.  But principals create no identities &mdash; they just assign rights/trust levels to identities.  In this way one identity can serve many principals. There may be a notion of the &#8220;public domain&#8221; principal, so an individual has the ability to do work for the &#8220;public domain&#8221; or in the public  domain.</p>

<h3>What it Would Mean</h3>

<p>The <strong>Agency-Aware Identity Model</strong> gives rise to a new business model where consumer accounts and consumer loyalty can be parlayed into corporate accounts.  Each consumer-customer of a Web Service will now be highly motivated to induce each of the principals on whose behalf they work, to also become (corporate) customers of that same Web Service. Corporations (principals) would retain the important security and control capabilities they have today with their enterprise identity model: a) the right to assign and revoke privileges/trust to individuals (agents), b) the right to protect (privacy) information produced by their agents c) the right to eaves drop and monitor the activities of their agents for e.g. <a href="http://www.aicpa.org/info/sarbanes_oxley_summary.htm">regulatory</a> compliance, sexual harassment violations, <a href="http://www.eeoc.gov/policy/compliance.html">EEOC</a> etc.  An individual, by agreeing to operate on behalf of an agency (for a period of time, or for a particular task) is potentially forfeiting some privacy or future access rights to her work product.</p>

<p>So what do you think?  What would it be like to use WikiGood or your-<a href="http://dabbledb.com/">favorite</a>-web-<a href="http://fluxiom.com/">app</a>-here and never have to log out regardless of which client/principal you were working for moment by moment?  How much more effective would you be if for each application, all your information in that application category was available at once? Would you be able to remember to click the drop down list of agencies as you switched between tasks during the day?  Would you want that switching integrated with your web SSO system like <a href="http://openid.net/">OpenID</a>? Do you believe that by adopting an Agency-Aware Identity Model,  WikiGood could effectively turn its non-corporate customers into a <a href="http://blog.wired.com/apple_fans/">rabid</a> enterprise sales force? I do.</p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/04/15/many-lives-just-one-you/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>The pragmatic&#8217;s guide to Web architectures</title>
		<link>http://lesscode.org/2006/03/27/pragmatics-guide-to-webarch/</link>
		<comments>http://lesscode.org/2006/03/27/pragmatics-guide-to-webarch/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 09:02:03 +0000</pubDate>
		<dc:creator>Assaf Arkin</dc:creator>
		
	<category>Then you win.</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/27/pragmatics-guide-to-webarch/</guid>
		<description><![CDATA[There&#8217;s a big battle of words raging on to define what the hell we&#8217;re doing and why we&#8217;re doing it all wrong.

Are Web services on the Web, or do they have to use SOAP? How is low REST different from high REST? Does XML/HTTP work better if we call it POX? When is AJAX not [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a big battle of words raging on to define what the hell we&#8217;re doing and why we&#8217;re doing it all wrong.</p>

<p>Are Web services on the Web, or do they have to use SOAP? How is low REST different from high REST? Does XML/HTTP work better if we call it POX? When is AJAX not AJAX? Who owns the semantic landscape?</p>

<p>There are also a lot of people building applications, that don&#8217;t have time to argue how you call it or what it means, just as long as it works. We call them, &#8220;the pragmatics.&#8221; This post is for them.</p>

<p>When it comes to designing Web services, there&#8217;s a few choices of architecture style, and stacks of technologies to choose from. It&#8217;s still undecided which one will rule them all, the race if far from over. Most people who write about that stuff hope their horse is the winning one.</p>

<p>I&#8217;m no exception. So I&#8217;m going to play pundit and tell you which architecture style I think works best for the Web, which technology stack I prefer to use:</p>

<ul>
<li><b>Architecture style:</b> use the simplest most common solution to solve your problem.</li>
<li><b>Technology stack:</b> see above.</li>
</ul>

<p>XML over HTTP (can we please not use an acronym that means a disease?) is great for moving structured data around, and shines at encapsulation. Its loosely coupled document style has too many merits to mention. Except when you&#8217;re building a UI that needs to talk back to the server, where tight coupling is good enough, and too much abstraction means you&#8217;ll never deliver on time.</p>

<p>RSS is a wonderful way to stream data updates from server to client, not to mention the magical combination that are blogs and feed readers. It&#8217;s the ultimate query API. Except when your UI is trying to query the number of unread e-mails in your inbox, and you find out that RSS is anything but simple.</p>

<p>Microformats are amazing in their beauty and simplicity, and let you easily microchunk your content. Until you fall in the 80% of problems they were never intended to solve and&#8230; well, just don&#8217;t solve.</p>

<p>JSON (not to be confused with Jason, though they both love AJAX) is the simplest form of API you can think of, concise and easy to use. It&#8217;s a wonder it wasn&#8217;t invented earlier. Except that it&#8217;s tightly coupled and still envious of what XML can do for you.</p>

<p>AJAX is great even though almost everybody is using it for HTML. But let&#8217;s not get too tangled up in detail, acronyms are not for describing but for branding.</p>

<p>There&#8217;s nothing like REST, it powers the Web (can we get a logo for that?). You&#8217;ll just have to ignore all those big name Web sites we all like to mention that use cookies for the benefit of their users. And all the REST APIs that violate more constraints than a drunk driver speeding down the wrong side of the road.</p>

<p>RDF is semantic bliss, it gets semantics right and has a thoughtful model for representing and querying it. You can do amazing things with it. But most likely your semantic data is not RDF, and still happens to work, and you&#8217;re cursing every time you need to fix Firefox configuration files in all their semantic glory.</p>

<p>The Web thrives not because it uses a strict architectural style and a coherent technology stack. It thrives because so many sites pay little attention to REST and choose to focus on their users instead. It thrives because malformed HTML pages include GIFs and PNGs and Flash and badly written JavaScript that just works. It thrives because people go on the Web to send e-mail, IM, do VoIP and trade BitTorrent files.</p>

<p>The search for the holy grail, the one technology to rule them all, is as old as technology itself. I&#8217;m fine knowing we&#8217;ll never settle the score, never know whether vi is truely better than Emacs, or whether Eclipse shadows them both. But unless you&#8217;re a vendor making money on one horse, it doesn&#8217;t matter to you.</p>

<p>If you&#8217;re a pragmatic developer, you have one tool in your toolbelt that always wins the day. It&#8217;s the ability to think, ask questions and make choices. To choose solutions that are best for the problem you&#8217;re tackling right now. And to keep learning. Because there will always be some new technology that&#8217;s better at solving some use case or another.</p>

<p>The only architecture that matters is the simplest one you can get to solve the problem at hand.</p>

<p><small>This post: written in Vim, formatted as HTML, available over RSS.</small></p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/27/pragmatics-guide-to-webarch/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>It&#8217;s Enterprisey!</title>
		<link>http://lesscode.org/2006/03/26/its-enterprisey/</link>
		<comments>http://lesscode.org/2006/03/26/its-enterprisey/#comments</comments>
		<pubDate>Sun, 26 Mar 2006 15:32:14 +0000</pubDate>
		<dc:creator>Bill de hÓra</dc:creator>
		
	<category>Then they fight you...</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/26/its-enterprisey/</guid>
		<description><![CDATA[
    The Meme.
    The Architecture. 
    The Wikipedia Entry.
    The Tag.


Recently David Heinemeier-Hanson asked &#8220;How do we fork the word enterprise?&#8221;. This will do for now.


via Patrick Logan and Mark Baker
]]></description>
			<content:encoded><![CDATA[<ul>
    <li><a href="http://thedailywtf.com/forums/65573/ShowPost.aspx">The Meme.</a></li>
    <li><a href="http://blueballfixed.ytmnd.com/">The Architecture.</a> </li>
    <li><a href="http://en.wikipedia.org/wiki/Enterprisey">The Wikipedia Entry.</a></li>
    <li><a href="http://del.icio.us/tag/enterprisey">The Tag.</a></ul></li>
</ul>

<p>Recently David Heinemeier-Hanson asked <a href="http://www.loudthinking.com/arc/000577.html">&#8220;How do we fork the word enterprise?&#8221;</a>. This will do for now.</p>

<p><small><em>
via <a href="http://patricklogan.blogspot.com/2006/03/its-enterprisey.html">Patrick Logan</a> and <a href="http://www.markbaker.ca/2002/09/Blog/2006/03/25#deliciousdistobj.To_the_Hexth_De...y_WTF">Mark Baker</a></em></small></p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/26/its-enterprisey/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Ray Ozzie Got the Memo</title>
		<link>http://lesscode.org/2006/03/22/ray-ozzie-got-the-memo/</link>
		<comments>http://lesscode.org/2006/03/22/ray-ozzie-got-the-memo/#comments</comments>
		<pubDate>Wed, 22 Mar 2006 19:16:47 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
		
	<category>News</category>
	<category>Then you win.</category>
	<category>Web as platform</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/21/ray-ozzie-got-the-memo/</guid>
		<description><![CDATA[I wonder if it&#8217;s time to adopt a variation of Gandhi&#8217;s famous formulation: &#8220;First they ignore you, then they laugh at you, then they fight you, then you win&#8221;. It goes something like &#8220;First they ignore you, then they keep on ignoring you but you win anyway&#8221;. One nice thing about the new formulation is [...]]]></description>
			<content:encoded><![CDATA[<p>I wonder if it&#8217;s time to adopt a variation of Gandhi&#8217;s famous formulation: &#8220;First they ignore you, then they laugh at you, then they fight you, then you win&#8221;. It goes something like &#8220;First they ignore you, then they keep on ignoring you but you win anyway&#8221;. One nice thing about the new formulation is you get to skip the whole fighting part. I think Gandhi would approve.</p>

<p>On March 7, in <a href="http://conferences.oreillynet.com/cs/et2006/view/e_sess/8535" title="Simple Bridge-building">his talk</a> at the <a href="http://conferences.oreillynet.com/etech/">O’Reilly Emerging Technology Conference</a>, Ray Ozzie, CTO Microsoft, demonstrated (<a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/screencast/liveclipdemo.html" title="Live Clipboard Screencasts">short screencasts</a>, <a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/liveclipsample/clipboardexample.html" title="Live Clipboard Example">live demo page</a>) a method by which users can cut/copy/paste structured content between web applications and between web applications and Windows ones. Alert <a href="http://lesscode.org/">lesscode</a> readers will notice that <a href="http://spaces.msn.com/rayozzie/blog/cns!FB3017FBB9B2E142!285.entry?_c11_blogpart_blogpart=blogview&amp;_c=blogpart" title="Ray Ozzie: Wiring the Web">Ray&#8217;s blog post</a> describing his inspiration and motivation for the idea bears a striking resemblance to <a href="http://lesscode.org/2005/10/21/baby-steps-to-synergistic-web-apps/" title="Bill Burcham: Baby Steps to Synergistic Web Apps">my own</a> post from last October. A deeper look at the screencasts, the live demo and the <a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/liveclipsample/techPreview.html" title="Live Clipboard Technical Introduction">technical introduction</a> remove any doubt that what Ray demonstrated, and in fact what Microsoft is offering under the <a href="http://creativecommons.org/">Creative Commons</a> <a href="http://creativecommons.org/licenses/by-sa/2.5/">Attribution-Share Alike</a> license (you heard me right) is in fact the Web Application Clipboard as described in that original lesscode post and <a href="http://lesscode.org/2005/11/02/half-a-baby-step/" title="Bill Burcham: Half a Baby Step">followup</a>.</p>

<p>This is in no way meant to diminish the Microsoft folks&#8217; brilliant implementation. The portable trick used to actually hook the browser&#8217;s built-in cut/copy/paste functionality is inspired. The design tradeoff resulting in a visible representation (scissors icon) of every clipboard-capable element is all their own, and quite frankly, is probably a necessary tradeoff if the Web Application Clipboard is to actually get traction. There&#8217;s <a href="http://www.memerocket.com/2006/03/21/ray-ozzie-demos-web-app-clipboard/" title="Ray Ozzie Demos Web App Clipboard">a more technical analysis</a> posted on <a href="http://www.memerocket.com/" title="Bill Burcham’s memeRocket">my personal blog</a>, but the executive summary is:</p>

<blockquote>
  <p>Live Clipboard (Microsoft&#8217;s name for Web Application Clipboard) is awesome and I believe sites will adopt it.
  I wish the name weren&#8217;t &#8220;infected&#8221; with the <a href="http://www.live.com/">Windows Live</a> brand but that won&#8217;t matter a whole lot so long as the specification is good and open.
  Right now though I can&#8217;t find any specification at all but I&#8217;m keeping hope alive on that front anyway (you listening Gandhi? MLK?)</p>
</blockquote>

<p>What I find more interesting than that technical stuff though is the amount of mindshare this thing got &#8220;all of a sudden&#8221;. First off, note that Ray&#8217;s March 7 blog post on this subject comprises the only thing he&#8217;s blogged since the end of January. A whole month of the Microsoft CTO&#8217;s time &#8212; how many dog-years is that? Now realize that the good guys over at the <a href="http://gillmorgang.podshow.com/">Gillmor Gang</a> podcast spent a full 48 minutes on this single topic on March 16 (<a href="http://gillmorgang.podshow.com/?p=36">Ozzie Gang I</a>, <a href="http://gillmorgang.podshow.com/?p=37">Ozzie Gang II</a>), most of which was spent interviewing Ray Ozzie himself. They were downright effusive. From <a href="http://gillmorgang.podshow.com/?p=37">Ozzie Gang II</a>:</p>

<ul>
<li><p><cite>Mike Arrington</cite>, 4:45</p>

<blockquote>
  <p>Does this signify any sort of shift organization where people in microsoft who have ideas that can help the Web&#8230; that they can also get things through the politics and through the system fast enough so it doesn&#8217;t take and years?</p>
</blockquote></li>
<li><p><cite>John Udell</cite>, 17:52</p>

<blockquote>
  <p>Ray this is great. I just personally want to thank you for doing it. I think it&#8217;s a tremendous step.</p>
</blockquote></li>
<li><p><cite>Steve Gillmor</cite>, 17:57</p>

<blockquote>
  <p>Yeah, and I think that everybody is knocked out that somebody with your intuition is in such a powerful position at Microsoft. You know, bringing Microsoft into the community has been very difficult to do and you seem to be doing it.</p>
</blockquote></li>
<li><p><cite>Dan Farber</cite>, 18:31</p>

<blockquote>
  <p>I think as everybody on this call has said, we&#8217;re quite impressed with this very simple little notion that seems to be well executed and that it comes from Microsoft now really injecting itself into the big old Web community. It&#8217;s cool!</p>
</blockquote></li>
<li><p><cite>Dan Farber</cite>, 19:13</p>

<blockquote>
  <p>If you go to the desktop and you consider cut and paste, copy and paste, you know it&#8217;s everywhere&#8230; to be able to do that on the web&#8230; it&#8217;s like a big gift &#8212; it&#8217;s a contribution to the Web.</p>
</blockquote></li>
<li><p><cite>Mike Arrington</cite>, 22:18</p>

<blockquote>
  <p>I think the big story here is that we&#8217;re starting to see with Ray&#8217;s leadership that Microsoft is able to do things that seem selfless and simply good for their own sake and SSE is one example and (Live Clipboard) is another stunning example&#8230;</p>
</blockquote></li>
<li><p><cite>Steve Gillmor</cite>, 24:05</p>

<blockquote>
  <p>I think that Microsoft may well be on the threshold, whether they fully realize it or not at all levels of the organization, of winning by accepting a part in the community, and I think that&#8217;s a huge story.</p>
</blockquote></li>
</ul>

<p>Strange and wonderful times indeed.</p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/22/ray-ozzie-got-the-memo/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Useful and Useless REST</title>
		<link>http://lesscode.org/2006/03/22/useful-and-useless-rest/</link>
		<comments>http://lesscode.org/2006/03/22/useful-and-useless-rest/#comments</comments>
		<pubDate>Wed, 22 Mar 2006 04:44:30 +0000</pubDate>
		<dc:creator>Ian Bicking</dc:creator>
		
	<category>Talk</category>
	<category>Theory</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/22/useful-and-useless-rest/</guid>
		<description><![CDATA[With all this talk about High and Low REST, I noticed something in a post by Mark Nottingham:


    Don has effectively made the observation that a lot of other
    people (especially of the Web services sort) have made; while the
    benefits of GET&#8217;s transparency are obvious, [...]]]></description>
			<content:encoded><![CDATA[<p>With all this talk about High and Low REST, I noticed something in a <a href="http://www.mnot.net/blog/2006/03/20/hi_lo">post by Mark Nottingham</a>:</p>

<blockquote>
    Don has effectively made the observation that a lot of other
    people (especially of the Web services sort) have made; while the
    benefits of GET&#8217;s transparency are obvious, they&#8217;re less
    apparent for PUT and DELETE, so why not just take the easy (lo)
    road and use POST?<br /><br />

    I think there are two answers; 1) hopefully, we&#8217;ll have some
    concrete benefits for that transparency some day (think offline),
    and 2) thinking in terms of GET/PUT/DELETE first &#8212; using POST
    only as an escape hatch &#8212; leads you down a path where your
    application will be using transparent methods a lot more than
    opaque POSTs.
</blockquote>

<p><p>
I&#8217;ll use my first post here to repeat the ideas from <a href="http://lesscode.org/2006/03/19/high-rest/">Bill&#8217;s post</a>&#8230;</p>

<p><p>
I think a cargo cult of REST has indeed emerged, and I&#8217;m seeing evidence of it on the ground, far from SOA discussions.  I&#8217;m seeing REST evoked as something that is inherently good.  I&#8217;m seeing people ask for <i>REST support</i> in their frameworks.  I usually know what they mean, but their requests seem to be driven by the <a href="http://en.wikipedia.org/wiki/Truthiness">truthiness</a> of REST, not the utility.</p>

<p><p>
For instance, I often get annoyed with URI design discussions, where people put great importance into abstract design issues that no one else will notice or care about.  In HTTP (and REST) URIs are supposed to be opaque strings, so why the obsession?  I call <a href="http://en.wikipedia.org/wiki/Color_of_the_bikeshed">bike shed</a>. People are tackling the pointless decisions first, because they are low-stake and easy to think about.  It also comes from an inversion of logic: good things are generally aesthetically pleasing; but many things that are aesthetically pleasing are superfluous and distracting.</p>

<p><p></p>

<p>What&#8217;s useful is that REST design doesn&#8217;t promise anything more
than it can deliver.  It doesn&#8217;t promise anything general about the
body of the response (except I suppose that <code>Content-type</code> and other metadata will be accurate).  It doesn&#8217;t promise anything about the URI.  The use of verbs is in part to make the URI <i>more</i> opaque, so instead of rewriting the URI to express new actions, you use different verbs on the same URI.  GET actually means something to intermediaries.  POST, PUT, and DELETE only really mean something to humans.  Which is okay, but it&#8217;s not interesting architecture.</p>

<p>It&#8217;s not <i>bad</i> to use these verbs, it&#8217;s just not particularly <i>useful</i>.  I think High REST may be the result of people who just can&#8217;t help but make architecture.  Low REST is people who are recognizing emergent architecture.  REST isn&#8217;t a new idea, it is the recognition of the good ideas that are already around us.  And like design patterns, the description is turning into prescription, and as with patterns we are seeing people use REST to justify premature architecture &#8212; probably a much worse sin than permature optimization.</p>

<p><p></p>

<p>I look at a protocol like <a href="http://openid.net/">OpenID</a> which is
wedded to HTTP and HTML &#8212; and even intimately connected to
those poorly-specified browsers that we all can&#8217;t help but hate &#8212; and
I think that&#8217;s great architecture.  It&#8217;s not great because it is
pretty underneath (it isn&#8217;t), it is great because it solves a hard
problem inside fixed constraints without exceeding scope.  It&#8217;s RESTful at heart, but not RESTful in form.</p>

<p><p></p>

<p>If there aren&#8217;t concrete benefits to using PUT or DELETE over POST,
then why should we care?  What hard problem is made easy? High REST seems to be uncovering non-problems.</p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/22/useful-and-useless-rest/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>REST myths</title>
		<link>http://lesscode.org/2006/03/21/rest-myths/</link>
		<comments>http://lesscode.org/2006/03/21/rest-myths/#comments</comments>
		<pubDate>Tue, 21 Mar 2006 21:41:56 +0000</pubDate>
		<dc:creator>Robert Sayre</dc:creator>
		
	<category>Talk</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/21/rest-myths/</guid>
		<description><![CDATA[Today&#8217;s myth: limiting the number of methods is a good idea.

From an old thread on WebDAV methods: 


  REST encourages the creation of new methods for obscure operations, specifically because we don&#8217;t want to burden common methods with all of the logic of trying to figure out whether or not a particular operation fits [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s myth: limiting the number of methods is a good idea.</p>

<p>From an <a href="http://xent.com/pipermail/fork/2001-August/003191.html">old thread</a> on WebDAV methods: </p>

<blockquote>
  <p>REST encourages the creation of new methods for obscure operations, specifically because we don&#8217;t want to burden common methods with all of the logic of trying to figure out whether or not a particular operation fits the 99.9% case or one of the others that make up 0.1%.</p>
</blockquote>

<p>That doesn&#8217;t mean you want to make up a new method if you don&#8217;t have to, like <code>getStockQuote</code>. Use <code>GET /stockQuote/43</code> for that. A small number of methods will get you pretty far, but perhaps not all the way. For authoring applications, you&#8217;re likely to hit some snags. You&#8217;re also likely to hit some religion.</p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/21/rest-myths/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Dare’s $100</title>
		<link>http://lesscode.org/2006/03/19/dares-100/</link>
		<comments>http://lesscode.org/2006/03/19/dares-100/#comments</comments>
		<pubDate>Mon, 20 Mar 2006 02:29:16 +0000</pubDate>
		<dc:creator>Robert Sayre</dc:creator>
		
	<category>AJAX</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/19/dares-100/</guid>
		<description><![CDATA[Dare Obasanjo has a great post on allocating resources for XML, HTTP, and REST. The idea is that Don Box has given you an engineering budget, and you&#8217;re not allowed to steal money from the Web Services department. It goes like this: 


  You have $100 engineering dollars to spend. No matter how many [...]]]></description>
			<content:encoded><![CDATA[<p>Dare Obasanjo has a great post on <a href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=473cc14f-4668-43cf-b5b9-0178f9271296" title="Dare Obasanjo: How Tool Vendors Can Better Support REST">allocating resources</a> for XML, HTTP, and REST. The idea is that Don Box has given you an engineering budget, and you&#8217;re not allowed to steal money from the Web Services department. It goes like this: </p>

<blockquote>
  <p>You have $100 engineering dollars to spend. No matter how many millions we&#8217;d actually wind up spending, we use $100 as an easy number for people to keep in their heads.</p>
  
  <p>There are well over $100 dollars worth of features you want.</p>
  
  <p>The challenge is in determining how to spread the $100 in a way that produces with the most aggregate value.</p>
</blockquote>

<p>I find myself in near-total agreement with Dare, except that I would take all that C# money and spend it on <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=910F423F-BBD2-4E52-BAB6-AA21592EDC3B&amp;displaylang=en">IronPython</a>. This is lesscode, and we don&#8217;t believe in 48-character method names that VisualStudio autocompletes for us. :)</p>

<p>I find it particularly interesting that he allocated $40 to <i>&#8220;better support for consuming XML in the browser.&#8221;</i> Well, what a coincidence. I&#8217;ve been spending some time sheparding a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=315826" title="315826: Scriptable XPCOM wrapper for SAX content handler">JavaScript SAX interface</a> through the Mozilla process. Now, I certainly don&#8217;t have any decision-making power, and I don&#8217;t speak for Mozilla, but wouldn&#8217;t it be cool if Microsoft exposed SAX to JavaScript? That could speed up a lot of AJAX. MSXML SAX objects are already available to client code as ActiveX objects, but you can&#8217;t write a ContentHandler in JavaScript for Internet Explorer. Bummer. Why not? AJAX developers are getting pretty good at event-driven code.</p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/19/dares-100/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>REST wins, noone goes home</title>
		<link>http://lesscode.org/2006/03/19/rest-wins-noone-goes-home/</link>
		<comments>http://lesscode.org/2006/03/19/rest-wins-noone-goes-home/#comments</comments>
		<pubDate>Mon, 20 Mar 2006 01:07:21 +0000</pubDate>
		<dc:creator>Bill de hÓra</dc:creator>
		
	<category>Then you win.</category>
		<guid isPermaLink="false">http://lesscode.org/2006/03/19/rest-wins-no-one-goes-home/</guid>
		<description><![CDATA[In public and private people whom I would have never expected, are now getting interested in how to roll out in the REST style. “Restian” is the term I hear bandied about. Not “RESTful”. Not “RESTafarian”. “Restian”. I like it.

This is good news, though I’m a bit taken aback it’s happening so soon. Some people [...]]]></description>
			<content:encoded><![CDATA[<p>In public and private people whom I would have never expected, are now getting interested in how to roll out in the REST style. “Restian” is the term I hear bandied about. Not “RESTful”. Not “RESTafarian”. “Restian”. I like it.</p>

<p>This is good news, though I’m a bit taken aback it’s happening so soon. Some people would say it should have happened half a decade ago, but I’m something of an optimist.  </p>

<p>REST has always been a solid basis for designing distributed systems, it comes with a theory (I know! It’s crazy!), appropriate and specific to the web domain. It has not been a populist approach, which can be summed up with – “where are the REST toolkits?”.  </p>

<p>All that is about to change.  REST has won.  Fire up your editors.</p>

<h3>Have nothing in your house that you do not know to be useful.</h3>

<p>Now what?  </p>

<p><img src="http://lesscode.org/wp-content/uploads/2006/03/william_morris.jpg" alt="" title="William Morris, characteristically befuddled by this modern life" /></p>

<p>When REST becomes a mainstream/default development approach, as opposed to a fringe/implicit one, a couple of things come to mind on the plus ca change front. First off, I think you’ll see better support for URI design and mapping onto code in server libraries. Also, better access to headers (especially caching and timestamping directives). More awareness and support for the full range of HTTP methods and response codes.  Attribute modifers and declarations on methods that have side-effects. Exception designs based around 5xx and 4xx response codes. Media type dispatching. Less emphasis on cookies, more support for digest authentication. More flexbility in LAMP stacks for writing out stuff that isn’t HTML (esp. JSON and Atom serializers). That sort of thing. Overall a gradual lifting on HTTP/REST concepts and idioms into application code.</p>

<p>But probably the most important initial effect is how minimal and frugal REST will seem to the working developer.</p>

<h3>This Spartan Life</h3>

<p><img src="http://lesscode.org/wp-content/uploads/2006/03/john_pawson_architecture.jpg" alt="" title="John Pawson, a sort of modern. But mainly, this is really nice photo of a favourite architect" /></p>

<p>If REST has an analog in building architecture, it’s Modernism. On the web, hard lines are where it’s at, and less, really, is more. </p>

<p>REST is about design constraints – what you can’t say. That’s contrary to industry practice, where it’s all about about getting cool new features piled on, and to heck with principles. If anything, most developers are cynical about architecture and architects. Developers, Developers, Developers. Give ‘em what they want. Keep ornamenting the stack with pointy-clicky solution cruft. </p>

<p>There’ll be a bit less of that. On the web, there are less assumptions you can make and those you can make are rigid and need to be treated as invariant. Developing <em>for</em> the web, as opposed to developing <em>around</em> it, is spartan work.  Coming from middleware and enterprise development, could be a bit like coming from the Victorian ornateness and richness of Ruskin and Morris to the urban cold and minimalism of le Corbusier and Mies van der Rohe. It’ll be disorienting at best. </p>

<p>For example, tool support will go from “non-existant” to “sucks”, initially.</p>

<p>All one can say is that the laws and liberties, such as they are, which govern local/LAN-based software development don’t always apply when it comes to Internet based development. In point of fact they’re often a hinderance, and there’s a history of <a href="http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing" title="Fallacies of Distributed Computing">getting burnt on bad assumptions</a> on the Internet. You can try to make inter-network, cross-administrative systems development transparent, to look and act like middleware. But you won’t. Noone has.</p>

<p>The solution is invariably to take the assumptions and patterns and cute tricks away, and replace them with forcing functions in the form of design constraints that keep developer and system behaviour aligned. Even stuff that enterprise developers would tend to know, like caching, needs <a href="http://naeblis.cx/rtomayko/2005/05/28/ibm-poop-heads" title="Ryan Tomayko: IBM poop heads say LAMP users need to “grow up”">a different approach</a>. Them’s the apples. REST is a collection of such constraints, formalised into an architecture.</p>

<p>Perhaps the key thing is education, and teaching. </p>

<p>I think we’re done more or less with the evangelism and technical food fights with the WS-* and Enterprise crowds. It’s time for REST to proceed on its own terms and not in contrast and counterpoint to something else. Teaching, on how to target and design with REST, particulary for HTTP as deployed, needs to ramp up. Certainly we need a few good practical books on REST/HTTP to ship. </p>

<p>At least one of those fine books should cover the fundamental principles of Web-centric development, the way Gamma et al did for C++ Patterns, Fowler did for Refactoring, or Norvig/Graham did for CLisp. Something that nails it. As things go, Fielding’s <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm" title="Roy Thomas Fielding: Architectural Styles and the Design of Network-based Software Architectures">REST thesis</a> is pretty accessible, a decent read even, but it’s a doctoral thesis, not a textbook.</p>

<h3>Tickbox Gartnerfication</h3>

<p><img src="http://lesscode.org/wp-content/uploads/2006/03/spongebob_blows_bubbles.jpg" alt="" title="Look Patrick! Bubbles! Dwaahhhhaaaa!" /></p>

<p>Hype could be a problem for REST if the “industry” gets on board with it as a commmercial factor that requires ticking off rather than some dorky engineering stuff – “Do they have REST? Check.” So will keeping an eye out for land-grabbing on the term “REST”, so it remains a crisp technical term (It has a theory?! I know! It’s crazy!). </p>

<p>Avoiding the descent into marketing farce, a problem that has plagued “SOA” and “WS” can only be a good thing. To be honest, I’m not holding much hope on this one.</p>

<h3>God is in the details</h3>

<p><img src="http://lesscode.org/wp-content/uploads/2006/03/mies_van_der_rohe_siegel_corner.jpg" alt="" title="Mies solves the corner problem. Yes, there was a corner problem. He wasn't kidding about the details." /></p>

<p>Let’s be realistic. No software architecture can truly withstand implementation. REST is really great, but on the web, there is plenty of detail work to be cleared out, like push, containership, encoding, side-effected GETs, curse-of-popularity, queuing, 2 versus 4 methods, universal format junk, and authentication, among others. I could go on, it’s messy out there.</p>

<p>Issues like these will become more important, or more distracting, depending on your point of view,  as the style gets adopted.  So run away screaming from anyone who dismisses  these as “just implementation details” – implementation details matter. They cost money, and break hearts.</p>

<p><a href="http://pluralsight.com/blogs/dbox/archive/2006/03/18/20235.aspx" title="Don Box: Going Down To The Crossroads…">Lot’s of work has been done.</a> There’s lots of work to do.</p>

<hr />

<p><small>PS.: in case anyone thinks there’s some kind of collective REST triumphalism going on @lesscode, there isn’t. I’ve been sitting on this post over the St Pats weekend, only to find out that Sayre and Tomayko have posted REST stuff in the meantime. You’d swear they weren’t Irish.</small></p>
]]></content:encoded>
			<wfw:commentRSS>http://lesscode.org/2006/03/19/rest-wins-noone-goes-home/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.426 seconds -->
