Mr. Ali S. Habib (1956–2020)

It’s not often one cold emails one of the most successful business leaders in Pakistan and they reply within a few hours, from their mobile phone. But in winter of 2018 that’s exactly what happened. Ali S. Habib’s reply to my email with a proposal to start an Artificial Intelligence (AI) Center of Innovation in Pakistan was warm, gracious and encouraging. I still remember the excitement of seeing his name in my inbox.

Some background: in the fall of 2018 my father’s health suddenly took a nosedive. He was in and out of the ICU and my brother and I…

Africa in OpenStreetMap 2008

Today, almost to the day is the 6th anniversary of a mapping party that Ivan Gayton , Kashif Rasul and myself organized in Berlin. Little did I know that it would lead to a sustained movement to map previously unmapped parts of Africa on OpenStreetMap (OSM).

Move from disaster response mapping to mapping for preparedness

Ivan and I first met 3 months earlier at the Humanitarian Congress in Berlin; an annual conference run by Médecins Sans Frontières (MSF). I was giving a talk there about the Humanitarian OSM Team and he was attending with his colleagues from MSF. The talk focused on the post-disaster relief efforts that the OSM…

Unless you have been living under a rock you know that Bitcoin and cryptocurrencies are starting to capture the interest of mainstream community.

While I’m not particularly optimistic about the short term uptake of crypto currencies for day-to-day shopping due to it’s volatility as well as just the practicality, I do believe the technology of Distributed Ledger Technologies (DLTs) or blockchain has the potential to form the backbone for smart contracts. This gets particularly interesting when combined with Artificial Intelligence. I believe this is going to disrupt a number of industries and jobs in the next 5–10 years.

So what exactly is a smart contract?

At its core it is a legal agreement between two or more parties. What makes it smart is that it’s encoded as (software) code. This code can execute the contract when the conditions governing the contract are fulfilled. The record of the contract’s execution is stored and protected from any future tampering using a DLT like the Blockchain. The diagram below shows this.

Source: Linux Foundation Blockchain for Business — An Introduction to Hyperledger Technologies

Now let’s pause for a moment. Think about the implications of the above diagram…

Here are the main reasons we have switched to Yarn package manager for our Javascript projects

  • It caches every package it downloads — so no waiting if you delete your node_modules directory
  • you can install it in offline mode
  • It’s secure: it uses checksums to verify the integrity of every installed package before its code is executed
  • It comes with a guarantee that an install that worked on one system will work exactly the same way on any other system
  • It lets you check licenses of your dependencies
  • It saves the dependencies tree via a shrinkwrap yarn.lock file
  • Oh and it’s used and maintained by teams at google and facebook

enjoy yarn!

Abduction of Europa (Rembrandt)

Part 1: Running PySpark + Jupyter on EMR

This post is an introduction to Apache Spark, Geospatial Big Data Analysis and Amazon EMR Stack. If you don’t know what that is read on…


As you can infer from my instagram map below I travel a fair bit around Europe. It’s all for research purposes (really!). I live in the heart of Europe (Berlin) and in-order to better understand European cities and plan my next round of urban science research activities, I began analysing OpenStreetMap (OSM) data for all major European cities.

In this post I will share with you how we deploy application to the cloud at Geografia using Docker Cloud, Amazon AWS or Digital Ocean.

tl;dr We wanted to make application deployment and scaling as easy as running docker-compose up. So we built a deployment pipeline using docker cloud. This allows us to quickly make changes to the application and automatically update the web application. It also allows us to scale the application by starting new nodes in a docker cluster.

At Geografia we aim to build applications in a sustainable, cost-effective and repeatable way. …

If you are starting from scratch the last two articles about this setup should be checked out here and here. There I explain how to setup a development and production docker-compose configuration. Assuming that’s done, we can now deploy the application to DigitalOcean.

# get your API token from digitalocean dashboard
# create a docker-machine using the digitalocean driver
docker-machine create --driver digitalocean --digitalocean-access-token=$DO_TOKEN --digitalocean-size=1gb digitalocean
# make the machine active
docker-machine env digitalocean
eval $(docker-machine env digitalocean)
# deploy the services
docker-compose up -d
# make changes to rails code... redeploy by running
# --no-deps makes sure we don't…

In this post we will learn to

Configure docker compose for a production setup of a PostGIS + Ruby on Rails 5.0.1 application with nginx as proxy server

We will build on the development version of the application we create in my last post here. If you want to follow along then make sure you have that one done.

In this post we will create the production

  1. Dockerfile for production version of the Rails app
  2. .env file for production
  3. nginx proxy configuration for the Rails app (NEW)
  4. docker-compose.yml file for production
  5. entrypoint script

TL;DR just run this script:


In this post we will learn to:

Configure `docker-compose` for Rails 5 + PostGIS development

We will start by setting up the following for our development environment:

  1. Create a `Dockerfile`
  2. Create a `docker-compose.yml` file
  3. Create an `.env` file for environment variables
  4. Configure `database.yml`
  5. Update `Gemfile` with postgis adapter
APP_NAME=dockerized-railsrails _5.0.1_ new $APP_NAME -d postgresql
mkdir -p containers/development
RAILS_ENV=development# 1. create a Dockerfile for developmentcat > ./containers/development/Dockerfile <<EOF
FROM ruby:2.3.1-slim
# Install essential Linux packages
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql-client libproj-dev nodejs less
RUN mkdir -p…

Humanitarian OpenStreetMap Team Summit

This year I attended the Humanitarian OpenStreetMap Team (HOT) Summit in Brussels. Firstly I love Brussels and Belgium not only because it’s a beautiful city and country but also because it’s people are so welcoming. A random stranger today asked me if it was my first day in Brussels and when I said yes, with a sweet smile, told me “welcome to Brussels!”. Brussels holds a special meaning for me personally too. It is the seat of the European Research Agency which was responsible for funding my first paid job in Europe. And don’t even get me started on the…

Shoaib Burq

Ocean to disaster mapping and all things geo-temporal.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store