20 days ago

Statistics tell you when to stop practicing

Assume you are practicing for an exam. You could spend all your time left until the exam practicing (possibly too much), or you could spend almost no time practicing (likely too little). So how do you know when enough is enough? When can you stop practicing and yet be confident that you will pass the exam?

More ...

75 days ago

Applying Machine Learning to Strava activities using BigQuery ML

Today, I’ll demo how to train a logistic regression model in BigQuery ML. That is Machine Learning models written in SQL, and executed in BigQuery.

More ...

130 days ago

Inspecting air pollution data from OpenAQ using Colab, Pandas, and BigQuery

OpenAQ is publishing real-time air quality data from around the world to BigQuery. Today, I have poked around in the dataset to inspect air quality from many places of the world.

More ...

256 days ago

What probability theory tells you about starting on time

Whether you are an event organizer waiting for participants to turn up or whether you are a bus driver waiting for passengers running to catch the bus, there is a dilemma: if you are so kind and wait for everyone to arrive, you make everyone else wait. Let’s explain the dilemma with probability theory.

More ...

351 days ago

Analysing Strava activities using Colab, Pandas & Matplotlib (Part 4)

How do you analyse Strava activities—such as runs or bike rides—with Colab, Python, Pandas, and Matplotlib? In my fourth article on this topic, let’s invite scikit-learn and NLTK to the party, and apply some Machine Learning.

More ...

369 days ago

Analysing Strava activities using Colab, Pandas & Matplotlib (Part 3)

How do you analyse Strava activities—such as runs or bike rides—with Colab, Python, Pandas, and Matplotlib? In my third article on this topic, I am demonstrating how to visualize the data in different ways.

More ...

383 days ago

Analysing Strava activities using Colab, Pandas & Matplotlib (Part 2)

How do you analyse Strava activities—such as runs or bike rides—with Colab, Python, Pandas, and Matplotlib? In my second article on this topic, I am demonstrating how to group and aggregate the data in many different ways.

More ...

387 days ago

Analysing Strava activities using Colab, Pandas & Matplotlib (Part 1)

How do you analyse Strava activities—such as runs or bike rides—with Colab, Python, Pandas, and Matplotlib? In this post, I am demonstrating how to get started, and will give you a taster of what is possible with this state-of-the-art technology for data analysis.

More ...

438 days ago

Misleading infographics: How Not To Bubble Chart

I discovered a misleading infographic on mortality cause by gender in the OECD report “Health at a Glance 2017” while working on a course assignment. A few notes on how not to do bubble charts.

More ...

601 days ago

Memories from University: Teaching the Computer to play Connect Four

How do you teach a computer to play games? I took a classic brute-force approach along with some techniques to make the search for a good move faster. Can you beat the machine?

More ...

856 days ago

Missing Maps: Use Your Phone for the Better

The opportunities created by the advance of technology and the efforts of people are amazing. In this post, I’ll show how to take advantage and use the Mapswipe App as a first step to gain valuable insights for NGOs operating in places of the world for which there is no proper map yet.

More ...

914 days ago

How data can assist us in forming good habits

Habits are an important key to success. But how do we establish a habit? How do we know whether our perception aligns with reality? How do we decide about the next change to make? Did we succeed? I want to know. A reflection on habits, insights from data using running as an example.

More ...

938 days ago

Missing Maps: Putting People on the Map

There are places on our planet where people live but there is no map. How are NGOs like Médecins Sans Frontières (MSF) supposed to do field work if they don’t know where people live, how many, how to get there? The Missing Maps project is addressing the issue via crowdsourcing. I gave it a try, and here’s what I think.

More ...

1189 days ago

Energy from Thin Air: Measuring Air Pollution with CleanSpace

Let’s face it. Air quality in London is quite poor. You don’t need technology to notice. As soon as you reach the country side, the difference is usually very apparent. I will soon get hold of an active sensor that transfers carbon monoxide readings to my phone in real-time. Interesting: the sensor is powered only from energy harvested from wireless and broadcast networks. Energy from thin air!

More ...

1719 days ago

Bletchley Park and the rebuilt bombe

A visit to Milton Keynes gave me a brief look into former codebreakers’ life at Bletchley Park during World War II. The exhibition also featured a rebuilt exemplar of the bombe, an electromechanical machine that played a role in breaking the code of the Enigma. I got fascinated for several reasons.

More ...

1825 days ago

Motion Segmentation of RGB-D Videos via Trajectory Clustering

Persistence paid off. The little, remaining work on my Master’s thesis at KTH is finally completed. I can hardly remember touching a subject at university that was as demanding and as satisfying as the research on how to segment moving objects in videos taken by a RGB-D camera. Thanks to everyone who helped me with this mission.

More ...

1866 days ago

Preview: Motion Segmentation of RGB-D Videos via Trajectory Clustering

Humans are quite good at detecting motion. How about machines? Can computers automatically segment objects in videos? I dedicated my Master thesis to a particular variant of this question. Here are a few videos as a preview.

More ...

1886 days ago

Fixing a Shimano EF50-8R bicycle shifter

For some reasons, the front shifter of my bicycle stopped working properly. Time to take a screwdriver and see how the shifter actually works.

More ...

1989 days ago

Programmer-friendly German keyboard layout on GNU/Linux

German keyboards are usually pretty annoying for programming. Mapping the third-level of the buttons D, F, C, V to {, }, [, ] places the curly braces and brackets at more convenient locations without destroying much of the benefits of a German keyboard.

More ...

2037 days ago

Case study: when average speed matters

This case study shows the effects of acceleration, top speed, deceleration on total travel time on short distances at the example of Transrapid in Shanghai. Bottom line: it is the average speed that matters, not the top speed. Groundbreaking result … no! But it is an illustrative example with concrete numbers that shows why reporting top speeds creates illusions.

More ...

2070 days ago

Recursive circle packing with PostScript

Ten lines of PostScript are sufficient to draw a pretty self-similar pattern constructed by packing circles into circles.

More ...

2200 days ago

Managing encrypted devices with LVM on top of LUKS with luksctl

Start small: my first Arch Linux package submitted to the AUR. luksctl manages (portable) LUKS-encrypted devices with a logical volume manager on top of it. Profiles control how the devices are (un)locked, the logical volumes (de)activated, and the filesystems (un)mounted with a single command. Details are found at luksctl on Bitbucket.

2218 days ago

Benchmarking Google's Speech Recognition Web Service

Curious: how far can we push Google’s speech recognition web service that is used in Chrome 25+ for speech input? I measured the word accuracy of the service on the TSP speech dataset that consists of recordings of the Harvard sentences in order to get the picture.

More ...

2219 days ago

Asus Xtion Pro Live – First Impressions

It is now a couple of years since affordable depth cameras have entered the market. Out of a developer’s perspective, the Asus Xtion Pro Live seemed to be better suited for development than the XBOX 360 Kinect. I still think so. Here are my first impressions gained when working with the Xtion in a university project.

More ...

2220 days ago

Using Google's Speech Recognition Web Service with Python

Google powers a mostly undocumented web service for speech recognition. The web service accepts audio data and returns a transcription. Here is a way to communicate with the web service via HTTPS POST and Python.

More ...