.plan-26-36: Ground control to major MODIS Tessera v2.0 beta2, published by Anil Madhavapeddy and Mark Elvers to source.coop, reduces boundary artefacts by 35% using MODIS corrections but regresses temporal alignment, so beta1 may remain the best v2 embedding without a retrain. James G. C. Ball found that training on 2018 and testing on 2019 dropped macro F1 from 0.586 to 0.511 for beta2, while beta1 improved from 0.576 to 0.626, prompting the team to seek GPU resources for a v2.5 model trained on corrected data. Got back to Cambridge mid-week and back on the keyboard to start preparing for Michaelmas term, which creeps up fast Tessera v2 beta2 https://anil.recoil.org/ tessera-v2-beta2-and-the-temporal-axis turns out to smooth space at the cost of time, so beta1 may be as far as the v2 series goes without a retrain. Evidence TAP gets a splendid explainer from Sam https://anil.recoil.org/ more-polite-crawling-for-the-evidence-tap and some new Associate Scholars at Pembroke, along with a TDM reservations library https://anil.recoil.org/ text-and-data-mining-reservation and some thoughts on working across OCaml and OxCaml https://anil.recoil.org/ working-on-both-ocaml-and-oxcaml . Elsewhere there's Scrutineer's git workflow https://anil.recoil.org/ scrutineers-git-workflow-for-security-scanning and an invitation to a bug sprint, rather a lot of the Windows tax https://anil.recoil.org/ the-windows-tax , why AI disclosure is a social problem https://anil.recoil.org/ ai-disclosure-is-more-of-a-social-issue-than-technical rather than a technical one, a fourth Recoil host https://anil.recoil.org/ a-fourth-recoil-host running OpenBSD, and the usual fun links https://anil.recoil.org/ fun-links . Mark Elvers https://www.tunbury.org/ and I published more Tessera https://anil.recoil.org/projects/tessera v2.0 beta2 to source.coop https://source.coop/tessera/tessera/zarr this week to test out some fixes to the improved embeddings. The v1 embeddings sometimes show a "checkerboard" where Sentinel-1 and Sentinel-2 coverage is thin. This happens in areas where there are few satellite observations for the model to infer embeddings from. v2-beta2 tried to smooth them over by applying MODIS https://modis.gsfc.nasa.gov/about/ corrections during inference to augment the data, since MODIS is coarser spatially but has more consistent coverage. This actually works pretty well, and Mark Elvers https://www.tunbury.org/ measured a 35% reduction in the boundary artefact https://www.tunbury.org/2026/08/31/week-35-2025/ the-tessera-temporal-axis . Unfortunately, this does regress another aspect of the embedding temporally.. The v2 model wasn't trained on MODIS, and so inferring with it shifts the embeddings year-on-year in ways the model does not anticipate. Because MODIS observations themselves vary year to year, this breaks the cross-year alignment v1.1 added https://anil.recoil.org/notes/tessera-v11-out . James G. C. Ball https://patball1.github.io caught this by testing them on the v2 Trentino https://anil.recoil.org/papers/2026-tessera-trentino embedding as while intra-year cross-validation is neutral, training on 2018 and testing on 2019 dropped the macro F1 from 0.586 - 0.511 wherase the v2-beta1 embeddings instead improve from 0.576 to 0.626 . So it looks like, somewhat reluctantly, that the v2-beta1 embeddings may be the best we can do in the v2 series without retraining a model with more MODIS observations or maybe doing some extensive fine tuning. Opinions from other testers are still incoming, so do get in touch if you have a view. We're still looking for GPU resource to train the v2.5 model on corrected data rather, so get in touch if you can help with those too Meanwhile, the wall-to-wall inference v1.1 run for 2017 to 2025 is underway after last month's GPU shortage and should finish in a few weeks. I released GeoTessera 0.10.2 https://github.com/ucam-eo/geotessera/releases/tag/v0.10.2 as a point release to fix v1.1 Zarr URL resolution that broke in last week's Source Cooperative migration https://anil.recoil.org/notes/2026w35 , and am working on a robustness pass https://github.com/ucam-eo/geotessera/pull/403 for recoverable Zarr writes and improved Windows support https://anil.recoil.org/ the-windows-tax for Zarr. Sam Reynolds https://samreynolds.org has written a splendid piece for the Pembroke blog https://www.pem.cam.ac.uk/college/news/august-2026-dr-sam-reynolds on what the Evidence Traceable AI Pipeline is for as part of his introductory post for College . For the last three years, we have been working with colleagues in Computer Science on an AI pipeline that finds, classifies, extracts data and summarises findings from the academic literature using self-hosted open-access Large Language Models, benchmarking performance against our hard won, human created database. Underpinning this are pioneering agreements with the largest scientific publishers, brokered with the help from the University Library, to download millions of academic papers. We are also developing tools that let decision makers interact with this extracted information. This is the foundation for the Evidence Traceable Accountable Pipeline E-TAP project here at Pembroke, generously funded by the MacArthur Foundation, through which we hope to generalise this approach for other fields. -- Sam Reynolds, Aug 2026 https://www.pem.cam.ac.uk/college/news/august-2026-dr-sam-reynolds I'm delighted that Sam Reynolds https://samreynolds.org and Mélanie Gréaux have now joined Pembroke as Associate Scholars alongside Sadiq Jaffer https://toao.com . Having the conservation evidence https://anil.recoil.org/projects/ce , education experts and the computer scientists all in College will make for some fun socials, especially as many other colleagues from other departments have expressed interest in the project as well On the coding side, I released a TDMRep 1.0 https://github.com/ocaml/opam-repository/pull/30616 library to opam. Our download engine is crawling papers at some scale now, and publishers have adopted a standard to express their responses to AI crawlers via the W3C TDM Reservation Protocol https://www.w3.org/community/reports/tdmrep/CG-FINAL-tdmrep-20240202/ . My tdmrep library https://tangled.org/anil.recoil.org/ocaml-tdmrep gives us the ability to read this metadata from OCaml code, and the Taposaur crawler declares its intentions non-commercial, research use only when requesting papers as well. I also pulled out json-pointer 1.0 https://github.com/ocaml/opam-repository/pull/30656 into my tangled https://anil.recoil.org/notes/tangled-and-ci repos. This is a query syntax for JSON that's seeing some adoption e.g. /users/0/name , and I'm using this to parse Semantic Scholar fulltexts in the Evidence TAP corpus. Since we're using these libraries in my OxCaml httpz stack https://anil.recoil.org/ working-on-both-ocaml-and-oxcaml now, I've also started extracting that code out of our internal monorepo. E-TAP is a "live" service now, with the stack fetching papers and categorising them, so I'm getting more handson experience with OxCaml in production. One challenge is that a lot of our high-performance infra both for ETAP and Tessera is built in OxCaml, which is a fast moving target as Jane Street release compilers quickly and with breaking changes. There's also some very ugly but performant edges to the language as it evolves, such as the use of ppx to get around the lack of layout polymorphism. While this makes code hard to edit sometimes, I've found that coding in OCaml and then agentically translating to OxCaml works very well, since the type system catches layout issues very reliably. I got my oxcaml/opam-repository 59 https://github.com/oxcaml/opam-repository/pull/59 merged, which makes it much easier to mix OCaml and OxCaml packages through the guard packages https://anil.recoil.org/notes/oxcaml-opam-guards . However, this approach does neccessitate having full control over dependencies, since writing a parser in OxCaml is very different from normal OCaml and many dependencies need annotations. My httpz https://anil.recoil.org/notes/oxcaml-httpz library has matured in recent months from a parser into a full HTTP stack with a zero-allocation fetch for HTTP clients, and proffer , a portable HTTP server layer. I've been experimenting with various strategies to packaging this up which I'll share in the coming weeks. I've also started httnope https://tangled.org/anil.recoil.org/httnope , to build a conformance corpus that supplies adversarial peers to httpz clients or servers and checks the observable effects on fresh connections. This is more useful than testing against a well-behaved HTTP peer since all the "interesting" failures all found in behaviours no reasonable HTTP server would send but bad attackers probably will . I'm bootstrapping this using LLMs parsing RFCs, but Thomas Gazagnaire https://github.com/samoht has also pointed me to some of his work on an FSM library that he's having good success with, so I'll work more on this... The Scrutineer security scanner deployment https://anil.recoil.org/notes/scrutineer-local-llm from last week now has a private Git remediation workflow I added. A gated patch attempt is exported as a cherry-pickable commit on a private Git remote, so I can review with: bash $ git fetch scrutineer '+refs/findings/ :refs/remotes/scrutineer/findings/ ' $ git cherry-pick scrutineer/findings/F-63 ...over an ssh tunnel. Triage decisions go back as Git notes under refs/notes/scrutineer/triage/