RailsConf 2007: Technology

Posted by Curtis Miller Curtis Miller

This is the first article in a series about my experiences at RailsConf 2007. Specifically it will talk about the tutorials and sessions I attended from a technology perspective. They are taking a while to come out because I have been swamped with work after taking the whole week off for the conference.

There were really only a couple of main categories of sessions available: Rails, JavaScript, and Design. I attended a few from each and came away with some great information.

On the JavaScript side I attended a tutorial on Thursday by Thomas Fuchs, the creator of the Script.aculo.us JavaScript library. Script.aculo.us is an add-on to the Prototype JavaScript library and gives you some cool user interface functionality. Graeme Mathieson has a pretty good writeup on what was covered. I wasn't entirely pleased with this tutorial. I think the title Is JavaScript Overrated? Or: How I Stopped Worrying and Put Prototype and script.aculo.us to Full Use was a little misleading because I expected to leave the session feeling more comfortable with the prototype and script.aculo.us libraries. Instead, it seemed like the session was simply a plug for the upcoming prototype 1.5.1 and script.aculo.us 1.7.1 releases and not much of a tutorial on using those libraries.

I attended two other good sessions dealing with JavaScript, Nick Merwin's Script.aculo.us Inside Out and Dan Webb's Javascript-fu. Both were practical and entertaining. These were the type of sessions I was looking for, great job guys! Of particular interest to me was the discussion of the before and after events (including internals), scoping of events to create a timeline of effects, and the demo of how to create your own combo effect. Dan also talked about event delegation, a means of propagating events up to the parent element. For example, you could add an event handler at the document level so that all elements on the page now have the event handler. I believe that the Ext JavaScript library does this type of event delegation.

Within the design track, I only attended one really good session. It was called Practical Design for Developers by David Verba. Main take away was that (obviously) design is not just about visual design. Most people think visual design when someone talks about design. However, it also encompass interaction design issues. “Design is not just cosmetic. Design is also cosmetic.” He gave some references that he thought might be helpful for developers who either need to do some design themselves, or who are working with a designer.

  1. The Elements of User Experience: User-Centered Design for the Web by Jesse James Garrett
  2. Observing the User Experience: A Practitioner's Guide to User Research by Mike Kuniavsky
  3. Information Architecture for the World Wide Web: Designing Large-Scale Web Sites by Louis Rosenfeld and Peter Morville
  4. The Non-Designer's Design Book by Robin Williams

Even simple improvements can make a huge difference because the average user takes only 1/20th of a second to make a judgment about the site they are visiting! Kind of in the design area, I attended Dan Benjamin's talk on Building Community-Focused Apps with Rails. He had some really great examples from his site Cork'd as well as from A List Apart. It was great to have a session that talked about what we are building and who we are building it for. Most of the other sessions focused strictly on the how of building web applications.

Then we come to Rails specific sessions. It has been a year since DHH's keynote where he described the Rails approach to RESTful design and there were a lot of sessions focused on REST (I went to several). I think this is because most developers out there still just don't get it (including me?). Well, maybe it's not that we don't get it, conceptually, but we are finding it hard to swallow programatically. I think it will take a significant shift in thinking to expect that your controllers will only have seven actions. Before, we had free reign over the controllers and now they want to take that away?!? Haha, just kidding, it really does make sense in the majority of cases and there are ways to extend the RESTful controller with additional actions (see Railscasts). I won't get into this topic too much right now because I am still learning it, but I am starting to see more information floating around out there to explain Rails REST. If you haven't already heard about it, go search around and see what it's all about.

There were also quite a few sessions on cleaning up your code. I think this is good because, personally, I need this kind of direction. This goes beyond the glossed over Fat Model, Skinny Controller approach. Most of the sessions seemed concerned with overly complex view code and how to keep it DRY using helpers and other techniques. Overall, I thought these sessions were extremely beneficial and I hope that more like this appear next year. Makes me want to go back and re-write all my view codeā€¦

I attended Jamis Buck's Harnessing Capistrano tutorial as well. I knew next to nothing about Capistrano when I went into this tutorial. He had some good demos of certain features of Capistrano. It seems to me that it is an extremely useful tool for more than just deploying your Ruby on Rails application to various machines. Capistrano is definitely something I need to become more familiar with. What was said in the presentation won't really sink in until I get hands on. Find the presentation here.

One session I thought was incredibly cool was Eric Hatcher's session on Solr and what he is doing with it for the University of Virginia.

Solr is an open source enterprise search server based on the Lucene Java search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search, caching, replication, and a web administration interface.

Wow! And I thought acts_as_ferret was cool. His demonstration of Solr was very exciting.

Friday morning was DHH's keynote. I think his main point was we (the rails community) have a lot of catching up to do before more major changes are introduced. Whew! I wholeheartedly agree. In the meantime, Rails 2.0 will basically be putting the polish on what is there already.

Well, not exactly a live blog of the conference, but hopefully this gives you an idea of the content and some links to follow-up on some of the things that were discussed. If you didn't make it to Portland this year, then I hope to meet you next year. I still have a few RailsConf posts planned that will talk about some of the non-technical things I got out of the conference, so keep an eye out for those soon.

Not sure if the Pragmatic Programmers are still accepting RailsConf donations, but please help out if you can!

Velocity Labs

Need web application development, maintenance for your existing app, or a third party code review?

Velocity Labs can help.

Hire us!