<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Nick Sieger: RailsConf Wrapup</title>
  <subtitle type="html">do what you love</subtitle>
  <id>tag:blog.nicksieger.com,2005:Typo</id>
  <generator uri="http://www.typosphere.org" version="4.0">Typo</generator>
  <link rel="self" type="application/atom+xml" href="http://blog.nicksieger.com/xml/atom10/article/32/feed.xml"/>
  <link rel="alternate" type="text/html" href="http://blog.nicksieger.com/articles/2006/06/29/railsconf-wrapup"/>
  <updated>2007-08-31T16:41:59+00:00</updated>
  <entry>
    <author>
      <name>Nick Sieger</name>
    </author>
    <id>urn:uuid:0b326693-c9d6-4add-97e4-c212762667bd</id>
    <published>2006-06-29T17:02:00+00:00</published>
    <updated>2007-08-31T16:41:59+00:00</updated>
    <title>RailsConf Wrapup</title>
    <link rel="alternate" type="text/html" href="http://blog.nicksieger.com/articles/2006/06/29/railsconf-wrapup"/>
    <category term="ruby" label="ruby" scheme="http://blog.nicksieger.com/articles/category/ruby"/>
    <category term="rails" label="rails" scheme="http://blog.nicksieger.com/articles/category/rails"/>
    <category term="railsconf" scheme="http://blog.nicksieger.com/articles/tag/railsconf"/>
    <content type="html">&lt;p&gt;RailsConf has been over for &lt;span style="text-decoration:
line-through;"&gt;three&lt;/span&gt; four days, and I&amp;#8217;m just now flushing out
my wrap-up?  Better late than&amp;#8230;whatever.&lt;/p&gt;

&lt;h2&gt;Keynotes&lt;/h2&gt;

&lt;p&gt;All the keynotes were exceptionally good.  I had heard Paul Graham
speak at OSCON last year so while the theme of his new talk was good,
the controversy wasn&amp;#8217;t that controversial to me.&lt;/p&gt;

&lt;p&gt;Taking notes during keynote sessions is tough!  With the exception of
Dave Thomas, all the keynotes were in the evening, just when you&amp;#8217;re
ready to kick back with a beer (which we did on Saturday night during
David&amp;#8217;s talk).  After a day full of sessions, your brain&amp;#8217;s done and
the best you can do is osmosis, or wait for the video!  That said,
here are a couple of points and quotes I managed to snag.&lt;/p&gt;

&lt;h3&gt;Martin Fowler&amp;#8217;s talk&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rails does things a lot differently than many of the frameworks that
were trying to become fashionable in enterprise application design&lt;/li&gt;
&lt;li&gt;Opinionated software &amp;#8211; Rails does not claim to be the right
framework for everything&lt;/li&gt;
&lt;li&gt;Even if Rails doesn&amp;#8217;t succeed or become ubiquitous, it has made an
impact on the way applications are designed and built.&lt;/li&gt;
&lt;li&gt;If you do something quick, it has to be dirty, and if you do
something well, it has to take a long time.  Rails breaks this
dichotomy &amp;#8211; quick doesn&amp;#8217;t have to be dirty.&lt;/li&gt;
&lt;li&gt;Iterations and cycle time &amp;#8211; the faster a feature gets into
production, the more engaged the customer is in future cycles.  It
introduces a conversational style of software development.&lt;/li&gt;
&lt;li&gt;&amp;#8220;I&amp;#8217;m not saying Ruby is that much better than Python, it just suited
me more.&amp;#8221;&lt;/li&gt;
&lt;li&gt;&amp;#8220;This conference is a failure, really, because if Rails had
succeeded it would be so simple that there would be nothing to talk
about.&amp;#8221;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;David&amp;#8217;s talk&lt;/h3&gt;

&lt;p&gt;David&amp;#8217;s talk was subtitled &amp;#8220;How I Learned to Stop Worrying and Love
the CRUD&amp;#8221; (&lt;a href="http://www.loudthinking.com/lt-files/worldofresources.pdf"&gt;slides now online&lt;/a&gt;).  During the talk David
describes the thought process he arrived at while attempting to boil
down most operations in a Rails app to the simplest possible level of
Create, Read, Update, and Delete.  The table below illustrates the
thinking:&lt;/p&gt;

&lt;table border="0"&gt;
&lt;tr&gt;&lt;td&gt;GET&lt;/td&gt;&lt;td&gt;POST&lt;/td&gt;&lt;td&gt;PUT&lt;/td&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;find&lt;/td&gt;&lt;td&gt;create&lt;/td&gt;&lt;td&gt;update&lt;/td&gt;&lt;td&gt;destroy&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SELECT&lt;/td&gt;&lt;td&gt;INSERT&lt;/td&gt;&lt;td&gt;UPDATE&lt;/td&gt;&lt;td&gt;DELETE&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;But!  CRUD is not a goal, it&amp;#8217;s an aspiration, a design technique
(quoted from the slides).  I was reminded greatly of Eric Evans&amp;#8217;
superb book &lt;em&gt;Domain Driven Design&lt;/em&gt; as David implorded us to model
relationships, events, and closures in addition to tangible nouns, as
this makes relationship-building a CRUD operation as well.  Adding a
User to a Group is made simpler by simply creating a &lt;em&gt;Membership&lt;/em&gt;
rather than hanging additional non-CRUD operations off of both User
&lt;em&gt;and&lt;/em&gt; Group, which makes for DRY-er code as well.&lt;/p&gt;

&lt;p&gt;As others &lt;a href="http://jimonwebgames.com/articles/2006/06/26/dont-say-crud-say-fucd"&gt;have remarked&lt;/a&gt;, we need better jargon for CRUD.&lt;/p&gt;

&lt;p&gt;Add to the conversation the newly unveiled &lt;code&gt;ActiveResource&lt;/code&gt;, and
suddenly Rails is an exciting integration platform!&lt;/p&gt;

&lt;h2&gt;Others&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Stu Halloway&amp;#8217;s &lt;a href="http://codecite.com/presentation/ruby/rails/meta_rails"&gt;MetaRails&lt;/a&gt; talk was a well-paced
progression through some of the metaprogramming techniques, and hurt
the brain less that Bill Katz&amp;#8217;s talk.  Stu mentioned how he runs the
presentation slides in a Rails app that pulls snippets directly from
the Rails codebase.  Except now it appears that it will be broken
without some intervention now that the &lt;code&gt;Reloadable&lt;/code&gt; module has gone
away.&lt;/li&gt;
&lt;li&gt;Duncan&amp;#8217;s talk on deployment introduced a not necessarily new, but
great metaphor of the &lt;a href="http://duncandavidson.com/essay/2006/06/webaspipe"&gt;web as pipe&lt;/a&gt; and why we should kick our
FCGI habit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;There is a &lt;em&gt;lot&lt;/em&gt; of energy to be harnessed in the Rails community.
This thing is just getting started.&lt;/li&gt;
&lt;li&gt;There are a ton of smart people working out the few remaining kinks
in Rails.  Deployment is about to get ten times easier.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mongrel.rubyforge.org/"&gt;Mongrel&lt;/a&gt; is a mad pup.  Don&amp;#8217;t mess with him.&lt;/li&gt;
&lt;li&gt;Rails will soon be a killer service platform.  There are going to be
Rails apps deployed all over the place that will be well integrated
through REST interfaces while all the SOA people still argue about
what SOA means.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
</feed>
