Thursday, May 15, 2008

Java One 2008, day four, part two

Right back in blighty so before I forget everything just a few notes on the final day of presentations. Generally the friday isn't as well attended as the rest of the week with quite a few people leaving early; but there was still a lot of good stuff and a whole bunch of repeats of very popular presentations.

The first presentation of the day was TS-5796 JavaFX Patterns which took me a little while to get up to speed on, having never looked at JavaFX properly before, but I was impressed just how easy it to build ui application. The ability to bind variables is the key with the run time environment dealing with pushing updates without having to ever think about dealing with a Thread. In fact the take home message here is that JavaFX is single threaded and if you are using native java threads you are probably going about the problem in the wrong way for most common operations.

One problem with the current builds of JavaFX is there is no automatic binding from Collections to JavaFX sequence and indeed to bean properties on POJOs to JavaFX properties. This mean you have to create a wrapper to access "properties" on POJO which is a real pain. This is something jython has right but I can't speak for the other programming langauges.

Quick break, bumped into my old manager at Oracle standing in front of the big TV screen said hi and then back into some serious sessions.

Next up was TS - 6547 which covered the Hudson build integration system. Never met it before but was pleasantly surprised about how well it deals with common actions. Although I do wonder how well the, admittedly swish, web ui will scale up to deal with more complicated systems. That being said the system is extensible so it should be possible to add some graphs to make build / test dependencies cleared. This is specially important when building and testing multiple modules.

I like the ability to run a <100k web start app on your machine and add it to the build pool. A nice thing to do when you go home at night or away on holiday. Might save buying even more dedicated machines.

This presentation wins the prize for the most inappropriate metaphor used at Java One this year. The "Omaha Beach" pattern used to describe throwing many build systems at a problem.

After a bit of lunch, out of the infected convention center just to make sense, I took a bit out of the closing session of the Grizzly presentation. This builds on top of NIO to provide a very scalable server backbone. Used in many place such as the cometd server mentioned previously and of course at the core of glassfish. Very powerful stuff but not generally something that you will use directly. Interesting note that 1.8 will support the new full asynchronous NIO.2 API I talked about earlier. They reckon they get 10% better performance in that configuration. Of course you would have to risk you production sever on a JDK 7 label!

Last nugget of information of the day comes from TS - 6145 which looked at some pratical examples of using D-Trace with java. I did find the syntax required to talk monitor java using "d" to be a bit over complicated. Mostly this is due to the need to pass in lengths for all the string properties. How C.

There was a java API both for defining probe points, and hence making the "d" less complication, and doing d-trace monitoring from java. (These live in the "com.sun.tracing.*" package) Of course these only exist on Solaris and OS X so you need to consider you options when running on different platforms.

The presenters were very good reminding me of Simon Day when he was on a roll. The key point to take away is that D-Trace should be used as a way of getting answers to questions rather than a more general profiling tool. For example if I know that a method is called too many times and I can quickly ask D-Trace for stats on how often it is called in each place. Can be really powerful stuff. Sadly my day-to-day development environment, Linux, wont have support for D-Trace for some time as the Linux maintainers appear to want to create a new technology rather than reuse this one.

At that point my brain was really quite full so it was time to quit the conference and spend a little bit of time not learning anything. Ah the Metreon and "Iron Man" there I went.

No comments: