Title text: Saturday is game night
| This explanation may be incomplete or incorrect: explain terminology used in determining location (ie mp5).|
If you can address this issue, please edit the page! Thanks.
The algorithm is built in a way that:
- Makes it impossible to plan a meeting in advance - because of the Dow.
- Changes every day.
- Gathers people that are nearby - everyone within the same 1°×1° grid square gets the same position.
The algorithm works as follows:
- Take the current date in the format yyyy-mm-dd- and append the most recent opening value for the Dow Jones Industrial Average.
- Pass this sting through the MD5 algorithm.
- Divide the hash value into two 16 character halves, and convert each half to a decimal.
- Take the integer portions of your current current coordinates and append the decimal hash values.
MD5 is a cryptographic hashing algorithm, and converts plaintext data into a seemingly random 128-bit (32 character) string. A hashing algorithm should have three main properties: it is non-reversible (you cannot generate the plaintext data from the hash), a given sample of data will always produce the same hash value, and two different samples of data will never produce the same hash value. It has since been shown that MD5 does not posses this last property.
Originally intended as a joke, there are people which do geohashing regularly. Please see the link to the xkcd wiki above.
- Date (example): 2005-05-26
- That date's (or most recent) DOW opening: 10458.68
- [Concatenate, with a hyphen: 2005-05-26-10458.68]
- md5: db9318c2259923d08b672cb305440f97
- [Split it up into two pieces:]
- 0.db9318c2259923d0, 0.8b672cb305440f97
- To decimal: 0.857713..., 0.544544...
- Your location (example): 37.421542, -122.085589
- [Combine integer part of location with fractional part of hash:]
- Destination Coordinates: 37.857713, -122.544544
- Sample Implementation: http://xkcd.com/geohashing/
- In response to comic 353: Python, the Python developers implemented the module
antigravityin version 2.7+. This module contains a reference geohashing function.