Nordic Ruby day 1

Nordic Ruby is a two day conference taking place in Gothenburg, Sweden. This is the second annual year and my first.

I arrived yesterday and went straight for a run in the beautiful Slottsparken. Sadly enough I got to tired and had to skip the preparty. Instead I spent some time hacking CoffeeScript which I recently became very found of.

Below is a short summary of some of the talks that I found interesting.

GitHub Flavored Ruby

Tom Preston-Werner, one of the founders of GitHub, talked about various techniques used internally at GitHub in order to avoid complexity. Which most often tend to grow into a invincibly battle when dealing with software development in general.

Most of techniques is essentially about opposing the Waterfall model or “cowboy coding” as Tom put it.

One technique I did find interesting was Readme Driven Development. The idea is basically to start of with the readme of your project. Which if often is the initial encounter for your end-users who’s starting to dig into your project.

Tom also mentioned TomDoc (named after Tom himself) which I hadn’t heard of before. Finally a “non-bullshit” specification for writing code-level documentation with humans and not machines in mind. Similiar specifications like RDoc or phpDoc is a good thing but it forces you to use this strict grammar in order to make it parser friendly. Just like one of the essential foundations of Ruby TomDoc puts the human in center of attention.

Some trivia about Tom to round of. He’s also the creator of Semantic Versioning which I adopted in almost all of my work by now.

As you might concluded Tom’s and GitHub’s contributions to Open source is by far extremely impressive.

The Limited Red Society

Joseph Wilk from Songkick held an inspiring talk on the subject of testing. Where the “red society” is a reference to failing tests. He mentioned and demoed a few tools that can help you gather better insight about your test suite. And especially help you find the pitfalls who either tends to fail most often or consume most of your time.

Rounding of with a quote from the presentation which I found real compelling: “to measure is to know“.

Lightning Talks

The first day ended with five minutes talks from a bunch of attendees. This was probably the hilight of the day.

Stephen Sykes help a entertaining talk on obfuscated code and showed of some crazy Ruby one-liners. Great fun!

Nikolay talked about what he thought started out as a bad idea. Namely to give all developers on a project the ability to deploy at any time. Doesn’t sound to bad does it. Well let me put you in to context. We’re not talking about a regular site. We’re talking about WordPress.com. Severing around 6 000 000 pageviews a day. Now you might start to realize why this is considered being a bad idea.

One prerequisite to even make this possible in practice is speed. Since the code needs to be deployed to around 1000 servers. This was simply solved by not running any kind of tests before deployment. For any Ruby developer this is considered pure madness. To spice things up he did also confessed that their only using one branch for all their code.

But even how paradoxical this might sound it turnes out this is one of the best decisions made at WordPress.com. Due to the rapid deployment cycle their able to test their code live and get instant feedback. Since deployment occurs that often the changes are quite small and bugs are therefor most often easily to track down.

Last but not least. Ruby is definitely hot stuff. Everybody seems to be hiring.