Modern email is hard to search, which encourages locked up silos
Today, I tweeted :
One of the things I don't like about modern email is how you can'treally grep it in raw as-received form, because too many emails areencoded in eg base-64. Before you can thoroughly search you must parseand de-MIME everything (and store it that way).
Once upon a time, email was plain text (or at least mostly). Thishad the useful consequence that you could dump it in one or morefiles (even
Understanding plain Linux NVMe device names (in /dev and kernel messages)
On Linux, plain disk names for most modern disk devices are inthe form /dev/sda for the whole disk and /dev/sda3 for thepartition (regardless of whether the disk is partitioned throughmodern GPT or old MBR). When I got NVMe SSDs for my office workstation , one of my many discoveries about them isthat Linux gives them different and more oddly formed names. Since Ihad many other NVMe related issues on my mind at the time, I didn't lookinto the odd
I should probably learn command-line NetworkManager usage
I'm generally not a fan of NetworkManager on the machines I dealwith , but I do wind up dealing with it atthe command line level every so often, most recently for settingup a WireGuard client on my work laptop .There was a time when it felt that NetworkManager was the inevitablefuture of networking on Linux even on servers, but fortunately systemd-networkd has mostly made that go away. Still, systemd-networkd has limitationsand isn't as comprehensive as NetworkManager, NetworkManager is theface of
The tiny irritation of ZFS's 'zpool status' nagging you about upgrades
One of the tiny irritations of operating ZFS for a long time isthat eventually, running ' zpool status ' on your pools would producea multi-line nag about upgrading them to the latest version of ZFS.I assume that this was added to ' zpool status ' output so that youwouldn't be unaware of it, but the size of the message was far toolarge for its actual importance. Back in the old days of Solaris10, ' zpool status -x ' even included pools that could
Why it matters that map values are unaddressable in Go
A while ago, I wrote Addressable values in Go (and unaddressableones too) as an attempt to get straight thistricky concept in Go, which I hadn't fully understood. To refresh, the Go specification's core descriptionof this is covered in Address operators :
For an operand
xof typeT, the address operation&xgenerates a pointer of type*Ttox. The operand must be addressable , that is, either a variable, pointer indirection, orslice indexing operation; or a
Apache's mod_wsgi and the Python 2 issue it creates
If you use Apache (as we do) and have relatively casual WSGI-basedapplications (again, as we do ), thenApache's mod_wsgi is often the easiest way to deploy your WSGI application. Speakingas a system administrator, it's quite appealing to not have tomanage a separate configuration and a separate daemon (and I stillget process separation and different UIDs). But at the moment thereis a little problem, at least for people (like us) who use theirUnix
Improving my web reading with Martin Tournoij's "readable" Firefox bookmarklet
Not that long ago, I set up Martin Tournoij's "fixed" bookmarkletto deal with CSS fixed elements .When I did this, I also decided to install Tournoij's "readable"bookmarklet ,because it was right there and it felt potentially useful. With itsitting in my tab bar, I started trying it out on sites that I foundnot so readable, or even vaguely marginally non-readable, and to mysurprise it's been a major quality of life improvement on many sites.
It's nice when programs switch to being launched from systemd user units
I recently upgraded my home machine from Fedora33 to Fedora 34. One of the changes in Fedora 34 is that the audiosystem switched from PulseAudio to PipeWire ( the Fedora change proposal , anarticle on the switch ).Part of this switch is that you need to run different daemons inyour user session. For normal people, this is transparently handledby whichever standard desktop environment they're using. UnfortunatelyI use a completely custom desktop ,so I have to sort this out myself (this is
Making a Go program build with Go modules can be not a small change
In theory, at some point in the future Go will stop supportingthe traditional GOPATH mode . When this happens,if you want to still build old Go programs that you have sittingaround in checked out version control repositories, you will needto modularize them. Once upon a time, I thought that this would beas simple as going to the root of your copy of the repo, then running' go mod init ... ' and ' go mod tidy '. Unfortunately, life is notthis simple and
On sending all syslog messages to one file
Over on Twitter, I had a view on where syslog messages should go :
Tired sysadmin take: Different sorts of syslog messages going todifferent places are a mistake. Throw it all into /var/log/allmessagesand I'll sort it out myself.
Like many Twitter takes of mine, in retrospect this one is heartfeltbut a little bit too extreme as presented. Specifically, I thinkyou should log all syslog messages to one place, but also log somesorts of messages to their own additional places so