Blog
Most things I'm comfortable with strangers knowing about me is in the about page. The different projects that I manage or contribute to are on the projects page.
I also write about programming. My interests include programming languages, functional programming, and systems development.
-
Loop once... (f)or else! (Or, Python pro-tip number 2)
March 25, 2023 -
Functional programmers hate this one trick
February 12, 2023 -
Refactoring Asynchronous Recursion with Continuation-Passing Style
January 22, 2023 -
Implementing environment-based evaluation of recursive functions in OCaml
January 20, 2023 -
SAT solving with higher-order continuations
October 22, 2022 -
It's my first time uwu
August 12, 2021 -
Await before returning!
July 23, 2021 -
A little extra safety with RankNTypes
January 1, 2021 -
Dynamic Programming in Haskell
September 12, 2020 -
Roll your own reminders with dunst
May 22, 2020 -
Programming in Lojban
December 12, 2019 -
Roll your own Ngrok with Nginx, Letsencrypt, and SSH reverse tunnelling
January 29, 2019 -
systemd-nspawn: disabling link-local addressing
August 6, 2017 -
Haskell and Pushbullet - a tale of SMS on the command line
February 20, 2017 -
Prakash puzzles: a hundred prisoners and a lightbulb
February 10, 2017 -
Decidable orderings in Idris
November 11, 2016 -
Token authentication with Servant
June 18, 2016 -
Redirecting file descriptors to more than one file in bash
June 13, 2016 -
Quick navigation with Neovim terminals
May 2, 2016 -
The case against Python
April 19, 2016 -
Python pro-tip number 1
April 1, 2016 -
Managing downloads from the command line
March 17, 2016 -
Gotos in Python
March 6, 2016 -
Windows debugging for fun and profit
December 31, 2015 -
Date night with OverloadedStrings
December 23, 2015