This isn't my home page. Instead please see my work page and my personal page.
Anonymous recursive functions, because there are never enough ways to recur
lambda-n, because who needs named parameters, anyway?
Embedding images as text inside Racket
Roman numerals, for Racket programmers who want the best of both worlds: elegant capital whole numbers, and division
Write successors to arbitrary depth in Racket
cas-cad-e, to write cascading case expressions in Racket
P4P, an alternate syntax for Racket, buit entirely using Racket macros, with one cool hack…
Most of these were created for private use and are thus not particularly documented, but if you find them useful, let me know and I can probably improve/generalize/document them!
SMoL, the Standard Model of Languages
Mystery languages, for learning about programming language variation
B2T2, the Brown Benchmark for Tabular Types
Gradescope autograder for Racket
Philbin, using LLMs to generate regular expressions from data selections
Porpoise, a tool that uses LLMs to evaluate purpose statements
Scribble embedding, libraries to embed third-party tools inside Scribble documents
Photo organizer, a simple way to cluster photo files by date
Windows task monitor, from 2010, almost certainly of no use any longer
instaBRIC, for those who want to become international affairs pundits but need help finding country-initial combos that spell words
Reproducibility in CS, a large crowd-sourced project to check claims about (ir)reproducibility
ECOOP Calls for Papers, tracing how CfPs evolved over the years, and how people just can't help tweaking them





