Skip to main content


Occasionally I write about something I’ve done or my thoughts on a particular topic.

I’ve always been fascinated by technology; it’s so shiny and exciting, so full of potential uses. But sometimes those many uses are too much. Sometimes we use technology simply because it’s there, and it gets in the way of what we truly care about doing. As my time and mental energy have become more scarce, and as technology has become more addictive and manipulative, my attitude towards the digital world has changed.
I taught an undergraduate computer networking course this summer. Since it was my first experience as an instructor, everyone who hears about it seems to ask the same question: “So, do you like teaching?” …
In this day and age, we’re fortunate to have access to just about any information with a simple web search. While the online treasure trove of knowledge is incredibly useful, it can be a pain to sort through all the content and find something that’s accurate, specific, and up-to-date. I’ve recently had several experiences that have reminded me how wonderful it is to have high quality, easily available, curated documentation. …
Recently, the U.S. Federal Communications Commission (FCC) established a process by which consumers can demonstrate that, contrary to what their carrier claims, they don’t have adequate cell service in a specific geographical area. In other words, you can prove that Verizon (or whatever carrier you use) really does have terrible service in your neighborhood despite what their coverage maps say. …
I grew up reading all the time (thanks, Mom!), devouring series like Harry Potter, Eragon, and The Hunger Games as fast as I could get my hands on them. As I got older, though, I began replacing reading with other activities like socializing, tinkering with computers, or even just doing homework; by the time I finished my undergrad, I was only reading a non-assigned book every year or two at best. …
The amusing story of how trying to be clever got me blocked from accessing all ACM pubications.
When I tell people that I’m working on a Ph.D. in computer science, they often follow up with a logical question: What are you hoping to do with that? Since I’m still not entirely sure what job I’ll end up in, I typically have to do some explaining. This post attempts to articulate my reasoning for pursuing a Ph.D., both for curious friends/family and for my future self, who will surely question the decision many times. …
It didn’t take long after getting my Keyboardio Atreus for me to try out home-row mods. I used them for several months and really wanted to like them – it’s so convenient to have all your modifiers on the home row – but I could never get the timing configuration right. In their place, I discovered combo mods, which are almost as convenient and much less error-prone.
I bought a Keyboardio Atreus in early 2021 – here are my thoughts on it.
Armbian’s Ubuntu 20.04 server image for the ROCKPro64 works great – even the ZFS DKMS module installs without a hiccup! However, it has no built-in fan control; this post explains how I got it set up.
For the last year and a half I ran my personal website using Grav CMS with my own Webfolio theme. However, it’s now a super simple static site built with Hugo. In this post, I explain why I decided to make that switch.
After a failed attempt at self-hosting a few years ago, I eventually decided to give it another shot. It’s been a fun, satisfying adventure, and I highly recommend you try it as well.
I bought a ROCKPro64 single-board computer to use as a home server. Once it arrived, I quickly discovered that setting up ZFS on it was going to be a bit tricky. After a few hours of troubleshooting, I finally figured it out – here’s how to get it working.
I wrote a basic C++ linked list implementation to sharpen my skills, and I quickly found myself in need of a good way to test my code. I found Catch2, a simple C++ testing framework, and then used Gcov to ensure that my tests were covering all the code. By no means am I an expert, but I’ll go ahead and share what I’ve learned so far.
When I found myself sitting at a computer writing code for 40 hours a week for the first time, I started looking for ways to make my computer work more comfortable and efficient. After a bit of research, I figured out how to remap a modifier key (e.g., Ctrl, Alt, etc.) plus i/j/k/l to the arrow keys.