news
Programming Leftovers
-
Seth Godin ☛ Insulation > power
In the long run, though, insulation always wins. You invest in it once and get the rewards forever.
-
J Kenneth King ☛ Least Frequently Used Cache
Back with another post of data structures! This time, the Least Frequently Used cache, also in C++23. In the last post we walked through the Least Recent Used Cache. That cache uses a policy that evicts keys that haven’t been used in the longest amount of time. The Least Frequently Used Cache is also a cache but with a different policy: evict the key that has been accessed the least.
-
Fabian Beuke ☛ Ralph Wiggum Loop: Goal-Oriented Autonomous AI Agent Loops
Popularized in summer 2025, this pattern - and the philosophy behind it - gained significant attention in developer communities. The term describes a minimal implementation (often a shell script or wrapper) that turns a conversational code assistant into a self-correcting, repeatedly-executing worker. The defining characteristic is not a new model or training method, but an engineering wrapper around an existing model: the wrapper captures failures (for example, test output or error logs), then re-prompts the model with that information until a stop condition is satisfied.
-
Earthly ☛ What Is a Guardrails Engine?
These approaches fall short because they assume a level of uniformity that does not exist in real engineering organizations. SDLC signals are messy, unstructured, and distributed across many systems. Teams differ in architecture, risk profile, maturity, and constraints. A central group cannot realistically anticipate every valid variation through templates or static rules.
-
Andrew Nesbitt ☛ The C-Shaped Hole in Package Management
System package managers and language package managers are both called package managers. They both resolve dependencies, download code, and install software. But they evolved to solve different problems, and the overlap is where all the friction lives. If you drew a venn diagram, C libraries would sit right in the middle: needed by language packages, provided by system packages, understood by neither in a way the other can use. As Kristoffer Grönlund put it in 2017: “Why are we trying to manage packages from one package manager with a different package manager?”
-
[Repeat] Godot Engine ☛ Godot 4.6 Release: It's all about your flow
With the stability gained over the past five Godot 4 releases, the engine has matured enough to enter a new development phase. Godot 4.6 kicks off a period of polish, quality-of-life improvements, tighter integration of industry standards, and doubled-down effort on performance optimization.
-
[Old] Luke Lau ☛ Closing the LLVM RISC-V gap to GCC, part 1
LLVM developers upstream have been working hard on the performance of generated code, in every part of the pipeline from the frontend all the way through to the backend. So when we first saw these results we were naturally a bit surprised. But as it turns out, the GCC developers have been hard at work too.
Sometimes a bit of healthy competition isn’t a bad thing, so this blog post is the first in a series looking at the work going on upstream to improve performance and catch up to GCC.
Please note that this series focuses on RISC-V. Other targets may have more competitive performance but we haven’t measured them yet. We’ll specifically be focusing on the high-performance application processor use case for RISC-V, e.g. compiling for a profile like RVA23. Unfortunately since we don’t have access to RVA23 compatible hardware just yet we’ll be benchmarking on a SpacemiT-X60 powered Banana Pi BPI-F3 with -march=rva22u64_v. We don’t want to use -mcpu=spacemit-x60 since we want to emulate a portable configuration that an OS distribution might compile packages with. And we want to include the vector extension, as we’ll see in later blog posts that optimization like auto-vectorization can have a major impact on performance.
-
Luke Lau ☛ Closing the gap, part 2: Probability and profitability
Welcome back to the second post in this series looking at how we can improve the performance of RISC-V code from LLVM.
Previously in part 1 we looked at how we can use LNT to analyze performance gaps, then identified and fixed a missed fmsub.d opportunity during instruction selection, giving a modest 1.77% speedup on a SPEC CPU 2017 benchmark.
In this post we’ll be improving another SPEC benchmark by 7% by teaching the loop vectorizer to make smarter cost modelling decisions. It involves a relatively non-trivial analysis, but thanks to LLVM’s modular infrastructure we can do it in just a handful of lines of code. Let’s get started.
-
Perl / Raku
-
Rakulang ☛ Rakudo Weekly 2026.04 Hello, Goodbye
TPRF sponsor the FOSDEM Perl and Raku community dinner which is is traditionally held on the Saturday evening. All food is included and guests are free to purchase their own drinks.
-
Perl ☛ Podlite comes to Perl: a lightweight block-based markup language for everyday use
One of the core ideas behind Podlite is its consistent block-based structure. Every meaningful element of a document — a heading, a paragraph, a list item, a table, a code block, a callout — is represented as a block. This makes documents both readable for humans and predictable for tools.
Podlite supports three interchangeable block styles: delimited, paragraph, and abbreviated.
-
-
Python
-
Seth Michael Larson ☛ Use “\A...\z”, not “^...$” with Python regular expressions
Two years ago I discovered a potential foot-gun with the Python standard library “re” module. I blogged about this behavior, and turns out that I wasn't only one who didn't know this: The article was #1 on HackerNews and the most-read article on my blog in 2024. In short the unexpected behavior is that the pattern “^Hello$” matches both “Hello” and “Hello\n”, and sometimes you don't intend to match a trailing newline.
-
Julia Evans ☛ Some notes on starting to use Django
Hello! One of my favourite things is starting to learn an Old Boring Technology that I’ve never tried before but that has been around for 20+ years. It feels really good when every problem I’m ever going to have has been solved already 1000 times and I can just get stuff done easily.
I’ve thought it would be cool to learn a popular web framework like Rails or Django or Laravel for a long time, but I’d never really managed to make it happen. But I started learning Django to make a website a few months back, I’ve been liking it so far, and here are a few quick notes!
-