On-Ramps to Open Source
Lyzi Diamond, Mapbox
FOSS4G-NA 2015
Let's start with a postulate: every open source community experiences the same growing pains.
Folks already inside the community don't know what to do about it.
Folks interested in joining the community don't know what to do about it.
Neither group can even identify the problem!
But there is a disconnect. It is difficult to join an open source community as a beginner...
... and it's difficult for an open source community to open itself up to beginners.
Why? Open source is meant to be accessible by nature. And it is, technically.
But not always conceptually.
This is considered one of the seminal programming texts. It is an essay in praise of open source, particularly in the Linux community.
The essay is full of quotes like this:
"A certain base level of design and coding skill is required, of course, but I expect almost anybody seriously thinking of launching a bazaar effort will already be above that minimum. The open-source community's internal market in reputation exerts subtle pressure on people not to launch development efforts they're not competent to follow through on. So far this seems to have worked pretty well."
"So far this seems to have worked pretty well."
:-/
Raymond is describing the infancy of modern-day open source communities. (Keep in mind he was writing in the late nineties. Parachute pants were a popular fashion choice.)
A different time.
Open source projects in our time typically start when people with a common skillset have a common problem or frustration that they want to solve together.
Doing that in the open means more people will contribute and it will mature faster.
That is what Raymond was writing about.
But there comes a time when the project has users who are not the same as the developers.
In the nineties, this divide didn't exist.
Technology was for technologists.
The whole concept of an open source community is relatively young itself.
Open source PLUS consumer technology is even younger.
Add into that everything in between and you see...
We simply haven't had time to solve this problem yet.
I repeat: YET.
As a community, open source geospatial is pretty amazing.
We put a lot of focus on education and growing our community.
But we have yet to solve this problem.
And I have an idea of how we can start.
Hint hint
Geospatial technology has many facets. There are many problems to solve that require different skill sets.
So why are we trying to onboard everyone in the same way?
There are tons of places you can start. There are tons of doors.
Or, if you prefer: on-ramps.
I have subdivided our field into five main groups:
1. Cartography
2. Web Programming
3. Spatial Analysis
4. Data Management and Acquisition
5. Community Mapping
The number of tools you can use for mapping has been growing exponentially.
This is awesome! It means we have many places to start.
So...
Let's walk through each of these groups and talk about on-ramps that can build on existing skillsets.
Let's identify some comfortable introductions to geospatial open source.
Let's sing and talk about puppies and rainbows! Yay!
This is of course not meant to insinuate that these are the only ways to get involved. They are simply helpful paradigms for those lost among us who just want to get involved.
Also, disclaimer: I do work at Mapbox, but I'm not only going to talk about Mapbox tools. That would be counter to the goals of this talk. We want diversity of tools for a diversity of projects!
1. Cartography
a.k.a. making pretty maps :)
In terms of web mapping, cartography applies to basemaps, feature layers, and the ways the two interact.
Bad cartography is easy to spot (and way easy to create).
Good cartography is difficult to define and emulate.
We want people with good design skills in our field!
They make beautiful things.
So was this one.
You can use Mapbox Studio to make map tiles for web maps or to make styles and print static maps.
This is just one of the reasons that Mapbox Studio is a great onramp to open source geospatial for designers: no data wrangling necessary!
It's also a great onramp because it does require some additional learning.
Styling in Mapbox Studio is done using a language called CartoCSS.
There are
many resources to learn CartoCSS, but simply the
act of
learning something new is
awesome preparation for learning
other tools in open source geo.
Another open source tool for
cartography is
QGIS.
"The cartographic capabilities of QGIS are sufficient to produce almost all the common map layout components with an adequate amount of advanced capabilities and even some options, like the color blending modes, that aren’t typically found elsewhere."
2. Web Programming
Arguably the
best and definitively the most
ubiquitous open source JavaScript mapping library is
Leaflet.
Leaflet powers so many things!
Leaflet is an awesome place to start because it powers so many things.
Anything you can do in Leaflet you can also do in Mapbox.js.
Leaflet also has a
ton of plugins that give a
huge range of functionality...
There are of course
other open source JavaScript mapping libraries, like
OpenLayers,
Polymaps, and
D3.geo, but
Leaflet is an
excellent place to start.
There are also JavaScript mapping libraries that do more than just getting an interactive map on a page...
3. Spatial Analysis
A huge percentage of folks who are new to open source geospatial are coming from a traditional GIS environment.
Creating data, editing data, classifying data...
Raster data, vector data...
Data data data!
For
this crowd, the most
familiar-looking tool will be
QGIS.
QGIS is an open source desktop mapping platform. It is free and works on many different systems.
It works with rasters and vectors:
You can do fun styling to show off results of analysis:
But maybe best of all, QGIS has an awesome community of users and developers.
There are some
excellent tutorials for getting started. There's also room for using
Python scripting inside QGIS when it's time to
level up!
Another popular
analysis and visualization tool that's an
awesome place to start is
CartoDB.
With CartoDB you can upload a spreadsheet and get to visualizing and classifying data in relatively few clicks.
That's a great feeling: one that keeps you coming back for more!
4. Data Management and Acquisition
This section falls into two camps:
If you love
converting data into different formats and
computational analysis, you should learn about
GDAL.
GDAL stands for Geographic Data Abstraction Library.
It is a command-line tool for data conversion and processing. It can do a lot. (OGR is the related utility that handles vector data.)
If you love
storing data and conducting
large-scale spatial operations, you should learn about
PostGIS.
PostGIS is a
spatial database extension for
PostgreSQL, which is an open source object relational database.
PostGIS is concerned with how data is stored and manipulated, joined and related.
It is often the heavy lifter behind spatial web applications that have lots of data.
PostGIS can be a bit difficult to get started with, but that's just because databases require a specific way of operating.
BoundlessGeo has an excellent
intro tutorial that uses their OpenGeo Suite. It's a
good place to start.
5. Community Mapping
This one is pretty obvious...
OpenStreetMap!
It is entirely open source and has sprung countless projects to facilitate community mapping.
All
organizing for OpenStreetMap-related
projects and
events happens on the
OSM Wiki.
OpenStreetMap is an open source community itself.
How do many people -- especially newcomers -- interact with OpenStreetMap?
The in-browser iD editor.
You see, iD is an onramp itself.
It's an
entirely open source project with the
goal of bringing
more people into an
open source community.
It's quite beautiful.
It also shows us that we have the power to build these on-ramps collectively.
Open source projects can themselves be on-ramps to open source communities.
It just takes a little thought and a whole lot of empathy.
Then, all of a sudden, those newcomers are themselves experts and are bringing in newcomers themselves.
We have an amazing opportunity to grow our community here.
There's absolutely nothing stopping us from taking it.
Thanks!