Ruby Hoedown 2008 Wrap-Up
The second annual Ruby Hoedown was held this past weekend in Huntsville, Alabama. Every time I attend one of these Ruby conferences, I go into it with good intentions to take notes about each presentation so that I can refer back to them later. It never quite works out that way. Luckily for you, Jason Seifer of the RailsEnvy blog has put together a nice overview of the first day’s proceedings (and hopefully a recap of Day 2 is forthcoming). At some point in the future you will of course be able to see videos of all the presentations at the Confreaks site.
I think I may have been a little under the weather, or maybe it’s just old age, but for whatever reason it was a really low energy weekend for me and as a result I didn’t get as much out of the conference as I’d hoped. I also came to realize that there are some downsides to attending a Ruby conference in your home town: when (if) you head home after the conference is over, you miss out on a lot of the informal stuff (like hacking and Werewolf) that takes place in the conference hotel(s) after hours. But it was a great conference nonetheless, and I do want to comment on a few things that I observed.
The RailsEnvy guys kicked things off with a whirlwind tour of “Ruby Innovations” during the last year or so. They actually went into more depth than I was expecting, and it was a really informative and entertaining presentation. Hopefully, they will post their slides soon, as it’s just too long of a list for me to try to reproduce here in any detail.
Next up was Robert Dempsey, who spoke generally about cloud computing and more specifically about how you could use Ruby and Rails with cloud computing services. It was an interesting topic, but Robert spent a lot of time talking about the various vendors of cloud computing solutions and comparing their plans, at the cost of a rushed presentation towards the end of how to actually do anything with those services. Given the audience, it might have been better to just pick one of those services for demonstration purposes and focus on showing actual running code.
Jim Weirch’s and Joe O’Brien’s wonderful “Mock Dialogue” presentation confirmed what I already knew, which is that I still have a lot to learn about software testing. I understand why it’s important, and I do it, but I’ve always had the feeling that I’m not doing it quite right. During a subsequent lightning talk, Bryan Liles mentioned that when he decided to get serious about testing, he made a point of really digging in and studying it, to see how other people were testing (or maybe I just imagined that he said that). I think that’s what I need to do, really immerse myself in it until it comes more naturally.
There was actually a lot of focus on testing throughout the conference, another reminder of how integral the concept is to software development with Ruby and Rails. I was really looking forward to Rick Bradley’s talk (on day two), which promised to “show how to transform a Ruby application without tests into a well-spec’d system with good test coverage.” Given that I’ve recently started working with two large Rails applications that have no tests, I was hoping that Rick would reveal some big secret that would solve this problem for me in no time. As it turns out, the method that he outlined, of writing what he calls “characterization tests” as a stepping stone to real specifications (and refactoring along the way) is more or less what I’ve been doing. Ah, well. Work goes on.
The last regular presentation on Friday afternoon was Rein Henrichs’ talk on “Ruby Best Practice Patterns”. Because I had only a few days earlier read Rein’s article in The Rubyist, I didn’t get a lot of new information from this talk—but that’s not Rein’s fault. It was entertaining, and he was able to use humor to make his point very effectively. There was also a really good discussion during the following Q&A about what constitutes “best practices” in Ruby software development. I’m looking forward to reading Rein’s upcoming book on this topic.
Chris Wanstrath’s keynote presentation on Friday evening was unlike any other I’ve seen at a Ruby conference, and it was a nice change. He talked about a lot of things, but what I took from it was that it’s important to keep refining your skills because you never know what opportunities those skills will lead to; you may not ever paid for your work on open source side projects, but the experience that you receive and connections that you make may result in new employment or business opportunities. It was an inspiring speech (without any slides), and I hope he’s planning to post the text on his blog.
Day two started with Troy Davis’ presentation on “Calling Your Code: Gluing Phone Calls to Ruby”. I noticed that Troy was throwing around a good bit of technical jargon, but I was late arriving to his talk and it may be that he explained a lot of those terms at the beginning. Regardless, it didn’t take away from the impact of the live demos that he gave of the technology. Troy demonstrated two or three really neat applications that used Ruby (via Adhearsion) to accept and react to incoming phone calls, or to place outgoing calls.
Another issue that I’ve been dealing with in those Rails applications that I mentioned earlier is the sometimes complex business logic used to determine how the models transition between various states. I was familiar with how rule engines worked, and I’d even heard Joe Kutner talk about his Ruleby project before, but it wasn’t until his presentation on Saturday afternoon that it finally started to click with me about how I might be able to use this to extract and codify the various rules that have snaked their way throughout the models and controllers of our code base.
Heading into the conference, there was a lot of hype about Giles Bowkett’s Archaeopteryx talk (versions of which he’s given at earlier conferences). I made a point of not viewing any of the videos from the previous times he’s given this talk, so I don’t know how much this one differed from those, but it wasn’t exactly what I was expecting. Without giving too much away, Archaeopteryx isn’t the real focus of the talk. Watch it if you get a chance. It was entertaining, to be sure: Giles’ presentation style is sort of a Takahashi on speed. I predicted in the IRC backchannel that his presentation would spawn a lot of bad copycats (of his style, not the content) and was assured that there has already been at least one such (failed) attempt.
The conference closed with David Black’s Saturday evening keynote talk on Ruby versions, past and present. It’s really cool to see someone with a such a deep understanding of the language (as David has) workthrough the evolution of Ruby from its earliest days until the present. He began with a demonstration of Ruby version 1.0, noting some of the bread-and-butter Ruby features that were missing from that version (such as the frequently used puts and methods methods), but also highlighting some of the core metaprogramming features that were already present even in that very first release (such as opening singleton classes to add functionality to instances). During the latter part of his presentation, he introduced some of the new features from Ruby 1.9 and talked about the implications of those changes. It was a great way to wrap up the conference.
As always, one of the best things to come out of the weekend was the opportunity to meet new people and learn from them. One of my concerns over the last few months has been what we could do to jump-start our local Ruby and Rails user group. The group was originally organized last summer, and we got off to a reasonably good start, but as time went on people lost interest and the group is more or less disbanded at this point. Which is unfortunate, because if the number of people subscribed to our Google group is any indication, there’s a good bit of interest in Ruby and Rails in this area. So I made a point of speaking to several people about what has or hasn’t worked in their local user groups, to get an idea of how we might reconstitute the Huntsville group. I think that a major problem we had was that there was no focus for the meetings. We couldn’t get very many people to sign up to give presentations, and as a result most meetings involved the guys sitting around and chatting for awhile before taking off. One suggestion to overcome this was to try out a lightning talks format, to engage people who don’t have the time to put together a full-blown formal presentation but might willing to speak for five or ten minutes on something interesting that they’re working on. Another suggestion was to try to organize a BarCamp or some other sort of informal conference, to bring more attention to the group.
Somewhere around the end of the first day, Jeremy announced that he’s working on Nashville’s Opryland Hotel as the site for next year’s Hoedown. His goal is to have the conference funded entirely by sponsors, and for attendance to be free (it was $199 this year). It’s an ambitious goal to be sure, but I’m interested in seeing how things turn out and to what degree it will impact attendance and participation.