1/0 = 0
Disclaimer 2024-12-02 Since this rant is going viral again (again (again)), some disclaimers: I wrote this six years ago to “”“win”“” an ugly Twitter fight. I’m glad I anonymized the inciting tweet and hope I’m the only person still getting grief over this. The core interesting bit— why it’s mathematically valid to…
Compressing and enhancing hand-written notes (2016)
I wrote a program to clean up scans of handwritten notes while simultaneously reducing file size.
How DOOM fire was done
The Game Engine Black Book: DOOM features a whole chapter about DOOM console ports and the challenges they encountered. The utter failure of the 3DO, the difficulties of the Saturn due to its affine texture mapping, and the amazing "reverse-engineering-from- scratch" by Randy Linden on Super Nintendo all have rich…
24-core CPU and I can’t type an email
I wasn’t looking for trouble. I wasn’t trying to compile a huge project in the background (24-core CPU and I can’t move my mouse), I was just engaging in that most mundane of 21st century tasks, wr…
Why did I spend 1.5 months creating a Gameboy emulator? (2017)
For me, the most favorite type of a computer program is an emulator. Being able to run code from a completely different hardware architecture always seemed like a magic. The old computers are great on their own, so this kind of connection between historic machines and the modern computing environment feels almost like…
Fridge 0.2
My offgrid, solar powered, zero-battery-use fridge has sucessfully made it through spring, summer, fall, and more than enough winter.
I discovered a browser bug
I accidentally discovered a huge browser bug a few months ago and I'm pretty excited about it. Security engineers always seem like the "cool kids" to me, so I'm hoping that now I can be part of the club, and y'know, get into the special parties or whatever.
The Benjamin Franklin method for learning more from programming books
The Benjamin Franklin method for programming books: read a code sample, close the book, and rewrite it from memory to truly learn it.
Sneak Peek at WebAssembly Studio
WebAssembly.Studio is an online IDE (integrated development environment) that helps you learn and teach others. It’s also a Swiss Army knife that comes in handy whenever working with WebAssembly (WASM). ...
Flask 1.0 Released
The Flask framework has been stable for a long time. A little more than 8 years after the first commit, the version number finally reflects that. 1.0 comes with a significant number of changes representing over a year of work.
Introducing Git protocol version 2
The latest news from Google on open source releases, major projects, events, and outreach programs for early career developers.
Write Your Own Virtual Machine
In this tutorial, I will teach you how to write your own virtual machine (VM) that can run assembly language programs, such as my friend’s 2048 or my Roguelike . If you know how to program, but would like to gain a deeper understanding of what is going on inside a computer and better understand how programming…
The Makefile I use with JavaScript projects
I work on a lot of Javascript projects. The fashion in Javascript is to use build tools like Gulp or Webpack that are written and configured in Javascript. I want to talk about the merits of Make.
Rust 2018 is here, but what is it?
Starting today, the Rust 2018 edition is in its first release. With this edition, we’ve focused on making Rust developers as productive as they can be. Most of the language ...
Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps
At Repl.it we come to work every day to explore a single idea—what if programming just worked? What if instead of fiddling around with packages, configurations, and mismatching versions, you just open your IDE and start coding. What if developers can go from an idea to coding and shipping software with no time in…
JVM Internals (2013)
Explains the internal architecture of the Java Virtual Machine (JVM) in simple terms using showing key components and how memory is updated during execution.
WebAssembly’s post-MVP future
People have a misconception—they think that the WebAssembly that landed in browsers back in 2017—is the final version. In fact, we still have many use cases to unlock, from heavy-weight ...
The insane amount of backward compatibility in Google Maps
I still keep a couple of my favorite old smartphones. Sometimes I use one of them as my primary device for fun. Phones are among the fastest evolving markets, even a year makes a whole lot of differences. One of the biggest challenges with using old phones is the software: they don't run modern software. And old…
Why SQLite Does Not Use Git
SQLite does not use the Git version control system. SQLite uses Fossil instead, which is a version control system that was specifically designed and written to support SQLite.