The first day was a registration and tutorial day. The registration went smoothly, there was no gigantic queue that people waited in for half an hour like last year. My feeling is that there is less people this year but probably the organization is also better. Read on for a relation on the tutorials I attended and evening’s panel discussion.
The first tutorial, Better Living Through Resourceful Plugins was very interesting. Ben Scofield talked about how to solve one of the biggest pains with Rails development (at least in my experience): problems with reusing bigger chunks of functionality. Ben’s solution is to use “Resourceful Plugins” which basically are ordinary plugins with some clever generators and included modules. This way we can have all the layers in the plugin (the models, controllers and views) and still be able to customize them in the app. You can take a look at Ben’s example resourceful plugin Bloget. This technique will certainly make my life easier.
The second tutorial was even more interesting. In the brillant and witty Meta-programming Ruby for Fun & Profit Neal Ford talked about programmable programs, humane interfaces, using
const_missing (the latter for a dynamic class factory), implementing various design patterns and aspect orientation (which is easy to achieve with meta-programming) or how to mimic features from other languages that are not available in Ruby (like Java’s
final keyword to prevent extending a class). Be sure to check Neal’s presentation for funny and clever, Matrix inspired slides.
I was also very glad to notice that Neal used an example of generating test methods in a loop that was very similar in idea to my old Looping in a no man’s land post.
In the second part of the tutorial, Pat Farley took over and dug into gory details of Ruby implementation that are important when using meta-programming techniques. This part was much more difficult and not that attractive as Neal’s part, but also interesting. Pat showed many fragments of Ruby’s implementation C source, each time preceding them with a slide with a woman bleeding from her eyes. My favorite quote from Pat’s talk: the superclass of a metaclass is the metaclass of the superclass.
The day ended with a panel discussion featuring David Heinemeier Hansson, Michael Koziarski and Jeremy Kemper. I was a little bit disappointed, because it mostly consisted of chaotic and superficial answers to unrelated questions from the audience. There were some interesting thoughts but I expected a little bit more from a “panel discussion”.