Wandering Thoughts archives

2019-06-26: A hazard of our old version of OmniOS: sometimes powering off doesn't
2019-06-24: The convenience (for me) of people writing commands in Python
2019-06-23: What it takes to run a 32-bit x86 program on a 64-bit x86 Linux system
2019-06-22: Google Groups entirely ignores SMTP time rejections
We get a certain amount of SMTP MAIL FROM's in UTF-8 with odd characters
2019-06-21: One of the things a metrics system does is handle state for you
2019-06-19: How Bash decides it's being invoked through sshd and sources your .bashrc
A Let's Encrypt client feature I always want for easy standard deployment
2019-06-17: Sometimes, the problem is in a system's BIOS
My Mastodon remark about tiling window managers
2019-06-16: Firefox and my views on the tradeoffs of using DNS over HTTPS
2019-06-15: Some notes on Intel's CPUID and how to get it for your CPUs
2019-06-14: Intel's approach to naming Xeon CPUs is pretty annoying
Intel's MDS issues have now made some old servers almost completely useless to us
2019-06-12: My weird problem with the Fedora 29 version of Firefox 67
An interesting Fedora 29 DNF update loop with the createrepo package
2019-06-10: Keeping your past checklists doesn't help unless you can find them again
2019-06-09: Go recognizes and specially compiles some but not all infinite loops
2019-06-08: Hardware Security Modules are just boxes running opaque and probably flawed software
Our current approach for updating things like build instructions
2019-06-06: Feed readers and their interpretation of the Atom 'title' element
2019-06-05: The HTML <pre> element doesn't do very much
Go channels work best for unidirectional communication, not things with replies
2019-06-03: Almost all of our OmniOS machines are now out of production
2019-06-02: Exploring the start time of Prometheus alerts via ALERTS_FOR_STATE
I haven't customized my Vim setup and I'm not sure I should try to (yet)
2019-05-31: Some things on how ZFS dnode object IDs are allocated (which is not sequentially)
Some things about where icons for modern X applications come from
2019-05-30: Conditional expressions in any form are an attractive thing
2019-05-28: Distribution packaging of software needs to be informed (and useful)
An interesting report on newly used domain names and their usage in spam
2019-05-27: Something that Linux distributions should not do when packaging things
2019-05-26: Why I no longer have strong feelings about changes to Python
2019-05-25: Blocking JavaScript by default is not an easy path
2019-05-24: The problem of paying too much attention to our dashboards
2019-05-23: I will probably never give my shell dotfiles the major reform they could use
On programming languages belonging (or not) to their community
2019-05-22: Go is Google's language, not ours
2019-05-20: Understanding how to pull in labels from other metrics in Prometheus
2019-05-19: DKIM signed email as a signal (of something)
2019-05-18: Binding keys to actions in xterm, and my bindings as an example
2019-05-17: My new favorite tool for looking at TLS things is certigo
One of our costs of using OmniOS was not having 10G networking
2019-05-16: Go has no type for types in the language
2019-05-15: An infrequent odd kernel panic on our Ubuntu 18.04 fileservers
2019-05-13: Fixing Alpine to work over NFS on Ubuntu 18.04 (and probably other modern Linuxes)
2019-05-12: What we'll want in a new Let's Encrypt client
Committed address space versus active anonymous pages in Linux: a mystery
2019-05-10: Some thoughts on Red Hat Enterprise 8 including Python 2 and what it means
Firefox versus Chrome (my 2019 view)
2019-05-08: Some general things and views on DNS over HTTPS
A Linux machine with a strict overcommit limit can still trigger the OOM killer
2019-05-07: Some weird and dubious syndication feed fetching from SBL-listed IPs
2019-05-05: TLS certificate rollover outside of the web is complex and tangled
What usually identifies an intermediate or root TLS certificate
2019-05-03: In Go, unsafe type conversions are still garbage collection safe
Some implications of using offset instead of delta() in Prometheus
2019-05-01: One of my problems with YAML is its sheer complexity
2019-04-30: My problem with YAML's use of whitespace
2019-04-29: Notifications and interruptions, and my view on them
2019-04-28: A gotcha with stale metrics and *_over_time() in Prometheus
2019-04-27: Some useful features of (GNU) date for things like time conversion
2019-04-26: Brief notes on making Prometheus instant queries with curl
Various aspects of Python made debugging my tarfile problem unusual
2019-04-24: How we're making updated versions of a file rapidly visible on our Linux NFS clients
The appeal of using plain HTML pages
2019-04-22: Go 2 Generics: The usefulness of requiring minimal contracts
You might as well get an x86 CPU now, despite Meltdown and its friends
2019-04-21: My view on upgrading Prometheus (and Grafana) on an ongoing basis
2019-04-19: V7 Unix programs are often not written the way you would expect
Links: A Practitioner's Guide to System Dashboard Design (with a bonus)
2019-04-18: One reason ed(1) was a good editor back in the days of V7 Unix
A pattern for dealing with missing metrics in Prometheus in simple cases
2019-04-17: Private browsing mode versus a browser set to keep nothing on exit
2019-04-15: How Linux starts non-system software RAID arrays during boot under systemd
2019-04-14: A VPN for me but not you: a surprise when tethering to my phone
2019-04-13: Remembering that Prometheus expressions act as filters
WireGuard was pleasantly easy to get working behind a NAT (or several)
2019-04-12: Getting (and capturing) spam can sometimes be useful to see what's in it
2019-04-10: The tarfile module is too generous about what is considered a tar file
A Git tool that I'd like and how I probably use Git differently from most people
2019-04-08: An example of a situation where Go interfaces can't substitute for generics
2019-04-07: Why selecting times is still useful even for dashboards that are about right now
A ZFS resilver can be almost as good as a scrub, but not quite
2019-04-05: I won't be trying out ZFS's new TRIM support for a while
It's always DNS (a story of our circular dependency)
2019-04-03: A sign of people's fading belief in RSS syndication
NVMe and an interesting technology change
2019-04-01: Our plan for handling TRIM'ing our ZFS fileserver SSDs
2019-03-31: Our likely ZFS fileserver upgrade plans (as of March 2019)
Erasing SSDs with blkdiscard (on Linux)
2019-03-29: Our current approach for significantly upgrading or modifying servers
My NVMe versus SSD uncertainty (and hesitation)
2019-03-27: A new and exciting failure mode for Linux UEFI booting
2019-03-26: Drifting away from OmniOS (CE)
2019-03-25: The mystery of my desktop that locks up when it gets too cold
2019-03-24: Prometheus's delta() function can be inferior to subtraction with offset
Link: What has your microcode done for you lately?
A bit more on ZFS's per-pool performance statistics
2019-03-22: Sometimes the simplest version of a graph is a text table
2019-03-21: What sorts of good email attachments our users get (March 2019 edition)
2019-03-20: The types of attachments we see in malware email (March 2019 edition)
2019-03-19: ZFS Encryption is still under development (as of March 2019)
2019-03-18: Prometheus subqueries pick time points in a surprising way
2019-03-17: Going from a bound instance method to its class instance in Python
2019-03-16: Callable class instances versus closures in Python
Staying away from Google Chrome after six months or so
2019-03-14: The plague of 'you've logged in to our site again' notification emails
2019-03-13: Peculiarities about Unix's statfs() or statvfs() API
2019-03-12: An easy optimization for restricted multi-metric queries in Prometheus
2019-03-11: Testing Prometheus alert conditions through subqueries
2019-03-10: What the default query step is for Prometheus subqueries
Turning something into a script encourages improving it
2019-03-08: Exploring how and why interior pointers in Go keep entire objects alive
2019-03-07: Exploring the mild oddity that Unix pipes are buffered
Our problem with Netplan and routes on Ubuntu 18.04
2019-03-06: Using Prometheus subqueries to look for spikes in rates
2019-03-04: A surprisingly arcane little Unix shell pipeline example
2019-03-03: Understanding a change often requires understanding how the code behaves
Really understanding diffs requires knowing their context too
2019-03-01: What you get when you do a DNS A record lookup for a CNAME'd name
2019-02-28: Taking advantage of the Linux kernel NFS server's group membership cache
2019-02-27: How to see and flush the Linux kernel NFS server's group membership cache
Using Prometheus subqueries to do calculations over time ranges
2019-02-25: ntpdate has a surprising restriction on what it will sync to
Link: Vim anti-patterns
2019-02-24: Process states from /proc/[pid]/stat versus /proc/stat's running and blocked numbers
The modern danger of locales when you combine sort and cron
2019-02-22: Using default function arguments to avoid creating a class
2019-02-21: An advantage of tablets and two-in-one devices over small laptops
2019-02-20: What /proc/[pid]/stat's process state means and where it comes from
The cliffs in the way of adding tests to our Django web app
2019-02-18: When cloning git repos, things go faster if you start from a good base
2019-02-17: Why I like middle mouse button paste in xterm so much
Some notes on heatmaps and histograms in Prometheus and Grafana
2019-02-15: Accumulating a separated list in the Bourne shell
2019-02-14: A pleasant surprise with a Thunderbolt 3 10G-T Ethernet adapter
2019-02-13: An unpleasant surprise with part of Apache's AllowOverride directive
2019-02-12: Using grep with /dev/null, an old Unix trick
2019-02-11: Thinking about the merits of 'universal' URL structures
2019-02-10: Open protocols can evolve fast if they're willing to break other people
2019-02-09: 'Scanned' versus 'issued' numbers for ZFS scrubs (and resilvers)
2019-02-08: Making more use of keyboard control over window position and size
2019-02-07: A touchpad is not a mouse, or at least not a good one
2019-02-06: Using a single git repo to compare things between two upstreams
2019-02-05: A problem with strict memory overcommit in practice
2019-02-04: Hand-building an updated upstream kernel module for your (Fedora) kernel
2019-02-03: My temptation of getting a personal laptop
2019-02-02: A little appreciation for Vim's 'g' command
2019-02-01: A bit of Sun's history that still lingers on in Illumos
2019-01-31: What getopt package I use for option handling in my Go programs
2019-01-30: ZFS On Linux's kernel modules issues are not like NVidia's
How having a metrics system centralized information and got me to check it
2019-01-28: Go 2 Generics: some features of contracts that I like
The potential risk to ZFS created by the shift in its userbase
2019-01-27: How to handle Unicode character decoding errors depends on your goals
2019-01-25: A piece of email malware that wanted to make sure we rejected it
The Linux kernel's pstore error log capturing system, and ACPI ERST
2019-01-23: Consider setting your Linux servers to reboot on kernel problems
A little surprise with Prometheus scrape intervals, timeouts, and alerts
2019-01-22: Things you can do to make your Linux servers reboot on kernel problems
2019-01-21: Two annoyances I have with Python's imaplib module
2019-01-20: A few notes on using SSL in Python 3 client programs
2019-01-19: A surprise potential gotcha with sharenfs in ZFS on Linux
2019-01-18: Linux CPU numbers are not necessarily contiguous
2019-01-17: Why C uninitialized global variables have an initial value of zero
2019-01-16: Perhaps you no longer want to force a server-preferred TLS cipher order on clients
2019-01-14: Why your fresh new memory pages are zero-filled
2019-01-13: Two views of ZFS's GPL-incompatibility and the Linux kernel
The risk that comes from ZFS on Linux not being GPL-compatible
Even thinking about spam makes me angry
2019-01-12: I have somewhat mixed feelings about Python 3's socket module errors
2019-01-11: A new drawback of using my custom-compiled Firefox
2019-01-10: Why I still have a custom-compiled Firefox (early 2019 edition)
2019-01-09: On right and wrong ways to harvest system-level performance stats
2019-01-08: Link: The IOCCC 2018 "Best of show" program
2019-01-07: Daemons and the pragmatics of unexpected error values from system calls
2019-01-06: accept(2)'s problem of trying to return two different sorts of errors
Linux network-scripts being deprecated is a problem for my home PPPoE link
2019-01-05: Some things on ZFS's per-pool performance statistics
2019-01-04: Planning ahead in documentation worked out for us
2019-01-02: You shouldn't allow Firefox to recommend things to you any more
How I get a copy of the Ubuntu kernel source code (as of Ubuntu 18.04)
By month for 2019: Jan Feb Mar Apr May Jun; before 2019.

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.