Argument in a high-trust environment

I tend to argue things in a particular way because I’m in a high-trust environment.

Crates (existentials in F#)

An introduction to the crate pattern for representing existential quantification in F#.

Metatesting your property-based tests

A rather little-known but very easy and high-reward way to sanity-check your property-based tests.

In praise of `--dry-run`

First-class support for a –dry-run mode makes a tool more maintainable, more testable, and more user-friendly.

Continuation-passing style

Motivating the technique of continuation-passing style, by looking at recursive functions.

Rewriting the Technical Interview, in Mathematica

An exploration into reaching into the internals of Mathematica to natively evaluate C code.

Software engineer syllabus

An incomplete but growing list of things I would make mandatory reading if I were building a software engineering syllabus.

Cyclic dependencies (a note from Hacker News)

A quick note from Hacker News about how to model in F# something that might look like cyclic dependencies.

An incomplete life evaluation checklist

A checklist I have used during my regular six-monthly life review.

Find the Bug, C# edition

A cute little exercise in bug-spotting.

A bug in Git

A bug I found and reported in Git.

Christmas quiz

A round of questions I wrote for a Christmas quiz.

Christmas dinner notes

My notes on the production of a Christmas dinner.

Anki as Learning Superpower

Some techniques to help you get more out of Anki.

General relativity (a note from Hacker News)

A quick note from Hacker News about a neat fact from general relativity.

Nulls and options (a note from Hacker News)

A quick note from Hacker News about why we want optional types but why ’null’ is unintuitive.

The uncountability of the reals (a note from Hacker News)

A quick note from Hacker News about a beautiful proof of the uncountability of the reals.

In favour of recursive functions, not imperative constructs, to make loops

How to write loops immutably and safely.

Static config (a note from Hacker News)

A quick note from Hacker News about my preference for static config rather than dynamic.

Defunctionalisation

An underappreciated tool for writing good software.