dave yarwood
April 2020
Fixing timing issues in tests
The premise 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... (more)


February 2020
The FIFO-controlled, text-to-speech narrator
I’m very proud to be married to the amazing modern dance choreographer and educator Renay Aumiller. From time to time, Renay and I collaborate to produce works of modern dance that are accompanied by original music. Our most recent piece, By Chance, involves feeding suggestions from the audience... (more)


January 2020
Exit Mice: Eggshells
My band, Exit Mice, released our second EP this past month. It’s called Eggshells and we’re very excited about it! You can listen to it on all the major streaming services (Spotify, iTunes, YouTube, etc.), or right here: Eggshells by Exit Mice (If you like it, please consider supporting us b... (more)


December 2019
Reorganizing my vimrc
When I first started using Vim, I used “the ultimate vimrc” as the foundation of my Vim config. I had no idea where to start configuring Vim, and this looked like a good starting point for a nice, batteries-included Vim setup. It comes with a bunch of useful plugins installed and configured out ... (more)


PlantUML turns text into diagrams
A coworker of mine introduced us to PlantUML a year or two ago and we used it to create an architecture diagram of our distributed systems. I revisited that old architecture diagram recently and I ended up making a bunch of tweaks and updates just for fun. The PlantUML language is very intuitiv... (more)


Working with OSC: UDP vs. TCP
If you’ve seen my talk at Strange Loop this year, you may have noticed, during the part where I talked about the future direction of Alda, that we’ll be using OSC to communicate between the client and the player processes. I’ve been spending a lot of my time lately implementing this, and it’s co... (more)


November 2019
Conjuring Clojure in Vim
Clojure tooling for Vim has been getting more and more interesting over the past few years, especially in the last year or so. 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 thin... (more)


Writing music with Alda #3: flats, sharps, and key signatures
This is the third installment in a series where I guide you through learning how to write music using Alda. So far, we’ve covered: #1: Setup and first notes #2: Rhythm and meter White keys and black keys So far in this series, we’ve been working with 7 notes: C D E F G A B C On a piano... (more)


October 2019
Writing music with Alda #2: rhythm and meter
This is the second installment in a series where I guide you through learning how to write music using Alda. So far, we’ve covered: #1: Setup and first notes Note lengths Now that we know how to make different notes, we can start to play around with making the notes longer or shorter. Listen... (more)


Writing music with Alda #1: your first notes
Every now and then, somebody tells me that they just installed Alda and they’re enjoying it, but that they aren’t quite sure where to start when it comes to writing a piece of music. The trouble is that Alda is significantly more useful to those of us who already have some knowledge of songwriti... (more)