Exploring Ruby with clangd

Linkers & Ruby C Extensions

Search Down the Stack

Sorbet Does Not Have FixMe Comments

Intersection Types in Sorbet are Surprisingly Common


What makes type checking Ruby hard?

Surgery on Code from the Command Line

On Programming Language Choice

Notes on Continuations

A Debugger for Bash in Six Lines of Bash

Improving CLIs with isatty

Standard ML in Travis CI

Profiling in Haskell for a 10x Speedup


Concurrent Programming in ML: A Race

Prefer .then() over .catch()

Union Types in Flow & Reason

Case Exhaustiveness in Flow

Lenses & Composition

Some Intuition on Lenses

Code Review from the Command Line


Presenting Data & Information: Notes

ABTs in Haskell

Variables and Binding

System Fω and Parameterization

Variables in Types

Recitation Notes

Tests, Types, & Correctness

If, Else, & Purity

Haskell Development with Neovim

Reach for Markdown, not LaTeX


Troubleshooting Haskell Stack Setup on OS X

Let’s Have a Chat about Encryption

SML Dev Setup

Starter Zsh Setup


Leaking Free Disk Space

Docker Tips and Cheatsheet

Show where a Python package is used

Why zsh?

Noteworthy Dotfile Hacks

Getting Started with RCM

Vim as an IDE

New GitHub Username

Mastering git log for Collaboration

The LaTeX homework Document Class

Offline LaTeX Development - Part 2


Google Chrome: A Memory Hog

Ruby Virtualenvs

Vim as a Man Page Viewer

The Joys of the Craft

Using Multiple Git Remotes

Using Google OAuth2 for CMU Authentication

Offline LaTeX Development

Solarized LaTeX Listings

A LaTeX Homework Template

Setting up MobaXterm for SSH on Windows

Molokai: An iTerm2 Color Scheme

HPSTR: An Octopress Theme

Adding a Network Printer to a Linux Server

Shiny New Octopress Blog