Hello! It’s been a while since my last post: just over a year if you don’t count the cold brew post. A lot has changed since then and I want to give a quick update and discuss the projects and upcoming posts that I’m working on.
First, the quick update. I’m unemployed again!
Okay, perhaps that was too quick. I am unemployed again, which gives me time to focus on projects old and new, write more, and generally non-“work” things. I absolutely do not prescribe the hustle or always-be-productive mentality — my time off is sacred and I don’t care about being outwardly productive — but I do hope to be productive and make progress on many projects that have either been on the backburner or swirling around in my mind.
Let me first address the generative art project I was making devlogs about, which I still haven’t thought of a name for. After starting at Tower I really had neither the mental space nor time to focus on it, and so since that last post I basically haven’t touched it at all (the last commit into the main bookmark1 of the repository in August of 2025, and the operations/CRDT work is still in a PR). I am quite keen to pick it up, get it more fully working with p5.js 2.0 — particularly adding all the missing functions that I didn’t add, and add support for Strands, which are the p5 abstraction over shaders — and get it deployed onto my server so that it’s not just a private tool. I have some other thoughts on what I’d like to add and improve, but I’ll save those for a longer post. Stay tuned!
Beyond that, I’ve been spending a lot of time learning Gleam lately, and having a lot of fun! It’s a fairly approachable strongly typed functional language with a very minimal syntax and an active and friendly community on Discord who have helped me many times with my questions (thanks Gears, Hayleigh, Louis, and others!). If you’re looking for a new language to learn, I can highly recommend giving Gleam a try.
With Gleam, I’ve been working on a couple projects and thinking of a couple others:
qwak, a DuckDB library. An initial version is already up on Tangled2, so you can take a look already! I’m actively working on adding Quack protocol support, which will remove the need for the current iffy JSON based setup.lervi, an OpenSubsonic server. I’ve stopped using Spotify and now host my own gonic server, which runs great and with low CPU/memory utilization, but there is some functionality that I want that it doesn’t have, and I’d also like to use it as an opportunity to build a full stack Gleam program.I’m also planning to revisit stylelint_d, and get it up to speed with Stylelint version 17. I don’t use it myself anymore (although maybe I should, I write raw CSS on this blog as well as CSS or CSS modules in my other projects), but I still think about it from time to time and it seems that the Stylelint folks haven’t created similar functionality, so it’s still a useful tool to have.
On top of these projects, I have a few ideas of posts to write about:
Before I go, I want to take a moment to talk about LLMs, especially when it comes to writing, both prose and code. If you don’t know me personally and therefore don’t know my views on AI, you may have noticed that there are some em-dashes and gotten suspicious. I can promise you that those em-dashes are deterministic, as I have some code that runs in my post preprocessor, and yes, I do type out two hyphens manually:
(define/contract (really-smart-dashes str)
(-> string? string?)
(string-replace str " -- " " — " #:all? #t))I’m not going to write out all of my thoughts about LLMs, and my philosophy of not using them — my thoughts aren’t that different from a lot of bearish/anti-LLM folks, and I don’t want to add more fuel to the fire than necessary here — but I will say that I don’t use LLMs for anything that I create, never have, and don’t plan to. I’m not so absolutist to delude myself, and I won’t stick my nose up at a useful LLM generated thing about something that I am fairly unfamiliar with (for example, I’ve been using this generated gist about the Quack protocol to help me write qwak, since my DuckDB internals/C++ knowledge is really lacking), but I personally enjoy the journey of creation, and using my brain and hands to create, no matter how messy and complicated, and using LLMs for this is, to me, antithetical.
Thanks for reading! See you sooner than in one year. If you have any thoughts or ideas for me, please send me an email, or tell me in person if you know me. ◾️
1: I’ve been trying out Jujustu for the last few weeks, and the concept of branches is bookmarks. I’ll write more about this in the upcoming “setup” post.
2: I’ve moved away from using Github for the most part, splitting my code between a private Forgejo instance and Tangled for my public repos.