Richard Dallaway Hello! I'm Richard, and I write things down here.

01 Mar 2021

Server-side OpenPose with cloud GPUs

OpenPose software detects bodies in video. It runs best on GPU hardware, including on servers. An easy way to set that up is with Google’s Compute Platform, which is a metered cloud platform that can be configured with GPU hardware. There’s a couple of tricks to know, but it does give significant speed-ups over non-GPU hardware.

04 Jan 2021

Repeatable and resumable simulations in Rust

I’ve been running simulations that rely on random numbers, and I’m chasing two desirable properties. First, if I run the same code with the same arguments, I want the same results (whenever possible). And I want interrupted runs to pick up from where they left off. Repeatable and resumable code. These are my notes on the progress I’ve made, using the Rust programming language.

10 Dec 2020

Resources for learning Rust

The other day I was asked to recommend resources for learning the Rust programming language. Here’s what I came up with.

27 Oct 2020

Emergent engineering

Emergent engineering is how you tackle complex systems. It’s for when the perfectly reasonable standard engineering approach doesn’t work any more. When fault-free and predictable isn’t getting you anywhere.

29 Sep 2020

Software archaeology

“The act and experience of programming is, at its heart, a fundamentally human activity […] When considering programming, therefore, it would be a glaring omission to not involve people who specialize in studying artifacts and the human activity that yields them: archaeologists.”

05 May 2020

Review Seq matching when porting to 2.13

You know the routine for porting from Scala 2.12 to 2.13: you’ll get a bunch of compiler errors and warnings, and you can quickly enough hack your way through them.

There is, though, one runtime issue I’ve bumped into. When pattern matching on Seq from a library, you need to be careful about what kind of a Seq you’ve been handed.

04 May 2020

Rust principles

I’m accumulating notes on the principles in Rust. These are the things I want to keep in easy reach to refresh my understanding.

06 Apr 2020

1R in Rust

1R (“one rule”) is a rule learning algorithm that first appeared in 1993. It’s a baseline algorithm: if you can’t do as well as this, you need to think again. This post describes my implementation in Rust. For me, implementing an algorithm is a fun way to improve my knowledge of a language and ecosystem.

09 Mar 2020


What are the causes of ageing? Is it the accumulation of damage, or over-running healthy development? The latter is addressed on Aging is not programmed: Genetic pseudo-program is a shadow of developmental growth, and these are my notes on that paper.

18 Feb 2020

Ageing hallmarks

I’ve been learning about biological ageing over the last few months for a project. There’s so much to take in just on the basics, let alone the new research coming out. To help myself make sense of it, I’ve decided to write up my notes on various papers, starting with The Hallmarks of Aging.

04 Feb 2020

What are the chances?

I’ve been flummoxed by some basic statistics questions recently. I’m not alone in this, as it’s a common one for students and 17th-century gamblers. I’m taking this chance to note this down for when I make the same mistakes again.

20 Jan 2020

Combining differing error types

Rust, Scala, and many other languages let you use a kind of or to represent errors. In Scala it might be Either<E, T>, and in Rust it’s likely to be Result<T, E>. The E represents an error, and the awkward part of this is chaining together results with different types for E. This post contains my notes on this, for Rust.