Two API styles of doing special things involving text in UIs

A lot of programs (or applications) that have a 'user interface'mostly don't have a strongly graphical one; instead, they mostlyhave text, although with special presentation (fonts, colours,underlines, etc) and perhaps controls and meaning attached tointeracting with it (including things like buttons that are renderedas text with a border around it). All of these are not just plaintext, so programs have to create and manipulate all of them throughsome API or collection of APIs. Over


Ubuntu LTS (server) releases have become fairly similar to each other

Ubuntu 24.04 LTS was released this past April, so one of the thingswe've been doing since then is building out our install system for 24.04 and then building a number ofservers using 24.04, both new servers and servers that used to bebuild on 20.04 or 22.04. What has been quietly striking about thisprocess is how few changes there have been for us between 20.04,22


(Some) spammers will keep trying old, no longer in DNS IPv6 addresses

As I mentioned the other day ,in late September my home ISP changed my IPv6 allocation from a /64to a different /56, but kept the old /64 still routing to me. Ipromptly changed all DNS entries that referred to the old IPv6address to the new IPv6 address. One of the things that my homemachine runs is my 'sinkhole' SMTP server , which has a DNS MX entrypointing to it. This server tracks which local IP address wasconnected to


The missing text focused programming environment

On the Fediverse, I had a hot take :

Hot take: the enduring popularity of writing applications in alist of environments that starts with Emacs Lisp and goes on toencompass things like Electron shows that we've persistently failed tocreate a good high level programming system for writing text-focusedapplications.

(Plan 9's Acme had some good ideas but it never caught on, partlybecause Plan 9 didn't.)

(By 'text focused' here I mean things that want primarily to displaytext


IPv6 networks do apparently get probed (and implications for address assignment)

For reasons beyond the scope of this entry, my home ISP recentlychanged my IPv6 assignment from a /64 to a (completely different)/56. Also for reasons beyond the scope of this entry, they left myold /64 routing to me along with my new /56, and when I noticed Ileft my old IPv6 address on my old /64 active, because why not. Ofcourse I changed my DNS immediately, and at this point it's been


Your options for displaying status over time in Grafana 11

A couple of years ago I wrote about your options for displayingstatus over time in Grafana 9 , whichdiscussed the problem of visualizing things how many (firing) Prometheus alerts there are of each typeover time. Since then, some things have changed in the Grafanaecosystem, and especially some answers have recently become clearerto me ( due to an old issue report ), so I havesome updates to that entry .

The generally best panel type you want to use for this is a statetimeline panel ,with '


Implementing some Git aliases indirectly, in shell scripts

Recently I wrote about two ways to (maybe) skip 'Dependabot'commits when using git log , andsaid at the end that I was probably going to set up Git aliases forboth approaches. I've now both done that and failed to do that, atthe same time. While I have Git aliases for both approaches, theactual git aliases just shell out to shell scripts.

The simpler and more frustrating case is for only seeing authorsthat aren't Dependabot:

git log --perl-

Finding a good use for keep_firing_for in our Prometheus alerts

A while back (in 2.42.0), Prometheus introduced a feature to artificially keep alerts firing for someamount of time after their alert condition had cleared; this is' keep_firing_for '. At the time, I said that I didn't reallysee a use for it for us , but I nowhave to change that. Not only do we have a use for it, it's onethat deals with a small problem in our large scale alerts .

Our '


Prometheus makes it annoyingly difficult to add more information to alerts

Suppose, not so hypothetically, that you have a special Prometheusmeta-alert about large scale issues ,that exists to avoid drowning you in alerts about individual hostsor whatever when you have a large scale issue. As part of thatalert's notification message, you'd like to include some additionalinformation about things like why you triggered the alert, how manydown things you detected, and so on.

While Alertmanager createsthe actual notification messages by expanding (Go) templates, itdoesn't have direct


Syndication feed fetchers and their behavior on HTTP 429 status responses

For reasons outside of the scope of this entry, recently I've beenlooking at the behavior of syndication feed fetchers here on Wandering Thoughts (which are generally from syndicationfeed readers), and in the process I discovered some that were makingrepeated requests at a quite aggressive rate, such as every fiveminutes. Until recently there was some excuse for this, because Iwasn't setting a 'Cache-Control: max-age=...' header ( also ), which is(theoretically)