Tag Archives: Jazoon

Notes from Jazoon 2011

I have just returned from the Jazoon 2011 Conference in Zurich that finished yesterday. Zurich is a beautiful city and I always enjoy my stay there because of it’s atmosphere, location and nice people. Everything seems to work well there, including the great system of public transport (how many cities include boats in their public transportation networks?). I only wish they did something about the public smoking which can be particularly annoying under a tram stop shelter on rainy days.

The Jazoon conference was traditionally held in the Arena Filmcity, Zurich’s multiplex cinema, with halls featuring 150, 300 and 500 comfortable seats. This year I was presenting a talk about SOAP and REST services looking at the two from a perspective of several typical use case scenarios. The talk was originally submitted a colleague of mine, who could not travel due to a conflict in his schedule, so I can say I got to Jazoon with some portion of luck this year :) You can find the final slides from my presentation here.

Jazoon 2011 Conference

Overall the conference was smaller in attendance and quieter compared previous years. My estimate is around 500 attendees. This was in contrast with the large amount of sessions. Session quality varied both in content and speaker, yet during all three days I was almost always able to choose a good session. From the Java technical sessions, I found particularly interesting the talks on the future of Java by Danny Coward, Using Graddle, Play! web framework, Jazoon Rookie talk on boosting productivity with Hudson/Jenkins, Gerrit and Mylyn as well as the Web security talk by Frank Kim. The Animated Java Concurency presentation by Victor Grazi from Credit Suisse was worth watching too. You can checkout his animation project here.

From the SET track (SET = “Software Engineering Today”, whatever that means) I really enjoyed the talk on Self-organizing teams by Joseph Pelrine. Also opening keynote on IaaS and PaaS by David Chapell and closing keynote on JavaSE/EE by Simon Ritter for the Jazoon, Day One were interesting, and – as one would expect – exceptionally well delivered. I was a bit disappointed by the opening keynote for the Jazoon, Day Two delivered by Linda Rising. Linda is a great speaker but I found her talk somewhat shallow in content this time, maybe I just had my expectations set too high. Also, I may be nitpicking here, but if a keynote speaker does not bother using the official conference presentation template, who should?

The closing keynote for the whole conference by Pouline Middleton was, despite somewhat prosy title, surprisingly refreshing. If you don’t know Pouline and never heard of her fiction diary One Woman Three Men, which – interestingly – is based on her own personal life experience, you should check it out.

Jazoon.next

As I said earlier, the Jazoon conference was despite the large number of talks and a new track focused on Microsoft technology smaller in attendance compared to previous years. I can only speculate about the reasons, but hey, this is my blog, so here are my thoughts:

Jazoon organisers need to decide who is their target audience. Zurich is an expensive location and the conference fee is not particularly low either. With that, the conference should IMO retain a narrow focus to be able to provide quality that would justify the premium price. Broadening the scope may not be the best strategy for such conference. I am not sure that adding Microsoft track to a conference with a name suggesting a Java related content was necessarily a good decision. (And I say that despite the fact that I won a really cool mouse and an XBox game in the Kinect-powered virtual Wheel of Fortune at Microsoft booth.) For one reason or another, the sessions on the Microsoft track were poorly attended. Obviously this track did not attract many new attendees to Jazoon.

The amount of sessions this year was astonishing. If my calculations are correct, there were 112 (!) sessions delivered at Jazoon this year. That’s a huge number compared to the number of attendees. The problem with the number is that the high number seemed to be achieved at the expense of the quality of the talks and/or speakers. In future, the Jazoon organisers should do better job in reviewing quality of the submitted talks AND the quality of speakers. The way I see it, much smaller amount of high(er)-quality speakers and sessions could attract many more people. Sometimes simply less is more.

On a similar note, I was surprised that organisers still did not implement any means for collecting an immediate feedback from attendees on the quality of the sessions and speakers. Such data would help them in their submission reviews in the coming years. Also, using just a single twitter aggregation page as the only dynamic content element is just not enough for a technical conference these days anymore.

At last, I find it somewhat unreasonable to host a conference for 500 people in a venue with capacity to host simultaneously 10 sessions for more than 2000 attendees in total. It seems to me that smaller venue could help to reduce the costs of the conference and as such make the fees more affordable.

All right, enough ranting. I would like to state that despite all of the above I had a good time and I found the conference refreshing and inspiring. I hope the conference organisers will be successful in helping Jazoon to regain its former momentum, so that it remains a relevant international Java conference for the years to come. Good luck, Jazoon!

Jazoon 2009 – Day 2

My today’s schedule was little bit more relaxed than yesterday. It started with a great keynote delivered by Danny Coward which evolved around new and noteworthy things we can expect in the coming JDK 7 and recently released JavaFX 1.2.

Maybe it’s just me, but I allways eagrly await what’s new in the upcoming JDK release. The things that I use to like most may sometimes seem subtle (such as new short syntax of a for loop introduced in JavaSE 5), but at the end of the day those are the things that really make my coding much more comfortable and my code shorter and thus easier to read.  So I guess my favorite features for the JDK 7 evolve around Project Coin, where “coin” stands here for a synonym of “small” or “subtle”, and such are the changes in the Java language this project introduces. To mention few:

Using Strings in case statements

With JDK 7 you are (finally) able to use Strings in case statements directly:

String color = "red"
switch (color) {
    case "red" :
        // do red stuff
        break;
    case "green" :
        // do green stuff
        break;
    case "blue" :
        // do blue stuff
        break;
    default:
        // do default stuff
        break;
}

Improved type inference

If you ever tried to really leverage generics in your code you soon ran into initializations like the one bellow:

Map<String, List<ItemClassWithSomeLargeName>> mapOfItems = 
            new HashMap<String, List<ItemClassWithSomeLargeName>>();

I always wondered why it is required to repeat the type information <String, List<ItemClassWithSomeLargeName>> in the constructor invocation. I was not alone aparently. Josh Bloch even suggested a possible elegant solution leveraging a factory method pattern.

Finally with JDK 7, the above code is a history, as JDK 7 lets us do the following:

Map<String, List<ItemClassWithSomeLargeName>> mapOfItems = new HashMap<>();

The ‘Elvis’ operator

Are you tired of biolerplate code related to null checks such as the next one?

public synchronized void countPageHit(String pageName) {
    Integer countVal = hitCounts.get(pageName);
    if (countVal == null) {
        hitCounts.put(pageName, 0);
    } else {
        hitCounts.put(pageName, ++countVal);
    }
}

Well, call Elvis for help and he’ll let you do this instead:

public synchronized void countPageHit(String pageName) {
    // if there are no hit counts stored in the map,
    // use 0 as a current count value
    Integer countVal = hitCounts.get(pageName) ?: 0; 
    hitCounts.put(pageName, ++countVal);
}

Of course, there are other notable changes coming with JDK 7, such as modules to solve current visibility vs. accessibility issues, more work on letting dynamic languages to run as efficiently as possible in the VM, new and extended I/O APIs (new filesystem API, file notifications, directory operations, asynchronous I/O) and new “Garbage First” Collector very suitable for a wide variety of applications, to name a few.

As for the JavaFX 1.2, this latest release brings support of more platforms (* = new):

  • Desktop platforms (Windows, MacOS, Linux* (beta), OpenSolaris* (beta))
  • TV (a television from LG*)
  • Mobile Phones (Apart from the existing developer emulator, there are commercially available developer phones with JavaFX runtime burned into them coming: HTC Diamond*, LG, Sony Ericsson*)

The new JavaFX 1.2 SDK also brings additional, fully skinnable (via CSS) UI components, full-screen mode, improved data handling (RSS, Atom support, …) and greatly improved performance  – around 40%up for desktop, 20% up for mobile, code size 30% down in an average JavaFX application. The performace improvement is really signinficant – a favorite Bubblemark benchmark test delivered these results on the stage:

  • Microsoft Silverlight – ~90fps
  • Adobe Flex – 58fps
  • JavaFX 1.2 – 124fps

And this is just astonishing: JavaFX is 1.37 times faster than Silverlight and 2.13 times faster than Adobe Flex! I am pretty sure that with the new set of tools for designers, new APIs and components it will be driving even more attention of RIA as well as desktop application developers.

Now, I did spend lots of time and space writing about a single session, but for me as a Java developer it was simply the most interesting talk of the day. Still, I need to add that I attended several other great and interesting sessions today: a talk on OSGi and Java Modularity by Peter Kriens and Harold Carr‘s talk on Metro Web Services Security Usage Scenarios are the two talks definitely worth mentioning.

Now that the official part of today’s conference program is over, I am looking forward to hanging around, talking to people as well as having some beers at tonight’s Jazoon party.

Cheers!

Jazoon 2009 – Day 1

I went to sleep really late last night so I had some troubles getting up today. And thus I missed the 15-minute opening session by Christian Frey. I arrived just in time for the James Gosling‘s keynote. James’s keynote was really packed with information. He talked about lots of stuff what Sun is doing in the software and mainly Java field, including GlassFish v3 and its profiles, latest release of NetBeans, project Kenai – Sun’s full-featured project and source repository that will soon reach its first final release. He also talked about Real-time Java, Java for cellphones, mentioned coming JavaSE 7 release and touched briefly JavaFX platform. Looking back, I really wonder how he was able to cram so many topics into a 60-minutes presentation. Actualy, if you want more details on the James’s keynote, please, take a look at my notes.

 After the two keynotes a series of technical sessions have started. Obviously, I could not attend all of them (I am really very bad in being in two places at the same time by design), so the next lines give a short look at those that I attended.

 The first technical session was done by Kirk Pepperdine from Kodewerk Ltd. on Concurrency and Performance in Java. The main premise an motivation for the presentation was – the Moore’s law. A common mistake people often do is they confuse speed with frequency and put this law into connection with a CPU frequency, but in fact it is number of transistors in the CPU that is supposed to double once every 18 months. Latest evolution in the CPU field confirms that. What may be less obvious, at present, Moore’s law basically suggests that currently we can expect new processors with doubling number of cores approximately every 18 months, which inherently poses questions on how to effectively leverage such parallelism and brings us eventually to concurrency issues. After a short intro into the problem area,  Kirk introduced some of the new concurrency-efficient data structures he has been working on for some time. I have to say that I got little bit lost several times during the talk as I was missing some more context that would connect the slides and pieces of Kirk’s talk together. Nevertheless, I left the room with an impression that Kirk’s data structures may become pretty useful soon. And even though Java already provides a very useful library of concurrency-efficient classes developed by Doug Lea, it’s still a pitty that Kirk’s structures didn’t make it into JDK (yet). Hopefully we’ll see them in JDK in some later release.

Last morning session by Neal Ford of ThoughtWorks, Inc. on "Design Patterns" in Dynamic Languages was really refressing. I am not an active user of dynamic languages such as Groovy or Ruby yet, but after the initial denial phase I am getting more and more excited about them, especially Groovy. In his talk Neal touched several standard patterns know from the "Gang of Four" book (iterator, command, strategy, template, interpreter, decorator and adapter) as well as introduced two patterns specific to dynamic languages, namely "null object" and "arridifier" patterns. Probably the two main messages of the talk were that modern dynamic languages can significantly reduce the amount of the boiler-plate code a deveoper needs to write. That makes the code both faster to write and easier to read and understand. The second main thought is that it does not make sense to use standard design patterns in the GoF book as recipes that have to be followed precisely. This of course applies to statically typed languages as well, but is greatly emphasized when one starts using a dynamic language. Also, all aforementioned standard patterns can be adjusted to fit a dynamic language in a way that their implementation requires less code and feels more natural in the dynamic language environment.

In the first afternoon session Ognen Ivanovski from Netcetera presented his 1-year experiences with development of iPhone applications from a perspective of a Java developer. Overall nice introductory session. I had very similar feelings (a mix of frustration, confusion, joy and amazement) when I first put my hands on Objective C and Apple’s iPhone SDK. Ognen’s comparison of  Eclipse (evidently his beloved IDE) to xCode (Apple’s IDE) and NetBeans (well, my preferred Java IDE) really startled me though. In the comparison, Eclipse came out to be far superior to both xCode and NetBeans. The problem is that Ognen’s arguments used in favor of Eclipse over NetBeans are not valid for several years now. I don’t want to go into argument which of these IDEs is really better. I guess the lesson to learn here is just that if you actually don’t know enough about something (or haven’t seen/used it in the last couple of years), don’t try to compare it… :)

The next session I attended was about build and collaboration tools, presented by Jason van Zyl. This talk evolved around Maven, OSGi repositories and tools folks in Sonatype develop around them. Interesting thing was that, among other things, they are developing also plugins for Hudson because they would like to see Hudson to become a standard open-source tool for build & release process and development collaboration.

One more interesting talk I saw today was from SAP guys on exposing devices and sensors in a RESTful way. As part of the presentation they were demonstrating SunSPOTs with an embedded web server that was capable of handling REST request and producing json responses. The SunSPOTs were accessible via something they called "Smart (or was it Intelligent?) gateway", which was essentially just an HTTP proxy. With this RESTful API it was possible to browse all registered SunSPOTs and retrieve all the data about each particular SunSPOT‘s status using HTTP GET. Also it was possible to control the devices and do things like lighting the LEDs, changing colors etc. Thinking about it, it would be a nice project to try to embed Jersey into a SunSPOT and do something similar.

Last two talks (1, 2) of the day were without a question the cherry on the top of the cake. Very, VERY interesting and entertaining at the same time. Because of their topics it does not have any sense to try to condense them into few sentences. But I am sure that everybody who stayed there to see them would agree that they were more than worth it. …btw. did you know that there are armed military robots deployed on the North-South Korean borders that are supposed to shoot people without a valid RFID on sight?