Tux Machines
Programming Leftovers
Posted by Roy Schestowitz on Dec 10, 2025
Yordi Verkroost ☛ Advent of Code 2025 - Day 9
Number 9, turn me on dead man! And... grids again. While the first part of today's puzzle is easy to implement, the second part got me down the rabbit hole of the shapely library, GEOS computational geometry, DE-9IM matrices, ray-casting and all sorts of other wildly interesting theoretical mathematical knowledge.
Let's dive in!
Chris ☛ Advent of Code in Dialog
Not long after I published the article on programming the Z-machine using plain Inform 6 with no standard library, someone let me know I might like the Dialog language. What’s really cool about Dialog is that it takes the evaluation model of Inform 7, improves on it by being more consistent about it, and wraps it in a sensible syntax.
Daniël de Kok ☛ Milk-V Duo 256M
I use a Nix-based cross-compilation environment. The upstream SDK V2 images use a statically-compiled system (no glibc available), so to build for it you need to build static binaries. You can do this by setting up cross-compilation for the riscv64-unknown-linux-musl target and then passing -static to gcc/g++ for static compilation
Pi My Life Up ☛ Installing the LGPIO Library on the Raspberry Pi
The LGPIO library is a popular C library that helps Linux computers communicate with GPIO pins like those on your Raspberry Pi. It has many features that have made it a popular choice for those who want to interact with devices via these pins.
Ubuntu Handbook ☛ PyCharm 2025.3 Released with New LSP Tools & Claude Hey Hi (AI) Support
After 4 months of development, JetBrains finally announced the release of PyCharm 2025.3 today. The new version of this Python IDE does NO longer have Community Edition, but introduced an unified version that brings everything together in a single product. While, Community users can continue using the IDE for free.
Ubuntu Handbook ☛ IntelliJ IDEA 2025.3 Released with Command Completion & Claude AI
JetBrains announced the 2025.3 release of its IntelliJ IDEA JAVA IDE yesterday. Like PyCharm 2025.3, the new version does no longer provide the Community Edition. Instead, it introduced an unified version that bring the Community and Ultimate editions together in a single product. While, Community users can continue using the IDE for free.
Perl / Raku
Perl ☛ Perl Advent Calendar 2025 - The Ghost of Web Frameworks Future
PAGI - the Perl Asynchronous Gateway Interface - is a new specification for async-capable Perl web applications. If PSGI was Perl's answer to Python's WSGI, then PAGI is Perl's answer to Python's ASGI.
The key insight is simple: modern web applications need more than request-response. They need: [...]
Python
Reuven Lerner ☛ 30 things I’ve learned from 30 years as a Python freelancer
30 years! It’s hard to believe, but it was in December 1995 (i.e., 30 years ago) that I went freelance, giving up a stable corporate paycheck. And somehow, I’ve managed to make it work: During that time, I’ve gotten married, bought a house, raised three children, gone on numerous vacations, and generally enjoyed a good life.
Moreover, I’m fortunate to really enjoy what I do (i.e., teaching Python and Pandas to people around the world, both via LernerPython.com and via corporate training). And why not? I earn a living from learning new things, then passing that knowledge along to other people in order to help their careers. My students are interesting and smart, and constantly challenge me intellectually. At the same time, I don’t have the bureaucracy of a university or company; if I have even five meetings in a given month, that’s a lot.
Philip Zucker ☛ Semi-Interactive Assembly Verification in Knuckledragger | Hey There Buddo!
I use the pypcode package which offers lifters from binary to Ghidra Pcode. I have a symbolic executor that given a specification will discover the finite trace fragments that make up the CFG. (If you give a bad spec or there isn’t a finite CFG, the symbolic executor won’t terminate.). The executor emits verification conditions that are roughly of the form precond /\ path_condition => postcond / assert. A cute formulation here is that invariants are expressed to the system as “cuts” of the CFG.
Shell/Bash/Zsh/Ksh
Johnny Decimal ☛ 22.00.0172 Terminal tricks
Since writing this page years ago, I've become a bit better at using the Terminal.1 I just realised how simple it is to move to a Johnny.Decimal folder. Here's how.
I'll explain why this works, as you'll need to tweak it for your own setup. So the first thing you need to know is where my system lives on my filesystem. My personal system, folder name P76 Johnny's personal system, is in my ~/Documents folder.
Java/Golang
Anton Zhiyanov ☛ Go proposal: Secret mode
The new runtime/secret package lets you run a function in secret mode. After the function finishes, it immediately erases (zeroes out) the registers and stack it used. Heap allocations made by the function are erased as soon as the garbage collector decides they are no longer reachable.