Joseph Morag

Micro C, Part 0: Introduction 2020-04-08
In this series, we will explore how to write a compiler for a small subset of C to LLVM in Haskell. Our language, Micro C, is basically a small subset of real C. We'll have basic numeric types, a real bool type, pointers, and structs. At the end of the series, we'll have a beautiful executable, mcc (Micro C Compiler), that takes one .

HJKL and Colemak 2020-03-27
I am a proud owner of both the Atreus and Keyboardio Model01 keyboards. They are both excellent pieces of hardware - wooden enclosures, mechanical switches, the works. With QMK, they are infinitely configurable. The creators are also very responsive. In the course of replacing the Matias Quiet Click switches with linear ones on my Atreus, I broke a couple keycaps and shorted part of the PCB.

Zipping Trees, Part 2 2020-03-23

In part 1 of our tree zipping series, we identified three "problems" with our solution:

Zipping Trees, Part 1 2020-03-20

While trawling hackerrank in order to procrastinate doing "real" work, I came across this problem in the Functional Programming section. It has you perform various incremental operations on a rose tree, such as inserting and deleting nodes and visiting adjacent nodes in the tree. In the spirit of sticking with Simple Haskell, our first attempt at the problem will use only one benign language extension and two imports.

Combating the Corona slump 2020-03-15
The world is in shambles, with Italy on total lockdown and New York City surely to follow suit in the next few days. With the prospect of working from home for the foreseeable future on the horizon, what better time to hunker down and finally start that blog that I’ve been putting off writing for forever!

About 2020-03-14
I’m a Haskell and Emacs enthusiast with a very small mechanical keyboard hobby. Once upon a time, I studied physics at Columbia. I’ve just finished a degree in Music Technology at NYU with Brian McFee and currently work at Lantern. In my other life, I’m a violinist and conductor, but you can find out all about that on my other website or my youtube channel.