Best Projects

Austral

Austral is a systems programming language with linear types and capability-based security.

cmacro

A macro system for C.

crane

An ORM for Common Lisp.

hashcards

A plain text-based spaced repetition system.

interim

Low-level Lisp with compile-time memory management.

Active Projects

Common Lisp website

I built a website to promote Common Lisp, including a gallery of Lisp success stories, a wiki, and a tutorial.

epoch

A self-hosted personal journal app.

hashcards

A plain text-based spaced repetition system.

Past Projects

airloom

A reverse literate programming tool: it takes code and documentation and weaves them together. Language-agnostic and markup-agnostic.

ansi-spec

A project to parse the TeX sources of the draft ANSI Common Lisp specification.

antimer

A wiki in Common Lisp.

appkit-without-xcode

Experiments in building macOS apps using Objective-C and AppKit, without Xcode.

arachne

A web crawling framework in Common Lisp, inspired by Scrapy.

asdf-linguist

A collection of extensions to ASDF, the de-facto build system for Common Lisp.

astro-eog581

Astronomical calculations for The Epiphany of Gliese 581.

Austral

Austral is a systems programming language with linear types and capability-based security.

avatar-api

Retrieve avatar metadata from social media services.

cartesian

A personal exocortex.

ceramic

Electron for Common Lisp.

cl-base58

An implementation of Bitcoin’s base58 encoding and decoding.

cl-libyaml

Low-level libyaml bindings for Common Lisp.

cl-pass

Password hashing and verification with reasonable, secure defaults.

cl-virtualbox

A tiny library to control VirtualBox via the vboxmanage command.

cl-yaml

Common Lisp yaml parser built on top of cl-libyaml.

clack-errors

A clone of better_errors for Clack.

claude-plays-anchorhead

An experiment in letting an LLM play an interactive fiction game.

clos-fixtures

Test fixtures for CLOS classes.

cmacro

A macro system for C.

codex

A documentation system for Common Lisp built on top of CommonDoc.

common-doc

A framework for representing and manipulating documents.

common-doc-plump

Translates a Plump DOM into a CommonDoc document and back

common-html

An HTML target for CommonDoc.

concordia

A document preparation system built in Standard ML.

corona

A DSL for defining virtual machines in Common Lisp. Essentially a lightweight clone of Vagrant.

crane

An ORM for Common Lisp.

docparser

Library to extract documentation from Common Lisp systems by injecting into the macroexpansion process.

eco

A fast and designer-friendly template engine, inspired by the syntax of eRuby.

electron-tools

A Common Lisp library for working with Electron.

find-port

A Common Lisp library to programmatically find open ports.

fsrs

An implementation of the FSRS algorithm in 100 lines of Rust.

git-file-history

Library to retrieve a file’s commit history in Git.

hermetic

An authentication library for Clack web applications.

interim

Low-level Lisp with compile-time memory management.

koboexport

A tiny Rust app to export clippings from the Kobo’s SQLite database.

l0

Lisp with linear types.

lass-flexbox

Flexbox macros for Lass.

lcm

System configuration management in Common Lisp.

liblmdb

Low-level bindings for LMDB.

lime

High-level client for SLIME’s swank protocol.

lmdb

High-levels LMDB bindings for Common Lisp.

lucerne

Common Lisp web framework built on top of Clack.

magma

Extensions to the C programming language built with cmacro.

markedit

A Markdown editor built with Ceramic.

mkinvoice

A small CLI app to generate beautiful PDF invoices from TOML data.

mlunit

Unit testing framework for Standard ML.

MNT

Simple molecular devices built with NanoEngineer.

NeuriteTracer

An old experiment in computer vision: using OpenCV to trace the contours of neurites in electron micrographs of human brain tissue.

pandocl

A document converter built on CommonDoc, similar to Pandoc.

parenml

An S-expression markup language for CommonDoc.

parse-front-matter

Jekyll-style front matter parser for Common Lisp.

parsimony

Parser combinators for Standard ML.

path-parse

Parser of the PATH environment variable.

postmaster

High-level library for sending and retrieving emails in Common Lisp.

postmaster-mock

Test classes for Postmaster.

remote-dom

A library to remotely-control the browser DOM from Common Lisp.

remote-js

Run JavaScript in the browser from Common Lisp.

rock

An asset bundler for Common Lisp.

scriba

A markup language with Scribe syntax for CommonDoc.

sm2

An implementation of the SM-2 algorithm from SuperMemo. For my own elucidation.

sml-sqlite3

SQLite bindings for MLton.

swank-protocol

Low-level client for the SLIME wire protocol.

swiftui-without-xcode

Experiments in building macOS apps using Swift and SwiftUI, without Xcode.

terminal-keypress

Library to read terminal keypress events.

terminal-size

Library to query the size of a terminal window.

texgen

Common Lisp DSL for generating TeX.

tfc

A tiny compiler for a monomorphic typed Forth.

thorn

CommonDoc extension for inserting special characters.

trello-json

Common Lisp parser and simplifier for Trello JSON exports.

trivial-build

A tiny library to compile a Common Lisp system into an executable.

trivial-compress

Utility library to compress a directory.

trivial-download

A tiny library to simplify downloading files over HTTP.

trivial-exe

A Common Lisp library for working with executables.

trivial-extract

Utility for extracting .tar, .tar.gz and .zip files.

trivial-open-browser

Portable library to open the system’s web browser to a URL.

trivial-ssh

A wrapper around cl-libssh2, which itself is a binding to the libssh2 library.

trivial-ws

Simple WebSockets for Common Lisp.

vertex

A markup language with TeX syntax for CommonDoc.

wax

TeX-like markup language experiment.

wax

An experiment in building a TeX-like markup language.

which

The which command in Common Lisp.

zetanom

A small, self-hosted diet-tracking app.