All

Raymarching with Swift and Metal for Shadertoy-like Graphics

April 2024

Shadertoy is a well known website for creating and sharing shader driven graphics. It works in the browser for a tight feedback loop between…

No Code Creative Coding: A Case Study

January 2024

When we create generative art, or engage in creative coding, we are creating systems that create art. The process is iterative and we likely…

use-svg-maker or creating SVGs with React, A Tutorial

November 2022

SVGs are XML descriptions of vector graphics. React is a highly efficient, supported way to create XML-ish stuff. Indeed while dynamic, it…

SwiftUI for Mini Desktop Apps: A Tutorial

August 2022

A little while ago I wrote about the state of SwiftUI. While I was generally skeptical of the technology as a general purpose/widely used…

On consistency

July 2022

When you talk about software development approaches you often find people advocate consistency, in a unsubstantiated way, the way people…

@FocusState, TextFields, TextEditor in SwiftUI 3.0

November 2021

I've recently been working with SwiftUI on a couple of projects. One major area of improvement in SwiftUI 3.0 (the Autumn 2021 release) is…

SwiftUI in late 2021

November 2021

I've been reviewing the state of declarative UI frameworks such as Flutter and React Native, now we get to the third (and final) one…

Flutter in late 2021

October 2021

It had been some time since I'd used Flutter and I wanted to take another look. I've mostly been working in React and React Native for the…

Generative Animated Videos with Remotion (and Solandra)

October 2021

Getting started Remotion is a React powered library for creating videos. Let's try it out with Solandra, a library for creating 2D graphics…

Flutter, an ideal framework for Algorithmic Art?

October 2021

Flutter is a cross platform framework for Apps. On most of its target platforms it uses a low level renderer called Skia to draw user…

React Native Setup in Late 2021

August 2021

React Native is a leading, cross-platform, declarative UI framework with hot reloading. If you want to make mobile apps, along with Flutter…

An Introduction to React Native Reanimated 2

August 2021

React Native Reanimated 2 is the main third party approach to animation for React Native. In version 1 a animation node graph approach was…

Valtio: A great state management solution for React

August 2021

Valtio is a fantastic and relatively new state management library for React. It is extraordinarily clear, concise and easy to use, yet…

Getting Started with Thermal Printing

June 2020

For a while I'd been interested in trying out retro thermal printing (see GameBoy Printer). You can print low quality printouts on cheap…

Getting Started with React Native in 2020

April 2020

I've been doing React Native for over 4 years. It is amazing how much it has improved, but also how much was there from the start. The React…

A concrete example of why Apple's documentation is terrible

December 2019

Apple's documentations is famously dreadful. In particular it is often missing or incomplete. No overview available gives you some numbers…

React-ish iOS Apps: A Tutorial

April 2019

Update 3/8/2019 Well WWDC and SwiftUI meant this article aged rather badly! Yes Marzipan (now Catalyst) was just a UIKit on the Mac, but…

Starting with Flutter (from React Native)

February 2019

At the end of 2018/start of 2019 I wanted to fill in my knowledge of modern UI approaches. I have worked with native iOS and Android and…

Getting Started with Functional Music Programming

February 2019

One of my 2019 goals is to learn Haskell, to do this I picked up Haskell School of Music which teaches Haskell by showing how it can be used…

Upgrading to Elm 0.19 in early 2019

February 2019

So I finally got round to updating this Elm App (for presentations) to Elm 0.19 (along with cutting out a bunch of features so it was better…

OpenJSCAD

July 2018

What follows is concise documentation for the core of OpenJSCAD (the official docs are a bit confusing as cover both V1 and 2 and include…

Creating a Watch

September 2017

A few months ago I created a watch. Two actually. In a few hours. That is amazing and something which has only just become possible. This…

A few big ideas

December 2016

Notes (August 2021) I wrote this a few years ago in preparation for a very open ended brief for a presentation, a better title than I had…

Elixir versus Javascript

August 2016

Notes (August 2021) I wrote this quite a few years ago. I think it was before I officially and briefly became a 'professional Elixir…

Better British Time

November 2013

Notes (August 2021) I wrote this in 2013, well before Brexit, but perhaps this could be updated for our new political climate. The…