Darko Fabijan wrote this on April 27, 2012

Notes from Railsberry 2012 day 1

This year I was lucky to attend Railsberry conference thanks to our friend Bashar Abdullah from Tathkarti who couldn’t come and sold us the ticket - thanks Bashar! The conference was truly awesome. Both organization and speakers were cool. By organization I don’t just mean that everything was on time and you got your t-shirt, stickers and beer but that they invested some thought into creating a very positive atmosphere with various little things. To get an idea check out these two (day1 & day2) short videos.

Below is my incomplete write-up on lectures from day one. The idea was to give some high level description of the talk and to link to slides if someone wants to go into more details. For some reason only a handful of people shared their slides. I don’t have insight into speakers community but I guess that they want to give same talk at some other conference so they are somehow saving it :) Next time I will make more notes, I promise.

Let’s talk concurrency - Jose Valim

Jose gave a really nice talk on concurrency in Ruby. I liked how he presented topic which is definitely not one of the easiest in computer science with a series of examples which gradually introduced concept of concurrency and shared state. He solved the problem of shared state with synchronized block, shared memory and message passing. Recommended library for solving concurrency problem is Ruby is http://celluloid.io/. In case you have the freedom to choose in which language you will solve concurrency problems then you should definitely consider Clojure and Erlang, just because everything is immutable.

At the end he recommended Concepts, Techniques, and Models of Computer Programming in case you really want to go deep on concurrency. Btw, Jose also had some kind of strange camera attached to his chests - let’s wait and see what will come up out of that :)

Aggressively Probing Ruby Projects - Zach Holman

Zach explained us how he would really like to know more about open source Ruby code and how it evolves and showed what he has done so far. As first step he created Hopper which is a Sinatra app that fetches Ruby projects and analyses them in order to get a few numbers that describe project. Examples are: 0.5 Swear words per project, 4.27 define_methods per project, 8.4% of project are predominantly hard tabs, 98% of the top Rails projects avoid semicolons in their JavaScript files.

And of course beside these funny metrics there are also many useful ones such as how Ruby programmers organize code in classes, modules and methods. Live instance of hopper is available at codestat.us - but be careful as it’s still an early version. I believe that we will see some higher level conclusions about Ruby code once someone from academia expands hopper with some advanced math. Slides are available at zachholman.com.

Treasure Island – Concurrency in JRuby - Patrick Huesler and Tim Lossen

Patrick and Tim continued building on the talk by Jose. They work for Wooga - Berlin based company that develops social games where they really needed to employ concurrency to serve hundreds of requests per second for their games. They explored both Celluloid Scala and akka, but in the end figured out a good-enough solution with Java’s java.util.concurrent package and ArrayBlockingQueue. They ended their talk with a really nice performance called “Zebra” ;)

Konstantin Haase - Message in a bottle

Konstantin talked about his work on pre-tested pulled requests he recently implemented for Travis CI. In general the talk was about technical details and problems that he encountered. He had to dig really deep how GitHub merge button actually works and also into Git. I believe that it was really ugly since he had to say “I just need two more weeks” couple of times to his team.

Ben Orenstein - Write code faster: expert-level vim

After Ben made us stand up and stretch a bit before he actually started his talk he gave us few valuable tips how to make transition from intermediate to expert level Vim user. Easiest way to sum up his talk would be to make a list of do and don'ts.


  • bind a ton of leaders
  • be obnoxiously intolerant of extra typing
  • map CTRL + S to :w
  • make a small tmp cheat sheet of commands your are learning
  • grew your vimrc over time
  • learn vim script - it’s not that hard


  • open file by hand (command-t & rails.vim FTW)
  • using arrows
  • holding j or k (jump to line, search or set relative number)

Check out his vimrc and his notes for presentation.

Recommended books: Learn Vimscript the Hard Way and Practical VIM

Ben also plans to start using foot pedals as leader and escape keys.

Marcin Bunsch - Building fast APIs with Rails

Marcin presented representer. It is a library that solves the problem of using control of your view layer when you are creating API and just using tojson or toxml in your controller code. You just need to create representer class and specify namespace and attributes that you want to expose, representer will handle the rest for you.

There is also a “Ligthning” version of representer which will shave off few ms of your action’s response time by skipping ActionRecord object by just using raw SQL and Ruby Arrays and Hashes. More info in readme.

I have to say that I was a little afraid during Marcin’s talk, he seems to be pretty harsh and strict. I hope he will not see this :)

Tammer Saleh - Take the PITA out of SOA: Building Lean Service Oriented Architectures

Although I would say that this was one of my favorite talks I just cannot repeat much of it. It was about Service-Oriented Architectures and what are the pros and cons of different patterns spiced up with very conservative approach of Tammer when in comes to picking technology. Tammer is cofounder of ThunderBolt labs and author of Rails AntiPatterns: Best Practice Ruby on Rails Refactoring.

Linda Liukas - Rails Girls – agenda-what every girl needs to know about programming

A very nice initiative by Linda. Idea is to demistify that technology is some black magic where we are crunching some numbers and bits in our heads and to present it more as art where you are creating things. Check out Rails Girls website for more information.

Corey Donohoe (it’s @atmos) - Enterprise Me: Hurdles involved in taking a SaaS app to the next level

Atmos told the history of GitHub Enterprise. Basically they created GitHub firewall (that was the name of GH enterprise before) by switching to jRuby so they can protect their source code by distributing it as bytecode. That turned out to be a hell to maintain, and branches just kept diverging. Also for some reason they had huge problems with their test suite on jRuby (I don’t have experience with jRuby).

At one point they killed jRuby branch for enterprise version and switched back to MRI but they found some, I think, proprietary software that obfuscates Ruby code. Combined with virtual machines and some package distribution system they are now very happy with their enterprise release.

Shameless promotion

I gave a lightning talk about Semaphore, our continuous integration app for Ruby. It was my first talk ever and it was definitely far from perfect but general response about Semaphore was really good. If you haven’t already, sign up for beta access and we will invite you as soon as we can.

P.S. If you noticed a slide for talk somewhere on the internets please add it to comments.

comments powered by Disqus

About Darko Fabijan

Rendered Text co-founder. Enjoys breaking new ground and exploring tools and ideas that make lives of developers interesting and productive. Nowadays has less time to write code but has great pleasure in discussing it with the team. He spends his free time cooking, hiking and indoor gardening.

Suggested Reads

Semaphore Winter '16 Hackathon

The end of each year is a time to make plans for the following year and get inspired to work on new and exciting things in the year ahead. In December, we decided to organize a Semaphore hackathon for the entire company to celebrate the end of 2016 by getting creative.

People pitched their ideas and others voted with their feet by joining the projects they were most interested in. We split into multidisciplinary teams that had three days to capture new ideas and have fun making them a reality. Keep reading to find out what are the projects we came up with, what we learned working on them, and what are some of the outcomes of our first internal hackathon.


Rendered Text is a software company. For questions regarding Semaphore, please visit semaphoreci.com. Otherwise, feel free to get in touch any time by sending us an email.

Rendered Text
Svetozara Miletica 10
21000 Novi Sad