My Firefox bookmarklet to see links I've visited more reliably

I want to make links that I've already visited be clearly visiblein Firefox , so that I can avoid re-readinglinks that I've already read. My first solution to this was touse the Firefox Stylus addon to write a brute force rule forfrequently visited sites , which forcedthe a:visited colour to the special 'VisitedText' colour thatFirefox provides. Later, when I wrote about bookmarklets versusaddons , it occurred to me that a bookmarkletwas a great use for this in general;


In Go 1.18, generics are implemented through code specialization

The news of the time interval is that Go 1.18 Beta 1 is available,with generics . Barring somethingterrible being discovered about either the design or the currentimplementation of Go generics, this means that they will be partof Go 1.18 when it's released in a few months. Further, becausewe're already in the beta phase, it's highly unlikely that howgenerics are implemented will change substantial before Go 1.18.

(The Go developers generally won'


Our never-used system for user-provided NFS accessible storage

Reading most of my entries here on Wandering Thoughts ,you might get the impression that all of the projects we do are agood idea and successful. This is not in fact the case. Instead,it's selection bias in what I write about, partly because it's oftennot very interesting to write about things we decided we couldn'timplement, or that we implemented and then they never went anywhereuntil we quietly decommissioned them. But today I have a good leadin to talk about one particular


User runtime directories on modern Linux, aka /run/user/<uid>

If you've used a "modern" Linux, which is to say a Linux runningsystemd, you may have noticed one or more /run/user/ directoryhierarchies. These are especially noticeable on systems with a bunchof users logged into them (such as many of our servers ), because each of these directorytrees is a separate tmpfs mount. These are a systemd feature that'sgenerally called a "user runtime directory".

The mounts and so on are normally created (and


Finding Ubuntu (and Debian) packages that are in odd states

The other day, we discovered that an important package on one of our Ubuntu servers had woundup in what the package system considered an odd state. The onlyrelatively obvious sign of this was that ' apt-get -u upgrade 'reported that there was work to do despite not having any packagesto install or upgrade (unfortunately I didn't save the specificoutput). This state was sticky because for reasons beyond the scopeof this entry, the package's postinstall script was reporting anerror.

Since


A bit on compilation's changing number of stages (and assembly)

Recently I was skimming Everything You Never Wanted To Know AboutLinker Script ( via ).One of the things it mentions is the traditional three stage modelfor transforming your source code into an executable program, wherethe compiler produces assembly code that it hands to the assembler,the assembler produces object code, and then the linker turns theobject code into an executable. This is the historical practice andprovides a nice simple mental model, but it's not necessarily howit works today. Various modern compilation environments skip right


How Vim's visual mode has wound up being useful for me

Since discovering Vim's visual (selection) mode I've found myself using it periodically, as I mentioned in passingrecently . There have turned out to be acommon circumstance I use it in and a second, rather less commoncase. More specifically, there is a common case for line-wise visualmode selection and a less common case where I reach for block-wisevisual mode selections.

The common case for line wise visual selection is selectivelyreflowing quoted text in email messages. I'm a


Some numbers from ZRAM swap on my two Fedora machines

When Fedora introduced swap on ZRAM I was dubious,for the traditional reason that I'm dubious about things grabbingmy RAM . However, I let the appropriate Fedoraupgrade automatically enable swap on ZRAM and decided to passivelysee how things went. Nothing exploded so I didn't think about ZRAMagain until very recently , when Igot curious to look at the numbers on my machine, when I found outabout the zramctl command through Daniel Aleksandersen's blogentry .

There are three ways to look at "swap


The question (and some answers) of modern day partition sizes for Linux

I have some new NVMe drives for my home desktop thatwill take over from my current SSDs as my 'system' drives, acting asboot drives, the root filesystem drives (in a software RAID mirror), andfor a ZFS pool that will contain my home directory and other things thatI want to be as fast as possible. This switch is a good time to consider(and reconsider) the partitioning for all of this, especially since I'llbe living with it for some time.

As with


Why it's good to explicitly document the purposes of things, illustrated

Today we decommissioned some internal DNS zones for things that wearen't using or aren't doing any more. Among them were three internaliSCSI zones, which makes sense since we haven't used iSCSI sincewe moved away from our OmniOS fileservers to our Linux fileservers . But when my co-worker doing the worktold me about this, I was surprised that there were three iSCSInetworks, since our Solaris and OmniOS fileservers only used twoiSCSI networks.

We have a worklog system to record changes and I