Thursday, May 31, 2007

More video content

I'm a big fan of the recent trends towards webinars and recorded presentations. It's a great way to get a 1000 foot view of a topic with very little effort. I've posted a few sources for videos and audio in the past, but I've recently found a couple new interesting links:
  • TED Talks are online and
  • JavaOne 2007 sessions are being released gradually (although I'm a little disappointed that the 2005 sessions have disappeared)
  • EDIT (6/3): It looks like I missed the release of the JavaPolis 2006 DVD. I just ordered it, so I can't vouch for its content yet, but quite a few of the presentations are available from Parleys, and the 2005 DVD was a great resource. At 49€ (about $65) it's considerably cheaper than attending a conference in person.
  • EDIT (6/4): Google has released video from Google Developer Days including a presentation on Google Gears, which is a neat little framework for writing off-line web apps. They use a local database to store content. And, of course, it's fully searchable. They also have a presentation on Juice, which was pretty interesting.

Sunday, May 20, 2007

New Lens

Last week I got a macro lens I've been looking at for quite a while (Canon EF 100mm f/2.8). I have mixed feelings about it so far. It does its job very well, but I'm a little frustrated at how completely useless it is outside of macro photography. With my other lenses, I can work a little outside their area of expertise when a good shot presents itself, but because this lens is fixed at 100mm, using it for a casual photo in a pinch is a bit of a pain. That aside, I really love what it does with macro photos. It gives me a decent working distance from the subject and the short focal distance, while a little difficult to work with, can really make a photo stand out.

The detail in the Frog's eye is great (check out the full size version on flickr). What you can't really see from this picture, is that the entire frog is about the size of my thumbnail.

I cropped this one a little. Keeping the ant's head in focus was a bit tricky with a monopod. I may need to start using my tripod a bit more often.

Thursday, May 17, 2007

Distributed Version Control

Linus gave a presentation on git, his distributed version control system. I've heard a lot about git and bitkeeper, but hadn't paid much attention until this presentation. If you haven't taken the time to learn about distributed version control, you should take an hour tonight and watch the presentation.

Thanks to Kyle Cordes for posting the link on the JUG mailing list.

Saturday, May 12, 2007

Building the IDEA Groovy Plugin

It took me a little effort to get Idea's Groovy Plugin built, so I thought I'd share my experiences for those who don't want to fall in the same traps.

I started from some instructions on the forums, but still had trouble. Some filenames were wrong, and working on the mac changed some of the details. Here are my revised instructions:
  • Update to a new EAP of IDEA. The plugin wasn't built for IDEA 6
  • Checkout the project from
  • When you first open the project, you may be asked to make a variable association. I pointed the templates variable to ${project}/resources/fileTemplates
  • I had to create a new Intellij IDEA SDK pointing it to my IDEA installation
  • Add tools.jar (on windows) or classes.jar (on the mac) from your JDK installation to the SDK classpath
  • Add idea.jar from your idea installation (on the mac, the file is /Applications/ to your SDK classpath
  • There are already two ant scripts in the ant window. Run the one called generate lexer from groovy
  • Run the build>make command from IDEA's menu
  • Run the build>Prepare Plugin Module 'groovy' for deployment command from IDEA's menu
  • A zip file will be generated to the project directory. Copy it to IDEA's plugin directory and unzip it.
  • Restart IDEA
I've attached the file for those daring enough to install software from some stranger's blog:


Wednesday, May 9, 2007

JavaFX in Perspective

The large number of discussion about JavaFX over the last few days seems be very polarized. So far I have only read two opinions repeated over and over:
  1. JavaFX is the competitor to Flash and SilverLight that we've all been waiting for.
  2. JavaFX is a weak attempt to cash in on the recent SilverLight announcements and has no chance for success.
What most people don't seem to get, is that JavaFX isn't even in the same market as Flash and SilverLight. It's much more appropriate to compare JavaFX with XAML or Flex (just the markup language, not the action script, runtime environment, multimedia support or animation).

Both Adobe's product line and Microsofts are made up of several packages:
  • A runtime environment - The Flash VM and the .Net Runtime
  • A declarative UI language including widgets - Flex and a light version of XAML
  • A declarative animation language - Flash and XAML
  • A scripting language for procedural logic - Action Script and JavaScript
  • A development environment for each of these three languages
  • Multimedia components - video and audio playback is supported well as first class components in both frameworks
Of course JavaFX runs on the Java runtime environment, and it defines a very nice language for declarative UI building and a decent language for animation... but that's all it tries to do.

Sun has yet to show any interest in completing the rest of the picture.
  • It could be argued that some work would need to be done to the JRE before it could be light enough to compete with Flash or Silverlight as a runtime environment (at least ease of installation could use some work).
  • JavaFX has no equivalent to JavaScript. Although one could theoretically use Java, Groovy, Javascript or some other language for procedural code, the binding isn't nearly as nice as the integration the other two frameworks have with their scripting languages.
  • Netbeans provides some syntax highlighting and code completion for the language, but it's barely better than notepad when compared to the authoring tools being offered by Adobe. To take on the competition, Netbeans will need timeline driven animation and Matise-like component layout from day one. On day two, we need vector drawing tools to compete with Illustrator and Expression (tie-in with existing tools might be a nice stop gap).
  • Multimedia support has always been a weakness in Java. JavaFX is the neon sign pointing out one of Sun's often ignored weakesses.
With all that said, JavaFX compares very nicely to Flex and XAML when ignoring their sister technologies. Feature for feature it compares nicely. Without the rest of the package, of course, it's all pretty academic. Assuming Sun is really serious about taking on Adobe and Microsoft, they still have a lot of work ahead of them.