Blog

Most of my blog posts dating back to 2002. Some written here, some written elsewhere and aggregated here.
Cross-Border Data Processing With Privacy Compliance Through Expanso

Cross-Border Data Processing With Privacy Compliance Through Expanso

22/05/2025
Many organizations work with clients and infrastructure around the world and face significant challenges ensuring they follow privacy regulations as their application data flows across borders. This post looks at how you can use Bacalhau to handle distributed cross-border processing and anonymize data with Microsoft Presidio to help meet some of these requirements.
Turning AI Into an API Documentation Assistant

Turning AI Into an API Documentation Assistant

22/05/2025
API documentation is generally predictable, follows common patterns, and is one of the least interesting tasks in a documentation project. It's also a task with a degree of pre-existing automatic generation tools and practices. It sounds like a perfect use case for AI-assistive tools! In this post, I look at general and specialized tools for generating API documentation from code and text-based prompts. I also cover potential problems and pitfalls in generated docs and how to test the generated output to ensure its accuracy.
Getting Started with Machine Learning on Bacalhau

Getting Started with Machine Learning on Bacalhau

08/05/2025
Machine Learning requires vast amounts of resources, and distributing these resources across multiple devices and regions helps with cost, speed, and data sovereignty. Bacalhau is an open-source distributed orchestration framework designed to bring compute resources to the data where and when you want, drastically reducing latency and resource overhead. Instead of moving large datasets around networks, Bacalhau makes it easy to execute jobs close to the data’s location, reducing latency and resource overhead.
Cloud orchestration cost optimization

Cloud orchestration cost optimization

25/04/2025
The move to the cloud promised to save users money and give them insights into their usage and costs. However, the opposite happened. A 2025 report from AAG stated that around 82% of respondents found cloud spending challenging. A cloudzero report from 2024 states that more than 20% of respondents had no clear idea of their cloud costs, with reports for large users sometimes consisting of thousands of rows of hard-to-read usage data.
6 new macOS and iOS tools for April 2025

6 new macOS and iOS tools for April 2025

16/04/2025
Welcome to a new newsletter/post/radar/term-yet-to-be-defined from me that I have been planning for ages. I intend it to be something of a round up of tools and services i’ve been trying recently, plus also industry analysis and trends. To begin with it’s just the tools and service round up as the analysis part requires more thought that I haven’t had time for yet.
Bacalhau v1.7.0 - Day 5: Distributed Data Warehouse with Bacalhau and DuckDB

Bacalhau v1.7.0 - Day 5: Distributed Data Warehouse with Bacalhau and DuckDB

28/03/2025
With many applications that rely on data warehouses, you need to keep data sources in different locations. This could be due to privacy or regulatory reasons or because you want to keep processing close to the source. However, there are still times when you want to perform analysis on and across these data sources from one location but not move the data. This post uses Bacalhau to orchestrate the distributed processing and DuckDB to provide the SQL storage and querying capacity for some mock sales data based in the EU and the US.
European cloud hosts are offering an escape from AWS, Azure, and GCP

European cloud hosts are offering an escape from AWS, Azure, and GCP

13/03/2025
When the modern-day internet began emerging in the early 2000s, finding hosting services and resources to run the new wave of dynamic web applications was hard. You needed a database to store application data. These were slow, expensive, and unreliable, regularly bringing applications to a grinding halt when a single instance failed. You needed a server to run interpreted languages like PHP, Python, or Ruby. These were equally expensive, often needed configuration, had security issues, and frequently ran out of memory or CPU resources, again bringing applications to a grinding halt.
Dagger and Bazel

Dagger and Bazel

24/02/2025
For those of you in the Bazel ecosystem, when you hear "Dagger", you probably think of the dependency injection framework for Java, Kotlin, and Android. And for good reason. Dependencies are frequently part of a build process. But there's another Dagger in the wild, a tool and platform for ephemerally building and testing multi-language projects. Sound familiar? In this post, I look at what (the new) Dagger is, how it works, and how it compares to Bazel.
Using Orka Desktop to run and create OCI-compliant VMs on macOS

Using Orka Desktop to run and create OCI-compliant VMs on macOS

30/12/2024
Changes in recent versions of macOS have made running macOS and Linux virtual machines far easier and more performant. Primarily used for testing, a plethora of new applications that take advantage of these features emerged, so when Mac Stadium released a free desktop version of their long-running Okra range of virtualisation tools, one feature in particular stood out to me as something different and potentially useful.
7 alternative text editors and IDEs for macOS

7 alternative text editors and IDEs for macOS

15/11/2024
I've been a mostly happy VSCode user for a few years now. So much so that I even maintain a couple of extensions for it. Before VSCode, I loved Atom. And before that… I can't remember anymore. But every now and then, it's good to look into alternatives and see how they compare, what options you haven't considered they offer, and if they bring anything new to your productivity.
At 30 years old, is Ruby in a mid-life crisis or a renaissance?

At 30 years old, is Ruby in a mid-life crisis or a renaissance?

11/11/2024
Ruby’s creator, Yukihiro Matsumoto (Matz), released the first public version of the programming language in December 1995, making Ruby just shy of its 30th birthday. It spread across Japanese-language Usenet newsgroups, a popular way of exchanging conversation and media before the World Wide Web, and then reached broader communities throughout the late 1990s.
JetBrains' Writerside - A Tech Writing IDE

JetBrains' Writerside - A Tech Writing IDE

25/07/2024
JetBrains is known for its variety of developer-focused IDEs, all based around its IntelliJ core. In recent years, they developed their own writer-focussed plugin, Grazie, for handling grammar and style guidance, Writerside for a wide variety of tech writing tasks, and more recently, an AI assistant for writers. The company has also helped with community-maintained plugins such as those for markdown and asciidoc. But then, a year or so ago, JetBrains announced that Writerside would become a fully-fledged tech writing IDE. I've been using it on and off for some time, and in this post, I take a look at some of its features, recent updates, and related plugins.
Tracking the words you write with WordCounter

Tracking the words you write with WordCounter

19/02/2024
How many words do you write every day? Think about it. Every time you send an email, post in Slack, or comment on an Instagram post. Oh, you thought I would mention those wondrous words you pour into your latest novel, blog post, marketing copy, or script?
9 transcription tools for Podcasters and Video Creators

9 transcription tools for Podcasters and Video Creators

17/01/2024
I create a lot of content with audio. Interviews that become final podcasts, final podcasts, videos, and more. In almost all cases, a transcript of that audio is useful. Often, I use it to create a blog post based on that audio, and I am also in the process of creating interactive transcripts for my backlog of podcasts. And that aside, accompanying transcriptions of shows are good for SEO and accessibility.
Loss and absence in death

Loss and absence in death

06/01/2024
We had to put our 17-year-old cat to sleep last week. First, why does English have such terrible words for this action? “Putting down”, “putting to sleep”. They are both terrible ways to describe such an action, but I’m not sure I have any better ideas…
Making Markdown Interactive with Runme

Making Markdown Interactive with Runme

22/12/2023
Markdown may be popular for its simplicity and “plainness”, but it’s often full of information. Whether for internal or external consumption, that information often contains code snippets for running certain commands or code examples. Wouldn’t it be great if you could run that code directly as you read from within the markdown?
Bring the power of Apple Shortcuts to Obsidian

Bring the power of Apple Shortcuts to Obsidian

13/12/2023
I’ve mentioned before that I have been using Obsidian more and more, and from a knowledge management perspective, it’s fantastic, with a plethora of plugins that extend its functionality to connect to many external services. But as a cross-platform Electron application, integration with the host operating system is one of the places it fails. As the underlying data store is a folder of files, some integration is possible there, but Obsidian has minimal awareness of changes that happen.
A newcomer's quest: Scoring apps for drum notation on a budget

A newcomer's quest: Scoring apps for drum notation on a budget

08/12/2023
I have a past life in music. In the late 1990s, I produced one of the first online fanzines and wrote for several street press magazines in London and Melbourne. In the middle of that, I also played in bands in the UK and Australia, playing guitar and, latterly, drums. And then I stopped. My musical creative spark had run out. Fast forward to about 2021, and it returned, primarily due to relearning the instruments I had always played by “feeling” in the past. Actively learning instruments and production techniques familiar to me properly opened my musical mind again, and I am slowly producing music I always wanted to make in the past before joining rock bands.
Configure and switch macOS displays with Displayplacer

Configure and switch macOS displays with Displayplacer

05/10/2023
I am extremely lucky to have a display problem. I have a small home office and a studio setup. At home, I sometimes have my laptop under my screen and sometimes to the left. In the studio, I have two external screens, one of which I switch to 1080p when recording videos. So that’s four potential screen configurations. I have always found screen configuration on macOS relatively smart and reliable. It tends to remember individual screens and automatically switch to the configuration you last used with that screen. But if you want to manually change layouts or resolutions, what do you do? You can keep jumping into system settings to make changes, but that gets tedious quickly. I wondered if there was a better way.
Is the Future of Documentation Dynamic?

Is the Future of Documentation Dynamic?

19/09/2023
What do American Online, the Apple Newton, DVDs, Tamagochis, MP3, PDF, and Sony Discmans all share in common? They were all products born in (and some dying in) the 1990s. An era I remember vaguely well as I spent most of my mid to late teenage years in it. And now I see the fashions and band T-shirts from that era back on the streets and…
My highlights of IFA and Startup Night Berlin 2023

My highlights of IFA and Startup Night Berlin 2023

09/09/2023
It’s been a few years since I attended Berlin’s Internationale Funkausstellung, better known as IFA. And after several slow years for conferences and trade fairs, capped off with a slowdown in tech and tech-adjacent spending, I was interested to know what the show floor would feel like.