Things I wish I knew the day I started Berklee
2008-09-05 This is a talk I gave to incoming first-year students at Berklee College of Music today: September 5, 2008. #1 : Focus. Disconnect. Do not be distracted. My favorite part of the movies is the training sequence, where a young Bruce Wayne, Neo, or Kung-Fu Panda goes to a remote location to be trained […]
Rust-Query
2024-11-24 Announcing rust-query Do you want to persist your data safely without migration issues and easily write complicated queries? All of this without writing a single line of SQL? If so, then I am making rust-query for you! This is my first blog post about rust-query, a project I’ve been working on for many months. […]
Watch Out for Counterintuitive Implicit Actor-Isolation

I ran into some unexpected runtime crashes recently while testing an app on iOS 18 compiled under Swift 6 language mode, and the root causes ended up being the perils of using @unchecked Sendable in combination with some counterintuitive compiler behavior with implicit actor isolation. Rather than start at the end, I’ll walk you through […]
Thoughts on the Software Industry
Someone asked me via email about my thoughts on the software engineering field, and what I would tell someone new to the industry. (Relatively speaking, I’m also pretty new to the industry! But it’s 5AM, and I ended up going on a long semi-rant. I thought the rant might be interesting to some other people […]
Make the Most Of Your Burl
Make the Most of Your BurlAvailable to view until May 31st, 2025 Download the Notes:Rice Bowl Plan – Rice Bowl Steps and Tools – Color Process – Finishing Technique – Supplier Links Chat Transcript from the live classDownload a PDF to access this pageVideo timeline
Making Screenshots of Test Equipment Old and New

Last year, I create Fake Parallel Printer, a tool to capture the output of the parallel printer port of old-ish test equipment so that it can be converted into screenshots for blog posts etc. It’s definitely a niche tool, but of all the projects that I’ve done, it’s definitely the one that has seen the […]
Engineering Sleep

Engineering Sleep Background Sleep claims a third of human life. Like water, it’s not a desire but a necessity. Sleep rules virtually every important system: brain, heart, mood, and immunity. Nature’s terms are harsh. Sleep eight hours or face mental and physical decay. Can we rewrite the terms in our favor? Can we sleep less, […]
The Quake III Arena Bot (2001) [pdf]
Download PDF
C64 Basic Tutorial: Using String Manipulation to Write a Text Adventure

Strings are variables made up of text characters, for example NAME$=”CHRIS”. C64 BASIC was unusual for the time as it allowed you to create and manipulate text string variables without having to reserve space or define them before using them. Text Adventure Games This ease of use of BASIC and immediate understanding of how strings […]
Making a parallel Rust workload 10x faster with (or without) Rayon
In a previous post, I’ve shown how to use the rayon framework in Rust to automatically parallelize a loop computation across multiple CPU cores. Disappointingly, my benchmarks showed that this only provided a 2x speedup for my workload, on a computer with 8 CPU threads. Worse, the total “user” and “system” times increased linearly with […]