A Tale of Two DTVs
It was the best of times, it was the worst of times, it was the age of elegant solutions, it was the age of cursed hacks.
exploring the world with 1s and 0s
It was the best of times, it was the worst of times, it was the age of elegant solutions, it was the age of cursed hacks.
Psst. Hey you, wanna see something cool? Let’s juggle some threads.
As part of my research I’ve been playing around with something similar to dynamic linking. In particular, part of my work has led me to having programs that may need multiple copies of libc in the same address space (yes, it’s not safe, I know). I noticed that this would sometimes cause multithreaded programs to hang while calling pthread_join. Join (pun intended) me to understand a bit about how…
It’s been a decade since I started really thinking of myself as a programmer. Here’s some thoughts and reflections about my journey.
In the spirit of a new year, I’ve decided to finish up some old in-progress blog posts. Here’s some work I did early last year to set up a multi-user home server that provides some basic webhosting for Moontower Computer Club.
In Fall of 2025 I began my PhD journey at UT Austin! Here’s some stuff I’ve learned so far.
Many shell scripts in the wild are not transactional, leading to broken systems and unintended system states. In this post I’ll describe the issue and present a possible method for making shell scripts transactional with respect to the filesystem level to cover a wide variety of possible failures.
Hugepages can lead to performance issues when mapped in Copy-on-Write (CoW) mode. In this post, I’ll describe the problem with some benchmarks.
Getting involved in petty internet drama is totally not a waste of my time - not if it means I can write some Rust.
Getting cProfile to handle scripts that import __main__.