# .plan-26-16: Chennai, Cambridge, Belfast: a week on the wing

*2026-04-19 — note*


<figure class="image-right-float"><img src="/images/26w16-1.webp" alt="The water service at Sashwatha cafe in Chennai was striking" title="The water service at Sashwatha cafe in Chennai was striking" loading="lazy" srcset="/images/26w16-1.768.webp 768w, /images/26w16-1.640.webp 640w, /images/26w16-1.480.webp 480w, /images/26w16-1.3840.webp 3840w, /images/26w16-1.320.webp 320w, /images/26w16-1.2560.webp 2560w, /images/26w16-1.1920.webp 1920w, /images/26w16-1.1600.webp 1600w, /images/26w16-1.1440.webp 1440w, /images/26w16-1.1280.webp 1280w, /images/26w16-1.1024.webp 1024w"><figcaption>The water service at Sashwatha cafe in Chennai was striking</figcaption></figure>
I spent most of the week in the air with hops to Chennai, Cambridge and Belfast. The reason was the **[FP Launchpad 'takeoff'](https://anil.recoil.org/notes/fpl-launch) at IIT Madras** where I spent half the week, in a campus teeming with banyan trees and monkeys! I've sketched out two project ideas inspired by the visit: an [io\_uring backend for Lean](https://anil.recoil.org/ideas/lean-io-uring-backend) and an [OCaml port of sPyTial](https://anil.recoil.org/ideas/spytial-ocaml-port), with more to come this week as I catch up.

## Paper of the Year at the Cambridge Ring Hall of Fame

<figure class="image-right-float"><img src="/images/26w16-5.webp" alt="Celebrating with Dave on the Queens' bridge!" title="Celebrating with Dave on the Queens' bridge!" loading="lazy" srcset="/images/26w16-5.768.webp 768w, /images/26w16-5.640.webp 640w, /images/26w16-5.480.webp 480w, /images/26w16-5.3840.webp 3840w, /images/26w16-5.320.webp 320w, /images/26w16-5.2560.webp 2560w, /images/26w16-5.1920.webp 1920w, /images/26w16-5.1600.webp 1600w, /images/26w16-5.1440.webp 1440w, /images/26w16-5.1280.webp 1280w, /images/26w16-5.1024.webp 1024w"><figcaption>Celebrating with Dave on the Queens' bridge!</figcaption></figure>
Back on home turf in Cambridge, the [Cambridge Ring](https://www.cambridgering.org.uk/) held its annual [Hall of Fame Awards](https://www.cst.cam.ac.uk/news/celebrating-culture-innovation-our-hall-fame-awards) at Queens' College. In previous years they tell you if you've won, but this year it switched to an "Oscar style" nomination mechanism. After a tense set of announcements of the runners up (well, cheering on [Jon Sterling](https://jonmsterling.com) actually!) I was delighted that our ICFP 2025 paper *["Functional Networking for Millions of Docker Desktops"](https://anil.recoil.org/papers/2025-docker-icfp)* won Publication of the Year! (see [LI](https://www.linkedin.com/feed/update/urn:li:activity:7450463144923058177/) or [Bluesky](https://bsky.app/profile/anil.recoil.org/post/3mjlzvcn7yk2w))

My huge thanks to my coauthors [Dave Scott](https://dave.recoil.org), [Patrick Ferris](https://patrick.sirref.org), [Ryan Gibb](https://ryan.freumh.org) and [Thomas Gazagnaire](https://github.com/samoht), and to the cast of hundreds at Docker, Cambridge, California and beyond who made the decade of work behind it possible. There's a companion [CACM piece](https://anil.recoil.org/papers/2026-decade-docker) with [Dave Scott](https://dave.recoil.org) and [Justin Cormack](https://github.com/justincormack) that covers the broader arc, but it's the ICFP experience report that has the OCaml networking nitty gritty details that I sunk a lot of time into over the years.

## Visiting the Old Combination Room

<figure class="image-right-float"><img src="/images/26w16-3.webp" alt="The VC addressing the Cambridge academics and staff in the OCR" title="The VC addressing the Cambridge academics and staff in the OCR" loading="lazy" srcset="/images/26w16-3.768.webp 768w, /images/26w16-3.640.webp 640w, /images/26w16-3.480.webp 480w, /images/26w16-3.3840.webp 3840w, /images/26w16-3.320.webp 320w, /images/26w16-3.2560.webp 2560w, /images/26w16-3.1920.webp 1920w, /images/26w16-3.1600.webp 1600w, /images/26w16-3.1440.webp 1440w, /images/26w16-3.1280.webp 1280w, /images/26w16-3.1024.webp 1024w"><figcaption>The VC addressing the Cambridge academics and staff in the OCR</figcaption></figure>
On getting back to Cambridge on a redeye flight, I got invited to the [Old Schools Combination Room](https://www.admin.cam.ac.uk/offices/em/old-schools/) with the Vice-Chancellor [Deborah Prentice](https://en.wikipedia.org/wiki/Deborah_Prentice) to celebrate and to discuss the upcoming [Rokos School of Governance](https://www.cam.ac.uk/stories/rokos-school-of-government). It was lovely to catch up with [Marla Fuchs](https://www.cfse.cam.ac.uk/directory/marla_fuchs), who has done an enormous amount of work behind the scenes to make all of this happen, and also to hear her toil get properly acknowledged in the room full of very senior people\!

<figure class="image-right-float"><img src="/images/26w16-4.webp" alt="The assembled Cambridge staff and academics" title="The assembled Cambridge staff and academics" loading="lazy" srcset="/images/26w16-4.768.webp 768w, /images/26w16-4.640.webp 640w, /images/26w16-4.480.webp 480w, /images/26w16-4.3840.webp 3840w, /images/26w16-4.320.webp 320w, /images/26w16-4.2560.webp 2560w, /images/26w16-4.1920.webp 1920w, /images/26w16-4.1600.webp 1600w, /images/26w16-4.1440.webp 1440w, /images/26w16-4.1280.webp 1280w, /images/26w16-4.1024.webp 1024w"><figcaption>The assembled Cambridge staff and academics</figcaption></figure>
The conversations about what a 21st-century governance school should look like were
very animated. More on my thoughts as they form in the coming months, but this
feels like a real opportunity in Cambridge.

## TESSERA: tiles on AWS and a multi-registry client

<figure class="image-right-float"><img src="/images/26w16-2.webp" alt="Marla and me kick back in the Old Combination Room!" title="Marla and me kick back in the Old Combination Room!" loading="lazy" srcset="/images/26w16-2.768.webp 768w, /images/26w16-2.640.webp 640w, /images/26w16-2.480.webp 480w, /images/26w16-2.320.webp 320w, /images/26w16-2.1920.webp 1920w, /images/26w16-2.1600.webp 1600w, /images/26w16-2.1440.webp 1440w, /images/26w16-2.1280.webp 1280w, /images/26w16-2.1024.webp 1024w"><figcaption>Marla and me kick back in the Old Combination Room!</figcaption></figure>
[Mark Elvers](https://www.tunbury.org/) and I have been grinding through the migration of [TESSERA](https://anil.recoil.org/projects/tessera) tiles to AWS Open Data. Mark has written up the nuts and bolts in two posts:

- [GeoTessera STAC](https://www.tunbury.org/2026/04/17/geotessera-stac/) on exposing the embeddings via a [STAC](https://stacspec.org/) catalogue so clients can discover tiles using standard spatiotemporal queries. Zarr v3 doesn't have an indexing mechanism that's standard, which is an unusual (but I think deliberate) omission.
- [CephFS to S3](https://www.tunbury.org/2026/04/17/cephfs-to-s3/) on the actual bulk transfer from our Cambridge Ceph cluster to AWS, including the tuning of parallelism and retry behaviour to make a half-a-petabyte transfer go faster. The first iteration without the tweaks would have taken two months of transfer time, but we got it down to a week...

With the precious TESSERA data now in two sites at last, I've been building the multi-registry support into `geotessera` itself so the client can discover and fetch tiles transparently from Cambridge, AWS or other future mirrors. This builds on the [Zarr v3 layout](https://anil.recoil.org/notes/tessera-zarr-v3-layout) and [geo-embeddings convention](https://anil.recoil.org/notes/tessera-embeddings-convention) and gets us closer to a proper federated story for TESSERA data distribution. I'm also meeting up with [Cyrus Omar](https://web.eecs.umich.edu/~comar/) and his group in London next week as they are visiting, as this is related to our [planetary wiki](https://anil.recoil.org/projects/enki) that we [wrote up](https://anil.recoil.org/papers/2025-fairground) last year.

## oi: a uv-like distributor for OCaml binaries

Now that more people outside our immediate circle are [using OCaml in production](https://anil.recoil.org/projects/oxcaml) across the group, the issue of *"how to run this OCaml CLI tool without CLI gymnastics"* has started to bite. opam has always been great once set up, but it's a lot of machinery for someone who just wants to run the TESSERA CLI or some utility.

I've been spending a lot of time with [uv](https://github.com/astral-sh/uv) in recent months while working on the Python machine learning end of TESSERA, and it has become my default choice to [ship Python tooling](https://anil.recoil.org/notes/geotessera-python). I spotted an opportunity to get this Python goodness over to my statically typed world and have been hacking on [**oi**](https://github.com/avsm/oi): a fast, stateless client that fetches and manages binary releases of OCaml tooling with a single invocation.

The idea is much older than my prototype code. Back in 2023 I sketched out an [opam-repo roadmap](https://github.com/avsm/opam-repo-roadmap-thoughts) around a merge-queue-driven overlay repository: rather than each user resolving the whole universe on their laptop, a central CI would continuously solve and build the overlay, and clients would just pull pre-resolved, pre-built artefacts. What I was missing was a clean way to actually *execute* the builds reproducibly.

Two members of my group came up with the answers. Firstly, [David Allsopp](https://www.dra27.uk) got his [relocatable OCaml compiler patches merged](https://www.dra27.uk/blog/platform/2025/12/17/its-merged.html) after a year of hard work. Then [Mark Elvers](https://www.tunbury.org/) came up with the [day10 build](https://www.tunbury.org/2026/04/17/day10-build/) tool that builds opam packages inside OCI containers with layer caching, and also an [opam overlay CI](https://www.tunbury.org/2026/04/02/opam-overlay-ci/) that wires up the GitHub merge queue so regressions can be caught before a PR lands.

Some cool things you can do with oi today:

- `oi run utop` gets you the toplevel quickly.
- `oi run --with=async utop` gets you the toplevel with Async loaded.
- `oi run --with=https://tangled.org/patrick.sirref.org/merry msh` gets you running with the `msh` binary from [Merry](https://patrick.sirref.org/weekly-2026-w12/index.xml)
- `oi run https://www.cl.cam.ac.uk/~avsm2/foo.ml` runs a remote script without a dune file being needed\!

It does this with the simple trick of adding OCaml attributes to the toplevel, just as [Python inline script metadata](https://packaging.python.org/en/latest/specifications/inline-script-metadata/#inline-script-metadata) does. oi then synthesises a dune file and adds ppx preprocessors in via heuristics. You can see my version of the package attributes in the snippet of OCaml below:

```ocaml
[@@@opam base stdio ppx_jane]

open Base
open Stdio

type t = { bar: float } [@@deriving sexp]

let rec read_and_accumulate accum =
  let line = In_channel.input_line In_channel.stdin in
  match line with
  | None -> accum
  | Some x -> read_and_accumulate (accum +. Float.of_string x)

let () =
  let t = { bar=read_and_accumulate 0. } in
  printf "Total: %s\n" (Sexp.to_string_hum (sexp_of_t t))
```

So to recap, with day10 supplying a reproducible build substrate and OCaml now
being relocatable, that's all I needed to glue together this `oi` tool that
apes uv!  It's early and rough and only really intended for local use, but
issues/opinions are very welcome especially around signing and platform
compatibility. I'll be blogging about the technical details more this week,
and switching to using it day to day to make sure it's good enough before sharing more widely.
Having said that, it [already seems to have escaped into the wild](https://patrick.sirref.org/self-host-music/index.xml).

## Fun links

### RCTs as a survival skill

A great FT piece this week on ["The trials that quietly changed our lives"](https://www.ft.com/content/9b8eebc6-ed76-41cf-bc46-a1ef84613218) (h/t [Hetan Shah](https://bsky.app/profile/hetanshah.bsky.social)) on how randomised controlled trials and the steady accumulation of evidence have underpinned most of the quiet improvements in modern life:

> Arming our children — and ourselves — with the ability to spot bunk and think
> critically about claims has become an essential survival skill.
> <cite>\-- [The trials that quietly changed our lives](https://www.ft.com/content/9b8eebc6-ed76-41cf-bc46-a1ef84613218), 2026</cite>

This hits on what I've been working on with the [Conservation Evidence](https://anil.recoil.org/projects/ce) and the [evidence TAP](https://anil.recoil.org/papers/2025-evidence-tap) teams in recent months. The world's awash with confidently incorrect LLM-generated assertions, and the ability to trace a claim back to an actual evidentiary test isn't just a niche skill for academics any more.

### Hamed Haddadi visits me and Mort

There have been persistent rumours that [Hamed Haddadi](https://haddadi.github.io/) and I are the same person, and I hope that this evidence from Christ's College Cambridge at a delightful high table hosted by [Richard Mortier](https://github.com/mor1) will resolve this situation. Thank you for your attention to this matter.

<figure class="image-center"><img src="/images/26w16-6.webp" alt="Hamed? Or is it?" title="Hamed? Or is it?" loading="lazy" srcset="/images/26w16-6.768.webp 768w, /images/26w16-6.640.webp 640w, /images/26w16-6.480.webp 480w, /images/26w16-6.3840.webp 3840w, /images/26w16-6.320.webp 320w, /images/26w16-6.2560.webp 2560w, /images/26w16-6.1920.webp 1920w, /images/26w16-6.1600.webp 1600w, /images/26w16-6.1440.webp 1440w, /images/26w16-6.1280.webp 1280w, /images/26w16-6.1024.webp 1024w"><figcaption>Hamed? Or is it?</figcaption></figure>
<figure class="image-center"><img src="/images/26w16-7.webp" alt="Anil? Or is it?" title="Anil? Or is it?" loading="lazy" srcset="/images/26w16-7.768.webp 768w, /images/26w16-7.640.webp 640w, /images/26w16-7.480.webp 480w, /images/26w16-7.3840.webp 3840w, /images/26w16-7.320.webp 320w, /images/26w16-7.2560.webp 2560w, /images/26w16-7.1920.webp 1920w, /images/26w16-7.1600.webp 1600w, /images/26w16-7.1440.webp 1440w, /images/26w16-7.1280.webp 1280w, /images/26w16-7.1024.webp 1024w"><figcaption>Anil? Or is it?</figcaption></figure>
Synopsis: A week of hops between Chennai, Cambridge and Belfast for the FP Launchpad takeoff at IIT Madras, a surprise Publication of the Year at the Cambridge Ring Hall of Fame, meeting the VC on the upcoming Rokos School of Governance, mirroring half a petabyte of TESSERA tiles and hacking on oi
Words: 1340

## Related

- [The FP Launchpad takes off at IIT Madras](https://anil.recoil.org/notes/fpl-launch) (note, 2026-04-13)
- [An io_uring IO implementation for Lean](https://anil.recoil.org/ideas/lean-io-uring-backend) (idea, 2026-04-01)
- [A programmatic diagramming library for OCaml](https://anil.recoil.org/ideas/spytial-ocaml-port) (idea, 2026-04-01)
- [TESSERA now supports the Zarr geo-embeddings convention proposal](https://anil.recoil.org/notes/tessera-embeddings-convention) (note, 2026-03-27)
- [Streaming millions of TESSERA tiles over HTTP with Zarr v3](https://anil.recoil.org/notes/tessera-zarr-v3-layout) (note, 2026-03-14)
- [A Decade of Docker Containers](https://anil.recoil.org/papers/2026-decade-docker) (paper, 2026-03-01)
- [Enki, a Dashboard of Life on Earth](https://anil.recoil.org/projects/enki) (project, 2026-01-01)
- [AI-assisted Living Evidence Databases for Conservation Science](https://anil.recoil.org/papers/2025-evidence-tap) (paper, 2025-10-01)
- [A FAIR Case for a Live Computational Commons](https://anil.recoil.org/papers/2025-fairground) (paper, 2025-10-01)
- [GeoTessera Python library released for geospatial embeddings](https://anil.recoil.org/notes/geotessera-python) (note, 2025-08-31)
- [Functional Networking for Millions of Docker Desktops](https://anil.recoil.org/papers/2025-docker-icfp) (paper, 2025-08-01)
- [OxCaml Labs](https://anil.recoil.org/projects/oxcaml) (project, 2025-01-01)
- [TESSERA, a pixelwise geospatial foundation model](https://anil.recoil.org/projects/tessera) (project, 2025-01-01)
- [Conservation Evidence Copilots](https://anil.recoil.org/projects/ce) (project, 2024-01-01)

---
Canonical: https://anil.recoil.org/notes/2026w16
Type: note
Tags: ocaml, oxcaml, tessera, india, infrastructure, cambridge, policy
