Ruby Lugdunum
a.k.a Rulu 2012

Transforming your data with Ruby and ActiveWarehouse-ETL

Thibaut Barrère from LoGeek

Github: @thbar
Tags: datawarehouse etl gem

This talk will show how to use ActiveWarehouse-ETL to extract, transform and move your data around in Ruby, and what other people do in real life with this toolkit.

1# Beginner guide to ActiveWarehouse-ETL

  • Gem presentation (concepts etc)
  • Beginner examples of data processing

2# Real-life examples all in Ruby:

  • Extracting data from a CRM to build a metrics dimensional dashboard (business intelligence)
  • Extracting and geocoding places before publishing a map on the web
  • Adapting data for consumption by COBOL systems
  • Cleaning and extending the CRM
  • Extracting only what changed (aka Change Data Capture)

Thibaut Barrère is a Ruby freelancer since 2005, doing data processing on a regular basis since then too.

He is also bootstrapping a Rails-based SaaS product WiseCashHQ.

Sleep!

Alex Koppel from 6Wunderkinder

Github: @arsduo
Tags: life hacking sleep

Sleep: we all do it, and yet somehow it's hard (as most of us can attest every morning). It's also really relevant: as thinkers, creators, and problem solvers, anything that makes our brains less effective matters. Missed sleep makes a difference -- even two fewer hours a night quickly produce measurable cognitive impairment. Things get more interesting when we look at why it's so hard: our sleep cycles are determined by our internal clocks, which often put us in conflict with society's timetables, leaving many of us in a state of "social jet lag", as if we'd been traveling a timezone or more every day. That's not how any of us want to code (or live), I think, and by understanding how and why so many of us are constantly tired, we can start to make things better.

Alex Koppel is Just Another Rails Developer at 6Wunderkinder and the author of the Koala Facebook gem. Before joining the 6W team in Berlin, he helped build a leading social marketing platform, led part of a massive healthcare IT installation in California, and moonlighted as an online bookseller. An amateur cook, eager language learner, and inveterate book reader, Alex dual majored in computer science and scavenger hunts at the University of Chicago.

RATFT (Refactor All The F***ing Time)

Anthony Eden from DNSimple

Github: @aeden
Tags: clean code tdd refactoring

You know you should be testing all the time, but do you know why you are testing all the time? One of the main benefits of testing all the time is that it lets you refactor with impunity. Unfortunately too many times we leave the “refactor” out of the red-green-refactor. In this talk I will convince you that you should be refactoring all the time and I’ll show you some of the techniques on how you can do it. With good refactoring techniques and regular refactoring even the hairiest of codebases can be tamed.

Anthony Eden is the founder of DNSimple and the perpetrator of numerous open source projects such as ActiveWarehouse and Rails SQL Views. Anthony has also contributed to a wide variety of open source projects over the past 17 years as a software developer across a variety of languages including Java, Python and Ruby. Anthony currently lives near Montpellier, France.

Message in a Bottle

Konstantin Haase from Travis CI

Github: @rkh
Tags: ruby core internals ruby hero

What does really happen when we call a method? How do the different Ruby implementations actually figure out what code to execute? What plumbing is going on under the hood to get a speedy dispatch? In this talk we will have a look at the internals of the the major Ruby implementations, focusing on their dispatch. From look-up tables and call site caches, to inlining and what on earth is invokedynamic? Fear not, all will be explained!

As current maintainer of Sinatra, Konstantin is an Open Source developer by heart. Ruby has become his language of choice since 2005. He regularly contributes to different widespread projects, like Rubinius, Rack, Travis, Rails and MRI.

He currently holds the position of "Berry Sparkling Lord" at Travis CI.

Why Our Code Smells

Brandon Keepers from Github

Github: @bkeepers
Tags: clean code testing refactoring

Odors are communication devices. They exist for a reason and are usually trying to tell us something.

Our code smells and it is trying to tell us what is wrong. Does a test case require a lot of setup? Maybe the code being tested is doing too much, or it is not isolated enough for the test? Does an object have an abundance of instance variables? Maybe it should be split into multiple objects? Is a view brittle? Maybe it is too tightly coupled to a model, or maybe the logic needs abstracted into an object that can be tested?

In this talk, I will walk through code from projects that I work on every day, looking for smells that indicate problems, understanding why it smells, what the smell is trying to tell us, and how to refactor it.

Brandon is a developer at GitHub. He spends most of his time crafting beautiful code for Gaug.es and SpeakerDeck.com. Brandon has created and maintains many open-source projects, and shares about his endeavors at opensoul.org.

Keynote: The Shy Developer Syndrome

Dave Neary from Redhat

Github: @dneary
Tags: inspiring philosophy open source

The hardest part of joining an open source project for a professional developer is being completely transparent on a mailing list, and submitting your work to public peer review. When you are used to talking about technical details with your manager and colleagues, writing an email to a mailing list can be very daunting: Am I exposing some confidential information here? Have I made a mistake which someone will criticise? Is this message important enough to make an announcement on a public mailing list?

I call this "Shy Developer Syndrome". Developers used to working in a commercial software development environment can clam up when asked to work in public.

There are some straightforward ways to help experienced developers gain confidence in working in public forums, and gain the respect of their peers in open source projects. This presentation will outline some of the strategies which have worked in the past for me.

Dave is a frequent speaker on GNOME, including accessibility, mobile, community processes and other aspects of the project, Dave used to be a freelance consultant specialising in the relationship between companies and free software communities. He is the former maemo.org docmaster, and product & community manager for the OpenWengo project. Dave recently joined Red Hat to work in the "Open Source and Standards" team.

Constants In Ruby

Xavier Noria as an independent

Github: @fxn
Tags: ruby core internals

Constants are a rich and under-documented topic in Ruby. We are going to cover them in detail, their relationship with classes and modules, nesting, resolution algorithms, dynamic API, etc. At the end of the talk we will connect the dots to explain at a high level how constant autoloading works in Ruby on Rails.

Everlasting student, Rails core team, Ruby Hero, with a wonderful daughter, Kinesis keyboard user, Segway glider, Gold Winger, I also breathe.

DCI Diet For Your Models

Marcin Olichwirowicz from Applicake

Github: @rodzyn
Tags: dci architecture

Everyone knows the rule “fat models, thin controllers”. It’s really efficient when it comes to simple applications, but when we have an enterprise application, suddenly our models seem to look a bit overweight. Actually they are fat and ugly. I want to show a few examples of using DCI architectural pattern (which is complementary to MVC pattern) with Rails as a potential solution for these problems. My personal goal is to encourage people to experiment with the code and thinking outside the box (Rails box). Start thinking through domain model, not database design, to look at Datamapper pattern and DDD concepts. However, DCI is a good start to enter this enterprise world.

Marcin is from Poland where he is working as a Senior Ruby Developer at Applicake.

Before joining a ruby community Marcin spent years struggling with developing huge applications in PHP in several companies. He has an MSc in Applied Computer Science.

I Know Kung Fu (or Using Neo4j on Rails Without JRuby)!

Rogelio Samour from Hashrocket

Github: @therubymug
Tags: data graph database NoSQL

Sure graph databases are really cool and have a timestamp dated next week, but do you know when you should actually use one? Sometimes living on the bleeding edge pays off and in this talk, I’ll show you how you can simplify your application and model your data more naturally with a graph database. They are suited towards a specific problem that is actually quite common in today’s applications and they may even apply to that thing you’ll be working on during this talk!

Born in El Salvador, Rogelio started tinkering with computers when his dad gave him a Tandy in the early 80's. He is passionate about using Computer Science to solve complex problems. He also thinks these things are rad: Vim, Ruby, Rails, Linux, Open Source Software, Marsupials, short walks on the beach (with his wife), and playing the guitar and singing made-up songs to his son. He loves Middle Eastern cuisine and dislikes talking about himself in the third person.

RubyMotion: Ruby In Your Pocket

Laurent Sansonetti from Hipbyte

Github: @lrz
Tags: rubymotion ios gem

RubyMotion is a revolutionary toolchain for iOS development using Ruby. With RubyMotion, developers can finally write full-fledged native iOS apps in Ruby, the language you all know and love. In this session, we will cover what RubyMotion is and how easy it is to write an app with it.

Laurent is the founder of HipByte, a new company that crafts revolutionary software tools.

He worked at Apple for 7 years as a senior software engineer, on both iLife and OS X. A long time rubyist, he created and still maintains the MacRuby project. In a previous life, he worked on IDA Pro and was an active contributor to RubyCocoa and GNOME.

Improving Inter Service Communication

Thorben Schröder from Engine Yard

Github: @walski
Tags: architecture scaling messaging

In times when applications get more and more split up into small pieces that have to communicate with each other it’s critical to have systems in place that make this communication as trouble-free as possible. This talk covers what we did at Engine Yard to improve our inter service communication and how you can apply that to your own infrastructure.

Thorben is the former founder of “kopfmaschine”, a German Rails shop located in Bremen and now working to make the cloud a better place for developers at Engine Yard in San Francisco. He is living and breathing Ruby since his days at University where he graduated with his thesis on how to scale large Rails applications.

Beyond The ORM

Piotr Solnica from Code Benders

Github: @solnic
Tags: datamapper architecture orm gem

Ruby developers are living in the world of Active Record. No matter what ORM you’re using, it’s an implementation of the Active Record pattern. There’s been a recent discussion in our community about separating business logic from the persistence concerns. People are experimenting with different approaches but they still use an ActiveRecord ORM under the hood.

In this presentation I will give you an introduction to the development of DataMapper 2 - the first true implementation of the Data Mapper pattern in Ruby language. I will talk a little bit about ORM patterns and show you core parts of DM2 that already exist and the ones we’re going to build soon.

Husband & Fresh Father. Ruby & JavaScript Developer. OpenSource Contributor. DataMapper Core Team Member. Mac user waiting for the year of Linux on desktop.

Modular & Reusable Front-end Code With HTML5, SASS and CoffeeScript

Roy Tomeij from 80beans

Github: @roytomeij
Tags: frontend rails sass haml coffeescript

Keeping your front-end code clean is hard. Before you know it you’re suffering from CSS specificity issues and not-really-generic partials. Find out how to keep things tidy using the HTML5 document outline and modular Sass & CoffeeScript, for truly reusable code.

Roy has been a front-end specialist for almost a decade. As one of the co-founders of consultancy 80beans in Amsterdam, he weaves HTML5 and CSS3 magic on an hourly basis. As well as being in love with front-end meta languages like haml, sass and coffeescript, he is all about a sweet mixture of function and form.

I am Rails (and So Can You!)

Joan Wolkerstorfer from Mediapeers

Github: @joanwolk
Tags: inspiring experience feedback railsgirls

I taught myself to code and went from zero to a full-time programming gig in under a year. I will discuss my story, tools for new developers, and what I’ve learned from coaching with RailsGirls, particularly what we can do to teach new programmers, with a focus on women.

After graduating from the University of Chicago in 2006 with a degree in humanities/social sciences fields, Joan spent a couple of years in San Francisco working in theater as a stage manager and wishing her hours worked out better with all her friends at tech companies. After moving to Germany in 2009 and spending a year learning German, she set her sights on learning to program. She picked Ruby on Rails, and things took off. She quickly found herself in an internship for a respected Berlin Rails development shop, and soon after that landed a job with mediapeers.

Our Partners