Wroc_love.rb 2013 – a Lunar Ruby Trip

Wroclaw is famous for its tiny sculptures of dwarves scattered throughout the city. They’re featured in guides, included in tourist trips and widely loved. For the second year Wroclaw has been famous for the thing we all love – Ruby! :)

Wroc_love.rb started a year ago as a conference organised by DRUG (Lower Silesia Ruby User Group) and amazed everyone. Concise 30m speeches, lightning talks, fishbowl discussions, three (!) official parties – everyone got what they wanted.

This year seemed even better. We’ve gone there six-strong: Adam, Rudy, Tomek, Phillip, Bartez and Mirek. Five programmers and a guy carrying crates of Lunar Kola. Speaking of which…

With the Code Hulk challenge hidden under the kola labels :)

Let the Ruby miners speak!

Bartez

I’m happy that I had the opportunity to be at Wroc_love.rb. It showed me what are the currently hot&top&trendy subjects/things in the Ruby world.

The four main things raised on the conference were:

Security problems: A few talks and a discussion panel were devoted to this aspect. But definitely the best related talk was given by Richard Schneeman from Heroku who in a very pleasant way described the most common Rails vulnerabilities e.g. Yaml issue or SQL injection.

Concurrency: Referred to in talks by e.g David Dahl – he explained how he dealt with that problem with the help of jRuby. I’ve also noticed “celluloid” library mentioned a few times which brings concurrent actor-based mechanism to Ruby.

Techniques: Lots of talks were about techniques of development. There were talks about DCI by Rune Funch Søltoft, DDD by Sławomir Sobótka, lighting talk about Dependency Inversion by Paweł Pierzchała. There were talks by Brian Morton from Yammer and Bryan Helmkamp from CodeClimate encouraging to use many thin models or even better services, which I hope will be a standard.

From Ruby to other languages: The most interesting talk was given by Jan Stepien, who shown how one language inspired other authors e.g. How Lisp inspired Matz, how Ruby inspired Clojure or Haskell. He concluded: “try to use other languages, at least one”. In that area I have to mention about JavaScript frameworks fight, which was definitely won by Adam Pohorecki. There were no arguments to beat angular.js which he represented.

Summarising: “Try to use different techniques and languages and watch on security”

Adam

The first day of wroc_love.rb’s schedule was dominated by hackathon/open spaces, with one presentation and two discussions to follow. The highlight of the day was an impromptu introduction to Haskell by Jan Stępień, who gave us a whirlwind tour of the language features.

During the second day we had a short fight of the JS MV* frameworks, where I defended AngularJS against Ember.js, Hexagonal.js and Backbone.js. Unfortunately because of the time constraints we didn’t even get to discuss some important topics like testing, but I feel that AngularJS blew the other frameworks out of the water anyway;)

The last presentation of the conference was also the best one. Bryan Helmkamp talked about patterns of structuring Rails apps by extracting behavior into different types of objects – value objects, view objects, policies and others. I think every Rails programmer would benefit from watching this talk.

I think that wroclove.rb was one of the better conferences I went to in the last couple of years. I look forward to attending it next year:)

Phillip

Friday, March 1st, 2013  – Day 1

At first, the location that we were headed to seemed surreal. A set of abandoned looking factory buildings, maybe warehouses. It seemed like we were in the wrong place. But when we arrived, there was a lot of bustle, people sitting around in the signature red wroc_love t-shirt. The Friday venue was a very pleasant, albeit cold, surprise.

The beginning of the day, up until about 6 o’clock was a very open format. Nothing was set in stone, so mini hackathons and improv lectures sprung up. Later in the day, we had our first taste of the scheduled speakers starting with a discussion about functional vs object oriented programming. After the discussion Stephan Wintermeyer spoke about using a Raspberry Pi to test website response time. He used the Pi as a simple baseline and showed a bunch of methods to increase page loading times. He had a test suite that clicked through a web page and used http, page caching, and cache preheating to reduce the page load times by more than 600%. One of the major points he made was to think about caching when you start a project, not when speed becomes an issue.

Next up was a fishbowl format discussion – the overarching topic was productivity with discussion ranging about measuring productivity, choosing the right metrics, and opinions about what the most important thing for productivity is. In terms of measuring, there were a few interesting tools mentioned, including Code Climate, Pivotal Tracker. In terms of the most important thing for productivity, there were opinions stating that happiness, health, and team feedback were among the most important things.

After all these discussions, it ended up being 8 o’clock, and thus, time for a party, which also is an important part of any conference, as that is the time to sit down and talk to fellow developers. To learn their likes, dislikes, and other opinions about all sorts of software topics.

Saturday March 2nd, 2013 – Day 2

Saturday started off with a few good talks in the morning, with topics ranging from how to structure and design software to speeding up page. There was a demo regarding client vs server side work, showing that when doing big IO things like uploading photos, you could display the file instantly on the client side, as if it were already uploaded, and then upload it on the server side to have a much snappier UI.

During this first day there was a lot of talk about concurrency, and the different Ruby implementations out there which include MRI, JRuby and Rubinius. This was a big topic because MRI cannot do concurrency, so the other Ruby implementations are the way to go if you are looking to use all the cores on your machine with your Ruby projects. The Celluloid gem was mentioned every time someone spoke about concurrency, and it sounds like it is very useful in that realm.

Also a new implementation that is in the works was demoed called Topaz. It is a Ruby implementation based on Python, and looked pretty promising in terms of speed. There was a very interesting four person discussion about various Javascript frameworks including Ember.js, Hexagonal.js, Backbone.js, and Angular.js. Our very own Adam Pohorecki defended the merits of Angular.js and definitely made it obvious that it is very useful and intuitive.

After all the talks came the lightning talks – the most interesting ones talking about Code Climate, software that statically analyzes your Ruby code and grades it based on a bunch of metrics, Chef, a gem that lets you write deploy scripts for quick, automated server deploys, and BitCoin, an interesting peer to peer currency.

Sunday March 3nd, 2013 – Day 3

Sunday started off with a fantastic talk by Jan Stępień showing how other programming languages influenced Ruby, and then in turn, how Ruby influenced other programming languages. The overarching point of his talk was that the language we use influences how we think, and thus, know a lot of programming languages gives us all new perspectives on various problems.

Before lunch there was another awesome talk about security and secrets by Richard Schneeman. He went through a lot of common security issue including DDoS attacks, memory exploits, parser exploits, and the recently discovered YAML issues. He very clearly explained how each of these work and what to do to avoid having your Ruby app be threatened by these types of attacks. He also talked about where to keep your private information needed for you app (database passwords, third party service authentication info, etc). One of the best ways to do it is using environment variables so that these secrets are never in your repo.

The second to last talk of the conference was very interesting in that it was a very philosophical talk. It compared the ideas in philosophy with the ideas in programming and how they are very similar. Steve Klabnik explained, with his professor’s jacket on, that the ideas in philosophy have been passed on for thousands of years, and even though they are related to natural language, the principles can be used in the computer science world.

The last talk of the day was by Bryan Helmkamp, creator of Code Climate. He went through seven very useful refactoring patterns to try and refactor all those fat models each project has floating around. This talk went into detail about each pattern, when to use it, how to use it, and why it helps. All seven of these patterns I could see using in every project. This was definitely one of the best talks give, and is definitely going to be very useful in the future. After the talks were finished, there was another round of lightning talks, where LL’s Pawel Pierzchała gave a talk on Dependor, a gem that him and Adam created to facilitate dependency injection in Ruby.

Final Thoughts

All in all this was a very awesome conference. Great people, lots of knowledge, a beautiful city. What more could you want? I am already excited for next year!

Rudy

I really enjoyed the wroc_love.rb, it was one of the best conferences I attended. The talks were more concerned about practices than frameworks and that was a good thing!

First day started with a promising FP vs OOP discussion, but in my opinion it drifted away a few times, for example when FP was blamed for being hard to use. I would rather say that all new languages, especially with a different paradigm, are hard in the beginning.

However, the second day discussion, Angular vs Hexagonal vs Backbone vs Ember was great, pros and cons of those technologies were covered, arguments were concentrated on the technology. Our very own Adam Pohorecki did a great job fighting for Angular. Conference ended with an amazing design talk – Refactoring fat models with patterns, delivered by Bryan Helmkamp, I couldn’t agree more, I have codeclimate badges in all open source projects I work on. :)

Lastly, I gave a lightning talk about dependency inversion – http://wrozka.github.com/dependor-wroclove/di.html.

It seems that the Lunar crew will frequent wroc_love.rb 2014 :) See you then!

Share this on: