<?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>Robby on Rails: Tag book</title>
    <link>http://www.robbyonrails.com/articles/tag/book</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>thoughts.sort_by{|t| t[:topic]}.collect </description>
    <item>
      <title>Embracing Failure, part 1</title>
      <description>&lt;p&gt;I&amp;#8217;m currently reading &lt;a href="http://www.amazon.com/Engineer-Human-Failure-Successful-Design/dp/0679734163"&gt;To Engineer is Human&lt;/a&gt;, by Henry Petroski and found the following applicable to software development and managing client and customer expectations.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;As much as it is human to make mistakes, it is also human to want to avoid them. Murphy&amp;#8217;s Law, holding that anything that can go wrong will, is not a law of nature but a joke. All the light bulbs that last until we tire of the lamp, all the shoelaces that outlast their shoes, all the automobiles that give trouble-free service until they are traded in have the last laugh on Murphy. Just as he will not outlive his law, so nothing manufactured can be or is expected to last forever. Once we recognize this elementary fact, the possibility of a machine or a building being as near to perfect for its designed lifetime as its creators may strive to be for theirs is not only a realistic goal but also a reasonable expectation for consumers. It is only when we set ourselves such an unrealistic goal as buying a shoelace that will never break, inventing a perpetual motion machine, or building a vehicle that will never break down that we appear to be fools and not rational beings.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I&amp;#8217;m sure that most of us are guilty of having high expectations for products that we purchased. (why does my ipod screen scratch so easily when in my pocket?) We also set high expectations for the code that we develop, which is why we (hopefully) continue to refine our process. We&amp;#8217;re bound to time and budget constraints, which often prevent us from testing every imaginable edge case. Given our constraints, problems are almost always going to arise. It&amp;#8217;s no wonder that we see Test-Driven Development as an important part of a healthy development process. We want to catch our failures as early as possible.&lt;/p&gt;


	&lt;p&gt;Our clients often have high expectations and it&amp;#8217;s almost always very reasonable. That&amp;#8217;s not to say that some clients will not have highly irrational expectations. It&amp;#8217;s our job to manage these expectations as best as possible.&lt;/p&gt;


	&lt;p&gt;Do we mislead our clients by convincing them that our &lt;span class="caps"&gt;TDD&lt;/span&gt;/BDD process is going to prevent any bugs from creeping from the woodwork after the development cycle is finished?&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;&amp;#8220;I thought that we paid you to fully test the code?&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Really&amp;#8230; is that even possible? Can we predict (and test) every possible interaction within an application? Highly unlikely.&lt;/p&gt;


	&lt;p&gt;What we &lt;em&gt;can&lt;/em&gt; do is plan for and embrace failure. We can help our clients understand that almost every application needs to be &lt;em&gt;maintained&lt;/em&gt; after it&amp;#8217;s initial development cycle. Bugs are inevitable and there needs to be a &lt;a href="http://daringfireball.net/linked/2007/march#wed-14-adobedevcycle"&gt;clear process for handling them&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Perhaps I&amp;#8217;m abusing the bug fixing process by calling it a failure&amp;#8230; but I&amp;#8217;ve also found that yes&amp;#8230; many bugs are due to failure. Whether that be a failure to &lt;a href="http://behavior-driven.org/"&gt;specify application behavior&lt;/a&gt;, a failure to understand the project goals, a &lt;a href="http://www.robbyonrails.com/articles/2006/09/27/project-enlightenment-with-d3"&gt;failure in communication&lt;/a&gt;, ...or maybe a failure in our software architecture. We&amp;#8217;re constantly failing.. and it&amp;#8217;s okay!&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;IT&amp;#8217;S &lt;span class="caps"&gt;OKAY TO FAIL&lt;/span&gt;!&lt;/strong&gt; (some of the time&amp;#8230;)&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;No one &lt;em&gt;wants&lt;/em&gt; to learn by mistakes, but we cannot learn enough from successes to go beyond the state of the art. Contrary to their popular characterization as intellectual conservatives, engineers are really among the avant-garde. They are constantly seeking to employ new concepts to reduce the weigh and thus the cost of their structures, and they are constantly striving to do more with less so the resulting structure represents an efficient use of materials. The engineer always believes he is trying something without error, but the truth of the matter is that each new structure can be a new trial. In the meantime the layman, whose spokesman is often a poet or writer, can be threatened by both the failures &lt;em&gt;and&lt;/em&gt; the successes. Such is the nature not only of science and engineering, but of all human endeavors.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;As we&amp;#8217;re creating these virtual structures&amp;#8230; are we really taking the time to reflect on our failures? This is why some teams adopt practices like iteration retrospectives and post-mortems.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ll end this with a few questions, which I hope that you&amp;#8217;ll share your experiences about&amp;#8230;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;In what ways is your team embracing the failures of your development projects?&lt;/li&gt;
		&lt;li&gt;How do you help manage your clients expectations&amp;#8230; so that they too can plan for and embrace failure? Isn&amp;#8217;t their new business venture on the web&amp;#8230; likely to experience some failure?&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;We have so much to learn&amp;#8230;&lt;/p&gt;
</description>
      <pubDate>Tue, 10 Apr 2007 16:38:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b216559d-75b1-443f-a42b-65a8feefe92d</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/04/10/embracing-failure-part-1</link>
      <category>Business</category>
      <category>Programming</category>
      <category>d3</category>
      <category>book</category>
      <category>tdd</category>
      <category>development</category>
      <category>testing</category>
      <category>agile</category>
      <category>design</category>
      <category>clients</category>
      <category>communication</category>
      <category>bdd</category>
      <category>failure</category>
      <category>expectations</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Jeremy signs a book deal</title>
      <description>&lt;p&gt;Someone finally snatched him! Since &lt;a href="http://www.jvoorhis.com"&gt;Jeremy Voorhis&lt;/a&gt; started working with &lt;a href="http://www.planetargon.com"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt;, he&amp;#8217;s talked about how a few publishing companies had contacted him about writing a book on this new fancy web framework&amp;#8230; &lt;a href="http://www.rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt;. Due to being too busy with &lt;a href="http://www.planetargon.com/development.html"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt; development projects&lt;/a&gt;... he would send them away. Yesterday, he announced that he recently signed a contract with &lt;a href="http://www.oreilly.com"&gt;O&amp;#8217;Reilly&lt;/a&gt; to write &lt;a href="http://www.railsinanutshell.com"&gt;Rails in a Nutshell&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/planetargon/102367893/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/34/102367893_b79cfe4ee9_m.jpg" width="240" height="180" alt="Jeremy, Lead Librarian" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Congratulations Jeremy!&lt;/p&gt;


	&lt;p&gt;...does this mean he isn&amp;#8217;t as busy with development work? No&amp;#8230; it just means he&amp;#8217;ll sleep less in the next several months. ;-)&lt;/p&gt;
</description>
      <pubDate>Thu, 27 Apr 2006 17:37:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:867e810f-7d2f-491a-880f-1b596587e5e8</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/04/27/jeremy-signs-a-book-deal</link>
      <category>oreilly</category>
      <category>book</category>
      <category>jvoorhis</category>
      <category>rails</category>
    </item>
    <item>
      <title>I'm leaving...on a jet plane...</title>
      <description>&lt;p&gt;I&amp;#8217;m sitting at the Portland Airport with Jeremy&amp;#8230; we have almost 2 hours to kill before our flight leaves. We love the &lt;strong&gt;free wifi&lt;/strong&gt; at the &lt;span class="caps"&gt;PDX&lt;/span&gt; Airport. I took a few moments to upload some pictures to &lt;a href="http://www.flickr.com/photos/planetargon/tags/canadaonrails/"&gt;our flickr account&lt;/a&gt; and thought I&amp;#8217;d take a moment to mention some cool news.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://jvoorhis.com"&gt;Jeremy Voorhis&lt;/a&gt;, Lead Architect at &lt;a href="http://www.planetargon.com"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; will be &lt;strong&gt;writing a book&lt;/strong&gt; for &lt;a href="http://oreilly.com"&gt;O&amp;#8217;Reilly&lt;/a&gt;. He &lt;a href="http://www.jvoorhis.com/articles/2006/04/12/globalizing-rails"&gt;mentioned it on his blog&lt;/a&gt; this morning it appears. :-)&lt;/p&gt;


	&lt;p&gt;Congrats Jeremy!&lt;/p&gt;


	&lt;p&gt;Keep your eyes on the &lt;a href="http://www.flickr.com/groups/canadaonrails/"&gt;Canada on Rails Flickr group&lt;/a&gt;!&lt;/p&gt;
</description>
      <pubDate>Wed, 12 Apr 2006 16:36:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:99d73a5e-eeff-4f47-9d16-9ac59cfd9bb1</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/04/12/im-leaving-on-a-jet-plane</link>
      <category>book</category>
      <category>rails</category>
    </item>
    <item>
      <title>The Book Business 2.0</title>
      <description>&lt;p&gt;I saw &lt;a href="http://david.planetargon.us"&gt;David&lt;/a&gt; pointing &lt;a href="http://www.loudthinking.com/arc/000580.html"&gt;this blog entry&lt;/a&gt; out to &lt;a href="http://jvoorhis.com"&gt;Jeremy&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Some interesting discussion/debate between &lt;span class="caps"&gt;DHH&lt;/span&gt; and Tim O&amp;#8217;Reilly. :-)&lt;/p&gt;
</description>
      <pubDate>Tue, 28 Mar 2006 16:12:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:bbe5ae86-ae9a-48f5-a0d1-a0f9c20ab7ce</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/03/28/the-book-business-2-0</link>
      <category>dhh</category>
      <category>oreilly</category>
      <category>rails</category>
      <category>book</category>
    </item>
    <item>
      <title>Alpha reviewers selected</title>
      <description>&lt;p&gt;First of all&amp;#8230; wow, &lt;a href="http://www.robbyonrails.com/articles/2006/02/03/programming-rails-alpha-book"&gt;I got a lot of responses&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I just sent the invites to the people that I selected&amp;#8230; think I selected 7 out of the 46 people that responded.&lt;/p&gt;


	&lt;p&gt;:-)&lt;/p&gt;
</description>
      <pubDate>Fri, 10 Feb 2006 14:10:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6cff3773-b833-47a6-a5ad-25f79a54ba6a</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/02/10/alpha-reviewers-selected</link>
      <category>rails</category>
      <category>programmingrails</category>
      <category>book</category>
    </item>
    <item>
      <title>Programming Rails - Alpha Book</title>
      <description>&lt;p&gt;Up until today, I have had a small group of individuals (people like &lt;a href="http://nimblecode.com"&gt;harrisj&lt;/a&gt;) helping me with the peer review process for my upcoming book, &lt;a href="http://www.programmingrails.com"&gt;Programming Rails&lt;/a&gt;. We&amp;#8217;re getting it ready to launch as a &lt;a href="http://www.oreilly.com/roughcuts/"&gt;Rough Cuts&lt;/a&gt; book in the near future and I wanted to allow a few of you to be part of the pre-Rough Cuts review process.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m opening this up to &lt;strong&gt;6 lucky winners&lt;/strong&gt;!&lt;/p&gt;


	&lt;p&gt;Send me an email to &lt;a href="mailto:robby@planetargon.com?subject=programming_rails_book_alpha_reviewer"&gt;robby@planetargon.com&lt;/a&gt; with a short description of your experience with Rails so far. I want 2 newbies, 2 intermediates, and 2 advanced Railers.&lt;/p&gt;


	&lt;p&gt;Only do this if you can spend time reading material and posting notes on each chapter. :-)&lt;/p&gt;


	&lt;p&gt;Visit &lt;a href="http://www.programmingrails.com"&gt;www.programmingrails.com&lt;/a&gt; for more information about my book and apparently&amp;#8230; you can &lt;a href="http://rubyurl.com/Ye5"&gt;add it to your Amazon Wishlist&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt; No longer accepting applications! I got 50+ in 2 hours&amp;#8230; eek! :-)&lt;/p&gt;
</description>
      <pubDate>Fri, 03 Feb 2006 12:34:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:955764db-2bfa-43b3-a448-86f965a70f00</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/02/03/programming-rails-alpha-book</link>
      <category>rails</category>
      <category>ruby</category>
      <category>book</category>
    </item>
    <item>
      <title>Ruby eye for the anti-newbie guy</title>
      <description>&lt;p&gt;I was skimming over a few &lt;span class="caps"&gt;RSS&lt;/span&gt; feeds ( &lt;a href="http://blogs.thoughtworks.com/"&gt;blogs.thoughtworks.com&lt;/a&gt; ) this morning and came across an entry by
&lt;a href="http://blog.griffincaprio.com/blog/PermaLink.aspx?guid=a9eb87a7-70e0-41ad-8f6b-4dc11c70c53f"&gt;Griffin Caprio&lt;/a&gt;. He shared his thought on the new book by Chris Pine, &lt;a href="http://www.pragmaticprogrammer.com/titles/fr_ltp/index.html"&gt;Learn to Program&lt;/a&gt; and says the following:&lt;/p&gt;


	&lt;p&gt;&lt;i&gt;&amp;#8221;...You wouldn&amp;#8217;t see these types of books in other professions like medical, engineering, or accounting because there are boards that prevent just any old person from practicing in those fields.&lt;/p&gt;


	&lt;p&gt;Not so in computing. But is this what we want to encourage?  Anyone and everyone picking up software and just giving it a go?&lt;/p&gt;


	&lt;p&gt;And I understand everyone&amp;#8217;s love of Ruby, but come on people. It&amp;#8217;s just a language.&amp;#8221;&lt;/i&gt;&lt;/p&gt;


	&lt;p&gt;Actually, yes. Learning to program, build, create, test, problem solve, etc&amp;#8230; are all things that &lt;em&gt;we &lt;strong&gt;should&lt;/strong&gt; encourage&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s do a quick search on amazon for the following, &lt;a href="http://www.amazon.com/exec/obidos/external-search/103-8484556-9941417?field-keywords=learn+to+program"&gt;Learn to Program&lt;/a&gt;. I&amp;#8217;m pretty sure these books have been common place for the past 20+ years&amp;#8230; so, what&amp;#8217;s the big deal?&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s like telling a kid not to build a bird house until he gets a contractors license and a permit.&lt;/p&gt;


	&lt;p&gt;...or telling someone to not pick up a guitar until they had proper lessons.&lt;/p&gt;


	&lt;p&gt;...or maybe you shouldn&amp;#8217;t be running a business without graduating from college.&lt;/p&gt;


	&lt;p&gt;I could go on and on.&lt;/p&gt;


	&lt;p&gt;Oh&amp;#8230; and by the way&amp;#8230;&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;Hello World&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;is &lt;strong&gt;much sexier&lt;/strong&gt; than&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;public&lt;/span&gt; &lt;span class="ident"&gt;static&lt;/span&gt; &lt;span class="ident"&gt;void&lt;/span&gt; &lt;span class="ident"&gt;main&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;String&lt;/span&gt;&lt;span class="punct"&gt;[]&lt;/span&gt; &lt;span class="ident"&gt;args&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="punct"&gt;{&lt;/span&gt;
  &lt;span class="constant"&gt;System&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;out&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;println&lt;/span&gt; &lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;Hello World&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;);&lt;/span&gt; 
&lt;span class="punct"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;On that note&amp;#8230; check out &lt;a href="http://www.pragmaticprogrammer.com/titles/fr_ltp/index.html"&gt;Learn to Program&lt;/a&gt; by Chris Pine.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;
Griffin has followed up to my blog entry with &lt;a href="http://blog.griffincaprio.com/blog/PermaLink.aspx?guid=bab9eada-919f-4f48-9bec-5ca058d23e58"&gt;another&lt;/a&gt;. He goes on to say, &lt;em&gt;&amp;#8220;The kid who builds the bird house above would never be hired to build an actual house.  Not true in Software Development.&amp;#8221;&lt;/em&gt; (&lt;a href="http://blog.griffincaprio.com/blog/PermaLink.aspx?guid=bab9eada-919f-4f48-9bec-5ca058d23e58"&gt;read more&lt;/a&gt;)&lt;/p&gt;


	&lt;p&gt;I think this problem raises a completely different problem. Why are unqualified people being hired to do things that they aren&amp;#8217;t qualified for? Do we blame the people learning to program or do we look at who hires these people in the first place? I&amp;#8217;m still confused by his argument.&lt;/p&gt;


	&lt;p&gt;That kid may not get hired to build a house, but he may get interested in that as a career and continue to pursue it&amp;#8230; if someone hires him to build the whole house, then the person hiring should be held accountable do some degree as well. Check references! ;-)&lt;/p&gt;


	&lt;p&gt;On the flip-side&amp;#8230; is this an argument to only take people who have been approved by some board (...MCSE?) seriously when hiring developers?&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update #2&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Griffin has outlined his points in more detail in &lt;a href="http://blog.griffincaprio.com/blog/PermaLink.aspx?guid=22784b17-01b1-47bc-95a3-ac052495a9cc"&gt;this third entry&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 18 Jan 2006 09:44:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:1d5e924c271c7210c51cc06fa4e94ba3</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/01/18/ruby-eye-for-the-anti-newbie-guy</link>
      <category>Ruby</category>
      <category>Programming</category>
      <category>ruby</category>
      <category>book</category>
      <category>programming</category>
      <category>rant</category>
    </item>
    <item>
      <title>Why’s (Poignant) Guide to Ruby in PDF form!</title>
      <description>&lt;p&gt;The famous, &lt;a href="http://poignantguide.net/ruby/"&gt;Why’s (Poignant) Guide to Ruby&lt;/a&gt; has been released as a nicely &lt;a href="http://redhanded.hobix.com/inspect/caughtInMyFiltersTheBestPoignantPdfToDate.html"&gt;formatted &lt;span class="caps"&gt;PDF&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Thanks to &lt;strong&gt;Leon Spencer&lt;/strong&gt; for providing the world with &lt;a href="http://poignantguide.net/ruby/whys-poignant-guide-to-ruby.pdf"&gt;this &lt;span class="caps"&gt;PDF&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;leon++&lt;/strong&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 13 Sep 2005 06:57:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:88abbdc5ebbc82b335422d753eb78123</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2005/09/13/why%E2%80%99s-poignant-guide-to-ruby-in-pdf-form</link>
      <category>Ruby</category>
      <category>Programming</category>
      <category>ruby</category>
      <category>book</category>
      <category>_why</category>
    </item>
    <item>
      <title>DHH interviewed by O'Reilly</title>
      <description>&lt;p&gt;I just finished reading a very nice interview of &lt;a href="http://www.loudthinking.com/"&gt;David&lt;/a&gt; by &lt;a href="http://www.oreilly.com/"&gt;O&amp;#8217;Reilly&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;You can read it &lt;a href="http://rubyurl.com/WsM"&gt;here&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;While reading it, I recalled a brief conversation that I had the other day, when someone said that they didn&amp;#8217;t like Rails because, &amp;#8220;it assumes things&amp;#8221; which translated to the fact that they didn&amp;#8217;t like that it had a uniform directory structure, pre-defined naming conventions, etc.&lt;/p&gt;


	&lt;p&gt;After spending this whole year, teaching myself Rails, reading the documentation pages&amp;#8230; (probably at the &lt;span class="caps"&gt;API&lt;/span&gt; site a few hours a day), this concerned me. A lot of people are quickly turned off by the fact that Rails has opinions. But, let&amp;#8217;s think about this for a moment. Rails has opinions built-in that help &lt;strong&gt;speed&lt;/strong&gt; up the development process when you accept those opinions. If you don&amp;#8217;t, you don&amp;#8217;t have to pspend any more time than you did prior to using Rails. So, their argument is, &amp;#8220;why bother with Rails?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;At first, the answer isn&amp;#8217;t so obvious&amp;#8230;. but if you consider all the &lt;strong&gt;opinions&lt;/strong&gt; that Rails expresses, do you honestly feel that &lt;strong&gt;every&lt;/strong&gt; one of them is wrong? If so, Rails is probably not for you. If you find a good portion of them to be quality opinions, then&amp;#8230; Rails just might be your cup of tea afterall.&lt;/p&gt;


	&lt;p&gt;Pluralization make you feel weird? Turn it off. (one line of code will do this for your &lt;strong&gt;whole&lt;/strong&gt; application.&lt;/p&gt;


	&lt;p&gt;Wait, you want to use &lt;code&gt;category_id&lt;/code&gt; as your primary key?&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="keyword"&gt;class &lt;/span&gt;&lt;span class="class"&gt;Category&lt;/span&gt; &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt; &lt;span class="constant"&gt;ActiveRecord&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Base&lt;/span&gt;
  &lt;span class="ident"&gt;set_primary_key&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;category_id&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Yes, I know&amp;#8230; it&amp;#8217;s tough. ;-)&lt;/p&gt;


	&lt;p&gt;Another thing that I am wondering now&amp;#8230; &lt;em&gt;what is the conductor?&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;My guess? Some added bonus for Rails that allows you to run a Rails application off of one or many servers&amp;#8230; now that would be nice. That&amp;#8217;s my guess though&amp;#8230; what is yours?&lt;/p&gt;
</description>
      <pubDate>Wed, 31 Aug 2005 06:46:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e3f0268efcc32f8f854c68e43cc4b069</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2005/08/31/dhh-interviewed-by-oreilly</link>
      <category>Ruby on Rails</category>
      <category>Programming</category>
      <category>book</category>
      <category>oreilly</category>
      <category>dhh</category>
      <category>rails</category>
    </item>
  </channel>
</rss>
