In universities, sometimes simple questions aren't simple

Over on the Fediverse I shared a recent learning experience :

Me, an innocent: "So, how many professors are there in our universitydepartment?"
Admin person with a thousand yard stare: "Well, it depends on whatyou mean by 'professor', 'in', and 'department."

In many companies and other organizations, the status of people isusually straightforward. In a university, things are quite oftennot so clear, and in my department all


US sanctions and your VPN (and certain big US-based cloud providers)

As you may have heard ( also ) and tosimplify, the US government requires US-based organizations to not'do business with' certain countries and regions (what this meansin practice depends in part which lawyer you ask, or more to thepoint, that the US-based organization asked). As a Canadian university,we have people from various places around the world, includingsanctioned areas, and sometimes they go back home. Also, we have aVPN, and sometimes when people go back home


Three ways I know of to authenticate SSH connections with OIDC tokens

Suppose, not hypothetically, that you have an MFA equipped OIDCidentity provider (an 'OP' in the jargon), and you would like touse it to authenticate SSH connections. Specifically, like withIMAP , you might want to do thisthrough OIDC/OAuth2 tokens that are issued by your OP to clientprograms, which the client programs can then use to prove youridentity to the SSH server(s). One reason you might want to do thisis because it's hard to find non


How we handle debconf questions during our Ubuntu installs

In a comment on How we automate installing extra packages duringUbuntu installs , David Magda asked how we dealt with the things that needdebconf answers. This is a good question and we have two approachesthat we use in combination. First, we have a prepared file of debconfselections for each Ubuntu version and we feed this into debconf-set-selections before we start installing packages. Howeverin practice this file doesn't have much in it and we rarely rememberto update it (and as a result, a


The pragmatics of doing fsync() after a re-open() of journals and logs

Recently I read Rob Norris' fsync() after open() is an elaborateno-op ( via ).This is a contrarian reaction to the CouchDB article that prompted my entry Always sync your log or journal files whenyou open them . At one level I can'tdisagree with Norris and the article; POSIX is indeed very limitedabout the guarantees it provides for a successful fsync() in a waythat frustrates the 'fsync after open' case.

At another level, I disagree with the article


The obviousness of indexing the Unix filesystem buffer cache by inodes

Like most operating systems, Unix has an in-memory cache of filesystemdata. Originally this was a fixed size buffer cache that wasmaintained separately from the memory used by processes, but laterit became a unified cache that was used forboth memory mappings established through mmap() and regular read()and write() IO ( for good reasons ). Wheneveryou have a cache, one of the things you need to decide is how thecache is indexed. The more or less required answer for Unix is


How we automate installing extra packages during Ubuntu installs

We have a local system for installing Ubuntu machines , and one of the important things it doesis install various additional Ubuntu packages that we want as partof our standard installs. These days we have two sorts of standardinstalls, a 'base' set of packages that everything gets and a broaderset of packages that login servers and compute servers get (to makethem more useful and usable by people). Specialized machines needadditional packages, and while we can automate installation of thosetoo, they're generally a


The mystery (to me) of tiny font sizes in KDE programs I run

Over on the Fediverse I tried a KDE program and ran into a commonissue for me :

It has been '0' days since a KDE app started up with too-small fontson my bespoke fvwm based desktop , andhad no text zoom. I guess I will go use a browser, at least I can zoomfonts there.

Maybe I could find a KDE settings thing and maybe find where and whyKDE does this (it doesn't happen in GNOME apps), but honestly it'ssimpler


Go's choice of multiple return values was the simpler option

Yesterday I wrote about Go's use of multiple return values andGo types , in reaction to Mond's Were multiple return values Go's biggest mistake? . Oneof the things that I forgot to mention in that entry is that I thinkGo's choice to have multiple values for function returns and a fewother things was the simpler and more conservative approach in itsoverall language design.

In a statically typed language that expects to routinely use multiplereturn values, as Go was designed to with the '


Go's multiple return values and (Go) types

Recently I read Were multiple return values Go's biggest mistake? ( via ),which wishes that Go had full blown tuple types (to put my spin onit). One of the things that struck me about Go's situation when Iread the article is exactly the inverse of what the article iscomplaining about, which is that because Go allows multiple valuesfor function return types (and in a few other places), it doesn'thave to have tuple types.

One problem with tuple types