JavaOne Day Two
Wow, I knew my Swing Hacks partners -- co-author Joshua Marinacci and contributor Romain Guy -- were destined for great things, so getting their demo in the JavaOne keynote is just par for the course. They've always blown me away with their ability to tie together the disparate parts of Java2D, the GlassPane, JOGL, etc., to achieve clever effects that you supposedly can't do with Swing. One of the things that Josh and I said in a session last year was that "if you can paint() it, you can have it", meaning that there were lots of places where you could use various forms of rendering (Java2D, JOGL, QTJ) and get it into Swing's rendering pipeline.
Their demo, Aerith (already posted as a java.net project!), is a mashup that combines photo management with Google Maps, allowing you to find and define points of interest in real-space and associate pictures with them. In short: take your pictures, locate where you took them, and then let Aerith take you for a drive, tracing your progress from point to point while superimposing a translucent photo slide-show of your photos as you reach each point. The progress trace is done with a thick red line, and if you hum the "Raiders of the Lost Ark" theme in your head as it goes, the effect works much better.
Aerith uses Mustang's latest features, and it wouldn't be surprising if the ambitious JOGL integration isn't a little touch and go if your Mustang is more than a few weeks old (same goes, I imagine, for the early-access Mustang available to Intel Mac developers). But then again, the fact that it's an open source project on java.net should allow anyone who's interest to help make any neccessary adjustments for their platform, and it could provide a good test of Mustang rendering on the various Java platforms.
I'll have more to say about Aerith next week... it occurs to me that I've spent four paragraphs on just one demo from the keynote, and of course there's a lot more going on at the show. One look at the weblogs page shows the extraordinary diversity of activity, ideas, and opinions being tracked by our bloggers. There were 34 blogs posted yesterday!
I spent most of my time at the java.net Community Corner in the Pavilion, working on our podcast series. We had to quickly react to various realities of the situation in the booth -- audio output that was initially too "hot", too little wireless bandwidth to upload the first few talks until hours after they were presented, Garage Band exports that took too long (I've abandoned its "mixdown" approach in favor of copy-and-paste in Sound Studio), and an attempt to do an interview with two mics without knowing that only one was supposed to be used at one time. So there are audio glitches in some of the podcasts, and while I regret their existence, I do see them as a badge of authenticity -- these talks are being given just once, and we're right there with a laptop grabbing them as best we can and getting the audio out to listeners around the world as quickly as we can. And really, by the second half of the day, we had things down pretty well. This is an important experiment for us, because while only a few people will find their way to the booth for each talk, we think that preserving the talks online and providing them as an easily-accessed series of podcasts will help them reach a much larger auidence. In turn, this should give project owners one more way to get the word out about their projects.
Speaking of mini-talks, I'm doing two today: a panel discussion with JDK contributors who don't work for Sun, and then one on my still-incubated QTJ extension project, Lloyd. I should probably get my slides written, given that I'm presenting it in a few hours...
Long live Aerith!