OpenStreetMap Chicago Hack Weekend Report

Last weekend I was in Chicago for the second N-American OSM hack weekend of the year. This one, for me and Serge, was entirely dedicated to MapRoulette. We wanted to get the next generation code as close to ready as possible for release – and we got pretty close I think! Here’s a summary of what we did:

  • Looked at user interface challenges with Tom MacWright, the main architect of the iD editor.
  • Finalized the data model and ORM code.
  • Debugged and improved OAuth authentication code.
  • Discussed and finalized the design for the API.
  • Wrote setup instructions for anyone wanting to deploy MapRoulette (which would mainly be other developers wanting to collaborate on the project)
  • Created an EC2 AMI (ami-995032f0) that has MapRoulette and all dependencies ready to go for quick deployment
  • Created a list of tasks and remaining issues.

We have now gotten to a point where we can share the code and hope to attract more developers, which I think overall is a major milestone.

Here is the public GitHub repository:

To reiterate, the main objectives of this next generation are:

  • Make code and database model more transparent to enable more development collaboration
  • Support for regional challenges
  • Support for working on tasks in a defined area
  • Support for difficulty preferences
  • Enable external challenge providers to submit challenge data through an API
  • Enable linking with OSM accounts to better track user activity and leverage OSM account services such as settings storage

Below is an impression of daytime at the hack weekend:

2013-04-28 14.15.25

..and nighttime:

2013-04-26 23.14.35

Looking back on a fantastic OpenStreetMap hack weekend in Toronto

I am on my way back home from my first visit to Toronto, and my first ever visit to Canada – currently nursing a mild hangover with a Minnesota ale on a 4 hour layover in Minneapolis.

All of this is connected to the second OpenStreetMap Hack Weekend in Toronto I was lucky enough to be able to attend. I had an amazing time! Steve (new!), Serge and I were able to make great progress on MapRoulette, which is of course fantastic, and I thoroughly enjoyed hanging out with old friends and new connections. I want to extend a heartfelt thank you! to everyone who participated, but especially to Richard Weait who has been a magnificent host, and Claus Rinner and Michael Morrish of Ryerson University who made sure we had a comfortable hack space.

Besides some Canadian Rye savvy – hence the current hangover – my main takeaway from this weekend is a renewed motivation to bring MapRoulette to the next level. Not only did we gain a new developer (Steve Singer, of PostgreSQL fame), we also discussed very important architectural challenges and made decisions that will allow us to move forward and make MapRoulette more flexible and extensible and easier to maintain. In the near future, it will be much easier to ‘plug in’ a new challenge, and to run more than one challenge in parallel. While we did write  some of the plumbing for this, the true value of the weekend lies not in getting a lot of code written, but in discussing development face-to-face. We now have a well-defined common operational picture, which will prove invaluable going forward.

Perhaps you would like to learn more about MapRoulette development, or the hack weekend in general? Or maybe you are wondering how you can contribute? Join the Mappy Hour tonight, March 11, at 5:30 PDT / 8:30 EDT, where we will talk about these topics among other things.

New MapRoulette Challenge: Connectivity Bugs

When I presented the previous MapRoulette challenge, Zorro Ways, at State Of The Map US two weeks ago, I knew that it was not going to last us very long. There were only 2800 or so Zorro ways in the US, and those were fixed within days. MapRoulette has been sitting idle since, showing an annoying ‘more coming soon’ message. This eats at me. I was eager to get the next challenge up and running. I have been working on two fronts for MapRoulette challenges. First, I have been working with Telenav to get a reliable, fresh daily serving of connectivity bugs for the US (more on those in a bit). Because I had already designed some PL/PSQL functions to detect those, it was just a matter of getting some server capacity and scripting a nightly run, and Telenav kindly provided both.

Second, I have been in touch with KeepRight creator and maintainer Harald Kleiner to work on an interface from KeepRight to MapRoulette, and we’re getting close. That is really a super exciting step forward for MapRoulette, because KeepRight detects a huge number of map bugs in OpenStreetMap that are perfect for MapRoulette challenges. So once we work out the kinks, we will be able to go live with MapRoulette powered by KeepRight. This will also expand the scope of MapRoulette to the entire world, instead of the U.S. coverage I have been limited to so far.

Connectivity Bugs

So our current challenge is so fix connectivity bugs. Connectivity bugs are ways that end really close to another way (5 meters or closer). The distances are small enough for this type of map bug to not show up on the rendered map, but they are detrimental to routing. There are a lot of them, for many different reasons. Some of the connectivity bugs are human errors, and they are easy to make. Many of them, at least here in the U.S., are a result of TIGER import. You can see them in OSM Inspector as well as in KeepRight.

Let’s look at an example. Here’s how a connectivity bug would would be served up in MapRoulette:

Connectivity Bug in MapRoulette

Connectivity Bug in MapRoulette

Nothing in the map image points to a connectivity issue here. When I hit ‘EDIT IN JOSM’ (or the handy keyboard shortcut ‘e’), the area is loaded into JOSM. (Of course, Potlatch is also an option.)

Connectivity Bug in JOSM at standard zoom

Connectivity Bug in JOSM at standard zoom

Even in JOSM at the same zoom level, there is no apparent issue here. (Experienced JOSM editors will notice the absence of a link node, but that is easy to overlook.) We have to zoom way, way in to identify the issue, an overshoot:

The same connectivity bug in JOSM, visible when zoomed way in.

The same connectivity bug in JOSM, visible when zoomed way in.

These types of errors are easy to fix. JOSM has a ‘Join node to way’ function (shortcut key is ‘j’ by default) that snaps and joins the selected node to the closest way. This only works when the node is sufficiently quite close to the way, so you may want to move the node closer first. Be careful that you don’t join any other unrelated objects together though, like administrative boundaries. This is the situation after the fix:



Easy enough, huh? There’s around 68,000 of these buggers in the U.S. alone (which is what we cover currently) so let’s get fixing!

>>> To MapRoulette <<<

Oh, anyone care to design a cool & appropriate logo for MapRoulette? Submissions to