Python in the browser

Much easier than you think

Voice-to-text: thoughts on How Asia Works

Turns out speaking coherently into a voice-to-text engine is hard!

Potential solutions to wrist issues (for programmers)

Sharing for posterity

Home server setup

Bits and pieces cobbled together setting up a Raspberry Pi home server

Wordle starter words

Quick before we all get bored of it.

Cardinal directions

Ever wondered what the south-by-east-est part of your country is?

Betting on batteries

I bet (stupidly?) that coal will be cheaper than batteries in 2028

Scaling out with Prefect

How to set up a production workflow on Prefect

Thoughts on renewable energy

TLDR: It’s great, but developing countries need more

Alta Ruta Pirenaica, number 3.5

Only one more push before the Med

Context matters

Gore-Tex as a metaphor for monads

The new web mapping stack

Long live Mapbox tiles

SEO is eating my breakfast

aka, Oatly is probably fine

Oh, the places your pee will go

Graphing the world's water basins with Neo4j

Optimising Part II: Making SQL fast

Turns out a billion insert statements isn't the best way.

Optimising Part I: Sampling rasters

If you ain't first yer last!

The High Pyrenees!

A recap of some of my more memorable excursions and hikes in the mountains.

Moving to Oxford!

After lots of messing around and figuring out, we're one step from moving to Oxford!

Anti-Racist Resource Guide (not compiled by me obviously)

Guidance, steps, articles, books, videos etc to help be a better ally.

Harry Potter and the Curse of the Grep

Adverbs, adverbs, every where, nor any use for them. (aka Rowling's editor needed regular expressions)

I made millennial pink wireless speakers

The software side was disappointingly easy; the hardware unsurprisingly messy. They sound better than any smart speaker, and don't spy on me!

Stop pretending technology is value neutral

It's time to incorporate real-world outcomes in your loss function.

Gridfinder work published in Nature SciData!

Our hard work mapping the global power grid finally got published!

[Guest post] A Tale of Two Hikes: Trekking in the Eastern Sierra Nevada

Michael Kloos wrote about our time in California and got it published in the MCSA annual journal. Republished here with his kind permission.

Making a Raspberry Pi Wake-Up Light

Winter is coming, and with it, short days. I decided to make a bright, pleasing sunrise wake-up light to help us get up in the morning.

Recent things indoors and outdoors

Random updates as an excuse to publish a new post here. Some stuff from work, a pretty map, and outdoor trips I need to write about!

New sections for photos and books

I added two new sections to this site, one for photos and the other for books. And some couscous for good measure. Have a look!

A new approach to data and mapping

Data is a key enabler in boosting (among other things) increased access to modern energy sources. We took a (slightly) more human-centric approach to residential data and mapping in Tanzania.

Fun with recursion and scoping

Creating a smart, tree-aware algorithm for optimising electrical networks led to an interesting exploration of recursion and variable scoping.

A new open source electrification model: openelec

In my work in electricity access and related issues, an issue that often comes up, and often frustrates me, is the lack of good open source tools. So building on some previous efforts, I've started...

Using NASA night time lights to guess where the grid is

A lot of the work I do relates to finding the cost-optimal of bringing electricity to more people and businesses. Implicit in this is the assumption that we know where the people are who already ha...

Places to go in Barcelona

A basic web map featuring cool places and things discovered in the last few months in Barcelona.

Leaflet maps with data from Google Sheets

I love working with Python, but as soon as you want to put something online, JavaScript's ability to process in the browser is a clear winner. In this post I'm going to go through making a web map ...

Modelling the optimum way to achieve universal electrification

Building on the algorithms I developed for mini-grids, I decided to move up a level of abstraction and look at the country- rather than village-level. What follows is the outline of a model that us...

A semi-scientific look at acclimatization

I've climbed about seven mountains above 4,000 metres. After my latest trip to Kyrgyzstan, where I took a very careful approach to acclimatization, I decided to have a look at my previous trips to ...

A hackathon with iRise in Mogadishu

Together with a colleague at the World Bank, I ran a small project aimed at supporting the Mogadishu tech community. We worked with Awil Osman at iRise Hub to put together MogadishuWatt, focused on...

A workflow for Python mapping with automatic updating

A friend needed a map of the US displayed with points at specific locations with attached information, and overviews for certain states with summaries. And for this to be done (and updated) as easi...

A Flask app for mini-grid planning with a cost-optimised spanning tree

We've mapped over 4 million buildings in Tanzania. This post explores the possibilities of this data for off-grid planning using a simple Flask web app.

Visualizing book club cliques (and replacing them with AI)

My book club is quite good about recording what we read each month, and noting what score each of us give each book. Let's see if it would be possible to do away with book club meetings altogether ...

Open data and energy access in Tanzania

Based on work in Tanzania with the government, several private developers and other stakeholders, two colleagues and I put together a report on the benefits of open data in off-grid access.

Trip Report: The Bugaboos

A month-ish with great friends in some of the most beautiful mountains in the world, with one goal: Bugaboo Spire.

Modelling hydrological networks at massive scale

Ironically, a large part of my work at KTH's Division of Energy Systems Analysis was modelling complex hydrological systems. I set out to create a model that would conduct massive scale hydrologica...

Primero, somos tontos (firstly, we're fools)

We knew this already, but our three weeks in Mexico drove the message home on an almost daily basis. This is the story of three South African amigos fumbling their way up a few volcanoes and some j...

'Lighting the World' - A paper I worked on

This model is used to determine the best way to achieve universal electrification, by suggesting for each location in a country whether to extend the electrical grid, use a mini-grid system, or rat...

Rudderless in the Richtersveld

At the end of June I joined my brothers for a jaunt in the Richtersveld Transfrontier Park. It’s a harsh and barren landscape.

Summer of climbing in Europe

This year I was lucky enough to join two UIAA youth meets. Youth rock climbing in Catalonia, organised by the FEEC, and the Kazbek mountaineering expedition, organised by the Mountaineering & Climb...

Fun with population dynamics

Some time, several years ago when I still very excited about Java, and read a lot of books on evolution, I had the fun idea to combine the two. I created a simple program to model one of the more i...

A music app in Java, that still works eight years later!

My high school IT class (so, 2010) culminated in a programming project – we were free to create whatever we wanted (in Java), so long as we demonstrated what we'd learned in the class.