Oliver Roick Recently

Looping AWS Step Functions

I recently started tinkering with Step Functions for a pet project, Nea. For performance reasons, I wanted to download and process individual feeds in parallel using instances of the same Lambda function. This isn’t currently possible using Step Functions building blocks, so I implemented a workaround by designing a loop into my Step Functions state machine.

Lambda Error Logging with Sentry

Every unhandled exception is a bug in your software. Things will go wrong in your Lambda function, and you want to know about it. AWS provides extensive logging for Lambda functions via Cloudwatch Logs, but it is a cumbersome job to sift through all the logs, identify the exceptions and group similar errors for a bug report. Sentry makes this job easier. Setting up Sentry error logging for a Lambda function is not as straightforward as, say, using a Django middleware. This post explores how we have set up error logging with Sentry for a JavaScript Lambda handler.

Data Storage and Indexing in DynamoDB

To power web-based applications, NoSQL databases can be a great and light-weight alternative to relational databases. The most significant difference to – say Postgres – is the way how data is stored, indexed and how it can be queried — all of this requires a different way of thinking about databases. I’ll explore how data storage, indexing, and querying works in DynamoDB, one of AWS’ NoSQL offerings.

Testing code to understand code

Writing tests for your software is crucial. Not just because it provides confidence in the functionality of your code but also because tests help you to understand your code and the problem you are solving.

Deploying Docbox to Github pages

I love Docbox; it’s the documentation framework I always wanted. You write Markdown and compile into a nice single page document. While Docbox comes with most batteries included to create API documentation, you have to take care of deployment yourself. Thanks to the simple setup of Docbox, you can automate its deployment in a simple bash script.

2016 Reading

At the beginning of 2016, I made a list of ten books I wanted to read throughout the year. I only read three from that list but also six other books that I discovered and found more interesting. Without further ado, here’s what you would have found on my night stand this year.

Testing Django — Lessons Learned

I recently had the honor to work on a major refactoring of Cadasta’s test code. The goal was to make the test code more consistent and easier to write. One result of this work was a small test framework, which I’m going to write about some other time; another was a bunch of notes that I’m going to summarize in this post.

Giving Feedback

Giving the right feedback in software is difficult. Knowing when to display messages, how many messages to show and getting the wording right is a piece of art. You want to give sufficient information about the state of the system, but also don’t want to overload users with too many messages.

A better fetch

I recently tried to make Fetch work with a REST API. Here’s what I found.

Leaflet.Deflate 0.2

Recently, I have rolled out an update to Leaflet.Deflate, which adds a few changes and new features.

Speeding up tests in Django

Class-based views are difficult to test in Django applications. There is a number of tutorials out there that discuss best practices about how to test views — most of these are based on the official Django guides. Doing it their way, however, can be terribly slow, especially when you add complexity to your views, such user authentication. I’ll discuss a slightly different method of testing views without the test client, which speeds up tests by about 20 times.

Takeaways from Djangocon Europe 2015

I went to Djangocon Europe in Cardiff last week. Here are my key takeaways from talks I saw and discussions I had.

Advice for the Django novice

So you have mastered the basics of Django. You know what Models, Views and Forms are and how to use them. It’s time to get real and build your first proper application. When I was at that stage some 2 years ago, I wish I had already know some things I have learned since then. It’s not necessarily about how to design and implement your application — it’s that “I wish I had known that before” stuff. Here’s what I learned.

Deflating Polygons in Leaflet

A common problem with dynamic web maps is the way polygons and lines are displayed in lower zoom levels. At some point, these geometries become too small to be noticeable on the map. A straight forward solution is to replace the polygon or line with a marker at the feature’s centroid position. The new Leaflet plugin Leaflet.Deflate does just that. Read on to see how it works.

mapschool.io in German

mapschool.io is an excellent free introduction to all things geo by Tom MacWright. I contributed a German translation, which is now online for your reading pleasure.

Announcing GeoKey

In case, you have been wondering what I’ve been up to since I joined ExCiteS last year, here’s the result: Yesterday, we announced the release of GeoKey — a platform for participatory mapping.

GeoKey provides local communities with a web-based infrastructure to collect, share and discuss local knowledge. You can use it to setup your own mapping project with your community and to collect, visualise and analyse data using the tools of your choice.

Check out the project website or the source code.


Last weekend I went to Mozilla Festial, an annual get together of web makers. I have to say, this was by far the best conference(-ish) get together I ever been. It was incredibly well organised; for just about £50 I got delicious food, good coffee and I met an awesome bunch of enthusiastic and talented people. Oh, and a free Firefox OS phone. Over the course of two days, I took part in various workshops and hands-on sessions — here are my highlights.

Introducing SuperSimpleEvents

Across various personal and professional projects, I needed a simple solution to extend prototypes with eventing functionality in JavaScript that is independent from third-party extensions. SuperSimpleEvents is my solution — a super simple event emitter for JavaScript.

Introducing Community Maps 2.0 to #geomob London

Last week, I introduced Community Maps 2.0 to the London #geomob. You can find the slides and a brief summary of the talk here.

Talk accepted for FOSS4G-E

My talk entitled Community Maps — A Platform for Participatory Mapping has been accepted for presentation at FOSS4G-E.

FOSS4G-E is the European conference on free and open source geospatial software. The event will be held from 15th to 17th July at Jacobs University Bremen, Germany. See you there.

Speaking at #geomob London

Next Tuesday, 13th May, I will be speaking at #geomob London about the story and ideas behind Community Maps 2.0, which is about to be released soon.

The event starts at 6:30p.m. and takes place at Pearson Lecture Theatre on UCL’s Bloomsbury Campus. If you want to join in, please feel free to register via the event’s Lanyrd page.

Citizen Cyberscience Summit

The Citizen Cyberscience Summit, bringing together an interdisciplinary group of researchers, hackers and citizens to discuss and share ideas on all things citizen science, will be held in London next week from 20th to 22nd February.

Together with Patrick Rickles I will be giving a talk presenting past, present and future developments of Community Maps followed by a short workshop to discuss and share ideas about the next generation of participatory mapping platforms.

The presentation and workshop will take place on Friday, 21st February, 2p.m. in room 217 in the Chatwick Building.

Moving on: Joining ExCiteS

As of September 2013 I’ll be joining Extreme Citizen Science Group at University College London. As a Senior Developer I will be responsible for design and implementation of web-based geographic information systems.

FOSSGIS Conference 2014 in Berlin

FOSSGIS — the German user conference on open-source geo-spatial software and open data — will be held in March next year at Beuth Hochschule in Berlin. I created the conference web page, which went online today.

New Version of OSMatrix

A new interation of OSMatrix has been released today. The client application has been re-designed and implemented from ground-up leveraging latest technologies (HTML5 and CSS3) and open-source frameworks (Leaflet and D3). We further rebuilt server-side components using Node.js and its awesome ecosystem of extensions for data processing and Mapnik for map rendering purposes. For a detailed description of new features read my post on GIScience Blog.

Review Paper: Location Based Social Networks — Definition, Current State of the Art and Research Agenda

An early view version of our review paper entitled Location Based Social Networks — Definition, Current State of the Art and Research Agenda has been published by Transactions in GIS. You may also download the final draft version free of charge.