<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>has_many :thoughts: Tag http</title>
    <link>http://blog.kineticweb.com/articles/tag/http</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Musings from a Ruby on Rails development team</description>
    <item>
      <title>The HTTP Pattern</title>
      <description>&lt;p&gt;I just got finished reading an article over at Ajaxian (great blog) about &lt;a href="http://ajaxian.com/archives/ajax-head-pattern-unobtrusive-rails-apps"&gt;The Ajax Head Pattern; Unobtrusive Rails App&lt;/a&gt;. And had a few comments of my own.&lt;/p&gt;


	&lt;p&gt;While working at Kinetic, especially on our home brew stuff, I&amp;#8217;ve made it a point to engineer our applications using what I call &amp;#8220;The &lt;span class="caps"&gt;HTTP&lt;/span&gt; Pattern&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;Sound silly? It is meant to be, because &lt;span class="caps"&gt;HTTP&lt;/span&gt; serves us all we need for a great majority of the problem solving we do for our client&amp;#8217;s systems.&lt;/p&gt;


	&lt;p&gt;Unobtrusive Javascript, Graceful Degrading, the separation of Presentation, Behavior and Structure, Microformats&amp;#8230; all are just the basis of the &lt;span class="caps"&gt;W3C&lt;/span&gt;&amp;#8217;s web.&lt;/p&gt;


	&lt;p&gt;Yet they serve us a model for keeping things simple and layering on additional tweaks and user interface enhancements. While giving us an architectural &amp;#8220;golden path&amp;#8221; to compliance for varying user agents.&lt;/p&gt;


	&lt;p&gt;That&amp;#8217;s why I&amp;#8217;ve adopted so much of their nuances into the systems I architect.&lt;/p&gt;


	&lt;h3&gt;&amp;#8221;...and what about Rails?&amp;#8221;&lt;/h3&gt;


	&lt;p&gt;&lt;span class="caps"&gt;REST&lt;/span&gt; with Rails (and more so Merb) takes us back down to &lt;span class="caps"&gt;HTTP&lt;/span&gt;, and allows us to utilize the loving goodness we have all veered away from (as an industry). &lt;span class="caps"&gt;REST&lt;/span&gt; has given us a wonderful platform to base our problem solving skills on top of. By utilizing the &lt;span class="caps"&gt;HTTP&lt;/span&gt; protocol, &lt;span class="caps"&gt;W3C&lt;/span&gt; standards and a bag full of common web usage gained from user experiences.&lt;/p&gt;


	&lt;h3&gt;&amp;#8220;Give us some examples&amp;#8221;&lt;/h3&gt;


	&lt;p&gt;Want to update your clients on various responses to requests they are sending? Of course we should be using &amp;#8220;HEAD&amp;#8221; and our &lt;span class="caps"&gt;HTTP&lt;/span&gt; status codes.&lt;/p&gt;


	&lt;p&gt;Want to persist a products hidden boolean value in the database when your clients click a check box? Of course we should degrade that back to a simple web form for users without &lt;span class="caps"&gt;XHR&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;How about re-calculating a shopping cart in the navigation bar when a user chooses to purchase something? Request cart data as &lt;span class="caps"&gt;JSON&lt;/span&gt; from your back-end server and update your cart views on the return solely on the client-side (DON&amp;#8217;T send view partial back to the client, ick!). If not present a simple web form and &lt;span class="caps"&gt;POST&lt;/span&gt; this data back.&lt;/p&gt;


	&lt;p&gt;All of these things are cheap, because thats the way they should work.&lt;/p&gt;


	&lt;h3&gt;&amp;#8220;Its always the simplest things&amp;#8221;&lt;/h3&gt;


	&lt;p&gt;Thinking simpler is what all of these patterns are based off of. Its the right time to be thinking about how you can utilize the web properly, before we add yet another layer on top of it.&lt;/p&gt;</description>
      <pubDate>Fri, 22 Aug 2008 18:35:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:4403185a-4175-4252-9a8b-3c46444f3dd7</guid>
      <author>Justin Reagor</author>
      <link>http://blog.kineticweb.com/articles/2008/08/22/the-http-pattern</link>
      <category>http</category>
      <category>w3c</category>
      <category>standards</category>
    </item>
  </channel>
</rss>
