Not knowing...Pratt parsers

This summer I’ve been learning a bit about programming language design. In the past, I’ve thrown together a few little programs use regular expressions to parse some simple language according to a simple context free grammars. Like any other programming newbie, I’ve also built the ubiquitous calculator or two. Back in 2017 I resolved to teach myself something about computer science. I surveyed a few computer science undergraduate programs and decided to patch together my own from online courses, docs, tutorials and textbooks. [Read More]

Not knowing...functional programming

There is a funny story from the composer Morton Feldman. The full story can be found somewhere in the book Give My Regards to Eighth Street, and I’ll relay the gist of what he was trying to say here. At some point a young man was taking lessons with the composers and trying to write some “modern” piano music. The first week, the student came by and had a piano piece with lots of notes in the middle register. [Read More]

Not knowing...python code optimization

So I had a brainwave the other day while out running. There is a particular type of application for generative music that I want to implement that involves leveraging a LAMP style stack in order to serve up a daily dose of music to the url I’ve got a bit of time on my hands at the moment, so I figure that I can structure a project and learn a bunch about some new technologies that I’ve been wanting to check out. [Read More]


A simple grammar for music notation A few years ago, I became interested in the prospect of using GNU Lilypond as a way to typeset musical scores. I knew about Lilypond and its Python API abjad through a fairly nifty hacker called Piaras Hoban, who was doing a doctorate at UCC at the same time I was skulking about as an undergraduate. This was back in 2008⁄2009. Actually, looking back on it, the environment in Cork was really conducive to cooperation between students and there was very little emphasis on making any really painful distinctions between grad and undergrad students. [Read More]