Faraday Bags for a Protest

01/23/2026

Introduction I attended a protest in October last year and decided to take some extra precautions with my phone usage. It has been widely reported that Cell-Site Simulators (CSS) are...

Using a Loop in Bash to Modify Filenames Containing Spaces

11/23/2025

I often have to batch rename a list of files. I self-host a media server, and occasionally when I add new music, the filenames need to be adjusted. Perhaps they...

Building a Firefox Browser Extension - Part Four

08/05/2025

My extension is complete! I submitted it to Mozilla Add-ons in mid-July and it was approved a few days later (addons.mozilla.org). Also, the source code can be found on Codeberg...

Building a Firefox Browser Extension - Part Three

06/21/2025

As is often the case, I reached an inflection point while tackling this project: I went from trying to simply understand the structure of Firefox extensions to having concrete...

Building a Firefox Browser Extension - Part Two

06/16/2025

When my browser extension is complete, it will need to highlight any dead links it finds in the page. To accomplish this, I’ve been experimenting with the find API, using...

Building a Firefox Browser Extension - Part One

06/06/2025

Background Transforming my Programming Log into this website has proven to be quite an undertaking, and I’ve thoroughly enjoyed it. The log consists of five giant markdown files, one for...

Tetration and Iterated Log

06/01/2025

Introduction I wrote this bit about an obscure mathematical concept, Tetration, in January 2024. At the time, I was taking an online course called Algorithms for Searching, Sorting, and Indexing...

From Plex to Jellyfin

05/22/2025

On April 29th, Plex increased the prices of its Plex pass subscription plans an d moved some key features behind that paywall. After that date, a Plex pass would be...

A Bash Script for Jekyll Development

05/19/2025

I'm a fan of the static site generator Jekyll. It can do as much or as little as you want it to do, simply providing the directory structure or organizing...

Static vs. Dynamic Arrays

09/15/2024

What is an Array? An array is one of the simplest data structures available to the programmer. It stores elements of a given data type, e.g. int, float, char, contiguously...

RSA Encryption - A Walkthrough

09/03/2024

RSA Python Code Introduction I’ve written this walkthrough in an effort to understand the RSA encryption algorithm (Rivest, Shamir, Adleman). I started with some basic research, sifting through valuable sources...

Hasse Diagrams with Rust

07/31/2024

While studying Chapter 0 of the book Introductory Discrete Mathematics in my spare time, I decided to write a program that could generate a Hasse Diagram from a partially-ordered set....

Hello, World!

07/23/2024

I’m a Music Instructor working to become a Software Engineer. I’ve been teaching 1-on-1 guitar, bass, and ukulele lessons with over 40 students a week for the past five years....