Weeknotes: 15th September 2025

Last week

LIFE

Last week another LIFE paper was published in Nature Food, this time looking into using LIFE to assess the impact of food consumption in different counties on extinction rates in the places that food is sourced. I have to confess, I had little to do with this one beyond leading the development the original LIFE metric code itself, the Food paper all being driven by Tom Ball, but it's great to see the original LIFE concept being applied to domains rather than just being a metric for metric's sake.

As mentioned the previous week, for the aforementioned paper Tom had developed enhanced habitat maps that combined the Jung habitat map used for the original LIFE work with other agricultural datasets. Although I had that working back then, it took me another day or so to get it to a robust enough state it'd run through the pipeline without hand-holding. That is now all merged. My code isn't an exact duplicate of Tom's original code, which is available if you want to reproduce the work from the Nature Food paper. My implementation is an enhanced one based on discussions between Tom, Ali, Andrew and myself about how we might make it more nuanced.

However, whilst useful in the Food context, that new map is not ideal as it exhibits artefacts due to the low resolution of the original agriculture data (which is at 10km rather than the original Jung map which is at 100m). Whilst we've tried to do the best we can with that, there's no getting away from aliasing effects due to the resolution mismatch. What we need to do now is work out how significant those are in the LIFE context, as we know that the original map significantly under-represent agriculture habitats: which is worse, the under-representation or the aliasing due to course grain data?

The Festival of Commoning

I went to a two day conference called The Festival of Commoning, which covered discussion about the commons, that is, things shared and managed by a given community rather than by a government or corporation. There were two days of talks and discussion sessions, mostly focussed on either land or finance topics. For example:

Ken Moon talked about how a village in Wales, Tir Pontypridd set up a community based scheme to own local land for the community, and how that's been applied to other places.

Pam Warhurst talked about Incredible Edible, talking about how to get unused council land into the hands of the local community to grow food.

Tom Woodroof talked about Local Loop Merseyside, who are setting up a clearing club for local businesses, allowing members to cancel debts within the club where people have reciprocal debt (either directly or in a loop).

Marcus Saul talked about Island Power who are setting up local energy cooperatives where both the producers and consumers are members to try and encourage a more sustainable model for infrastructure building for small islands, avoiding lowest bidders installing cheap kit that then breaks a few years down the line or adds other costs to the community.

Whilst on one hand all this sounds unrelated to what I normally do for my work and write about here, I think there is a connection to be drawn here, as whilst I have no active focus on physical or financial commons, I do spend time working on or thinking about the intellectual commons, and there are a lot of overlaps in concerns and possible solutions. Specifically I can think of two related examples:

Firstly, the scientific commons: the idea that the output of science should be accessible by all is something I strongly believe in. I remember in my first (short) stint in academia twenty years ago sitting in the pub with Jon Crowcroft and others talking about the challenges to open science and how scientific publishers are making money by hiding our output behind a paywall, and a few years later being excited when Ian Mulvany joined eLife that were trying to be an open scientific publisher around a similar time; but upon my return to academia a few years ago it turns out next to nothing has changed. I have access to almost all scientific output because I work at a University and I don't see all the money that the institution pays to the journal publishers to ensure I have access to science output, beyond having to remember to log onto the VPN every time I try to download a paper. But that privilege is not extended to the majority of people, which to me is a form of commons enclosure.

The second example that springs to mind is the Internet, which again I feel has been successfully enclosed by big corporations over the last decade. I feel a strong sense of guilt for being part of the generation that rushed to build the open web, but never stopped to think once about how all that effort (value) could be captured/enclosed. We failed not just at a social level, but at a protocol level, it's not enough to make things open, you also need to have ways to stop them then being enclosed. John Perry Barlow's A Declaration of Independence of Cyberspace in 1996 seems perhaps woefully naive nearly thirty years later, and perhaps pointed in the wrong direction (it wasn't the governments that came for us in the end, except perhaps by a lack of regulatory oversight). I was pleased to see in several talks at the Festival of Commoning that resistance to co-option was a requirement on things being proposed.

Anyway, I'll avoid going to deep into an ill-considered rant here, but it has cemented in my mind that I need to continue on a vein of reading I've been doing around early Internet optimism and where we are now, that I'll try to write up at some point. I think this has given me some possible framing for that.

Claudius

On a lighter note, I used some time over the last few days to make some logging improvements to my retro-style graphics library for OCaml, Claudius. Before if there was an event in Claudius that needed to message the user, that event was logged to the console of the terminal from which the OCaml program was run, not the graphical output window, and I've wanted for a long time to fix that. For instance, if you use the built in screen shot facility you now get told that it's been successful and where to find the result immediately, not hidden in some terminal somewhere:

To make this more interesting, the messages are actually rendered not over the Claudius output in the window, but using Claudius itself. This should mean that although today Claudius is based on SDL, if one day it is ported to a browser version then this will still work. The main challenge with doing it this way is that it means the logging code has to use the colour palette defined by the user. Claudius itself doesn't have a "native palette", rather the user generates one at the start of their program, and anything Claudius does system wise has to play along with this.

This took me down a fun rabbit hole of learning about different colour spaces, eventually using the CEILUV colour space, where the channels can be compared directly for perceptual distance, unlike RGB channels that Claudius uses natively. So now Claudius will take the user specified palette, covert it to CEILUV and then find the two most visually distance colours, and plot the log messages and stats messages using one for the background of the text and one for the foreground.

The results are not always guaranteed to be tasteful, but they are in most cases going to be readable. Not, as they say, rocket science, but a fun detour in my attempt to add logging features.

This week

I need to get back to validation work, but LIFE computation has been keeping me away from that. Hopefully there will be a respite from that as the papers in the works go from needing data now back to other paper lifecycle stages.

Look at why my attempt to make a species richness map by a set of polygon data seems to never complete - I assume some of the polygons are very very detailed, but that's just an assumption right now, and I need to actually get some results to people yesterday on this one.

There's an active travel hackday happening at DoES Liverpool this coming weekend, and I hope to use it as an excuse to do a little playing with 3D-printed city maps.