news
Programming Leftovers
-
Sharon Rosner ☛ OSS Friday Update - The Shape of Ruby I/O to Come - Noteflakes
I’m currently doing grant work for the Japanese Ruby Association on UringMachine, a new Ruby gem that provides a low-level API for working with io_uring. As part of my work I’ll be providing weekly updates on this website. Here’s what I did this week: [...]
-
TigerBeetle Inc ☛ The Write Last, Read First Rule
TigerBeetle is a financial transactions database that offers two primitives for double-entry bookkeeping: accounts and transfers. A separate data store, such as Postgres, stores master data, such as name and address of the account holder or terms and conditions of the account.
This separation enables transfers to scale independently of general purpose master data (for example dealing with Black Friday events) and solves different security, compliance, or retention requirements of the independent data sets (for example enforce immutability of transfers).
-
[Old] Dominik Tornow ☛ Assert in production
On 18 November 2025, Cloudflare suffered a global outage that returned HTTP 5xx errors across much of the Internet for hours. The culprit: a traffic-critical component attempted to read a file that had grown beyond its supported size, causing a crash—courtesy of a single unwrap(). unwrap() is functionally an assertion: If unwrap returns a value, the process continues, otherwise, the process aborts.
-
The Weekly Challenge ☛ Advent Calendar - December 5, 2025
You are given an array of integers, @ints.
Write a script to re-arrange the given array in an increasing order and return the indices where it differs from the original array.
-
Arjen Wiersma ☛ Advent of Code 2025 Day 5
The first thing to figure out is that a list of numbers is in a collection of ranges. Reading in the file and parsing it to numbers is something that has been done the entire week already, then it is a matter of taking the list of ingredients and mapping over the inventory, filtering out the ones that are not in range.
-
AdventOfCode ☛ Day 6 - Advent of Code 2025
Cephalopod math doesn't look that different from normal math. The math worksheet (your puzzle input) consists of a list of problems; each problem has a group of numbers that need to either be either added (+) or multiplied (*) together.
-
Abhinav Sarkar ☛ Solving Advent of Code 2025 in Janet: Day 1–4
I’m solving the Advent of Code 2025 in Janet. After doing the last five years in Haskell, I wanted to learn a new language this year. I’ve been eyeing the “New Lisps”1 for a while now, and I decided to learn Janet.
Janet is a Clojure like Lisp that can be interpreted, embedded and compiled, and comes with a large standard library with concurrency, HTTP and PEG parser support. I want to replace Python with Janet as my scripting language.
Here are my solutions for Dec 1–4.
-
SusamPal ☛ Fizz Buzz in CSS
What is the smallest CSS we can write to produce the Fizz Buzz sequence? One could of course do this with no CSS at all, simply by placing the entire sequence as plain text in the HTML body. So to make the problem precise and keep it interesting, we require that every number and word that appears in the output must come directly from the CSS. Placing any part of the output numbers or words outside the stylesheet or using JavaScript is not allowed. With this constraint, I think it can be done in four lines of CSS as shown below: [...]
-
[Old] Sinclair Target ☛ Thoughts on Go vs. Rust vs. Zig | Sinclair Target
You can fit the whole language in your head because Go has so few features. For a long time, Go was notorious for not having generics. That was finally changed in Go 1.18, but that was only after 12 years of people begging for generics to be added to the language. Other features common in modern languages, like tagged unions or syntactic sugar for error-handling, have not been added to Go.
It seems the Go development team has a high bar for adding features to the language. The end result is a language that forces you to write a lot of boilerplate code to implement logic that could be more succinctly expressed in another language. But the result is also a language that is stable over time and easy to read.
-
University of Toronto ☛ In Linux, filesystems can and do have things with inode number zero
A while back I wrote about how in POSIX you could theoretically use inode (number) zero. Not all Unixes consider inode zero to be valid; prominently, OpenBSD's getdents(2) doesn't return valid entries with an inode number of 0, and by extension, OpenBSD's filesystems won't have anything that uses inode zero. However, Linux is a different beast.
Recently, I saw a Go commit message with the interesting description of: [...]
-
Dr Jonathan Carroll ☛ Haskell IS a Great Language for Data Science
I’ve been learning Haskell for a few years now and I am really liking a lot of the features, not least the strong typing and functional approach. I thought it was lacking some of the things I missed from R until I found the dataHaskell project.
-
Kerrick Long ☛ Peter Coad Slams Alexander’s “Pattern” Theory. Is He Right?
Given how pervasive pattern languages have become, I was surprised to see such stinging criticism of it by Peter Coad, author of Object Models, Second Edition. I don’t know whether he wrote this to set apart the 31 patterns in his book, or to prevent readers from sending pedantic letters about what a pattern “should be.”
-
Yordi Verkroost ☛ Advent of Code 2025 - Day 4
I opened the puzzle for day 4 and almost got a heart attack. It's a grid problem! I still have nightmares from previous years where seemingly straightforward 2D grids turned into three-dimensional ones... and sometimes even four!
Luckily for me, today's 2D grid did not evolve into anything weird and remained as it was. Let's take a look.
-
Yordi Verkroost ☛ Advent of Code 2025 - Day 5
While the forklift breaks through the wall in the fifth day of Advent of Code, I feel like I need a break after a week's worth of 6 AM morning wake-up calls. Thank God it's Friday and almost weekend, but not before solving today's puzzles.
-
Perl / Raku
-
Rakulang ☛ Day 6 – Robust code generation combining grammars and LLMs – Raku Advent Calendar
This document (notebook) discusses different combinations of Grammar-Based Parser-Interpreters (GBPI) and Large Language Models (LLMs) to generate executable code from Natural Language Computational Specifications (NLCM). We have the soft assumption that the NLCS adhere to a certain relatively small Domain Specific Language (DSL) or use terminology from that DSL. Another assumption is that the target software packages are not necessarily well-known by the LLMs, i.e. direct LLM requests for code using them would produce meaningless results.
We want to do such combinations because: [...]
-
The Weekly Challenge ☛ Advent Calendar - December 6, 2025
You are given two array of strings, @str1 and @str2.
Write a script to return the count of common strings in both arrays.
-
Perl ☛ Perl Advent Calendar 2025 - ToyCo want to push new toy updates
Ok. That's easy. Back to our POST handler. $c->req is basically our incoming request, and Mojo has a really fast JSON parser built in that will give us the request body as a perl data structure...
-
-
Python
-
Linux.org ☛ Python Series Part 20: Binding Keys and Events - Part 2
Now we can continue learning about Python by Binding Keys and Events.
If you have not read the previous article, then you definitely need to read it since this article continues and builds on all of it. Some of the following examples may contain material from the first article.
Mouse : MouseWheel
-
-
R / R-Script
-
Java/Golang
-
Carlos Becker ☛ OpenSource Fridays Brasil
I was in a live stream with Pachi Parra, talking a bit about my background, and about GoReleaser.
-
Anton Zhiyanov ☛ Gist of Go: Concurrency internals
This is a chapter from my book on Go concurrency, which teaches the topic from the ground up through interactive examples.
-
Andrew Vittiglio ☛ Golang’s Big Miss on Memory Arenas
When your software team needs to pick a language today, you typically weigh two factors: language performance and developer velocity.
If you choose lower-level languages like Rust, your team will spend weeks fighting the borrow checker, asynchronicity, and difficult syntax. If you choose TypeScript or Python, you’ll hit a performance wall the moment you venture outside of web apps, CRUD servers, and modeling.
-
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: Updating Rust's GNU/Linux musl targets to 1.2.5
Beginning with Rust 1.93 (slated for stable release on 2026-01-22), the various
*-linux-musltargets will all ship with musl 1.2.5. This primarily affects static musl builds forx86_64,aarch64, andpowerpc64lewhich bundled musl 1.2.3. This update comes with several fixes and improvements, and a breaking change that affects the Rust ecosystem.
-