Better Code Reviews with git History Rewriting

The following post is a walkthrough on how I take a larger pull request, and break it down into well-ordered commits. At Mozilla, there is a pretty strong code review culture. Each line of code added to a project gets reviewed by a peer before it is merged in. There can be several cycles of code review where changes are requested. This happens asynchronously, as it’s a globally distributed organization. It can be tough coming…

Drawing ASCII Art to Test a Physics System

Generating my own ASCII art in programming projects is a great way to solve certain hard problems. Diagrams made from PNGs with some kind of rendered documentation is great, but it has a high barrier to entry. Plus, this kind of documentation does not live with the code, which makes it easy to miss and forget about. I have started a series of posts detailing various strategies on how I draw with ASCII. Testing a Physics…

Documenting Regex with ASCII Art

Generating my own ASCII art in programming projects is a great way to solve certain hard problems. Diagrams made from PNGs with some kind of rendered documentation is great, but it has a high barrier to entry. Plus, this kind of documentation does not live with the code, which makes it easy to miss and forget about. I am going to start a series of posts detailing various strategies on how I draw with ASCII. Regular…

WebGL Model View Projection

As part of a fellowship with MDN in 2016, I wrote content around the use of the model, view, and projection matrix for WebGL code. This article explores how to take data within a WebGL project, and project it into the proper spaces to display it on the screen. It assumes a knowledge of basic matrix math using translation, scale, and rotation matrices. It explains the three core matrices that are typically used when composing a…

Matrix Math for the Web

As part of a fellowship with MDN in 2016, I wrote content around the use of matrix math, but with a web content spin. Matrices can be used to represent transformations of objects in space, and are used for performing many key types of computation when constructing images and visualizing data on the Web. This article explores how to create matrices and how to use them with CSS transforms and the matrix3d transform type. While this article…

How to Draw Beautiful Things in the Browser

In 2014 I wrote a pretty detailed post on getting into creative coding. It featured live code examples, and I spoke briefly about some of my philosophy with approaching creativity with programming. Beautiful code is a joy to write, but it is difficult to share that joy with other programmers, not to mention with non-programmers. In my freetime between my day job and family time I’ve been playing around with the idea of a programming poem…