Custom type value printers for Cling

Cling is a pretty cool C++ interpreter built at CERN, which shortens typical C++ development workflows by giving users a REPL (Read-eval-print loop), which means that you can type your C++ code, press ENTER and see the result almost instantly. However, out of the box Cling does not print the contents of structs, classes etc. In this blog post, I explain how a custom value printer can be added at runtime to expose the encapsulated data.

Fixing PCI passthrough Windows 10 VM boot issues

Over time, I’ve encountered various issues with booting my Windows 10 VM that’s accelerated using PCI-passthrough, VirtIO etc. I believe some of the boot issues to be unique to that kind of setup, and have not always easily found solutions to these problems online, so I wanted to document my experiences for the benefit of others.

Basic gqrx I/Q and gnuradio file editing

I’ve been experimenting a bit with Software Defined Radio, and specifically the gqrx and gnuradio tools. The I/Q (In-Phase/Quadrature components) recorder in gqrx can record .raw files, which handily record the entire spectrum visible in the waterfall window. In this blog post, I will show how to load data from those files, extract a subset of the recording, and save that into a new file. Unlike .wav files (for which a plethora of tools exist), I found little documentation on how to work with these files outside gnuradio/MATLAB/Octave.

LISP on Ubiquiti EdgeRouter Lite

Locator/ID Separation Protocol logo, created by Job Snijders

In this blog post, I will explain how to compile the Open Overlay Router (OOR) software for MIPS and how to set it up on an Ubiquiti EdgeRouter Lite to participate in the Locator/ID Separation Protocol (LISP) beta network.

OS switcher

Black plastic project enclosure with a 3-state toggle switch on the side, with 3 positions: Linux, ?, and Win.

My latest hack is for dual-booters: The OS switcher lets you select the operating system (OS) you wish to boot at the flick of a switch, anytime. Booting the OS of your choice no longer requires you to sit in front of your computer, wait for a boot selection screen to show up, and then press some buttons at just the right time.