Recent Content

You get to drive a car in a game capturing some images and the corresponding steering angle. You then use that data to build a neural network that spits out a steering angle for an input image such that the computer can drive the same car in the same game. The computer learns how to drive from you, hence behavioral cloning.

This blog is mainly about writing code, so it contains many code snippets that look much nicer when colored according to the syntax of their language. The code coloring has become slow lately due to suboptimal interactions between lisp and python and needs to be improved.

Building a usable Scala workflow with Emacs and Ant.

This post revisits the game project some half a year after the game already worked. The game used timers to handle asynchronicity, which was pretty messy. This post introduces an RTOS, complete with multiprocessing, a scheduler, and semaphores.

I have licenses for those fancy commercial math and simulation programs, and I need to use them occasionally. Somehow, I have developed an aversion to letting non-open-source software access my system and home directory, so I decided to use Docker to contain all that stuff. The challenge comes with handling graphics and sound. This post shows how to provide X and PulseAudio servers in Docker to run GUI apps.

Installing and running Zephyr RTOS on Arduino 101 using custom-built open source toolchains.

Making the UEFI installation of the UP Board boot Debian and making Debian drive the multimedia peripherals.

Installing and running Zephyr RTOS on FRDM-K64F.

Fun with shuffling file contents using a splay tree.

The last thing we need is some randomness for the game not to be boring. We will build a Linear Congruential Generator that reads out the timer register on the first button event to get a seed. We will also need a game engine so that things don't get too messy.