The walkingboss.org site that Doug created with Ruby on Rails integrates
digital photos with GPS data using Flickr and Google Maps.
At our November, 2006 meeting, Doug Fales discussed
how he developed his Walking Boss
Web site using Ruby on Rails.
This talk was so interesting from so many perspectives that it's hard to
figure out where to start. Doug's story starts with a Christmas 2005
stocking stuffer that gave him inspiration for creating a Web site.
He thought about how his handheld GPS device could not only keep track of
where he travels, but correlated with the time stamps on his digital
photographs, he could combine the two pieces of data onto a map with
pop-ups displaying where each photo was taken (and a thumbnail of the
photo). He took a moment to admit that he wasn't the first to come
up with such an idea. He showed pages from map mashups done
at the turn of the 20th century, automobile travel maps that illustrated
the route going to and from the destination.
Now back to the site.
Not wanting to get into the photo archiving or the map business,
Doug used Flickr to store the photographs, and Google Maps to generate
the map, trace of the route, and the thumbtacks noting where the photos
are stored. Doug plays some tricks to get the time stamps in sync between
the GPS time and his camera time (never quite the same) so that his
photos are displayed roughly where on the path they were taken.
Now the interesting part. Since the map API uses AJAX, and requires
constant interaction with Google Maps, it didn't make sense to try to run
all interactions with Google Maps through the server. So Doug's
architecture (and probably that of a number of map mashups) puts
the user's Web browser at the center of the universe. The Web browser
asks Google Maps to display the map, the route, the thumbtacks, handle
the popups when the thumbtacks are clicked on, scrolling and zooming.
The Web browser asks Flickr for the photos to display on demand, making
this a real application based on the Web services provided by these two
With all of the processing pushed down into the Web browser and
the Flickr and Google Map APIs, what does Doug's site do? His site
stores the GPS data, captions, and pointers to the Flickr photos.
When you load a trip, the site generates a Web page with tons of
the trip. Once a trip is loaded into your browser, Doug's server
Doug talked about how easy this was to do in Ruby on Rails, and
that the initial site took less than 1000 lines of code to do.
Ruby on Rails is the anti-Java, and indeed Doug discussed how much
faster he could produce a site like this in Ruby on Rails.
His pointing out that Ruby on Rails is easy if you follow
its conventions, which launched the group into an interesting
discussion of the merits of Ruby on Rails vs. Java.
Doug's slides are available here (PDF 5MB).
Note also that pointers to some Ruby resources from O'Reilly are
original meeting announcement.