I’m starting to blog semi-regularly, generally about tech stuff.

Wrong Map of Europe

June 11, 2024 — 10 minute read — geography

Making the State Department Travel Advisory Map Better

March 1, 2024 — 3 minute read — typescript

Solving problem 1 of Advent of Code 2023 in x86 Assembly

January 20, 2024 — 17 minute read — assembly
Reminiscing on a favorite class—A bright idea—A simple plan for a simple problem—Choosing an assembler and syntax—A tour of the program

Favorites of 2023

December 22, 2023 — 7 minute read — neovim, books, music, movies
Podcasts—Books—Movies—Music—Video Games—Technologies—Articles—Experiences

Recently I Learned: (Neo)Vim

June 3, 2023 — 6 minute read — vim, neovim
Moving a line to the top, middle, or bottom of view—A shortcut for match in s///—Replacing newlines with literal carriage returns—Quickly diffing files

For End Point: 3 useful built-in objects and functions in JavaScript

June 15, 2022 — 1 minute read — javascript
The Set object—Parsing and formatting parameters with URLSearchParams—Some of the great Array.prototype methods

RustyRender: Bresenham’s line-drawing algorithm (lesson 1)

June 12, 2022 — 14 minute read — rust, graphics
Naive line drawing attempts—Dealing with steep lines—Premature optimization—Bresenham’s algorithm with integers—Rendering a wireframe

RustyRender: a tinyrenderer implementation in Rust (lesson 0)

May 21, 2022 — 14 minute read — rust, graphics
Finding tinyrenderer—Choosing Rust—Porting the TGA library—Structs as raw bytes

For End Point: Docker and containers boot camp

May 16, 2022 — 1 minute read — docker, containers
What are containers?—Docker’s tutorial and reference documentation—Other tools

For End Point: Migrating a Node.js app database from MongoDB to PostgreSQL

February 25, 2022 — 1 minute read — javascript, postgresql, mongodb
Learning MongoDB—Problems with complex queries—Pros and cons of MongoDB and PostgreSQL—A brief overview of our chosen libraries—Migrating data and schemas