This Blog Is Not For Reading

A blog, just like any blog, only more so

  • Subscribe

  • Categories

  • RSS Bob Jonkman’s Microblog

    • New note by bobjonkman 12 June 2019
      Discrimination against atheists goes to BC Human Rights Tribunal: #Atheism /cc: @indi
    • bobjonkman repeated a notice by davehunt 9 June 2019
      RT @davehunt !joke Yesterday, I ate a clock. It was time consuming.
    • Favorite 9 June 2019
      bobjonkman favorited something by davehunt: !joke Yesterday, I ate a clock. It was time consuming.
    • New note by bobjonkman 2 June 2019
      Starting up a @LibreOffice Users Group in #Waterloo Region. Launching with the help of the KW #NonProfit #SysAdmin group:
    • New note by bobjonkman 2 June 2019
      Those of you with an interest in digital #Privacy and #Irony will appreciate this...
    • Favorite 26 May 2019
      bobjonkman favorited something by hubert: Congratulations and good luck!
    • Favorite 26 May 2019
      bobjonkman favorited something by indi: Congratulations! Already leaning Green in 2019.
    • New note by bobjonkman 26 May 2019
      Apparently, #Gardening is the practice of making things that want to die, grow, and taking the things that want to grow, and killing them.
    • bobjonkman repeated a notice by fasaandrew1879 21 May 2019
      RT @fasaandrew1879 Money is how people with no talent keep score.
    • Favorite 21 May 2019
      bobjonkman favorited something by fasaandrew1879: Money is how people with no talent keep score.

OpenDataDay Hackathon at Kwartzlab

Posted by Bob Jonkman on 27th February 2013

Open Data Waterloo Region


On International OpenDataDay four teams of hackers from OpenDataWR gathered at Kwartzlab to work on Food Premise Inspection Data, modelling new transit routes and route changes with GTFS data, improving the server for the Catchr transit app, a proof-of-concept pushbutton app for Android, and creating a Get Map button for OpenStreetMap in the Thunderbird Lightning add-in.

Hackers at Kwartzlab OpenDataDay Hackathon at Kwartzlab. Clockwise: Koo (back to camera), Ralph, Michael, Mike, Brett, Jonathan. Missing: Darcy, William, Katherine, Bob.


William and I worked on the Get Map button. Although we had hoped to create some working code, we got only as far as making a mock-up of Lightning’s Edit Event screen:

Screenshot of Thunderbird Lightning Edit Event screen
Lightning “Edit Event” screen, showing the new “Get Map” button


The first hurdle we ran into is that Lightning source code is kept in a Mercurial repository. Although William was familiar with Perforce (another code revision system), I haven’t used Mercurial until now. And the repository contained all of Thunderbird, Firefox, SeaMonkey, and the Mozilla addins. We certainly didn’t want to clone the entire Mozilla code base! So William found the Lightning tarball, which I unpacked in a new folder. This let us poke around the source files to find where our new code should go.

Then we found that Lightning isn’t straight Javascript, it’s mostly XUL. XUL is close enough to XHTML, CSS and DTD files that we could figure out what needed to be done. But we had a limited amount of time, and I didn’t want to spend it waiting for source code to build. So I created a new profile in Thunderbird, installed a fresh copy of the Lightning add-in, and we hacked at the installed files directly. This gave us instant feedback on the changes we made, just by restarting Thunderbird and running Lightning. Some of the changes were in plain text files, but others needed to be made to files in JAR format. One of those was the localized language file. We weren’t sure which language file we were using, en-GB or en-US. Of course, we picked the wrong one to start with, and spend maybe two hours trying to debug a misleading error message about a missing entity definition while we were working on the wrong file.

But it all turned out OK in the end. Now we need to take the work we did on the installed files and replicate it on the source files from the Mercurial repository, properly build Lightning from source, and offer our changes to the Mozilla Calendar project. And, once we’ve got it working, we’ll make the changes available on this site too.

–Bob and William.

Tags: , , , , , , , , , , , , , , , , , , , ,
Posted in code, FLOSS, Open Data, Software | Comments Off on OpenDataDay Hackathon at Kwartzlab

How To Use OpenStreetMap with Thunderbird’s “Get Map” button

Posted by Bob Jonkman on 9th October 2012

Thunderbird’s address book has a “Get Map” button to show an address location on a map. By default, Thunderbird uses Google Maps to display a location. Wouldn’t it be nice to use OpenStreetMap in Thunderbird instead? Here’s how!



OpenStreetMap uses Nominatim to search for and display a location. The Wiki tells us the URL query is processed left-to-right, and the example shows the address elements from greatest to least resolution:,+birmingham&format=xml&polygon=1&addressdetails=1



The Thunderbird Knowledgebase for Mail and News settings gives us the following address-related parameters:

Substitution variables:
@A1: address, part 1
@A2: address, part 2
@CI: city
@ST: state
@ZI: zip code
@CO: country

Now we combine the two in Thunderbird’s configuration file prefs.js:

user_pref("mail.addr_book.mapit_url.format", ",@A2,@CI,@ST,@CO");

If you prefer not to edit the pref.js file, here’s a step-by-step procedure to do it with the graphical interface.

If you’re using Linux, select Edit, Preferences from the Thunderbird menu. On Thunderbird for Windows select Tools, Options. Click on the Advanced toolbar button, then the General tab.

Screenshot of the Preferences window, Advanced tab

Click on the Config Editor… button.

Screenshot of advanced configuration warning

Click on the I’ll be careful, I promise! button.

Screenshot of Thunderbird advanced configuration window

Type mapit in the Search field,

Screenshot showing the mail.addr_book.mapit_url.format setting

Double-click on the line for the mail.addr_book.mapit_url.format parameter.

Screenshot of input dialogue

Delete what’s there, and type,@A2,@CI,@ST,@CO

Screenshot of input box with OSM value

Click OK, close the about:config window, and close the Preferences window.

Now we need to find an address book entry with enough data to generate a map.

From the Thunderbird menu, select Tools, Address Book, and double-click on an entry. Click New Contact if there’s nobody in your address book (and you can enter your own address).

Screenshot showing address book general info entry form

Click on the Private or Work tab to show the screen for address entry.

Screenshot showing address book work info entry form

At minimum, fill in the Country field. Adding State/Province, City and Address will improve the resolution of the map. If you do fill in higher resolution fields (Address or City) then you also need to fill in the lower-resolution fields (State/Province and Country), or the Nominatim search won’t work.

Note that the Nominatim URL query doesn’t include the @ZI variable, so the ZIP/Postal Code field isn’t used to create the map.

When all the data is entered, click OK.

Screenshot of Thunderbird Address Book showing Bob Jonkman

With any address field filled in, the address book entry now displays a Get Map button.

Go ahead, click it!

Screenshot of OpenStreetMap

And there we have it! An OpenStreetMap of the address in the Thunderbird address book.

If you’ve done this, or have suggestions for improving these instructions please let me know in the comments or by e-mail at


All screenshots taken by Bob Jonkman, and freely available for re-use (CC0CC0).

The new OpenStreetMap logo by Ken Vermette from, used under a Creative Commons LicenseCC BY-SA license.

The Thunderbird Logo and Wordmark are used according to the Mozilla Foundation Visual Identity Guidelines for Thunderbird.

Maps © OpenStreetMap contributors, CC BY-SA

Tags: , , , , , , , , , , , , ,
Posted in FLOSS, Google Free, How To | Comments Off on How To Use OpenStreetMap with Thunderbird’s “Get Map” button

Better Tag Cloud