Mittwoch, 3. April 2013

Devoxx UK 2013

This year Devoxx came to the UK for the first time after having a record of rather successful editions in Belgium. After failing to attend the Devoxx in Belgium for a few times due to loaded work schedules at the end of the year I thought why not try the UK edition in March, so this year was my first Devoxx as well.


General stuff

I must admit as it was the first UK Devoxx I was expecting a lot of issues and stuff going wrong, as it usually happens when an event gets organized for the first time. But to my pleasant surprise the whole event went very smooth and it was over all a lovely experience so I will definitely try to be back for the next editions. It was noticeable that the organizers put a lot of effort as well as sweat and tears into everything and that they really cared about it. We had some sponsor booths that handed out goodies, some raffles (I even won an infinispan book at the red hat raffle ;-)), free wifi (yes, everyone takes that for granted nowadays but still…) and an app to plan your talks, the latter was a bit buggy though but that was fixed for next year, so it is also a plus for me.

That said there are also a few things I think could be improved or suggestions that came to my mind and that I would like to share here. What bothered me somewhat was for one, that one BOF almost did not happen as the responsible speaker just did not show up. BUT cudos to Dan from the organization who took a few minutes of his time to get the group started about what a BOF is about (mainly more a big discussion among everyone who showed up rather than a regular talk) so we put up a list of questions and issues and just went from there. The other thing that pissed me off a bit was that the abstracts of the talks quite often did not resemble what the speaker really spoke about in the end. Quite a few times the topic form the abstract was done within 5 minutes and the rest of the time was spent on stuff related to it and even though it was usually also interesting it was not what one expected and it is annoying when you realize that 20 minutes into a 50 minutes slot. And yes, I am aware that this is a common problem at conferences but hey, it can’t hurt to mention it ;-)

Regarding suggestions the following things came to my mind:
  • Put the wifi access data into the welcome package
  • Try to have more power supplies in the talk rooms for people that want to try out coding examples on the fly because recharging in the breaks is usually not sufficient
  • The website did not say too precisely what kind of refreshments would be available for free and which ones would be sold (at least neither I nor my mates knew about that) and free tab water would have been cool (or did we just miss that?)
  • Maybe don’t shut down the wifi as soon as the ending keynote is over ;-)
  • The Quickies on the first day really cut into the lunch break and in order not to gulp done your meal you had to skip one of them while on the second day there were only half as many  and in general longer breaks. Would be cool if that could be evened out a bit in the future
  • Lunch was a broad variety of sandwiches, wraps and bagels so I think everyone found something suitable but the fact you had to give away a lunch coin when picking up your meal caused people to stack up their plates quite a bit and I am sure that not all of it was eaten in the end.
I know that all of that is nothing crucial and as I said before it was a nice conference and everyone should consider attending in the future. Oh right, move the date to summer!!! ;-)


Day 1



Not much to say here, nice introduction of the team and the obligatory Queen joke that did not catch on much. Then there was a humorous talk by Kevlin Henney about the everyday life of programmers and developers with some funny analogies etc.


Continuous Delivery – David Farley

Good introduction talk about CD and even though I am familiar with the topic it did help to reiterate over the concepts and think about how they can be applied to your current work. The things I remember most are:
  • Do the difficult/annoying stuff as often as possible so you get better at it
  • Use the same deployment mechanism for each environment, something that we do only partially right now
  • Automate as much as possible
  • Everybody is responsible to get the stuff done
Especially the last point got me thinking what we can do at my work place. If you have external client applications that depend on your backend and that run on certain mobile devices you have to use those for your acceptance tests and this cannot automate those at least for new features.


Banking, how hard can it be? – John Davies

Somehow I was hoping for a bit more in this talk. Basically John pointed out how hard it is to establish new technologies in a large bank or any other big company. The sheer amount of Oracle databases that where in use at that particular bank was quite overwhelming (several thousands) and the idea you have to migrate all of them kinda blew my mind. All in all it sounded like an overly complex environment and the migration project was surely a huge effort. Also interesting was the fact that the FPML data structure in use in the banking sector could not be simply thrown at regular ORM tools like hibernate because those would generate 1700+ tables. He then did show some in memory dbs that they used instead but I must admit that I don’t remember which ones because it just was not very important to me.


Intro to NoSQL for busy developers (Quickie) – Trisha Gee and Kim Ross

Trisha and Kim gave a brief overview over the different types of NoSQL databases:
  • Graph
  • Document
  • KVS
  • Column Family
  • Sorted Maps
Also some typical use cases for a few of those and how eventual consistency works. This talk got me thinking if MongoDB was the best choice for our use case, maybe Riak or some Column Family database would have been more suitable.

But what I want to point out the most is that rhetorical this was an extremely pleasant talk, Trisha and Kim created a very comfortable atmosphere and it was just nice to listen to them. That is not a given at tech talks ;-)


Applications’s development using JavaFX2 – Thierry Wasylczenko and Jim Weaver

Now this was one I put great hopes in, I knew Jim Weaver’s book on JavaFX from a few years back and figured he would give some insights on the changes.  Thierry’s part was okay information wise apart from that he did not intend to give a demo of the visual editor even though that was announced in the abstract. Jim then said he’d cut his part 5 minutes short so we can see that demo, nice gesture but should not have been necessary in the first place. The downside of Thierry’s talk was that it was really monotone and hard to understand. To me it seemed that he had not much talking experience and I hope he does practice on that some more because I guess he could become a good speaker with his technical knowledge. So Thierry, if you read this, consider it an encouragement ;-)

Then Jim took over but not with much JavaFX stuff but instead he was talking about Java 8 features like Nashorn support, Websockets and web workers. All in respect to how they can be help with JavaFX development but still it was not quite what I was hoping for. But of course it was a good talk, so I am not unhappy with it.


Stop doing retrospective and start your Toyota Kata – Mattias Karlsson and Hakan Forss

This one was something different. Mattias and Hakan prepared a dialog where Mattias acted as a scrum master and Hakan was Kata coach that gave Mattias an introduction and they went through a typical Kata cycle together. Even though both were clearly not actors and should not try to become ones it was very refreshing and also entertaining.

Kata is a method to improve your processes in a continuous way. You first have to find out where you are at and write down your current state then you set a vision that should be quite ambitious as well as a set of target conditions that are some kind of intermediate goals you want to achieve. For a cycle you choose a target condition and how to reach it, that is your challenge. That is the improvement Kata. In the coaching Kata you then do some kind of mini retro to see what you accomplished and what problems you have. The cycles can be quite short, maybe even one or two days.


Hitting the limits of your hardware with Java – Peter Lawrey


Okay, this one was a disappointment, sorry I have to say it so harsh but that is how I feel. The sad thing is, that Peter Lawrey does know his stuff but in this talk, sheesh. First of all it was very hard to understand him then he did not really cover the basic problems a programmer should be aware of or how you can help with proper coding to avoid hardware limitation issues. Instead he did show slides with some performance tests he made and the resulting graphs. Also some graphs of performance issues and the audience had to guess what caused the problems. And then after 20 minutes (of a 50 minutes slot) he ended his talk for questions. The questions were then not even repeated aloud so that everyone knew what they were talking about. Well... enuff said..


Lambdas and Collections in Java 8 – Maurice Naftalin

Simply a good talk. Covered the basics of lambdas and how they can be used with collections for efficient coding. How and why the boilerplate parts can be omitted, what map reduce is about plus Guava features like Optional and Predicate that are part of Java 8. Pleasant to listen to, so nothing for me to moan about ;-)


Beyond Beauty: JavaFX, Parallax, Touch, Gyroscopse and much more (BOF) – Angela Caicedo

This was basically how you can get a pseudo 3D illusion with motion sensors to run on Raspberry PI with JavaFX. Well, it was not that much FX stuff in it, and most of the time was spent on the hardware spec of the PI and how sensors and signals can be read on pin level. IMO that was not too useful especially the latter as all of that is abstracted by the PI4J lib she introduced in the end. But it was a nice demo and it was obvious she knows her stuff. As that BOF ended early I staggered into another one of the same slot.


Is NAO your robotic overlord? (BOF) – David Snowdon

NAO is very impressive small robot, but this just seemed like a product demo, so no conference stuff IMO.


Get your head around git, Team Collaboration – John Stevenson

Now, John did not show up, no clue why. But Dan from the organization team spent a few minutes with us and got us started. We put down some questions people had and tried to answer them in a group discussion. Two voluntary helpers where also there and those had some git experience. I myself have only used git-svn until now but to my surprise this meant I had the third most knowledge on this subject in the whole group. But it was an interesting discussion so now time wasted for me.


Opening the hidden door: JavaFX development everywhere (BOF) – Angela Caicedo

So we met again ;-) This time there were only 4 people in total so we got together at a table and Angela gave a short presentation how packaging and development works with JavaFX. Of course I had some things to complain ;-) Like finding out in what mode you are, embedded or not, depends if the main routine gets a stage object handed to it that is something that should be abstracted by a static method call returning an enum. But it was informative and as such a nice end for the first day.


Day 2


Creating Games with WebGL and Three.js – James Williams

Cool talk. Gave a good overview of what WebGL can do, where it is supported what the drawbacks are and how Three.js as an abstraction layer can help to immensely reduce those by wrapping a lot of stuff. Gave me the urge to check it out and toy around with it.


Getting started with Websocket and Server-Sent Events using Java – Arun Gupta

Even though it took me some time to get used to the Indian accent, this was a solid talk. We saw detailed examples how Websockets and Server-Sent Events can be implemented, what client requirements they impose and also a working live demo. Kind of obvious but still worth to mention are the main differences between the two technologies. Websockets are truly bi-directional but require special browser support for it, while Server-Sent Events can be implemented using plain HTTP and thus can run on any browser but only provide one way communication. Websockets provide mapping functionality for JSON, binary and other request types and parameters are typed according to their position. I am sorry I don’t have much more to say here because this talk was surely a good one.


Dark Side of Agile – Mazz Mosley

Mazz spoke about her experiences with a large agile team working on the UK government website and what problems she witnessed. Sadly she did not provide any new insights or yet unknown solutions, it was more stuff that everyone with project experience already knew. Like that it can cause problems when the team is growing too fast, that documentation is essential but must not be overdone and team spirit is vital to success. But what I like was the way she presented her talk, very solid speaking, funny anecdotes and nice to listen too. So I hope to see her at another Devoxx again, maybe with a more complex topic.


What do you mean, backwards compatibility? – Trisha Gee

Now this topic sounded extremely interesting, finding new ways to change APIs without breaking the clients is always useful and after Trisha’s first talk on Day 1 I was really looking forward to this one.  Unfortunately the backwards compatibility part was done in five minutes as the original driver did use the wrong package namespace “com.mongo” instead of “org.mongo”, so the new API simply uses the new namespace and the old API can still coexist. Well, that’s what I call a disappointment. At least the talk itself was entertaining and had some interesting bits of information about the monog project itself. But still if I had known beforehand I would have chosen a different talk for this slot.


Does your WAR resemble the world’s largest bowl of spaghetti? Enterprise OSGi can help – Holly Cummins

Entertaining, solid talk about the basics of OSGi. While we have quite a few visibility mechanisms inside JARs etc. there is nothing like that on the level of JARs itself so the classpath gets rather polluted by all classes of all JARs even though only a few should be exposed. Also searching for classes throughout the complete classpath is a bit tedious. OSGi provides encapsulation for JARs and also has a graph like classpath structure. In addition OSGi modules can be removed, added and updated without any need to shutdown the virtual machine. So it could be a nice addition for many large scale applications but on the other hand you first have to modularize them properly. But maybe I get a chance to try it someday.


Introduction to Riak – Chris Molozian

Usually I don’t like product presentation talks but the NoSQL intro the other day got me interested in this topic so I figured I’d give it a try. As expected Chris focused on the key selling features of Riak but who can blame him for that ;-) The ones I found most remarkable are:
  • Data is stored in logical buckets using hierarchical structured names for faster lookups and query optimizations
  • Patches to the Riak engine can be deployed without downtime
  • There are no slave nodes and so you can issue read and write requests to each node
  • The interface is HTTP based and thus requires only very loosely coupling to application code
But on the other hand there were also a few drawbacks:
  • You have to run at least four nodes in a Riak cluster, recommended would be five
  • Conflict merging in case of data inconsistency seemed a bit strange, but maybe I just did not get it
  • A deleted record can still be read for a few seconds <- eventual consistency is not for every use case
The talk in general was okay and it seemed that Chris knew what he was talking about while he took on all kinds of questions.


Security in the real world – Matt Kilner

Matt gave a nice overview over the latest Java security issues and how they were caused by sometimes minor changes. Like changing the visibility of field in the ToolKit class gave way to the critical security hole of running any native command from a Java class taking advantage of the exploit. Another interesting point was that fixes cannot always be applied easily because the fix would break something else. Details about that can be seen on the slides to this talk and sure are worth a look. At first I had the impression the talk would also cover how application development should take security into account but that was just a misunderstanding of the abstract on my behalf. It was obvious Matt knows his stuff but I hope he gets some more speaking practice in because he did not seem that comfortable or used to speaking in public. Once he gets the hang of that I am confident his talks will become very popular.


The Future of Agile – Nigel Runnels-Moss

Oh boy... what can I say… When Nigel announced that he was hijacking this talk to speak about something else I should have just left but for some reason I never learn and always hope for a happy end. Man that was mistake.

Basically this was a “Why managers suck and are responsible for the death of our industry” rant, backed up with diagrams showing data of unknown sources that he drew questionable conclusions from.  Summing it with “this is intentionally provocative” did not help much IMO. Granted some aspects of the talk did make sense but those were rather quotes from books he referenced, e.g. managers are usually bad at what they do because as long as they do well they get promoted until they are above their level competence. But still it seemed as if he just held this talk because he likes to hear himself talking. Which he btw did… very slowly… by always making... pauses after… a few words… as if he was... reading to a child… Well, sorry to say but I just did not like that one, even though others seemed to enjoy it.



As I pointed out at the start of this rather long post, I did enjoy the conference even though there were some issues. Of course not all speakers are world class with a huge list of references and recommendations but that does not necessarily mean they are not good. And even if you get one or two not so good talks… that can happen at any other conference as well but with the cheap ticket price Devoxx offers one of the best values for your money you can find. So go and sign up for  next edition!!