Today was the first (official) day of Scotland On Rails which I was visiting courtesy of a free ticket from EngineYard.

Have met lots of great people, as expected. Am rather surprised at the number of non-rubyists, there are a fair number of people who currently work full-time on Java or .Net and are pursuing Rails as a sideline with a view to either going freelance, or ‘sneaking’ Rails in the back door at their employer. They were all impressed that I was a full time Rails developer, and have been since I left University. Maybe it was jealousy, but I can see why it is a lifestyle that many would like.

Here’s a brief rundown of the talks I attended, and what I took away.

Keynote – Michael Koziarski

Many Rails followers will know Michael as Koz, the man on the Rails core you hassle until your patch gets accepted. His keynote wasn’t the inspirational piece I would usually expect as a keynote, but did cover some interesting material as far as code beauty is concerned. In Rails there is some nice code, and some not so nice code, as expected, but it was nice to be shown some of it, and the reasons for it’s existence.

Pushing Rails onto our Stack: A System Integration Study – Richie McMahon & Maria Gutierrez

Richie and Maria (was very amused by her accent, is Spanish, with random bits of Edinburgh mixed in) put on a talk about their adventures integrating Rails apps with an existing Java infrastructure. They covered:

As well as covering XMLRPC in the days pre-ActiveRecord, they also covered working with legacy database schemas. One interesting thing that was brought up is the lack of support in Rails for legacy STI keys. A quick patch seems to have solved it though.

Handling Long-Running Tasks in Rails – Andrew Stewart

Andrew gave a great overview of the solutions out there for running background and scheduled tasks in Rails. BackgroundJob seems to come out the best, through ease of installation, setup, breadth of use cases and persistance. Lot of options out there though.

Edgecase Dialog – Jim Weirich and Joe O’Brien

Due to some rescheduling, this was earlier than planned. Jim (Author of Rake) and Joe of EdgeCase gave us an amusing but informative three scene play on the benefits of using mocks and stubs in your tests. The examples were presented using Jim’s FlexMock library, which I shall be checking out as an alternative to Mocha over the next few weeks.

Code Generation: The Safety Scissors of Metaprogramming – Giles Bowkett

“Giles”: provided the most amusing top of the day, complete with pictures of Jessica Alba and Darth Vader in a sombrero. Apart from the comedy, his talk was a great overview of what can be done when code is used to generate code. In short, code == data && data == code! He highly recommends Jack Herrinton’s Code Generation in Action, which was originally supposed to be a Ruby book, but due to the publishers fears about a Ruby book (this was 2003) the second half of the book is filled with examples in various other languages.

Migrating to Ruby 1.9 – Bruce Williams

Bruce presented a great talk on some of the new features and gotchas in Ruby 1.9. The highlights for me were the new hash symbol syntax: { a: 1, b: 2, :c => 3}, and the persistent ordering of hashes. The new lambda syntax is somewhat less verbose than previously, and seems like a step backwards. Be sure to check out the app Bruce used to run code in both languages for comparison: Compare-1-9.

Bonus Erlang Session – Gordon Guthrie

Gordon is a (relative) local, having only travelled from Linlithgow. He works for a small two-man Erlang development team. He gave a great overview of why Erlang deserves the attention it has been receiving. Despite not showing many code samples, he certainly managed to whet my whistle for having another go at learning it.

All in all, an awesome day, despite the early start. Thoroughly looking forward to tomorrow.