There’s an xkcd for that! (GeoHash: A Spontaneous Adventure Generator app)
(Christmas GPS by xkcd)
I’ve been a very avid iPhone user since 2008, ever since then it has been an extension of my arm and brain. It was my first mobile phone and my excitement over having access to the internet wherever I go never wore off. I tried out lots of different apps on every topic that I could think if, I loved hearing “There’s an app for that”. I used it as a ruler, a flashlight, a graphic calculator and in the early days, a way to show people how awesome this device was. But my favorite app isn’t any of the complicated and well-thought out popular apps that I had used, it is the GeoHash app made by Casey Cady in 2008.
Before revealing what Geohashing is, I’d first like to talk about xkcd, the comic that the idea emerged from. xkcd is a webcomic created by Randall Munroe, it is “a webcomic of romance, sarcasm, math, and language.” It is probably the most well-known and appreciated comic on the web. In fact, on different internet forums and communities, you’ll probably see a comment that says “There’s an xkcd for that!” with a link to an xkcd comic about whatever subject that is being discussed. The comic itself has accomplished many things and got its fans to accomplish even more, it has huge influence and I really urge you to check out the various influences that the comic has had on its readers (and on e.g. YouTube or Python).
Considering the fact that much of its user base is people who actually get jokes about maths and computer science, sometimes the writer leaves little cryptographic adventures for them in a strip.
On March 26th, 2007 the xkcd strip Dream Girl had a guy talking about his dream in which a girl grabs him and whispers a stream of numbers into his ear, when he wakes up he remembers the numbers and realizes that they were coordinates; a place and a time. So when the day comes, he goes to the place and “it turns out wanting something doesn’t make it real.” That was, of course, a kind of depressing strip, but what followed it was nothing short of amazing. Fans of the strip realized that the day mentioned in the strip was in the not-so-distant future and the coordinates pointed to a park in Cambridge, MA (where Randall Munroe, the creator of the comic lives), so in a few months thousands of people (including Randall Munroe) gathered there and ended up having a great time doing things that only people who travel to a park based on a webcomic would enjoy (Here is a photo album, only one of the hundreds that you can find by Googling “Dream Girl meetup xkcd).
In comic #426 on 21st of May 2008, xkcd introduced Geohashing: “Geohashing is a method for finding an effectively random location nearby and visiting it: a Spontaneous Adventure Generator. Every day, the algorithm generates a new set of coordinates for each 1°×1° latitude/longitude zone (known as a graticule) in the world. The coordinates can be anywhere — in the forest, in a city, on a mountain, or even in the middle of a lake! Everyone in a given region gets the same set of coordinates relative to their graticule.” The tooltip text for the comment read: “Saturday is game night.” The algorithm presented in the comic uses a cryptographic hash (MD5), which gives the same output in response to same inputs, but even a slightly different input will result in a different, and most importantly, seemingly unrelated output, so it is random. The algorithm in the comic results in giving a location that is unpredictable in advance (you need the day’s DOW opening), close to you (because you also provide it with your coordinates) and the people living in your area will all get the same output.
xkcd provided a browser-based implementation of this, but an xkcd fan went ahead and wrote a mobile app for it, which makes sense, considering the fact that this is a coordinate-based adventure, so not many people will have smart phones who can run such a browser-based app, but probably will have their smart phones with them. There is also a Geohashing Wiki, where people share their stories, photos and earn badges based on their geohashing adventures. When I first started geohashing, the app wasn’t around yet, so my profile page on the wiki states that “I use the excellent sense of direction of Tom [a friend I used to geohash with] when it comes to locating the geohashes.”
The app itself is very simple, it takes your GPS data automatically and locates the day’s geohash locations for you on a map, it is simple and leads to great hikes and adventures. I haven’t geohashed in years, but thinking about a mobile app for this week’s assignment and looking at the apps on my iPhone, I remembered how much fun I had geohashing (even though I never met any other xkcd fans in my geohashing locations) and I might even spend a weekend in Amsterdam doing it again.