What Prometheus Blackbox's TLS certificate expiry metrics are checking

One of the things that the Prometheus Blackbox exporter can do is connectto services that use TLS and harvest enough certificate informationfrom them to let you monitor and alert on soon to expire TLScertificates. Traditionally, this was a single metric,probe_ssl_earliest_cert_expiry, but in the 0.17.0 release asecond one was added, probe_ssl_last_chain_expiry_timestamp_seconds.TLS certificate expiry issues have been on my mind because of themess from


Unix's design issue of device numbers being in stat() results for files

Sometimes, you will hear the view that Unix's design is withoutsignificant issues, especially the 'pure' design of Research Unix(before people who didn't really understand Unix like Berkeley andcorporate AT&T got their hands on it). Unfortunately that is notthe case, and there are some areas where Research Unix made decisionsthat still haunt us to this day. For reasons beyond the scope ofthis entry, today's example is that part of the file attributesthat you get from stat


Sometimes it takes other people to show you some of your site's design flaws

Recently, I wrote an entry about people's efficiency expectationsfor generics in Go ,and also wound up having a little discussion in the comments ofthat entry. The r/golang reddit linked to my entry ,so I read it, and one thing I noticed was that one of the peoplecommenting probably didn't realize that the entry and my commenton it had been written by the same person.

My first reaction was uncharitable, but then I put myself in thatcommentator's shoes and had a


Today I learned that HTML <abbr> may not do much on mobile browsers

For some time, I've been using HTML elements with title attributes in my writing here on Wandering Thoughts .Sometimes I use it purely to provide a friendly expansion ofabbreviations, like a TLS CA or MITM ; sometimes the expansionacquires some additional commentary, such as the mention of itself in this entry , and sometimes Iuse it for little asides. In a couple of contexts I use it to provideadditional information; for example, any of my comments here(currently) say


In Go, the compiler needs to know the types of things when copying values

If Go implements generics (which seems likely to happen someday),there will be a lot of interesting generic functions that don'tneed to do much more with the specific types they're instantiatedwith other than copy values around (and often allocate slices and theirbacking arrays). The classical map, filter, and reduce trio alldon't need to do anything more themselves than copy values, and thesame is true for things like making a slice of the keys of a map.If the compiler


The additional complications in DNS updates that secondary DNS servers add

I was recently reading Julia Evans' What happens when you updateyour DNS? (whichis a great clear explanation of what it says), and it brought backsome painful memories of the old days (which are still the currentdays for some people), which I might as well share.

Today, most DNS services that people deal with are managed DNSproviders. When you enter a DNS update into your DNS provider's APIor website for this, magical things happen behind the scenes in theDNS provider


Removing unmaintained packages from your Fedora machine should require explicitly opting in

Ben Cotton recently wrote an entry on Fedora potentially removingunmaintained packages from your system under some circumstances ,because there is a Fedora change proposing to remove 'retired'packages .The change proposal contains the following remarks:

Upgrade/compatibility impact

During an upgrade, all retired packages will be automatically removed.

[...]

How To Test

1. Upgrade to next version of Fedora. 2. Check all retired packagesare removed.

In the ending of Ben Cotton's article, he says in passing "[B


People's efficiency expectations for generics in 'Go 2' and patterns of use

The Go authors have recently come out with a blog entry on thenext steps for generics and a new draft design based on interfaces instead of contracts .As it always is, one of the concerns raised in the draft is about the efficiency tradeoffs of any implementation .

Roughly speaking, there are two ways to implement generics. One isto generate fully specialized implementations every time a genericfunction or type is specialized to a concrete set of types; anotheris to compile only a single implementation and quietly pass hiddenparameters to the


How applications autostart on modern Linux desktops

A while back I mentioned that part of Microsoft Teams' misbehaviorwas autostarting when you logged in ;recently, because I was testing some things on my laptop with alternate desktops, that behavior led to meuninstalling Teams . So allin all, it seemed like a good time to read up on how applicationsget automatically started when you log in (if they do) on modernLinux desktops like Gnome and Cinnamon.

(This is not normally an issue for me in my desktop environment , because everything in it is explicitly


A scrolling puzzle involving GTK+, XInput, and alternate desktops (on Fedora)

Recently I discovered that cawbird wasn't recognizing certain 'scroll up' events in parts of itsinterface. This wasn't a new issue, although I originally thoughtit was; instead for years I'd been missing some of cawbird'sfunctionality without noticing (and before it, corebird). I don'tknow exactly what the core problem is, but part of it appears tobe some sort of interaction between desktop environments (or thelack of them) and the new approach to handling input