Acunote is online project management and Scrum software. Acunote is fast and easy to use. It shows actual progress, not just wishful thinking. Click here to learn more.
« Back to posts

SDForum SV Ruby Conference 2007

Had a great time at SDForum's Silicon Valley Ruby conference . Thanks to all the presenters and organizers. Here are some presentations that stood out.

Scaling Twitter, Blaine Cook

With all the political issues surrounding Twitter and Rails lately, it was nice to see Blaine focus on the techincal side of things. Great presentation and some nice tricks shared. I liked the sample code he showed that they use to denormalize many-to-many relationships for performance reasons. We'll probably be doing the same with tags in Acunote.

Mongrel/Merb, Ezra Zygmuntowicz

I was impressed with the routing code in Merb. In Rails routing is not thread safe, so it has to be done inside "giant mutex". Merb's routing code is much smaller, thread safe, but cooler yet ends just compiling into a giant, but readable regex. Which is great, as then you just end up using Ruby's regex support which is done in C and can be reasonably expected to be correct and perform well. The compiled output is not part of the presentation, but the 2-lines necessary to produce it are, so if you haven't seen it it might be worthwhile to bootup a Merb app. Ezra mentioned that he may be able to to integrate his routing code with Rails (i.e. you'd be able to run a Rails app and for routing use Merb's code outisde the mutex). For sites with complex routing this may be a real performance boon.

Active Record, Evan "Rabble" Henshaw-Plath

You've got to love the dog :-), and the rest of the presentation was also very informative. The only thing I'd take an issue with is recomendation again constraints. Should all the logic be in the model, i.e. should you use validations -- absolutely. But that does not mean you should not use constraints in the database schema. Database constraints will save your butt on multiple ocasions, they are simple to setup, encourage good database design, and Rails works with them just fine.