Mapblue
Mapblue maps likely political persuasions using data from the US census and
results from the General Social Survey
(GSS).
Technology
Mapblue's backend and census data loading program is written in
Go. The frontend is written in JavaScript and employs the
Google Maps API. We use PostgreSQL for its excellence and for
PostGIS.
We used Stata to perform the regression analysis on
various demographic characteristics.
WARNING!!!
TL;DR: Use Go 1.3, even the betas.
There is a bug in Go 1.2 where database/sql ignores calls to
SetMaxOpenConns. database/sql uses connection polling such that every
query uses a different connection (if possible), and the limit is set by
SetMaxOpenConns. But, if those calls are ignored, load_census_data will
quickly butt up against PostgreSQL's configured connection limit and the
program will fail.
Limitations
The decennial census holds data down to the block level, which is an extreme
level of granularity. However, the tradeoff is that the census asks only the
most cursory of demographic questions, putting a ceiling on map accuracy.
Mapblue is currently a proof-of-concept, and we've therefore restricted the
usable map to Indiana (our home state). Other than a lack of resources
(servers with large amounts of fast storage aren't cheap), nothing prevents the
other states from being added other than a few assumptions made in the census
data loading program -- which can easily be fixed.
Possibilities
Professional campaign software pulls data from myriad sources; Mapblue could do
this as well, but only to a limited extent (we don't have the resources to
canvass or purchase large banks of information).
Authors
Charlie & Sam Gunyon wrote this.