I track a number of online blogs and connect relevant ones to things I am working on. You can grab my blogroll OPML here, or just browse it below. If you have your own blog that I've missed, do let me know!

March 2026

TLLetting the Agents run wild – seamless Public Services? Tom Loosemore — A few days ago I shared a video of an AI Agent hosting a benefit entitlement interview. The AI Agent intuits a lot in the course of this conversation,…
Michael DalesYirgacheffe 1.13 Michael Dales — I put out what I hope might be the last 1.x release of Yirgacheffe this week, which is release 1.13. I realised in the middle of last year that I want…
Michael DalesFractional LIFE progress Michael Dales — I’ve spent the last few weeks generating new versions of the LIFE biodiversity metric maps: Original Hybrid function updateCompare(slider) { const p…
Mark ElversOCaml-CI and native Windows builds Mark Elvers — Following from post last week about obuilder and Windows Host Compute Services, I am pleased to report that this is now running on OCaml-CI. In this e…
Mark ElversOCaml 5 native 32-bit backends: i386 and PPC32 Mark Elvers — Following on from the Arm32 multicore backend, I have now ported the remaining two 32-bit architectures to OCaml 5 with multicore support: i386 and Po…
Richard MortierUpdating Cambridge VPN configuration Richard Mortier — UIS recently rolled over the certificate for the University’s VPN service, and the same update was applied to the Computer Lab’s service at the sa…
Conservation EvidenceWhy aquatic vegetation matters – and how evidence can help us conserve it Conservation Evidence — Nigel Taylor presents the latest Conservation Evidence synopsis - on the conservation of vegetation in inland aquatic habitats
TLOpenClaw MCP-enabled benefits entitlement interview Tom Loosemore — Here’s a video of a benefit entitlement conversation hosted by an AI Agent (OpenClaw Opus4.5) using my new MissingBenefit.com MCP server to do t…
Jon LudlamWeeknotes 2026 week 9 Jon Ludlam — Let's make this really terse!
Richard MortierSabbatical Diary: Weeks 19---21 / Month 5 Richard Mortier — Well, it was less runny. Though as you can probably guess from a 3-week hiatus, also unproductively busy :/ Proofread the proof of a book chapter that…

February 2026

Jon SterlingWeeknotes 2026-W09 Jon Sterling — A week at home… It’s been a couple weeks since I have been able to sit down and write my weeknotes. I thought finishing up Lecturing would give me…
TLIn the future, our AI Agent overlords will all speak MCP Tom Loosemore — I got the train back from St Ives to London yesterday, so I bashed out an MCP server for MissingBenefit.com, the UK benefit calculator I made the othe…
Mark ElversTessera Pipeline Mark Elvers — Mainly for my future reference here is a walk-through of the Tessera pipeline.
TLAI agents will join up government before government does Tom Loosemore — AI agents will join up government before government joins up government. This will be a mixed blessing for citizens, with big implications for trust, …
Thomas GazagnaireIs Running Untrusted Code on a Satellite a Good Idea? Thomas Gazagnaire — The same conversation keeps happening. I explain what Parsimoni does (run third-party software on someone else's satellite) and the response is always…
TLThe dream of joined up government. Tom Loosemore — Back in 2012, a printout of the page above was stuck on a wall next to the team making GOV.UK. It captured the team’s desire to join up governme…
Jon LudlamWeeknotes weeks 7-8 Jon Ludlam — A combination one again as I took some time off due to school half term.
Jane StreetCan you reverse engineer our neural network? Jane Street — A lot of “capture-the-flag” style ML puzzles give you a black box neural net, and your job is to figure out what it does. When we were thinking of…
TLLessons from making Benefit Chatbots Tom Loosemore — I got the slow train from Totnes to St Ives on Saturday. To close off my recent vibe coding interlude, I used the MissingBenefit API I built last week…
Michael DalesPython import profiling with tuna Michael Dales — Inspired by the latest release notes on one of the group's other projects, I spent a moment looking at the load times of Yirgacheffe, my Python geospa…
Thomas GazagnaireFrom ASPLOS to Orbit: Unikernels Twelve Years Later Thomas Gazagnaire — Our 2013 ASPLOS paper, "Unikernels: Library Operating Systems for the Cloud", received a test-of-time award in March 2025. The title says &q…
TLAI and the end of friction as a policy lever Tom Loosemore — Many public services rely on friction to stay viable. They depend on slow, confusing, frustrating user experiences to put off those otherwise eligible…
Mark ElversOBuilder on Windows: Bringing Native Container Builds with the HCS Backend Mark Elvers — Following from my containerd posts last year and my previous work on obuilder backends for macOS and QEMU, this post extends obuilder to use the Host …
Thomas GazagnaireF Prime Looks a Lot Like MirageOS (but in C++) Thomas Gazagnaire — Last week I attended the F Prime workshop at JPL, over 100 people, from CubeSat student teams to flagship mission engineers. I learned a lot about F P…
Michael DalesThe trials of area per pixel maps, or Michael's Holstic Detective Agency Michael Dales — This is a bit of a meandering blog post, which was meant to be about one thing, and then I had to pull in some other bits to give context, and now it …
Thomas GazagnaireNew Year, New Blog Thomas Gazagnaire — Hello world, finally this is live :-) The last couple of weeks have been pretty intense as I've been moving to LA with my family. I am spending six mo…
Mark ElversDay10: opam package testing tool Mark Elvers — ocurrent/obuilder is the workhorse of OCaml CI testing, but the current deployment causes packages to be built repeatedly because the opam switch is a…
Michael DalesAdding D2 diagrams to webplats Michael Dales — I managed to nerd-snipe myself this morning: Basically I wanted to use a simple flow diagram in a post, and ideally I wanted to be able to put the dia…
Mark ElversTessera pipeline in OCaml Mark Elvers — The Tessera pipeline is written in Python. What would it take to have an OCaml version?
Andres Zuñiga-GonzalezWeekly Notes - 2026-02-15 Andres Zuñiga-Gonzalez — Introduction This is quite a large update as it includes everything I’ve done for the past two weeks. I’ll talk about the LCZ classification and r…
TLCreative Commons for legal consent to act on behalf of another? Tom Loosemore — It’s one of those fascinating periods when different worlds collide. I had two conversations this last week about the need for lighter-weight le…
Conservation EvidenceDelivering effective conservation practice: the role of funders Conservation Evidence — Simon Wightman, Patricia Cremona and Sophia Cooke present some key takeaways for funders from our 'Delivering Effective Conservation Practice' meeting…
Jon SterlingWeeknotes 2026-W07 Jon Sterling — Thinking about mutable value semantics I recently heard about a very experimental interesting language called Hylo, which is closely related to Swift …
Alastair TseExploring Terminal Nav on Web Alastair Tse — I thought it would be fun experiment to build a terminal inside my own website and use it as a navigation UI. And this site is now the result of this …
Mark ElversThe 15-Game Mark Elvers — Numberphile’s latest video has been released, and in it Ben Sparks introduces the 15 Game.
Mark ElversOptimizing an MP3 Codec with OCaml/OxCaml Mark Elvers — After reading Anil’s post about his zero-allocation HTTP parser httpz, I decided to apply some OxCaml optimisation techniques to my pure OCaml MP3 e…
TLTooth and claw: AI Agents could eat Public Services Tom Loosemore — For the past few weeks I’ve been playing with the dangerous agent magic of OpenClaw and Claude Cowork. Don’t worry, I’ve been using …
Jane StreetResults from the Advent of FPGA Challenge Jane Street — At the end of last year, we decided to try something new: a challenge that would run alongside Advent of Code, where we asked the community to show us…
Mark ElversWindows Docker Images Mark Elvers — In my previous post on the base image builder, I included a footnote that we now had Windows 2025 workers, but I didn’t mention that the base images…
Jon LudlamWeeknotes for week 6 Jon Ludlam — Highlights:
Alastair TseSnowline and AI Alastair Tse — Three years ago, I started manually crawling for this data. This involved creating a master list of websites that had snow depth and snow fall data, a…
Alastair TseSnowline 2026 Alastair Tse — Snowline is a passion project of mine that has been going on for the past three years. The idea was to create a well-designed, data-driven site about …
Jon SterlingWeeknotes 2026-W06 Jon Sterling — Welcome to Raphaël Sterbac! I’m very happy to welcome Raphaël Sterbac, a Master’s student from ENS Paris-Saclay who is joining me in Cambridge o…
Richard MortierSabbatical Diary: Week 18 Richard Mortier — So. That was a rather stop-start week. It started off pretty well: as noted last week, I was in Brussels to attend FOSDEM 2026 for the first time in a…
Jane StreetI design with Claude more than Figma now Jane Street — For a long time I was skeptical of LLMs—whenever I reached for them I was disappointed by the results. Last year I tried Copilot and Cursor to tweak…
Patrick FerrisOCaml Roundup: January 2026 Patrick Ferris — A new year, another roundup in my open-source, OCaml activities. This month has been busy with lots of work on ocaml-tiff thanks to Tambe Salome and p…
Conservation EvidenceDelivering Effective Conservation Practice – a view from a conservation practitioner Conservation Evidence — Jez Dagley shares his highlights from our recent 'Delivering Effective Conservation Practice' meeting.
Michael DalesYirgacheffe vs The Stack Michael Dales — I've not had time to focus on Yirgacheffe directly of late; although I have some ideas I want to build on in terms of finishing the 2.0 release and th…
Andres Zuñiga-GonzalezCatching up with stuff Andres Zuñiga-Gonzalez — Introduction The last week was my first back in the UK, which meant that most of the week was spent reviewing where I left things in December last yea…
Ryan GibbPackage Managers à la Carte: A Formal Model of Dependency Resolution Ryan Gibb — Feb. 2026Ryan Gibb, Patrick Ferris, David Allsopp, Thomas Gazagnaire, and Anil Madhavapeddy.arXiv. Package managers are legion. Every programming lang…
Jon SterlingWeeknotes 2026-W05 Jon Sterling — Research Group Manual: all you need is blogging! After learning about weeknotes from Anil Madhavapeddy last year, I started activating a blogging-orie…
Jon LudlamWeeknotes for weeks 4-5 Jon Ludlam — I've been battling the seasonal illnesses this week, so I've combined two weeknotes into one. Fortunately the 'flu doesn't hold Claude back!
Richard MortierSabbatical Diary: Weeks 16/17 / Months 2---4 Richard Mortier — More personal and suchlike stuff going on the last two weeks, hence the week’s gap. Felt less productive as a result, though some things got done I …
Michael DalesRay Tracer Performance Improvements and STL files Michael Dales — I claimed last week that I'd have to put aside the fun I was having working through the Ray Tracer Challenge book in OCaml due to other commitments. A…
Mark ElversGetting Claude to complete the spec Mark Elvers — With Claude Code, perhaps we are now at the point where the test suite is actually more valuable than the code itself.
Nick LudlamSimulating falling autumn leaves in Blender Nick Ludlam — In this article, I demonstrate how to create a realistic falling leaves simulation in Blender using geometry nodes. I talk about my process for random…
Mark ElversExtending RPC capabilities in OCurrent Mark Elvers — As our workflows become more agentic, CLI tools are becoming preferred over web GUIs; OCurrent pipelines are no exceptions.
Jon SterlingWeeknotes 2026-W04 Jon Sterling — These weeknotes are very belated, and go all the way back into December. For some reason following the break I have felt almost unable to write anythi…
Richard MortierSome Remarks on the Risks of Lawful Access Richard Mortier — Last summer I was invited to participate in an informal meeting of the EU Standing Committee on Operational Cooperation on Internal Security (COSI). T…
Michael DalesAOH calculator 2.0, a new LIFE publication, and STAR pipeline updates Michael Dales — AOH calculator I've spent the last couple of years almost maintaining two biodiversity pipelines: first the one for the LIFE metric made by a group ou…
Michael DalesUntitled Ray Tracer Post Michael Dales — More progress on the Ray Tracer Challenge book by Jamis Buck, this week adding groups, bounding boxes, triangles, and loading of external models, some…
Jon LudlamWeeknotes for week 3 Jon Ludlam — First week back of 2026! Let's write some terse weeknotes.
David Allsoppopen Core David Allsopp — On 16 December 2000, a young @dra1 stepped out on to the stage of St Martin-in-the-Fields making what would be the first of many performances of Johan…
Richard MortierRestarting audio Richard Mortier — I run, at least for the time being, NixOS, generally from the main / unstable branch rather than a stable release. After a recent upgrade I found audi…
Richard MortierSabbatical Diary: Week 15 Richard Mortier — That feels like it was a relatively productive week :) I interviewed a couple of Ph.D. candidates—good luck! I obtained a short extension to the EU …
Mark ElversBase Image Builder Mark Elvers — The base image builder has a growing number of failed builds; it’s time to address these.
Mark ElversUpdating ARM64 Workers to Ubuntu Noble Mark Elvers — Early in the upgrade program for Ubuntu 24.04, there were permission issues when extracting tar files. The workaround was to update to the latest dev …
Conservation EvidenceCould geospatial foundation models help improve conservation effectiveness? Conservation Evidence — Julia Jones describes how new artificial intelligence models could improve conservation effectiveness, based on a workshop at our recent 'Delivering E…
David AllsoppOpening up old release branches David Allsopp — The spring-cleaning continues! When I originally prototyped Relocatable OCaml, it was during the OCaml 4.13 development cycle. The focus for the work …
Richard MortierExtracting ramblings Richard Mortier — Over a number of years—in fact, my word, decades—recorded my GPS tracks and taken photos when I go walking.1 Over the years I’ve used a range of…
Sadiq JafferEarth Observation on a Budget: Finding Solar Farms with a 42k-Parameter Model Sadiq Jaffer — Satellite imagery analysis doesn't always require massive data and compute. We show how to combine open data from OpenStreetMap and the UK Government'…
AI4NatureAi4Nature officially launched: from shared principles to collective action AI4Nature — On Wednesday 14 January, we officially launched the Ai4Nature Alliance at IET London: Savoy Place, bringing together leaders from ecology, policy, aca…
Mark ElversInstallation from recovery console Mark Elvers — Over the weekend, one of the NVMe drives in pima failed, which brought down the whole system.
Mark ElversMoving to opam 2.5 Mark Elvers — opam 2.5.0 was released on 27th November, and this update needs to be propagated through the CI infrastructure. This post mirrors the steps taken for …
Michael DalesGDAL and FILE* vs macOS Michael Dales — Before xmas I did some experiments with my STAR biodiveristy pipeline with respect to the validation stages. Normally STAR takes about 9k terrestrial …
Michael DalesCylinders, cones, and parallelism Michael Dales — I wrote up a blog post on the Ray Tracer Challenge book by Jamis Buck, exploring how over xmas I spent some odd moments over the xmas/new year break w…
Andres Zuñiga-Gonzalez2025 in review Andres Zuñiga-Gonzalez — Late to the party as it’s already mid-January, but here’s a quick review of 2025. I will mostly talk about the projects I’ve worked on, events I…
Richard MortierPinning packages Richard Mortier — I run NixOS for the time being, usually tracking unstable. As a result, I have from time to time found myself wanting to pin a package to a particular…
Mark ElversBase Fibonacci Mark Elvers — In Numberphile’s latest video, Tony Padilla does a ‘magic trick’ with Fibonacci numbers and talks about Zeckendorf decompositions, and I had my …
David AllsoppForging compilers in opam David Allsopp — As we settle into 2026, I have been doing a little early spring-cleaning. A few years ago, we had a slightly chaotic time in opam-repository over what…
Patrick FerrisOCaml Roundup: December 2025 Patrick Ferris — December was busy, both personally and in my OCaml-related work. If you haven't been following along have a read of my October and November roundups. …
Mark ElversMore OCaml on Pi Pico 2 W Mark Elvers — Extending the Pico 2 implementation to add effects-based WiFi networking and improve the build system.
Richard MortierSabbatical Diary: Week 14 Richard Mortier — The calendar year started with some sysadmin work. Had to get devices reconnected to eduroam and Internal-CL Wi-Fi networks which was happily quite st…
Mark ElversCeph Notes Mark Elvers — We now have 209 TB of data on a seven-node Ceph cluster. Here are some further notes on using Ceph.
Michael DalesThe Ray Tracer Challenge Michael Dales — For the last few years I've spent the run up to the festive break working on something graphical, and this year whilst I was a little late to start, I…
Jane StreetFun with Algebraic Effects - from Toy Examples to Hardcaml Simulations Jane Street — I recently ported the Hardcaml_step_testbench library, one of the libraries that we use at Jane Street for Hardcaml simulations, from using monads to …
Richard MortierUpdating `eduroam` Richard Mortier — The University recently rolled its public certificate for eduroam and the old one was dropped a couple of days ago. So double-checking that all device…
Richard MortierSabbatical Diary: Week 13 Richard Mortier — Nothing of note done, work-wise, for the last week or so. Hey, it was the holidays. Which meant a lot of driving around, and I find it difficult to do…
Dave ScottHello World with Gaussian Splats Dave Scott — An interactive 3D Gaussian splat viewer showing a scene reconstructed from a photo using Apple's ml-sharp library.
Ryan GibbOpam’s Nix system dependency mechanism Ryan Gibb — Jan. 2026Ryan Gibb.Free and Open Source Software Developers’ European Meeting (FOSDEM). The OCaml language package manager, Opam, has support for in…
Ryan GibbPackage managers à la carte: A Formal Model of Dependency Resolution Ryan Gibb — Jan. 2026Ryan Gibb.Free and Open Source Software Developers’ European Meeting (FOSDEM). Package managers are legion. Every language and operating sy…
Ryan GibbEilean: Self-hosted digital islands Ryan Gibb — Jan. 2026Ryan Gibb.Free and Open Source Software Developers’ European Meeting (FOSDEM). Our digital lives are increasingly fragmented across numerou…

December 2025

Mark ElversRichard MortierAlastair TseDavid AllsoppShane WeiszJon LudlamJon SterlingConservation EvidenceMartin KleppmannPatrick FerrisJane Street
Mark ElversMulti Domain OCaml on Raspberry Pi Pico 2 Microcontroller Mark Elvers — Running OCaml 5 with multicore support on bare-metal Raspberry Pi Pico 2 W (RP2350, ARM Cortex-M33).
Alastair TseCoding Agents in 2025 Alastair Tse — For me, this year is the year of vibe-coding -- or coding agents. I don't really care too much about the precise definition of these things. People I …
Alastair TseGemini Flash vs Flash Lite Alastair Tse — I've been using Gemini 1.5, 2 and 2.5 Flash and Flash Lite variants for Snowline, my Japan ski resort crawling project. One part of the project involv…
Richard MortierSabbatical Diary: Weeks 11---12 / Month 3 Richard Mortier — Another two weeks gone, and suddenly we’re at the end of the Calendar Year.1 Not an idle two weeks but not the most productive either. A lot of pers…
Richard MortierRe-connecting Wi-Fi Richard Mortier — Having gone home to visit my parents for Christmas, I am pleasantly surprised to find that their village has finally acquired fibre broadband. As it…
Jon SterlingWeeknotes 2025-W52 Jon Sterling — MHE60: Types and Topology I had a wonderful time in Birmingham last week celebrating Martín Escardó’s birthday with a beautiful workshop organised…
Conservation EvidenceConserving coastal habitats: a new synthesis of evidence for kelp Conservation Evidence — Anna Berthinussen introduces a new collation of evidence for kelp conservation.
Jon LudlamClaude and Dune Jon Ludlam — Back in March of this year we released , a major new version of the OCaml documentation generator. It had a whole load of , many of which came with ne…
Mark ElversPartridge Puzzle Mark Elvers — Quite often, you install a new package from opam and are keen to jump right in and want a tailored example for your use case. This happened to me duri…
David AllsoppIt’s merged!! David Allsopp — As I was very happy to announce on Discuss on 12 December, OCaml is Relocatable! Today, the final piece of the puzzle was merged, which is the necessa…
Alastair TseRicoh GR App and VPN Alastair Tse — Camera App Connection Issues and VPNs on Android Phones - John Maguire I've been using the Ricoh GRIII for the last month and having a lot of pleasure…
Alastair TseGithub Packages 403 Alastair Tse — Today I learned that Github Packages is not free for private packages. And I learnt it by getting a cryptic npm 403 error when accessing https://npm.p…
Richard MortierBowlees & High Force Richard Mortier — A short walk from Bowlees past Low Force to High Force and back, the two Forces in question being waterfalls. Wet underfoot—there had clearly been a…
Richard MortierBowlees & High Force Richard Mortier — A short walk from Bowlees past Low Force to High Force and back, the two Forces in question being waterfalls. Wet underfoot—there had clearly been a…
Shane Weisz2025 Wrapped: Presenting to the IUCN and Other Highlights Shane Weisz — Reviews 2025 accomplishments including a presentation to the IUCN about using AI to accelerate Red List species assessments and describes side project…
Richard MortierSabbatical Diary: Week 10 Richard Mortier — An odd week that. About 10 reference letters submitted throughout the week, the latest about 30 minutes ago. Remember: a student is for life, not just…
Mark ElversAdvent of Code 2025 Mark Elvers — With the start of Advent comes a new set of Advent of Code problems. My code is available at mtelvers/aoc2025.
Jon SterlingWeeknotes 2025-W50 Jon Sterling — Every time I think the term is about to end, there is some task I must undertake. I’m almost done now, but no sooner than I finish with undergraduat…
Mark ElversCeph Placemant Groups Mark Elvers — Better planning leads to less data movement later!
Jon LudlamAn SVG is all you need Jon Ludlam — SVGs are pretty cool - vector graphics in a simple XML format. They are supported on just about every device and platform, are crisp on every display,…
Richard MortierDisplaying Wi-Fi configuration Richard Mortier — 1At the start of the month, I was away at the final EU EDGELESS project plenary meeting. As this was hosted by an industrial partner rather than a Uni…
Patrick FerrisOCaml Roundup: November 2025 Patrick Ferris — A roundup of some of my OCaml activity this month! Ppxlib Updates I managed to get a substantial amount of ppxlib work completed in the last month. So…
Martin KleppmannPrediction: AI will make formal verification go mainstream Martin Kleppmann — Much has been said about the effects that AI will have on software development, but there is an angle I haven’t seen talked about: I believe that AI…
Richard MortierSabbatical Diary: Weeks 6---9 / Month 2 Richard Mortier — Hmm. So that was a blogging hiatus, not for any particularly good reason – just a little busier than expected with a little less time in front of a …
Mark ElversPrivate repos in OCurrent Mark Elvers — OCurrent has long wanted to access private repositories. You can achieve this by embedding a scoped PAT in the .git-credentials file, typically within…
Jane StreetGetting from tested to battle-tested Jane Street — Testing is an essential part of building reliable software. It’s a form of documentation, a reminder of mistakes of the past, and a boost of confide…
Mark ElversTile Server Mark Elvers — My throw-away comment at the end of my earlier post shows my scepticism that the JSON file approach was really viable.
Shane WeiszYes, AI can pass the Red List Assessor Exam. What's next? Shane Weisz — Describes how Claude Code AI successfully passed the IUCN Red List Assessor Exam with an 86% average score after prompt engineering, and outlines next…
Mark ElversKeeping your branch up-to-date Mark Elvers — My Arm32 branch will quickly go stale and will need to be rebased and tested. Can GitHub Actions do that for me automatically?
David AllsoppIf it ain’t broke, … David Allsopp — Someone was kind enough a few weeks ago to comment on Hacker News that “Opam on Windows is a masterpiece of engineering”. There’s certainly a lo…

November 2025

Mark ElversTESSERA and Zarr Mark Elvers — I’ve been copying the TESSERA data to Cephfs, but what is actually in the files?
Jon SterlingWeeknotes 2025-W48 Jon Sterling — I did not get much done this week, due to a combination of many more meetings than usual, supervisions, assessing Junior Research Fellowship (JRF) app…
Mark ElversOCaml 5.4 native Arm32 branch Mark Elvers — Recently, I have been using my Pi Zero (armv6), which has reminded me that OCaml 5 dropped native 32-bit support, and I wondered what it would take to…
Jon SterlingWeeknotes 2025-W47 Jon Sterling — I know this one is late… End of term has me swamped, but there is light at the end of the tunnel. A few quick updates. HoTT/UF module drawing to a c…
Jane StreetAdvent of FPGA — A Jane Street Challenge Jane Street — Advent of Code has long been a favorite December ritual at Jane Street, with many participating in the month-long puzzle challenge that encourages tho…
Patrick FerrisData Provenance in Shelter Patrick Ferris — A late update that stretches more than a week... @ How? A quick update on a new feature that was added recently, the @ how meta-command. One of the is…
Mark ElversReading the Gas Meter Mark Elvers — My gas supplier has tried and failed to install a smart gas meter, so I’ll give it a go myself.
Andres Zuñiga-Gonzalez2025-11-23 Weekly Notes Andres Zuñiga-Gonzalez — Intro It’s been a while since I last posted so thought I would give an update on everything that’s been going on in the last couple of weeks, incl…
Conservation EvidenceWhy national parks and nature reserves don’t always safeguard ecosystems as expected Conservation Evidence — Miguel Lurgi presents his recent research, which found that protected areas don't always work to conserve the ecological interactions between species.
Shane WeiszCan Claude Code pass the IUCN Red List Assessor Exam? Shane Weisz — Documents an experiment testing whether Claude Code could pass the IUCN Red List Assessor certification exam, achieving an 80% average across five exa…
Mark ElversSolar Position Library Mark Elvers — My Apple Watch has a cool watch face which shows the position of the sun, which feels like a good application for my GPIO library and ePaper display.
Andres Zuñiga-Gonzalez2025-11-16 Tessera Example Andres Zuñiga-Gonzalez — Libraries Code %load_ext autoreload %autoreload 2 import sys sys.path.append('../src') from utils.paths import national_parks_dir, wdpa_dir from gee_h…
Mark ElversOCaml on a Raspberry Pi Mark Elvers — The weather outside is frightful, but the Raspberry Pi is so delightful; I have been cheering myself by connecting up all the various bits of hardware…
Jon SterlingWeeknotes 2025-W46 Jon Sterling — The future of Forester, and gratitude to Tarides Several weeks ago, we made it through the first round of the NLNet NGI Zero Commons Fund application …
Patrick FerrisShelter imports Patrick Ferris — Most of this week was spent fixing bugs in Shelter in an attempt to get it ready to run the LIFE pipeline. To do so, Shelter requires a mechanism by w…
Jon LudlamFoundations of Computer Science Jon Ludlam — I recently completed lecturing the course to our newly arrived first-year computer scientists here at . This is the first time I've lectured this cour…
KC SivaramakrishnanFoundations for hacking on OCaml KC Sivaramakrishnan — How do you acquire the fundamental computer skills to hack on a complex systems project like OCaml? What’s missing and how do you go about bridging …
Patrick FerrisTaking stock & Graft updates Patrick Ferris — I ended up working on a real mix of things last week. I managed to get two large posts uploaded to this site: an ICFP recap and a deeper-dive into the…
Jon SterlingWeeknotes 2025-W45 Jon Sterling — A visit from David Jaz Myers I was pleased to welcome David Jaz Myers from the Topos Institute to Cambridge this past week. It was a fun visit and man…
Richard MortierSabbatical Diary: Week 5 Richard Mortier — Another week gone, a little more done. Finally (albeit too slowly) progressing some industrial funding through the system to go alongside the small gr…
Ryan GibbICFP/SPLASH 2025 Ryan Gibb — I attended the co-located International Conference on Functional Programming (ICFP) and International Conference on Systems, Programming, Languages an…
Richard MortierBack to my Roots Richard Mortier — This is another one of those that’s largely documenting something for myself, but I’m sharing it in case others find it useful. And because self-a…
Patrick FerrisOCaml Roundup: October 2025 Patrick Ferris — Welcome to a monthly roundup of OCaml-related open-source work I have been involved with. If you haven't already, a quick look at my ICFP roundup migh…
Mark ElversCephFS Partition Setup Mark Elvers — If you’re working with full disks, adding an Object Storage Daemon, OSD, to your Ceph cluster couldn’t be simpler. Running one command, ceph orch …
Richard MortierSabbatical Diary: Week 4 / Month 1 Richard Mortier — Well, that was a slightly slower week: it was school half-term so I had the children for three days. I did manage to finally finish1 polishing my Emac…
Mark ElversScaleway Elastic Metal Reconfiguration Mark Elvers — Scaleway offers the EM-L110X-SATA machine, which has 4 x 12TB disks. I’ve noted in a previous post that the configuration isn’t ideal for my purpo…
Jon SterlingWeeknotes 2025-W44 Jon Sterling — Project Pterodactyl and the CAS model of build systems I’m experimenting with Apple’s llbuild2fx framework, which replaces stateful inputs with co…
Richard MortierE(pi)glot-tal start Richard Mortier — Following on from an earlier post about Tree-sitter, Eglot is the Emacs Language Server Protocol (LSP) client. Being also now included in Emacs from v…
Richard MortierSabbatical Diary: Week 3 Richard Mortier — Not much to say this week – largely more of the same. Blogged about tree-sitter and (written, to be published shortlynow published!) eglot, configur…
Sadiq JafferThree Steps for OCaml to Crest the AI Humps Sadiq Jaffer — OCaml represents less than 0.01% of training data for many large language models, creating an existential threat for the language community. This talk…
Mark ElversSlurm with multiple architectures Mark Elvers — If we implement Slurm over a cluster of machines with different processor architectures, what would the job submission look like?
Jon SterlingWeeknotes 2025-W43 Jon Sterling — Project Pterodactyl blogging: goodbye to definitional proof-irrelevance A few weeks ago, I wrote a post entitled Shall we strictify some homotopy prop…
Patrick FerrisICFP 2025 Patrick Ferris — Two weeks ago I was fortunate enough to attend the International Conference on Functional Programming in Singapore. My first time in Asia and my secon…
Michael DalesMarimo notebooks for demos Michael Dales — Recently I had to give a live demonstration of my declarative geospatial for Python, Yirgacheffe, to an audience of other programmers at the PROPL 202…
Shane WeiszA North Star for my PhD: LIFE and STAR Shane Weisz — Outlines why LIFE and STAR biodiversity metrics were chosen as PhD research focus, arguing that improving their accuracy through validating habitat ma…
Richard MortierTree-sitting Emacs Richard Mortier — First, some background that it took me longer than I would’ve hoped to piece together. Tree-sitter is “a parser generator tool and an incremental …
Mark ElversA quick look at CephFS Mark Elvers — There are Ansible playbooks available at ceph/cephadm-ansible to configure CephFS; however, I decided to set it up manually on some test VMs to gain a…
David AllsoppReflections on ICFP 2025 David Allsopp — I spent last week at ICFP 2025. A nice (if exhausting!) week, as ever. Amusingly, the most reflections were actually sparked by Yaron’s talk which w…
Richard MortierSabbatical Diary: Week 2 Richard Mortier — As predicted, this week was some Emacs configuration polishing interspersed with some writing using typst. I quite like typst I think – it seems pre…
Mark ElversCI support for OCaml 5.4 Mark Elvers — Following the release of OCaml 5.4 the CI systems need to be updated to use it.
Jon SterlingWeeknotes 2025-W24 Jon Sterling — This week: a blog post about my thoughts on Apple’s design announcements at WWDC this week; some thoughts on the emergence of “Forester-likes”, …
SK Pedagogy Recommendations Shriram Krishnamurthi
Jon SterlingWeeknotes 2025-W42 Jon Sterling — Welcome, Jeremy Chen! Jeremy is a Part II student at Trinity College, who will be doing a project with me: Query-based incremental elaborator for a de…
Shane WeiszEarly Explorations: LIFE, STAR and Habitat Mapping Shane Weisz — Documents early PhD research exploration at Cambridge focusing on improving habitat maps for LIFE and STAR biodiversity metrics through validation tec…
Conservation EvidenceNews update from Conservation Evidence Conservation Evidence — This blog post is an overview of what the Conservation Evidence team are working on. We’ve listed some of our recent and ongoing activities. Please …
Richard MortierSabbatical Diary: Weeks 0 & 1 Richard Mortier — Well, the sabbatical began. Your protagonist set off with a song in his heart and the freedom to roam. And all that. So what did I do? Well, initially…
Mark ElversDocker base image build rate Mark Elvers — We are increasingly hitting the Docker Hub rate limits when pushing the Docker base images. This issue was previously identified in issue #267. Howeve…
Jon SterlingWeeknotes 2025-W41 Jon Sterling — Project Pterodactyl: fuss-free universes and strictifying propositions I’ve continued my blogging spree on my Pterodactyl worklog, with two new post…
Mark ElversUpdating OCaml CI systems to FreeBSD 14.3 Mark Elvers — The FreeBSD CI worker rosemary needs to be updated to FreeBSD 14.3.
Mark ElversAttempting overlayfs with macFuse Mark Elvers — It would be great if overlayFS or unionFS worked on macOS! Initially, I attempted to use DYLD_INTERPOSE, but I wasn’t able to intercept enough syste…
Gabriel MahlerSummer Week 12: Big Brambles Finale & Index of the Summer’s Work Gabriel Mahler — This week With a slight delay, here’s the final blog post of the summer. The last week was quite eventful. Besides cleaning up some scripts (so that…
Shane WeiszHello World: My Arrival in Cambridge Shane Weisz — Describes initial weeks starting a PhD in Computer Science at Cambridge under Professor Anil Madhavapeddy, detailing meetings with researchers about p…
Jon SterlingWeeknotes 2025-W40 Jon Sterling — An old dog meets a new trick: Jujutsu This week I have been trying out the Jujutsu (jj) version control system. There is a lot to like here, especiall…
Michael DalesActive Travel Hackday writeup Michael Dales — It's been a long time since I went to a hackathon. I remember enjoying the first few I went to (my personal blog shows me going to Rewired State first…
Richard MortierAll Change! Richard Mortier — New (academic) year, new responsibilities. Or more precisely, far fewer responsibilities :) I’m on sabbatical for this academic year1 and, as a resu…
David AllsoppFile descriptors as integers considered harmful David Allsopp — Continuing the previous foray into file descriptors, and trying to remove Obj.magic both from ocaml-uring’s code itself, and from the recommended wa…
Ryan GibbThree steps for OCaml to crest the AI humps Ryan Gibb — Oct. 2025Sadiq Jaffer, Jon Ludlam, Ryan Gibb, Thomas Gazagnaire, and Anil Madhavapeddy.Proceedings of the 2025 OCaml workshop. We discuss how OCaml co…