Repeatable and resumable simulations in Rust

04 Jan 2021

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.

Continue Reading →

Resources for learning Rust

10 Dec 2020

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

Continue Reading →

Emergent engineering

27 Oct 2020

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.

Continue Reading →

Software archaeology

29 Sep 2020

“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.”

Continue Reading →

Review Seq matching when porting to 2.13

05 May 2020

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.

Continue Reading →

Rust principles

04 May 2020

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

Continue Reading →

1R in Rust

06 Apr 2020

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.

Continue Reading →


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.

Continue Reading →

Ageing hallmarks

18 Feb 2020

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.

Continue Reading →

What are the chances?

04 Feb 2020

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.

Continue Reading →

Combining differing error types

20 Jan 2020

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.

Continue Reading →

Tips for using Findster

12 Jan 2020

It’s now been a few years of using the Findster Duo pet tracker, and it’s time to share a couple of tips for making the most of it. They are: permanently attach the Findster to a collar; and start the app early in your walk.

Continue Reading →

Richard Dallaway
Hello. I'm Richard. I live in Brighton, UK. My background is ML and software consulting.