We just returned from our first Rails-related conference
with a lot of useful information and tips on Rails testing, development, and deployment. Not only was it great to get some new ideas, but it was heartening to see that many of the practices we employ here at Viget are on track with what the Rails experts are preaching. The conference packed in a lot of heavy topics in a short amount of time, but left plenty of time for both discussion and networking. There were a lot of great talks that spanned the entire 3 days – here's what stood out for me:
- Metaprogramming in Ruby - Dave set the tone for the conference with his excellent talk on how Metaprogramming with Ruby can help to make us better Rails developers. I had a bit of an epiphany about halfway into his presentation as I started to "get" objects in Ruby.
- Ruby Idioms for Rails Programmers - Stuart treated us to a live refactoring of some Java controller code into a single line of Ruby by relying on the implicit design of the Rails framework stack.
- Sharing RJS - Marcel showed off some great conventions for refactoring RJS code into helpers that also had the side benefit of making them available in your views (via a link_to_function call).
- Creating Rails Plugins - Chad and Bruce gave a great demo on creating an 'acts_as_rateable' plugin from start to finish, complete with a bit of live coding.
- The Deployment Golden Path - James covered one of the thorny issues of Rails development – deployment. After showing some setup with Capistrano, Mongrel Cluster, and Apache, we were able to see a real deployment from a Subversion repository to a server within Amazon's EC2.
- Red, Green, Refactor - It was great to see Jim's live test-driven development excercise as he created and refactored a small piece of code. The real treat was the introduction that he gave to flexmock and flexstub – something that I had heard of before, but never knew how powerful it was when writing unit tests. His live demo of flexstub showed how you could reach into a Ruby class and manipulate its behavior from 2 degrees of separation.
A nice addition to the event that helped foster the informal, collaborative tone that Bruce describes on his blog
was ... ...Open VGA & Lightning Talks
This was a chance for the attendees to give quick talks about any topics that they were passionate about and show off applications that they had been working on.
- The Revolution Health team was on hand to show off their recently-launched application and introduce their process for managing shared code assets – Plugems.
- Jared gave us a quick demo of the Cha-Cha search engine and gave some tips on how the company got this Rails application to scale. The most interesting part was when he mentioned that Cha-Cha uses only custom SQL queries based on information gleaned from ActiveRecord log data.
- Ryan at ELC Technologies showed off their AWS Console application by instantiating some virtual servers within Amazon's EC2 cluster.
- Local Rails developer Bala Paranj gave a quick demo on how ZenTest picks up file changes and automatically runs all necessary regression tests.
- FiveRuns (an event sponsor) showed off their Web 2.0 systems management application. The interface looked promising, but I'm not certain how it hooks into the services that it's monitoring. I plan on signing up for their 30-day demo in the near future – this could be a simple alternative to going the Nagios route.
In all, it was a great conference. Thanks to Mike
and Nicole Clark at The Pragmatic Studio
for organizing the event.