ping conf 2014

5 minute read 17 February 2014

In January, I had the pleasure to participate and give a talk at the ping conf.

Ping conf was the first world wide community conference about the Play Framework!.

This conference was very well organized. I'd like to thank all the organizers one more time for this. It was a good opportunity to meet people I only knew online from the mailing list or on twitter.

The talks were very interesting. Some notices:

"Javascript functionality coming to Play 2.3" from Christopher Hunt

Typesafe take the JavaScript build chain very seriously and the new sbt-web offers a lot of new functionalities. IMO, one of the most important is the possibility to use NodeJS as JavaScript engine. The performance of the JavaScript build pipeline in Play is similar or even better than the ones based on NodeJS (like Grunt or Gulp)

"Typesafing your blobs with Scala" from Julien Tournay and Pascal Voitot

Julien and Pascal show us the new validation API, unifying the Form and JSON validation. This new API should appear in Play 2.3.
More info

"Writing a reactive web app with Scala.js and ReactJS" from Matthias Nehlsen

Matthias, famous for his blog and his realtime reactive tweet analysing application talked about the ReactJS UI library combined with ScalaJS. These two tools can be well combined. ReactJS like immutable data structure, that ScalaJS can provide.

"Play2 and Redis : when simplicity meets productivity" from Nicolas Martignole

Nicolas talked about his experience with Redis and Play. This combination is looking very simple and performant.

"Building composable, streaming, testable Play apps" from Yevgeniy Brikman

The "Jim" from LinkedIn talked about how to compose web pages together, using the Facebook's BigPipe concept. Very interesting way to decompose a web site into small web components.

"Play is for Performance" from James Roper, tech lead for Play! framework

Very interesting talk about how to optimize (or not) an asynchronous Play! application.
slides as Play! application (simply check it out and start the Play! application, it is very impressive)

"Making the case for Play" from Adam Evans and Asher Glynn, BBC

Adam and Asher talked about pushing change within an organization like the BBC, how they introduced the Play Framework!

Grant Klopper, Software engineer at The Guardian.

Grant made a change during the talk and push it into production, very impressive.

Tobias Neef

Tobias talk about action composition and filter in Play, when to use the first ones and when to use the others.

"Async: Reacting instead of waiting for better times" from Johan Andrén

Johan talk about asynchronous programming and how it works with Play. A very good introduction!

My talk was about "Structure your Play application with the cake pattern (and test it)"

I talked about how to organize a Play! application written in Scala into components with the cake pattern. The main goal of these components is to encaspulate and expose services only to others components, and to declare dependencies if needed.

As a side effect, the cake pattern allows to inject dependencies at compile time. A particularity of this "dependency injection" mechanism is that it does not need any container like Spring or Guice at runtime.

Video of my talk "Structure your Play application with the cake pattern (and test it)"

I had great feedbacks, like these ones:

Leanovate Software Engineer Yann Simon gives the best presentation on the cake pattern I’ve ever seen.


it was great that Yann pointed out the disadvantages as well every step along the way and made it clear how far it’s worth going in various cases.

Csaba Palfi

Currently talking, is astounding the audience with live baking an application, slam dunk videos feat. Sulley - of Monsters fame - and hand drawn presentation slides!


All this was presented using funny monster videos and a French-German accent.

Marius Soutier

the infamous Totoro-defense! #pingconf


Thanks everybody!

Some people saw that I was using my phone to controll the slideshow during the talk and asked me how I did that. I was simply using LibreOffice Impress for my slides. I controlled the slideshow with Impress Remote app installed on my phone. It works very well. The app displays the duration of your talk, the current, previous and next slide.