OpenStreetMap Technology Now & Future /Tom MacWright
bit.ly/sotmus
123421 gpslib-ru doroga tv Lost GPX Traces sc_auto_import norcTracks GPSies_com -jha- yasu747 AkMeR sprok RomaniaTracks mfvl MAXimall OldIvantey Johnny Carlsen Eugene120 Nikolya Roman_GRE Andrey Tolstoy AHTOH osm-belarus Ben Alban DevineMe dolphinpix Chip Chef chnav RodrigoMoya Gregory Williams *Martin* blaz John68 Petter Reinholdtsen blackadder docsam malenki amck sonk Teddy73 VK1RE RandalSchwartz Tallguy MichaelCollinson AlexAR Nahainec kao Toi Aleksey Ovchinnikov alex-map NLCanvec NLCanvec NLCanvec CorineBH CorineBH CorineBH azub mcheckimport czechreg Pierre Gagné Pierre Gagné mcheckimport TexasNHD azub CanvecImports DarkSwan_Import CanvecImports sammuell_imports u_kubota TexasNHD TexasNHD Hjart osapon osapon drijvis azubimport Pierre Gagné yamasan DarkSwan_Import bdustan IENC-Import nodekiller alenmahovic Felis Pimeja drijvis Константин Коцев geodreieck4711 sammuell_imports Heinz_V slpt doocky soranokawa_import pnorman_reverts soranokawa azub Ycarus Heinz_V Plop76_imports Heinz_V hotelsierra
95%
5%
Software
Functional Software
WHAT IT IS
oh my god there is too much
# i won't bite!
def index
    unless STATUS == :database_readonly or
      STATUS == :database_offline
      session[:location] ||=
        OSM::IPLocation(request.env['REMOTE_ADDR'])
    end
end
OSM is a lot of stuff
OSM is seriously a lot of stuff
From: Steve Coast steve@asklater.com
Date: Fri, 28 Jul 2006 21:41:39 +0000 (+0000)
Subject: beginning of osm on rails
X-Git-Tag: live~3349
X-Git-Url: https://git.openstreetmap.org

beginning of osm on rails
(2 minute history*) for most of this i wasn't there
Some Slow Ruby Renderer → Osmarender
Osmarender → Mapnik
the winningest renderer
OpenStreetMap MapQuest Stamen MapBox
SVN → GitHub
github.com/ openstreetmap/ openstreetmap-website
Rails 2 → Rails 3
rakefiles and whatever → Bundler
Easier to set up!
bundle install
API Whatever → API 0.6
(everyone knows about that)
Translatable
WHOAH
نجاح باهر
like other software:
everything gets better
because everyone tries really hard
'The Website'
Redesigns
Design is hard
Good enough =
Good enough
MOCKUPS
"Design" = Wart Removal
"Reading Your Messages"
Hey Mom I Edited A Road
Design for Muggles
*is not mutually exclusive with design for nerds
<therefore>
osm.org is slow to change, but will evolve.
(back to nerd stuff)
API aka DATA
OpenStreetMap is like Google Maps Except The API Gives You Data
How?
Licensing (the big part)
Infrastructure (the other part)
Small data
THIS IS INCREDIBLE
NOOOO
Big data
you must be kidding me
Read-only APIs:
XAPI jXAPI Overpass
Extracts & Dumps:
Planet.osm Metro Extracts Geofabrik CloudMade
Read/write API:
Rails Port + cgimap
API aka PLATFORM
MapBox / Stamen / MapQuest Open / CloudMade / skobbler
None of this exists yet
// none of this exists yet
var osmapi = OSM();
if (!osmapi.user()) {
  osmapi.authenticate();
}
// none of this exists yet
getLocation(function(location) {
  map.addLayer(
    osmapi.load(location, {
      nodes: true
    })
  );
});
'hacks' are possible already.
we just need to make them less scary / more reliable
what to do next: coding
Don't tear it all down
(ruby will probably stay)
(mapnik will probably stay)
(mapnik will probably stay)
OpenLayers (will probably) → Leaflet
Potlatch (will probably) → iD/etc
what to do next: working together
more contributors!
MediaWiki
Community Glue
Nice people
thx TomH for the code reviews!
Tests
thx jfire for the JS testing progress!
Goals
Learning curve
/but let's be real/
ideal learning curve
_
reasonable learning curve
actual learning curve
Where to start
github.com/ openstreetmap/ openstreetmap-website
lists.openstreetmap.org/listinfo
bit.ly/sotmus
thanks
@tmcw
tom@mapbox.com