I returned to Cambridge during the nice lull after the exams and graduation rush, and enjoyed a very pleasant week indeed catching up!
I examined my first viva in the Faculty of Law, ran a TESSERA stall at the House of Lords, saw exciting results on downscaling the weather with TESSERA, went digging into the sorry state of our own rooftop weather station, got stuck into moving TESSERA onto Source Cooperative, enjoyed hosting the Pembroke garden party, joined a dinner on AI and energy, spent time on a POSIX shell from scratch, continued hacking on Eio, and delighted that Evidence TAP is taking shape. There are a few fun links at the end.

1 A first-year viva in planetary law
Something new for me was examining a first year PhD viva in the Faculty of Law, as I continue my departmental bingo around the University. The candidate was Yirong Sun, supervised by Jennifer Cobbe, and the other examiner (thankfully from Law) was Professor Henning Grosse Ruse-Khan. I learnt a great deal from the discussion.
Yirong's thesis was an absolutely fascinating argument about the regulation of planetary infrastructures, which covers remote sensing satellites, space situational awareness and space weather monitoring. It sits close to our own work on TESSERA and planetary computing, just seen through the lens of global law rather than computer systems. Her earlier article on this topic before she started her PhD was with Benedict Kingsbury, Satellite Infrastructures and Law in the Making of Planetary Knowledge, which traces how satellite data became infrastructural to the way we understand the planet.
Our conversation ranged over the commons, and I learnt about adjacent ideas such as standard material transfer agreements, the uniform contracts used to share plant genetic material under one agreed set of benefit sharing terms. I can't comment on how the viva went of course, but I'm sure my enthusiasm for her work is shining through here as I'm keen to continue to learn more!
I've been wondering for ages how we're going to avoid a tragedy of the commons in low earth orbit, since a staggering 1.7 million LEO satellites are proposed by 2030! It seems too fast a launch rate for this to work as a common pool resource, but Henning pointed out during our discussions that there is precedent for international law for deep sea mining via the UN Convention of the Law of the Sea.
2 A Tessera stall at the House of Lords
Sadiq Jaffer and I got invited to the House of Lords for a reception on AI for science, hosted by Baroness Sugg and NVIDIA as part of their Inception programme. The NVIDIA crew has been helping us a lot with the TESSERAv2 training, so this was a nice chance to relax a bit!
There were a bunch of startups present there along with us (who are not a startup yet!). We set up a little pitch in the corner and had a steady stream of interest in the forthcoming v2 model and our change tracking work. This was Sadiq Jaffer's second outing to Parliament in a fortnight, after the Conservation Evidence debate last week, and I think my fourth time this year.
It was really cool to have MPs and Lords dropping into the evening reception after their House business was concluded, and a number of them stopped by our stall. The discussions ranged from potato farming in the north west (which we could find in real time thanks to a new reverse search system we're building and were demoing there), all the way through to meeting Lord Nagaraju of Bloomsbury who originally hails from Hyderabad and spoke Telugu and is working on AI policy these days!

3 Downscaling the weather with TESSERA
After this excitement at the start of the week, the NVIDIA team visited us again in Cambridge due to Mike Pritchard being in town. Mike is their director of Climate Simulation Research, and so Sadiq Jaffer, Pedro Sousa and I met with them to compare notes on our various projects, not least the weather downscaling below.

On our end, Pedro Sousa has been leading work on downscaling weather using TESSERA, and the results are looking exciting. The setup is that weather reanalyses and forecasts come on grids of around 25km, but almost every decision anyone wants to make with them (such as where to site a turbine, or when to cut grass, or whether a road will ice up) happens at a smaller local point rather than a large km-scale grid cell.
The current downscaling approach is to inject that missing sub-grid signal via a hand-crafted topographic descriptor (using things like elevation). Pedro's hypothesis is that a frozen TESSERA embedding does better, since it encodes land cover, vegetation, water and built surfaces alongside the terrain in one pre-trained model. We'll have a preprint out soon about this, but the TL;DR is that it does! Pedro is heading over to Berkeley and Duke next week, initially for the Deep Learning for Science summer school, so if you're in the region and want to learn more then find him in Berkeley or Stanford for the next few weeks!
4 The (in)famous Cambridge weather station
All this talk of station observations made me wonder a few months ago about the state of our own rooftop weather station, which has been recording Cambridge weather since June 1995. I haven't been up on the roof since about 2004 when I helped rewire the Active BAT location system, so I asked on our local mailing list to enquire if I could help out with it.
The TL;DR is that it's in dire need of fresh hands. The rainfall sensor was fixed after a gap in September 2025, but since a power outage in January this year, the pressure, humidity and wind sensors have all been returning incorrect data, and some components need to be replaced.

However, the core issue is that the MetLog hardware that drives most of the sensors is ancient and unmaintained, and most of the physical sensors on the roof have corroded beyond hope of repair. Probably many of the sensors need complete replacements, but if so, the ancient MetLog device the existing ones are connected to is not a sensible host. So the need is for both money to buy most of a new weather station, and people willing to rewrite lots if not all of the configuration and scripting around the data collection if the MetLog is replaced.
Some of the hardware is nearly as old as I am, although the laser rainfall sensor and temperature probes have been updated much more recently. Incredibly, the company that the MetLog part of the weather station was purchased from in ~1996 is still selling weather stations and responded helpfully when we last spoke to them asking for a datasheet to debug some wiring issues. -- James Sharkey, cl-cooler, 2026
Q took on modernising the software some years ago. Unfortunately the old Perl code had been running for over two decades so any changes he made would alter the decades long weather record if it skewed the sampling. Maintaining this stream therefore requires 'shuffling' components into place with minimum downtime (thankfully over an XML-RPC interface) and write text files/SQL in exactly the way the old code had (quirks included).
Some of the sensors in there can be polled, but others simply stream over a serial port and needed something listening continuously on the other end. It might be time to have buffering serial port proxies that can also rebroadcast! Markus Kuhn did wonder whether it was really an equipment limitation, or just the old site code holding a connection open permanently and hogging the serial port.
Given how corroded the sensors are, when I'm back in Cambridge in August I'll have a go at some self-hosted Ecowitt gear and see how far I get...
5 Moving TESSERA onto Source Cooperative
We have been moving TESSERA's embeddings over to the Source Cooperative, following the enthusiastic reaction at CNG London last month. The actual mechanics of this are super fiddly, in order to avoid getting stuck with massive egress bandwidth charges. There are terabytes of v1.0 and 1.1 embeddings sitting in an AWS bucket in us-west-2, and the egress costs to pull them all out naively would be well over fifty thousand dollars since there's a HTTP proxy preventing direct transfer over to us-east-2 (to Source Coop). So instead we are juggling the embeddings via Cambridge to avoid the worst of the charges; this should take no more than a week or two I hope!
We now have several model versions to look after, with 1.0, the 1.1 we released a few months ago, and the forthcoming 2.0 with its variations in the student models. Source Cooperative is fronted by Cloudflare and so looks like a fantastic home for all of this; Isaac Corley has been really helpful in getting us started on all this. A good deal of my time over the next few months will go into this migration, and also doing the conversion to Zarr v3 to make that the default access mechanism for every consumer.
6 Pembroke computer science garden party
Carl Henrik Ek and I threw the annual Pembroke computer science garden party a little later than usual this year (due to my Arctic travels). I am very proud of our undergraduates for all their hard work over the year, and it was lovely to see so many of our collaborators from the CCI, Jane Street, Citrix and other venues turn up too and relax for a few hours in the lovely Fellows' Garden in Pembroke.
The party also coincided with the annual Ellis summer school, which Carl Henrik Ek hosts here at Pembroke, so I took the organising group along to high table to celebrate as well. I love July!


7 AI and energy
Emily Shuckburgh, who has recently become the chief scientific adviser at DESNZ, hosted a dinner conversation about the work of Lucy Yu at the Centre for Net Zero. Lucy is the government's AI Champion for Clean Energy, and her independent review of AI deployment in the electricity networks is due to report by the summer (assuming the new government around the corner approves it, that is).
Around the table were Srinivasan Keshav, Dominic Orchard, David Reiner, Chris Edsall and many other colleagues from various disciplines, and we talked about how to combine our different research directions with her forthcoming report. There seem to be energy connections springing up everywhere at the moment. We also recently welcomed two of the founders of Octopus Energy, James Eddison and Stuart Jackson, to Pembroke as William Pitt Fellows, which only adds to the theme.
I did learn just how creaky the UK wholesale energy market is; while technologists are discussing lofty matters like AI agents, there's currently a manual declaration process that often takes years for new entrants to work through!

8 Planning a shell from scratch with Patrick
I enjoyed mapping out the next steps for Merry with Patrick Ferris, his clean slate shell implementation. The exciting milestone is that the shell is now passing debootstrap (!) which is awesome since bootstrapping a Debian system exercises an enormous amount of awkward POSIX shell behaviour.
Getting a from scratch implementation this far takes meticulous and detailed work, and it has been a pleasure to watch it come together for Patrick's PhD. Patrick has written some of his benchmarking and signal handling work for those who want to know more.
9 More Eio platform hacking
My Eio push of the past couple of weeks hit a satisfying milestone as my ftruncate and fdatasync PR was merged by Thomas Leonard after much cleanup. It moves fsync, shutdown and the socket creation calls (socket, bind and listen) all over to io_uring, which needed the newer liburing 2.15 that I bumped the minimum version to last week. This is now using pretty cutting edge kernel interfaces, which is I think necessary if using uring (Eio supports falling back to normal POSIX with an environment variable if you run into any bugs).
I've also got some PRs for a pre-connect socket options interface, which revises earlier work by Arthur Wendling. This one's a little tricky since I'm trying to avoid exposing the low-level sockets interface. Minor PRs include exposing the SO_TYPE query into the portable socket interface. Thomas Leonard meanwhile factored the Unix error wrapping that was duplicated across the three backends (POSIX, Linux, Windows) into a common Eio_unix.Err module, and added TCP keepalive support on macOS which helps with the OCaml capnp-rpc library.
I'm still down in the weeds with Windows; I have lots of local patches but nothing I'm satisfied with submitting upstream just yet. I also had to do some macOS spelunking since it turns out that poll() on macOS returns POLLNVAL for some device files such as /dev/tty and /dev/null, so I proposed falling back to select() for those descriptors, which is the least invasive fix we could find that leaves the other platforms alone. Interestingly, I mentioned this platform quirkiness to Simon Peyton Jones who sent me off to the Haskell bug tracker where they are running into very similar issues to us.
10 Evidence TAP starts taking shape
A lot of paperwork for our Evidence TAP project finally came through, and we've started regular meetings and I hope to have a website up by next week! In addition to the regular Conservation Evidence team, we are joined by Mélanie Gréaux who has relocated to Cambridge to work with Jenny Gibson on education evidence.
I'm also delighted that Eleanor Toye Scott is working with us to help get the living evidence database design requirements organised so that Sadiq Jaffer, Sam Reynolds and I can knock implementations together. Our first meeting was in another building I've never actually been into: the Centre for Existential Risk and CHIA are both directly beside the Cambridge Makespace! So while the picture below looks like just another meeting room, it was actually a meeting room covered in posters about how all the ways humanity could perish...

11 Fun links
The decomposable type highlighting paper with Max Carroll and Patrick Ferris is the companion to the bidirectional type slicing work and is now up on arXiv. Together they give a single account of explaining both types and type errors inside a program editor. This paper was presented last year at ICFP 2025 at HATRA and we just caught up with the arXiv uploads from that.
I got to photograph two of my favourite people Simon Peyton Jones and Jon Crowcroft together for their 50th reunion dinner at Trinity College Cambridge! There exists a pic of them from about 35 years ago sunning themselves on the lawn of UCL when they were both lecturers there, but I've been unable to find it after years of searching. If you run across it, then let me know!


I heard via @ghennequin that Thibaut Mattio has shipped a feature packed new version of raven. It now includes a clone of tinygrad that enables just in time compilation to CUDA and Metal, which is a game changer for exploratory machine learning in OCaml! See his July update on Raven.
