Why IMGUI
Authors note: The sample code in this post will sometimes be modified to be less “correct” in favor of brevity to better convey ideas with less syntactic noise. Introduction In the conversations I’ve had about UI, there has been much debate about immediate and retained mode, their differences, and what the “better” paradigm is for different applications. During these discussions, I’ve often seen the term “immediate mode” used to define a very specific kind of UI implementation that doesn’t reflect what is seen in the wild. There are also many misconceptions about what immediate and retained mode even mean and as a result, some false conclusions drawn about the viability of using them in different scenarios. Before we can discuss each paradigm in depth though, we must first learn what each paradigm is and what makes them tick. ...
IPC From Scratch
Inter-process communication (or IPC) doesn’t typically cause programmers to feel warm fuzzies. “Wait, I just want my programs to talk to each other, why is this hard???” is a sentiment that I very much understand. Recently when working on Mixologist I came to a point where I needed a CLI, a GUI, and a daemon to all run and communicate with one another, sending info back in forth in a wonderfully concurrent, unordered fashion. Those two words being used together usually send shivers down the spine of any experienced programmer but, with a little legwork, the problem is solveable. ...
Hijacking PipeWire for Fun and Profit
One of the things Linux users nearly always complain about is audio. From it flat-out not working, to it not getting picked up in screen shares, it always seems to be behind most of the issues that users cite with any distro (that and NVIDIA drivers but I digress). Fortunately in recent years, the audio situation has gotten a ton better with the introduction of PipeWire. ...