My "production stuff" is listed at https://github.com/alexpdp7/alexpdp7/blob/master/README.md#other-usable-projects-of-mine
from my link log —
Shaman: evaluate the numerical accuracy of a C++ application and locate sources of error.
https://gitlab.com/numerical_shaman/shaman
saved 2021-02-20 https://dotat.at/:/KW294.html
I thought 32gb on my desktop was excessive. Today I tried to use DuckDB in a way that required compiling it. With 32gb, my computer keeps killing Firefox to free RAM so that the compilation can finish.
(I think in general compiling DuckDB is not necessary, but I'm weird.)
GitHub lacks support for repositories using sha256 instead of the classic sha1. Problem or opportunity?
One of the coolest things I’ve seen recently is the platform that the University of Kent uses to teach programming. It’s a little circuit board that looks like a gameboy, complete with LCD and buttons, powered by a microcontroller.
They start people off with MicroPython and can teach core programming concepts as well as things like 2D graphics, different algorithmic performance, and so on with the platform. Some of the students write moderately complex games.
We’re hoping to do a version with them using our CHERIoT chips so that they can teach sandboxing and other security concepts on the same device.
I was a bit nervous about the performance (including the overhead of a Python interpreter that is optimised for memory usage and not performance) until I saw this post. Our chips runs at 250 MHz and has DMA that can push pixels to the LCD, as well as a couple of orders of magnitude more code and data memory than the original. I think it will be fine.
(And, yes, one of our customers has already ported Doom to run on the FPGA development platform, which has less memory)
Cloudflare just had to buy one of the few slogans I like so I would dislike them more.
Guess why I was thinking about architecture astronauts a few minutes ago. I searched and apparently I had missed this article from Joel where he apparently coined the term:
https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/
I think it's a bit ironic considering what Joel seems to be doing these days, and it is not entirely what I think about architecture astronauts, but it's still worth reading in my opinion.
Due to $REASONS, this morning I've been exploring Python monorepo setup options. I focused on Hatch as it seemed to tick many of my boxes.
I found some stuff odd. For example, by default it does not generate lock files!
However, I found it reasonable and it allowed me to integrate a Django project reasonably according to my tastes.
Nice, "nano --modernbindings" uses shortcuts more similar to common editors on Windows and macOS. Even Debian stable has a nano with support for this option!
https://neil.fraser.name/news/2026/09/03/
Shocking. I always said "DNS is not so bad, I'm not aware of ICANN doing crazy shit."
If I understand correctly, ICANN in fact now has done insanely crazy shit in a way that breaks my trust significantly.
Luckily the only two "important" domains that I use personally are both .net, and they are much bigger than .name so I doubt they're going to pull something like that, but it's annoying to have to watch your back for ICANN.
Perchance anyone with personal experiences with external USB enclosures for 4-5 drives? My Proliant Microserver might be edging closer to a much needed retirement after perhaps 10 years of service.
But in today's day and age, it seems difficult to get reliable information on noise and heat from those enclosures.
This seems (contradictorily) good general advice, but I just added it to my list of basic links:
https://earthly.dev/blog/thought-leaders/
"Don't Feed the Thought Leaders" explains that contingent advice (that depends on the situation) is in general better than generic advice. In my experience, one of the most difficult parts is knowning when you have to deviate from common practices.
I used an answer from softwareengineering.stackexchange when explaining London/Chicago [or Detroit] testing styles, but it started giving me bot countermeasures. I also had a few scattered links about testing, so I decided to write a short article to connect everything and serve as a nice link reference for myself:
I wrote on why we should be skeptical that "how can we scale-up X?" (be that our open knowledge #commons or "how can we get a European Google", …) is a reasonable framing.
As biologist JBS Haldane (and many planners inspired by him) point out, 'being the right size' does not just apply to animals, but also human organizations. You can't just 'scale' it without dramatically altering its shape and dynamics.
On 'scaling up' and being the right size
Huh, a Git remote can have multiple URLs. This does not affect fetching/pulling, but pushes will push to all URLs.
I had been doing this manually like a barbarian.
https://git-scm.com/docs/git-config#Documentation/git-config.txt-remotenameurl
This week I realised that #git bundles are even more awesome than I thought. And I was a fan of them already!
git bundles are my favourite way to receive patches by email. They're very small; a single file can contain a whole series of commits, instead of having to cat-herd one attachment per patch (or worse, one _email_ per patch); they're so obviously binary that not even a really bad MUA is likely to "helpfully" do text processing on them, and a user isn't tempted to paste them into the message body instead of making them a proper attachment. Also, they explicitly state which existing commit the changes started from, which is helpful for handling conflicts, and for knowing what you expect the sender to have taken account of.
But this week I realised there's one more advantage: if the same commit appears in more than one bundle, it will be reliably recognised as identical. This is helpful when you're the one _sending_ the bundle.
Suppose I send someone 3 patches. Half an hour later I smite my forehead and realise I need to send one more. With 'git format-patch' I probably send just the extra patch, so that the recipient has to extract attachments from two emails and apply them in the right order. Or I send all 4 patches in email #2, and the recipient gets errors if they do the obvious thing with that email after they've already applied the patches from #1.
But with git bundles, I can send a bundle of all 4 commits in email #2, and it will do the right thing _regardless_ of whether the recipient had already pulled from the previous bundle in email #1!
Just got a year minimal subscription to sourcehut. Mostly to support their recent policy changes (totally unsurprising changes).
But also, because I have been toying with their excellent mailing list implementation for a small project.
sourcehut is an interesting project. Some stuff about it gives me pause, but on the whole it gets so many things right in surprising, daring and elegant ways.
I just guessed that you can put any commit you like in an interactive Git rebase "input file", and it works.
That was fun. Used it to replace some outdated commits that I had updated in different, newer branches.
Nearly half of the apps in the LG TV app store and close to a quarter for Samsung include residential proxy software:
https://krebsonsecurity.com/2026/07/fbi-seizes-netnut-proxy-platform-popa-botnet/
LG is taking action, at least:
https://krebsonsecurity.com/2026/07/lg-to-ban-residential-proxies-from-smart-tv-apps/
I think it's not difficult to guess what the following bash snippet outputs:
md5sum /proc/$$/environ ; export FOO=bar ; md5sum /proc/$$/environ ; FOO=qux; md5sum /proc/$$/environ
What's interesting is what happens if you put that inside bash -c '...'.
LMDB 1.0 is out, with some great improvements!
However, you should not upgrade blindly. The on-disk format is not compatible (opening 0.9 databases with 1.0 yields "File is not an LMDB file", which has already scared one PowerDNS user), and some programs (Postfix, Knot) have noticed that they needed to adjust API usage here and there.
Upgrade info/guide: http://www.lmdb.tech/doc/upgrading.html
A warning about blindly upgrading: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296530
So, enjoy LMDB 1.0 - responsibly!
personally i'm ok with AI techniques being less well known but there's a deeper thing going on here which is far more important IMO, because it's also partially why LLMs have taken over
== this thread is in response to this tweet: ==
Reminder: the sudden nostalgia for VB (and Flash) is not because VB was good, it’s because VB was:
Better than most other things available at the time for rapid application development.
Impressive compared to the abilities of the hardware it ran on.
Better than most things that came after it for low-effort software development.
We don’t need resurrected VB or Flash, we need something that takes advantage of the power of modern computers to deliver something that has the same ease of use of these tools.
I just published a first version of my new editor project: Wordgard!