Blog An exploration of the art and
craft of software development

RailsConf 2006 - Day Two

Posted by Marty Haught on Sunday, June 25, 2006
So here are my thoughts from Day Two. Overall this day was awesome. It doesn't hurt to start off the day on a better night's sleep than before.

So the talks...

1) Ajax on Rails - Justin Gehtland

Justin is an experienced speaker and really knows his Ajax. He's one of the authors of Pragmatic Ajax. What's even cooler is that his presentation was done in ajax and not Keynote or Powerpoint. That's drinking your own kool-aid. His talk covered the basics on Ajax through the Prototype and Scriptaculous libraries. It's such a lengthy topic that he couldn't go too deep but he did focus on the good points (auto-complete, drag and drop, rjs templates). The conclusion to his talk covered the Streamlined generator that Relevance (his consulting company with Stuart Halloway) will be open sourcing in a month of so. This was impressive. It was essentially scaffolding on crack. It looked beautiful and supports many great features out of the box such as: tables that sort by field, linked models and object searching. The relationships only need you to define the relationship in the model and you're done. Very impressive and you can go in and override any of the actions/views if you need to. Just awesome.

2) Lessons from Blinksale & IconBuffer - Scott Raymond

This was an interesting talk. Scott's not the greatest speaker but his material was good. He began his focus on three pillars of architecture which were Firmitas, Utilitas and Venustas. He explored how these important aspects of architecture apply to software design. He related them as foundation/durability, utility/usefulness and beauty/delight. He also demonstrated both apps and talked about how these principles applied. The other interesting part of his talk was discussing the role of a developer in a small team and how to manage communication (very much like agile). It seemed more geared towards a consultant that might be the only developer on the project. He ended off the talk discussing some of the challenges with those sites and how he evolved the code, which he extracted into two plugins.

3) Lucene Eye for the Ruby Guy - Seth Fitzsimmons

I enjoyed Seth's talk even though I have no use for advanced search in any of my Rails apps. You can tell that Seth has worked in this space for some time and is quite knowledgeable. Again, Seth's not a veteran speaker but he did fine. He covered the pros and cons of handling your own search and the tools you might use with your Rails app. I came away with some good advice if I did turn to having some serious or complicated search on my site. SOLR, Hyper Estraier and Lucy seems like good possibilities. He also discussed his Searchable Module which seemed quite promising.

4) Rails Deployment - Ezra Zygmuntowicz

This was a seriously popular talk. I think it was the most packed talk of the conference. Luckily I got in early and had a good seat. It may have been close to 300 folks in this room (normally would be around 200). Anyway Ezra did a great job. He covered two case studies for how he deployed Rails. His first case dealt with a newspaper that he worked on. It had some interesting issues including a proprietary database that he wrote a DSL to connect with. He had some great advice on how to set up the production environment. Most of it was classic loading balancing and splitting code over servers. He primarily used Lighttpd for his environments though now is leaning towards Mongrel with Apache 2.2. He also discussed issues with shared hosting and strongly suggested Xen as a virtual space solution. He's now working with Engine Yard which should be providing a beta hosting service that makes Rails deployment very simple.

5) Testing Migrations - Glenn Vanderburg

Glenn's talk was very thought provoking but unfortunately he didn't really have a great solution for testing migrations. That is probably due to the challenging nature of the problem. I walked away with a sense to check back in a few months on this and otherwise take great care in handling migrations.

Keynotes:

1) Testing Rails Apps - Mike Clark

Mike's testing talk was very well done. 95% of it was review for myself but I didn't mind. The one thing that I did find fascinating was his discussion on integration tests and the usefulness of writing a mini-DSL to describe/test your app's workflow. In a nutshell the rest of his talk discussed how important testing is during your development process (test driven development) and how Rails makes this as easy as possible. I'm already sold on the idea and I think a lot of Rails developers are as well.

2) Homesteading - Nathaniel Talbott

Nathan's talk focused mainly on taking the opportunity to step up to the next level of your career. This was expressed as starting your own application or independent consulting practice. It was really solid advice on just advancing your career and taking care of your vocation as a software professional. Good stuff.

3) Rails in the Future - DHH

David laid out some future features of Rails and I think it was fair to say that the crowd loved it. He reinterated that Rails will not bend to the will of the 'real world' but would continue to do things the right way. Some interesting points were thinking of your models from a strictly CRUD standpoint. Some of the actions we might be writing really are simple CRUD on some other model such as a relationship, state or behavior of another model. He also discussed the concept of ActiveResource which should make web services much easier as well as eliminating a lot of duplication in your controllers. There was also an interesting undercurrent where DHH was refuting the need to make supporting composite primary keys easy. This premise was one of Dave Thomas's points for what Rails needs to do to get to the next level. One of DHH's comments was 'if you're doing composite keys in a new DB you're INSANE!!!' pretty funny stuff.

Anyway, another great day and I should really get some sleep before it affects me tomorrow morning!

blog comments powered by Disqus