Piping data to Emacs

About once per month I find myself wanting to pipe some data into Emacs and being annoyed that I can't. I built Pipemacs to let me do it. Somewhat su…

Parser combinators in Rust

I have been working on a side project in Rust recently and thought I would write up some of the interesting things I've encountered while building som…

Releasing haggle-0.2

I just pushed a new release of haggle to Hackage today. The haggle library implements a number of different representations of graph data structures w…

Introducing build-bom

TL;DR The build-bom tool makes it easy to obtain LLVM IR for C/C++ programs without requiring any modifications to build systems by using the low-leve…

Avy Interactive

The excellent avy package for emacs provides an efficient mechanism for positioning the cursor in the current window. The avy workflow is: Active av…

Funny Type Errors Issue 1

I find that I run into a large number of what I would consider Funny Type Errors while using GHC. This is the first post in what will presumably be a…

Metablog 2019

Instead of writing about something productive, I am going to again write about writing. Or at least the infrastructure for writing. First, I decided…

Emacs Startup Optimization

Recently, I had the urge to optimize the startup time of my emacs configuration. I managed to reduce my startup time from three seconds to under half…

Emacs and Terminal Pasting

Over the last few weeks, I've found myself having to copy and paste large chunks of text into emacs running in a terminal. This leads to some annoyan…