Jimmy Miller

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 posts
Projects
beagle
featured

beagle

Dynamic, 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 project
beagleexamples/echo_server.bg
1use beagle.socket as socket
2
3fn main() {
4 let listener = socket/listen("0.0.0.0", 8080)
5 println("Echo server listening on port 8080")
6
7 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}
podcast

The feeling
of computing.

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.com
2024

Advent of Papers

I 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.

Papers

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.

Browse the archive

I wrote about how this archive came together.