After seeing other people (like Drew and emersion) publish these for a while, I decided to write my own “Status Update” for the first time. I can’t always find enough time to write blog posts, so these monthly status updates should be useful both for other people to keep an eye on what I’m working on, and for me as a historical record.

A full blog post needs to have a decent amount of content, and has a lot of time costs related to research, writing, and editing. This means for small updates, there might be too much friction in getting a post out. On the other hand, a monthly update needs a lot less polish for each individual item you want to talk about. As long as you pay attention to the post as a whole, individual items are allowed to lack the substance expected of a standalone post.

These reasons, combined with my not-so-great track record in posting regularly, makes me think I will be doing this in the future too. So let’s get on with it.


This month I migrated my kernel’s build system from a Makefile to the Ninja build system. Other than depending on a non-standard tool, I am really happy with this decision. I think Ninja is easier to maintain unless your Makefile is really simple.

Aside from the build system migration, and some small fix-ups, I have completely removed the C-based drivers and migrated them all to the new C++ driver system. This code cleanup made it easier to work on device drivers; and as a result of that we now have a graphics driver that works with QEMU, along with a framebuffer to avoid partial frames.

Speaking of Ninja, I also wrote a Python implementation of Ninja. This was both a way to learn about how build systems works, and a way to build my projects in environments without Ninja. While it doesn’t have full feature parity with the original implementation, it can build my projects and even bootstrap Ninja itself.

Fed up with the state of privacy on the Modern Web™, I started working on a browser extension that aims to plug some privacy leaks. It is still not polished enough, and occasionally breaks some JS-heavy websites. But despite that I’ve been using it daily and it’s not too problematic. I’ll try to make an announcement once it’s fully polished and ready to use.

Just as the previous months, I’m still learning more about DSP. Last month I created a software modulator for APT. This month I decided to go a little old-school and made a tool to create for Hellschreiber. Unfortunately, I haven’t had the chance to put up the code online yet.

I wrote a couple pages on my wiki about DSP, and I managed to contribute a little to the Signal Identification Wiki. I’d recommend checking it out, it’s a great resource to sink some time into.

Short update about university: It’s finally over. Once it’s marked and graded, I’d love to write about my dissertation project here.

That’s all for this month! Thanks for reading.