Friday, August 15, 2008

Using the Google Collections Library for Java

If you missed this meeting, it was recorded and it is now available on YouTube in two parts:

Part 1:
Part 2:

Please note: The slides within the video are easier to read when you choose the high resolution video option. However, you can also download a crystal clear version of the slides in PDF format from the Google Collections Library project's downloads section.

After a nice introduction by Josh Bloch, Kevin Bourrillion dived into his talk. I won't rehash it blow by blow here, but, Kevin made two important points at the beginning that I will reiterate. First, Jared Levy and Kevin are the two primary authors of this library at Google. However, many Googlers have made contributions to the library and Josh Bloch in particular has provided them with a lot of guidance in their efforts. Second, this library is not intended as a replacement for the JDK collection classes. Rather, they complement and extend the core JDK collection classes. Kevin strongly urged anyone that was not already intimately familiar with the JDK collection classes to spend some time with them before attempting to take advantage of the additional functionality in the Google Collections Library.

Thanks to Paul Masquelier, we also have this public Picasa web album to share with pictures from the meeting.

That's All Folks!

Monday, April 7, 2008

Mapping The Votes with Michael Geary

For our April meeting, Michael Geary gave a rapid fire demo of several different Maps and Mapplets for viewing the results so far from the 2008 primary elections. In the process, he showed us lots of tips and tricks both for server-side scripting of map data and client-side usage of the Google Maps API. He also covered the interaction and performance differences between using Google Maps directly and using Mapplets. He has already written a fairly detailed blog post of his own covering the material he presented that night. The video of his talk is now available online.

Special thanks go to Googlers Mano Marks and Pamela Fox for allowing us to co-host this final meeting in the current Google GEO Developer Series. Just before Michael took the stage, Pamela provided an introduction to Google Gadgets and how Mapplets fit in that universe as a special variation of Gadgets. We would also like to thank Dick Wall for giving us a brief update on the Android Platform during the networking hour this month. As some of you may recall, Dick was the main presenter discussing Android at our February meeting The video of Dick's Android Update, Pamela's Gadgets Intro, and all the map demos mentioned below is available online here.

We continue to tinker with our GTUG meeting format. We are looking for ways to get more group member involvement in the meetings. We initially tried technical breakout sessions after the main presentation. People typically were most interested in continuing on with Q&A with the main presenter though. Next, we tried technical breakout sessions before the main presentation. We didn't get much traction with that approach either. At this meeting, we invited group members to do brief demos during the networking hour. The demos in order of appearance were:
  • Java User Groups International Map: Van Riper did a demo of using basic KML for mapping locations of international organizations like the JUGs Community. Links: Google Docs Presentation, Blog Post, Wiki Page

  • Tools for working with the Google Transit Feed Spec: Tom Brown demonstrated two open source utilities. Schedule Viewer is a Python program for viewing the contents of a Google Transit Feed Spec feed on a map. It's a diagnostic program intended for those creating a feed. KMLWriter is an application for plotting a feed's stops in a KML file for viewing in Google Earth

  • Putting Video on the Map: Dan Rummel, Justin Cutillo and David Rothschild from Seero gave an entertaining demo that included real-time uploading of video (of them demoing Seero) to a Google Earth application projected on screen for all to see during the demo itself. Fun stuff! Links: Introductory Video, How Seero Uses KML

  • Weather Data in Google Earth: Brian Hamlin showed us a humongous amount of weather data in Google Earth. This was interesting stuff, but, be warned that you will need LOTS of RAM to view this data in Google Earth with reasonable performance.

  • Google Maps API for Street View: Pamela Fox showed us how easy it is to use Street View functionality with the Google Maps API. She also showed us examples from the Demo Gallery.

  • KML Library: Mano Marks showed us libkml. This is Google's library for use with applications that want to parse, generate and operate on KML. It is an implementation of the candidate OGC KML 2.2 standard. It is written in C++ and bindings are available to Java, Python, Ruby, Perl and PHP.

Until we decide to tinker with the meeting format again, there will be opportunities going forward to give your own brief demos at one of our meetings. If you have an application of Google Technology that you would like to briefly demo during the networking hour at a future meeting, please contact us.

Saturday, February 9, 2008

Android Event a Great Success

For our second GTUG meeting Dick Wall gave an excellent talk on Android. We capped the registration at 200 and sold out several days before the event. Dick was very prepared and was giving a presentation he had given before. This was nice because Dick did a great job of pointing out past questions and pointing out when we needed to pay close attention. Dick's presentation was among the best presentations I have seen in a long time.


It is amazing how much interest there is in Android considering no phones are on the market yet. I am looking forward to watching the mobile environment grow as Android evolves. A few weeks ago I attended the Mobile and Embedded Developer Days. At the event I was surprised to hear that all the Sun mobile experts were instructed by Sun not to download Android and not to read anything about Android. It will be interesting to see how Sun works out its differences with Google. At the Mobile and Embedded Developer Days I also met JavaFX expert Jim Weaver. Jim is a really nice guy who is interested in helping developers get started with JavaFX. Jim even does a daily blog on learning JavaFX at his blog I spoke with Jim about writing a JavaFX based Raffle tool. I had attended No Fluff Just Stuff conferences where they had a nice web based raffle tool. I had been speaking with Van about us writing a raffle tool. I never had time to get started on the project so meeting Jim seemed like the perfect opportunity to ask Jim if he'd be interested in taking on the challenge. A few days later I had the first version in hand.



You can read more about the spinner on Jim's blog post The spinner worked great and its nice to help get the word out about JavaFX.

SV-GTUG Off To A Great Start With Google Web Toolkit (GWT)

The newly formed Silicon Valley Google Technology User Group is off to a great start. Van and I run both the Silicon Valley Web Developer Java User Group and Silicon Valley Google Technology User Group so we decided our first GTUG meeting would be a joint meeting of the two groups.

Bob Vawter from the GWT team spoke. In the past I had always ignored GWT because I felt it odd to write Java to generate JavaScript. I felt it would force UI guys into an environment that was not comfortable. After only a few minutes of the presentation I was sold on GWT. The main selling features that persuaded me were:

  • Using an IDE for JavaScript

  • Compile Time Checking

  • Out of the Box Cross-browser support

  • Small distribution that is browser specific

For a long time I had been wanting to write a comet based chat application. Now I was wanting to try out GWT so I finally got started writing the long overdue comet based chat application. You can try out my chat application for yourself on my website I was amazed how I instantly felt comfortable writing GWT. I have been writing JavaScript for most of my career, but after only a few minutes messing with GWT I found my productivity to write GWT was higher than my productivity to write cross-browser JavaScript. I also have quite a bit of experience with Prototype and JSON while doing side-work for I found GWT had many advantages over Prototype and JSON.

In the past I have done quite a bit of Swing coding, so I think that is why GWT came so natural to me. When you think about it, it is strange to model a web framework around Swing. I didn't mind the Swing like feel, but I wonder how traditional web developers will adapt if they have never written Swing.

The biggest struggle I had with my comet chat application was getting it deployed. The documentation I found didn't have much details on deployment. After much waisted time I finally figured out you needed to define each service as a Servlet in your web.xml. In hosted mode this is not necessary.

Among the audience was Matt Raible author of AppFuse. You can read Matt's blog about the event here.

Overall Bob's presentation was a success for me. I found a new technology to add to my toolkit that I think will increase my productivity. Most of the audience seemed to be inexperienced with GWT. I hope other GWT rookies like myself went out and got their hands wet with GWT.