Saturday 12 May 2007

JavaOne 2007

This is a brief report of last May's JavaOne week in San Francisco.

I arrived on Saturday May the 5th, I was pretty much nakered

Although the flight was smooth and easy, I didn't sleep much albeit the films offered by United Airlines were terribly boring (The Pursuit of Happiness and Music and Lyrics).

Anyway, had dinner at one restaurant in the Embarcadero and went to bed by 11pm.

Sunday was dedicated to an interesting walk around the city... I and my colleague Dan walked from the hotel to the Golden Gate Bridge. I don't know how far we walked but it was a lot (~10Km I reckon). We went through Chinatown, Little Italy down to the Embarcadero (nearby Pier 23) down to the Golden Gate Bridge and back (well, OK, half way through the return way we decided to catch a taxi). During the walk we came across several interesting places, including the Long Now Foundation shop and the Norway Day stand at Ft Mason Center (there was a lump of real snow directly from Norway - or maybe not?).


Monday was dedicated to some shopping, catching up with the team and preparing the Booth at the Moscone Center for JavaOne, and attending the Sun University Class we were subscribed at (more on this later) . We then spent the evening visiting some of the most interesing house-brewed beer pubs in SF, most notably the Thirsty Bear

Team daily retrospectives at the pub

Tuesday was an all day session at the booth. We were very busy showing people the Java SDK and giving away our shwags (and the little red phone box was a success). It was very pleasant to show people the features of the SDK, and the most succesful ones were - as expected - ThirdPartyCall and SMS. Most people registered through the portal (some for the sake of getting the usb flash memory IMHO) and promised to have a look at the product. We also realised that the booth was not as sexy as it should have been: several visitors said that the booth was not suggesting what we were then presenting. The day ended with almost 150 users registered.

The diamond: AT&T Park

We then went to the AT&T Park stadium, where the local baseball team, San Francisco Giants were playing the New York Mets (and they won. Thanks to AndyO for explaining me (an old time footy lover) the rules of the game on the fly.

On Wednesday I attended to few other talks and spent most of the time at the booth. Attendance was more than expected and we were all busy almost all five hours of opening. The day ended with few more home brewed beers and Spiderman 3 at the local IMax.

Thursday again very busy (I think even more than Wednesday) and the last helicopters were awarded to those presenting an application built with the sdk (a nice blog on this).

Friday was definitely a day of shopping in and around Union Square... nice shops of all sorts and types.

Saturday we hired a bike (I, Adrian, Pawel and Dan) and we cycled the whole morning plus part of the afternoon around SF: through the Golden Gate Park to the Ocean and back along the Embarcadero. Very tiring but enjoyable experience.

Finally Sunday I flew back home... Flight was ok and not surprisingly movies offered by UA were utterly boring - even more than the outgoing flight (I can't even remember what I watched). But it took the chance to finish my book, Paul Graham's Hackers and Painters: a very interesting book that everybody in this industry should read.

The Golden Gate Bridge
Sessions I attended

Using JavaEE 5 and SOA to architect and desing robust enterprise applications
Rather boring talk on the JEE technology stack and on how to use it to implement enterprise applications. The speaker, a JEE architect, spent half hour saying why architecture was important for the implementation of the non functional requirements and all the *ilities. Approach was based on a RUP like methodology - session ended with explaination of the core J2EE patterns.

Rapid web development with Groovy and GrailsVery interesting session on Groovy and Grails...

it's worth looking at these technologies as replacement of Ruby and Rails. The session included an hands on tutorial on how to implement a simple web site that exposes CRUD ops on a set of DB tables.

Distributed cachicg, using the JCACHE API and ehcache, including a case study of Wotif.com
Very interesting session on caching. The speaker (also author of ehcache) explained in details the issues aroung caching and how to use ehcache for distributed applications.

Non intrusive monitoring of java technology based applications with JMX, JConsole, and AOP

This is probably the most interesting talk i attended... the subject says it all: JMX is the way of managing applications in two ways. One is to allow easy runtime configuration of the behaviour of the application. The other is to collect stats on the various aspects of the apps (JVM, thread numbers, memory and so on). The nice thing is that this is all possible via spring JMX which integrates very well with the most popular jmx server implementations (including JBoss).

Java API for RESTful Web Services

JSR 311 is the way of standardise web service exposure through a Java API. Basically is a bunch of annotations that allow to specify how the methods and properties of a bean can be exposed the REST way. The JSR is still work in progress and the talk described the current state of play. Quite interesting talk as, when this API will be available, will encourage development to fit with the REST principles. Moreover services built with the API will be deployable by use of a variety of web container technologies and will benefit from built-in support for a variety of HTTP usage patterns and conventions.

Web algorithms
From the session abstract: "This session explains--without any needless math or boring proofs--several fun algorithms of interest to back-end web programmers.
Each algorithm was selected because it's really practical, really interesting, or both. The algorithms aren't always the same but can include public key cryptography, credit card checksum validation, TCP Slow Start, 2's complement, priority queues, the XOR swap, and the Google MapReduce function for massively distributed calculation."

Blueprints for Mashups: Practical Strategies, Tips, and Code for Designing and Building

This presentation highlights the issues around the development of mashups, specifically security concerns, protocols (soap vs REST), data format (xml vs json) design patterns and strategies (client vs service mashups). It gave me an overview of what JSon is and how to use it, and some in depth details on how to code mashups in \JavaScript.

Minimalist test techniques for enterprise java technology based applications.

The first part of the talk was about how testing is important and why people shold do it (kind of preaching to the convert), so after all quite boring. Second part described test strategies for each of the three layers of a typical JEE app (data, buisiness and presentation). Only interesting bit was a demo of Selenium. The rest was chitchatting and free publicity to the speaker's book (POJOs in Action).

Declarative Programming: Tighten Enterprise JavaBeans (EJB) 3.0 and JSR 303 Beans Validation

Probably the most boring presentation title so far. Essentially, the session was devoted to describe the ins and outs of the JSR 303, which, surprise surprise, is a way of standardising bean vaidations via Java5 annotations (I know something about this). The guy, expert member of the JSR 303 committee, showed how cool is to annotate beans and methods to validate input parameters. The JEE way will not use AOP though (the guy said AOP is useless and too complicated), buth rather with "interceptors" which basically are very similar (in fact, the same) as Spring AOP advices.
This was the only session I dared asking a question at. I was infact rather disappointed when he said that people should not use AOP at all and he did (not too much implicitly) say that such developers are masochists. The question i asked was: what's the difference and why Interceptors are better than Spring AOP. The answer was that Interceptors are standard and that I had been better off complaining to that standard, and that interceptors were easier to use. I only objected that he was confused with pure AspectJ (and not Spring AOP). Anyway it did not convince me. But there you go... we'll have a standard.

Was it worth?
Of course it was. The city and the experience at the booth was priceless. Some of the sessions interesting enough... some others rather dull. Also, you would expect JavaOne to be the showcase for Sun's product, and it was... I just thought it was too much!