Ruby Hoedown, Day 2
By day two of the Ruby Hoedown, I had more or less gotten the hang of the whole “Inner Beltline” vs. “Outer Beltline” thing. If you know me, it will not surprise to hear that I had a little bit of trouble finding my way around Raleigh and got lost a few times on Friday. The problem is that when you go to get on I-440, they don’t tell you which entrance is northbound and which is southbound, because no, that would make it too easy. You have to know that traffic on the Inner Beltline goes clockwise around the city, and traffic on the Outer Beltline goes counter-clockwise, and choose your path accordingly.
The morning began with a breakfast sponsored by Microsoft: Krispy Kreme donuts and juice (Breakfast of Champions). A nice gesture considering that the previous evening’s keynote had referred to Microsoft as the “great satan of the northwest”. The first presentation of the morning was by Andrea O. K. Wright, who spoke about various game development APIs. This is yet another one of those subjects about which I know very little, so I was surprised to see such a wide variety of projects out there. I’m definitely going to check out a few that she mentioned, like Gosu, Ogre.rb and Shattered Ruby.
Next up was a series of lightning talks. I’m not going to list all of the topics here, but they were all good and to the point. I think this is the first conference I’ve attended that featured lightning talks, and it’s a nice way to provide a break between the longer sessions. After the lightning talks, we broke for lunch and a set of birds-of-a-feather sessions. I organized a BOF on the Semantic Web and Ruby, and it attracted a pretty good sized crowd. A handful of us were pretty familiar with the subject, while many of the others were just interested in hearing what it was all about, but we had a good discussion.
After lunch, Ken Auer spoke about whether Ruby has a chasm to cross, from the domain of technology enthusiasts and visionaries (where he feels it currently resides) to the pragmatists (a.k.a. the “early majority”). He argued that the public face of Ruby and Rails community doesn’t appeal to those people in the early majority because we aren’t addressing their needs; we need to focus on functional teams, serving the customer. His talk covered a lot of the same ground that Bruce covered in his keynote the previous day, but it was interesting to hear Ken’s observations from the perspective of a former Smalltalker. And I’d just never met Ken or heard him speak, so I enjoyed it for that reason too.
Next, Jared Richardson spoke about using C extensions to tune the performance of Ruby and Rails applications. He talked about writing extensions directly in C, and then moved on to RubyInline, and finally touched on the Ruby2C project (which, as he informed us, is developed by “two guys named zenspider and Ryan Davis“; yes, heckling ensued). None of this information was new to me, but during the conference wrap-up discussion, several people said that this was the most valuable thing that they had learned about during the Hoedown (“this” being the education about C extensions, not the revelation of Ryan’s split personality), so I’m glad that this talk was selected for the program. Also, I’d never had a chance to hear Jared speak, and he’s a really entertaining presenter. When the start of his presentation was delayed for what seemed like an eternity (due to various technical problems), he managed to keep the audience entertained by throwing boxes of Nerds candy to (or should I say, at) various audience members who answered his questions correctly.
Marcel Molina, Jr. had the final presentation of the day, with his keynote titled “What Makes Code Beautiful?” It was, as Marcel acknowledged, more of a “pop” talk, light on technical information, but he proposed a useful model for thinking about what we mean when we make the claim that Ruby code is beautiful. He emphasized three qualities of beauty (a la St. Thomas Aquinas): proportion (i.e. is the relative size of a bit of code consistent with its intent?); integrity (how well does this code do what it’s supposed to do?) and clarity (is it easy to understand)? These qualities can of course be in conflict with each other: extremely terse code might satisfy the need for proportion, but simultaneously violate the need for clarity. A lot of the discussion during the Q&A session went over my head, but it was a nice way to wrap up the weekend.
Chad and Marcel helped to organize a post-conference game of Werewolf, and thanks to Jim Meyer we were able to secure a place to play. A handful of the guys were experienced players, but it was the first time for most of us (including me), and it was a lot of fun. As Chad noted, it was a great way for us to really strengthen the friendships that we’d formed over the weekend, because, after all, there’s nothing that builds a relationship more than accusing someone you’ve only known for a couple of hours of being a shapeshifter. Thanks to the management of the Velvet Cloak Inn for letting us camp out in one of their meeting rooms until late into the night, and especially to their employee Caitlin who joined us for the last game of the night.