Send me an email!
PGP
Home
Essays
It's just you, me, and this nice bottle of cognac.
Computer Science
Wherein I implement a DSL for interacting with the Twitter API and use that to gently introduce the reader to monad transformers, knowing full well that nothing will ever bring back Harambe and that the little bit of light left on this Earth will only follow his lead soon enough.
Wherein I motivate and implement a streaming PID controller in Haskell using arrows and my bespoke tubes library, ignorant of my own impending decay and the infinite shrieking silence that awaits us all.
Wherein I complete my symphony of tedium started in the previous article and implement the heart of operational transformation, in between eternities of crippling silence from what I used to believe was a loving God in response to my cries for help.
Wherein I construct a language and interpreter for document edits in preparation for an operational transform algorithm and finally emotionally process the idea that forgiveness is fundamentally a choice.
Wherein I construct a list data structure based on Church encodings, implement list transformation functions in terms of list destruction, and invent list comprehensions from scratch in less than 20 lines of JavaScript all the while finally digging that glass out of my foot from middle school.
Wherein I define numbers, arithmetic, and basic data structures in JavaScript using the lambda calculus and proceed to BLOW YOUR MIND
Wherein I use comonadic fixpoints to go back to the future to retrieve the results of interdependent, spreadsheet-like computations and cool my heels for a bit to get away from my bookie.
Wherein I use Löb's theorem to compute inverted fixpoints and end up recreating a lame version of Excel, accepting my mortality in a healthy way.
Wherein I define recursion from the λ calculus without using explicit names and somehow ended up writing Finnegan's Wake.
Wherein I motivate, define, and implement monads in Typed Racket to demonstrate that they aren't scary, while I simultaneously polish off a bottle of pinot grigio with my roommate's cat.
Wherein I define functors using only algebraic data types - not type classes - and proceed to derive free monads from them.
Wherein I offer my unsolicited, probably incorrect explanation of what a monad is.
Wherein I show how to use the Free monad to bring type-safe, correct imperative programming to pure functional languages.
Wherein I demonstrate how to create your own Boolean data types and if-statement syntax in Racket.
Wherein I build a billing system for myself in Haskell using Stripe and Heroku
Other
I am old