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.
Every unhandled exception is a bug in your software. Things will go wrong in your Lambda function, and you want to know about it.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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 — 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.
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.