Red Season

The past month went by in a (quite literal) daze, and much to my disappointment I did not manage to do much reading or anything related to music other than spending some time noodling with Notion - not the note-taking app, but the music composition one, which is terrific and has a moderately decent library of orchestral sounds.

Why is this important, you ask? Well, because it supports basic articulations and expressive notation, which are an utter pain to do in conventional iOS DAWs. The audio processing could be a lot better (the built-in EQ is pretty basic and does not support AUv3 plugins, which would be a nice way to extend the app without making it even more complex), but I’m not in a hurry to make perfect things.

Nodal Pain Points

I spent a few hours over the past few weeks doing some server-side JavaScript (both raw and with the added scaffolding afforded by Node-RED, partly because I decided to build a custom node for it), which entailed updating my reference containers, messing about with express and wondering if we wouldn’t all be better off if event emitters and traditional Promises had never happened and the language had just gone straight to async/await.

The overall feeling is still the same: Every time I go out and pick up anything that is older than three months, code styles, dependencies and just about everything else have changed. npm audit, in particular, has become beyond scary.

The contrast to every other language runtime I use is still marked, and were it not for wanting to minimize build steps (and mental overhead) I would probably have done the whole thing in TypeScript. Or ClojureScript.

I really, really miss writing Clojure.

Ci/CD All The Things

I finally sat down and figured out GitHub Actions (which, as expected, are hardly different from Azure Pipelines) and added some fairly extensive (but still basic) testing to Piku, which is now tested on all versions of Python from 3.5 to 3.8 and (by building testing containers inside the pipeline) with the OS packages that ship in current Debian and Ubuntu LTS.

This was largely driven by Piku having sped up its development cycle considerably (thanks to a few new contributors) and new features and tweaks being proposed and added on a weekly basis – some of which were unwittingly breaking existing deployments.

I’m really happy with how Piku itself is evolving, but have had little time to hack on the core, although I am working on an Azure deployment script (via cloud-init, obviously) and have gotten it to deploy Node-RED in a largely sane fashion.

On the other hand, I just realised I now have working, hands-on (and fairly sophisticated) experience with pretty much every single major CI/CD setup out there: Azure Pipelines, GitHub Actions, GitLab CI, Atlassian Bamboo, Travis CI and, of course, Jenkins (which, to be quite honest, is starting to seem truly ancient and brittle).

I feel a need to get a similarly broad handle on build artifacts next (I’d like to automate Piku releases as part of the pipeline, for starters), but things are largely OK in that regard – most of what I use or deliver are containers anyway.

However, I suspect that upcoming work mayhem is going to put a clamp on that. But at least I managed to find enough time this month, if not necessarily for the best of reasons.

See Also: