I’m writing this while I’m pondering whether a project of mine is ready for its first release, 0.1. I don’t like to rush things out, even though I do believe in Release early, release often, so I’ve been thinking about whether it is time or not… and that led me to a different train of thought I wanted to share with you, especially people out there who, like me, are amateurs with little experience and who only write small projects.
S2idle and the Nature of Laptops
You tell your laptop to “suspend to RAM.” Are you really sure that’s what your system just did? I was utterly surprised, when I purchased my current laptop (a model of the HP 15 series that was released in 2024), that things had changed since the last laptop I had bought back in 2013.1 Power management has changed, and things smell a lot of “mobile convergence” these days.
It’s funny because using Linux shields you from one day discovering that your 10 years old PC doesn’t work anymore. Linux supports old systems by philosophy, where MacOS and Windows are picky about how old your laptop, especially laptops, is. Microsoft is more lenient on the software side of things, such that only until recently you still could run old Win16 software on modern Windows versions. When it comes to hardware, though, good luck if your system doesn’t come with UEFI and “certified” hardware, and good luck in a couple of years.
AI: Not a Friend, Not a Therapist
This is a small piece of writing that will show the many trades I’m a jack of. Rather unfortunately, though, because I wish I never had to write. The Generative AI-based assistants situation isn’t about technology, resources consumption, or copyright anymore. It’s about who we think we are as a human species, what we think we deserve from ourselves, and a battle for keeping our collective and individual mental health in good shape.
Managing Complexity in a Linux System
This story begins with me innocently wanting to try out virt-manager, a graphical frontend to libvirt, which in turn is a tool to manage virtualized systems, with support for various hypervisors. In my case, my hypervisor of choice has been QEMU for many, many years. Little did I know when I started my testing what virt-manager was going to do to my setup.
The way I use QEMU reflects the reason why I use it in the first place. I keep a FreeBSD VM and an OpenBSD VM to test the portability of my code when I’m writing a project. The reason why I do so is because on Linux testing against MUSL is trivial and substituting Clang/LLVM for GCC is also a trivial thing to do. However, when it comes to POSIX portability, one might get funny results when dealing with syscalls or with UNIX commands. Even though neither of both BSD systems mentioned is 100% POSIX compliant, stepping outside the Linux bubble is important to ensure that your code is more portable than what you might think from only reading the Standards section of manpages on Linux. So, these two VMs are two very simple systems, without any graphical environment, and that I fire up every once in a while on my desktop. I don’t keep them up for more than half an hour when I use them. So, accordingly, I’m used to fire them up via a simple shell script that is just one single line:
A Case of Bad Journalism: Git Rebase Drama in the Linux Kernel
You may have read the news last week. Linus Torvalds exploded on the LKML because of a series of modifications on Kees Cook’s tree that he thought of being a malicious attack against the Linux kernel code. Cook has been a kernel developer for a long time, so him being accused of malicious intent by Torvalds himself of course made the news as soon as it happened. After some back and forth, developer Konstantin Ryabitsev was able to trace the origin of the problem. Some script Cook used to rebase some of his commits had run amok and unintentionally corrupted his tree. After realizing what had happened, Cook was reinstated as part of the project. No harm was done; business went on as usual after that.