Points of Interest as a Service

When building a location based service, access to public geo data like points of interest (POI) can be cumbersome and expensive. There are several proprietary databases which have specialized on access to POI data, but with the ever growing collection of data by OpenStreetMap and the collaborative power and its mature ecosystem of professionals and volunteers OSM is now a leading data source in many areas. OpenStreetMap now tracks over a million restaurants and bars, 310,000 hotels, nearly 150,000 view points, 140,000 hospitals and over three million shops worldwide.
Read full article »

Give Spaten a Spin: Introducing a Data Repository

In 2017 the Grandine project has been introduced, which helps working with geodata in a streamable fashion. At the core of the project the new file format “Spaten” for passing around geo data has been introduced. A lot of people reached out to me, wanting to explore the possibilites. In order to facilitate work with the provided tooling, the Spaten file repository is released today: It is a collection of Geo Data files which are free to use and can be processed with any Spaten-compatible tool, like the Go library, the Python implementation or the Grandine Tools.
Read full article »

Envisioning a New Approach to Geodata Processing

This is a recap of my work and the subsequently gained learnings of the last two years. Parts of it have been discussed in my talks on FOSSGIS and SOTM conferences, previous blog posts or podcasts. Today Processing geo data can be approached in two ways: Either the algorithm is already clear and the process can be automated and data can be processed directly, or: a human element is needed for processing in some kind of exploratory phase.
Read full article »

Orphaned Gunicorn Processes with Supervisor

Python web applications generally expose a WSGI interface for client communication, which is rather unusual if you are used to more novel approaches like those of Go applications, where APIs are generally served via HTTP. Most applications have an HTTP gateway in front, either for load balancing, high availability or TLS termination, so a Python application, like e.g. Django projects need an HTTP server which interfaces with WSGI. WSGI servers also deal with worker spawning, because of Python’s Global Interpreter Lock, which would otherwise limit Python applications to be executed on one thread at any given moment.
Read full article »