As I mentioned, I spent the weekend at the Silicon Valley Ruby Conference. Everyone I spoke with there agreed that the conference was surprisingly good. I haven't been to a conference that was so much fun since the early days of OOPSLA. Congrats to SDForum and Ruby Central for putting on such a good event.
What made SVRC so good? Getting to meet so many great people. Ruby and Rails definitely have a good community going. Lots of sharp people, and very friendly too.
The presentations were mostly quite interesting (more after the flip). I'm glad there was a good amount of break time so I got to talk with lots of people and find out what they were up to. I didn't bring my PowerBook so I couldn't go nuts trying to code stuff up during the conference, but I came away with a few ideas that I'm going to have to look into soon.
I rated most of the presentations as very good or excellent. I think Rich Kilmer and Jason Hoffman tied for the most kick-ass presentations - both of them made my head spin! There were a couple dogs, but even the dogs of the show weren't too bad. I think it was unfortunate that there were three separate sessions on building DSLs (Domain Specific Lanugages) - that seemed sort of redundant and the time could have been better spent on other material. Alex Chaffee could have used that time to do his three different rants (and still would have run over!).
I didn't take many notes at the conference, so these are my impressions mostly from memory.
Adam Keys - his talk on the Ruby community was a great way to start the conference. My favorite bit, on the power of Ruby: "Unwritten software is the easiest to maintain."
Ryan Davis - a great presentation on TDD with ZenTest. I'm going to check it out soon - the AutoTest feature looks wildly useful. A philosophical point: Ryan talked about "No Peekie TDD", where you write your code from the tests without looking at the UI at all. I can see how this would force you to follow TDD more because you couldn't "cheat" and see if something was working by looking at the view in the browser, so you would have to write the required tests to know if it was doing the right thing. However, this is somewhat counter to what DHH preaches about starting with the HTML in the view and working your way down. I guess the thing to do is try both approaches and see which one works best for me. These things are often as much a matter of preference and work style as anything else.
Hal Fulton - spoke on interfacing Ruby with Oracle. This was good information, though not something I personally was interested in. It was a bit odd to me that the material presented was more of a report on someone else's work than something the presenter created or was involved in, but it turned out a couple of the sessions were like that. I suppose it's useful to get that sort of "book report" presentation, but I wasn't used to it so I was a bit confused as to what was going on for a while.
Rich Kilmer - I think it's impossible to meaningfully describe Rich's presentation. It was sort of a tall tale about how he used Ruby and Rails to do in 200 hours what a team of 3 spent 8 months not achieving in Java. Rich is a great speaker - not only entertaining but spews information so fast it left me gasping. If this was an OOPSLA conference, this would have been the keynote talk at the big fancy dinner.
Chad Fowler - a nice summary of the new features in Rails 1.1. What made the talk special was the way he set everything in the context of linguistic expression.
Eric Hodel - Distributed Ruby. This ended up being a bit of a book report presentation too, but Eric had done enough with DRb that he had a lot of information from his own experiences to share. (The whole talk was deja vu for me, since I used to do a lot of work with distributed systems and implemented a very similar system in Smalltalk/V for use in a research project.) The integration with ZeroConf/Bonjour was nice. Kind of makes OMG/CORBA stuff look lame in comparison.
David Pollak - this talk was on metaprogramming and building classes on the fly. Unfortunately David hasn't yet grokked the Ruby way of metaprogramming so his approach was confusing and hard to use. The DSL he was creating using metaprogramming seemed interesting, but he needs to read why on metaclasses.
Steven Baker - rSpec and Behavior Driven Development. BDD is the new TDD, or so it seems. I didn't get what Behavior Driven Development was about during the presentation, but after reading up on it I can see that it's actually pretty nifty. I should apologize to Steven for being argumentative during his presentation. I did a lot of thinking about his DSL for BDD afterwards, and I've got some ideas that I want to look into. I'm not sure if the DSL is a red herring or really cool, but I like the process and the focus on testing the interface instead of the implementation.
Jason Hoffman - how to scale your Rails app. This was my other favorite presentation. Jason blew the whole room away with numbers, pictures, and tales of his adventures discovering the secret sauce of scaling. Optimize for RAM, not CPU. Use Solaris and ZFS. Power outlets matter. He's doing a workshop to teach this stuff in depth - probably worth checking out if you're serious about deploying a big app.
Joe O'Brien - Yet more DSL stuff. This talk would have been great on its own, but following the other two presentations on building DSLs it was a bit redundant. There's only so much you can say about DSLs once you show how nifty they are, and by that point we'd heard much of it before. People wanted to see an example how to make a DSL in Ruby, but Joe wasn't prepared for that and didn't want to wing it live.
Joel VanderWerf - this talk was about mixing Ruby and C to build a high-performance simulation system. Pretty nifty stuff. Man, I hadn't thought about Runge-Kutta 4th order integration since college. I like how flexible Ruby is - creating special-purpose primitives in Smalltalk used to be a total PITA, and there was no good way to create and link them on the fly (though I guess Squeak can do that now).
I'm so glad I went to this conference. Now I don't feel so bad that I missed Canada on Rail. If RailsConf in June is this good, I'll be a happy camper.