[idea:26w37]weeknote2026-09-13

Week 37

    Another slightly delayed weeknote, this time partly due to a block in the release cycle of the empowering software. (I had to cut an 0.6.3 to get the appropriate features in the CI.)

    I moved to Rome this week, as I am starting a four-month fellowship at the Machine Visual Culture research group at the Bibliotheca Hertziana, Max Planck Institute for Art History. I’ve already had a bit to do with the group through Leonardo Impett, its PI, by way of networking at the Digital Theory Lab and a couple of conferences down in Rome that I’ve attended this year. I’m hoping to revive my engagement with computer vision and 3-D softwares like Blender: though these used to be workhorses and active research areas for me while I was at Forensic Architecture, they have fallen out of regular use since I started grad school in 2021. But it will also be an opportunity to socialize some of my thinking on the mathematical prehistory of computer science and source some direct feedback from other ‘digital humanists’ on softwares like Rheo and rookery. If you find yourself in Rome in the coming months, don’t hesitate to reach out!

      A lot of my work this week flows from the root workstation that I edit and have open almost constantly, a repository of notes, todos, and writing that I have recently taken to calling waterline. Waterline is my scratchpad, my note archive, my todo system, my CFP tracker, and the first port of call for any sort of durable text: in short, waterline is my intellectual junkyard. It is also my most sophisticated and active use of rookery, and therefore the driving force behind my development of new rookery packages and features. And rookery development is in turn what is currently driving new features in Rheo.

      The landing page of my waterline currently surfaces a combination of imminent and highest priority todos, like so:

      I’ve written before about how I have used Org-mode to structure my writing and thought for the past five years or so, and waterline is principally an attempt to upgrade that place where I live and think while on my computer with a rookery. Developing waterline into a replacement for Org has driven the current package-set in rookery.

        [idea:26w37-rookery]rookery

        Rookery

        Though I haven’t yet minted them as a 0.1.0, the package set for rookery is growing! Waterline currently uses all of the following packages in one way or another. The architecture of this package ecosystem is loosely inspired by Rust crates. The core idea is that every package makes sense in standalone relation to the core package, which provides the idea abstraction. Structure around kinds of ideas (such as #todo, #meeting, and #cfp) is then constructed using an idea’s tags, the metadata primitive in an idea that is intentionally very generic. Here are the packages as they stand today:

        NameDescription
        coreProvides #idea, the atomic content unit of a rookery, and #ideate, a template to implicitly chunk blocks of writing into ideas.
        searchProvides #search-modal and #filter-panel, two UX elements that make all ideas in a rookery accessible. Also provides a clause roles query language to allow tags filtering combined with full-text search.
        timelineStructures an idea with a dated lifecycle log. This is an example of how to leverage the fact that rookery’s tags are hash maps and can double as complex metadata.
        todosUsing @rookery/timeline, provides a structured form of idea called a #todo that has closed, open, and in-progress states, as well as scheduled and deadline dates. Also provides #todo-table, an enhanced form of #filter-panel that raises high priority and imminent todos to the top.
        meetingsProvides #meeting, another structured idea for meeting notes that has fields for personnel and the date on which a meeting occurred.
        cfpsProvides #cfp, a structured idea for tracking submissions to CFPs (calls for proposals) such as journal submissions, jobs, and/or conference papers.
        bibtexA package to map BibTeX entries to ideas, with the option to augment each citation with arbitrary content. I use this now both as a way to organize notes on texts, and to network texts into other ideas.
        slipshowProvides #slipshow, which produces a slipshow from an ordered set of ideas.
        pinboardProvides #pinboard, which produces a virtual canvas with windows on a set of ideas that you can drag around. I use this currently as a brainstorming method for headings in a writing piece.

        It’s beginning to feel as though this will be the package set that I provide for the 0.1.0 release, so I’m hopeful that this will soon be ready for experimentation by others.

          Waterline development has also been driving a few changes in Rheo, principally ergonomic improvements. This week, for example, I added the ability to specify a prelude file in rheo.toml which is prepended to every vertebra in the spine. In waterline’s case, this means that I can import #idea, #todo, and all the other functions from rookery such that I can start hatching ideas immediately in any new file without having to worry about imports. My waterline prelude also includes the #show rule for the site template, so that every new page has the same header and footer.

          I also sophisticated how marrow works, such that it can be included at either (or both) the front or the end of the bundle, as either a prologue or an epilogue.

          Lastly, I added an auto_index = true option to rheo.toml so that, if your Rheo project is organized via directories, Rheo can synthesize index pages that show the file tree for directories that don’t explicitly include an index. My waterline is currently organized such that when I create a new directory, all ideas that fall within it are given a tag corresponding to the directory name, as I use these directories to organize work across my different projects. Auto indexes thus give me a nice view of all the files related to a given project.

          This work hasn’t landed on main yet, as I want to review it in isolation from waterline/rookery to make sure that it is in keeping with Rheo’s philosophy and separation of concerns.

            Now that my use of rookery is beginning to stabilize, I have started working in earnest on the tool that inspired it in the first place: a local-first issue tracker for agent memory. I wrote a couple of months ago about the LLM issue-tracking workflow that I had adopted using jj and beads and then a month ago about critiquing beads’ industrial metaphorics. This week I have started dogfooding birds, my replacement for beads, and a CLI that is designed to allow context-engineering with LLMs via rookeries. I spent a number of cycles this week getting birds functional, and I’m pretty excited about it. That’s all I’ll say for now; but watch this space!

              [idea:26w37-feed-nvim]homelab

              feed.nvim

              I switched from eilmeldung to feed.nvim as my main RSS reader this week, as the former hasn’t been doing it for me. I like the customizability of Neovim plugins, and the setup I have with feed.nvim already feels a lot better, surfacing the posts I care about much more effectively.

                [idea:26w37-literate-programming]dissertation

                Literate programming

                Given all the headspace I have given recently to Rheo, rookery, and the changing nature of programming, I made the concrete decision to switch gears on my dissertation this week, and write a chapter about literate programming and how these tools make a contribution to the space before writing the one on Marx and mathematics. This decision is in part precipitated by a paper’s acceptance to the upcoming edition of HaPoC in Basel, where I’ll present the first pass of my thinking on this front. Putting the tools to work, I pinboarded the various components that I’m thinking of including in this chapter: