news
Programming Leftovers
-
USMC ☛ Marine Corps hackathon announced for fall
The event, scheduled for Oct. 26-30 at the Naval Postgraduate School in Monterey, California, will bring together military personnel, government employees, industry and academic partners and contractors supporting the government. Participants will choose one of two tracks: developing AI agents on the Defense Department’s GenAI.mil platform or advanced AI development using the service and school’s resources.
-
FSF ☛ FSF publishes incident report on GNU Savannah vulnerabilities
The FSF has now published its report on the GNU Savannah vulnerabilities. In early May, security researchers from Hacktron reported vulnerabilities to the FSF affecting GNU Savannah and demonstrated an exploit. The FSF worked quickly with Hacktron to address this vulnerability and other security issues, which are now resolved.
-
Adventures in PC Emulation ☛ Executable Emoji
This particular post comes out of left field a bit. I was playing around with a web application I had made - an online disassembler for the x86 - when I noticed that emoji were being encoded into the url.
-
Adam Johnson ☛ Git: my git stash -p optimization in Git 2.55
I got another commit merged in Git 2.55 (2026-06-29), yay! The release note reads:
"git stash -p" has been optimized by reusing cached index entries in its temporary index, avoiding unnecessary lstat() calls on unchanged files.
Here is the story of this change.
-
Adam Johnson ☛ Git: list files at a given commit with ls-tree
To list all files in your repository as they were at a given commit, use git ls-tree with its -r and --name-only options: [...]
-
James Brown ☛ Zola 0.23 and Tera 2
I just finished updating this site from Zola 0.22.0 to 0.23.2. It doesn't seem like this should be a big deal, but it turns out that Zola 0.23 ported the templating engine from Tera 1 to Tera 2.
-
University of Toronto ☛ Some ways to navigate through 'git blame' over time in GNU Emacs
As a system administrator, I spend a certain amount of time spelunking through the history of some particular file in Git because I'm trying to understand how it evolved, what it used to do, when something was introduced or removed, and so on. There are two ways to do this, either through a straightforward history of a file or through what I'll call the blame history of a file, where you start with 'git blame' and then ask for what the file looked like before a particular change of interest. I'm pretty sure I first saw the blame history view on Github, where it's a signature feature of their blame view (in the form of the 'Blame prior to change ...' option).
-
Perl / Raku
-
Arne Sommer ☛ Outermost Uncommon with Raku
This is my response to The Weekly Challenge #385.
-
-
Python
-
Philip Zucker ☛ An Intuitionistic Micro Proof Assistant
I wanted a version for intuitionistic logic to play with Bell’s infinitesimal analysis https://en.wikipedia.org/wiki/Smooth_infinitesimal_analysis . Z3 doesn’t help for this problem since it is too classical, so I started from scratch and am using Jens Otten’s nanocopi https://leancop.de/ihat/ , a prolog based prover for intuitionistic first order logic
I’m a fan of “micro” implementations like microkanren. They are more adaptable and easier to explain.
-
Juha-Matti Santala ☛ E is for environment variables - Python A to Z
The code that a program runs is provided by the developer of the program. The inputs and interactions are initiated by the user of the program. The environment variables are data provided by the system that runs it. They are used to abstract configuration to the system level so that the same code can be ran in different environments and act differently (for example, development vs production environments).
-
Juha-Matti Santala ☛ F is for f-strings - Python A to Z
Programming languages have many ways to combine literal strings and variables. For a decade now, we in Python land have been able to enjoy the beauty and elegance of f-strings.
f-string is a string that is prefixed with the letter f: [...]
-
Adam Johnson ☛ Django: introducing django-msgspec
It’s another day, another new package day here. Say hello to django-msgspec, a package of drop-in replacements for Django and Django REST Framework (DRF) components backed by msgspec.
msgspec is a C-based serialization library covering JSON, MessagePack, YAML, and TOML, with optional schema validation through typed Struct classes. Its JSON encoder and decoder are several times faster than the standard library’s, which makes django-msgspec a cheap performance win in the parts of Django that handle JSON.
-
-
Shell/Bash/Zsh/Ksh
-
SANS ☛ Linux Shell Forensic: Let's Dive Into Atuin!
To search across the history, the shell user can use the “reverse-i-search” feature available in Bash (but also other shells). This is the built-in incremental search through your command history, bound to CTRL-R. You hit it, start typing part of a command you ran before, and bash walks backwards through history showing the most recent match as you type — hence "reverse" (newest-first) and "i" for incremental (it updates on every keystroke).
-
Adam Johnson ☛ Zsh: select files with arbitrary code in (e) or + glob qualifiers
Zsh glob qualifiers can select files by many built-in attributes: type, size, modification time, and more. But when no built-in qualifier fits, you can bring in the e or + qualifiers to run arbitrary code, making globs a fully programmable file filter. With great power comes great responsibility!
-