Weeknotes: 23rd June 2025

Last week

Brief weeknotes as I'm a bit behind and it's a busy week ahead, apologies!

LIFE

We had a discussion in the LIFE team of the impact of the Area of Habitat edge effects I discussed last week, and after some good discussion we came to a conclusion of how we want to approach it in the first instance. Alas this means I need to now get coding.

Yirgacheffe available via pip

I had to set up a new compute server this week, meaning I had to rebuild my development environment for the various pipelines I run. One of the friction points in this is I write a lot of libraries for myself that I then need to set up, the most common one of which is Yirgacheffe, my declarative geospatial library in which I hide all the complex things I don't want to deal with on a day-to-day basis. I've used this for many years on many projects and so finally decided to stop manually installing it for myself and get it into pypi, which is the most common way of getting Python libraries out there. This involved less pain that I was expecting, and it's now set up that merges on PRs on github should lead to the pip package being updated. It's a silly thing, but feels like a good milestone to have hit.

There are other Python distributions out there, notably conda, so at some point I should probably also get it working on that too, but for now given all my pipelines currently use pip for dependancy management just having it in pypi helps a lot.

PROPL paper

On the topic of Yirgacheffe, Anil suggested I put something in to PROPL on the topic, so I've made a start on that this week. The deadline is July 3rd, but it's also only 5 pages, so hopefully enough time to get something reasonable written. The challenge is seeing it from the outside - I have to confess that as much as Yirgacheffe is useful to me, and it's now reasonably powerful, it all feels a bit obvious from the inside. Anil's been trying to get me to see that there's value in what I've built here, even if it doesn't feel novel in the scientific research sense to me.

OCaml-H3 wrapper into opam

This was motivated in part by my success getting Yirgacheffe into pypi, and in part by the ongoing work on with Shreya Pawaskar on Claudius, the OCaml graphic library I started, which will eventually need to be more accessible, i.e., available via opam, the OCaml standard package library. I thought rather than start with Claudius, I'd try getting my first thing into opam by submitting the OCaml wrapper I maintain for the Uber H3 geospatial library, which is in theory a simpler project.

That turned out to be somewhat wrong, as I needed to deal with the fact that the OCaml wrapper requires the H3 C library to be installed first. Initially I just assumed I'd rely on platform package managers to install it, but it turns out that although some platforms do have it (e.g., homebrew on macOS and Ubuntu), it seems more platforms do not have it as an option in their default package lists, and so I'd have to get opam to build and install it. In theory opam supports this, but getting it to work was a bit more nuanced, and after struggling for a bit I turned to fellow EEG member David for assistance, as I knew he spent a lot of time dealing with packages in opam. He soon had me pointed on the right track, and now I've got my first PR on opam repositories open.

Outreachy/Claudius

On the topic of Claudius, Shreya got a prototype of saving Claudius output to animated GIFs working, which is pretty cool! I'd show an example here, but my self built stack for this website doesn't know how to deal with animated GIFs and I don't have time to fix that right now 🤦

Limited acceptance of the future

I'm generally a luddite when it comes to AI related things, but I have to confess I've been using Claude on a limited basis with some success after both Anil and Laura have been talking about how they use it. I'm not about to start vibe coding, but as a sort of natural language search engine, and a way to use it as a rubber duck, it's shown enough utility that I'll keep using it for now; I think like any tool, working out how and when to use it is key, and my stance of everything being "no" is probably ignoring some of the upsides of it. I just wish it was more easy to defend ethically.

TODO list

As I mentioned in the todos for this week in last week's notes, I wrote down all my various things that need working on or would like to be working on - a useful exercise, as at least I now know why I often feel like I'm jumping between too many tasks: it's because I'm jumping between too many tasks.

This week

  • IUCN workshop - there's a three day IUCN workshop taking place at the DAB this week, with one of the main themes being around their data-processing pipeline. Given I've been working with them on the implementation of both their STAR biodiversity metric and our own LIFE biodiversity metric that uses IUCN data, this should hopefully be a useful workshop for getting ahead of any planned changes they have, and aligning my efforts with their own.
  • PROPL paper - I need to work more on the PROPL paper given the deadline is a week on Thursday!

Tags: yirgacheffe, life, ocaml, opam, claude