Reaktor Dev Day is a conference for developers by developers. It is organized by Reaktor, a software house from Helsinki, Finland.


October 19th 2012


Wanha Satama
Pikku Satamakatu 3, 00160 Helsinki, Finland

Reaktor Dev Day @reaktordevday

Follow us


(Subject to changes)
Stage Brehme Stage Völler Stage Klinsmann Stage Riedle
08:00 Doors open Doors open Doors open Doors open
Welcome Keynote Fast Code Nation: The Bright Side of High-Level Languages Bryan O'Sullivan / Facebook

It's an article of conventional wisdom that languages with a lot of expressive power offer an unhappy tradeoff: you gain ease of development, but lose runtime performance. In this talk, we'll look at real-world performance concerns in two very different languages, Haskell and Python. We'll cover some useful and occasionally surprising tricks and tools that help us to write faster code, and what happens when we break out the "big guns" of rewriting code in C.

10:00 Break Break Break Break
Talk Eventual consistency and conflict resolution in modern databases Ari Talja / Rovio slides »
Introduction to eventual consistency
  • Different implementations briefly
  • Implementation in Riak
  • Operations on multiple tables/buckets (data offloading)
How riak solves the issue
  • Copies of data, read and write quorum
  • Primary and secondary nodes
  • Vector clock
  • Read repair
  • Successful write vs. failed write
Conflict resolution
  • Application taking the responsibility
  • Different strategies + CRDT
  • More complex scenario - conflict resolution in data offloading case
Hands on Learn Haskell as a Toolsmith Bryan O'Sullivan / Facebook

The Unix environment provides a rich set of tools for working with text files. In this hands-on tutorial, we will learn how to program in Haskell by reimplementing some well known, and less well known, Unix tools. No prior functional programming is assumed. IMPORTANT: You will be expected to write code! Please download and install the Haskell Platform on your laptop (http://www.haskell.org/platform/) before the tutorial begins.

Hands on Pure functional programming in plain JavaScript Brian McKenna / Precog

This hands-on session will cover the bilby.js functional programming library. The library is designed to make pure functional programming possible. The session will walk through multimethods, common functional data structures, lenses, functional syntax and automated specification testing.

Participants will only need familiarity with JavaScript and access to node.js or a browser. No functional programming experience is required.

Hands on Web application hacking workshop Jani Kirmanen / Silverskin slides »

In this workshop attendees learn how to bypass security controls, attack server-side and users using techniques such as parameter tampering, sql injection and cross-site scripting.

Talk Opinionated Scala at Valo Aki Saarinen / Valo Research and Trading slides »

Valo Research and Trading develops real-time automated trading systems and large-scale data processing applications for the financial markets with Scala.

Scala has a diverse feature set and follows a multiparadigm approach, which makes deciding on design approach and coding style difficult. Scala code can be written in many ways and opinions on best practices vary. Mixing too many styles in a single codebase can result in confusing overall design, which is why Valo writes their Scala in a very specific, opinionated way.

Aki Saarinen discusses the experiences of developing a particular Scala design style, and how Valo ended up with their conventions. The aim of the talk is to challenge the all too typical “better Java” approach and give practical tips on using Scala.

12:15 Lunch Lunch Lunch Lunch
Keynote Roy: the functional JavaScript language Brian McKenna

JavaScript is everywhere. In the browser, on the server and on your phone. It's impossible to avoid. But writing correct JavaScript is very hard. The language has many misfeatures, and common idioms encourage mutability, reducing the feasibility of reasoning about programs.

This talk will introduce the Roy language which is specifically designed to compile to JavaScript. It includes features to make JavaScript programs safer, such as immutability, static types, algebraic data types, type classes and first-class modules.

14:00 Break Break Break Break
Talk Async & NonBlocking Scala Brendan W. McAdams / 10gen

Asynchronous and non-Blocking network frameworks have become a big deal: tools like node.js and BlueEyes have set the pattern for new projects. Yet they use an approach to their networking and architecture that is foreign to even many seasoned developers: callbacks instead of pure function calls can be daunting at first glance, yet powerful.

As many Scala developers don't understand these approaches , we'll introduce Async/Non-Blocking IO and demonstrate both Netty & Raw NIO – and discuss strengths and weaknesses of each. Understanding the hows and why's of these approaches versus the more traditional synchronous can make a big difference for developers looking to choose the right approach for a new product.

We'll also discuss patterns and concepts which can make these frameworks more powerful: The use of callbacks, Either[E, T] to pass errors, implicit tricks to simplify them and even the Iteratee pattern. Finally, we'll explore several ways to build synchronous looking APIs on top of these tools using varying approaches such as Continuations, Coroutines and even Actor based facades with Akka.

Talk SoundCloud's Stack Nick Fisher / SoundCloud slides »

In this talk, I'll be discussing SoundCloud's experiences with developing large-scale applications with Javascript, not only at the runtime, but also our steps to make development and deployment easier. In particular, RequireJS and Backbone are looked at, and I'll talk about how we have used and abused each to suit our needs.

Talk Pragmatic Continuous Delivery Neeme Praks / ZeroTurnaround slides »

When you send a package through FedEx it goes through a tracked, automated process that makes sure that the package arrives promptly at the destination. The same should apply to every commit that you check into the trunk. Continuous delivery describes how this process can be made fully automated and transparent and we will show you how your commits can be “fedexed” to production on application servers like JBoss, Tomcat, Weblogic and others with the help from Jenkins and LiveRebel.

The main idea of continuous delivery is the deployment pipeline. Every commit that enters the pipeline should go through automated integration and testing and if successful, produce a release candidate. We will show how Jenkins can be used to orchestrate the process all the way to the staging environment.

Once we’re there, the most complicated phase begins. The release candidate needs to be deployed to production, without disrupting the users or introducing risks. LiveRebel makes production updates quick, automated, non-disruptive and reversible. It finishes the job and delivers the updated version right into the users hands.

Hands on Bacon.js - functional reactive programming with JavaScript Juha Paananen / Reaktor

Let me introduce you to Functional Reactive Programming in Javascript and the Bacon.js framework. I'm sure it'll give you a whole new perspective on writing event-driven web UI's. We'll definitely get some grease on our hands and do hands-on excercises. So, soon you'll be writing functional reactive AJAX apps like a boss.

If you are going to attend this session, be sure to finish the "Preparations" section here.

15:15 Break Break Break Break
Talk APIs: From Both Sides Andy Smith / Spotify

APIs are the lifeblood of the mashup community. But what makes a good API, and what separates a good API from a successful one? Andy Smith - a mashup hacker gone legit at Spotify - investigates both ends of the endpoints.

Talk Embarrassingly parallel computation for occlusion culling Jasin Bushnaief / Umbra slides »

One of the key challenges of modern 3D game rendering engines powering the next-generation of console games is to minimize resources spent on assets that do not actually contribute to the user experience. More specifically, determining which surfaces are hidden behind (occluded by) other surfaces can be a very hard problem to solve in real-time, but will typically yield significant performance gains.

Real-time occlusion culling typically requires either a vast amount of manual labor or a computationally intensive pre-processing step. In this talk, I will show how the occluder generation step can actually be considered embarrassingly parallel, and distributed across multiple nodes accordingly. I will also discuss how this model can be further improved.

Talk DIY data visualizations Lauri Vanhala

Creating impressive data visualizations is not difficult if you know how to code. Still most of the visualizations I see are simple graphs or use standard tools like Google Fusion Tables that generate boring-looking results.

If you have a rich data set you can do much more. In this talk I'll try to give some ideas on what you can do with location based data, and how to quickly turn raw GIS data sets into something more beautiful.

Topics covered: Generating custom Google Maps tiles in minutes, transforming public transportation schedule into a colorful 3D animation.

You can watch one of my visulizations here: Helsinki Public Transportation Visualized.

Hands on Improv workshop Jari Rintala / Improvment

This workshop is conducted in Finnish.

Do you surprise yourself often enough? Are you prepared for the unexpected? Do you know what to do when plans fail and there's no backup? This is an experiental workshop for those who wish to prepare for the unexpected.

16:15 Break Break Break Break
Keynote UFOs and the brain Tuomas Kärkkäinen / Reaktor

Surgeons must wash their hands before operating. (a)synchronous IO is better. UFOs are real. Extraterrestrial beings have visited earth. New human senses are being engineered. Consciousness creates the brain. Making great software is like building a house, so wake up, smell the flowers, drink the nectar.

Tuomas Kärkkäinen is the best programmer Pekka Enberg has ever met in his life.

17:30 Party

Watch all keynotes on Vimeo »

Quotes from Dev Day 2011

Reaktor Dev Day was a great conference. Lots of energy, great talks and well organized. I had a great time and I definitely want to come back. Jonas Bonér, Typesafe

The level of expertise on Scala was amazing. I had numerous great chats with bright & funny people. Definitely try to make it next year as well. Martin Odersky, Typesafe

Reaktor Dev Day was one of the best conferences I've been to in years. Fantastically organized and run, great talks, great city, hot sauna and they served beer during the keynote - what more can you ask for? Scott Chacon, GitHub

ReaktorDevDay 2011 was one impressive event. I was surprised when I came to realize it was actually in its first year, as the venue, logistics, talks and attendance were all of the highest quality! Even the Wi-Fi worked, go figure. Ricardo Santos, Spotify

0like this page

Facebook Reaktor dev day