Pragmatic Rails Studio Day 3
February 18th, 2006
You can read about day 1 and day 2 before this if you haven’t already.
Day 3. Wow, day 3. What can I say about day 3? Well, day 3 was amazing. From the topics covered to the surpise guest at lunch, day 3 was very interesting. So interesting that I left the studio wishing that there was day 4, 5 and 6. I simply felt like there was so much more I wanted to learn despite completely filling up the previous two days.
HABTM
HABTM? Has And Belongs To Many. This occurs in situations like categories, tags and so on. Dave mentioned that this may actually be falling out of favor. I found this interesting. He said that more people are tacking extra information into the join table. Managing this information can become very difficult without actually creating a model. I guess alot of people now are doing just that. They are creating a model for the join table with a belongs_to relationship for each of the tables being joined. Those tables then have a has_many relationship with the join table. At any rate, this brings up one of the most advantageous reasons for attending the studio — best practices. Mike and Dave both have experience and a finger on the pulse of the Rails community. They several times pointed out things that were either becoming popular or falling out of favor. This is immensely helpful for beginners.
Transactions
I’ll be straight up honest. I have never written a database transaction. Honestly, I have never needed to. I found it very interesting thought that every Rails model has the ability to run transactions. Not only that, but it is dead simple. I know this will come in handy some day. One note is that MySQL MyISAM tables do not support transactions. You have to use the InnoDB type. Another note is that Rails migrations automatically use InnoDB tables.
A Few Miscellany
Next, they covered the acts_as(list, tree, taggable) things for models, plugins and action mailer. All of these are extremely interesting. I know this because I took hardly any notes during these sections. That means I must have really been paying attention. I can see acts_as_tree being great for CMS capabilities and plugins are flatout awesome.
Lunch
Lunch was great. Lunch? Yep, see there is this guy in Chicago who has a little bit to do with Rails and he decided (or was asked probably) to stop in and answer questions during the noon hour.
Yep, Rails creator David Heinemeier Hansson stopped in. I’d like to say that I wasn’t starstruck at all, but I’d be lying. Why? Not because ooooh it’s somebody that is known all over the web as the creator of Rails. Nope, I was starstruck because lately I have been wondering what it takes to become a pioneer. What does it take to completely change the way those in your profession think about that profession? DHH has done just that. Hundreds of programmers are forever thankful for what he has started, including me. In fact, I even asked him just that, “What does it feel like?” He answered that for him the greatest thing about the Rails phenomena is not the buzz and hype but the fact that it makes his day job fun. Nice.
The Afternoon
I have to admit, a lot happened in the afternoon and I took several notes, but by far the highlight was lunch. The only thing that rivalled lunch was page caching. While Dave was covering how drop dead easy page caching is in rails, it struck me, “Why didn’t I think of that?” I mean it is a really simple. Other topics covered were functional testing, checkboxes, partial templates, hooks and filters, session management, deployment, and security.
Highlights
- Mixins and modules
- Dave Thomas mentioning that if you plan on using acts_as_nested_set, you should “sacrifice a chicken at midnight.”
- Mike Clark saying, “I had you at RESTful.” (referring to “You had me at hello” for those who have not saw Jerry Maguire and a type of web service for those unfamiliar with REST)
- David Heinemeier Hansson at lunch
- Page Caching
Conclusion
The Chicago Pragmatic Rails Studio was great. I will give my highest recommendation to anyone considering going. Even if you have a great grasp of Ruby and Rails, I guarantee you will learn some new things. On top of that, Dave and Mike are super nice. They had no problem answering questions throughout the studio and even during breaks. Their goal is to give you an extremely broad view of Rails and they accomplish it.
You can view photos from the studio on Flickr or you can read about day 1 and day 2 if you haven’t already.

Cool… thanks for the report! I was there in spirit!
Thanks for the write up. I have been planning to attend the Studio, but I wasn’t sure what I would gain from it. Your post has convinced me that I need to go! Later.