Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.

Inner Geeks Have Been Unleashed – GeekOut, Day 0

After the long wait, GeekOut 2013 is finally upon us and it opened it’s doors today to the workshops (Day 0). There were around 80-100 attendees, each donning their geek glasses and unleashing their inner geek to soak up the great content the conference has on offer.


The day kicked off at 9 with 2 workshops; End-to-end DevOps with Vagrant, Chef and LiveRebel by Geert Bevin, from ZeroTurnaround and JavaFX by Andres Almiray. Here’s a review:

End-to-end DevOps with Vagrant, Chef and LiveRebel

The DevOps workshop bootstrapped the audience straight into the world of DevOps. Before getting down and dirty with all the useful tooling, Geert Bevin drove home the key takeaway – it is a common mistake to think of DevOps as a tooling problem; however, it is really about the company culture and processes, it is about building feedback loops into the company processes. Still, tooling can help when changing the processes, so latter part of the workshop focused on building a virtualized environment with Vagrant, automating the infrastructure setup with Chef and deploying apps with LiveRebel.



Andres Almiray delivered a great overview of JavaFX. He showed us 10 demo examples, explained in great detail. The workshop started with an overview and setup of JavaFX based projects with Maven and Gradle, which was very useful as a starting point.


Andres explicitly explained the tips and tricks related to threading and event model, how to write code that wouldn’t block the application UI, which is something that every desktop Java developer should know! Finally, Andres made a short introduction to Griffon, the framework for developing desktop applications which is actually toolkit agnostic.

JavaFX looks cool. However it is a shame that the standard component library doesn’t really provide a lot of components (widgets) for business application development. For instance – there is a color picker component but no standard date picker yet.

After lunch followed two more workshops, Level Up Your Git and GitHub Experience by Jordan McCullough and Brent Beer, both from GitHub and Neo4j Tutorial by Michael Hunger from Neo4j. Here’s what we thought:

Level Up Your Git and GitHub Experience

Jordan McCullough and Brent Beer, the trainers from GitHub ( conducted an awesome workshop on Git and GitHub. It was an especially well organized workshop: while Jordan performed at the stage, Brent was supporting by answering questions in the chat and commenting on the topics that Jordan was talking about.


The guys covered all kind of git features and GitHub specifics in the workshop, starting from the very basics, on how to create repositories at GitHub and finishing with advanced features of git – working with branches, synchronizing with remote repositories, etc.

The workshop was especially interesting because of the features that GitHub adds on top of git to facilitate collaboration. For instance, while GitHub supports markdown for composing the pages, it adds specific markdown elements to organize TODO lists for organizing tasks in a lightweight manner. In addition, Jordan and Brent have spent some time explaining the concept of GitHub pull requests specifically.

Neo4j Tutorial

Michael Hunger introduced us to neo4j graph database. Graph databases are special in that they are modeled around graph verices and edges instead of tables and rows of the relational model.

It’s great for finding all kinds of crazy relationships between entities. Probably not so great for standard business applications. It’s not a bad thing, but simply about choosing a right tool for the job.


The session was focused on what happens when you combine SQL with ASCII art. The result is the Cipher query language which is used to get data into and out of the Neo4j database. We covered all kinds of queries for reading, writing, modifying and deleting stuff. For example, to get all the actors that have played with a given actor (id=72) in any of his movies, you would query the DB like this: start myActor = node(72) match (myActor)-[:ACTED_IN]-(someMovie)<-[:ACTED_IN]-(otherActor) return otherActor; Michael also showcased many real life clients who have used Neo4j for great effect. Did you know that Adobe uses it to determine who has acces or edit privileges to a PSD file stored in the Adobe Creative Cloud or that Aussie police uses it to find mutual friends between not-so-fellow criminals? The full conference kicks off tomorrow at Salme tn. 23, Salme Kultuurikeskus - if you're lucky enough to have a ticket, we'll see you there!