RSSAmplifier

Blog

The Yakshed

blog.bsprague.comRSS feed ↗13 posts

Latest posts

Jujutsu's Megamerge + Houseplant Programming

Some Definitions Jujutsu ( jj on the CLI) is a version control system, like Git. In fact, by default, it uses Git behind the scenes. Different people have different reasons for liking jj , but most boil down to "there are fewer commands, but they're powerful and more intuitive". I'm not going to wax poetic about jj , but I'm a happy user and I've replaced it for more or less…

How to own IoT devices and still sleep at night

There's an oft-repeated nerd joke that goes something like: The "S" in IoT stands for "Security" 1 And it's one of those things that's funny because it's unfortunately true. IoT devices tend to have terrible security postures and are vulnerable to all sorts of exciting attacks. Some attacks require physical proximity, but others leverage the cloud services these IoT devices…

Dealing with a DERPy server

I run most of my sites, including this blog, off a mini PC in my basement. 1 I have a gigabit fiber internet and host mostly simple, non-media intensive applications, so bandwidth isn't really an issue, but I don't have a static IP address, so I tunnel all my traffic through a Digital Ocean VM. It looks something like this: There's a little Caddy server running on the VM, which…

Doing a Jig

I'm far from the first person to make a comparison between carpentry and software engineering. Or to note that there's a non-negligible contingent of software engineers that enjoy doing carpentry and other hands-on, precise tradecraft. 1 Nor am I likely the first to note that both carpentry and software engineering both involve the making of jigs . But I want to talk about jigs for a…

Judging Books by Their Covers, Empirically

Or an alternative title: "Man uses astrology in desperate attempt to convince himself he's the smarter sibling" My sister and I are both pretty avid readers, but she handily outreads me by any metric you'd care to measure (words, pages, books, time, etc). To make myself feel better, I'm always giving her shit for reading what — in my humble opinion — sounds like hot garbage. Not…

Becoming the Internet #1: Weighing the Options

I have approximately two main goals with this project: Become an internet service provider (ISP) for (at least) one person Become a hosting provider (i.e. "a Cloud") for (at least) one person For both of these goals, that "one person" is overwhelmingly likely to be yours truly. If any of my neighbors decide to use me as an ISP, or anyone on the internet wants to host things on my platform,…

Domain Mania (Domania?)

This was supposed to be a post about how to migrate domains from Google Domains to Porkbun , but I spent too much time talking about the domains themselves, so now this is a post about domains. The "registrar migration" post will surely materialize eventually. At some point in my adult life, I became an exceptionally boring person. I don't mean in the "really lame to be around" sense, more…

Becoming the Internet #0: Dangerous Questions

The journey begins. TL;DR - I'm on an adventure to become a part of the internet, starting my own rural ISP + web hosting service in the process. Some of my favorite projects are the ones where the only truthful answer to the question of "Why?" is "idk it seemed interesting". This is very much one of those projects. I think it kinda naturally unfurled as an offshoot of my interest in…

Speeding up Restic Backups on Kubernetes

Chart built with Excalichart , explanation of results at the end SPOILER: This is one of those optimization stories where the dramatic improvement comes from just not-doing the wrong thing anymore, as opposed to any feats of actual performance engineering. Basically just starting with an arbitrarily bad baseline. But still, this is a footgun one will run into naively configuring Restic on…

Hosting a Site on Cloudflare R2

I get nerdsniped easily. So when someone on Hacker News mentioned trying to view a 417-megapixel Andromeda galaxy panorama , I sprung into action. More specifically, I: Found a JavaScript library for rendering zoomable images on the web ( OpenSeadragon ) that looked promising Converted the 417-megapixel image into a Deep Zoom image , which is a .dzi file and some nested directories of images Wrote…

Asteroids: A Christmas Gift

This past Christmas, a friend gave my partner and I tickets to a show. I figured that this friend, who we'll call James 1 , would enjoy the show as well, so I planned on getting him a retaliatory ticket to come join us. But I don't like just giving people gifts, I want them to work for it know I care. Usually I do this by making some silly personalized site to go along with the actual…

A Tool for Timeliness

Here's a bunch of loosely related statements: I want to make my environment conducive to the goals I want to achieve. One of the goals I want to achieve is being a reliable person. A non-negligible part of being a reliable person is not being a total flake. All very reasonable. And now, the problem: occasionally, I am a total flake. Perhaps once or twice a month until embarrassingly recently,…

An Infinite Stream of Awful Ideas

I've been writing on other assorted parts of the internet for a while, but never really had a good place to write about the random menagerie of things I've built over the past decade or two.