The NetBeans World Tour
On The Road With The NetBeans Mobile Home  |  Route  |  About  |  Credits

What is this site?

Tim Boudreau, NetBeans engineer and evangelist is doing his own portion of the NetBeans World Tour - across the U.S., as he moves from California to Massachusetts, visiting Java User Groups and developers along the way.

For this trip, he has rigged up the NetbeansMobile, a 1984 GMC truck, with some interesting equipment. A laptop is wired up to a GPS and a webcam. Every few minutes, as he crosses the U.S., the camera takes a picture out the windshield. And every few minutes, the whole rig uploads new pictures and gps data to this server.

Track Tim's progress here as he visits with Java developers and people interested in NetBeans across the U.S!

Technical Details

The software that makes this site possible comes in two pieces - what runs in the truck and what runs on the server.

In The Truck

In the truck is an Apple G4 PowerBook run off the cigarette lighter. It is connected to a small Logitech webcam mounted on the dashboard, and a Garmin GPS 18. A small Java app (below) turns on and off capture and determines when to rsync the data. The app does not really do much except run other utilities - it's easier to control them all in one place than run a bunch of cron jobs, and it gives a preview of the most recent snapshot. When capturing, it uses gpsbabel to capture real-time tracking data to a .kml file; images are saved in jpeg format, with timestamps as their file names. Every so many captures, the app will attempt to rsync via ssh to a directory on the server. The application also generates the thumbnail images and pushes them over to the server (since the app has nothing to do when not capturing, this reduces server load - might as well use the cpu cycles). The app also uses gpsbabel to build a smaller .kml file that is a filtered down merge of all the tracking .kml files, which is small enough for Google Maps to handle (by default the GPS records location information every second - this is far too much data for use in a mapping application, but useful for matching images to the exact location they were taken).

The Capture App

On The Server

The server side of the application is fairly straightforward - most of the time it is serving flat image files. The UI was written with Wicket and is run inside Glassfish.

A watchdog thread checks the data directory for new files every three minutes. If it finds any, it:

All this just to drive across the country! But it's been fun making all these moving parts work together...

About the place names

Not all images will have place names. We are using a web service which takes latitude and longitude and returns a name. First it tries to fetch an address, with state and street address. If that fails, it will try to get just a place name (these can sometimes be a bit enigmatic).

It takes a while for this to be done for all the images, and it is done whenever new images are uploaded. So if you don't see place names, often all you need to do is refresh the page.