RailsConf 2009 Recap

May 8, 2009 | rails, ruby

Vegas On Rails

This was my first RailsConf, and it was at the Las Vegas Hilton. Despite the unpopularity of the choice of venue, the conference was overwhelmingly entertaining and intellectually stimulating.

I highly recommend watching the keynotes. In particular: DHH’s opening keynote and (Uncle) Bob Martin’s excellent talk, “What Killed Smalltalk Could Kill Ruby Too”.

The RailsConf organization encouraged community videos, so hopefully footage of the sessions I highlighted below will become available as time goes on.

Rails 3 - Have It Your Way

This new Rails slogan underscores the customizability of Rails 3. DHH emphasized that you’ll still be able to hit the ground running with Rails out of the box, while more special problems can be solved by swapping out Rails components for more custom solutions. Want to use DataMapper instead of ActiveRecord? No problem. Want to use JQuery instead of Prototype? As you wish.

In short, Rails will be fully functional out of the box, but very customizable given time and configuration.

But it didn’t stop there. A common theme in many sessions was : is Rails really necessary for every web application you write? Some sessions even focused entirely on non-Rails technologies. This was a more open-minded position that I am used to seeing from the Rails community.

Rack / Metal / Sinatra

There was a lot of activity around Rack, Metal and Sinatra at the conference. At least 3 sessions covered any 2 of the 3 topics. For me, realizing that Metal allows any Rack compatible application to act as middleware was particularly exciting. In Rails 2.3+, you can bypass most of the Rails stack to optimize a particular resource by using Sinatra. How cool is that?

Cucumber

Cucumber isn’t entirely new to me. I’ve been using it on my pet projects since the RSpec book went into beta. What was excellent for me to see is the unanimous support it received at RailsConf. There was an impressive attendance to Aslak Hellesoy’s cucumber talk (most of which is covered in the recent RailsCast on cucumber).

Aslak asked for show of hands: “who is using cucumber for integration testing?” Overwhelming yes. “Keep your hands up if you have non-technical people writing specs” At this, an underwhelming few kept their hands up.

But whether or not cucumber is being used for its ideal goal of having stakeholders write value-driven feature specifications— this is still a powerful technology that is not going to fade out any time soon.

Session Highlights

Git Tricks / Scott Chacon

Man this guy loves git. I’ve watched several of his GitCasts and this was like an octane-fueled version. His 60-second overview of git at the beginning was hilarious.

The tips ranged from extraordinarily geeky to incredibly useful. Definitely check out the slides

Mocks and Stubs / David Chelimsky

David is an excellent speaker. I fully appreciated his overview of mocks versus stubs— how they are often combined and confused (I couldn’t tell you the definitive difference before attending this session).

we verify stubs by checking state after an action

we tell mocks to verify interactions

In his session he brought up Pat Metheny’s response to the question, “what modes do you use” which was “that’s like asking ‘what verbs do you use?’” In other words, verbs, modes, patterns, tests emerge from the context in which their necessity is born. This resonated with me. In this session David outlined several reasons for isolated testing using mocks. As it turned out I had done every single one of these, despite the fact I couldn’t have named any of them before this talk.

Slides

Map / Reduce with RabbitMQ / Paulo Negri

This presentation really opened my eyes to the power of RabbitMQ. I’ve been meaning to try out this AMQP-compliant message daemon for a while now. And now with the emergence of carrot it’s no longer an issue to use with synchronous Rails servers (mongrel, passenger).

Paulo’s talk focused on a few real-world business applications of map/reduce on top of RabbitMQ.

Modeling Workflow in Rails / David Bock

David Bock gave an excellent overview of State-Based and Process-Based workflow systems, and how to implement them in Rails by combining the excellent AASM gem and some vanilla Rails conventions.

Lightning Talks

I caught about two thirds of the lightning talks: 5 minute presentations by anybody about anything interesting.

Of note:

  • Bryan Liles’ TATFN-heavy proselytizing about TDD and being an active member of the community.
  • Yoshiteru Negishi’s talk on Cookpad (which serves 6 million unique visitors per month)
  • Joshua Hull’s Rack hacks that he had made for each day of the conference
  • Josh Nichols’ Jeweler presentation (easy rubygem creation)