Notes from js.geo 2015

JS.Geo happened last Thursday (October 8th). I attended, had a great time and took some notes. Nearly all the major players in javascript + spatial were present (no Google presence this year). The event felt essentially vendor neutral as none of the talks were blatant sales pitches but rather "look at this technology" or "here's a killer project I'm proud of".

My notes per-speaker are below. Names go to twitter profiles and links to most decks/demos are in the google doc that Brian and Chris put together.

The crew over at Cesium also wrote up their notes from the event.

The talks:
Chris Whong (CartoDB): NYC taxi data via FOIL request, 50gb in 2gb chunks (could be good as example of big-ish dataset to work with). Usual stack: leaflet, d3, bootstrap, cdb, moment.js to make NYC Taxis: A Day in the Life. Eye-catcher is the "marker animation along svg element", luckily the code is on github so you can see how that's done. Chris also gave a shout out to (new to me) which is how New Yorkers find a places to live these days. He made a chrome extension to inject/overlay subway lines, which looks awesome. This was one of my favorite talks from the day. Slides.

Anand Thakker (Development Seed): vector tiles give you simplicity, speed, interactivity. Parallel processing via tilereduce. Enables in-browser analysis via turf. Use Tippecanoe to build vector tiles. vt-grid useful node module for doing feature aggregation. Slides.

Matt Amato (Cesium): 3D tiles...more about their progress and efforts in the Cesium JS.Geo post. Slides.

Lauren Ancona (City of Philadelphia): Insider view on managing and mapping the Pope's recent Philly visit. Nice touch to use high contrast color scheme with the for outdoor use. UI uses material design lite. Plans to release app wrapper/framework/skeleton as "map sak", mentioned but that doesn't work yet. Slides.

Alex Bostic (AECOM): App to enable real-time GIS asset tracking. "Grid sat tag" was mentioned a lot but I'm not entirely clear what that is. Using solr for search. Other things used: leaflet, mapbox basemap, bootstrap, less, AWS, MEAN, turf.

Norman Barker (IBM MobileFirst): "geopresence" as evolution of geofencing, smarter location awareness and indoor mapping. He also mentioned Locust which is a python-based load testing tool.

Stuart Lynn (CartoDB): Torque and his experience modifying and improving it. I think he showed torque + NEXRAD data, which means... it works with polygons now? He mentioned that something new is available "tomorrow". He's added scale function to torque which wraps d3 lib: d3.cartodb. Slides.

Andrew Turner (esri DC): discussed several R&D projects including but not limited to, koop, malette and mundi. Slides.

Bryan McBride (Fulcrum): mobile data collection workflows. Offline JS lib access by including entire JS lib as a string in a JSON object (the audience, including me, got a kick out of this).

Lunch: Hoagies, natch.

Ishmael Smyrnow (appgeo): Use node for your data processing. "collect, manipulate, produce". Several useful modules mentioned: tape, tap-spec, nook as modules to aid in writing tests. Overall take-away that can't be emphasized enough: "use existing modules wherever possible". Slides.

Michael Bowman (Applied Info Sciences): Talk titled "squatchin with d3.js". Mapping Sasquatch sightings. Good recommendation to use for test data sets. FCC has lat long -> census block API. "pick projection to fit data". Use svg elements as layers. Cool workflow: d3 map in webpage -> phantom JS -> export to svg -> use illustrator. Slides.

Patricio Gonzalez Vivo (Mapzen): Procedural maps at mapzen. Tangram is their way to do maps on GPUs. Use gsl to write shaders to style maps. Patricio's stunning demos were as close as we got to "Ooh's" and "Ahh's". This was another of my favorites of the day. Slides.

Aaron Petcoff (New York Magazine):'s tendency to describe it as dystopian. Simple NY Times search confirms that. Property in practice: visual archive of speculative investment of real estate in Detroit. Mention of sheetsee.js, which was news to me. It brings together Google sheets, mapbox, leaflet...dozen lines of code to get map working.

Tom MacWright (Mapbox): Maps are hard because: "fractal of complexity". Culling: do less. Let's back up, maps on the web, progression: 1 WMS, 2 google-style tiles, 2.5 leaflet + vectors in svg or canvas, 3 vector tiles. Vector tiles are the whole map. Where we are now: 2.75 raster tiles backed by vector tiles. Vector tiles encapsulate the act of culling. Examples of vector tile implementations. Slides.

Morgan Herlocker (Mapbox): Machine learning techniques for geospatial. More data -> better guesses. Requires testable predictions: input set, output set meaning there are right and wrong answers. Modules/libraries to explore related to machine learning: brain, natural, sentiment, node-fann, caffe, word2vec.

The rest of the talks were five minute lightning talks and included plenty of gems.

Drew Bollinger (Development Seed): made a thing that does: map tiles -> canvas -> rgb histogram, cool...he never had a use for it. Until he needed to remove black collar/border around Landsat previews. Code and a .gif of it in action.

Dana Bauer (Planet Labs): "what to do with daily high res images of earth?" First big push for open data is to see drought effects in California. JS cred: vegetation index implemented in JS. But seriously, if you have an answer to that question, talk to Dana.

Chris Pollard (Delaware Valley Regional Planning Commission: open freight app, philly freight finder, on github. Slides.

Calvin Metcalf (appgeo): WMS and WMTS in ArcMap/QGIS. So many bugs. Crazy, weird, dumb bugs. His frustration was palpable. Fixed it with node...somehow? Used timers on his slides to auto-advance them, good lightning talk etiquette. Slides.

Diana Shkolnikov (Mapzen): She is the geocoding team lead, talking about Mapzen's new geocoding service. Infomercial presentation style pulled off well, including guy whose sole purpose was to hold up an applause sign. Info at pelias repo on github, get an api key at, also has a leaflet geocoder plugin AND a vagrant project to run it standalone. Impressive. And the funniest talk of the day.

Jill Hubler (indie): builds websites and visualizations for NGOs and non-profits, main focus of talk was invasive species in the bay area, how those plants displaced native plants throughout California. Project repo: Invasive Ricohet. Hooked up touching of plants to map UI via an arduino!

Bill Morris (Faraday): Calculating distances...first as-the-crow-flies, which was wrong. Then Mapzen Valhalla, which is what they want! Bill wants to know: "how to do service areas in JavaScript?"

Tom Swanson (City of Philadelphia): Planimetric data, good elevation data coming...question is: how do you get that into OSM? Made offer to get all new Philly building data in OSM, several interested parties in the audience.

Daniel Fenton (esri DC): koop, how to find a place from an extent? Figure out place name from extent. Reverse geocoding with extents instead of points, and instead of addresses you get place names.

Ian Dees: OpenAddresses, 200M address points. Goal: improve access to address data so it's easier to build geocoders...talked nuts and bolts, showed some address data. I wanted to hear more about how to contribute. OpenAddresses is going to work with dept. of transportation to build nation wide dataset. OpenAddresses expanding to parcels too.

Ryan Smith: grad student at Johns Hopkins. Built Baltimore Tax Credit Map. Includes income explorer project that gets people tax credits to avoid liens to avoid foreclosure. Ryan on github. Making a real difference, help secure millions in tax credits. Great talk to end on.

Many attendees went down the block after for beverages, a few us found cheesesteaks too. Thanks again to Brian Timoney and Chris Helm for all the work they put it.