Recent Posts

Custom commands for gitk

I love extensible tools. Things that are simple and easy to learn, and yet support power user usage patterns. One thing that I particularly like when tools...

Make Kitty look like Xfce Terminal

I love Xfce. In fact, Xfce is the reason I am still using X11, despite being one of Wayland’s earliest contributors. But two weeks ago I made the switch from...

The std::map antipattern

Here is an antipattern I see every now and then in C++ codebases, and have even written myself: cpp std::map<int, Widget> where the map of the key is r...

TIL: git absorb

git absorb looks at your unstaged changes, figures out which commits on your feature branch they belong to, and creates the right --fixup commits automatic...

The msr files are weird

Have you ever read from or written to the /dev/cpu/*/msr files? If you aren’t in virtualization, RAPL monitoring tools, or performance analysis tools, chance...

Dipping my toes into FPGA development

I recently came across the “Sipeed Tang Primer 20k”, an entry-level FPGA. The internet claims that it can be programmed and used with an all-open-source too...

Podman: two minutes to sub-second

If your Podman containers take over two minutes to start, check your storage driver: $ podman info --debug | grep graphDriverName graphDriverName: vfs If ...