May 4

If anyone’s interested, you can follow my exploits on via Twitter on jakekorab.

May 4

Pilot: “Passengers on the left hand side of the plane, if you take a look out the window you will see a great view of the Golden Gate bridge and the Bay Area. Passengers on the right hand side of the plane, thank you for flying with United Airlines.”

Apr 24

Everything is finally booked and I am looking forward to hitting the shores of San Francisco next weekend. The lineup looks really good and I’m still having difficulty choosing between the sessions. I will also be at CommunityOne, which looks outstanding for a free event. 14 tracks!? Amazing! Hats must go off to the organizers. The only session that I have firmly fixed is on Java User Groups, but I have no doubt that the rest of the schedule will work itself out with ease.

I hope to be blogging live (ie. unedited notes and opinion) while there, but that all depends on how the laptop batteries manage to hold out. Fingers crossed!

All that and I get to sample Delta Airlines’ world famous hospitality too ;)

Apr 16

I finally got around to booking in onto some of the tech sessions for JavaOne in San Francisco next month. Gasp! The amount of stuff going on is incredible. From new languages on the JVM (Fortress, Scala, JRuby) to SOA, mobility and techniques in app development it’s pretty easy to book up 12 hours a day. My approach, lock in a full programme of stuff that looks good, and turn up if the brain is still functioning. It has taken the better part of an hour to read through the sessions for the Tuesday, so it’s no easy task. I can’t wait. All I have to do is get around to sorting out the minor detail of a flight from London ;)

Mar 20

Isn’t it always the way, when you want to blog other stuff comes up? I had intended to write up a final post about the last day of Tech Days, but the weather has been great to get the kite out and the holiday is winding down so…

Day 3 was pretty cool, as I went to a few tech sessions related to stuff that I don’t normally work with, as I do web apps most of the time. The Netbeans sessions were pretty good, with a great demo of the Matisse GUI Builder. I think that with Netbeans 6, Java has finally got it’s answer to the VB/Delphi mode of development. The introduction of the Swing Application Framework (JSR 296) and Beans Binding (JSR 295), really takes away a lot of the grunt work in building small to mid sized desktop apps, and Netbeans does a great job in hiding a lot of the initial application setup code. It’s really nice stuff, and to be honest it really drops the barrier to entry. At some stage you will inevitably need to get into the bowels of Swing, but Matisse gives you a great leg up and means that the learning curve can be that little bit easier. The fact that basic CRUD type applications are pretty well automatically generated is a huge help and lets you get down to doing the interesting bits.

I had the pleasure afterwards to turn up to Jim Weaver’s presentation on Java FX that give a great overview of how the technology worked from an architectural perspective. The user interface is defined using FX Script, which has a weird nested CSS-ish feel to it and is used to define your interface, event handlers and UI transitions. This is then compiled down to a Java app. The apps themselves are distrubuted either as applets (remember those?) or via Webstar/JNLP and talk to the home server via JSON invocations, which means that anything can support the interface on the server side. It would be cool to have a play with sticking a Grails app on the back. Nifty stuff.

The last session was no less interesting, as I am finally getting my head around this ESB stuff! I’ve always found the concept a bit esoteric, not having worked in an environment that uses a bus and it’s not something that lends itself easily to kicking the tires. SOA initiatives that I have worked on in the past involved point to point hooks, but I can really see why the ESB concept might come in handy. It’s very easy to get bamboozled by talk of federation, mediation and orchestration. Essentially the idea is pretty simple - hook up everything to a massive pipe, define standard messages and worry only about communication with the pipe itself. The devil, as in any such thing, is in the details - but essentially the pipe handles things like transactionality, message delivery, data transformation, enrichment, routing and the like through underlying mechanisms. You need to understand how to use the specific pipe in question, as with any such piece of infrastructure, but the payoff looks really good. I have not yet come across a decent guide in layman’s english (not a marketecture white paper) as to how to get everything humming, but I feel like the pieces are falling into place.

Winding down the Australia trip this week for my migration to London. Back to reality - CVs, agents, company setups, finding apartments and poms ;) All I have to deal with is a flood of contractors on the market because of the sub-prime debacle (wasn’t Basel2 supposed to make sure this nonsense wouldn’t happen?) and the April budget rounds. Bring it on!

Mar 5

Beautiful day in Sydney.

I came out of this morning’s Tech Days session on Java ME applications with a whole bunch of questions - they’re much more fun than answers.

The latest version of JME now contains heaps of APIs for everything from geolocation to bluetooth and is supported by millions of mobiles, and will continue to be so. The implementations are open sourced through phoneME (CDLC) and phoneME advanced (CDC). Anyone who has played with Java ME will soon realise that building apps is a real pain in the ass as every device supports different versions.

Now the Open Handset Alliance led by Google comes along with Android derived from Java but a different platform altogether, even though some of the java.lang libraries are supported. It lauds a bunch of features like geolocation and bluetooth (which are already part of JavaME). There’s a lot of feel-good talk about openness and freedom.

To me it seems that it only compounds the platform/version fragmentation issue and will become a problem to application developers who try to reach the largest possible market. This was an obvious concern at question time. People don’t know which horse to back here when starting out in mobile development. Chances are that app developers are having a bigger problem. Is this another HD-DVD/BlueRay scenario?

What features does Android provide that JavaME does not? On the surface to the casual observer they are almost the same.

But the big question here is why is OHA/Google going against the grain and building their own mobile platform?

Java ME use is still growing and expanding to new embedded devices like Sun Spots. Companies don’t invest millions on technology just for the fun of it. Technology uptake is painfully slow in the wild and even if every vendor dropped JME today in favour of Android, it would take years for it to get a majority of market share. Having said that, it may not be that Android’s end goal is mobile product or technology specific at all. Are Google et al attempting to force licensing change from Sun? Maybe Android set top boxes? It looks like a stepping stone that is part of a larger strategy.

Food for thought - the best thing to come out of conferences.

Mar 4

After half an hour of walking around trying to determine where exactly the convention centre IS in the Olympic complex (signage would be really nice), I finally managed to make it to the Melbourne satellite event of the Australian leg of Sun Tech Days. I love events like this; the interchange of ideas and pointers in new unexplored directions really get the mental juices flowing. I was a bit late, but still managed to catch most of James Gosling’s keynote.

The highlights for me were many, and they’re going to take some digesting.

James destroyed the “Java is slow” myth (anyone who still believes this hasn’t fired up a new JVM lately). Java runtimes are incredibly optimized with test results showing performance equalling or beating C/C++ equivalents.

  • Linpack -2%

  • Scimark + 4%

with GC being a lot faster than malloc/free.

The reason why dynamic compilation beats its static equivalent as the JVM is able to tweak performance depending on the processor type being used, even in the same type of architecture. This enables the JVM to take advantage of the strengths of AMD chips over Intel and vice versa.

There are lots of good things coming up in Java 7, both in the core and on the mobile. I will be detailing them a bit more once I get around to working out what all of the JSR numbers I scribbled down meant :P. Too fast with the old Powerpoint.

The question of RAD tools came up. James quantified it with a question – what exactly do you mean by rapid? Is it time to demo or time to production deployment? I had never really thought about this, but it does make sense. Java is being focussed on time to production. The reason for this blew my mind. Venture capital provides funding in 3 month lots only. In that time you need to turn an idea into a production grade system.

3 months from idea to production.

As developers we need to scout out the enabling technologies behind this kind of turnaround and work it into the toolbox. And enterprises need to have a good hard think about why they are not achieving similar results (and no, the answer is not to kill your programmers with 120 hour weeks to do it). This only highlights the discrepancy between small startups and large organizations. I have yet to see anything get put in production in less than a year in a large institution.

The other highlight for me was not what was presented, but rather what could be gleaned from the feedback questionnaire. This was one of those basic “who are you, what do you do and what are you using to do it?” numbers. It listed a whole bunch of technologies that Sun are presumably keeping their eyes on. The stand-outs? RoR, Groovy, Grails and Wicket. If you want to skill up on what’s going to be big on the job boards within the near future, these would be a very good start.

The things I’m looking forward to playing with as a result of this morning? JMaki – a super-framework and Netbeans plugin that glues of all the best AJAX frameworks together (mash-ups faster than you can say Dojo), and of course JavaFX – super sweet user interfaces done as simply as a web page.

Oh yeah, and watch out for an announcement in the very, very near future about PHP and its relationship to Java.

Tomorrow in Sydney!