Friday, June 29, 2012

JUDCon Trip Report 2012

What an intense week. I left Germany Saturday to visit Boston, MA and join the fellow JBoss and RedHat guys for their annual JUDCon, the JBoss Users and Developers Conference. Back in April I received the JBoss Community Leader Award for my work with the Arquillian project in the category documentation and JUDCon should be the place to finally pick this up.
The award! Awesome!
I had a direct flight to Bosten which was surprisingly short. Arriving in the States has become very convenient without having to fill in a dozen forms anymore. Even the immigration lines were acceptable long and I truly enjoyed getting a first impression of the city while driving to the Marriott Copley Place. Unplanned but nice I meet Andrew and Bartosz this evening and they joined me and Heiko for a nice dinner at Solas. If you ever go there, make sure to visit Solas. Really nice place to spend some jet-lagged hours! With JUDCon beginning on Monday I accepted Heiko's wonderful invitation to join him on a sightseeing tour through Boston the next day. And I can tell you, he knows a hell lot about it. And walking Boston for 6h after a too short night is exactly the right thing to do. So, thanks Heiko for taking the time and giving me the runaround. Find some picture impressions from that day in my flickr photoset. Sunday ended with a drink up in "The Bell in Hand Tavern" near Marlboro Market. That was the first time to meet some of the organizers behind all this.
The JBCRA was present everywhere! Thanks!
Monday finally was JUDCon day number one. The schedule was packed and some well know names had a lot to tell about recent technologies. Paul gave an his "Spring to Java EE" talk, Anton talked about JRebel, Emmanuel about NoSQL and Hibernate. To make it short. An intense day of catching up with everybody and listening to some of my favorite speakers talking about their topics. The last session was at 5:30 followed by a "developer dinner" with pizza and beer. Shortly after that it was time to receive my award from the hands of Mark Little himself. While not all of the 400 registered attendees have stayed that long it still was a nice atmosphere around and Mark did a great job handing out the awards to the winner.
The "Why my Project Matters to Developers" Panel was big fun to listen to and the live recording of the JBoss Asylum Podcast was also awesome. Mark Anderson and Emmanuel were great hosts! I was too tired to attend the Lightning Talks and Hackfest later on.
I had to take some calls during the second day and missed a lot of great content. But stayed around enough to catch up with a lot of people and we also have been interviewed by Joel Tosi about the awards and the related projects. My flight back was scheduled to go 9pm and like all my "last-days-at-conferences" this also was a too short one. But it was crowned with a complementary business class upgrade which made my trip back to Germany convenient.

Some thoughts
As you know I have seen some conferences and I like to compare this one a bit to give you a better understanding about it. JUDCon is the developer part of the larger RedHat Summit (together with JBoss World) which starts right afterwards. So, a conference by developers and for developers. With roughly 400 attendees this isn't the biggest conference I have been to and could probably be more easier compared to smaller gigs. But we all know that size doesn't matter and this proofed true again. Great content and great presence of RedHat speakers made this two days very valuable. But the beginning construction work for the larger event brought some disturbance to JUDCon. It happened on a small part of level three of the Hynes Convention Center which is big enough to host large events. With a total of 352,000 square feet of flexible space on three levels, with rooms varying in
size from 775 square feet to 110,000 square feet. The Hynes has five exhibit halls, one of which can be used
as an Auditoriumthat can seat over 3,000 persons. Having these numbers in mind you probably can easily guess how it felt being placed on the upper left corner of the Hynes walking through construction works every day to get there. If I could make a whish, I would love to have this a little more lined up. The idea of having a  "by developers and for developers"-conference is awesome.
Coffee: My topic :) Wasn't any at all. There was plenty of it around. Every single minute of the day! That is sufficient proof for me that this is possible! Thanks guys, you know what matters!
If you like to, you can find some more impressions in the JUDCon conference photoset on flickr.

Thank You!
Sparky was with me!
Sooo many people to say "Thank you" to. First of all: Thank you, dear readers! For taking the time and following me on twitter, G+, this blog and for taking the time voting for me! All this wouldn't have been possible without you and I encourage you to send me feedback about stuff you are curious to read about!
Ray Ploski (@rayploski) for his engagement; Rayme Jernigan (@rayme) for the organizational stuff; Heiko W. Rupp (@pilhuhn) for being my guide and showing me the RedHat city; Andrew Lee Rubinger (@ALRubinger) for nice discussions and always being around, it's good to know you!; Dan Allan (@mojavelinux) for being a friend to have good discussions with! Sarah White (@carbonfray) for the good time talking about canons, lenses and pictures, it was a pleasure meeting you! Paul Bakker (@pbakker) for sharing a cab and some awesome talks! Lincoln Baxter III (@lincolnthree) for great talks! Bartosz Majsak (@majson) for being my smolder companion :) It was great meeting you! Mark Little (@nmcl) for spending some of his precious minutes for my questions! It was a pleasure meeting you! Brian Leathem (@brianleathem) for the nice chat about RichFaces! Good to finally meet you! Andy Schwartz (@aschwart) The other Oracle guy there :) It was a great time talking to you! Hope to meet you again soon! Emmanuel Bernard (@emmanuelbernard) for a fun panel and a great podcast recording! And last but not least Pete Muir (@plmuir) for a great hour about Java EE, JCP and directions!
And the many others I probably missed here! It was a pleasure to join you! Let's see if we can repeat that! Hope to meet many of you again at J1!

Monday, June 18, 2012

JavaOne 2012 - 2400 hours to go! Some recommendations.

As you might have seen the JavaOne 2012 Content Catalog is online. The Program Committee had some very intense weeks of sorting, reviewing, rating and discussing every single proposal and we finally managed to setup a (hopefully) interesting mix for you. With exactly 105 days or 2400 hours to go I thought it could be a good day to offer you a list of my favorites to come.

I had the pleasure to work with two teams on the program tracks this year so you will get some recommendations for both the Java EE Web Profile and Platform Technologies and the Enterprise Service Architectures and the Cloud track. Let's start with the first one.

Java EE Web Profile and Platform Technologies
This track has 64 sessions, 31 BoFs and 6 tutorials overall. It's hard to highlight the right ones here without being unfair to anybody. All the speakers did a great job in submitting their proposals and it was amazingly hard to pick the final ones. Even if I have my favorites I highly encourage you to look at all the content in this track to make your own decisions!

Oracle 50 Tips in 50 Minutes ForGlassFish Fans Arun Gupta, Christopher Kasso (CON4701)
This fast-paced session presents 50 tips and tricks for using GlassFish Server technology. Presented by two GlassFish experts, the session offers tips to help novice users as well as seasoned developers get the most out of GlassFish. 

Apache TomEE, Java EE 6 Web Profile on Tomcat  David Blevins IBM (CON7469)
Making its Java EE 6 Web Profile certification debut at JavaOne 2011, Apache TomEE combines the simplicity of Tomcat with the power of Java EE.  If you're a Tomcat lover or a TomEE enthusiast, this is the session you don’t want to miss!

Building HTML5 Web Applications with Avatar Bryan Atsatt and Santiago Pericasgeertsen - Oracle (CON7042)
This session focuses on how to build HTML5, thin-server Web applications with the Avatar framework. It introduces the notion of thin-server architectures as well as the major features in the Avatar framework for building rich UI applications.

Standardizing Web Flow Technology with JSF Faces Flows Edward Burns and David Schneider - Oracle (CON4627)
With the introduction of Faces Flows, a flow technology based on Oracle Application Development Framework (Oracle ADF) task flows and Spring Web flows. This session provides an overview of the Faces Flows technology and how it can be used to increase application modularity and code reuse.

Real-World Java EE 6 Tutorial Paul Bakker and BERT ERTMAN - Luminis Technologies (TUT5064)
This tutorial demonstrates how to use the Java EE 6 APIs together to build a portable, full-stack enterprise application and solve real-world problems. It not only focuses on the APIs but also shows you how to set up a vanilla Maven build from scratch and do unit and integration testing—going into almost all parts of the Java EE 6 specs.

GlassFish Community BOF Anil Gaur and Arun Gupta - Oracle (BOF4670)
The GlassFish Community is large and vibrant and has had a tradition of getting together at JavaOne for the past few years. Attend this BOF to meet with the key members of the Oracle GlassFish team. They will share the roadmap for how Java EE 7 will provide a standards-based PaaS platform for running your enterprise Java applications in the cloud. 

Nashorn, Node, and Java Persistence Douglas Clarke and Akhil Arora - Oracle (BOF6661) With Project Nashorn, developers will have a full and modern JavaScript engine available on the JVM. In addition, they will have support for running Node applications with Node.jar. This unique combination of capabilities opens the door for best-of-breed applications combining Node with Java SE and Java EE.

Meet the Java EE 7 Specification Leads Linda Demichiel, William Shannon - Oracle (BOF4213)
This is your chance to meet face-to-face with the engineers who are developing the next version of the Java EE platform. In this session, the specification leads for the leading technologies that are part of the Java EE 7 platform discuss new and upcoming features and answer your questions. Come prepared with your questions, your feedback, and your suggestions for new features in Java EE 7 and beyond.

The Arquillian Universe: A Tour Around the Astrophysics Lab Daniel Allen and Aslak Kntusen - Red Hat (CON6918)
This presentation guides you through the Arquillian extensions by demonstrating how specific extensions solve common problematic testing scenarios faced by enterprise developers. You will get a overview of what is available and possible today as well as what is brewing in the community.

Enterprise Service Architectures and the Cloud
This track has 61 sessions, 24 BoFs and 4 tutorials. The same as for the previous track applies here. That is far too many content to feature the one and only ones. So please see this as a good excuse to make your own decisions ;)

GlassFish 4: From Clustering to the Cloud Fabien Leroy - SERLI (CON4930)
Expected by the end of 2012, GlassFish 4 leverages the 3.1 clustering functionalities to enter into the cloud computing era. The session takes a look under the hood to show you what makes GlassFish 4 a PaaS solution able to dynamically allocate all the services needed by an application. See a live demo of GlassFish cloud features already running with a VMware virtual cluster.

Making Apps Scale with CDI and Data Grids Manik Surtani - Red Hat (CON5875)
This session walks through a live demo of building a Website with CDI, clustering it with Java EE clustering capabilities, and then introducing a data grid into the mix to dramatically boost performance and load-handling capacity.

Utilize the Full Power of GlassFish Server and Java EE Security Masoud Kalali - Oracle (CON3964)
In this session, learn how to utilize Java EE security and what GlassFish Server technology provides to address your security requirements. The presentation explains a two-phase authentication mechanism.

Other News and Noteworthy Things
You might have heard that the Java Strategy, Partner, and Technical keynotes will be held on the Sunday of conference week, beginning at 4:00 p.m. at the historic Masonic Auditorium on Nob Hill. After the keynotes, attendees can go to the official JavaOne Open House at the Taylor Street CafĂ© @ the Zone. As in years past, Sunday will feature User Group meetings (at Moscone West) and Java University courses (Hilton San Francisco Union Square). On Thursday, the Java Community keynote will return. More information should flow out in the next couple of weeks. If you have not already done so, register.
Planning to go? Have a look at my post 10 Ways to make the Best out of a Conference.

Monday, June 11, 2012

If you aren't among those finding bugs you might be among those complaining about them later.

Back from vacation and looking forward to the more productive summer times in general I stumbled over a post titled "The most important lesson in Java EE" by Craig Ringer. I follow Craig on twitter (@craigdevel) and reading his tweetsI believe he is a creative and solution oriented person . But I have to jump in with this special post because it made me angry. And this is not because of his points. They are right. But it's because of his timing, the title and the overall recommendation he gives. But lets start at the beginning.

You aren't talking about Java EE but generally about versions!
Mixing up things is a bad habit. And what he did in this post is exactly that. Yes, the technologies he mentioned have a Java EE focus or are reference implementations. But Arquillian and ShrinkWrap are good examples for independent products with no exclusive EE relation. So the main complaint he is having is, that you shouldn't use a x.0 version.

This ain't news, everybody knows you don't buy version x.0 of anything
Many corporations do not purchase x.0 releases of software - preferring to wait until a .1 or .2 maintenance release has come along. And so should you if you are working on a production ready and stable release of your software. If you started with the first release of the Java EE RI you knew it would be a hurdle race. It ever has been like this. Not only with GlassFish but with any commercial container out there. So, complaining about a Glassfish 3.0 release is like hitting yourself in the face. And this is true for any other software release he mentioned in his post. So, Craig: If you are reading this ... by writing this post you confirmed you are making beginners mistakes ;)

When to use x.0 versions?
I told you, that Craig is basically right. And I second his recommendation in general. But with a slightly adjusted focus. Don't skip x.0 versions if you are going to make your experiences or trying to improve your skills. Every single product on his post Glassfish, JBoss, Arquillian, Mojarra, RichFaces and many others simply can't improve without your feedback. Don't push your highly sophisticated app with millions of active users to the limits with a x.0 and aim for a production date shortly, but why not test drive it?  I did this for GlassFish and even some others (closed source) and it helped the vendors sorting out stuff. They learn how you are using their products and maybe they add a test case for you to improve the upcoming releases.
And even if you have a product which is developed in free and open and does provide you with a road map you could start your development with a x.0. If you plan you upgrade and keep track of needed changes and workarounds. I did this. It works. I believe many others experience the same. It might be more time-consuming than simply using a final/"bugfree" version of anything but .. yeah .. that's life... isn't it. But there also is a downside to this medal. If you are only using final/bugfree/approved versions you might end up staying with stuff that is >10 years old. I don't know if I like to trade that in. I like to manage that problem like I do with any of the risks I have to face with software development.

If you aren't among those finding bugs you might be among those complaining about them later.
It should be clear to anybody that improving OSS has different shades and you can work actively with many of the communities to make the product experience better. I have written up a few about 5 Ways to Contribute to GlassFish without being a Programming Genius and I believe it should be clear to anybody working with OSS that he didn't pay for anything and there always might be a good chance for a bug. Especially with early versions.
As I mentioned I am following Craig on twitter and had the chance to see at least a few of his ShrinkWrap and Arquillian problems which were discussed publicly being addressed by the product owners or volunteers from the different product communities. And they value what he does. Stopping other from doing the same or trying early versions will harm an entire community and not only Java EE.
I don't know if he ever had the chance to work close with other vendors products. Especially the commercial ones. There are good reasons for them to be "Early Adopters" and not "Innovators" Especially with such a broad standard with many many reference implementations.

To make a long post short
Don't listen to Craig here! Use whatever version number your favorite software, framework or more generally product has at the moment. Apply the precautions you always apply being a responsible developer, architect or project manager and if there isn't any other way: Contribute your findings. Help developing patches and manage this as part of your risks. If you are looking for a 100% error-less system you might consider buying one of those commercial products out there. But ... hey, let's tell you a secret: The only difference here is that their support-systems might look a little bit nicer. You would also have to provide a test case and work with them on the solution. .... decide on your own! I would go with GlassFish, Arquillian and ShrinkWrap and any of the others. Even with a x.0 release.