With all the Java-based applications and frameworks Google has rolled out over the last year or two, I’m disappointed that I haven’t been able to take any of them for a test drive yet. Even though January has already come and gone, it’s never too late to make a few more resolutions, right? So with the entire Internet as my witness (or at least those that read this blog), I announce my intention to at least play around with the following three Google apps before the end of the year:
Google Collections – This library is an extension of the Java Collections Framework, with complete support for Java 5.0. The support for Java 5.0 is an important aspect of this library since it leverages the power of generics, which is a major concern when dealing with collections of objects in Java. This is one of the major differentiators between this library and the Apache Commons Collections library that I have used in the past. Google Collections also aims to simplify your code by allowing you to get rid of boilerplate code that often is necessary to deal with the standard Java Collections classes. This definitely is in line with our coding practices at Phase2, especially the desire to make our code simple and self-documenting.

Google Charts – Because of my past involvement with business intelligence products, I was interested in how Phase2 develops reports and charts in many of their custom web applications. While we currently use JFreeChart to build graphical charts for some of our applications, I recently discovered Google Charts and liked what I saw. The chart at the right shows Google’s weekly stock price over the course of 2007. It took me about 30 minutes to build this chart, and hopefully I could improve on that time as I get more familiar with the library. (To see the magic behind producing this chart, view the properties on the image to right. Note the parameters in the URL.) Google Charts is a web service that takes in a whole bunch of parameters and the data for the chart, and returns a PNG-format image with a chart of the data. It supports several different types of charts and appears to be quite flexible. Google Charts does have a limit of 50,000 queries per user per day. However, I see it as an extremely viable option to quickly deliver charts for a small or medium size application without the overhead of learning and deploying some other reporting framework.
Google Web Toolkit (GWT) – This framework has created quite a buzz over the last year or two, and I still haven’t found the time or right opportunity to give it a try. It allows you to develop AJAX applications completely in Java, and then uses the GWT compiler to convert your Java classes into JavaScript and HTML that is compatible across a wide variety of browsers. For a company that doesn’t have a lab with every feasible combination of browser and operating system or the people to test our applications across all these different combinations, GWT appears to be a very compelling solution as we start to develop custom web sites with requirements for more Web 2.0 features. It’s also the agile developer’s dream for developing AJAX functionality, since you can use a unit testing framework like JUnit to test out your classes before they are compiled to JavaScript and HTML. This allows the agile developer to increase the coverage of his or her unit tests, decreasing the time it takes to initially develop a new feature correctly and increasing the stability of an application as it changes over time.
I selected these three applications because they provide functionality that could save me many hours of development on a future project. I’ve always been the kind of person that’s lured by the practical solutions versus the ones that are just cool and flashy, so hopefully these three apps satisfy my need for practicality before 2009 arrives!


Delicious
Digg
StumbleUpon
Reddit
Technorati
Well, the last quarter of the year has arrived, and I’m happy to report that I’ve tried 2 of the three Google technologies I mentioned in this post from the beginning of the year.
While building an online financial application, we needed to build one summary chart to represent the scores across five different sections of the application. This was way too simple a requirement to mess around with any sophisticated graphing application, so Google Charts provided an easy way to quickly generate the necessary chart. We were able to deliver the requirement without burning too many hours of budget.
And just in the last day or two, I needed to figure out an efficient way to find potential duplicates among a large set of contacts in a client’s CRM. The key to the solution was using the Multimap interface out of the Google Collections library. By taking one pass through the data and putting the relevant fields from each contact into the key of the Multimap, I had a collection of all of the “matches” at the end of the loop.
Now if only the Chicago Cubs can come close to this batting average during the postseason, I’ll be a happy man!