88 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 ...

343 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 ...

401 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 ...

425 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 ...

676 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 ...

1206 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 ...

1311 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 ...

1352 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 ...

1372 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 ...

1476 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 ...

1524 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 ...

1557 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 ...

1687 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.

1704 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 ...

1706 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 ...

1706 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 ...

1720 days ago

Speech Input in Google Chrome: x-webkit-speech

Google Chrome 25+ features a nice extension for speech input, which is enabled by adding the x-webkit-speech to text input fields. I put it into action. How well speech input actually works depends heavily on what kind of words you use, though.

1746 days ago

Clustering Crash Simulation Data with LLCA

Four longitudinal chassis beams of a Chevrolet pickup truck. The nodes of their corresponding finite element model shall be partitioned into clusters such that the nodes within one cluster show similar behaviour in a row of car crash simulations. The question: is the local clustering approach (LLCA) applicable? A summary of a research project.

More ...

1747 days ago

German PC keyboard layout in Mac OS

For those like me who cannot switch easily between different keyboard layouts: How to use the German PC keyboard layout in Mac OS? This recipe worked for me: www.nullpointer.de/stuff/keylayout

1792 days ago

Prolonging the Life of a Logitech K340 Keyboard

Successful life-hacker experiment: Removed all the keys from the keyboard, washed both keys and chassis, and almost as good as new. A Swiss knife is useful, but not absolutely necessary.

More ...

1799 days ago

Computing PageRank for the Swedish Wikipedia

Time to play search engine and experiment with PageRank. How much time does it take to page-rank a network with a million pages? I got curious during working on a university exercise and tested two power iteration variants and one Monte-Carlo method.

More ...

1818 days ago

Case Study: Role-Playing Game in C++

A minimal implementation in C++ of a role-playing game with 2D graphics, as part of an exercise at university.

More ...

1823 days ago

Artificial Neural Network: Animation of Training

See a live animation of how an artificial neural network is trained to represent a Gaussian-shaped function.

More ...

1826 days ago

Inspecting Algorithms with Graphs

Graphs and algorithms are tightly connected. One surprisingly simple way to inspect algorithms graphically is to let the algorithms plot graphs during their execution using GML (Graph Modeling Language). The produced graphs can be formatted with graph editing software.

More ...

1829 days ago

Behind the scenes: a thought abroad

A blog is a nice opportunity to have a crack at different technologies. Here is a summary of systems and software involved in running this blog.

More ...