I’m excited to announce the release of Alda 2.0.0! This new version of
Alda is a from-the-ground-up rewrite that I’ve been working on since
late 2018, and I couldn’t be happier to finally share it with the world.
Despite the shiny new version number, at a language level, Alda 2 is almost
Over the last 2 years or so, I’ve been working on a ground-up rewrite of
Alda, the music composition programming language that has been my
passion project since 2012. Now that I’m finally almost done(!) with the rewrite
and just about ready to release Alda 2 to the world, I figured I should expl...
Just for fun, here is a quick run-down of how I deploy my personal projects. If
you’re reading this and you have projects of your own that you might like to
deploy, then hopefully some part of this will be helpful to you.
Domains and DNS
Whenever I register a domain, I use Namecheap, not neces...
5 years ago, I was doing some reminiscing about what my life had been like 5
years prior to that (in 2010), and I had a lot of fun sharing those
It’s been a long time since I posted those memories from 2010, but I’ve been
thinking about it recently and now I’d like to continue the tim...
As you may have heard, I have been busy, working on Alda 2, a ground-up rewrite
of Alda using Go and Kotlin. As part of this project, I have
re-thought the Alda REPL experience to make it closer in spirit to the
nREPL experience that I’ve been enjoying as a Clojure programmer.
The big idea abou...
Up until recently, the official Alda website looked like this:
I cobbled together that logo and color scheme sometime in 2017, and I was never
particularly excited about it. I kept telling myself that I would come back
someday and give the logo and the website a good redesign.
Among the th...
Clojure tooling for Vim has been getting more and more interesting over the last
When I first came to Clojure, Fireplace was the standard Vim plugin
for Clojure development, providing Clojure developers with a great in-editor
REPL experience. I think it’s still the case that the ...
Write, compile, run, observe
When you’re writing a program in a compiled language, you might find yourself
repeating this cycle:
(Lather, rinse, repeat.)
I don’t know about you, but when I’m repeating this cycle over and ...
An important design goal of Alda is that the language should not be a
Turing-complete programming environment. This keeps Alda simple and focused on
doing what it does best: being an easy-to-learn, markup-like text language for
At the same time, I really enjoy being able to c...
Let’s say you need to write some tests about the behavior of something
asynchronous. Imagine that you have a worker process that consumes messages from
a queue and uses them to update some state, and you want to test that when you
put a message on the queue, the worker ends up recei...