Having fun at J-Fall 2011
This year's Dutch Java Nerd event called J-Fall was held in Nijkerk, in a beautiful location called "Hart van Holland" . With plenty of sessions by speakers from all over the world it promised to be a great day for Java enthusiasts, at a great location for meeting friends and colleagues. I took a day off from work and it was well worth it.
Opening by Bert Ertman Bert starts the day by welcoming the 1000+ attendees in the main presentation room in "Hart van Holland". After explaining what the day is going to bring and where to find rooms, food, drinks, and company booths, he goes on to tell how they tried to get better network coverage. All these nerds with their smartphones in one single place is asking for trouble. It turns out it's too expensive to get good data network so they didn't do that. Network connections proved to be spotty at best in the main building, but I had good 3G coverage outside the main building.
The organizer of Devoxx came by to say hi, and also told us that the J-Fall presentations are being professionally captured and the most popular ones are going to be online soon at parleys.com. He closed off with the hilarious "Java Life" Rap Music Video . By the way if you liked that, you certainly will like the "Whole foods Parking Lot" video.
Java 7 Directors Cut After the cool opening and videos the whole room was ready for some kick-ass sessions. Tomas Nilsson said that he would have a hard time topping the Java Life music video. And he did. Opening with a laughable slide containing a full page mandatory disclaimer text, the presentation was a terrible erratic drive through his very personal memory lane, and after 15 minutes he lost about 80% of the audience. I had absolutely no idea what point he was trying to make, and why nobody advised him to revise his presentation after he gave the same talk at JavaOne. The good thing was that because of the spotty network coverage, not all tweets during this presentation reached the twitter servers, and #jfall was not trending.
During the small coffee break we gather around to see what sessions each of us want to join. Scanning the company booths in the main lobby learns that the world didn't change: Booths luring you with pens, mints, stickers, iPads and nice ladies in the booth who are almost always never representing the companies' people or culture. I did score some nice ball pens though :-)
Building Highly Scalable Java Applications on Windows Azure Microsoft being a big sponsor of this year's J-Fall, they have to have a keynote. And so they did. And it was a good one. Certainly after the below par presentation skills of Oracle, Microsoft has a nicely polished slides and a demo of Azure, a good story and good pace. During the demo the DNS switching is a bit slow and prevents some things to be shown. At the end of the talk, the speaker confidently retries and it now works. This results in a well-deserved warm applause from the audience. Well done Microsoft.
The Java EE7 Platform: Developing for the Cloud With "Cloud" being the new buzzword nowadays, Arun Gupta did a keynote on where Java 7 is going, and how applications would fit in this cloud structure. I never heard the term "tenants" being used in this respect, which was interesting. The whole talk was a bit erratic, and after Java EE 6 fixing all the EJB gripes of EJB 3, I couldn't help but feeling that all these "enterprisey" terms are re-introduced in Java 7. The whole idea that you build an application but other people configure the actual building blocks that your application will be instantiated with, is a proven failure to me. Administrators don't have developer knowledge. Changing configuration of key components in your application will severely break it.
I came out of this session not feeling to hot about Java 7 and the whole components-in-the cloud and people renting instances idea. Too many roles, academic, over engineered, very Sun Enterprise EJB 2 feeling.
Don't call us - we'll push A colleague advised be to go see Lucas Jellema. Lucas was the first speaker of the day who actually seemed to know what he was doing on stage. Although his slides were a bit crowded, he had a good story with many demos. It was a welcome change after Tomas and Arun, although Lucas didn't have any real new stuff. Polling, long-polls, asynchronus AJAX calls and the old request/response problem in http, and database triggers firing Java programs. Except for Web Sockets there was nothing new but nice to be reminded how these things actually work.
After Lucas' talk we went to get our complimentary lunch. Because we were relatively early, we had no problems getting the lunch package, and enjoyed our tasty sandwiches, milk, apples and Mars. Another free coffee and we're recharged and ready for the afternoon sessions.
Migrating Spring to Java EE 6 Paul Bakker had clearly prepared his slides well, and insisted in giving his talk in English because it would be recorded. I thought this was a nice touch (in case you haven't noticed, I have this idea that everything you want to share with technical people should be in English). Paul explained the tactics to use when converting a Spring application to Java EE 6. Where to start, and how to keep your code compiling while doing the conversion.
I have worked on some large projects and although Paul mentions that some parts of the conversion will take a bit more time than others, I am not looking forward to convert my current 250+ thousand lines of code to Java EE 6 just yet. A plain Spring application may be easy, but as soon as you have Spring AOP, interesting Proxy beans and Custom Factory beans, you'd have to rewrite that code in Java EE6, which could take quite some time.
I predict converting to Java EE 6 will be much more expensive than upgrading to the next version of Spring for most serious enterprise level applications. I have a home project I'd try to convert first, maybe more on that later on this blog, who knows.
Extreme performance with the Disruptor Although the title and the talk description in the schedule didn't hint too much about it, this talk was 100% about Queues. After some high level talk about Producers, Consumers and Queues, Allard Buijze drops a bomb and introduces some circle and the name "Disruptor", without introduction. After a few slides everybody understands that this is some kind of "Circular Queue".
We had a bit of a laugh when Allard uses 4 slides to explain about dirty cache line reads at CPU level and how the Disruptor prevents all that, which he then dismisses with "but that doesn't help much".
The talk was entertaining and what I got from it is that the main reason why the "Disruptor" works faster than regular Queues, is that Producers and Consumers can inform each other about their position in the queue, which prevents Queue polling. I can't help but think that this can be done with regular Queue implementations as well, so maybe I missed something here.
Java Tuning Puzzlers For the final session for today most of us decided to go to "Java Tuning Puzzlers", because it looked like fun. And it was. The presentation by Kees Jan Koster and Jeroen Borgers was fast, funny, interactive, hands-on and very refreshing. They showed some real-life performance problems they encountered in their work, and asked the audience to solve them. All Java nerds lit up and started shouting answers and funny remarks. Jeroen and particularly Kees Jan were very good in answering questions and snarky comments from the audience.
As the talk went into overtime and the organization was trying to cut it short, Jeroen and Kees Jan asked the audience "are we going to get beer, or are we going to finish this?". The whole audience shouted "Finish it!" and we finished the last Puzzler.
No fancy new frameworks, no buzzword bingo, just plain old dry-coding and a plug for one of my favorite tools, findbugs http://findbugs.sourceforge.net/ . It was the best session I had all day, and I actually went back to Kees Jan and Jeroen to compliment them with their awesome talk.
Conclusion I might sound a bit critical here and there, but I had a great day. Being amongst fellow-nerds, talking tech talk, sharing funny stories, listening to interesting new developments and hearing other people's views on things was really refreshing. Next thing on my list: Try to get Kees Jan Koster to do at least one big main-track keynote at J-Spring or J-Fall next year, about any subject. Because he will at least keep the audience awake.
Thanks Bert and all of the NLJug people and sponsors who made this possible. See you all at J-Spring!