Explore

utoronto.ca ×
  • It's far from clear how grub package updates work on Ubuntu

    Recently I ran across (and eventually reported) an issue on pre-beta Ubuntu 24.04 where a grub...

  • Bash's sadly flawed smart (programmable) completion

    Bash has an interesting and broadly useful feature called 'programmable completion' (this has sort of come...

  • Some notes on Firefox's media autoplay settings in practice as of Firefox 124

    I've been buying digital music from one of the reasonably good online sources of it (the...

  • How I would automate monitoring DNS queries in basic Prometheus

    Recently I wrote about the problem of using basic Prometheus to monitor DNS query results, which...

  • Sorting out PIDs, Tgids, and tasks on Linux

    In the beginning, Unix only had processes and processes had process IDs (PIDs), and life was...

  • The Linux kernel.task_delayacct sysctl and why you might care about it

    If you run a recent enough version of iotop on a typical Linux system, it may...

  • Disk write buffering and its interactions with write flushes

    Pretty much every modern system defaults to having data you write to filesystems be buffered by...

  • More notes on Linux's ionice and kernel IO priorities

    In the long ago past, Linux gained some support for block IO priorities, with some limitations...

  • A realization about shell pipeline steps on multi-core machines

    Over on the Fediverse, I had a realization: This is my face when I realize that...

  • A peculiarity of the X Window System: Windows all the way down

    Every window system has windows, as an entity. Usually we think of these as being used...

  • The speed of improvement in servers may have slowed down

    One of the bits of technology news that I saw recently was that AWS was changing...

  • How to make your GNU Emacs commands 'relevant' for M-X

    Today I learned about the M-X command (well, key binding) (via), which "[queries the] user for...

  • Open source culture and the valorization of public work

    A while back I wrote about how doing work that scales requires being able to scale...

  • A recent abrupt change in Internet SSH brute force attacks against us

    It's general wisdom in the sysadmin community that if you expose a SSH port to the...

  • What ZIL metrics are exposed by (Open)ZFS on Linux

    The ZFS Intent Log (ZIL) is effectively ZFS's version of a filesystem journal, writing out hopefully...

  • Options for genuine ECC RAM on the desktop in (early) 2024

    A traditional irritation with building (or specifying) desktop computers is the issue of ECC RAM, which...

  • Chris's Wiki :: blog/programming/GoReflectTypeForOptimization

    Go's reflect.TypeFor() is a generic function that returns the reflect.Type for its type argument. It was...

  • Accidentally making windows vanish in my old-fashioned Unix X environment

    One of the somewhat odd things about my old fashioned X Window System environment is that...

  • We might want to regularly keep track of how important each server is

    Today we had a significant machine room air conditioning failure in our main machine room, one...

  • Chris's Wiki :: blog/programming/GoAvoidingAnyAsAType

    'I'm Going to Avoid using any as an Actual Type' — Generics introduced the any type,...