Like many, bot traffic has been causing significant issues for my hosted server recently. I’ve been noticing a dramatic increase in bots that do not respect robots.txt, especially the crawl-delay I have set there. Not only that, but many of them are sending user-agent strings that are quite precisely matching what desktop browsers send. That is, they don’t identify themselves.| The Changelog
Here, in classic Goerzen deep dive fashion, is more information than you knew you wanted about a topic you’ve probably never thought of. I found it pretty interesting, because it took me down a rabbit hole of subsystems I’ve never worked with much and a mishmash of 1980s and 2020s tech.| The Changelog
John and Oliver trip to Vintage Computer Festival Midwest 2019. Oliver playing Zork on the Micro PDP-11Inspired by a weekend visit to Vintage Computer Festival Midwest at which my son got to play Zork on an amber console hooked up to a MicroPDP-11 running 2BSD, I decided it was time to act on my long-held plan to get a real old serial console hooked up to Linux.| The Changelog
Six years ago, I was inspired to buy a DEC serial terminal. Since then, my collection has grown to include several DEC models, an IBM 3151, a Wyse WY-55, a Televideo 990, and a few others.| The Changelog
Somehow along the way, a feature that I’ve had across DOS, OS/2, FreeBSD, and Linux — and has been present on PCs for more than 40 years — is gone.| The Changelog
I wrote recently about buying a Digital (DEC) vt420 and hooking it up to Linux. Among my observations on the vt420, which apparently were among the most popular to use with Unix systems, are these:| The Changelog
In my post yesterday (“ARM is great, ARM is terrible (and so is RISC-V)), I described my desire to find ARM hardware with AES instructions to support full-disk encryption, and the poor state of the OS ecosystem around the newer ARM boards.| The Changelog
I’m something of a filesystem geek, I guess. I first wrote about ZFS on Linux 14 years ago, and even before I used ZFS, I had used ext2/3/4, jfs, reiserfs, xfs, and no doubt some others. I’ve also used btrfs. I last posted about it in 2014, when I noted it has some advantages over … Continue reading btrfs on a Raspberry Pi→| The Changelog
Here on a summer night in the grass and lilac smell Drunk on the crickets and the starry sky, Oh what fine stories we could tell With this moonlight to tell them by. A summer night, and you, and paradise, So lovely and so filled with grace, Above your head, the universe has hung its … Continue reading Dreams of Late Summer→| The Changelog
I recently wrote about How to Use SSH with FIDO2/U2F Security Keys, which I now use on almost all of my machines. The last one that needed this was my Raspberry Pi hooked up to my DEC vt510 terminal and IBM mechanical keyboard. Yes I do still use that setup! To my surprise, generating a … Continue reading I Learned We All Have Linux Seats, and I’m Not Entirely Pleased→| The Changelog
For many years now, I’ve been using an old YubiKey along with the free tier of Duo Security to add a second factor to my SSH logins. This is klunky, and has a number of drawbacks (dependency on a cloud service and Internet among them). I decided it was time to upgrade, so I recently … Continue reading How to Use SSH with FIDO2/U2F Security Keys→| The Changelog
The Internet is an amazing place, and occasionally you can find things on the web that have somehow lingered online for decades longer than you might expect. Today I’ll take you on a tour of some parts of the early Internet. The Internet, of course, is a “network of networks” and part of its early … Continue reading Memoirs of the Early Internet→| The Changelog
A few days ago, I announced NNCPNET, the email network based atop NNCP. NNCPNET lets anyone run a real mail server on a network that supports all sorts of topologies for transport, from Internet to USB drives. And verification is done at the NNCP protocol level, so a whole host of Internet email bolt-ons (SPF, … Continue reading NNCPNET Can Optionally Exchange Internet Email→| The Changelog
From 1995 to 2019, I ran my own mail server. It began with a UUCP link, an expensive long-distance call for me then. Later, I ran a mail server in my apartment, then ran it as a VPS at various places. But running an email server got difficult. You can’t just run it on a … Continue reading Announcing the NNCPNET Email Network→| The Changelog
As I write this in March 2025, there is a lot of confusion about Signal messenger due to the recent news of people using Signal in government, and subsequent leaks. The short version is: there was no problem with Signal here. People were using it because they understood it to be secure, not the other … Continue reading Why You Should (Still) Use Signal As Much As Possible→| The Changelog
In light of this week’s announcement by Meta (Facebook, Instagram, Threads, etc), I have been pondering this question: Why am I, a person that has long been a staunch advocate of free speech and encryption, leery of sites that talk about being free speech-oriented? And, more to the point, why an I — a person … Continue reading Censorship Is Complicated: What Internet History Says about Meta/Facebook→| The Changelog
I last reviewed email services in 2019. That review focused a lot of attention on privacy. At the time, I selected mailbox.org as my provider, and have been using them for these 5 years since. However, both their service and their support have gone significantly downhill since, so it is time for me to look … Continue reading Review of Reputable, Functional, and Secure Email Service→| The Changelog
I’ve been using E Ink-based ereaders for quite a number of years now. I’ve had my Kobo Libra 2 for a few years, and was looking forward to the Kobo Libra Colour — the first color E Ink display in a mainstream ereader line. I found the display to be a mixed bag; contrast seemed … Continue reading Photographic comparison: Is the Kobo Libra Colour display worse than the Kobo Libra 2?→| The Changelog
It is, sadly, not entirely surprising that Facebook is censoring articles critical of Meta. The Kansas Reflector published an artical about Meta censoring environmental articles about climate change — deeming them “too controversial”. Facebook then censored the article about Facebook censorship, and then after an independent site published a copy of the climate change article, … Continue reading Facebook is Censoring Stories about Climate Change and Illegal Raid in Marion, Kansas→| The Changelog
You’ve probably heard of the recent backdoor in xz. There have been a lot of takes on this, most of them boiling down to some version of: The problem here is with Open Source Software. I want to say not only is that view so myopic that it pushes towards the incorrect, but also it … Continue reading The xz Issue Isn’t About Open Source→| The Changelog
I’ve been getting annoyed with Raspberry Pi OS (Raspbian) for years now. It’s a fork of Debian, but manages to omit some of the most useful things. So I’ve decided to migrate all of my Pis to run pure Debian. These are my reasons: Raspberry Pi OS has, for years now, specified that there is … Continue reading Live Migrating from Raspberry Pi OS bullseye to Debian bookworm→| The Changelog
This Christmas, one of my gifts to my kids was a text adventure (interactive fiction) game for them. Now that they’ve enjoyed it, I’m releasing it under the GPL v3. As interactive fiction, it’s like an e-book, but the reader is also the player, guiding the exploration of the world. The Grumpy Cricket is designed … Continue reading The Grumpy Cricket (And Other Enormous Creatures)→| The Changelog
I recently read a post on social media that went something like this (paraphrased): “If you buy an EV, you’re part of the problem. You’re advancing car culture and are actively hurting the planet. The only ethical thing to do is ditch your cars and put all your effort into supporting transit. Anything else is … Continue reading It’s More Important To Recognize What Direction People Are Moving Than Where They Are→| The Changelog
Sometimes we want better-than-firewall security for things. For instance: An industrial control system for a municipal water-treatment plant should never have data come in or out Or, a variant of the industrial control system: it should only permit telemetry and monitoring data out, and nothing else in or out A system dedicated to keeping your … Continue reading How Gapped is Your Air?→| The Changelog
Two years ago, I wrote Managing an External Display on Linux Shouldn’t Be This Hard. Happily, since I wrote that post, most of those issues have been resolved. But then you throw HiDPI into the mix and it all goes wonky. If you’re running X11, basically the story is that you can change the scale … Continue reading A Maze of Twisty Little Pixels, All Tiny→| The Changelog
Some decades back, when I’d buy a new PC, it would unlock new capabilities. Maybe AGP video, or a PCMCIA slot, or, heck, sound. Nowadays, mostly new hardware means things get a bit faster or less crashy, or I have some more space for files. It’s good and useful, but sorta… meh. Not this purchase. … Continue reading For the First Time In Years, I’m Excited By My Computer Purchase→| The Changelog
$ grep kermit /etc/services kermit 1649/tcp What is this mysterious protocol? Who uses it and what is its story? This story is a winding one, beginning in 1981. Kermit is, to the best of my knowledge, the oldest actively-maintained software package with an original developer still participating. It is also a scripting language, an Internet … Continue reading Try the Last Internet Kermit Server→| The Changelog
This is the fourth in a series about archiving to removable media (optical discs such as BD-Rs and DVD+Rs or portable hard drives). Here are the first three parts: In part 1, I laid out my goals for the project, and considered a number of tools before determining dar and git-annex were my leading options. … Continue reading Backing Up and Archiving to Removable Media: dar vs. git-annex→| The Changelog
This is the third post in a series about data archiving to removable media (optical discs and hard drives). In the first, I explained the difference between backing up and archiving, established goals for the project, and said I’d evaluate git-annex and dar. The second post evaluated git-annex, and now it’s time to look at … Continue reading Using dar for Data Archiving→| The Changelog
In my recent post about data archiving to removable media, I laid out the difference between backing up and archiving, and also said I’d evaluate git-annex and dar. This post evaluates git-annex. The next will look at dar, and then I’ll make a comparison post. What is git-annex? git-annex is a fantastic and versatile program … Continue reading Using git-annex for Data Archiving→| The Changelog
I have several TB worth of family photos, videos, and other data. This needs to be backed up — and archived. Backups and archives are often thought of as similar. And indeed, they may be done with the same tools at the same time. But the goals differ somewhat: Backups are designed to recover from … Continue reading Recommendations for Tools for Backing Up and Archiving to Removable Media→| The Changelog
Martha, now 5, can’t remember a time when she didn’t fly periodically. She’s come along in our airplane in short flights to a nearby restaurant and long ones to Michigan and South Dakota. All this time, she’s been riding in the back seat next to Laura. Martha has been talking excitedly about riding up front … Continue reading Martha the Pilot→| The Changelog
Probably everyone is familiar with a regular VPN. The traditional use case is to connect to a corporate or home network from a remote location, and access services as if you were there. But these days, the notion of “corporate network” and “home network” are less based around physical location. For instance, a company may … Continue reading Easily Accessing All Your Stuff with a Zero-Trust Mesh VPN→| The Changelog
Update 2023-04: The version of this page on my public website has some important updates, including how to use broadcast detection in Docker, Yggdrasil zero-config for ephemeral containers, and more. See it for the most current information. Sometimes you might want to run Docker containers on more than one host. Maybe you want to run … Continue reading Using Yggdrasil As an Automatic Mesh Fabric to Connect All Your Docker Containers, VMs, and Servers→| The Changelog
It’s been nearly 8 years since I last made choices about music playing. At the time, I picked Logitech Media Server (LMS, aka Slimserver and Squeezebox server) for whole-house audio and Ampache with the DSub Android app. It’s time to revisit that approach. Here are the things I’m looking for: Whole-house audio: a single control … Continue reading Music Playing: Both Whole-House and Mobile→| The Changelog
I loaded up this title with buzzwords. The basic idea is that IM systems shouldn’t have to only use the Internet. Why not let them be carried across LoRa radios, USB sticks, local Wifi networks, and yes, the Internet? I’ll first discuss how, and then why. How do set it up I’ve talked about most … Continue reading Building an Asynchronous, Internet-Optional Instant Messaging System→| The Changelog
Wisdom from my 5-year-old: When flying in a small plane, it is important to give your dolls a headset and let them see out the window, too! Moments like this make me smile at being a pilot dad. A week ago, I also got to give 8 children and one adult their first ever ride … Continue reading Flying Joy→| The Changelog
“OK,” you’re probably thinking. “John, you talk a lot about things like Gopher and personal radios, and now you want to talk about building a reliable network out of… USB drives?” Well, yes. In fact, I’ve already done it. What is sneakernet? Normally, “sneakernet” is a sort of tongue-in-cheek reference to using disconnected storage to … Continue reading Dead USB Drives Are Fine: Building a Reliable Sneakernet→| The Changelog
Inspired by several others (such as Alex Schroeder’s post and Szczeżuja’s prompt), as well as a desire to get this down for my kids, I figure it’s time to write a bit about living through the PC and Internet revolution where I did: outside a tiny town in rural Kansas. And, as I’ve been back … Continue reading The PC & Internet Revolution in Rural America→| The Changelog
Most of us carry cell phones with us almost everywhere we go. So much so that we often forget not just the usefulness, but even the joy, of having our own radios. For instance: When traveling to national parks or other wilderness areas, family and friends can keep in touch even where there is no … Continue reading The Joy of Easy Personal Radio: FRS, GMRS, and Motorola DLR/DTR→| The Changelog
I have been looking for a good tablet for Debian for… well, years. I want thin, light, portable, excellent battery life, and a servicable keyboard. For a while, I tried a Lenovo Chromebook Duet. It meets the hardware requirements, well sort of. The problem is with performance and the OS. I can run Debian inside … Continue reading I Finally Found a Solid Debian Tablet: The Surface Go 2→| The Changelog
In the recent article The Internet Origin Story You Know Is Wrong, I was somewhat surprised to see the argument that BBSs are a part of the Internet origin story that is often omitted. Surprised because I was there for BBSs, and even ran one, and didn’t really consider them part of the Internet story … Continue reading Lessons of Social Media from BBSs→| The Changelog
Saturday, I wrote in Pipes, deadlocks, and strace annoyingly fixing them about an issue where a certain pipeline seems to have a deadlock. I described tracing it into kernel code. Indeed, it appears to be kernel bug 212295, which has had a patch for over a year that has never been merged. After continuing to … Continue reading Pipe Issue Likely a Kernel Bug→| The Changelog
This is a complex tale I will attempt to make simple(ish). I’ve (re)learned more than I cared to about the details of pipes, signals, and certain system calls – and the solution is still elusive. For some time now, I have been using NNCP to back up my files. These backups are sent to my … Continue reading Pipes, deadlocks, and strace annoyingly fixing them→| The Changelog
Like many young programmers of my age, before I could use the Internet, there were BBSs. I eventually ran one, though in my small town there were few callers. Some time back, I downloaded a copy of Jason Scott’s BBS Documentary. You might know Jason Scott from textfiles.com and his work at the Internet Archive. … Continue reading Really Enjoyed Jason Scott’s BBS Documentary→| The Changelog
200 years ago, my ancestors migrated from Prussia to Ukraine. They left for many reasons, many of which boiled down to their strong pacifism in the midst of a highly militarized country. Last week, my wife, the boys, and I walked through the favorite palace of Friedrich Wilhelm III, the king of Prussia who was … Continue reading Visiting Germany: Reflections on Schloss Charlottenburg→| The Changelog
It seems that lately I’ve written several shell implementations of a simple queue that enforces ordered execution of jobs that may arrive out of order. After writing this for the nth time in bash, I decided it was time to do it properly. But first, a word on the why of it all. Why did … Continue reading Fast, Ordered Unixy Queues over NNCP and Syncthing with Filespooler→| The Changelog
Note: this post is also available on my website, where it will be updated periodically. When things are difficult – maybe there’s been a disaster, or an invasion (this page is being written in 2022 just after Russia invaded Ukraine), or maybe you’re just backpacking off the grid – there are tools that can help … Continue reading Tools for Communicating Offline and in Difficult Circumstances→| The Changelog
I recently wrote that managing an external display on Linux shouldn’t be this hard. I went down a path of trying out some different options before finally landing at an unexpected place: KDE. I say “unexpected” because I find tiling window managers are just about a necessity. Background: xmonad Until a few months ago, I’d … Continue reading KDE: A Nice Tiling Envieonment and a Surprisingly Awesome DE→| The Changelog
I’m going to lead with the technical punch line, and then explain it: Yggdrasil Network is an opportunistic mesh that can be deployed privately or as part of a global-scale network. Each node gets a stable IPv6 address (or even an entire /64) that is derived from its public key and is bound to that … Continue reading Make the Internet Yours Again With an Instant Mesh Network→| The Changelog
I have a problem.| The Changelog
I’ve long been interested in new and different platforms. I ran Debian on an Alpha back in the late 1990s and was part of the Alpha port team; then I helped bootstrap Debian on amd64. I’ve got somewhere around 8 Raspberry Pi devices in active use right now, and the free NNCPNET Internet email service I manage runs on an ARM instance at a cloud provider.| changelog.complete.org
I’ve long been interested in new and different platforms. I ran Debian on an Alpha back in the late 1990s and was part of the Alpha port team; then I helped bootstrap Debian on amd64. I’ve got somewhere around 8 Raspberry Pi devices in active use right now, and the free NNCPNET Internet email service I manage runs on an ARM instance at a cloud provider.| The Changelog
I write this in the context of my decision to ditch Raspberry Pi OS and move everything I possibly can, including my Raspberry Pi devices, to Debian. I will write about that later.| The Changelog
Sometimes we want better-than-firewall security for things. For instance:| changelog.complete.org
I think most people reading my blog would agree that backups are extremely important. So much important data is on computers these days: family photos, emails, financial records. So I take backups seriously.| The Changelog
Back in 1995 or so, pretty much everyone with a PC did all their work as root. We ran graphics editors, word processors, everything as root. Well, not literally an account named “root”, but the most common DOS, Windows, and Mac operating systems of the day had no effective reduced privilege account.| The Changelog