hn-classics/_stories/2010/8053032.md

888 lines
38 KiB
Markdown
Raw Permalink Normal View History

---
created_at: '2014-07-18T13:59:28.000Z'
title: The 10:10 Code (2010)
url: http://blog.jgc.org/2010/06/1010-code.html?
author: jgrahamc
points: 117
story_text: ''
comment_text:
num_comments: 29
story_id:
story_title:
story_url:
parent_id:
created_at_i: 1405691968
_tags:
- story
- author_jgrahamc
- story_8053032
objectID: '8053032'
2018-06-08 12:05:27 +00:00
year: 2010
---
2018-02-23 18:19:40 +00:00
[Source](http://blog.jgc.org/2010/06/1010-code.html? "Permalink to John Graham-Cumming: The 10:10 Code")
# John Graham-Cumming: The 10:10 Code
![][1]
# [ John Graham-Cumming ][2]
## Monday, June 14, 2010
### The 10:10 Code
Four years ago I wrote about a way to [encode][3] the latitude and longitude of any point on the Earth's surface to 10m of accuracy with a 10 character code. Apart from a modification to the way the check digit is calculated, the code remains unchanged.
The idea is this: instead of giving people addresses, or coordinates, you can give them something like a post code for any point on the Earth's surface. This can then be entered into a GPS device and decoded. Thus a business can provide its 10:10 code and know that people will be able to find it.
I was reminded of this, this weekend when I took the [Eurotunnel][4] to France. On their web site they say:
![][5]
Now those latitude and longitude values are very hard to enter, and, although in the UK post codes are pretty accurate, they are not universal (e.g. in France and the US there's no equivalent). In contrast the 10:10 code is global.
Here's some JavaScript code that calculates the 10:10 code:
The 10:10 code of the Eurotunnel terminal in the UK is: MED 8FV N9K5
PS. Many people have pointed out that there are existing systems like this, and existing patents. As far as I am aware, none of them include a check digit. For example, there's the [Military Grid Reference System][6], the [Natural Area Code][7], this Microsoft [patent][8] and [Geohash][9]. The check digit is critical because it reduces operator error when entering a location on a GPS device.
Posted by John Graham-Cumming at [15:35][10] [ ![][11] ][12]
[Email This][13][BlogThis!][14][Share to Twitter][15][Share to Facebook][16][Share to Pinterest][17]
Labels: [pseudo-randomness][18]
#### 30 comments:
![][19][ ][20]
[Mário Valente][20] said...
:
You should propose this as worldwide postal code...
\-- MV
: [ 4:29 PM ][21] [ ![][22] ][23]
![][24][ ][25]
[Mark Russell][25] said...
:
It'd be nice if the likes of Google maps (or my phone's Navigation or Maps app) understood it.
... and, if there were a web service like bitly for location that put me on the map of my choice in the right place.
... and, as an extension to that idea, if QR barcodes could link to the service.
: [ 5:52 PM ][26] [ ![][22] ][27]
![][28][ ][29]
[Ross][29] said...
:
Probably shouldn't use both "8" and "B" or "D" and "0"...
: [ 6:58 PM ][30] [ ![][22] ][31]
![][32][ ][33]
[Bob][33] said...
:
What about using both lower- and upper-case?
: [ 7:14 PM ][34] [ ![][22] ][35]
![][36][ ][37]
[R][37] said...
:
This looks like simple arithmetic.
I would suggest two basic improvements...
1) Take into account that at higher latitudes, longitude need not be encoded as accurately.
2) don't combine latitude and longitude. Keep them separate, with a space in between. That way, a human reader can tell that two encoded points are near each other.
: [ 7:17 PM ][38] [ ![][22] ][39]
![][40][ ![][41]][42]
[John][42] said...
:
What a great idea for a google maps mashup!
: [ 7:27 PM ][43] [ ![][22] ][44]
![][45][ ][46]
[Charlie M][46] said...
:
this code is made less readable by use of single character variable names. :( Is it too much to expand them please?
: [ 7:47 PM ][47] [ ![][22] ][48]
![][49][ ][50]
[TextLogic Inc][50] said...
:
Do you have reverse ? i.e. given the string splits to proper lan/lat ?
: [ 8:21 PM ][51] [ ![][22] ][52]
![][53][ ][54]
[Kaveh Shahbazian][54] said...
:
Very interesting!
Q1: Where in the code the radius 10m is specified? Can we produce code with 500m radius?
Q2: Does this mean all points in a radius of 10m distance of a specific point will produce the same code?
: [ 9:07 PM ][55] [ ![][22] ][56]
![][57][ ][58]
[qbxk][58] said...
:
cool stuff, two comments tho, first i translated your code to perl and couldn't get the same answer, so i then tried it in js and i got the same answer i got in perl!
so i think that the location at 51.09559,1.12207 maps to MEQ N6G 7NY5
secondly, c %= 29 you probably meant c %= base
: [ 10:18 PM ][59] [ ![][22] ][60]
![][57][ ][58]
[qbxk][58] said...
:
cool stuff, two comments tho, first i translated your code to perl and couldn't get the same answer, so i then tried it in js and i got the same answer i got in perl!
so i think that the location at 51.09559,1.12207 maps to MEQ N6G 7NY5
secondly, c %= 29 you probably meant c %= base
: [ 10:20 PM ][61] [ ![][22] ][62]
![][63][ ][64]
[jdeisenberg][64] said...
:
It's a clever idea, but it's too clever for a stupid person like me. I look at "MED 8FV N9K5," and it's not immediately obvious to me that it describes a point north of the equator and east of 0 longitude.
: [ 11:09 PM ][65] [ ![][22] ][66]
![][67][ ][68]
[joe.marcato][68] said...
:
Here is another way to make the resolution approximately consistent across the globe.
Enclose Earth into a cube. Divide each face of the cube into a 8,000,000 by 8,000,000 grid. Project the location onto the cube. The square number is your code. There are 3.84E14 squares on the cube: that's also 10 characters in base 29 but it gives you a resolution better than 1 meter on the ground anywhere in the world.
: [ 12:21 AM ][69] [ ![][22] ][70]
![][71][ ][72]
[RJ][72] said...
:
It would be nice (though technically impossible) to use a system where it's easier to calculate the distance between two points.
Perhaps putting a grid over a Winkel Tripel projection would work better
: [ 5:19 AM ][73] [ ![][22] ][74]
![][75][ ][76]
[Yvo][76] said...
:
I made "GLOCO" a while ago, it encodes lang/lat to a code of 5 up to 10 characters long, since takes into account populair locations in the worlds. Hence city centres have shorter codes, compared to deserts. (www.gloco.com)
: [ 6:49 AM ][77] [ ![][22] ][78]
![][79][ ![][80]][81]
[Mukesh Agarwal][81] said...
:
Hey Nice Idea man.. But I propose either to use alphabets only or remove some confusing (look a likes )LIke: (1 and I,l),(0,o,O),(B,8),(b,6)
: [ 8:13 AM ][82] [ ![][22] ][83]
![][84][ ![][85]][86]
[tjp][86] said...
:
I like this, even though practically it's not very usable. Yahoos WOEID doesn't do error checking, but does a few things that make it v powerful:
\- takes accuracy into consideration
\- brings some sort of place hierarchy
\- helps when the geocode of a place changes (earthquakes etc)
It's a long way for WOEIDS to become something that can be put into a GPS device, but using smart metadata is always better than, er, not that smart.
London is 44418.
http://developer.yahoo.com/geo/geoplanet/guide/concepts.html
: [ 8:33 AM ][87] [ ![][22] ][88]
![][89][ ][90]
[Jonas Hogstrom][90] said...
:
I translated the code to C#, and I got MEQ N6G 7NY5 as well for the coordinates for the terminal coordinates. The SOC-algoritm from 2006 and the 1010-algorithm differs both in the calculation of the checksum and the alphabet used. the SOC-version uses a 32 character alphabet, and the 1010-version uses only 29 characters. My C# implementation (including exe) for both SOC and 1010 twoway conversions can be found at http://bit.ly/SOC1010
When I converted the 1010-coordinate back to latlong for the eurotunnel terminal, I got a difference of 11.1m from the original coordinates...
: [ 9:10 AM ][91] [ ![][22] ][92]
![][93][ ][94]
[rob][94] said...
:
So far so good but once encoded how does anyone else use it? Need a decode routine ideally with a link to Gmaps. Apart from that I agree with others who suggest eliminating ambiguous characters like I 1 l
: [ 11:44 AM ][95] [ ![][22] ][96]
![][97][ ][98]
[suzie][98] said...
: This comment has been removed by a blog administrator.
: [ 11:45 AM ][99] [ ![][22] ][100]
![][101][ ][102]
[Clay Shannon][102] said...
:
I am not a scientist, but rather a "jack of all arts" (photography, music, and writing).
I "proposed" a similar way of uniquely encoding locations in my utopian novel "The Vavilovian Conspiracy"
Free to download from www.lulu.com/blackbirdcraven
: [ 2:26 PM ][103] [ ![][22] ][104]
![][105][ ][106]
[id.php][106] said...
:
Not a bad idea (and the checksum is nifty!). However, the [GeoHash][9] scheme has two important properties that 10:10 does not:
* arbitrary precision (to nearest 5 bits)
* lat/lon are interleaved
Bit interleaving in particular is useful because a geohash which is the prefix of another contains the other in its bounding box. Two geohashes which share prefixes are near each other. And so on.
This is great for search (e.g. google) and for use as a single database key for a location.
: [ 5:47 PM ][107] [ ![][22] ][108]
![][109][ ][110]
[technogeist][110] said...
:
Talk about a serendipitous finding.
I've been thinking of, and attempting to create something like this, to extend the concept universally unique identifiers. (UUIDs)
: [ 6:38 PM ][111] [ ![][22] ][112]
![][113][ ][114]
[William T][114] said...
:
Agree with id.php - any geo-code needs to have the ability to be humanly interpreted - so if you see two codes you can immediately tell if they are close to each other. Geohash has that ability since the left-hand characters encode enclosing (larger) areas.
: [ 2:48 AM ][115] [ ![][22] ][116]
![][117][ ][118]
[mrjbq7][118] said...
:
And how about a [version][119] in Factor!
By the way, I also get "MEQ N6G 7NY5".
: [ 2:47 AM ][120] [ ![][22] ][121]
![][122][ ][123]
[Nick Berardi][123] said...
:
The US has something similar but it is not used. In the US it is called ZIP+4 and the +4 such as
12345-1234
Identifies a specific property and can be reversed to an address with the right database. However the ZIP+4 is very rarely used.
: [ 12:08 PM ][124] [ ![][22] ][125]
![][126][ ][127]
[sneakatdatavibe][127] said...
:
We don't need a twelfth system for encoding lat/lon tuples. Pick an existing one and start using it.
Currently, we have:
\- decimal lat/lon
\- d/m/s lat/lon
\- UTM ( http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system )
\- MGRS ( http://en.wikipedia.org/wiki/Military_grid_reference_system )
\- Geohash ( http://geohash.org/ )
\- "Natural Area Code" ( http://en.wikipedia.org/wiki/Natural_Area_Code )
Please, suggesting something like this and encouraging people to implement it is like coming out with a device that only charges over micro-USB. Just... don't.
: [ 1:00 PM ][128] [ ![][22] ][129]
![][130][ ][131]
[gking86][131] said...
:
Maybe it's my military experience, but I find UTM or MGRS the easiest.
: [ 1:40 PM ][132] [ ![][22] ][133]
![][134][ ][135]
[Holtwick][135] said...
:
If you like it even shorter try my modified Geohash algorithm I used in my twittori.com project. http://blog.twittori.com/about-link-format/
: [ 2:43 PM ][136] [ ![][22] ][137]
![][138][ ][139]
[Kenn Green][139] said...
:
May someday every place on earth has its own barcode, visitors can learn its history from [scanning its qr code][140].
: [ 8:14 AM ][141] [ ![][22] ][142]
[Post a Comment][143]
#### [][144][
[Newer Post][145] [Older Post][146] [Home][2]
Subscribe to: [Post Comments (Atom)][147]
## Pages
* [Home][2]
[ ![][148] ][149]
## Blog Archive
* [ ►  ][150] [ 2017 ][151] (4)
* [ ►  ][150] [ May ][152] (1)
* [ ►  ][150] [ April ][153] (3)
* [ ►  ][150] [ 2016 ][154] (11)
* [ ►  ][150] [ November ][155] (1)
* [ ►  ][150] [ September ][156] (1)
* [ ►  ][150] [ July ][157] (2)
* [ ►  ][150] [ June ][158] (1)
* [ ►  ][150] [ May ][159] (3)
* [ ►  ][150] [ April ][160] (1)
* [ ►  ][150] [ March ][161] (2)
* [ ►  ][150] [ 2015 ][162] (11)
* [ ►  ][150] [ November ][163] (1)
* [ ►  ][150] [ July ][164] (2)
* [ ►  ][150] [ May ][165] (1)
* [ ►  ][150] [ April ][166] (5)
* [ ►  ][150] [ March ][167] (1)
* [ ►  ][150] [ January ][168] (1)
* [ ►  ][150] [ 2014 ][169] (4)
* [ ►  ][150] [ November ][170] (2)
* [ ►  ][150] [ July ][171] (1)
* [ ►  ][150] [ June ][172] (1)
* [ ►  ][150] [ 2013 ][173] (42)
* [ ►  ][150] [ September ][174] (4)
* [ ►  ][150] [ August ][175] (1)
* [ ►  ][150] [ July ][176] (4)
* [ ►  ][150] [ June ][177] (2)
* [ ►  ][150] [ May ][178] (6)
* [ ►  ][150] [ April ][179] (12)
* [ ►  ][150] [ March ][180] (5)
* [ ►  ][150] [ February ][181] (2)
* [ ►  ][150] [ January ][182] (6)
* [ ►  ][150] [ 2012 ][183] (100)
* [ ►  ][150] [ December ][184] (3)
* [ ►  ][150] [ November ][185] (6)
* [ ►  ][150] [ October ][186] (8)
* [ ►  ][150] [ September ][187] (7)
* [ ►  ][150] [ August ][188] (6)
* [ ►  ][150] [ July ][189] (10)
* [ ►  ][150] [ June ][190] (10)
* [ ►  ][150] [ May ][191] (7)
* [ ►  ][150] [ April ][192] (12)
* [ ►  ][150] [ March ][193] (12)
* [ ►  ][150] [ February ][194] (12)
* [ ►  ][150] [ January ][195] (7)
* [ ►  ][150] [ 2011 ][196] (149)
* [ ►  ][150] [ December ][197] (7)
* [ ►  ][150] [ November ][198] (17)
* [ ►  ][150] [ October ][199] (5)
* [ ►  ][150] [ September ][200] (17)
* [ ►  ][150] [ August ][201] (6)
* [ ►  ][150] [ July ][202] (16)
* [ ►  ][150] [ June ][203] (15)
* [ ►  ][150] [ May ][204] (7)
* [ ►  ][150] [ April ][205] (9)
* [ ►  ][150] [ March ][206] (12)
* [ ►  ][150] [ February ][207] (21)
* [ ►  ][150] [ January ][208] (17)
* [ ▼  ][150] [ 2010 ][209] (234)
* [ ►  ][150] [ December ][210] (19)
* [ ►  ][150] [ November ][211] (14)
* [ ►  ][150] [ October ][212] (31)
* [ ►  ][150] [ September ][213] (37)
* [ ►  ][150] [ August ][214] (19)
* [ ►  ][150] [ July ][215] (23)
* [ ▼  ][150] [ June ][216] (26)
* [A quite hackable poll][217]
* [The iGlove][218]
* [Archive of my NewsTilt stories][219]
* [An interview with me about The Geek Atlas][220]
* [The greatest hotel socket collection... ever][221]
* [What's wrong with Flash Cookies?][222]
* [Lots of domains are using crackable DKIM RSA keys][223]
* [Tribute to Alan Turing by a Second World War WREN][224]
* [UI editing is a professional job][225]
* [Duodecimal][226]
* [The BBC needs to fix its "Most Popular Stories Now...][227]
* [The Elevator Button Problem][228]
* [A final reply about awarding a Knighthood to Alan ...][229]
* [Facebook's DKIM RSA key should be crackable][230]
* [Your last name contains invalid characters][231]
* [10:10 Code FAQ][232]
* [The 10:10 Code][233]
* [Calendar Geeks][234]
* [Off to Bengaluru][235]
* [Don't be ashamed to ask for business][236]
* [How to write a successful blog post][237]
* [How to write a "Malcolm Gladwell Bestseller" (an M...][238]
* [Offline HTML5 apps need a way to be installed: the...][239]
* [Imagine there's no PowerPoint (it isn't hard to do...][240]
* [How to sleep on a long haul flight][241]
* [Sun, sand, sea and... science][242]
* [ ►  ][150] [ May ][243] (8)
* [ ►  ][150] [ April ][244] (11)
* [ ►  ][150] [ March ][245] (11)
* [ ►  ][150] [ February ][246] (15)
* [ ►  ][150] [ January ][247] (20)
* [ ►  ][150] [ 2009 ][248] (146)
* [ ►  ][150] [ December ][249] (24)
* [ ►  ][150] [ November ][250] (12)
* [ ►  ][150] [ October ][251] (14)
* [ ►  ][150] [ September ][252] (19)
* [ ►  ][150] [ August ][253] (21)
* [ ►  ][150] [ July ][254] (6)
* [ ►  ][150] [ June ][255] (18)
* [ ►  ][150] [ May ][256] (14)
* [ ►  ][150] [ April ][257] (4)
* [ ►  ][150] [ March ][258] (7)
* [ ►  ][150] [ February ][259] (5)
* [ ►  ][150] [ January ][260] (2)
* [ ►  ][150] [ 2008 ][261] (61)
* [ ►  ][150] [ December ][262] (7)
* [ ►  ][150] [ November ][263] (3)
* [ ►  ][150] [ October ][264] (2)
* [ ►  ][150] [ September ][265] (3)
* [ ►  ][150] [ July ][266] (3)
* [ ►  ][150] [ June ][267] (4)
* [ ►  ][150] [ May ][268] (5)
* [ ►  ][150] [ April ][269] (5)
* [ ►  ][150] [ March ][270] (10)
* [ ►  ][150] [ February ][271] (13)
* [ ►  ][150] [ January ][272] (6)
* [ ►  ][150] [ 2007 ][273] (64)
* [ ►  ][150] [ December ][274] (4)
* [ ►  ][150] [ November ][275] (6)
* [ ►  ][150] [ October ][276] (6)
* [ ►  ][150] [ September ][277] (2)
* [ ►  ][150] [ August ][278] (3)
* [ ►  ][150] [ July ][279] (6)
* [ ►  ][150] [ June ][280] (8)
* [ ►  ][150] [ May ][281] (3)
* [ ►  ][150] [ April ][282] (4)
* [ ►  ][150] [ March ][283] (10)
* [ ►  ][150] [ February ][284] (6)
* [ ►  ][150] [ January ][285] (6)
* [ ►  ][150] [ 2006 ][286] (61)
* [ ►  ][150] [ December ][287] (3)
* [ ►  ][150] [ November ][288] (2)
* [ ►  ][150] [ October ][289] (6)
* [ ►  ][150] [ September ][290] (12)
* [ ►  ][150] [ July ][291] (5)
* [ ►  ][150] [ June ][292] (8)
* [ ►  ][150] [ May ][293] (4)
* [ ►  ][150] [ April ][294] (11)
* [ ►  ][150] [ March ][295] (1)
* [ ►  ][150] [ February ][296] (2)
* [ ►  ][150] [ January ][297] (7)
* [ ►  ][150] [ 2005 ][298] (5)
* [ ►  ][150] [ December ][299] (3)
* [ ►  ][150] [ November ][300] (2)
[ ![][148] ][301]
| -----|
|
|
|
Simple theme. Powered by [Blogger][302].
[ ![][148] ][303]
[1]: http://3f1b7d85f36292d0.cloudflareresolve.com/cdn-cgi/ping
[2]: http://blog.jgc.org/
[3]: http://blog.jgc.org/2006/07/simple-code-for-entering-latitude-and.html
[4]: http://eurotunnel.com/
[5]: https://4.bp.blogspot.com/_dt4ksD7hyDE/TBZNNY16EJI/AAAAAAAAABM/1mk9aqoz4hE/s400/Picture+3.png
[6]: https://en.wikipedia.org/wiki/Military_grid_reference_system
[7]: https://en.wikipedia.org/wiki/Natural_Area_Code
[8]: http://www.freepatentsonline.com/y2005/0023524.html
[9]: https://en.wikipedia.org/wiki/Geohash
[10]: http://blog.jgc.org/2010/06/1010-code.html "permanent link"
[11]: https://resources.blogblog.com/img/icon18_edit_allbkg.gif
[12]: https://www.blogger.com/post-edit.g?blogID=19303585&postID=4931502966041055457&from=pencil "Edit Post"
[13]: https://www.blogger.com/share-post.g?blogID=19303585&postID=4931502966041055457&target=email "Email This"
[14]: https://www.blogger.com/share-post.g?blogID=19303585&postID=4931502966041055457&target=blog "BlogThis!"
[15]: https://www.blogger.com/share-post.g?blogID=19303585&postID=4931502966041055457&target=twitter "Share to Twitter"
[16]: https://www.blogger.com/share-post.g?blogID=19303585&postID=4931502966041055457&target=facebook "Share to Facebook"
[17]: https://www.blogger.com/share-post.g?blogID=19303585&postID=4931502966041055457&target=pinterest "Share to Pinterest"
[18]: http://blog.jgc.org/search/label/pseudo-randomness
[19]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Mário Valente"
[20]: https://www.blogger.com/profile/07503054029744676257
[21]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276532954675#c3183699739325784182 "comment permalink"
[22]: https://resources.blogblog.com/img/icon_delete13.gif
[23]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=3183699739325784182 "Delete Comment"
[24]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Mark Russell"
[25]: https://www.blogger.com/profile/00729310152255304465
[26]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276537922145#c1366060025607805719 "comment permalink"
[27]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=1366060025607805719 "Delete Comment"
[28]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Ross"
[29]: https://www.blogger.com/profile/03102537746945848242
[30]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276541903972#c6059617400363113343 "comment permalink"
[31]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=6059617400363113343 "Delete Comment"
[32]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Bob"
[33]: https://www.blogger.com/profile/03993346102131984913
[34]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276542895786#c3409448018331021764 "comment permalink"
[35]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=3409448018331021764 "Delete Comment"
[36]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "R"
[37]: https://www.blogger.com/profile/07220331362504408621
[38]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276543075731#c4301833126180558130 "comment permalink"
[39]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=4301833126180558130 "Delete Comment"
[40]: https://img1.blogblog.com/img/blank.gif "John"
[41]: http://1.bp.blogspot.com/_JQxl3RUkXxs/SauGgu6B9II/AAAAAAAAABI/3qG1mzs6GUU/S45-s35/4.png
[42]: https://www.blogger.com/profile/16830974448481473911
[43]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276543622311#c2378128191482182679 "comment permalink"
[44]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=2378128191482182679 "Delete Comment"
[45]: http://lh3.googleusercontent.com/Rw_wdkZHfDXh8tDEBFF1Q3aSS_nDE-gMVWNfOHb7a2nIp2XuWAmJyGISHv9akZE%3Ds35 "Charlie M"
[46]: https://openid.aol.com/tsuru9
[47]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276544828407#c7487744555637489849 "comment permalink"
[48]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=7487744555637489849 "Delete Comment"
[49]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "TextLogic Inc"
[50]: https://www.blogger.com/profile/02734496225199087482
[51]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276546889533#c5936414541540782864 "comment permalink"
[52]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=5936414541540782864 "Delete Comment"
[53]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Kaveh Shahbazian"
[54]: https://www.blogger.com/profile/05485737252432475634
[55]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276549673001#c7942278548713532784 "comment permalink"
[56]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=7942278548713532784 "Delete Comment"
[57]: http://lh3.googleusercontent.com/Rw_wdkZHfDXh8tDEBFF1Q3aSS_nDE-gMVWNfOHb7a2nIp2XuWAmJyGISHv9akZE%3Ds35 "qbxk"
[58]: http://qbxk.myopenid.com/
[59]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276553925464#c259603690608522348 "comment permalink"
[60]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=259603690608522348 "Delete Comment"
[61]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276554004946#c6339481859674017450 "comment permalink"
[62]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=6339481859674017450 "Delete Comment"
[63]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "jdeisenberg"
[64]: https://www.blogger.com/profile/09245885099842348284
[65]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276556951477#c4231385289761956103 "comment permalink"
[66]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=4231385289761956103 "Delete Comment"
[67]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "joe.marcato"
[68]: https://www.blogger.com/profile/15106263077292926733
[69]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276561297861#c9183563122272612993 "comment permalink"
[70]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=9183563122272612993 "Delete Comment"
[71]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "RJ"
[72]: https://www.blogger.com/profile/02670818691531643189
[73]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276579152149#c4823621374243418014 "comment permalink"
[74]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=4823621374243418014 "Delete Comment"
[75]: http://lh3.googleusercontent.com/Rw_wdkZHfDXh8tDEBFF1Q3aSS_nDE-gMVWNfOHb7a2nIp2XuWAmJyGISHv9akZE%3Ds35 "Yvo"
[76]: http://www.yvoschaap.com/
[77]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276584551696#c2373791477836749381 "comment permalink"
[78]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=2373791477836749381 "Delete Comment"
[79]: https://img1.blogblog.com/img/blank.gif "Mukesh Agarwal"
[80]: http://1.bp.blogspot.com/_RhOJQPUN8fA/Saqqmpr6k0I/AAAAAAAABWo/oEjXTrr99G4/S45-s35/4610678.jpg
[81]: https://www.blogger.com/profile/13624500752975897338
[82]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276589586024#c2696610398578929413 "comment permalink"
[83]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=2696610398578929413 "Delete Comment"
[84]: https://img1.blogblog.com/img/blank.gif "tjp"
[85]: http://4.bp.blogspot.com/_6PHjFDtWN34/SZcsGVNhGJI/AAAAAAAAAOI/cwbJ6fwEfgk/S45-s35/0cdd01b.jpg
[86]: https://www.blogger.com/profile/12083964571676056519
[87]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276590789942#c5585256259364481653 "comment permalink"
[88]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=5585256259364481653 "Delete Comment"
[89]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Jonas Hogstrom"
[90]: https://www.blogger.com/profile/14446248078283464928
[91]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276593033023#c1524944302811617347 "comment permalink"
[92]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=1524944302811617347 "Delete Comment"
[93]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "rob"
[94]: https://www.blogger.com/profile/16371884351052413651
[95]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276602282542#c8879200507453433718 "comment permalink"
[96]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=8879200507453433718 "Delete Comment"
[97]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "suzie"
[98]: https://www.blogger.com/profile/13202707705028393886
[99]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276602358118#c7911837882578394034 "comment permalink"
[100]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=7911837882578394034 "Delete Comment"
[101]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Clay Shannon"
[102]: https://www.blogger.com/profile/14042572446848270795
[103]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276611965460#c7325189652583954514 "comment permalink"
[104]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=7325189652583954514 "Delete Comment"
[105]: http://lh3.googleusercontent.com/Rw_wdkZHfDXh8tDEBFF1Q3aSS_nDE-gMVWNfOHb7a2nIp2XuWAmJyGISHv9akZE%3Ds35 "id.php"
[106]: http://tcbxyz.com/id.php
[107]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276624025618#c5440171568879402179 "comment permalink"
[108]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=5440171568879402179 "Delete Comment"
[109]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "technogeist"
[110]: https://www.blogger.com/profile/01068125592799647333
[111]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276627101617#c8145623534454834925 "comment permalink"
[112]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=8145623534454834925 "Delete Comment"
[113]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "William T"
[114]: https://www.blogger.com/profile/13285679538054366979
[115]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1276656538291#c827773362484087321 "comment permalink"
[116]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=827773362484087321 "Delete Comment"
[117]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "mrjbq7"
[118]: https://www.blogger.com/profile/06842721076008035602
[119]: https://re-factor.blogspot.com/2010/07/where-am-i-1010-code.html
[120]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1278470851270#c6412020273983283356 "comment permalink"
[121]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=6412020273983283356 "Delete Comment"
[122]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Nick Berardi"
[123]: https://www.blogger.com/profile/17336501930281432984
[124]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1308571683454#c868776921571649140 "comment permalink"
[125]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=868776921571649140 "Delete Comment"
[126]: http://lh3.googleusercontent.com/Rw_wdkZHfDXh8tDEBFF1Q3aSS_nDE-gMVWNfOHb7a2nIp2XuWAmJyGISHv9akZE%3Ds35 "sneakatdatavibe"
[127]: http://sneak.datavibe.net/
[128]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1308574838207#c7074065400592367230 "comment permalink"
[129]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=7074065400592367230 "Delete Comment"
[130]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "gking86"
[131]: https://www.blogger.com/profile/15916267376611155322
[132]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1308577222049#c2925928860200610484 "comment permalink"
[133]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=2925928860200610484 "Delete Comment"
[134]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Holtwick"
[135]: https://www.blogger.com/profile/01713816547553389233
[136]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1308580981571#c2289325109370262527 "comment permalink"
[137]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=2289325109370262527 "Delete Comment"
[138]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35 "Kenn Green"
[139]: https://www.blogger.com/profile/10258588836685944469
[140]: http://www.barcodelib.com/net_barcode_reader/barcodes/qrcode.html
[141]: http://blog.jgc.org/2010/06/1010-code.html?showComment=1420618498477#c3021939740705533198 "comment permalink"
[142]: https://www.blogger.com/delete-comment.g?blogID=19303585&postID=3021939740705533198 "Delete Comment"
[143]: https://www.blogger.com/comment.g?blogID=19303585&postID=4931502966041055457
[144]:
[145]: http://blog.jgc.org/2010/06/1010-code-faq.html "Newer Post"
[146]: http://blog.jgc.org/2010/06/calendar-geeks.html "Older Post"
[147]: http://blog.jgc.org/feeds/4931502966041055457/comments/default
[148]: https://resources.blogblog.com/img/icon18_wrench_allbkg.png
[149]: //www.blogger.com/rearrange?blogID=19303585&widgetType=PageList&widgetId=PageList1&action=editWidget&sectionId=sidebar-right-1 "Edit"
[150]: javascript:void(0)
[151]: http://blog.jgc.org/2017/
[152]: http://blog.jgc.org/2017/05/
[153]: http://blog.jgc.org/2017/04/
[154]: http://blog.jgc.org/2016/
[155]: http://blog.jgc.org/2016/11/
[156]: http://blog.jgc.org/2016/09/
[157]: http://blog.jgc.org/2016/07/
[158]: http://blog.jgc.org/2016/06/
[159]: http://blog.jgc.org/2016/05/
[160]: http://blog.jgc.org/2016/04/
[161]: http://blog.jgc.org/2016/03/
[162]: http://blog.jgc.org/2015/
[163]: http://blog.jgc.org/2015/11/
[164]: http://blog.jgc.org/2015/07/
[165]: http://blog.jgc.org/2015/05/
[166]: http://blog.jgc.org/2015/04/
[167]: http://blog.jgc.org/2015/03/
[168]: http://blog.jgc.org/2015/01/
[169]: http://blog.jgc.org/2014/
[170]: http://blog.jgc.org/2014/11/
[171]: http://blog.jgc.org/2014/07/
[172]: http://blog.jgc.org/2014/06/
[173]: http://blog.jgc.org/2013/
[174]: http://blog.jgc.org/2013/09/
[175]: http://blog.jgc.org/2013/08/
[176]: http://blog.jgc.org/2013/07/
[177]: http://blog.jgc.org/2013/06/
[178]: http://blog.jgc.org/2013/05/
[179]: http://blog.jgc.org/2013/04/
[180]: http://blog.jgc.org/2013/03/
[181]: http://blog.jgc.org/2013/02/
[182]: http://blog.jgc.org/2013/01/
[183]: http://blog.jgc.org/2012/
[184]: http://blog.jgc.org/2012/12/
[185]: http://blog.jgc.org/2012/11/
[186]: http://blog.jgc.org/2012/10/
[187]: http://blog.jgc.org/2012/09/
[188]: http://blog.jgc.org/2012/08/
[189]: http://blog.jgc.org/2012/07/
[190]: http://blog.jgc.org/2012/06/
[191]: http://blog.jgc.org/2012/05/
[192]: http://blog.jgc.org/2012/04/
[193]: http://blog.jgc.org/2012/03/
[194]: http://blog.jgc.org/2012/02/
[195]: http://blog.jgc.org/2012/01/
[196]: http://blog.jgc.org/2011/
[197]: http://blog.jgc.org/2011/12/
[198]: http://blog.jgc.org/2011/11/
[199]: http://blog.jgc.org/2011/10/
[200]: http://blog.jgc.org/2011/09/
[201]: http://blog.jgc.org/2011/08/
[202]: http://blog.jgc.org/2011/07/
[203]: http://blog.jgc.org/2011/06/
[204]: http://blog.jgc.org/2011/05/
[205]: http://blog.jgc.org/2011/04/
[206]: http://blog.jgc.org/2011/03/
[207]: http://blog.jgc.org/2011/02/
[208]: http://blog.jgc.org/2011/01/
[209]: http://blog.jgc.org/2010/
[210]: http://blog.jgc.org/2010/12/
[211]: http://blog.jgc.org/2010/11/
[212]: http://blog.jgc.org/2010/10/
[213]: http://blog.jgc.org/2010/09/
[214]: http://blog.jgc.org/2010/08/
[215]: http://blog.jgc.org/2010/07/
[216]: http://blog.jgc.org/2010/06/
[217]: http://blog.jgc.org/2010/06/quite-hackable-poll.html
[218]: http://blog.jgc.org/2010/06/iglove.html
[219]: http://blog.jgc.org/2010/06/archive-of-my-newstilt-stories.html
[220]: http://blog.jgc.org/2010/06/interview-with-me-about-geek-atlas.html
[221]: http://blog.jgc.org/2010/06/greatest-hotel-socket-collection-ever.html
[222]: http://blog.jgc.org/2010/06/whats-wrong-with-flash-cookies.html
[223]: http://blog.jgc.org/2010/06/lots-of-domains-are-using-crackable.html
[224]: http://blog.jgc.org/2010/06/tribute-to-alan-turing-by-second-world.html
[225]: http://blog.jgc.org/2010/06/ui-editing-is-professional-job.html
[226]: http://blog.jgc.org/2010/06/duodecimal.html
[227]: http://blog.jgc.org/2010/06/bbc-needs-to-fix-its-most-popular.html
[228]: http://blog.jgc.org/2010/06/elevator-button-problem.html
[229]: http://blog.jgc.org/2010/06/final-reply-about-awarding-knighthood.html
[230]: http://blog.jgc.org/2010/06/facebooks-dkim-rsa-key-should-be.html
[231]: http://blog.jgc.org/2010/06/your-last-name-contains-invalid.html
[232]: http://blog.jgc.org/2010/06/1010-code-faq.html
[233]: http://blog.jgc.org/2010/06/1010-code.html
[234]: http://blog.jgc.org/2010/06/calendar-geeks.html
[235]: http://blog.jgc.org/2010/06/off-to-bengaluru.html
[236]: http://blog.jgc.org/2010/06/dont-be-ashamed-to-ask-for-business.html
[237]: http://blog.jgc.org/2010/06/how-to-write-successful-blog-post.html
[238]: http://blog.jgc.org/2010/06/how-to-write-malcolm-gladwell.html
[239]: http://blog.jgc.org/2010/06/offline-html5-apps-need-way-to-be.html
[240]: http://blog.jgc.org/2010/06/imagine-theres-no-powerpoint-it-isnt.html
[241]: http://blog.jgc.org/2010/06/how-to-sleep-on-long-haul-flight.html
[242]: http://blog.jgc.org/2010/06/sun-sand-sea-and-science.html
[243]: http://blog.jgc.org/2010/05/
[244]: http://blog.jgc.org/2010/04/
[245]: http://blog.jgc.org/2010/03/
[246]: http://blog.jgc.org/2010/02/
[247]: http://blog.jgc.org/2010/01/
[248]: http://blog.jgc.org/2009/
[249]: http://blog.jgc.org/2009/12/
[250]: http://blog.jgc.org/2009/11/
[251]: http://blog.jgc.org/2009/10/
[252]: http://blog.jgc.org/2009/09/
[253]: http://blog.jgc.org/2009/08/
[254]: http://blog.jgc.org/2009/07/
[255]: http://blog.jgc.org/2009/06/
[256]: http://blog.jgc.org/2009/05/
[257]: http://blog.jgc.org/2009/04/
[258]: http://blog.jgc.org/2009/03/
[259]: http://blog.jgc.org/2009/02/
[260]: http://blog.jgc.org/2009/01/
[261]: http://blog.jgc.org/2008/
[262]: http://blog.jgc.org/2008/12/
[263]: http://blog.jgc.org/2008/11/
[264]: http://blog.jgc.org/2008/10/
[265]: http://blog.jgc.org/2008/09/
[266]: http://blog.jgc.org/2008/07/
[267]: http://blog.jgc.org/2008/06/
[268]: http://blog.jgc.org/2008/05/
[269]: http://blog.jgc.org/2008/04/
[270]: http://blog.jgc.org/2008/03/
[271]: http://blog.jgc.org/2008/02/
[272]: http://blog.jgc.org/2008/01/
[273]: http://blog.jgc.org/2007/
[274]: http://blog.jgc.org/2007/12/
[275]: http://blog.jgc.org/2007/11/
[276]: http://blog.jgc.org/2007/10/
[277]: http://blog.jgc.org/2007/09/
[278]: http://blog.jgc.org/2007/08/
[279]: http://blog.jgc.org/2007/07/
[280]: http://blog.jgc.org/2007/06/
[281]: http://blog.jgc.org/2007/05/
[282]: http://blog.jgc.org/2007/04/
[283]: http://blog.jgc.org/2007/03/
[284]: http://blog.jgc.org/2007/02/
[285]: http://blog.jgc.org/2007/01/
[286]: http://blog.jgc.org/2006/
[287]: http://blog.jgc.org/2006/12/
[288]: http://blog.jgc.org/2006/11/
[289]: http://blog.jgc.org/2006/10/
[290]: http://blog.jgc.org/2006/09/
[291]: http://blog.jgc.org/2006/07/
[292]: http://blog.jgc.org/2006/06/
[293]: http://blog.jgc.org/2006/05/
[294]: http://blog.jgc.org/2006/04/
[295]: http://blog.jgc.org/2006/03/
[296]: http://blog.jgc.org/2006/02/
[297]: http://blog.jgc.org/2006/01/
[298]: http://blog.jgc.org/2005/
[299]: http://blog.jgc.org/2005/12/
[300]: http://blog.jgc.org/2005/11/
[301]: //www.blogger.com/rearrange?blogID=19303585&widgetType=BlogArchive&widgetId=BlogArchive1&action=editWidget&sectionId=sidebar-right-1 "Edit"
[302]: https://www.blogger.com
[303]: //www.blogger.com/rearrange?blogID=19303585&widgetType=Attribution&widgetId=Attribution1&action=editWidget&sectionId=footer-3 "Edit"
[*[15:35]: 2010-06-14T15:35:00Z