Weeknotes: 13th January 2025

Last week

Planning

I did do a bit of planning work last week, as I had hoped. I think the main thing I got out of that is that the first quarter will be working on more practical matters around Area of Habitat map generation, something I've become an accidental expert in, and then trying to turn back to doing more CS research about tooling to support vernacular developers with data-science after that.

Weeknotes/webplats

At the tail end of last year I moved from using the static-site generator Hugo to a semi-dynamic site hosting thing called Webplats which I wrote to solve the fact that Hugo doesn't scale well for larger sites that have low traffic like my personal website. I wrote some notes on that here. The original implementation for that I wrote for my personal website, but for most of December I'd been slowly trying to tidy up the code so pull out the core bits that weren't specific to my personal website so I could use it for other things (I maintain three websites that I update with any regularity).

I was a bit brutal on this, and did a hatchet job so that now I have the core generic code in Webplats as a library, and I have two of my three websites ported over to use it now, including this one. This was a blocker on me writing weeknotes for reasons that will hopefully become apparent :)

Working in the open

I watched this talk by Lu Wilson on working in the open, which I felt is a good introduction to the practice:

In the video Lu talks about the fear of being open, how they made it part of their regular practice and how initially very few people cared, and then about how it helped open up new opportunities for them.

It's something I've been trying to practice more since I stopped working for a tech startup, but it's definitely hard to do. I used to just keep projects private until I was "happy with them" and then open them up, but as Lu eludes to in their talk, that's a somewhat sliding goal. I remember realising this myself a few years ago when talking to Adrian McEwan about something I was working on and I said I had still yet to open the code for that, and he was surprised as he'd assumed it'd already be open, as that's how he worked and had assumed I was doing the same given that I was that sort of person I think. And I realised I really should try flip that bit in my head and be more open in my tech stuff, and so now I'm open by default, even if I'm not 100% happy with things.

Things like this move to a new website system put this into practice: I've broken a bunch of things in moving to the new setup, but that's okay because I'll improve it over time, and for now it's good enough to help me communicate ideas, pictures, whatever with the world. The important bit for me is getting over the activation hump and have things in a way to improve upon as time allows.

Working in academia as I do, it's hard to be fully open, as there's a lot of pressure to publish and fears of publication sniping etc., and often I'm contributing to projects where I'm not the lead so can't make that call. Something to keep in mind with my weeknotes, and something Anil and I want to play with how can we still write those bits up and say have them be accessed post publication or by our collaborators. But where I can now I do publish both my work code and personal code open as I go, and thankfully many publications do require code to be open at the time a paper goes out, so some of my code eventually becomes open that way.

Speaking of which...

LIFE

The LIFE paper is now published! This is a large ecology paper that I was part of the team on, and I need to write up my contribution now the paper is live (as is the code and the data). It's published in the Philosophical Transactions of the Royal Society B (The B means life sciences, A is for physics/maths/engineering), which makes me feel that little bit closer to Enoch Root.

LIFE adjunct

LIFE doesn't end with that paper publication, there is more work to be done! One of the promises of the original LIFE paper is that although we calculated the impact on extinction risks due to land-usage changes at a global scale for a wide range of species, you can drill down to look at selected areas or for subset of species to get LIFE values that are more meaningful for whatever project you happen to be working on.

To this end I've been slowly working on some tools that let me take a point or polygon area and get these selective views. At some point these need to be tidied up and added to the main code repo, for but now I'm still doing them ad-hoc for people when requested as I work out what are the most common features people want.

Open Hardware Summit reviews

I did my reviews for the upcoming Open Hardware Summit, which is in Edinburgh this year. I was impressed by the talks I reviewed in general, so looking forward to seeing the event in person for the first time since 2017!

Oxcaml

I mentioned last week that I'd been reading up on Oxcaml, a version of OCaml by Jane Street that has ways to tell the memory system more information about the lifetime of allocated structures to help with performance. I've done a bit of playing around with it in practice, and not managed to convince myself yet that anything I'm annotating isn't doing better than before. But time has been limited, so more to do there.

This week

Talks

I have a talk coming up on Wednesday for the Coventry branch of the BCS, which will be a slightly longer version of the talk I gave at OggCamp last year. I'm also giving a talk at Geomob London on Jan 30th, which will be a look at the data rather than the process for one of the ecology projects I've worked on.

Both of these I need to actuall prepare for!

LIFE adjunct++

I need to do some more data prep for Alison Eyres who want's another slice through the LIFE data.

I should also write up the dev side of LIFE for a blog post.

STAR

I've been working alongside another group to implement the STAR metric, another biodiversity threat-impact metric that, like LIFE, is also based on AoH maps. Given we have a reasonably refined/performant AoH workflow for LIFE, the idea is that implementing STAR should be half done already.

The challenge of late has been looking at the species filtering for what species go into the LIFE and STAR pipelines. For STAR I've been struggling to reproduce the same set of maps as has been used by the IUCN group, mostly because as a computer scientist I keep missing subtilties in the selection process as I try to implement it, and because STAR focusses on a different aspect of conservation compared to the LIFE metric I'm more familiar with, a bunch of assumptions I'd made haven't been held true. Thankfully Chess Ridley at Newcastle University, who has implemented all this before has been helping me track down my mistakes. As of December I was close, but there was still an additional 150 species I'm pulling in. This week I want to try see if I can track down those last discrepancies in my filtering.

Weeknotes

Actually get these weeknotes onto my website!

Tags: weeknotes, webplats, life