Why I'm ignoring pretty much all new Python packaging tools

One of the things going on right now is that Python is doing aPython developer survey. On the Fediverse, I follow a number ofpeople who do Python stuff, and they've been posting about variousaspects of the survey, including a section on what tools people usefor what. This gave me an interesting although very brief look intoa world that I'm deliberately ignoring, and I'm doing that becauseI feel my needs are very simple and are well met by basic, essentiallyuniversal tools


Why Linux wound up with system package managers

Yesterday I discussed the two sorts of program package managers , system package managers thatmanage the whole system and application package managers thatmostly or entirely manage third party programs. Commercial Unixgot application package managers in the very early 1990s , but Linux'sfirst program managers were system package managers , indpkg and RPM (or at least those seem to be the first Linux packagemanagers).

The abstract way to describe why is to say that Linux distributions had to assemble a whole thingfrom separate pieces


The two subtypes of one sort of package managers, the "program manager"

I've written before that one of the complications of talking aboutpackage managers and package management is that there are twocommon types of package managers , programmanagers (which manage installed programs on a system level) and module managers (which manage package dependencies for your projectwithin a language ecosystem or maybe a broader ecosystem). Today Irealized that there is a further important division within programmanagers. I will call this division application (package) managers and system (package) managers .

A system package manager is what


Forcing a Go generic type to be a pointer type (and some challenges)

Recently I saw a Go example that made me scratch my head and decodewhat was going on (you can see it here ). Here's what I understand aboutwhat's going on. Suppose that you want to create a general interface for a generic typethat requires any concrete implementation to be a pointer type.We can do this by literally requiring a pointer:

type Pointer[P any] interface {   *P}

That this is allowed is not entirely obvious from the specification,but it's


Scraping the FreeBSD 'mpd5' daemon to obtain L2TP VPN usage data

We have a collection of VPNservers, some OpenVPN based and some L2TP based. They used to bebased on OpenBSD, but we're moving from OpenBSD to FreeBSD and the VPN servers recentlymoved too. We also have a system for collecting Prometheus metricson VPN usage , which worked by parsing the output of things .For OpenVPN, our scripts just kept working when we switched toFreeBSD because the two OSes use basically the same OpenVPN setup.This was not the case for our L2TP VPN


Printing things in colour is not simple

Recently, Verisimilitude left acomment on my entry on X11's DirectColor visual type , where they mentioned that LPeter Deutsch, the author of Ghostscript, lamented using twenty-fourbit colour for Ghostscript rather than a more flexible approach,which you may need in printing things with colour. As it happens,I know a bit about this area for two or three reasons, which comeat it from different angles. A long time ago I was peripherallyinvolved in desktop publishing software, which obviously cares about


Understanding <code>query_response</code> in Prometheus Blackbox's tcp prober

Prometheus Blackbox is somewhat complicated to understand .One of its fundamental abstractions is a 'prober', a generic wayof probing some service (such as making HTTP requests or DNSrequests). One prober is the 'tcp' prober, which makes a TCPconnection and then potentially conducts a conversation withthe service to verify its health.For example, here's a ClamAV daemon health check, which connects,sends a line with "PING", and expects to receive "PONG":

  clamd_pingpong:

Pitfalls in using Prometheus Blackbox to monitor external SMTP

The news of the day is that Microsoft had a significant outageinside their Microsoft 365 infrastructure. We noticed when we stopped beingable to deliver email to the university's institutional email system, which was a bit mysterious in the usual way of today's Internet :

The joys of modern email: "Has Microsoft decided to put all of ouremail on hold or are they having a global M365 inbound SMTP emailincident?"

(For about the last hour and a half, if it


What ZFS people usually mean when they talk about "ZFS metadata"

Recently I read Understanding ZFS Scrubs and Data Integrity ( via ), which isa perfectly good article and completely accurate, bearing in mindsome qualifications which I'm about to get into. One of the thingsthis article says in the preface is:

In this article, we will walk through what scrubs do, how the Merkletree layout lets ZFS validate metadata and data from end to end, [...]

This is both completely correct and misleading, because what ZFSpeople mean we talk about "metadata


The long painful history of (re)using <code>login</code> to log people in

The news of the time interval is that Linux's usual telnetd hashad a giant security vulnerability for a decade . Aspeople on the Fediverse observed, we've been here before; Solarisapparently had a similar bug 20 or so years ago (which wasCVE-2007-0882, cf , via ), and AIX inthe mid 1990s (CVE-1999-0113, source , also )), and also