news
Programming Leftovers
-
Tara Stella ☛ It’s not that I like COBOL. I like software that leaves me alone.
What I actually enjoy is understanding complex systems. Networking, operating systems, storage, databases, protocols, old computers, new computers, how all those things evolved and how they fit together. I like taking the Lego bricks that already exist and working out how to connect them. If one little brick is missing, I’m perfectly capable of crafting it myself, but making that missing piece is the means to an end, not the part I’m particularly passionate about.
-
Nate Graham ☛ How I write documentation – Adventures in Linux and KDE
Ahh documentation… everyone’s favorite topic. We all just love reading it — and even more, writing it, right?!
Yeah, I didn’t think so. Like a vacuum cleaner or a dental X-ray, documentation may be sometimes necessary, but you want to interact with it as little and as quickly as possible, then forget about it.
So this goal is not really about writing more documentation, but rather better documentation.
To that effect, I’d like to share some guidelines I try to follow and that I’d like to guide our work when writing software documentation: [...]
-
Kevin McDonald ☛ gRPC vs REST Is the Wrong Question
The reasons for this advice are valid: HTTP/JSON is trivial to set up, inspect in DevTools, cache, proxy, and hit from a browser. gRPC and Protobuf do give you schemas, generated clients, compact and fast binary payloads, and streaming.
Why can’t we have the best of both?
-
Farid Zakaria ☛ A build graph that rolls dice
Nix traditionally was an “applicative” build system. Dynamic derivations make it a “monadic” build system. The difference is that in an applicative build system, the entire build graph is known up front, while in a monadic build system, the graph can be defined as the build progresses.
-
Amit Patel ☛ English: a vs an
The actual rule is not whether the written word starts with a vowel letter, but whether the spoken word starts with a vowel sound. The word <unicorn> starts with a vowel letter () but a consonant sound (cmudict Y, ipa /j/), so it gets a. The word starts with a consonant letter () but a vowel sound (cmudict AW, ipa /aʊ/), so it gets an.
I was curious how often these exceptions occurred, and whether they can be grouped together, so I spent a day looking at the data and building some visualizations and wrote up the results. I was surprised that only 129 of the 32,455 words in my list needed exceptions.
-
Daniel Lemire ☛ More than a taken branch per cycle?
A taken branch jumps to a new location. A taken branch can be more expensive.
You will often hear that processors are limited to one taken branch per cycle.
I decided to test it out with a loop with an if inside it. Here is the function I tested in Go.
-
MaskRay ☛ Linker I/O tricks and their downsides
Each saves a few percent of wall time in an edit-relink loop. Each also breaks an assumption that build systems, debuggers, and profilers make about a process. I measured what they save and what they break.
-
Andrew Helwer ☛ Textbook review: Is Parallel Programming Hard, And, If So, What Can You Do About It?
Here are my thoughts on the free online textbook Is Parallel Programming Hard, And, If So, What Can You Do About It? by Paul E. McKenney, author of the Linux kernel’s RCU synchronization mechanism.
-
Matthieu Napoli ☛ Using non-breakable spaces in test method names
Yes. This article is about using non-breakable spaces to name tests. And the fact that it's awesome. And why you should use them too.
-
Perl / Raku
-
Rakulang ☛ Rakudo Weekly 2026.38 Italiano, per favore
Yet another week, and Andrew Shitov keeps on writing good blog posts, highlighting Raku Programming Language features. This week: They also created Raku localizations for Ukrainian, Latvian and Russian, allowing Raku programs to written in those natural languages!
-
Olaf Alders ☛ The Perl Advent Calendar 2026 CFP Is Open
If you’ve never written an article for the calendar before, this is an excellent time to start. Here’s to another happy holiday of hilarious hacking.
-
-
Python
-
Nick Moore ☛ Using the Waveshare IMX577 Camera from Python
There’s two major ways to use the camera from Python, and each has its benefits and limitations.
-
University of Toronto ☛ Python settings for Flycheck in GNU Emacs (as of September 2026)
Suppose, not hypothetically, that you use GNU Emacs to write Python code, with a Python LSP server and Eglot and that you use Flycheck for diagnostics, which I think you want to. With the current MELPA version of Flycheck (and Eglot), there are a number of settings I've found that I want (in addition to making things work in and with venvs). I more or less recommend that other people consider these settings too, with the usual caveats.
-
-
Shell/Bash/Zsh/Ksh
-
Adam Johnson ☛ Zsh: find the largest files with the (OL) glob qualifier
Got a directory that you want to tidy up bloat from? Whether you’re trying to find bad build artifacts in your work repository or clear out old cat videos from your home directory, Zsh’s (OL) glob qualifier can help you find the largest files.
-
Instructionals/Technical
-
HowTo Geek ☛ Stop using the grep command — this modern Linux command is smarter and faster
If you've spent any time using the Linux terminal, you've probably used the grep command. It's what you use to quickly find a search term in a file or find all the files containing that term. It's useful, reliable, and fundamental to most terminal workflows. That said, grep is old — more than 50 years old. A lot has changed since then — our computing habits have evolved, and new technologies have emerged.
ripgrep is one such new technology. It's a Rust-based alternative to grep that offers most of the same capabilities, along with smarter defaults and generally faster performance. I've personally been using grep for years, but once I switched to ripgrep, it became my new default — it’s just that much better. That said, here's a quick overview of how the two commands compare, so you can decide whether to switch to ripgrep for yourself.
-
-
-
R / R-Script
-
Giles Dickenson-Jones ☛ O*NET ratings, job descriptions and classification codes as measures of occupational similarity
The last post identified potential transition pathways for truck drivers based on how closely other occupations matched them on skills, abilities and knowledge. This post follows the same basic approach across a wider range of occupations and asks whether two proxies could stand in for the ratings where no O*NET exists: a small language model comparing the meaning of job descriptions and the distance between two jobs’ US Standard Occupational Classification (SOC) codes.
-
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: Microsoft's proprietary prison GitHub Actions leaking secrets when Miri output is cached [Ed: "Rust Programming Language" is not for security and not quite a programming language but a Trojan horse that gives Microsoft and non-reciprocal licences an edge with back doors]
The Rust Security Response Team was notified that Miri stores all environment variables to
target/, allowing secrets to persist in caches.While not necessary a vulnerability in and of itself, when paired with Microsoft's proprietary prison GitHub Actions caching behavior, it is possible for this to expose secrets to PRs.
-
Security Week ☛ Rust Team Members and Popular Crate Owners Targeted via Video Calls [Ed: Rust is already compromised by Microsoft GitHub (NSA)]
It’s unclear if the attacks are part of previous campaigns against Rust, but the techniques used by the attackers match those used by North Korea.
-
-
Kernel and Slop
-
Linux and [slop] in 2026, What the Kernel and Distros Have Actually Decided
In 2026 the Linux world stopped asking whether to admit [slop] and started writing the rules. The kernel wants a person to always sign off a patch and provides a tag to declare the machine's help. Debian voted for responsible use of generative [slop], Gentoo has banned it for more than two years, while [slop] bug reports swamp the maintainers.
-
-
Applications
-
OMG Ubuntu ☛ Sublime Text gains new C# highlighter, file icon themes [Ed: Seems like Joey is boosting Microsoft]
A new version of Sublime Text is out – the first major update to the cross-platform (and closed-source) text editor since May 2025. Sublime Text v4213 makes Python 3.14 the default (replacing v3.8). The editor still ships Python 3.3 – ancient as it is – but disabled by default. It will be removed in a future update, but sticks around a little longer incase of plugin compatibility issues. New features in this update includes a rewritten C# syntax highlighter, alongside more general, if unspecified, ‘improvements’ to syntax highlighting.
-