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
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)
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.
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.