Wandering Thoughts archives

2020-09-28: My likely path away from spinning hard drives on my home desktop
Making product names of what you use visible to people is generally a mistake
Looking at DKIM information for our 'good' email (September 2020 edition)
2020-09-27: Remote power control for your machines comes in two flavours
2020-09-26: We rebooted all of our servers remotely (more or less) and it all worked
Using SPF on HELO/EHLO hostnames is repurposing SPF to validate a different thing
2020-09-19: Python virtual environments transparently add themselves to sys.path
2020-09-17: Python 3 venvs don't normally really embed their own copy of Python (on Unix)
2020-09-16: How I think I want to drop modern Python packages into a single program
Why I write recursive descent parsers (despite their issues)
2020-09-15: When the Go garbage collector will panic over bad pointer values
2020-09-13: I'm now a user of Vim, not classical Vi (partly because of windows)
Rolling distribution releases versus periodic releases are a tradeoff
2020-09-12: Some notes on what Fedora's DNF logs and where
2020-09-10: My take on permanent versus temporary HTTP redirects in general
Permanent versus temporary redirects when handling extra query parameters on your URLs
2020-09-08: What you should do about extra query parameters on your URLs
2020-09-07: Why Fedora version upgrades are complicated and painful for me
URL query parameters and how laxness creates de facto requirements on the web
2020-09-06: Daniel J. Bernstein's IM2000 email proposal is not a good idea
2020-09-05: Some notes on what the CyberPower UPS 'Powerpanel' software reports to you
2020-09-04: In practice, cool URLs change (eventually)
2020-09-02: Why I want something like Procmail with a dedicated mail filtering language
2020-09-01: Even in Go, concurrency is still not easy (with an example)
2020-08-31: Why we won't like it if signing email is the solution to various email problems
2020-08-30: All forms of signing email are generally solving the wrong problem (a thesis)
2020-08-29: An interesting mistake with Go's context package that I (sort of) made
2020-08-28: My divergence from 'proper' Vim by not using and exploring features
Firefox 80 and my confusion over its hardware accelerated video on Linux
2020-08-26: Even on SSDs, ongoing activity can slow down ZFS scrubs drastically
2020-08-25: My home desktop is still locking up when it gets too cold (and what next)
2020-08-24: I want a type of desktop PC (and motherboard) that's generally skipped
2020-08-23: The Linux kernel bugzilla (and others) get spammed (of course)
2020-08-22: Some bits on making Python's argparse module work like Unix usually does
2020-08-21: Link: Why Did Mozilla Remove XUL Add-ons?
When I stopped believing in Google's fundamental good nature
2020-08-20: What you're looking for with a Grafana dashboard affects its settings
2020-08-19: Potential problem points for Chrome (or any browser) to support Linux
2020-08-18: The Prometheus host agent can disturb Linux CPU frequency measurements
2020-08-17: Firefox and web browsers for Linux
Important parts of Unix's history happened before readline support was common
2020-08-16: "It works on my laptop" is a blame game
2020-08-15: Go will inline functions across packages (under the right circumstances)
2020-08-14: Go 1.15's interface optimization for small integers is invisible to Go programs
2020-08-12: People often have multiple social identities even in the physical realm
How Go 1.15 improved converting small integer values to interfaces
2020-08-10: Disabling DNF modules on Fedora 31 so they don't mess up package updates
2020-08-09: Unix options conventions are just that, which makes them products of culture
2020-08-08: More problems with Fedora 31 DNF modules and package updates
2020-08-07: How we choose our time intervals in our Grafana dashboards
Our problem installing an old Ubuntu kernel set of packages
2020-08-05: My views on some conventions for Unix command line options
We may wind up significantly delaying or mostly skipping Ubuntu 20.04
2020-08-03: Exim's change to 'taint' some Exim variables is going to cause us pain
The issue of how to propagate some errors in our Django web app
2020-08-01: Getting my head around the choice between sleeping and 'tickers'
2020-07-31: Putting some extra 'obvious' information into our temperature alerts
2020-07-30: Putting IPMIs on a port isolated network to deal with shared network interfaces
2020-07-29: The problem of 'shared' IPMI network interfaces
2020-07-28: Our ZFS spares handling system for ZFS on Linux
Digital microwaves show an example of good UI doing what you wanted
2020-07-26: Linux PAM leads to terrible error messages from things like passwd
Keeping backup ZFS on Linux kernel modules around
2020-07-24: My varied types of Firefox windows
Some thoughts on us overlooking Illumos's syseventadm
2020-07-23: C's main() is one of the places where Unix's user and kernel APIs differ
2020-07-21: Contrasting the two common approaches to where programs start running
2020-07-20: An exploration of why Python doesn't require a 'main' function
2020-07-19: In praise of ZFS On Linux's ZED 'ZFS Event Daemon'
2020-07-18: Using Go build directives to optionally use new APIs in the standard library
2020-07-17: Not all sysadmin tools should be silent by default
2020-07-16: Malware spammers put .exe Windows executables in everything
2020-07-15: A piece of phish spam with some clever URL obfuscation
2020-07-14: Today I learned that Python's argparse module allows you to abbreviate long command line options
Link: The Anatomy of a PromQL Query
2020-07-13: How major and minor device numbers worked in V7 Unix
2020-07-12: Running servers and Fred Brooks on transforming programs to products
Linux desktop application autostarting is different from systemd user units
2020-07-10: The impact on middleware of expanding APIs with Go's interface smuggling
Ubuntu, building current versions of Firefox, and snaps
2020-07-09: Link: Mime type associations (on Linux)
2020-07-08: "Interface smuggling", a Go design pattern for expanding APIs
2020-07-07: Some thoughts on Fedora moving to btrfs as the default desktop file system
I now think that blog 'per day' pages with articles are a mistake
2020-07-05: A Go lesson learned: sometimes I don't want to use goroutines if possible
2020-07-04: How you get multiple TLS certificate chains from a server certificate
What a TLS self signed certificate is at a mechanical level
2020-07-02: The work that's not being done from home is slowly accumulating for us
Link: Code Only Says What it Does
2020-07-01: In ZFS, your filesystem layout needs to reflect some of your administrative structure
2020-06-30: The unfortunate limitation in ZFS filesystem quotas and refquota
2020-06-29: How Prometheus Blackbox's TLS certificate metrics would have reacted to AddTrust's root expiry
Adapting our Django web app to changing requirements by not doing much
2020-06-28: Understanding why Django's goals are not our goals for our web application
2020-06-26: NetworkManager and (not) dealing with conflicting network connections
2020-06-25: What Prometheus Blackbox's TLS certificate expiry metrics are checking
2020-06-24: Unix's design issue of device numbers being in stat() results for files
2020-06-23: Sometimes it takes other people to show you some of your site's design flaws
2020-06-22: Today I learned that HTML <abbr> may not do much on mobile browsers
2020-06-21: In Go, the compiler needs to know the types of things when copying values
2020-06-20: The additional complications in DNS updates that secondary DNS servers add
2020-06-19: Removing unmaintained packages from your Fedora machine should require explicitly opting in
People's efficiency expectations for generics in 'Go 2' and patterns of use
2020-06-17: How applications autostart on modern Linux desktops
A scrolling puzzle involving GTK+, XInput, and alternate desktops (on Fedora)
2020-06-15: Input events on X have an old world and a new world
2020-06-14: Product code and utility code
2020-06-13: An interesting combination of flaws in some /etc/mailcap handling
2020-06-12: The safety of GMail's POP server TLS certificate verification (or lack of it)
Dual displays contrasting with virtual screens (aka multiple desktops)
2020-06-10: A dual display setup creates a natural split between things
2020-06-09: The practical people problem with instance diversity in the Fediverse
My mixed feelings about 'swap on zram' for Linux
2020-06-07: A Go time package gotcha with parsing time strings that use named time zones
2020-06-06: Why sysadmins don't like changing things, illustrated
2020-06-05: Why we put alert start and end times in our Prometheus alert messages
2020-06-04: Formatting alert start and end times in Prometheus Alertmanager messages
2020-06-03: In theory you (we) should have SPF records for HELO hostnames too
2020-06-02: A subtle trap when formatting Go time.Time values
2020-06-01: Watching the recent AddTrust root CA certificate expiry has been humbling
2020-05-31: Mail forwarding is slowly dying (probably)
2020-05-30: How we're likely to DKIM sign some of our email messages
2020-05-29: What sort of SSH keys our users use or have listed in their authorized keys files
2020-05-28: The surprising persistence of RSA keys in SSH
2020-05-27: What I think OpenSSH 8.2+'s work toward deprecating 'ssh-rsa' means
My various settings in X to get programs working on my HiDPI display
2020-05-25: My failure with Xpra (probably because what I want is almost impossible)
2020-05-24: A cheatsheet for Python's pip for how I use it
Security questions and warnings are effectively confirmation requests
2020-05-22: Mixed feelings about Firefox Addons' new non-Recommended extensions warning
Working out how frequently your ICMP pings fail in Prometheus
2020-05-20: How I work on Python 2 and Python 3 with the Python Language Server (in GNU Emacs)
Switching to the new in-kernel WireGuard module was easy (on Fedora 31)
2020-05-18: Reading the POSIX standard for Unix functions is not straightforward
2020-05-17: Syndication feeds (RSS) and social media can be complementary
Some views on having your system timezone set to UTC
2020-05-15: Why we use city names when configuring system timezones
2020-05-14: Exploring munmap() on page zero and on unmapped address space
2020-05-13: Getting my head around what things aren't comparable in Go
The modern HTTPS world has no place for old web servers
2020-05-11: Why we have several hundred NFS filesystems in our environment
2020-05-10: How we guarantee there's always some free space in our ZFS pools
2020-05-09: How big our fileserver environment is (as of May 2020)
2020-05-08: Revisiting what the ZFS recordsize is and what it does
Linux software RAID resync speed limits are too low for SSDs
2020-05-06: Modern versions of systemd can cause an unmount storm during shutdowns
How to set up an Ubuntu 20.04 ISO image to auto-install a server
2020-05-04: Notes on the autoinstall configuration file format for Ubuntu 20.04
The Go compiler has real improvements in new versions (and why)
2020-05-03: What OSes we use here (as of May 2020)
2020-05-01: What problems Snaps and Flatpaks are solving
2020-04-30: The afterlife of Python 2
2020-04-29: The problem of Ubuntu 20.04, Snaps, and where your home directory is
Dealing with my worries about Django and HTTP Basic Authentication
2020-04-27: I think you should generally be using the latest version of Go
My views on SystemTap as compared to eBPF for Linux kernel instrumentation
2020-04-26: Looking back at DTrace from a Linux eBPF world (some thoughts)
2020-04-25: Some notes on Firefox's interstitial warning for old TLS versions
2020-04-24: Accepting TLS certificate hostnames based on IP address checks is not safe
2020-04-23: The Unix divide over who gets to chown things, and (disk space) quotas
2020-04-22: More on chown in combination with symlinks
2020-04-20: An important safety note about chown and symlinks (also chmod and chgrp)
2020-04-19: Verifying the server hostname for a TLS certificate has two purposes
GMail, POP, and TLS server certificate verification
2020-04-17: We've disabled eBPF for normal users on our Linux machines
Some bits of grep usage are where I disagree with Shellcheck
2020-04-15: Some ways that servers make their disks not hot-swappable
We're (temporarily) moving to three way mirrored disks on our servers
2020-04-13: If you use GNU Grep on text files, use the -a (--text) option
2020-04-12: The appeal of doing exact string comparisons with Apache's RewriteCond
ZFS on Linux has now become the OpenZFS ZFS implementation
2020-04-10: 'Deduplicated' ZFS send streams are now deprecated and on the way out
Why my commit messages for configuration files describe my changes
2020-04-08: Why you want a Linux bootloader even on UEFI systems
There can be differences in what malware variants anti-spam systems distinguish
2020-04-06: Fedora 31 fumbles DNF modules, package updates edition
2020-04-05: My normal process for upgrading from one Fedora version to another
Why it's very bad for applications to start themselves automatically
2020-04-03: Microsoft Teams' bad arrogance on (Fedora) Linux
2020-04-02: We may face some issues with the timing of Ubuntu 20.04 and its effects
2020-04-01: Why Linux bootloaders wind up being complicated
2020-03-31: My home DSL link really is fast enough to make remote X acceptable
2020-03-30: It's worth documenting the obvious (before it stops being obvious)
Notes on Grafana 'value groups' for dashboard variables
2020-03-29: I set up Python program options and arguments in a separate function
2020-03-28: The Prometheus host agent's CPU utilization metrics can be a bit weird
2020-03-27: OpenBSD's 'spinning' CPU time category
2020-03-26: Any KVM over IP systems need to be on secure networks
2020-03-25: The problem of your (our) external mail gateway using internal DNS views
2020-03-23: How we set up our ZFS filesystem hierarchy in our ZFS pools
Why we use 1U servers, and the two sides of them
2020-03-22: Avoiding the 'dangling else' language problem with mandatory block markers
2020-03-20: Wishing for a remote resilient server environment (now that it's too late)
2020-03-19: Make sure to keep useful labels in your Prometheus alert rules
Sorting out Go's 'for ... = range ..' and when it copies things
2020-03-18: Understanding X mouse cursors (and their several layers of history)
2020-03-17: A problem I'm having with my HiDPI display, remote X, and (X) cursors
2020-03-16: How Firefox could support automatically using local DNS over HTTPS servers
2020-03-15: Why the choice of DNS over HTTPS server needs to be automatic (a sysadmin view)
2020-03-14: The two meanings of 'DNS over HTTPS' today
2020-03-13: Sensible heuristics for when to use DNS over HTTPS can't work for us
2020-03-12: TLS increasingly exists in three different worlds
2020-03-11: Some notes on the state of DNS over HTTPS in Firefox (as of March 2020)
2020-03-09: Logging out of HTTP Basic Authentication in Firefox
What makes our Ubuntu updates driver program complicated
2020-03-08: How we sort of automate updating system packages across our Ubuntu machines
2020-03-07: Linux's iowait statistic and multi-CPU machines
2020-03-05: The problem of Unix iowait and multi-CPU machines
2020-03-04: Unix's iowait% is a narrow and limited measure that can be misleading
2020-03-03: One impact of the dropping of Python 2 from Linux distributions
2020-03-02: More or less what versions of Go support what OpenBSD releases (as of March 2020)
2020-03-01: The situation with Go on OpenBSD
2020-02-29: OpenBSD versus Prometheus (and Go)
2020-02-28: One reason for Go to prefer providing indexes in for ... range loops
2020-02-27: Some alert inhibition rules we use in Prometheus Alertmanager
2020-02-26: The magic settings to make a bar graph in Grafana
The browsers are probably running the TLS show now
2020-02-25: The basics of /etc/mailcap on Ubuntu (and Debian)
2020-02-23: Webmail providers (and others) hiding user IPs was the right decision
Our (unusual) freedom to use alerts as notifications
2020-02-22: Will common motherboards ever have very many NVMe drive slots?
2020-02-21: An appreciation for Cinnamon's workspace flipping keyboard shortcuts
2020-02-20: Link: Stop Using Encrypted Email
2020-02-19: Load average is now generally only a secondary problem indicator
How and why we regularly capture information about running processes
2020-02-17: The uncertainty of an elevated load average on our Linux IMAP server
The case of mysterious load average spikes on our Linux login server
2020-02-16: With sudo, complex argument validation is best in cover scripts
2020-02-14: Unix's /usr split and standards (and practice)
The /bin versus /usr split and diskless workstations
2020-02-12: You can't delegate a ZFS administration permission to delete only snapshots
Some git aliases that I use
2020-02-10: Doing frequent ZFS scrubs lets you discover problems close to when they happened
2020-02-09: I'm likely giving up on trying to read Fedora package update information
Code dependencies and operational dependencies
2020-02-08: Ways that I have lost the source code for installed programs
2020-02-07: I frequently use dependencies because they enable my programs to exist
2020-02-05: The drawback of having a dynamic site with a lot of URLs on today's web
2020-02-04: What 'is' translates to in CPython bytecode
The place of the 'is' syntax in Python
2020-02-02: What we do to enable us to grow our ZFS pools over time
Some unusual and puzzling bad requests for my CSS stylesheet
2020-01-31: Finding out what directories exist with only basic shell builtins (a Unix shell trick)
2020-01-30: Some notes on Python's email.header.decode_header()
2020-01-29: Some effects of the ZFS DVA format on data layout and growing ZFS pools
Why ZFS is not good at growing and reshaping pools (or shrinking them)
2020-01-28: More badly encoded MIME Content-Disposition headers
2020-01-26: The real world is mutable (and consequences for system design)
How big our Prometheus setup is (as of January 2020)
2020-01-25: A network interface losing and regaining signal can have additional effects (in Linux)
2020-01-24: Go compared to Python for small scale system administration scripts and tools
2020-01-23: What we've written in Go at work and how it came about (as of January 2020)
2020-01-22: Why I've come to like that Go's type inference is limited
2020-01-20: The value of automation having ways to shut it off (a small story)
2020-01-19: Python 2, Apache's mod_wsgi, and its future in Linux distributions
Why a network connection becoming writable when it succeeds makes sense
2020-01-18: CUPS's page log, its use of SNMP, and (probably) why CUPS PPDs turn that off
2020-01-17: The question of how long Python 2 will be available in Linux distributions
2020-01-15: How Go's net.DialContext() stops things when the context is cancelled
Stopping udev from renaming your VLAN interfaces to bad names
2020-01-13: We may not want to use OCSP stapling in our web servers
Link: Mercurial's Journey to and Reflections on Python 3
2020-01-12: Sorting out the dates of Python 2's 'end of life'
How I now think you want to configure Apache for OCSP stapling
2020-01-10: OCSP stapling and what web servers and browsers do in the face of errors
Fedora 31 has decided to allow (and have) giant process IDs (PIDs)
2020-01-08: Why I use both uBlock Origin and uMatrix
My Firefox addons as of Firefox '74' (the current development version)
2020-01-07: eBPF based tools are still a work in progress on common Linuxes
2020-01-06: How I move files between iOS devices and Unix machines (using SSH)
2020-01-05: Why I prefer the script exporter for exposing script metrics to Prometheus
2020-01-04: Three ways to expose script-created metrics in Prometheus
2020-01-03: How job control made the SIGCHLD signal useful for (BSD) Unix
2020-01-01: The good and bad of errno in a traditional Unix environment
By month for 2020: Jan Feb Mar Apr May Jun Jul Aug Sep; before 2020.

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.