What I really miss when I don't have X across the network

For reasons beyond the scope of this entry, I spent a couple ofdays last week working from home. One of the big differences whenI do this is that I don't have remote X; instead I wind up doingeverything over SSH. At a nominal level the experience is much thesame, partly because I've deliberately arranged it that way; using sshterm to start a SSH session to ahost is very similar to using rxterm to start an xterm on it, for example. But at a


When Prometheus Alertmanager will tell you about resolved alerts

We've configured Prometheus to notifyus when our alerts clear up. Recently, we got such a notificationemail and its timing attracted my attention because while the alertin it had a listed end time of 9:43:55, the actual email was onlysent at 9:45:40, which is not entirely timely. This got me curiousabout what affects how soon you get notified about alerts clearingin Prometheus, which led to two significant surprises. The overallsummary is that the


Old zombie Linux distribution versions aren't really doing you any favours

One bit of recent news in the Linux distribution world is MarkShuttleworth's recent announcement that Ubuntu 18.04 LTS will getten years of support ( Slashdot , ServerWatch ).As it happens, I have some views on this. First, before peoplestart getting too excited, note that Shuttleworth hasn't saidanything about what form this support will take, especially whetheror not you'll have to pay for it. My own guess is that Canonicalwill be expanding their current paid Ubuntu 1


Some notes about kernel crash dumps in Illumos

I tweeted :

On our OmniOS servers, we should probably turn off writing kernelcrash dumps on panics. It takes far too long, it usually doesn'tsucceed, and even if it did the information isn't useful to us inpractice (we're using a very outdated version & we're frozen on it).

We're already only saving kernel pages, which is the minimum settingin dumpadm, but our fileservers still take at least an hour+ to writedumps. On a panic


Go 2 Generics: Contracts are too clever

The biggest and most contentious thing in the Go 2 Draft Designs is its proposal for generics. Part of the proposal is a way tospecify things about the types that generic functions can be usedon, in the form of contracts . Let me quote from the overview :

[...] In general an implementation may need to constrain the possibletypes that can be used. For example, we might want to define a Set(T) , implemented as a list or map, in which case values of type


Restisting the temptation to rely on Ubuntu for Django 1.11

One of the things that is on my mind is what to do about ourDjango web application as far as Python3 goes. Right now it's Python 2, and even apart from people tryingto get rid of Python 2 in general , theDjango people have been quite explicit that Django 1.11 is the last version that will support Python 2 andthat support for it will end in 2020 (probably 'at the start of2020' in practice). Converting it


Linux iptables compared to OpenBSD PF (through a real example)

One of the things I've been asked about in response to ourattachment to OpenBSD PF is howOpenBSD PF differs from the Linux alternatives, especially iptables.I don't have a good, satisfying answer to that, so today I'm goingto cheat by showing a realistic case written out in both and thendiscussing some of the less obvious differences between the two.

To implement our custom NFS mount authorization , we need to block access to a collectionof NFS-related ports (for both TCP and


Our pragmatic attachment to OpenBSD PF for our firewall needs

Today on Twitter, I asked :

#Sysadmin people: does anyone have good approaches for ahigh-performance 10G OpenBSD firewall (bridging or routing)? Is thebest you can do still 'throw the fastest single-core CPU you can findat it'?

A number of people made the reasonable suggestion of looking intoFreeBSD or Linux instead of OpenBSD for our 10G Ethernet firewallneeds. We have done some investigation of this (and certainly ourLinux machines have no problem with 10G


What Python 3 versions I can use (November 2018 edition)

Back several years ago, I did a couple of surveys of what Pythonversions I could use for both Python 2and Python 3, based on what was available on the platforms that we(and I) use. What Python 2 versions are available is almost irrelevantto me now; everything I still care about has a sufficiently recentversion of 2.7, and anyway I'm moving to Python 3 for new code both personally and for work . So the much more interestingquestion is what versions of Python 3


Easy configuration for lots of Prometheus Blackbox checks

Suppose, not entirely hypothetically, that you want to do a lot of Prometheus Blackbox checks, and worse, these are all sorts of different checks (notjust the same check against a lot of different hosts). Since theonly way to specify a lot of Blackbox check parameters is withdifferent Blackbox modules , this meansthat you need a bunch of different Blackbox modules. The examplesof configuring Prometheus Blackbox probes that you'll find onlineall set the Blackbox module as part of the scrape configuration;for example,