Main Page
Welcome to the GeoHashing Community Wiki. Geohashing is a Spontaneous Adventure Generator, brought to you by XKCD. If you are already familiar with GPS and XKCD, then proceed onwards!
Contents
What is this?
XKCD comic #426 contains an algorithm that generates random coordinates across the country1 every day.
These coordinates can be used as destinations for adventures, à la Geocaching. They can also be used for local meetups.
For a little more interactive discussion consider joining the #geohashing IRC channel on Foonetic.
1. Europe/Africa/Asia date handling still under discussion, see the talk page for proposed standard.
How it works
Play with the coordinate calculator here: http://xkcd.com/geohashing
Every day, the algorithm generates a new set of coordinates for every region. They are randomly placed -- they could be in the forest, in a city, or on a mountain[citation needed]. You can use this wiki to document the coordinates (geohashes) you've been to.
Unless you can accurately predict the stock market, you can't figure out what the coordinates will be ahead of time. You can first calculate a weekday's coordinates at about 9:30 AM (Eastern), and on Friday morning you can calculate the coordinates for each day that weekend.
If you go on Saturday afternoons, you might encounter other xkcd readers. Bring games! ...or you might not. Bring books!
Absolutely do not litter. However, creating some kind of a marker out of nearby materials (i.e. cairn of stones, blair-witch-style 'stick figures', etc) is acceptable/encouraged[citation needed].
When the coordinate falls somewhere dangerous or illegal to reach, use your judgment. If the coordinates are in an obviously unreachable place (e.g., ocean), the meetup is postponed until a better day. Alternatively, rent a boat and win the Water Geohash achievement.
Official Meetup
The official xkcd meetups happen every Saturday afternoon at 4:00 PM (local destination time). If the coordinates for your area are in the ocean, a military base, or somewhere otherwise unreachable, that meetup is of course postponed. Unless, of course, you own a boat, are a soldier at said military base, or are James Bond. If you can, record who's there, take pictures, and post them here.
Implementation
A sample interactive coordinate calculator can be found here: [1] A reference implementation is available here: view download
A python implementation:
import md5, datetime, struct, urllib, re, sys date = datetime.date.today() djia = urllib.urlopen(date.strftime("http://irc.peeron.com/xkcd/map/data/%Y/%m/%d")).read() if djia.find('404 Not Found') >= 0: sys.exit(sys.stderr.write("Dow Jones not available yet.\n")) sum = md5.new("%s-%s" % (date, djia)).digest() print struct.unpack(">Q", sum[0:8])[0] / (2.**64), struct.unpack(">Q", sum[8:16])[0] / (2.**64)
There is also a Python package xkcd.geohash
which is independent of the interactive coordinate calculator (but uses Google Finance as well).
A shell script implementation:
#!/bin/zsh DOW=$(wget -qO- http://irc.peeron.com/xkcd/map/data/$(date +%Y/%m/%d)) [[ "$DOW" != +([0-9.]) ]] && echo "DOW not available yet." && exit 1 MD5=$(echo -n "$(date +%Y-%m-%d)-$DOW"|md5sum|cut -d' ' -f 1|tr a-f A-F) echo "$1$(echo 10k16i0.${MD5:0:16}p|dc), $2$(echo 10k16i0.${MD5:16}p|dc)"
If you're looking to code your own utilities and need a source for the Dow Jones Industrial Average for a day, NuclearDog has set up a mySQL backed page to query the value that automatically updates hourly. Details on this service (and others) is available at Dow Jones Industrial Average.
Alternative geohash location suggester
Yet another implementation in Python is here as well. It does the same as the ones above but also gives "validation" information. Lets you know if the geohash location is under water and thus if its a valid place to go party. Using this it attempts to suggest the "best" alternative geohash by checking all neighbouring grid locations. I'll add more terrain recognition if people like it. A webservice to access it can be found JSON Web Service. The code is over here Source Code
All the errors seem to be fixed now. Doesn't try giving you locations if there is no DOW and made the image recognition stuff work a bit better too, enjoy! :)
Bugs There are a few, it needs a few refreshes to get the whole tagging right. It also has trouble guessing the terrain type occationally. Refreshing it makes it work but its a problem im looking into, have a look at the code and help if you can :)
-- SinJax
GeoRSS feed
You can subscribe to a feed (in GeoRSS format) that will give you updates on a daily basis. Updates include the "best guess" address of the location as well as the specific latitude/longitude coordinates.
http://atlas.freshlogicstudios.com/Features/Experiments/Xkcd/Xkcd.ashx?Latitude=38&Longitude=-91
For example, here's the GeoRSS geohash for St. Louis.
This GeoRSS feed is used to power the Atlas geohash implementation.
Atom feed
You can subscribe to a feed that will give you updates on a daily basis:
http://staticfree.info/geohash/atom/LAT,LON
For example, here's the Atom Geohash for Boston.
Just put your coordinates in, subscribe and you'll be ready to go!
k4 implementation
Here's an implementation in k4, a vector-programming (i.e., self-obfuscating) language that seems to me to be very true to the spirit of XKCD. The following shell script takes the graticule as an argument, uses standard standard unix tools to retrieve the current Dow opening price, and returns a URL for a Google map to the the upcoming Saturday's meetup. It assumes the q executable is in your PATH.
#!/bin/sh test $# -eq 2 || exit 1 dow=`curl -s 'http://finance.google.com/finance?cid=983582'| \ egrep -o '<span id="ref_983582_op">[^<]+</span>'| \ sed -r 's/.*>(.*)<.*/\1/'|tr -d ,` q -lat $1 -lon $2 -dow $dow<<"EOF" \ (.q.set').(!:;,/)@\:.Q.opt .z.x; h:.Q.n,6#.Q.A;c:16 xexp'-:'1+!16 u:"http://maps.google.com/maps?q=" d:.q.ssr[$.z.D+7-.q.mod[.z.D]7;".";"-"] s:0N 16#,/$-15!"-"/:(d;dow);l:(lat;lon) -1@u,"+"/:l,'1_'$sum'(h?/:.q.upper s)*\:c; \\ EOF
For example, here's New York as of 2008-05-23:
% gh 40 -74 http://maps.google.com/maps?q=40.126648+-74.5475331
N.B., this was written on a Friday; I make no guarantee that it will produce useful results when run on any other day of the week (though Saturdays will probably work).
Adavies42 20:50, 23 May 2008 (UTC)
Active Graticules
See Active Graticules for a list of graticules with active users in them.
Recent Expeditions
- 2008-05-26 -- The coordinates for Monday, May 26th are available (no trading -- Memorial Day).
- 2008-05-25 -- The coordinates for Sunday, May 25th are available.
- 2008-05-24 -- The coordinates for Saturday, May 24th are available. Convenient city graticules in the U.S. include: San Antonio, Cleveland, Portland, and Baltimore.
- 2008-05-23 -- The coordinates for Friday, May 23rd are available.
- 2008-05-22 -- The coordinates for Thursday, May 22nd are available.
- 2008-05-22 39 -105 -- This geohash has been reached in the very active Denver graticule.
- 2008-05-22 32 -117 -- This coordinate in the San Diego, California area was reached by Somnivore.
- 2008-05-22 42 -89 -- This geohash was reached in the Stoughton, Wisconsin graticule by Alric.
- 2008-05-22 40 -96 -- This geohash was reached in the Lincoln, NE graticule by Spike and crew.
- 2008-05-22 44 -93 -- This geohash was reached in the Southern Minneapolis, MN graticule by Chris and Abi.
- 2008-05-21 -- The coordinates for Wednesday, May 21st are available.
- 2008-05-21 42 -71 -- Randall and cousin Annuska reached the Boston coordinates and photographed a spider.
- 2008-05-21 54 -2 -- Nick reached the Carlisle coordinates.
- 2008-05-17
- 2008-05-17 37 -122 -- Dan, Emad, and Randall reached the San Francisco coordinates in a successful test.
- 2008-02-24
- 2008-02-24 45 -122 -- NoTerminal and Drache reached this point as part of an early test while coming up with the algorithm.
See the Expedition Archives for older events.
Today's Sites
2008-05-23 -- The coordinates for Friday, May 23rd are available. [citation needed]
Next Saturday
2008-05-24 -- The coordinates for Saturday, May 24th has been published
See TimeandDate.com for Dow opening time in local time zones.
Note that complications may arise due to timezones - not to mention both spatial and temporal abnormalities. (I.e. Individual results may vary.)
"Bugs"*
Due to the relative start locations used, if you happen to live close to a coastal region you may require a boat in order to successfully reach the calculated coordinates.
In addition, due to the relative start locations used, you may require a passport to successfully reach the calculated coordinates.
- * Bugs is in quote marks due to the fact that it is not an error, just an additional challenge, if you need additional equipment to reach the indicated location. In theory one would expect the ability to reach the indicated destination with naught but a map/GPS unit (and the internet).