Hi šŸ‘‹

I’m a 😈 FreeBSD enjoyer, 🐧 Linux enthusiast, a 🚩 NetBSD fan, and I’m 🐔 OpenBSD-curious. Check out my about page, my Codeberg, or one of my blog posts below.

Network booting a Sun Ultra 5

A while ago I picked up a Sun Ultra 5 on eBay. For a long time now, I’ve been really curious about non-x86-based CPU architectures and finally decided that Raspberry Pis and other ARM devices were no longer interesting enough to sate that curiosity.

Having recently set up network-booting infrastructure in my homelab, I figured it would be fun to dive into the rather interesting Sun network-booting procedure to restore this old computer to good working order.

read more →

Network booting made easy with GRUB!

Anyone who routinely experiments with different operating systems (or frequently breaks their OS install) knows how annoying it can be to pull out a USB drive, flash it with an OS installer, and proceed with the installation.

At first glance, network booting an OS seems to be a headache all its own, largely due to decades of out-of-date and conflicting documentation each part of which is focused on a different process and frequently is OS-specific.

I promise you, it’s actually very straightforward and will hardly take an afternoon to set up.

read more →

Update: Hosting a static site on AWS

In October of 2023, I wrote the first article on this site. I outlined how I put together this site on AWS and discussed a few considerations I had, especially related to cost.

Now that I’ve been running the site for about a year and a half, I think it’s a good time for an update.

read more →

The One Billion Row Challenge: Part 1

In January of last year, Gunnar Morling announced the One Billion Row Challenge. Because I live under a rock, I didn’t learn about it until fairly late last year, but the challenge is seductively simple: calculate the min, max, and average of one billion measurements.

The top submissions of the official contest all ran in under two seconds, with the top ten running in less than ten seconds. The goal I’ve set for myself is to eventually put together a solution that solves the puzzle in under ten seconds.

If you want to skip straight to the code, here’s my Codeberg repo.

read more →

Manage development environments with Nix

Reproducibility is a real problem in software development. All too often, developers find themselves in a situation where something works on their coworker’s machine, but not theirs.

Picture this scenario: you’ve just joined a new team that uses a tech stack that’s non trivial to set up (let’s say GStreamer). You’re new to this stack and don’t really know where to start.

They don’t have any CI set up.

They don’t use dev-containers.

Bonus points: the documentation is all woefully out-of-date and mostly exists within the brains of veteran engineers on the team.

As a result, it takes you the better part of a week to get a working dev environment. There must be a better way.

read more →