Thursday Mar 13, 2014

Code PaLOUsa 2014 Trip Report

Code PaLOUsa 2014 took place 24-26 February in Louisville, Kentucky. Code PaLOUsa is a fairly unassuming conference with great quality farther away from the beaten paths. The conference is principally rooted in .NET but is trying hard to beef up Java content, so it was important to have a presence from our team. My fellow Oracle colleague Scott Seighman (Cleveland JUG leader) also supported local Java developers by delivering a Java SE 8 talk. Topics covered included Java, .NET, JavaScript, mobile, methodology and Big Data/NoSQL.

I was very fortunate in that on my way to Kentucky, I was able to stop by at the Montgomery County (Maryland) JUG for a Java EE 7 session. The JUG was very kind in agreeing to schedule an off-cadence meeting to accommodate my trip. I have been to the JUG several times over the years and it is always a good experience with solid attendance - this time was no exception. Whenever I can I'll try to schedule another talk with the JUG. I essentially presented the same Java EE 7 deck we have been using for a while as our main talk (embedded below) - just taking time to do a bit more of a deep dive (the session lasted two and a half hours with almost everyone staying until the very end!).

Since the JUG meeting lasted much longer than I expected, I didn't arrive at Louisville until late the next day (yes, I drove :-)). With just a few hours to spare, I did my first talk at Code PaLOUsa titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

The next day I presented one of my most favorite talks titled "Applied Domain-Driven Design Blue Prints for Java EE". The talk is essentially about the Cargo Tracker Java EE Blue Print project. The project is an attempt at reviving and modernizing the much needed Java EE Blue Prints effort to demonstrate some architectural best practices for Java EE. The talk has three parts -- a brief overview of DDD theory, mapping DDD to Java EE and actual running Cargo Tracker DDD code with Java EE/GlassFish. The talk was well attended and I got excellent feedback on the talk later. InfoQ recorded the session so hopefully it will be available to a broader audience soon. The slides for the talk are here:

After the conference I took some time out to enjoy one of the most unique experiences in the World - the Louisville Mega Cavern. To my knowledge, it is one of the largest man-made Caverns open to the general public anywhere. A truly massive former limestone mine, during the early days of the Cold War it was used as a fallout shelter. If that isn't fascinating enough, it might be the only place in the world you can zip line through a primitive limestone mine!

While the zip line was a truly awesome experience (there's five of them total across various parts of the mine), I wouldn't advise it for the uninitiated. With pitch dark corners, jagged rocks, mud/dirty pools of water, sudden sheer drops, simple rope bridges and fast/long inclines I imagine it could be a very scary experience for folks that have never been inside a primitive cave or cavern (natural or man made) - check out the pictures below. You have been duly warned :-). However if you feel you can make it, it is definitely worth doing if you are in the area.

All in all Code PaLOUsa, the Maryland JUG and Kentucky were worth the while. To boot, I didn't have to take a dull long flight :-).

Tuesday Mar 11, 2014

Jfokus 2014 Trip Report

Jfokus 2014 took place 3-5 February in Stockholm, Sweden at the Waterfront Congress Centre. This was my first time at the conference. Jfokus slates itself as the largest developer conference in Sweden and it certainly is quite significant in terms of both content quality and attendance. Key organizer Mattias Karlsson deserves a well earned pat on the back for accomplishing such a feat in just a few years. Although the conference is most certainly not limited to Java, luckily for Java developers it does have a slight Java bend. The event attracted a bevy of World class speakers including quite a few of my fellow Oracle colleagues - Mark Reinhold, Georges Saab, Stephen Chin, Simon Ritter, Mark Heckler, Angela Caicedo, Geertjan Wielenga (NetBeans), Heather VanCura (JCP), Cecilia Borg (OpenJDK), Joel Borggrén-Franck (JDK) and Marcus Hirt (JDK). Notable other folks speaking included Venkat Subramaniam, David Blevins, Pratik Patel, Trisha Gee, Martijn Verburg and Anton Arhipov. Topics covered included Java SE, Java EE (of course :-), embedded Java, JavaScript, cloud, mobile, DevOps, agile and Big Data/NoSQL.

The conference started for me on Monday afternoon with a half-day university session titled "Down and Dirty with Java EE 7". This was really a demo-driven introduction to Java EE 7 using Cargo Tracker. Although the real point of Cargo Tracker is demonstrating some sound architectural practices for Java EE as a whole, we have actually wound up organically incorporating quite a bit of Java EE 7. As a result, I was able to use the project to provide an extended session with a mix of lecture and demos covering Java EE 7 at a fairly high level. The rather lengthy session was a full house and seemed to be fairly well received. The slides for the session are here (requires Silverlight - can download the slides even if not available). Ed Burns essentially did the same thing at DevNexus more recently (also using Cargo Tracker).

Tuesday is when the regular sessions started. It was sort of a lighthearted day for me since all I had was a dinner-time shootout between dynamic and static languages hosted by Stephen Chin. I showed up all pumped up with my arguments/counter-arguments ready to launch in favor of Java and static languages (big surprise I was chosen for the static team, right :-)?). As it turned out it was not a serious technical affair at all but just some game show style good matured antics. I had fun on stage and it was all cool. Later that evening I participated in a BoF on the JCP, OpenJDK, Adopt-a-JSR and Java EE 8 with Cecilia Borg, Heather VanCura and Martijn Verburg. I talked about some of the things we are considering on the Java EE 8 survey. The discussion was great and I got some good feedback to return back to the team.

I finished off the conference on Wednesday with my brand new talk titled "HTML5/Rich Clients Using Java EE 7" in the keynote hall. I am very glad Jfokus was keen on this talk since I have been waiting to deliver it for a while now (since then a bunch of other folks have also expressed interest in the talk already). The talk is about the excellent alignment Java EE has with the emerging world of HTML5/JavaScript frameworks like AngularJS, Backbone, Knockout and Ember. Java EE is really quite well positioned to adapt to richer browser clients with APIs like JAX-RS, WebSocket, JSON-P, CDI, EJB3, JPA and Bean Validation. I also briefly talked about Oracle's project Avatar. The talk was a full house and was very well received.

The slides for the talk are below, the demo code is on GitHub. The project should be very easy to setup, but do give me a shout if you need help. My intent is to give you the very basics of what you need to get started exploring this type of architecture.

It was good to catch up with a bunch of folks all at this one event. Check out the pictures below with me, David, Amelia, Tori, Steve, Thomas, Mark and Simon hanging out in the hotel lounge after the conference!

While in Stockholm, a few of us had occasion to check out a few cool spots like old town, the Royal Palace, the Vasa Museum and Skansen (thanks in large part to the pre-conference speakers-only tour organized by Mattias).

The Vasa Museum and Skansen I thought were particularity cool. The Vasa was a massive wooden warship launched in 1628. Legend has it the pride of the Swedish King tragicomicaly sank within minutes of being launched condemning most of the crew to a frigid death due to a number of critical design flaws that rooted back to the King's overgrown ego. The ship was dredged up from the icy waters in the twentieth century, restored and placed into one of Sweden's most visited museums. Skansen has a decidedly less dubious past - reportedly one of the oldest open air museums in the world, it is intended to be a miniature model of Sweden itself in the pre-Industrial era. With aging but well-kept structures moved piece-by-piece from various parts of Sweden and reconstructed in Skansen as well as reenactors in period costume Skansen really feels like going back in a time machine. In US terms, it felt sort of like a very serious and realistic Renaissance Fair (check out the photo album below).

All in all, this was a very good trip. I look forward to going back to Stockholm and Jfokus another year...


Reza Rahman is a former independent consultant, now Java EE evangelist.

He is the author of the popular book EJB 3 in Action. Reza is a frequent speaker at Java User Groups and conferences worldwide.

Reza has been a member of the Java EE, EJB and JMS expert groups. He implemented the EJB container for the Resin open source Java EE application server.

All views voiced are my own, not necessarily Oracle's.


« March 2014 »