How major and minor device numbers worked in V7 Unix

Unix people who've been around for a while know that Unix deviceshave device numbers , and that device numbers are divided into major and minor device numbers. When you do ' ls -l /dev/null 'and one of the fields that ls prints is two comma separatednumbers, those are the major and minor numbers (on Linux, they are'1, 3'; this varies by Unix). Device numbers and their split intomajor and minor parts go back a long way, to before


Linux desktop application autostarting is different from systemd user units

When I wrote about how applications autostart on modern Linuxdesktops , there was a Reddit discussion ,and one of the people there noted that things could also be autostartedthrough systemd user units. As covered in the Arch Wiki page onthis , Linuxesthat are systemd based generally automatically start a ' systemd--user ' user systemd instance for you, and one of the things thiswill do is it will start things in ~/.local/share/systemd/user and ~/.config/systemd/user


Running servers and Fred Brooks on transforming programs to products

One of the seminal books on software engineering and projectmanagement is Fred Brooks' justly famous The Mythical Man-Month . One of thethings that Brooks discusses in the book is the additional effortit takes to transform a program (that has been written) into aproduct (that can be sold). The modern open source world has itsown equivalent of this transformation that many people experience;to make your program useful for other people it needs documentation,build instructions, and often generalization and more testing thanyou gave


Ubuntu, building current versions of Firefox, and snaps

Today on Twitter, I said :

Given that Ubuntu's ostensible logic for putting Chrome in a snap is'it makes maintaining it easier', my cynical side expects Ubuntu toalso do this with Firefox before too long (due to Firefox's need forsteadily increasing versions of Rust).

(The context here is LWN's Linux Mint drops Ubuntu Snap packages , via .For 'Ubuntu', you can read 'Canonical', since Canonical is drivingthis.)

Ubuntu ships current versions of Firefox


The impact on middleware of expanding APIs with Go's interface smuggling

Recently, the Go blog had Keeping your Modules Compatible which is aboutdoing exactly that as you add features and want to expand yourmodule's API. When the module's API involves interfaces, one ofthe approaches they suggested is what I've called interfacesmuggling and what other people havecalled interface upgrades . Let me quote the article:

When you run into a case where you want to add a method to an existinginterface, you may be able to follow this strategy. Start by creatinga new


Link: Mime type associations (on Linux)

Enrico Zini's Mime type associations (via Planet Debian ) isabout the practical side of fixing MIME type associations so thatvarious types of files open in the right program on your Debiansystem. This is an area of interest to me, but I've never pulledeverything together into one spot (and compactly) the way thisarticle does.

(For my entries, there's how xdg-mime searches for MIME typehandlers , how xdg-open pickswhich web browser to use , thebasics of


"Interface smuggling", a Go design pattern for expanding APIs

Interfaces are one of the big ways of creating and defining APIsin Go . Go famously encourages theseinterfaces to be very minimal; the widely used and implemented io.Reader and io.Writer are each one method. Minimal APIssuch as this have the advantage that almost anything can implement them,which means that Go code that accepts an io.Reader or io.Writer canwork transparently with a huge range of data sources and destinations.

However, this very simplicity and generality means that these APIsare not necessarily the


Some thoughts on Fedora moving to btrfs as the default desktop file system

The news of the time interval for me is that there is a Fedorachange proposal to make btrfs the default file system for Fedoradesktop ( via ,itself via ;see also the mailing list post ).Given that in the past I've been a btrfs sceptic ( eg , from 2015), long time readers might expectme to have some views here. However, this time around my views arecautiously optimistic for btrfs (and Fedora), although I will onlybe watching from a safe


I now think that blog 'per day' pages with articles are a mistake

Back in 2005 when I wrote DWiki , the engine that is used for Wandering Thoughts , there was an accepted standard structurefor blogs that people followed, me included. For instance, it wasaccepted convention that the front page of your blog showed a numberof the most recent articles, and you could page backward to olderones. Part of this structure was the idea that you would have apage for each day and that page would show the article or articleswritten that day (if any).


A Go lesson learned: sometimes I don't want to use goroutines if possible

We have a heavily NFS based server environment here , with multiple NFS servers and an IMAP server that accessesall mailboxes over NFS. That IMAP server has had ongoing issueswith elevated load averages ,and what at least seems to be IMAP slowness. However, our currentmetrics leave a lot of uncertainties about the effects of all ofthis, because we basically only have a little bit of performancedata for a few IMAP operations. One thing I'd like to do is gathersome very basic Unix level NFS performance data