Local eatery cum clothing store [[Just Us Girls]] had a banner day for media coverage today, with two stories on the CBC Prince Edward Island website at the same time:

They’re not only denied a patio liquor license, but they’re selling truckloads of sandals.
I have a question for the Europeans in the readership: it seems, from afar, that the notion of “what week it is in the current year” is a something that is referenced quite often in everyday European life. Like “licenses will be available after week 49” or “school will run from week 32 to week 53 this year.”
Is this true?
It turns out that the Online Sharing Software for the Nokia N72 also works with the older [[Nokia N70]]. The only confusing thing I ran into when trying to get it to work was what to enter as my username and password when setting up my Flickr account on the phone; it turns out that you use your email address (not your Flickr “screen name”) as a username and that you need a special password, one that you can get on your Upload via Lifeblog page once you’re logged into Flickr.
This photo of Steven and Dan is the first “phone to Flickr” photo I’ve uploaded; note that I purposefully set the size to “small” to save on bandwidth costs. Even at that small (640x480) size, it cost me $1.98 to upload.
Every night this summer [[Compass]] is broadcasting live from the [[Charlottetown]] waterfront. I’ve long been a fan of “get the art out of the galleries and into the real world” and this is a good example of doing just that: regular everyday people get to see television being made, and CBC people get to interact with real live viewers.
All that, and the promise of a free CBC frisbee, were enough to pull [[Oliver]] and down to the waterfront this evening just after 6:00 p.m. to see the big show.
Boomer and Bruce were both very kind to Oliver, and invited him onto the set for pictures and discussion of the finer points of television news:
If you’re around the waterfront on a weekday evening this summer, I highly recommend a visit; 6:00 p.m. every night.
From [[Guy]] comes a link to The Gapminder World, a tool that lets you create custom “world development” graphs. You have to use it to get a real sense of what a wonderful tool it is.
My friend [[Oliver Baker]] reminds me that today, July 10, 2006, is the 150th anniversary of the birth of Nikola Tesla. When my [[Dad]] and I were in Croatia in 2004, I took this photo of him in front of the Tesla monument in the centre of Gospic:

Tesla was born in Smiljan, which is about as far west of Gospic as my grandfather’s birthplace of Konjsko Brdo is north. Indeed my great-grandfather Stipe, born in 1867, was 11 years younger than Tesla, and given that Tesla returned to Gospic in 1879 when my great-grandfather was 12 and Tesla was 23, it is possible to entertain delusions that they met on market day and Tesla got the scoop on the whole electricity thing direct from a Rukavina.
Is it any coincidence that Niagara Falls, where Tesla invented hydro generation, is less than 20 km from St. Catharines where my grandfather lived in the 1940s when Tesla was near death — somebody had to continue his work!
Tonight’s project: walk around the block and take some photos with my [[Nokia N70]] while my [[GPSlim 236 Bluetooth GPS]] was logging my location every 5 seconds. Then use open source tools to take the time and location information from the GPS traces and merge it with the time information from the photos to automatically stamp the location of each photo into its [[EXIF]] data.
I fired up the GPSlim and started the nmea_info application on the phone to start logging my location. I headed out the front door of my office, along Fitzroy St. to Queen St., along Queen to Kent St., along Kent to University Ave., along University to Fitzroy St., and back along Fitzroy St. to the office. The entire trip took 8 minutes.
I ended up with a file on the N70 called nmea_gga_log.txt that I renamed WalkAroundBlock.txt. This is an NMEA-format file with a line for each GPS waypoint (“digital bread crumb”) on my path that looks like this:
$GPGGA,223249.000,4614.1718,N,06307.7965,W,1,07,1.5,24.6,M,-19.3,M,,0000*50
Next, I used GPSBabel to convert this NMEA file to a GPX file — GPX being a common XML format for representing geographic data:
gpsbabel -i nmea,date=20060710 -o gpx \ -f WalkAroundBlock.txt \ -F WalkAroundBlock.gpx
I named this new file WalkAroundBlock.gpx and each waypoint in this file looks like this:
<trkpt lat="46.236196667" lon="-63.129941667"> <ele>24.600000</ele> <time>2006-07-10T22:32:49Z</time> <fix>3d</fix> <sat>7</sat> <hdop>1.500000</hdop> </trkpt>
Loading this track into GPS Visualizer and making a map of it, here’s what I get:

I made the map just to check and make sure that my GPS traces look something like the route I walked. So far, so good. Next, I use the fantastic gpsPhoto.pl Perl script to magically merge the GPX file’s location information into the photos by matching up the times of the photos:
perl gpsPhoto.pl \ --dir photos/ \ --gpsfile WalkAroundBlock.gpx --timeoffset 10800
Note that gpsPhoto.pl has some dependencies (they’re clearly indicated on the web page for the script) and I had to futz around for about an hour before running the script getting all the dependencies to build on my OS X machine, the big hold-up being expat, which I had to install with fink which needed updating itself before I could proceed.
One I had everything in place, however, everything went off without a hitch, and gpsPhoto.pl returned a series of successful matches:
photos/20060102824.jpg, 2006:07:10 19:32:20, timediff=29 Lat 46.236196667, Lon -63.129941667 - Bearing: 0 - Altitude: 25m
And so on. Once all was finished — it only took a few seconds — I was able to confirm that the location information had been burned into the JPEG files by opening them up in Graphic Converter and looking at the EXIF date (Window \| Show Information). Here’s what it looks like now:

With the location data burned into the photos, it was easy to whip up a quick Google Maps photo browser application to let me see the location of the photos on a map:

Note that once I saw the photos on the map, I realized that I hadn’t synced my camera phone’s clock to the GPS clock, meaning that things were out of sync by about 60 seconds; I corrected the problem by running gpsPhoto.pl again, and adding 60 seconds to the time correction:
perl gpsPhoto.pl \ --dir photos/ \ --gpsfile WalkAroundBlock.gpx --timeoffset 10860
Things are still a little off, partly because the timing still isn’t perfect, and partly because I’m running the GPS receiver without any sort of DGPS assistance, so the accuracy is not what it could be.
If you watch the josm-rawgpstracks tutorial screencast that you can find here on Imi’s website (or on a mirror), you can learn about a neat JOSM feature: the ability to position photographs geographically based on comparing their timestamp to the GPS logs. Which is a pretty neat way to “geocode” photos.
This isn’t rocket science, of course, and the use in JOSM is primarily for the utility it offers in helping to name ways within JOSM. Next I’m off to look for open source tools that will let me merge my GPS trace information with my photos and end up with EXIF data within the photos themselves that indentifies their location.
I’ve continued my GPS-equipped bicycle rides around Charlottetown for the past couple of weeks, and I’ve continued to pour the data I’ve gathered — my “digital bread crumbs” — into OpenStreetMap.
The process of turning GPS points into lines, and then combining lines into streets has been much easier since I started using JOSM — a standaline Java editor for OpenStreetMap data. The OpenStreetMap browser-based editor has proved quite flaky — it’s slow, and inconsistent with what, if any data it returns; JOSM grabs data from the OSM database, lets you edit it and then allows you to upload it, which works very well. The only thing that JOSM is missing compared to the browser editor is the Landsat satellite imagery under the map; this is so “confusing green and red blob”-like for Charlottetown that it’s of questionable use in any case, so it’s not a big deal.
Here’s the data I’ve gathered for Charlottetown shown in the browser-based editor. The yellow dots are my GPS traces, the white lines are streets I’ve created, and the green segments are lines that have yet to be joined into streets:

Here’s the sub-set of the same data in the standaline JOSM editor. The white specs are GPS traces, the red dots are OpenStreetMap nodes and the blue lines are streets:

Finally, here’s what this data looks like on the public OpenStreetMap map (this snapshot is a little out of sync with the edited data) — yellow lines are streets, green segments are “yet to be streets” lines:

You can see this data for yourself at OpenStreetMap using the map viewer right on the front page.
The process of using and understanding JOSM has been made much easier for me by the helpful JOSM screencasts created by the editor’s author, Imi; no open source project should be without such helpful resources!
Want to put a map of Prince Edward Island somewhere on your website? OpenLayers makes it dead simple; just paste in:
<iframe
src="http://openlayers.org/viewer/?center=46.2361,-63.13&zoom=5"
width="500" height="250" scrolling="no"
marginwidth="0" marginheight="0" frameborder="0">
</iframe>
Here’s what you should end up with: