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
Keynote
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.
Summary
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!!