Make maps better, together.
Collaborative mapping and the Open Source Way
Traditional software development
* Go to the store and get a floppy disk
* Released every N years
* Very specialized, high cost to reproduce
* Writing software was really, really hard
* Low-level languages, complex problems
…and then the Internet happened
* Updates are immediate (and often automatic)
* Cost to transmit is negligible
* 20 years -> solves all the hard problems
* High level languages, standardized stacks, design patterns
A brief history of the internet
- Everything → HTTP
- XML → JSON
- SOAP → REST
- SAML → OAUTH
- Adobe PDF, Microsoft Word → Markdown
- ESRI Shapefile, Google KML →
GeoJSON, TopoJSON
What we learned
* desktop ≠ internet
* open > closed
* Simple > Complex
* Pragmatic > Perfect
* Dumb format, smart tools
* Easier to upgrade a tool than a standard
* Experimentation is key
Open source isn’t just
hipster nonsense
* WordPress - ~1/4 sites
* Apache - ~40%, + nginx - ~20%
* Android - ~80% of sales
* Linux server - ~40-60%
* Chrome - ~%40
What’s open source?
Open > Closed
* open collaboration
* shared tools, shared data
* demo of whiteouse/petitions
* {"key vocab"=>"repo, user, organization, commits, issues, pull requests, forks, branches"}
But first, a story
data.dc.gov
When I first opened a Shapefile
When I first opened a KML file
Down the Hole…
When I First Opened a GeoJSON file
GeoJSON on GitHub
View, edit, collaborate
* `.geojson`, `.topojson`, `.json` files
* Points, lines, and polygons, oh my!
(the entire GeoJSON spec)
* Clustering over ~1000 markers
* Custom markers
* Identify popups
* Stupid simple embeds
* Gists
Why GeoJSON?
- No API to learn
- No SDK to install
- No license to
- Open & Interoperable
- It’s the Internet
The Process
- Commit a
.geojson
file to GitHub
- ???
So easy this adorable kitten can do it
(oh and also treating data as code)
What about our License Map?
* embeds
* API
View
Edit
Edit GeoJSON
Import via Drag and drop
Save to Gist and GitHub
Collaborate
Pull Request
Who made what change, when?
DC Bars sans TV
GeoJSON Diff
Flu Shot Open Standard
* Philly
* Chicago
* SF
* Mapping for ~9 months, diffs for ~3
* Hosts hundreds of thousands of GeoJSON files
* Served millions of maps (Hockey stick: > 1/4 Mil / month )
* Diffed tens of thousands of changes both proposed and realized
Why GitHub?
- Liberating data
- Democratizing mapping
- Treat data as code
GitHub for software collaboration
* 5M users
* 10k+ government users
* 10M projects
* Bulk of the technology you touch on a daily basis
Git
Petitions.whitehouse.gov
* also project open data
Software documentation
Issues
Contributor modifies
Maintainer reviews
If even the NGA can do it…
How to get started
- Open source some already-published data
- Open source some tools in your data-processing pipeline
- Contribute to an open source project you use
- Non-code: Feedback repos, recipes, where to get lunch near the office
Make maps better, together.
Collaborative mapping and the Open Source Way