Sunday, September 23, 2012

Nordic Ruby 2012

Nordic Ruby was held outside Stockholm at the Hasseludden Yasuragi spa this year, instead of Gothenburg as has been traditional. Hasseludden is a very nice location with great view, good food, and a spa facilities.
Quite a number of talks were non-Ruby or even non-technology related this year, but they were of high quality and didn't feel like filler. Several of my favourite talks were from this section. My top three talks were:

Developers work in a fast moving industry with lots of smart people. It is easy to get stressed out by this and set up unrealistic goals for yourself. Fear of failure can cause you to avoid starting something and becomes a source of procrastination. A common trait is forgetting or downplaying all your successes, but remembering all your failures. Perfectionism is correlated with low self esteem, shame, and in difficult cases depression.

The speakers proposed practicing admitting to yourself that failure is ok, and rarely as bad as you imagined it to be. As an exercise some attendees got up on stage to tell the audience about when they had failed - for instance "I have talked about it for years, but I've yet to do a significant contribution the open source community". The speakers recommended trying mediation to help breaking the negative thought spiral of perfectionism, as daily meditation has been shown in trials to reduce stress and improve moods. They encouraged us to use the #devmed hashtag on Twitter to document progress. In more severe cases of perfectionism, such as when you have depression, sleeping problems or other severe or long term problems that don't seem to improve, they recommended considering councelling.

As I do have problems with perfectionism, this was probably one of the most personally helpful talks I've ever attended, and I've started meditating.

The speaker had a real world example of a single long method of messy opaque Ruby code, and step by step went through a series of refactorings until she was left with a small number of short, clean, well named, easily understood methods. I was reminded of how readable Ruby code is. When I first started learning Ruby, I didn't agree that semi-colons, brackets etc in Java was a big problem. I dismissed it with "After a while you learn to ignore them and they become invisible". But I've realized than when showing slides, Java code must be kept to a very few lines for the audience to be able to read them quickly. The added symbols in Java make parsing easier for computers, but do in fact increase the cognitive load for humans quite a lot.

Apart from an interesting subject, it was a good example of great presentation technique - starting with "a hook" the first minute to engage the audience, a good even pace, well rehearsed, a nice recap and punchline at the end. This was one of the few successful code-heavy talks I've ever seen at a conference.

3. Adventures on the Golden Path by Steve Klabnick

Release 3 of Rails made the framework more modular and cleaned up a lot of technical debt. The speaker has plans for a number of patches that makes the framwork more user friendly and consistent. For instance with routing, currently a several pages long comment is generated in the routing file. Steve proposed having a few lines showing the routing rules sufficient for 95% of all users, and a link to online documentation. A singleton should be provided so that it can be queried, and developers can test which routes will be generated with the console. There was a number of these small changes, but which all together help make Rails friendlier both for beginners and advanced users.

Lightning talks were great fun, two outstanding ones were "Three kinds of respect", and "Go (the game, not the language)" by Joseph Wilk.

All in all, a very good conference, highly recommend you go next year. Smaller conferences can experiement with topics and speakers while big conferences must attract the most famous speakers to attract more attendees. These speakers are of course very good, but they often have a very "introductory" level to their topics since they speak to large crowds and many conferences and can make few assumptions about the listeners previous experience. In smaller conferences I have also found it easier to get to know people - both the speakers and everyone else.