I recently went to Boulder, Colorado, for the 2013 Rocky Mountain Ruby conference. More than 300 Ruby enthusiasts gathered there to attend workshops, presentations, drink ups and more.
For me the highlight of the conference was the presentation given by Eugene Kalenkovich titled “Rails: Shadow Facets of Concurrency.” Eugene used some simple examples to show how concurrent processes can create real problems in Rails code. He used code to assemble “dogs,” each made up of ActiveRecord objects called Dog, Head and Leg. Head belongs to Dog, Dog has many Legs, etc. Running on a single process, the code behaved as expected in specs, assembling 20 full dogs from the component parts.
Kalenkovich then introduced concurrency to his code, simply by adding ‘concurrently do’ to his spec. The result was a humorous collection of headless dogs with seven legs, two-headed dogs with three legs, one-headed dogs with 10 legs, and more (As Andres Alvarez noted, coders don’t play God, but…). Kalenkovich then showed us how to prevent these problems by applying some simple data integrity checks, keeping our reputation as mad-scientist developers minified.
His examples were humorous, light-hearted and effective (he also did a demonstration of concurrency problems with deployment using audience members and lollipops), but they did an excellent job of making simple some of the problems we face with concurrency, a topic that can sometimes feel overly complicated and hard to understand.
Katrina Owen gave a talk called “Here be Dragons,” which applied game strategy theory and the concepts of “winning” and “losing” to cooperative software development and refactoring on long-term projects—this provoked some very interesting thoughts in my naturally very competitive brain.
Ben Smith also gave an excellent presentation called “How I Architected my Big Rails App for Success,” which detailed how the application he manages scaled as it grew, and how the development and operations teams have handled the growth needs by extracting individual components of a single Rails app out into many independent engines.
The presentations I found most valuable were those that focused on the problems that successful applications have once they grow and scale. As I progress as a developer, I encounter more frequently the problems caused by the success and growth of an app, which are good problems to have, but can be challenging nonetheless. Having a chance to see how other developers have tackled these problems is invaluable to me, and I definitely felt that I got access to lots of new information at RMR13.
I also learned about a new deployment platform designed specifically for Rails called Ninefold. Ninefold aims to be a player in the cloud deployment market currently dominated by Heroku. I promised the Ninefold guys I’d bring their pitch back to Big Nerd Ranch for our developers to test and and experiment with. One of the devs on my team has already opened an account and is sending me his impressions.
If you’d like to check out the presentations, videos will be available soon on Confreaks.
After the end of the conference, I hiked to Mt. Sanitas and back.
One of the great things about this conference was its emphasis on charitable giving, specifically in regards to Colorado flood relief. Just a few weeks before RMR13, Boulder and the surrounding area were devastated by a 100-year flood event that caused more than $90 million worth of damage to the county. At the conference I found out about a charitable fundraising application built on a Ruby platform called Booster.com, which provides a means for crowdsourcing charitable giving via t-shirt sales. They spotlighted a campaign to help raise money for flood relief efforts. In the end, RMR13 was able to give a total of $5,280 to charitable causes, and it was great to see the Ruby community coming together to help others.
I met a bunch of new people who were fans of Big Nerd Ranch and I had a great time at the conference. A lot of people seemed surprised, and impressed, that I had traveled all the way from Atlanta to attend. I think that reaffirmed a goal of the organizers that the conference be national in scale or even global in its influence. I met an alumnus of our beginning iOS course at Banning Mills, which was cool. I would definitely recommend attending Rocky Mountain Ruby in 2014 to anyone in the Ruby community, and I hope to return myself.