Written by thoughtbot

RubyConf 2007 Day 1

Welcome to RubyConf

Me, Tammer, and Dan are all here at the OMNI CHARLOTTE Hotel, at RubyConf 2007. This is my post, written throughout the day, so be prepared for some crazy tense switching.

Marcel Molina is launching RubyConf with the first talk, about what makes software beautiful. He’s bringing in a lot of linguistics and mathematics and physics concepts, and is sure to remind everyone that he has a liberal arts degree, not some plain computer science background. His literary upbringing is all too evident, as his presentation is eloquent, elaborate, and florid.

Words mean stuff, we all know that, right?
—Marcel Molina, Jr.


Honestly, the whole thing came off rather pretentious, much like this blog posting. He tried to define a less subjective idea of beauty, and then apply it to code, but I don’t think it resonated with anybody except those who already agreed with him and read religiously (as I do).

Can you imagine programming without ‘if’?
—Marcel Molina, Jr.

Next, Jim Weirich is giving a talk now on Advanced Ruby Class Design. He’s showing us some advanced Ruby class design using Builder, the XML building library that is featured prominently in Rails. He apparently wrote Builder…and Rake! He just asked about Lisp, getting a good bunch of cheers, all mysteriously from the rightmost block of the room. Why…why there?

Camping versus Robots

At 1:00, the rooms divide, and it’s Nathaniel Talbott presenting Why Camping Matters, on _why’s Camping, versus Ben Bleything presenting Controlling Electronics with Ruby, on Greg Borenstein’s RAD. Nate has the _why factor going for him, and his room is packed, and Ben has the robots factor going, and his room is packed. I’m drawn to both of these, so I’m going to be Zack Morris on Cut Day and try to be in two places at the same time.

Nate’s room, Room 1, is bigger and people are sitting on the floor, which is also where I am. He’s introducing _why, chunky bacon, etc., and pointing out a disturbing cutout of Alan Keyes in the back of the room.

Camping isn’t opinionated. It’s strange.
—Nathaniel Talbott

Over in Ben’s room, people are also sitting in the floors—in fact, getting into the room is tough, because they’ve lined the doors. Ben has a scrolling LED marquee on the front of his podium, and a red and green lightbulb set up on posts nearby. He’s talking a lot about X10, the company which makes the hardware this stuff is running on, but he has no problem referring to them as scummy, while also recommending people buy stuff from them. This is how you know RubyConf is a bunch of young people.

He’s turning the red and green lightbulbs off and on, through IRB, right in front of us, and controlling the messages on his scrolling marquee. Very neat. Controlling electronics with Ruby is pretty awesome, but there’s a lot of caveats to remember while coding, like remembering to sleep for 1 second after closing a port, and using Kernel.require instead of require if you require the library after requiring ‘rubygems’, and actually allocating enough memory for your strings. It’d be nice if more of that could be shoved under the hood.

It’s red, it’s green, it’s amber, or it’s a rainbow.
—Ben Bleything

Nate’s hitting on a really good point about Camping, which is that it shows you that writing a framework that does the same kind of things that Rails does isn’t as daunting as it seems. It shows you that a lot of seemingly giant problems aren’t actually that giant. Which is really what _why is all about, as evidenced by his recent Ruby GUI library, Shoes.

Rails encourages conformance. Camping encourages experimentation.
—Nathaniel Talbott

Ben’s using a webcam pointing at his own face and hands, to show off the physical chips he’s using in front of everybody at a size that everyone can see. Another neat idea. The guy is drowning in wires, and had to do some rewiring on the spot, but he pulled it together, and the process clearly impressed everybody in the room.

Nate’s talk is getting a little restless, as it’s more about coding culture than real Camping content. There’s a RubyConf twitter account that people can broadcast messages with, and Al3x from Twitter just broadcasted the first bash of the conference. I just unsheathed my obsidian dagger.


Eric Ivancich is giving a talk on Ropes, as an alternative to Strings, for use in programs where you need extreme performance in string storage and manipulation. I find the subject interesting as it is, as he puts it in the context of performing DNA simulations, but the flame annihilation effects he puts on his exclamation points on transition really help to maintain my attention. Eric’s a clear and confident speaker, but he inserts a lot of All right?s and Okay?s, which push him a little bit into the realm of arrogance.

This takes place in O(log n), as you can imagine.
—Eric Ivancich

Ruby Sadism

Ryan Davis is here to talk about Hurting Code for Fun and Profit, and has 120 slides to go through in 45 minutes. So far, the bulk of them are cartoons, which are getting an insane amount of applause.

The developer’s obligation is to make sure the code gives the clearest possible statement as to how the solution was understood at the time of writing.
—Ward Cunningham

People also enjoyed his invention of the word mentarbator, as a description of people caught in analysis-paralysis. This talk is more about self-improvement than any specific code processes, so it depends on him selling himself as a guru, and he seems to be succeeding at that. Someone’s piping up in the audience, presumably one of his colleagues, to tell him that he made someone cry once, but refuses to disclose any identity. The twitter blasts are very positive, one guy saying he’s teary eyed.

I enjoyed being reminded to focus!, and unsubscribe from a bunch of garbage, and get rid of clutter, I do that already but I need to hear it every so often. He also suggested learn a new language every year, which is as good a reminder as any for me to learn Python, as I’ve intended for months now. Still…this guy is a little overrated.

Town Hall

Matz is on stage, sitting casually on the edge of it and wired up to a mic that could stand to be a little louder. He’s a soft voiced man, though, and his English is a little rough around the edges, so it may not matter. I have poured some Mello Yello into an elegant glass.

The first questioner quickly alienates the entire crowd. He’s from a company who makes some kind of media playing software on Windows, in Ruby, and he’s pissed off about Ruby 1.9’s backwards incompatibility. He complains about File.exists? changing to File.exist? and breaking all of his code! He describes this as a bad reason for incompatibility and basically asks Matz what on earth he is thinking. The crowd is restless and annoyed, it’s very uncomfortable. Matz responds that he’s been wanting to make that change for a while, he tries to maintain backwards compatibility, but sometimes he needs to break things. And that is all he needs to say.

I like all programming languages, except for several.

It’s a little rough, overall, as Matz' answers are usually incomplete. This is partly because of Matz' impaired English, but also partly because people get up there and talk for a while and don’t ask real questions. And, when Matz gives them an incomplete answer, they don’t follow up, but just say Thank you. and go back to their seat, leaving everyone feeling a little awkward. I’m guilty of that last one myself, both times I went up to ask questions. I just didn’t know what else to say, and so it ends on an awkward note.

Q: What would you remove from the Ruby language?
A: …….. …….. …….from Ruby?!

Still, it’s honestly awesome to just hear Matz take all these questions and answer as honestly as he can. There’s a strong sense of reverence in the room, but nothing fanatical, and the audience refrains from a maudlin standing ovation at the end. It was a fine end to a fine first day at RubyConf.