1 Integrating AI 'screen time' and tracking into my life

I'm arguing that the way we use them matters more than whether we use them, and that the distinction between tool use and cognitive outsourcing is the single most important line in this entire conversation, and that almost nobody is drawing it clearly.
Schwartz can use Claude to write a paper because Schwartz already knows the physics. His decades of experience are the immune system that catches Claude's hallucinations. A first-year student using the same tool, on the same problem, with the same supervisor giving the same feedback, produces the same output with none of the understanding. The paper looks identical. The scientist doesn't.
-- The machines are fine. I'm worried about us, Minas Karamanis, 2026
I have been feeling the effects of nonstop agentic coding in December myself! The stuff I waved through a Claude session does have some utility, but I fear the second-order effects of using it on my own cognition are far more sinister and damaging. Marvin Hagemeister called this DDoSing the human brain as (human) thinking context is spent just trying to figure out and steer the flood of generated code rather than building steady understanding. However, it doesn't make sense to wish coding agents away; instead I want to figure out how to firewall its use and adapt teaching techniques as quickly as possible to the new normal.
The first step is simply to track my usage, so so I put together a proposal for AI provenance disclosure for OCaml code. This is a voluntary, low-level mechanism that I think is an important discipline to adopt to give us the equivalent of "screen time" for our coding cognition. Early feedback on the proposal and the OCaml Discuss thread has largely been around why I don't do something bigger (for all languages), but I'm very deliberately keeping it focused on the main tools I use and not broadening it so the point of being uselessly general. I'll round up the feedback later this week as more comes in after the Easter break.
1.1 Desktop environments need to support flow states, not destroy it

For example, if I'm doing paper reviews for a conference then I want browser tabs around my HotCRP, a terminal to take notes in my vim, and an email client with searches setup around that conference so I can find instructions from the chairs or other matters. But right now every single application seems to become general enough to the point where it's impossible to avoid a reminders app telling me about weekly shopping or some pointless university admin.

It's not all doom and gloom though, as Adrian Sampson built Analog Library as a distraction-free way of reading papers without the AI gunk that pervades the ACM nowadays. Kagi is a search engine I pay for, and it supports a good degree of personalisation and filtering. For example I now use this tip from Adrian for all searches to the ACM DL to redirect to his site in the search results in instead:
If you use Kagi as your search engine, add this rule to your redirects to rewrite result URLs to point to Analog Library:
^https://dl.acm.org/doi/(abs/)?(.*)|https://al.radbox.org/doi/$2
1.2 iOS and how terrible it is for elderly relatives
While I'm ranting about desktop interfaces that fight you, I've also been struggling with the terrible iOS interface while helping my elderly parents recently. There are lots of issues around font sizing (try increasing the default and see how badly the UI works on an iPhone).
But one iOS-ism in particular took the mickey this week. In the latest iOS 26.4 the autocorrect dictionary is allegedly improved, and my parents really need this as they often text in different languages and are getting increasingly confused by the poor old autocorrect. To take advantage of the new improvements, you need manually reset the existing dictionaries first. How hard could this be, right? In order to do this, you need to terrifyingly navigate into:
- Settings (Q: what are we setting here? But ok lets go)
- General (Q: what does 'general' mean? Let's check all the more specific menus first to figure it out!)
- Transfer or Reset (Q: wait, I don't want to transfer my phone to anyone!)
- Reset (Q: oh jesus what's all this about preparing for a new iphone are we deleting all my data??)
- Reset Keyboard Dictionary (Q: yay i avoided deleting all my data but there's no feedback this dictionary thing worked at all)

While doing this reset, with a bigger font size it's almost impossible to not accidentally hit the 'reset entire iPhone and lose all your data' button instead. Thomas Leonard has been steadily building OCaml libraries for Wayland and input so I'm going to attempt a switch to a Linux desktop (again) as a good excuse to use his tools! It's interesting how good a Linux desktop is at font sizing in comparison to Apple these days as well. There are many, many weird things about 2026 so far, but I never expected it to be the year of 'Linux on the desktop'.
2 TESSERA hacking on geotessera 0.8 and registries
I've rounded up a bunch of feedback/PRs and released GeoTessera 0.8.0, which pulls together the recent work on Zarr v3 cloud-native stores and the geo-embeddings convention. Jeff Albrecht merged my PR to geoembeddings-conventions as well, so we're now compliant with other foundation models in this space. There's also been more multiscales activity in the community around generating overview layers for the AEF mosaic Zarr store, which handles the tricky business of downsampling int8-encoded embeddings correctly.
Next week, I'm looking at spatial indexing for the TESSERA tiles since we now have multiple producers generating embeddings, and so the client library needs a shared spatial index to keep everything consistent. I'll almost certainly stick to a UTM based indexing, but I did find A5 to be quite cool as the first pentagonal equal-area indexing system for the globe that I've seen.
2.1 Ceph expansion
Mark Elvers has also expanded our local Ceph storage which was getting very squeezed indeed with all the tile generation we've been doing. We're up to around 1.4PB raw now in total across our various hosts (not all on Ceph yet), and the next step is to shift my home directories onto CephFS for networked use to see how well it works interactively. The main challenge with doing this storage migration has been making sure that we never only have one copy of some data while migrating a large filesystem, which is always nerve-wracking... but we've had no disasters yet!
2.2 Moving OCaml infra from Scaleway to Cambridge
Mark and I have also spent some time refreshing the OCaml CI pipeline and completing the migration from Scaleway to Cambridge. Our Cambridge VMs run on Xen with xapi, which feels pleasingly full-circle. Relatedly, I've also proposed dropping some intermediate OCaml versions from CI to reduce the testing matrix. This builds on the earlier conversation about deprecating OCaml 4.08 support.
3 Fun links
3.1 Recoil email self-hosting
I've been sorting out the recoil.org self-hosting stack again during the Easter break, as complaints about spam have become a family tradition to present to me during this time. I've been evaluating using the Stalwart Mail Server, as it now has Bulwark, an open-source webmail client that covers email, calendar, contacts, and also files over JMAP. There's also Plume, a Swift-native JMAP email client for macOS.
This is all making me think it's to dust off my JMAP library and migrate properly from Dovecot/Postfix. The only thing making me nervous is Stalwart's "all in one" approach to mail storage as it locks it all up into a database. I've been running Postfix with maildir for a very, very long time and I'm not excited about giving up the simplicity of flat files on disk that I can rsync...
3.2 Hardware performance counters for OxCaml
Sadiq Jaffer has been hacking on integrating hardware performance counters into OxCaml's Runtime Events (bsky). His prototype uses rdpmc on Linux which is a tiny 20-40 cycles per sample to capture perf counters at the start and end of every runtime events span. This means you can get per-GC-phase information in quite some detail and reveals fun phase information about the effectiveness of tricks like prefetching.
I'm interested in having this run on Apple Silicon too (notwithstanding my intention to switch to Linux above!). @tmcgilchrist built mperf as a perf-like CLI for macOS. It uses Apple's private kperf frameworks. With Sadiq's runtime integration into we're getting close to hardware-level profiling of OCaml programs all the time in production, rather than doing special 'benchmarking runs'.
3.3 Paper of the week
I had the pleasure of finally meeting Laure Zanna this week to co-organise something together. Her paper on "The causes of sea-level rise since 1900" is therefore my paper of the week as I learn more about weather forecasting and sea ice predictions to connect our remote sensing work to this important part of climate change and biodiversity research.
The paper tries to define a "budget" for global sea-level rise so that the sum of all contributing processes (ice-mass loss, thermal expansion, reservoir impoundment) reconcile with observational data. Ice-mass loss from glaciers has caused twice as much sea-level rise as thermal expansion since 1900. I'm very curious if this could be added to TESSERA downstream tasks as we hit almost a decade of embeddings now.
3.4 Coming up
I'm back to Cambridge next week for a few days, and then I'm off to IIT Madras to see my friend KC Sivaramakrishnan and attend the launch of the FP Launchpad. It's a cracking lineup of speakers who I am really excited about seeing after a few years, and of course do some tourism in Chennai (where I used to live in the early 90s and go to school in [PSBB](noticeable mismatch with the AOHs and range maps due to the different projections)!
