<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Survey Mapping</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Fri, 19 Mar 2010 00:27:46 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Philip (flip) Kromer</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-436341</link>
		<dc:creator>Philip (flip) Kromer</dc:creator>
		<pubDate>Thu, 15 Jan 2009 14:25:29 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-436341</guid>
		<description>Geonames.org has CC-BY postal codes for dozens of countries, US included:
  http://download.geonames.org/export/zip/

A longer list of free open Geodata sources: &lt;a href=&quot;http://groups.google.com/group/get-theinfo/browse_thread/thread/9c1afb31099ca8fe/e1f1810f7a9a135e?lnk=gst&amp;q=postal#e1f1810f7a9a135e&quot; rel=&quot;nofollow&quot;&gt;Get.Theinfo Google Groups&lt;/a&gt;

When infochimps launches finding this stuff&#039;ll be easy. /selfpimp</description>
		<content:encoded><![CDATA[<p>Geonames.org has CC-BY postal codes for dozens of countries, US included:<br />
  <a href="http://download.geonames.org/export/zip/" rel="nofollow">http://download.geonames.org/export/zip/</a></p>
<p>A longer list of free open Geodata sources: <a href="http://groups.google.com/group/get-theinfo/browse_thread/thread/9c1afb31099ca8fe/e1f1810f7a9a135e?lnk=gst&amp;q=postal#e1f1810f7a9a135e" rel="nofollow">Get.Theinfo Google Groups</a></p>
<p>When infochimps launches finding this stuff&#8217;ll be easy. /selfpimp</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-428259</link>
		<dc:creator>Max</dc:creator>
		<pubDate>Fri, 28 Nov 2008 00:27:26 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-428259</guid>
		<description>Just FYI, the Dutch post code system goes like this:

- Post codes are always made up of 4 digits, an optional space, and 2 letters.
- You can therefore strip out the space and the post code will be quite alright.
- There&#039;s never a leading zero
- The four numbers give you the city and neighbourhood, sometimes the street (depends on how big the city and how long the street is
- The letters give you the final bit about the street, what range the house number is in, and whether it&#039;s even or odd.

Getting the official list (in all kinds of formats) costs you thousands of euros if you go to TPG (the postal service in the Netherlands). There&#039;s also &lt;a href=&quot;http://kvdb.net/projects/6pp/&quot; rel=&quot;nofollow&quot;&gt;a site that tries to build a free, open catalog&lt;/a&gt; (Dutch site). So far they&#039;re close to being 72% complete.

Interesting project!</description>
		<content:encoded><![CDATA[<p>Just FYI, the Dutch post code system goes like this:</p>
<p>- Post codes are always made up of 4 digits, an optional space, and 2 letters.<br />
- You can therefore strip out the space and the post code will be quite alright.<br />
- There&#8217;s never a leading zero<br />
- The four numbers give you the city and neighbourhood, sometimes the street (depends on how big the city and how long the street is<br />
- The letters give you the final bit about the street, what range the house number is in, and whether it&#8217;s even or odd.</p>
<p>Getting the official list (in all kinds of formats) costs you thousands of euros if you go to TPG (the postal service in the Netherlands). There&#8217;s also <a href="http://kvdb.net/projects/6pp/" rel="nofollow">a site that tries to build a free, open catalog</a> (Dutch site). So far they&#8217;re close to being 72% complete.</p>
<p>Interesting project!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Régis Kuckaertz</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-426394</link>
		<dc:creator>Régis Kuckaertz</dc:creator>
		<pubDate>Fri, 21 Nov 2008 16:55:08 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-426394</guid>
		<description>How unfortunate it is to see that less than 30.000 people have taken the time to answer the survey. It&#039;s 10% less than last year. (I assume each file contains as many lines as there were answers, otherwise there would be no duplicate). Eric, what do you think is the reason behind this?</description>
		<content:encoded><![CDATA[<p>How unfortunate it is to see that less than 30.000 people have taken the time to answer the survey. It&#8217;s 10% less than last year. (I assume each file contains as many lines as there were answers, otherwise there would be no duplicate). Eric, what do you think is the reason behind this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kit Grose</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-425692</link>
		<dc:creator>Kit Grose</dc:creator>
		<pubDate>Wed, 19 Nov 2008 02:01:40 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-425692</guid>
		<description>Just to let you know, the Australian Post Office provides a free list of all Aussie postcodes with their suburb and state at:
http://www1.auspost.com.au/postcodes/index.asp?sub=2

If you need geocoding information by postcode (as it appears you do):
http://www.phpandmore.org/2008/06/24/australian-post-code-geo-database/

The latter would be very easy to visualise through Google Maps, since you wouldn&#039;t need any geocoding, just marker placement.</description>
		<content:encoded><![CDATA[<p>Just to let you know, the Australian Post Office provides a free list of all Aussie postcodes with their suburb and state at:<br />
<a href="http://www1.auspost.com.au/postcodes/index.asp?sub=2" rel="nofollow">http://www1.auspost.com.au/postcodes/index.asp?sub=2</a></p>
<p>If you need geocoding information by postcode (as it appears you do):<br />
<a href="http://www.phpandmore.org/2008/06/24/australian-post-code-geo-database/" rel="nofollow">http://www.phpandmore.org/2008/06/24/australian-post-code-geo-database/</a></p>
<p>The latter would be very easy to visualise through Google Maps, since you wouldn&#8217;t need any geocoding, just marker placement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robin</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-414010</link>
		<dc:creator>Robin</dc:creator>
		<pubDate>Wed, 08 Oct 2008 21:06:08 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-414010</guid>
		<description>@Nate - Thanks for the extended UK postal code info, I&#039;ve been searching around for that info for a little while now! Cheers :)</description>
		<content:encoded><![CDATA[<p>@Nate &#8211; Thanks for the extended UK postal code info, I&#8217;ve been searching around for that info for a little while now! Cheers :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-412327</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Wed, 01 Oct 2008 17:55:49 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-412327</guid>
		<description>If anyone is interested in using the Zip Code data as-is, the Perl script available from my previous post reformats most of the US Zip Codes using the sprintf function. With only a few exceptions, this fixes leading zeros and shortens the ZIP+4 Codes:

&lt;code&gt;$line = sprintf(&quot;%05d&quot;, $line);&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>If anyone is interested in using the Zip Code data as-is, the Perl script available from my previous post reformats most of the US Zip Codes using the sprintf function. With only a few exceptions, this fixes leading zeros and shortens the ZIP+4 Codes:</p>
<p><code>$line = sprintf("%05d", $line);</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Meyer</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-412199</link>
		<dc:creator>Eric Meyer</dc:creator>
		<pubDate>Tue, 30 Sep 2008 17:39:14 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-412199</guid>
		<description>Nate, no problem with multiple posts!

You&#039;re probably right about US zip codes-- I&#039;ll go back into the original CSV export to see what&#039;s there.  I did my sorting in Excel, which is annoyingly aggressive about converting text numerics to numbers, complete with leading-zero stripping, so it&#039;s easily possible that&#039;s what happened.

Interesting that you found a batch geocoder that seems to be single-submit under the hood.  I&#039;m beginning to think that single-submit is the only option, and I&#039;ll just have to test with a reduced dataset until I work out a program that can do the whole conversion for me.

scragar, thanks for the pointers.  I may pull some of those but will probably leave most or all of them since they&#039;re good examples of invalid data, and any translator from postcode to region will need to be able to handle invalid data.

Jon, that sort of data would indeed be quite interesting, but we have to be very careful about how much data we associate with these postcodes.  It&#039;s probably no big deal if you&#039;re one of a thousand people in NYC, but it could be a big deal if you&#039;re the only respondent from Rhyl or Ottawa or Des Moines or wherever.  I hope to gain enough experience that I can create those kinds of maps (or the data needed to create said maps) without being too privacy-insensitive.</description>
		<content:encoded><![CDATA[<p>Nate, no problem with multiple posts!</p>
<p>You&#8217;re probably right about US zip codes&#8211; I&#8217;ll go back into the original CSV export to see what&#8217;s there.  I did my sorting in Excel, which is annoyingly aggressive about converting text numerics to numbers, complete with leading-zero stripping, so it&#8217;s easily possible that&#8217;s what happened.</p>
<p>Interesting that you found a batch geocoder that seems to be single-submit under the hood.  I&#8217;m beginning to think that single-submit is the only option, and I&#8217;ll just have to test with a reduced dataset until I work out a program that can do the whole conversion for me.</p>
<p>scragar, thanks for the pointers.  I may pull some of those but will probably leave most or all of them since they&#8217;re good examples of invalid data, and any translator from postcode to region will need to be able to handle invalid data.</p>
<p>Jon, that sort of data would indeed be quite interesting, but we have to be very careful about how much data we associate with these postcodes.  It&#8217;s probably no big deal if you&#8217;re one of a thousand people in NYC, but it could be a big deal if you&#8217;re the only respondent from Rhyl or Ottawa or Des Moines or wherever.  I hope to gain enough experience that I can create those kinds of maps (or the data needed to create said maps) without being too privacy-insensitive.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Weekly Links #20 &#124; GrantPalin.com</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411810</link>
		<dc:creator>Weekly Links #20 &#124; GrantPalin.com</dc:creator>
		<pubDate>Sun, 28 Sep 2008 19:08:21 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411810</guid>
		<description>[...] Survey Mapping Eric Meyer provides an initial glance at the results of the 2008 Web Developer Survey. [...]</description>
		<content:encoded><![CDATA[<p>[...] Survey Mapping Eric Meyer provides an initial glance at the results of the 2008 Web Developer Survey. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411753</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Sun, 28 Sep 2008 10:59:02 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411753</guid>
		<description>While the UK data from Nate is really interesting (I have been reading through it for about an hour) there are a couple of errors I noticed.

1) Plymouth is in Devon and not Cornwall. Thus Devon is underrepresented and Cornwall over-represented in his data.

2) This one is more of nitpick but may be important to anyone using the data. The TS postcodes are incorrectly labelled as Cleveland, Teesside which no longer existed as of 1996. TS no refers to the Tees Valley region with postcodes North of the River Tees being in County Durham and those South of the river being in North Yorkshire.

I think what would be a really interesting mapping is correlate location against earnings and also location against the data on how respondents felt about the business and the economy (the questions on job security and whether business was growing or declining).</description>
		<content:encoded><![CDATA[<p>While the UK data from Nate is really interesting (I have been reading through it for about an hour) there are a couple of errors I noticed.</p>
<p>1) Plymouth is in Devon and not Cornwall. Thus Devon is underrepresented and Cornwall over-represented in his data.</p>
<p>2) This one is more of nitpick but may be important to anyone using the data. The TS postcodes are incorrectly labelled as Cleveland, Teesside which no longer existed as of 1996. TS no refers to the Tees Valley region with postcodes North of the River Tees being in County Durham and those South of the river being in North Yorkshire.</p>
<p>I think what would be a really interesting mapping is correlate location against earnings and also location against the data on how respondents felt about the business and the economy (the questions on job security and whether business was growing or declining).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411655</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Sat, 27 Sep 2008 21:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411655</guid>
		<description>Here is an example using Google Spreadsheet and Maps. Includes files.
http://eniya.com/notebook/2008/09/27/zip-code-latitude-longitude-city-state/</description>
		<content:encoded><![CDATA[<p>Here is an example using Google Spreadsheet and Maps. Includes files.<br />
<a href="http://eniya.com/notebook/2008/09/27/zip-code-latitude-longitude-city-state/" rel="nofollow">http://eniya.com/notebook/2008/09/27/zip-code-latitude-longitude-city-state/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Walton</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411471</link>
		<dc:creator>Nate Walton</dc:creator>
		<pubDate>Fri, 26 Sep 2008 17:04:20 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411471</guid>
		<description>Nice work, Stephen. I didn&#039;t see your post when I wrote my last one. It looks like you&#039;ve got it solved very nicely.</description>
		<content:encoded><![CDATA[<p>Nice work, Stephen. I didn&#8217;t see your post when I wrote my last one. It looks like you&#8217;ve got it solved very nicely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Walton</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411458</link>
		<dc:creator>Nate Walton</dc:creator>
		<pubDate>Fri, 26 Sep 2008 15:22:43 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411458</guid>
		<description>Sorry so many posts; this is a really interesting problem to me. As for getting longitude and latitude data for each zip, I haven&#039;t been able to find a way to do it without separate http requests either. The interface for &lt;a href=&quot;http://batchgeocode.com&quot; rel=&quot;nofollow&quot;&gt;batchgeocode.com&lt;/a&gt; was convenient for this dataset, but judging from the slowness of processing, they&#039;re doing separate requests as well. The thing I do like about that site is the map view, so that you can easily see whether there have been errors in the processing. 

Given these constraints, I might suggest a hybrid approach to the mapping: One thing we can definitely get is the US data, with state only if necessary, but also with geospatial coordinates if we use the 1999 data that Sam referred to. That accounts for over half of the records. We can also get that type of data for other countries (UK, Canada, Australia) that account for most of the responses. If we use local data for these, and then supplement with requested data from Yahoo or Google for the other countries, we should be able to get a pretty complete set of coordinates. Also, for our http lookups, if we send requests for only the unique records that we have (eliminating all duplicates) that should further reduce the number of requests we have to make.</description>
		<content:encoded><![CDATA[<p>Sorry so many posts; this is a really interesting problem to me. As for getting longitude and latitude data for each zip, I haven&#8217;t been able to find a way to do it without separate http requests either. The interface for <a href="http://batchgeocode.com" rel="nofollow">batchgeocode.com</a> was convenient for this dataset, but judging from the slowness of processing, they&#8217;re doing separate requests as well. The thing I do like about that site is the map view, so that you can easily see whether there have been errors in the processing. </p>
<p>Given these constraints, I might suggest a hybrid approach to the mapping: One thing we can definitely get is the US data, with state only if necessary, but also with geospatial coordinates if we use the 1999 data that Sam referred to. That accounts for over half of the records. We can also get that type of data for other countries (UK, Canada, Australia) that account for most of the responses. If we use local data for these, and then supplement with requested data from Yahoo or Google for the other countries, we should be able to get a pretty complete set of coordinates. Also, for our http lookups, if we send requests for only the unique records that we have (eliminating all duplicates) that should further reduce the number of requests we have to make.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411453</link>
		<dc:creator>Stephen</dc:creator>
		<pubDate>Fri, 26 Sep 2008 14:35:12 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411453</guid>
		<description>Here&#039;s a very simple mapping of the results, using Google Charts:
http://banjax.com/archive/2008/09/mapping-the-a-list-apart-surve.html</description>
		<content:encoded><![CDATA[<p>Here&#8217;s a very simple mapping of the results, using Google Charts:<br />
<a href="http://banjax.com/archive/2008/09/mapping-the-a-list-apart-surve.html" rel="nofollow">http://banjax.com/archive/2008/09/mapping-the-a-list-apart-surve.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Walton</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411322</link>
		<dc:creator>Nate Walton</dc:creator>
		<pubDate>Thu, 25 Sep 2008 21:01:07 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411322</guid>
		<description>Here&#039;s the UK portion of the list. I produced this one similar to the last, with a simple PHP function specific to the format of the postal code.

&lt;a href=&quot;http://nkwalton.com/test/ala/uk.txt&quot; rel=&quot;nofollow&quot;&gt;Postcode file (UK only) with region and city listed&lt;/a&gt;

This list includes the regions as well as the cities where that postal district is based.</description>
		<content:encoded><![CDATA[<p>Here&#8217;s the UK portion of the list. I produced this one similar to the last, with a simple PHP function specific to the format of the postal code.</p>
<p><a href="http://nkwalton.com/test/ala/uk.txt" rel="nofollow">Postcode file (UK only) with region and city listed</a></p>
<p>This list includes the regions as well as the cities where that postal district is based.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Walton</title>
		<link>http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comment-411305</link>
		<dc:creator>Nate Walton</dc:creator>
		<pubDate>Thu, 25 Sep 2008 18:19:09 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=949#comment-411305</guid>
		<description>@Brian - I wonder whether the 1999 file is as up to date as the Wikipedia page. Could be the Wikipedia is based on the &#039;99 document...

If you&#039;re just looking to get the zip codes linked with a state, I did that with a PHP function in TextMate. That accounts for over half of the records in the file:

Here&#039;s the document:&lt;a href=&quot;http://nkwalton.com/test/ala/united_states.txt&quot; rel=&quot;nofollow&quot;&gt;Zip code file (U.S. only) with states listed&lt;/a&gt;
and the code: &lt;a href=&quot;http://nkwalton.com/test/ala/usa_textmate_function.txt&quot; rel=&quot;nofollow&quot;&gt;TextMate custom command&lt;/a&gt;

Eric - I think that somewhere along the line a lot of these US zip codes got their leading zeros stripped out. I added them back in for this file.

It looks to me like it will take some attention to each specific country to get the geographic breakdowns for the different postal codes. I&#039;ve gathered postal data on about half of the countries, but it seems to me that getting specific geographic data on a lot of countries will be a lot of work with very little return (i.e. I&#039;m not sure it will make much difference to users whether we break France down into its 100+ geographical regions or not). It might be most useful to break down the largest geographic areas (Canada, Australia, Russia, etc.) and just list the others as countries.

Anyway, here&#039;s the U.S. portion of the file. I&#039;ll see if I have time to do other countries and post them here as well.</description>
		<content:encoded><![CDATA[<p>@Brian &#8211; I wonder whether the 1999 file is as up to date as the Wikipedia page. Could be the Wikipedia is based on the &#8216;99 document&#8230;</p>
<p>If you&#8217;re just looking to get the zip codes linked with a state, I did that with a PHP function in TextMate. That accounts for over half of the records in the file:</p>
<p>Here&#8217;s the document:<a href="http://nkwalton.com/test/ala/united_states.txt" rel="nofollow">Zip code file (U.S. only) with states listed</a><br />
and the code: <a href="http://nkwalton.com/test/ala/usa_textmate_function.txt" rel="nofollow">TextMate custom command</a></p>
<p>Eric &#8211; I think that somewhere along the line a lot of these US zip codes got their leading zeros stripped out. I added them back in for this file.</p>
<p>It looks to me like it will take some attention to each specific country to get the geographic breakdowns for the different postal codes. I&#8217;ve gathered postal data on about half of the countries, but it seems to me that getting specific geographic data on a lot of countries will be a lot of work with very little return (i.e. I&#8217;m not sure it will make much difference to users whether we break France down into its 100+ geographical regions or not). It might be most useful to break down the largest geographic areas (Canada, Australia, Russia, etc.) and just list the others as countries.</p>
<p>Anyway, here&#8217;s the U.S. portion of the file. I&#8217;ll see if I have time to do other countries and post them here as well.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head profile="http://gmpg.org/xfn/1">
<title>meyerweb.com</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://emeyer.myopenid.com/">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="shortcut icon" href="/favicon.ico"><link rel="home" href="http://meyerweb.com/" title="Home" ><link rel="stylesheet" href="http://meyerweb.com/ui/meyerweb.css" type="text/css" media="screen, projection"><link rel="stylesheet" href="http://meyerweb.com/ui/theme.css" type="text/css" media="screen, projection" id="themeLink"><link rel="stylesheet" href="http://meyerweb.com/ui/print.css" type="text/css" media="print"><script src="http://meyerweb.com/ui/addresses.js" type="text/javascript"></script><link rel="stylesheet" href="/ui/wordpress.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/tfe.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/home.css" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric" href="/eric/thoughts/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only technical posts)" href="/eric/thoughts/category/tech/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only personal posts)" href="/eric/thoughts/category/personal/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Distractions" href="/eric/thoughts/recent-links/rss2" />
<link rel="alternate" type="application/rss+xml" title="Excuse of the Day" href="/feeds/excuse/rss20.xml" />
</head>
<body id="www-meyerweb-com" class="hpg">

<div id="sitemast"><h1><a href="/"><span>meyerweb</span>.com</a></h1></div><div id="search"><h4>Exploration</h4><!-- SiteSearch Google --><form method="get" action="http://www.google.com/custom" target="_top"><div><input type="hidden" name="domains" value="meyerweb.com"></input><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb"></input><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="31" maxlength="255" value="" id="sbi"></input><p><input type="radio" name="sitesearch" value="meyerweb.com" checked id="ss1"></input><label for="ss1" title="Search meyerweb.com">meyerweb.com</label><input type="radio" name="sitesearch" value="" id="ss0"></input><label for="ss0" title="Search the Web">Web</label></p><input type="hidden" name="client" value="pub-3772084027748653"></input><input type="hidden" name="forid" value="1"></input><input type="hidden" name="ie" value="ISO-8859-1"></input><input type="hidden" name="oe" value="ISO-8859-1"></input><input type="hidden" name="safe" value="active"></input><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"></input><input type="hidden" name="hl" value="en"></input></div></form><!-- SiteSearch Google --><!-- <form method="get" action="http://www.google.com/custom"><div><input type="submit" name="sa" value="Search"><input type="text" name="q" size="20" maxlength="255" value=""><input type="hidden" name="sitesearch" value="meyerweb.com"></div></form><small><a href="http://www.google.com/search">Powered by Google</a></small> --></div><div id="main"><div class="skipper">Skip to: <a href="#extra">site navigation/presentation</a></div><div class="skipper">Skip to: <a href="#thoughts">Thoughts From Eric</a></div>
<div id="thoughts">


<div class="entry">
<h3><a href="http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/" rel="bookmark" title="Permanent Link: Survey Mapping">Survey Mapping</a></h3>
<ul class="meta">
<li class="date">Tue 23 Sep 2008</li>
<li class="time">1610</li>
<li class="cat"><a href="http://meyerweb.com/eric/thoughts/category/personal/projects/" title="View all posts in Projects" rel="category tag">Projects</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/" title="View all posts in Tech" rel="category tag">Tech</a></li>
<li class="cmt"><a href="http://meyerweb.com/eric/thoughts/2008/09/23/survey-mapping/#comments">21 responses</a></li>
<li></li><li></li></ul>

<div class="text">
<p>
An anonymized copy of the data collected in <a href="http://alistapart.com/articles/survey2008">the 2008 Survey</a> has been turned over to some professional statisticians, as we did last year, and we&#8217;re waiting to hear back from them before moving into writing the full report.  But there&#8217;s no reason we can&#8217;t have a little fun while we wait, right?
</p>
<p>
So, calling all mapping ninjas: here&#8217;s <a href="http://meyerweb.com/eric/data/countries-postcodes.zip">a 136KB zip archive</a> containing two tab-separated text files listing the countries and postcodes supplied by takers of the survey.  Before anyone has a privacy-related aneurysm, though, let me explain how they&#8217;re structured.
</p>
<p>
One of the two files is sorted alphabetically by country, with the postcodes as the second &#8220;column of data&#8221; (it&#8217;s country name, tab, postcode).  The second is the reverse: it&#8217;s sorted alphabetically by postcode, with the country names following each postcode.  This sorting should break any association they might have with the released data set, given that we won&#8217;t be including the postcodes in the released set.  (More on that in a moment.)
</p>
<p>
A word of warning: though I cleaned out some of the more obvious cases of people heaping abuse on us for even daring to ask the question, I can&#8217;t guarantee that the data set is perfectly clean.  There may be drops of bile here and there along with the usual collection of mistyped postcodes.  I know there&#8217;s at least one bit of obvious humor that I chose to leave in, so enjoy that when you find it.
</p>
<p>
We have two reasons to release this data this way at this point.  The first is to see what people do with it&#8212;heatmaps, perhaps, or one of those proportion-distortion maps, or a list of top-ten global postcodes or cities (or both).  Hey, go crazy!  I&#8217;d love to see a number of Google Maps/Yahoo! Maps/OpenMap/whatever mashups with this data.  That would be awesome.
</p>
<p>
The second reason is to ask for help with an API challenge.  Like I said, we&#8217;re not including the postcodes into the released data set.  What I would like to do instead is translate the postcodes into administrative regions (states, provinces, etc.) and put <em>those</em> in the data set.  That way, we can include things like &#8220;Ohio&#8221; and &#8220;British Columbia&#8221; and &#8220;Oaxaca&#8221;&#8212;thus providing a little bit better granularity in terms of geography, which was area of weakness in the 2007 survey.
</p>
<p>
Thanks to reading a couple of articles, I know how to do this for a single postcode.  But how does one do it for 26,457 postcode-and-country combinations without <a href="http://www.developer.com/db/article.php/10920_3621981_2">having to submit every single postcode as a separate request</a>?  I&#8217;ve yet to see an explanation, and maybe there isn&#8217;t one, but I&#8217;d like to know either way.  And please, if someone does come up with a way, please show the work instead of just spitting out the result!  I&#8217;m hoping to learn a few things from the solution, but I obviously can&#8217;t do that without seeing the code.
</p>
<p>
One note: in cases where a postcode isn&#8217;t recognized or some kind of an error is returned, I&#8217;d like to have a little dash or &#8220;ERR&#8221; or something put in the result file.  That way we can get a handle on what percentage of the responses were resolvable.  Thanks.
</p>
<p>
Anyway, map and enjoy!
</p>
</div>

</div>

</div>
<p style="font-size: 90%; text-align: right; margin-top: 0.5em; padding-top: 0;">(If you care, there's even an <a href="/eric/thoughts/page/2/">archive of previous thoughts</a>...)</p>

</div><div id="extra"><div class="panel" id="archipelago"><h4>Identity Archipelago</h4><ul><li><a href="http://flickr.com/photos/meyerweb/" rel="me">Flickr</a></li><li><a href="http://twitter.com/meyerweb/" rel="me">Twitter</a></li><li><a href="http://dopplr.com/traveller/meyerweb">Dopplr</a></li><li><a href="http://www.linkedin.com/in/meyerweb" rel="me">LinkedIn</a></li><li><a href="http://technorati.com/profile/emeyer" rel="me">Technorati</a></li></ul></div><div class="panel" id="pointers"><h4>Projects Elsewhere</h4><ul><li><a href="http://aneventapart.com/">An Event Apart</a></li><li><a href="http://complexspiral.com/">Complex Spiral Consulting</a></li><li><a href="http://www.webassist.com/go/css/emeyer/">CSS Sculptor</a></li><li><a href="http://css-discuss.org/">css-discuss</a></li><li><a href="http://microformats.org/">Microformats</a></li><li><a href="http://s5project.org/">S5</a></li></ul></div><div class="panel" id="tour"><ul><li><a href="http://fray.com/issue3/"><img src="http://fray.com/images/i3c.gif" alt="Fray Contributor (Issue 3: Sex &amp; Death)" /></a></li><!-- <li><a href="http://www.webassist.com/go/css/emeyer/"><img src="/pix/CS_ad_180x109.jpg" alt="CSS Sculptor for Dreamweaver" style="max-width: 100%;" /></a></li> --></ul></div><div class="panel">
<h4>Recently Tweeted</h4>
<p class="more"><a href="http://twitter.com/meyerweb">see more</a></p>
<p>Spent the afternoon manhandling a rototiller whose clutch design was exactly the inverse of anything resembling reasonable or safe. <small>&#8211;tweeted 7 hours, 54 minutes ago</small></p>
</div><div id="sideblog" class="panel">
<h4>Distractions</h4>
<p class="more">
<a href="/eric/thoughts/recent-links/">archive</a>
</p>
<ul>
<li><a href="http://tweetagewasteland.com/2010/03/my-head-is-in-the-cloud/" title="March 18 | &#8220;I sense that my addiction to the realtime stream is only making room for the consumption of a faster stream.&#8221;">My Head is in the Cloud</a> <small>[via <a href="http://daringfireball.net/">John</a>]</small></li>
<li><a href="http://8bitnyc.com/" title="March 17 | All of a sudden I want to establish a mission in Central Park and negotiate with the natives for gold and food.">8-Bit NYC</a></li>
<li><a href="http://www.youtube.com/watch?v=nFicqklGuB0&amp;feature=player_embedded" title="March 12 | Wry comment expressing my appreciation of the creative derivativeness of this video and its uncanny accuracy in mocking common tropes.">Academy Award Winning Movie Trailer</a></li>
<li><a href="http://www.youtube.com/watch?v=414TmP12WAU" title="March 9 | &#8220;Apple juice&#8230; for half price!&#8221;  More like twice PRICELESS.  (Note: If you&#8217;re at work, don your headphones.)">Happy in Paraguay</a> <small>[via <a href="http://unstoppablerobotninja.com/">Ethan</a>]</small></li>
<li><a href="http://www.youtube.com/watch?v=9V5ubAOeOBk&amp;feature=player_embedded" title="February 10 | This is approximately the best thing ever.">U900 -Walk Don&#8217;t Run (Isogabamaware)</a></li>
<li><a href="http://www.456bereastreet.com/archive/201002/sifr_default_css_hides_content_from_at_least_one_screen_reader/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A 456bereastreet %28456 Berea Street%29" title="February 8 | -9999px comes through again, but I really wish we were beyond that kind of thing.">sIFR default CSS hides content from at least one screen reader</a></li>
<li><a href="http://www.macosxhints.com/article.php?story=20100117064356428" title="February 8 | Storing this for future use.">Take a picture with the iSight camera when a folder is opened</a></li>
<li><a href="http://mingle2.com/blog/view/web-developer-mind" title="February 4 | Mostly valid.  (SEE WHAT I DID THERE?)">The Mind of a Web Developer: An Illustrated Diagram</a></li>
<li><a href="http://www.theonion.com/content/news/science_channel_refuses_to_dumb" title="January 28 | &#8220;Punkin Chunkin, for Christ&#8217;s sake&#8230; What more do you people want?&#8221;">Science Channel Refuses To Dumb Down Science Any Further</a></li>
<li><a href="http://www.mailchimp.com/blog/project-omnivore-declassified/" title="January 27 | Sounds like quite a feat.  But I wonder how we&#8217;d feel if Microsoft or Google announced the same kind of thing on their e-mail services.">MailChimp&#8217;s Project Omnivore: Declassified</a></li>
<li><a href="http://www.politifact.com/truth-o-meter/statements/2010/jan/25/carolyn-maloney/congresswoman-says-democratic-presidents-create-mo/" title="January 26 | &#8220;Obviously, luck matters a lot, but when there is a consistent pattern over more than 60 years, it starts to look like more than just luck.&#8221;">Congresswoman says Democratic presidents create more private-sector jobs</a></li>
<li><a href="http://www.ted.com/talks/taylor_mali_what_teachers_make.html" title="January 25 | Truth.">Taylor Mali: What teachers make</a></li>
<li><a href="http://notebook.johnmartz.com/how-websites-work?c=1" title="January 22 | At last, the truth is out and I can stop pretending:  beatific monkeys are what makes it all go.">How websites work</a></li>
</ul>
</div>
<div class="panel" id="advisory">
<div class="guarded">
<a href="http://blogadvisorysystem.com/"><img src="/pix/bas/guarded.png" alt="Blog Advisory System Alert Level: Guarded"></a>
</div>
</div>

<div class="panel" id="excuse">
<h4>The <a href="/feeds/excuse/">excuse of the day</a> is</h4>
<p>Internet 1 traffic is being routed onto Internet 2</p>
</div>

<div class="panel" id="extras">
<h4>Extras</h4>
<ul>
<li><a href="/feeds/">Feeds</a> &#8226;</li>
<li><a href="/eric/faq.html">FAQ</a> &#8226;</li>
<li><a href="/family.html">Family</a></li>
</ul>
</div>

</div>

<div id="navigate">
<h4>Navigation</h4>
<ul id="navlinks">
<li id="archLink"><a href="/eric/thoughts/">Archives</a></li>
<li id="cssLink"><a href="/eric/css/">CSS</a></li>
<li id="toolsLink"><a href="/eric/tools/">Toolbox</a></li>
<li id="writeLink"><a href="/eric/writing.html">Writing</a></li>
<li id="speakLink"><a href="/eric/talks/">Speaking</a></li>
<li id="otherLink"><a href="/other/">Leftovers</a></li>
<li id="aboutsite"><a href="/ui/about.html">About this site</a></li>
</ul>
</div>

<div id="footer">
<p class="sosumi">All contents of this site, unless otherwise noted, are &copy;1995-2008 <strong>Eric A. and Kathryn S. Meyer</strong>.  All Rights Reserved.</p>
<p>"<a href="/eric/thoughts/">Thoughts From Eric</a>" is powered by the &uuml;bercool <a href="http://wordpress.org/">WordPress</a></p>
</div>
</body>
</html>
