It is the day after again, the day after the official end of a frazzled week of suffering to think in the European heat. Much of the work I snuck in during it was on a new project related to the blog post I wrote two weeks ago regarding my beads/jj/agent setup. One part of this that I am willing to share at this stage is the coding-agent extension set soroban, which I released on Thursday last week. Soroban operationalizes the workflow I outlined in the blog post through a set of agent skills, or a real extension if you use pi. Due to token constraints, I am still mostly using soroban from inside Claude Code via the skill interface, which works just fine.
Besides releasing soroban, this week I rethought the broader frame of my dissertation (Dissertation), did more course development (Course development), and hacked through a full stack application deployment on Digital Ocean (Digital Theory Lab). In extra-academic and likely more exciting news, we bike-packed some of the way to Switzerland to catch the opening weekend of the Locarno Film Festival (et alia).
Up until this point, my dissertation has been conceived as a theoretical undertaking which will result in a monograph, as is the fashion in the North American humanities. 1 This may yet be the case; but I have decided that I would be remiss not to incorporate the software work and maintenance that is increasingly a core aspect of my labour and headspace. Thus I did some work remapping the structure of my dissertation this week. The first three chapters will still proffer a conceptual and critical history of the relation between computer science and capital, the topic on which I settled several years ago. I now intend to also add three more chapters to the dissertation as a whole which frame and reflect on three software systems I have built throughout my PhD.
These three projects will likely be: Rheo, Karaji, and the new project that I refer to in the intro above. Each of these systems will be something that I intend to use daily, as I currently use Rheo for all my writing, website maintenance, and slide decks. Each of these systems will also, I hope, be a serious open source software used by a non-trivial number of people, although maximizing the raw headcount of users is not their driving force. What I hope these systems will collectively demonstrate is a style of software that tugs against capital’s capricious nature, and therefore materializes in a different way the thrust of the theoretical argument I will make against a culture of computing that does not attend to how the value it produces in the world is disfigured by capital’s unconsciously installed drives, desires, and motive forces.
I both continued development on an advanced agentic studio and also started thinking about resuscitating a course that has unfortunately fallen off Brown CS’s regular roster, CS3.
When I was an undergrad at Princeton, Brian Kernighan taught a roughly analogous course called Computers in our World. Because computer science departments are the academic authority on how computers work and what it means to code, there are a lot of students searching for a general introduction to computing. The problem is that CS largely conceives of itself as an engineering discipline and therefore (often) places a premium on rigour. ‘Introduction to computer science’ courses are sometimes styled as grueling undertakings for new students, implicitly or explicitly becoming a forcing function to winnow down from the mass of potential CS majors to a select few.
At least, this was the case at Princeton, and seems also to be the case at Brown. The ‘real’ introduction to computer science course is difficult by design, making it inhospitable for students who just want to get a feel for understanding computers and code rather than majoring in CS. I’m actually not against this philosophy of difficult introductions per se. There is some truth to the idea that CS in practice largely consists of reading the tea leaves of arcane error messages to parlay with intransigent machines. I also have some sympathy for the very real logistical difficulties when too many students want to major in the same subject, even if it seems absurd to complain about from the point of view of humanities departments that are increasingly marginalized in the academic edifice.
But it does raise an important question. How can we best offer introductions to computing for all students, not just those who are committed to majoring in CS, and therefore are willing to commit the time and hard work that a rigorous introduction sequence requires?
One aspect of this is a change in what is sometimes referred to as the ‘culture’ of CS departments. The propensity for rigour can give misogyny an easy footing, as the systematic exclusion of certain kinds of people can be written off as an unfortunate but necessary outcome of technical meritocracy, when it is really the consequence of a contingent and therefore changeable cultural atmosphere that makes many feel very unwelcome. Brian Kernighan’s Computers in our World course was colloquially known amongst undergrads as “Emails for Females”, presumably in contrast to the implicitly masculine COS 126, the ‘real’ introductory course for CS majors. Though there have been many initiatives around women in STEM and CS in these spaces in the past decade, most CS departments are still in my view accurately described as having programmed inequality. It is impossible to redress the trenchant misogyny in CS without seriously tracing how it stitches together the couture of technical rigour in the discipline as a whole.
But this thought needs proper fleshing out elsewhere. My hope in reviving CS3 is that it can function as an alternative introduction to computing and computer science at Brown for students who want to understand how computers are a part of the fabric of our everyday world, but who don’t necessarily plan to be able to do advanced algorithmic theory in the immediate future. More particularly, I am renovating the syllabus with LLMs and agential harnesses in the rearview mirror, as these dramatically change the scope of what it’s plausible to do with computers with little or no programming knowledge.
Last but not least, we went to Locarno last Friday to catch some of the film festival (and to approximately celebrate our wedding anniversary). The festival was, in characteristic Swiss fashion, immaculately organized. (We learned while there that the non-profit which organizes the festival has an 18mil CHF annual budget and more than 30 full-time employees.)
We were only there Friday evening and Saturday, and the midnight screenings were too much for us, needing to travel 1.5hr back to our accommodation. We thus saw three feature-length films: Ich ist ein Anderer, Violence du corps l’autre, and The Invite, in response to which I thought (respectively): you’d have a better time reading the wikipedia page than watching it; it was an auteur’s masterpiece; and it was at last a rom-com worth watching.
We cycled 60km or so up Lago Maggiore from Verbania to Bellinzona on the way in, and over a beautiful mountain pass another 60km or so from Bellinzona to Chiasso on the way out. I recommend the bike-packing: I’m not sure that we’ll be going back to the film festival on a regular basis, as although the lakeside setting is gorgeous, I can’t quite diff the prices with the food quality in Switzerland when comparing with Italy.