Blog
Occasionally I write about something I’ve done or my thoughts on a particular topic.
In praise of good docs: 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. [...]
What does it take to prove that you don't have good cell service?: 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. This whole process is rather complicated, though, and it’s primarily explained in official FCC documents that are long, boring, and sometimes difficult to understand. I’ve gone through those documents for my Ph.D. work, and I have a pretty good understanding of how the process works. This post aims to serve as an overview of the process for people who don’t feel like combing through 100-page government publications. [...]
A year of reading: 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. Then, during the holidays at the end of 2021, I watched Little Women and spontaneously decided that I should read the book. Once I got home from vacation, I dug up my old Kindle, got a copy of Louisa May Alcott’s classic, and started reading. By the time I finished, my love of reading had been reignited; I finished 36 books during 2022 and discovered that reading is a wonderful hobby, worth fitting in regardless of how busy my schedule is. [...]
How I got blocked by the ACM: The amusing story of how trying to be clever got me blocked from accessing all ACM pubications.
Why I'm getting a Ph.D.: 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 (Another common follow-up question: Do you want to be a professor? Answer: maybe), 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. [...]
Combo mods: A less error-prone alternative to home-row mods: 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.
Keyboardio Atreus review: I bought a Keyboardio Atreus in early 2021 – here are my thoughts on it.
Fan control on Armbian's Ubuntu 20.04 ROCKPro64 server image: 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.
Why I switched to a simple static site: 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.
On self-hosting: 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.
Setting up ZFS on a ROCKPro64 running Debian Buster: 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.
Basic C++ unit testing with coverage using Catch2 and Gcov: 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.
Using letters as arrow keys on Linux and Mac: 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.