Examenroute rijbewijs A (examencentrum St-Denijs-Westrem)

In februari heb ik het examen openbare weg afgelegd in het examencentrum te Sint-Denijs-Westrem. Nu ken ik de streek rondom het examencentrum behoorlijk (wat niet noodzakelijk een voordeel is), maar misschien heeft iemand anders wel iets aan de route die ik gereden heb. Bovendien is info over examenroutes behoorlijk karig. Vandaar dit bericht.

Continue reading “Examenroute rijbewijs A (examencentrum St-Denijs-Westrem)”

Upgrading your mastodon instance

As mastodon v3.3.0 has been released for over two months now, I figured it was time to upgrade my family instance from v3.2.1 to v3.3.0 (thereby skipping v3.2.2).

I wrote about hosting your own instance, via docker-compose, in a previous post. The past week I’ve been tinkering with mastodon development. Considering what a pain it has been to setup a local development environment, I remain convinced that a containerized setup is the way to go for hosting mastodon. Let’s get started!

Continue reading “Upgrading your mastodon instance”

Hosting your own mastodon instance via docker-compose

Mastodon mascotteRecently I’ve setup an invite-only mastodon instance as a private space for

friends and family. While I am still evaluating whether mastodon is the right tool for such a private space, I’d like to share a number of issues I encountered during setup. Continue reading “Hosting your own mastodon instance via docker-compose”

Migrating nextcloud to a new server


I’ve been using a self-hosted file sharing service for the past three years in order to move away from large commercial parties in this space. I started using owncloud in the summer of 2016, but switched to nextcloud later that year as Frank Karlitschek, the founder, left owncloud. The open source, large community and the self-hosted aspects of nextcloud are the biggest draws to the project for me. Hosting my own instance means I get to indulge in some sysops, one of my pastimes. You can find more details on the self-hosted aspect in the ‘Self-hosted’ section at bottom of this post. In short, I decided to switch to a new offering of my VPS provider which meant migrating nextcloud to a new server.

Continue reading “Migrating nextcloud to a new server”

Customizing the gnome terminal emulator

Recently I switched from Xubuntu to Arch linux as my daily driver and I decided to give Gnome 3 a try over XFCE. While XFCE has served me well for many years, the development on XFCE is not as active as on Gnome 3 (unfortunately). For example, whereas Gnome 3 has been running on GTK3 for a while, XFCE is still in the process of being ported to GTK3. This means (among other things) that Gnome supports the Wayland display server protocol, whereas XFCE does not.

One of the things I’ve always liked about XFCE is the many customization options it presents to the user. This makes it a very flexible DE that can be customized to your needs. For example: as I spent a lot of time in the terminal I like the terminal output to take up as much screen estate as possible (where vertical screen estate is at a premium on a 1080p display). In case of the XFCE terminal emulator, you can choose to hide the window menu, the window borders, the window scroll bars and the window title bar. This saves screen estate which can be used to display ~two additional lines of code.

Continue reading “Customizing the gnome terminal emulator”

Bikepacken op de GR151 tussen Marbehan en Marloie

De Tour du Luxembourg Belge is een bewijzerGR151de wandelroute door het hart van de provincie Luxemburg. De volledige route is zo’n 230 kilometer lang met een 5600tal positieve hoogtemeters. Door de goede ontsluiting met het openbaar vervoer op het westelijke deel van de route, leek de GR151 de ideale kandidaat voor een eerste bikepacking ervaring. De route passeert immers onder andere langs de stations van Marbehan, Libramont, Jemelle en Marloie. Bij eventuele problemen is het dus eenvoudig om de tocht vroegtijdig in te korten.  Continue reading “Bikepacken op de GR151 tussen Marbehan en Marloie”

Google protobuf at run-time deserialization example in C++

Lately I have been looking at Google’s format for interchanging data between multiple processes or Protocol Buffers. As you would expect for an inter-process data format Protocol Buffers are supported on different platforms and implementations are available for most popular programming languages. An interesting example of such a platform is the stm32l1 micro controller, which is supported by a third party protobuf implementation named nano pb.

One of the interesting feats of Google’s C++ protobuf implementation is that it supports deserializing arbitrary protobuf objects at run-time. As long as the proto definition is known at run time, the library is capable of parsing any message back into the individual fields from the proto definition. This is especially useful in situations where a program has to be able to handle proto definitions that are unknown at compile time. In this case the standard approach of using the proto compiler (protoc) to construct C++ class definitions, writing (de)serialization code and linking the resulting program with these definitions is obviously not possible.

This post addresses the lack of examples that demonstrate this ‘at run-time deserialization’ feature of Google’s C++ protobuf implementation. The example below was constructed by combining the protobuf unit tests with this example provided by . It has been tested with the v3.0.0-beta-3 from Google’s github repo. Use at your own discretion. The example should be self explanatory.
Continue reading “Google protobuf at run-time deserialization example in C++”

Cross compiling C projects with external dependencies: Click modular router and the Raspberry PI


At IBCN – my research group – we rely on Click router for implementing and evaluating various Internet communication protocols. Click is a modular software router in C++ that was developed at the end of the last century by Eddie Kohler and others at MIT (the original research paper is available here). Apart from the IP routing functionality that ships with Click, we’ve added a CoAP implementation that has been widely tested at ETSI Plugtest interoperability events. We also have a working 6LoWPAN implementation that was tested in  at last year’s summer IETF in Berlin. Lately, we’ve also added DTLS integration via CyaSSL. Continue reading “Cross compiling C projects with external dependencies: Click modular router and the Raspberry PI”

Bibliography available

In the interest of computer science research (ahum) I have put online my bibliography with PDF downloads of my own papers (i.e. where I am the first author).

I would urge any researcher to do the same as there is little to gain by isolating your work behind a pay wall. Apart from pay walls, hosting your own bibliography also makes accepted but unpublished work accessible to others sooner!

Cfr. http://cr.yp.to/bib/online.html