news
Programming Leftovers
-
Var Zero ☛ Beyond recall and the illusion of competence
There seem to be two dominant opinions about AI and programming. One says AI is mostly useless because it writes horrible code and fixing its mistakes takes longer than writing the code yourself. The other says that AI-generated code is so good that it will eventually make programmers obsolete.
I think both arguments focus on the wrong thing because they focus on who writes the code.
-
Chris ☛ A curmudgeon tries a language server
I write code roughly the same way I did ten years ago1: I make edits in my text editor, I switch over to a terminal window and I run a command to compile and execute the code. I look at the result, then switch back to my editor. If I am unsure of what happens, I either add tracer prints to the code and restart the program, or I restart the program in a debugger. If I hit an exception that crashes my program, I fix the problem and then restart it.
-
Paweł Grzybek ☛ Jump between projects in Neovim
Modern IDEs let you jump from project to project with ease. Neovim doesn’t have this feature, so folks usually keep a few terminal windows or tabs open or jump between Zellij or tmux multiplexer panes. As you can imagine, there are also a gazillion plugins to fill this gap.
None of these fits my bill, so I spent a moment to craft a solution that I wanted to share with you. It is a quick way of opening a project and pointing the current directory to a new location for all the relative paths to resolve against. Restoring a session (open buffers, windows and tabs) comes as a nice bonus. Here it is.
-
Miguel Grinberg ☛ Forgejo hack: How to set a starting issue and pull request number
I'm currently working on migrating my open source projects from GitHub to a self-hosted Forgejo instance. As part of this effort I often end up looking through the Forgejo source code to figure out if there are hidden ways to configure certain things to my liking when I can't do it on the administration UI. I thought I'd start putting my discoveries in writing here, in case they can help others. So here goes the first one.
-
Kyle Reddoch ☛ Why the Patch Window Is Collapsing and What Defenders Must Do
Attackers are exploiting vulnerabilities faster than most organizations can safely patch. Defenders need an emergency response model that contains exposure, hunts for compromise, deploys fixes, and proves the risk is gone.
-
Farid Zakaria ☛ Actually Queryable Executables
A quick recap: SELF, a format where the program is a SQLite database. We can use binfmt_misc to trigger a custom interpreter that maps the rows in the segments table and jumps to the entry point, and a whole class of binary tooling collapses into SQL.
-
Farid Zakaria ☛ Stamping build info in constant memory
The reason it is a separate step is caching. If the build info was generated at link time then everytime we link the binary it would produce different bytes causing it to not be bit-reproducible. When something is bit-reproducible, it is safe to cache it, and the build system can apply early cut-off optimizations.
-
Dirk Eddelbuettel ☛ Dirk Eddelbuettel: gettz 0.0.6 on CRAN: Maintenance
Another minor routine update 0.0.6 of gettz arrived on CRAN just now.
gettz provides a possible fallback in situations where
Sys.timezone()fails to determine the system timezone. -
Perl / Raku
-
Rakulang ☛ Rakudo Weekly 2026.34 YAR by Coke
Will Coleda (aka “Coke”) has published Yet Another Release of Rakudo (2026.08), the most mature implementation of the Raku Programming Language. With an impressive amount of work by Nick Logan! NOTE: This may well be the last Rakudo release that uses the legacy grammar by default.
-
-
Python
-
Juha-Matti Santala ☛ V is for visible characters - Python A to Z
For each card, I can write a short note to tell why it’s in my binder.
Here’s an example of my most recent addition: an Onix card that’s signed by all the players in our recent retro tournament where I finished 2nd.
-
University of Toronto ☛ Making a bytes/Unicode confusion in email parsing in Python
This will require some background. I handle my email in the venerable (N)MH, which is very old and thus slightly flawed. One of those flaws is that while NMH can quote a true plain text message that you're replying to, you need to set up your own, additional stuff to properly quote MIME-encoded email in replies. Specifically, you need a program that will MIME-decode and pretty-print every text-based body part you want to quote. I have a long standing Python program for this, and not too long ago I moved it from Python 2 to Python 3 (which involved some learning experiences).
-
-
Shell/Bash/Zsh/Ksh
-
Adam Johnson ☛ Zsh: manipulate filenames with modifiers like :r (root) and :e (extension) - Adam Johnson
Zsh modifiers are a family of suffixes that transform words as they’re expanded. Several of them are dedicated to slicing up filenames, replacing fiddly calls to dirname, basename, and friends. Let’s take a look at them now!
-
-
Java/Golang
-
Ubuntu Handbook ☛ Go Language 1.27 Released with Generic Methods, JSON v2, SIMD Support
Go language (aka Golang) released new major 1.27 version in last week, six months after the last 1.26. The new version of this popular programming language added support generic methods, which can now declare their own type parameters, making generics more flexible.
-