The annoying question of Intel CPU support for XMP RAM profiles
I said something on the Fediverse :
Once again I must applaud Intel for making it as hard as possible tofind out if XMP RAM profiles work on Intel desktop CPUs that can't beoverlocked (non-K series, or whatever it is today). Will they give youa definite answer, even in their website's XMP FAQ? Of course not.
(And I genuinely don't know what the answer is, especially today.)
Here, 'XMP' is the common and official abbreviation
Getting my unit size 'prefixes' (really suffixes) straight, sort of
As a system administrator and general computer person, I deal withat least three different sorts of sizes; bytes in powers of ten(beloved by disk makers and not me), bytes in powers of two (forRAM and many other things), and bits in powers of ten ( used forEthernet speeds ). For various reasons I defaultto bytes in powers of two, and I've been inconsistent about theunit suffixes that I use for them when I write about things hereon Wandering Thoughts . So
Moving our /var/mail to be local on our IMAP server has gone very well
We have been operating our Unixenvironment for a very long time, and as a result we've accumulatedwhat are now historical curiosities. One of them is that we puteveryone's inboxes in a traditional /var/mail setup (including having them in mboxformat), although almost all of our people now read their emailonly over IMAP. For a long time this /var/mail filesystem lived on our normal NFS fileservers , andthe IMAP server accessed it over NFS, the same as everyone else
A revealing Vim addressing mistake that I made today
Today I wound up typing and trying to use the following Vim command(more or less) with a straight face:
:.,$/Match.*Header.*Fields/d
Vim warned and prompted me by asking 'Backwards range given, OK toswap (y/n)?'. In an insufficiency of something (maybe coffee), I toldit yes, and was then confused by the results.
What I had was a file that intermixed a bunch of copies of a headerline (
Unix's (technical) history is mostly old now
Yesterday I wrote about how Unix swap configuration used to be simpleand brute force , covering a number of cases from V7Unix through Linux 0.92c. As I wrote that entry, it became increasinglystriking to me that the most recent time I mentioned was 1992. This isn'tsomething unique to swap handling, or new in my entries about much of the(technical) origins and evolution of Unix. Instead, it's because a lot ofUnix's technical history
Unix swap configuration used to be rather simple and brute force
Modern Unixes generally support rather elaborate configuration ofwhat swap space is available. FreeBSD supports multiple swap devicesand can enable and disable them at runtime (cf swapon(8) ),including paging things back in in order to let you disabling aswap device that's in use. Linux can go even further, allowing youto swap to files as well as devices ( which takes a bunch of workinside the kernel ). It will probablynot surprise you to hear that early Unixes were not so sophisticatedand featureful
Twitter's 'quoted tweets' feature and how design affects behavior
Twitter's 'quote tweets' feature is back in the news in my circlesbecause the Fediverse's Mastodon software famously deliberatelydoesn't have them .I find 'quote tweets' to be a fascinating example and case of how whatlooks like relatively neutral technical or design 'solutions' candrastically change the social side of a service. But to understand this,I need to cover the path that Twitter took to having quote tweets,because they didn't spring out of nowhere.
In the beginning,
Using curl to test alternate (test) servers for a web site
One of the perpetual issues in system administration is that wehave a new version of some web site of ours to test, for examplebecause we're upgrading the server's operating system from Ubuntu18.04 to 22.04. In many cases this is a problem because the webserver's configuration wants to be 'example.org' but you've installedit on 'test.internal' because 'example.org' points to your currentproduction server. Two traditional
Floating point NaNs as map keys in Go give you weird results
The last time around I learned that Go 1.21 may have a clear builtin partly because you can't delete map entries that have afloating point NaN as their key . Of coursethis isn't the only weird thing about NaNs as keys in maps, althoughyou can pretty much predict all of them from the fact that NaNsnever compare equal to each other.
First, just like you can't delete a map entry that has a key ofNaN, you can't retrieve it either
Python dictionaries and floating point NaNs as keys
Like Go, Python's floating point numbers support NaNs with the usualIEEE-754 semantics, including not comparing equal toeach other. Since Python will conveniently produce themfor us, we can easily demonstrate this:
>>> k = float('nan')>>> k == kFalse>>> k is kTrueYesterday, I discovered that Go couldn't delete 'NaN' keys frommaps (the Go version of dicts) .If you initially try this in