RSSAmplifier

Blog

marcusb.org on Marcus Butler

Recent content in marcusb.org on Marcus Butler

marcusb.orgRSS feed ↗36 posts

Latest posts

Email Me an Receipt

If there is one easy, low-effort thing that most of my vendors could do that would instantly make me a happier customer, its this: email me a receipt. Not a notice that a receipt is available on your website. Email me the PDF. I don’t want to deal with your website. Or your app. I don’t want to have to figure out where the receipt is this month on your website that you’ve…

Two Years with the ZSA Moonlander Mark I Keyboard

The ZSA Moonlander is a pre-built columnar, split ergonomic 72-key keyboard. It runs QMK -based firmware for full customization. I’ve been daily-driving a ZSA Moonlander for two years now and, with just a few caveats, I’m a big fan of the keyboard. As of the time of this writing, you can buy it 1 direct from ZSA for $365 USD. Click to view full size image Caption: Overhead view of the…

Magic Smoke

If you’ve been around electronics long enough, you’ll have a few magic smoke moments: sometimes you’ll hear a pop, maybe see some smoke, and usually smell ozone and burning plastic in the air. Back at the ISP we had our fair share of those. One time, I managed to connect a backup battery string to a DC inverter backwards (reversed polarity.) The batteries were fused - so no…

A Modest Proposal

A Modest Proposal for Preventing the Aged from Completely Destroying The World Like a lot of people 1 , I think elected representatives should be like airline pilots: made to retire at 65. I don’t have anything against the elderly per se, but I think good governance is mostly about having a preference for the future. A long time ago, I read an essay by Paul Begala 2 where he shared this…

Experiments with Light Key Switch Springs

To help manage RSI ( Repetitive Strain Injury ,) in my pinky fingers (Emacs Pinky) I’ve swapped my key switch springs for the lightest springs I think will allow the key switches to return properly: Sprit MX Supreme 25 S springs. I bought a pack of ~100 springs from RD KBD , for $20 USD shipped. After a week, I’m still getting acclimated to the new springs, which has required more…

Custom Key Caps from FK

Click to view full size image Caption: Installed keycaps; left side After not touching my keyboard layout in any real way for a while, I decided to buy a set of printed key caps to match my layout. After looking around, I found FK Caps which met all of my must-have requirements: Fully customizable legends Full range of custom sizes Shinethrough legends Not terribly expensive (all-in cost with 8…

Calling Myself with a Modem

Reading Hacker News Hug of Deaf , I was reminded of a time I built a custom notification system of sorts. I wrote a script to have a modem call my desk phone. Back at the ISP job, my office was in the data center. In one room, we had racks with colocated customer equipment, and immediately adjacent were the engineering offices. There was a door between the two (which we never closed,) so customers…

Your Feeds Are Already Free

The Free Our Feeds initiative (hereafter, “FoF”) has been seeing a lot of discussion over the past few days. Cory Doctorow signed on and criticized opponents on Mastodon as impractical, puritan scolds . Overall, the initiative purports to be a way to keep Bluesky from turning evil under the control of a maniacal billionaire. They want to raise $30M to, among other things, run a second…

2025 Numerology

There are a bunch of fun numerical facts 1 about 2025: 2025 is a perfect square (45^2 = 2025) Which you can also write as: (20 + 25) * (20 + 25) = 2025 Or (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9)^2 = 2025 1936 (44^2) was the previous perfect-square year; 2116 (46^2) will be the next. 2025 is the product of two squares: 5^2 * 9^2 = 2025 and the sum of three squares: 40^2 + 20^2 + 5^2 = 2025 If you…

Frictionless Dotfile Management With Chezmoi

I use Chezmoi to manage my dot files and scripts. With a few relatively simple config tweaks, I’ve eliminated almost all of the friction of using a dotfile manager. These are my notes about my setup, workflow, and how I handle a few specific situations. Table of Contents The Basics Why use Chezmoi Basic setup Adding and editing files Editing files Emacs integration Setting up a new machine…

Quixotic

Table of Contents Overview Download Quixotic Installation and Configuration Linkmaze Installation and Configuration License Overview Quixotic is a program that will feed fake content to bots and robots.txt-ignoring LLM scrapers. It has no server-side dependencies and is ideal for static website operators. It works by way of a simple Markov Chain text generator. It will slightly modify your content…

Inline Stylesheets With Strict CSP settings

One of the more difficult things to deal with when enabling a strict Content Security Policy is inline stylesheets. Inline stylesheets are everywhere. Disabling unsafe-inline for style-src will break CSS usages such as: < html > < head > < style > . myselector { color : red ; } </ style > </ head > < body > < p class = 'myselector' > this won't be red without style-src 'unsafe-inline'. </ p > < p…

A Tricycle of the Mind

This Christmas, my daughter and I are building a computer together. The sheer power of what will be her first computer, compared to the computers I used when I was her age is staggering, as is the capability of the software she&rsquo;ll have access to. Still, I can&rsquo;t help but think that for all this power, the kids coming of age today have lost something that I took for granted. That I…

Chili

I absolutely love chili, and I&rsquo;ve spent a fair amount of time over the years dialing in my recipe. What follows is tasty, inexpensive, and fairly easy to prepare with a mild heat level that won&rsquo;t offend most people (at least most people that will eat chili in the first place.) Enjoy! This takes approximately 10 minutes to prepare and 2 hours to cook. Click to view full size image

Everybody Oversubscribes

Oversubscription in a network is a state where there is not enough bandwidth at one or more devices (or ports) in the network to support all of the other ports (or devices) using their full bandwidth. Sometimes, it is defined more narrowly to only consider uplinks, or expected traffic flows. Oversubscription is poorly understood outside of networking engineering circles, and tends to be fairly…

We Already Have Self Driving Cars

It is very fashionable on certain parts of the Internet to dunk on self-driving cars. According to these folks, self driving cars are yet another Silicon Valley scam with huge out-sized risks being placed on an unsuspecting public in the form of poorly tested (or untestable) software just waiting to kill people, and with all of the benefits accruing towards a cabal of tech bro elites filled with…

Getting Old

Getting old sucks, as they say. When I was in high school, I read a book about making Dobsonian telescopes and I remember it mentioned, as an aside, that as people age their pupils get smaller and it reduces visual accuity. I noted the anecdote, but didn&rsquo;t think much more about it at the time. According to Amazon, I bought that book in June, 1998. This week, a little over 26 years later, I…

Setting Emacs Variables in Hugo Markdown

If you want to set Emacs File Variables in your Hugo markdown files but not have the Emacs variables visible in your rendered content you have a couple of options: Option 1 &ndash; use an HTML comment Include the file variables in an HTML comment &ndash; that will be stripped out, at least if you are using the default Goldmark renderer. That looks like this: <!-- Local Variables: mode:…

Upgrading the TPM in HP Small Form Factor PCs for use in Linux

I&rsquo;ve recently bought a few Small Form Factor PCs on eBay to use as part of my backup setup. Its hard to beat the price - I&rsquo;ve gotten 4 core, 16GB machines with 250G NVMe SSDs for around $50 - $60 shipped. For one of these machines, I wanted to use the TPM to seal my SSH keys, and had to upgrade it from TPM 1.2 to 2.0. These are my notes on how to do that. The HP upgrade tool is really…

Backup Tools

Table of Contents Overview Features Installation Special Considerations for the Maintenance Script License Overview Backup Tools is a pair of scripts for creating and managing append-only backups made with Borg and Restic . It supports automatically backing up a specified set of files, per-host exclusions, error reporting, and via a second script, periodic verification and compaction of the…

Ransomware Resistant Backups with Borg and Restic

I published my backup scripts here ; this post is a bit more about how I use these scripts to manage my backups and my rationale for why I do backups the way I do. In particular, I&rsquo;ve setup my backup servers to provide at least some protection against intentional deletion by a hostile party (e.g., ransomware operator, etc.) by enforcing append-only backups with Borg and Restic + Rclone .…

Appropriate Technology in the Cloud Age

Click to view full size image Caption: No thanks Cory Doctorow wrote a book recently called The Internet Con: How to Seize the Means of Computation , which I like and think everyone should read. At its core, the book posits a big-picture idea of forcing interoperability on tech giants to lessen their control over society. I think defanging the DMCA anti-circumvention rule, creating real penalties…

Used Hard Drives from Tech on Tech

Updates July-2024 (5 month) update - no failures on any drives. August-2024 (6 month) update - still no failures on my drives from tech on tech, but I had another of my original Seagate Exos NAS drives fail - that&rsquo;s now a 100% failure rate in less than 4 years. January-2025 (12 month) update still no failures on any of the tech on tech drives July-2025 (18 month) update still no failures on…

Consolidated Guide to Using Yubikeys with Linux

Passwords are terrible, but Yubikeys are awesome, especially for reducing the number of passwords you need to remember and the risk of those passwords being stolen. After a fair amount of experimentation, I&rsquo;ve landed on the following setup to make the most use of my Yubikeys: LUKS full disk encryption Local Linux login and sudo SSH keys for remote login Remote sudo over SSH GPG private key…

Tinyimages

Overview Tinyimages is an image render hook and gallery shortcode meant to be used with Tinyblog . I separated it out to make it easier to use with other Hugo themes. The latest version can be downloaded here . Instructions for adding Tinyimages as a Hugo module to your site are provided here in the Tinyblog instructions. Features Preferential loading of avif and webp images, with fallback to…

Tinycomments

Table of Contents Overview Features Design Goals Installation Proof of Work System TODO License Overview Tinycomments is a small self-hosted commenting engine designed to be used with Tinyblog , although it could be used with any website with some adaptation (a little if you&rsquo;re just using a different Hugo theme, more if you don&rsquo;t use Hugo at all.) The latest version of Tinycomments is…

New Workstation

Click to view full size image Caption: Front of case Click to view full size image Caption: Side view of case After a long absence (circa 2006) from using Linux as my daily computing environment, I decided to build a new Linux workstation. I&rsquo;m extremely happy with how it turned out, so I&rsquo;m writing this post with some details about the hardware and software I selected and why. The short…

Idlewatcher

Overview Idlewatcher will execute a command after a specified idle timeout period. By default, after one hour, it will execute systemctl suspend, if all logged-in ttys and Wayland are idle. If Wayland isn&rsquo;t running, or if idlewatcher could not connect to it, it will only look at logged-in ttys. It uses the atime field of each tty to determine idleness, which is updated on user input, but not…

Emacs Macros and Keybindings

Usually, for quick hacks, its easier to define a keyboard macro in Emacs than create a custom Emacs Lisp function. If you want that macro to persist and be easily usable via a key binding, the usual advice is to do something like: ( defalias 'seach-and-replace ( kmacro 'M-x replace-string C-m misspeling C-m misspelling' )) ( global-set-key ( kbd 'C-c C-f' ) 'search-and-replace ) That does work,…

A Real Life Disaster Recovery Event

I&rsquo;ve participated in many Disaster Recovery (&ldquo;DR&rdquo;) planning events over the years, and I generally was left with the impression that, whether the exercise was successful 1 or not, the people running the exercise were never really left with an understanding of what recovery would look like, or how complete the recovery would be. Fortunately, I only ever had to assist one company…

Tinyblog Theme for Hugo

Tinyblog is a hyper minimalist theme for Hugo. You can download it here . If you want to see what it looks like, you&rsquo;re looking at it. This blog uses Tinyblog with the default theme settings. Table of Contents Overview Design Goals A Note on Accessibility Installation Customization Front Matter Deeper Customization Todo License Overview I really like the Hugo site generator. It&rsquo;s fast,…

Dialup ISP Archaeology

I sometimes see questions on Hacker News or other forums that are asking how early dialup ISPs worked (or some specific aspect thereof,) so I thought I&rsquo;d write up what these systems were like. I worked at such an ISP from 1996 - 2006 and we acquired several others during that time, so I got to see a few different approaches. The Bare Minimum Roughly before 1996, most of our users dialed into…

Using a Yubikey and GPG for SSH authentication

Overview I wanted a way to secure my SSH private key on a hardware token, so I configured a Yubikey to store the key. This is an overview of the the steps I took to do this. Install required software GPG If you don&rsquo;t already have GPG installed, you can get it from https://gnupg.org or install it via your favorite package manager. To install it via Homebrew: $ brew install gpg2 Pinentry (for…

Contact Me

You can reach me via email at marcusb@marcusb.org My PGP key can be downloaded here , or on the OpenPGP keyserver . I&rsquo;m also on Matrix and Mastodon .

Hacks

Click to view full size image Caption: Train BASIC Everyday! Web Stuff Quixotic is a set of tools (geared toward static website operators) to confuse bots and LLM scrapers. Tinyblog Theme for Hugo I built this Hugo theme because I wanted something really minimal (but functional) and that wouldn&rsquo;t contribute to the ongoing website obesity crisis Tinycomments . A simple commenting engine,…

Howto Guides

Howto Guides Security Consolidated Yubikey Guide . This is a write-up on using Yubikeys for common authentication tasks, like local login, SSH login, sudo, disk encryption, and GPG signing/encryption.