Wanaka Landscapes

Lake Wanaka

Lake Wanaka

Matukituki Valley

Matukituki Valley


Abstractions for Logic

Programming languages provide abstractions which allow the expression of logic. This gives us, the Alchemist programmer, the ability to recite a few incantations on our keyboards and imbue the programs we are writing with the apparent ability to make decisions. Without logic computer programs would be constructed to do a single thing, and recursion and loops would act as black holes.

In this blog we add a boolean data type and some common logical control operators.

Input …

Implementing General Computation

In A Simple Computation Engine with F# we created a programming language which computes basic math expressions such as (+ (+ 3 5) (- 10 6 0)). One limitation was that the only computations it could run were predefined by the programming language, specifically + and -. Here we evolve the language adding symbols and functions, supporting the use cases listed below.

Input Output
(define x 100) Symbol x
(+ …

A Simple Computation Engine in F#

I’m in one of those reflective periods where I’m catching up on books I should have read earlier; Thomas Pynchon, Neal Stephenson, and the like. In Software Engineering one of those books is Structure and Interpretation of Computer Programs (SICP). SICP is known for teaching computing from basic principles using the programming language Scheme, (a (type of (lisp))). I began programming using Javascript, PHP, and Java. The first Lisp I encountered was Clojure, and I found the language …


Deployment Frequency in Practice

Deployment Frequency is a software delivery metric popularised in the book Accelerate (2018). It measures the number of times a software component is deployed to production. I work on an Engineering Insights system at a BigTech company. Deployment Frequency is one of the metrics we measure and provide for teams to use and drive improvement. Through my experience in developing and operating the Engineering Insights system I’ve learned a lot about Deployment Frequency. Here I share my …