I build compilers, editors, and tools mostly to learn things. I write about programming languages, the texture of working in old codebases, and the feeling of computing.
read the postsDynamic, mostly-functional, compiles straight to machine code. (pre-alpha)
Beagle is my programming language I've been working on for a while now. It is slowly approaching a stage I'm proud of. The code snippet on the right might seem unremarkable, but those socket/read calls don't block. Concurrency in this language is fully controllable, yet there is no function coloring.
open project1use beagle.socket as socket23fn main() {4 let listener = socket/listen("0.0.0.0", 8080)5 println("Echo server listening on port 8080")67 socket/on-connection(listener, fn(conn) {8 loop {9 let data = socket/read(conn, 4096)10 if data == "" || data == null {11 socket/close(conn)12 break(null)13 } else {14 socket/write(conn, data)15 }16 }17 })18}
A podcast with an alternative take on computing. We try to explore things around the edge of computing — looking back in history and into the future of what computing has and could be.
listen at feelingof.comI did an experiment where I tried to read a paper every day of advent and write about it. Some days are more involved than others, but I had a great time doing it.
A collection of papers I've gathered over time. Many I've read but not all. Figured it was worth sharing. Plan on organizing more over time.
I wrote about how this archive came together.