Well I've finished my diesel ORM implementation and naturally it took longer than expected. I'll highlight the challenges and some of the changes I made to the database, and some changes I'd like to make, within this post.
It's been almost a year since I started on my Helical rewrite in Rust (with a sizable dose of help and motivation from John!). I wrote the prototype in Python and while Gwen has been a good sport about alerting me to usability issues, the truth is that updating the core code is getting unruly. I've also been re-doing some of the program analysis stuff so that it's cleaner, less ad hoc, and generally more amenable to an interesting paper about the program semantics. However, I've let myself get distracted over the past year on other things, so I'm going to try to be more disciplined about getting the Rust rewrite done. In services of that I've decide to blog my way through the process, since like a lot of people I haaaaaaaate context switching and having to pick up where I left off.
ExPL, the experiment specification language of Helical, relies on user-provided annotations to infer an implicit post-interventional causal structure and query set. Annotations are attached to ExPL expressions and provide a link to the program variables in HyPL. Because ExPL encodes stateful executions, we need to be able to reason about the scope over which stateful operations apply. In this two-part blog post we'll talk about some challenges associated with using these annotations.
One of the broader goals of the Helical project is to make writing, maintaining, and debugging experiments easier and safer for the end-user through a novel domain-specific language. However, learning a new formal language can itself contribute to the difficulty of encoding an experiment. Therefore, we are intersted in mitigating the effects of language learning/novelty. To this end, a Northeastern coop student (Kevin G. Yang) investigated the suitability of using Jupyter notebooks as an execution environment for experiments last year.
I want to extend a belated welcome to Zixuan (Jason) Yu, a Northeastern University undergraduate student who is working with me on a research coop through December 2025. Jason's project focuses on identifying elements of the Mastodon code base where we might either want to intervene (in order to answer a research question) or where there might be associated privacy considerations.