- Nordic-RSE 2025 event blog 31 May 2025
A summary of the talks and goings ons at this year's Nordic-RSE conference.
- Using Go with Wasm and Web Workers 24 Feb 2025
Notes on what I had to do to get Wasm and Web Workers playing together to let me run some Go code in the browser.
- The Partially Dynamic Web 8 Dec 2024
Moving on from Hugo to a custom website service for my own blogs
- Building OCaml on Haiku 27 Oct 2024
Some brief notes on building OCaml on Haiku.
- Self Hosting - 2024 edition 18 Jul 2024
A look at how I've tried to take ownership of my presence on the Internet, with a look at the good, the bad, and the ugly.
A look at learning OCaml via this year's Tiny Code Christmas, and how functional languages turn out to be well suited to old-school demo effects.
A look at what Tiny Code Christmas is, and why it's a good path to some exploratory coding.
- More on Icons 1 Nov 2023
Another look at how icon design has changed for the worse over the last couple of decades, and my own attempt to let my personal computer be a bit more personal again.
- Pandas vs Efficiency 7 Aug 2023
Why pandas and python make me frustrated: looking at how the promise of simpilicity comes with hidden costs that are expensive to deal with, and what we might do about that.
- Why using Slack is bad for GeoTIFF Rasters 3 Aug 2023
Understanding what goes wrong sometimes when I send geospatial data to my colleagues via Slack.
- How to update a Tezos Smart-Contract 25 Jan 2023
Software updates are as innevitable as death and taxes, yet smart-contracts are designed to be immutable. This article takes a look at how we can reconsile these two world views for the Tezos system.
- The ups and downs of consistent icon design 11 Dec 2022
A bit of a rehash of the 'modern icon design is bad' trope, but something that I find very frustrating with modern app design.
- The ups and downs of consistent icon design 11 Dec 2022
A bit of a rehash of the 'modern icon design is bad' trope, but something that I find very frustrating with modern app design.
Reviewing a geospatial library I've been working on view the lens of Richard P. Gabriel's 'The Right Thing' vs 'Worst is better'
- Hypercard teaches autosave 30 Oct 2022
How the Hypercard manual had to work hard to undo ten years of computer habits with autosave.
I've recently been tasked with maintenance of 4C's Tezos smart contracts: taking them from research project proof-of-concept to something ready to deploy. Here's my notes on how to work with Tezos as a software engineer.
- Building search with Server-Side Swift 21 Aug 2022
Some notes from my first experiments in writing a light-weight server-side Swift project, as I build a search-engine for my various websites.
- Sharing code in multi-target swift package 17 Aug 2022
How to make a SPM project that contains multiple executables using shared code, without adding another project.
Taking the batch processing I was doing with geospatial data in the last post and instead doing the same visualisation in real time on the GPU using shaders.
A look at how large geospatial datasets are stored and processed, some tips to quickly see what's in the files, and how to get such data onto an interactive webpage map.
Somethings you really just need to test an idea quickly, and here's how to do that using Docker and Azure.
- 4C starting notes 19 Jan 2022
A look at one of my new projects, putting my engineering skills towards a project tacking the ongoing climate crisis with a team at the University of Cambridge looking at verifiable carbon offsetting.
I've been doing a bunch of reading and playing in the space of minimal computing in my spare time, and here's some thoughts on things I find interesting in the area.
- Bytes not Bytearrays with Django please 27 Apr 2021
A quick look a unexpected nuanced interaction of Django's HTTPResponse object and Python's type system that caught me out.
- Getting started with fuzzing your Django web app 10 Feb 2021
A small tutorial on how to run the Atheris fuzzing tool against your Django apps API to try find untested code paths.
Not all software issues are in the code, here is a tale of how what clothes I was wearing impacted how well my app worked when used in the real world!
A note on how you can use devcontainers to let you directly work on your code base in Visual Studio Code within a full dockerized production-like stack on your local machine.
- Your next Linux distrubtion: Windows 10? 12 Mar 2020
How using Windows Subsystem for Linux has changed how I work, letting me use all the development tools I'm used to from linux, and still run all those other apps I need to run a full business like Adobe Creative Suite.
- Working with Wikibase from Go 26 Nov 2018
A review of working with the MediaWiki Wikibase API, and the Go library I built to make it easier to work with.
- Failure strategies vs Swift optionals 15 Jun 2018
How I disapproved of forced unwrapping optionals in Swift in general, but have made my peace with the existence of the operator in practice.
Some notes on trying to keep the flexibile approach to data-structures within the safety net of a type-strict language like Swift.
A look at what seems to be an unsolvable issue with Windows Performance Monitoring - it stores the events without a timezone reference but using daylight saving aware times.
- A simple UI for managing local docker instances 18 Apr 2018
A simple macOS status bar item that lets you quickly manage your running Docker containers.
- Better testing for golang http handlers 23 Feb 2018
A write up of the testing pattern I use for Go http handlers as I've not seen this technique documented anywhere else.
- Fretboard design generator 1 Dec 2017
I made a small open source tool that lets you generate fretboard designs ready for laser cutting or CNC routing based on MakerJS.
A quick tip on using the direnv project to make it easier to manage multiple Go projects without sharing your GOPATH.
One of the current weaknesses of Go is how third part libraries are managed, in particular how they depend on third party services, which is not ideal for production build systems. This is a write-up of how I've solved this for one particular project at Bromium.
- Some thoughts on Golang 28 Oct 2017
Having used Go to ship a major project for the first time, here's a summary of what I found its strengths and weaknesses to be, and why it was the right tool for this particular job.
A look at how powerful Quartz Composer is for quickly putting together a networked display for our home.
- Oculus Rift experiences 14 Dec 2014
I finally got some hands on experience using the Oculus Rift, and here's my thoughts on what works and what doesn't.
- Moving to Windows Phone 28 Sep 2014
Some notes as I make the switch to a new mobile platform after many years using and developing for the iPhone. A look at some of the good things and frustrating things about Windows Phone 7.
- Why I moved to Hockey App 18 Jun 2012
After hitting some issues with TestFlight, I've moved my developer testing work over to HockerApp.
- Changing roles 15 Jun 2012
I'm excited to be starting my next project, heading up the OS X team over at local startup Bromium.
- Culture Hack East - June 16th-17th 11 Jun 2012
An interesting upcoming event, at which we just happen to be speaking...
- Tickets goes retina 15 May 2012
We've added retina support to our iPad based Lighthouse project issue tracking software. Here's a write up of how we did it.
A look at how to automatically set your version and build numbers in Xcode from the output of git describe.
- PlaceWhisper 2.3 released 8 May 2012
We're pleased to note that PlaceWhisper 2.3 was release to the app store recently. A small update to our favour located content creation tool, but it has a couple of changes in it we thought we should discuss.
- Putting stylus to screen 22 Apr 2012
A look at a new stylus for the iPad that I recently bought to replace the one I made for myself, and a look at the app that I use it with the most, Paper.
- Cocoa OAuth 2.0 libraries 7 Mar 2012
Some notes on finding a usable Cocoa library that lets you build OAuth 2.0 support into your iOS apps.
- Tickets 1.2 in the app store 20 Jan 2012
We released another update to Tickets, our iPad app for managing your projects in the online bug tracking platform Lighthouse, bringing it up to 1.2.
- User experience versus Developer Experience 15 Jan 2012
Some thoughts on a trend that seems to happen far too often: software being optimised for the developer's experience rather than the user's experience
- Tate Trumps Anywhere 5 Jan 2012
A look at another app we worked on last year, Tate Trumps Anywhere, where you can now interact with Tate Modern's game wherevere you are.
- A new year, a new look for PlaceWhisper.com 3 Jan 2012
A look at PlaceWhisper's 2.1 update, with a new look, collections, and embeddable maps for the web.
- Christmas treats from Hide & Seek 23 Dec 2011
A christmas time release of a book that I helped a client turn into an app.
- Tickets 1.1 is out! 15 Nov 2011
Tickets, our Lighthouse based issue tracking app for the iPad, has crept up to version 1.1. There's no new functionality in this release, but it does represent a big leap forward in terms of performance for those of you with large projects.
- PlaceWhisper 2.2 update 14 Nov 2011
Over the weekend PlaceWhisper 2.2 quietly slipped into the app store. It's a sort of mixed bag releases, with a number of small changes to different aspects of PlaceWhisper, so we thought we'd quickly run through them with you.
- PlaceWhisper - more than a mobile app 31 Oct 2011
A look at PlaceWhispers companion website, designed to let you access all your location based text, images, and audio when at your desk.
- Tickets made faster (in many ways) 28 Oct 2011
It's been barely a week since the last update to Tickets, our iPad client for the Lighthouse issue tracking system, was released, and now here's another update already to give it a good performance boost!
- PlaceWhisper 2.1 26 Oct 2011
We're happy to announce the PlaceWhisper 2.1 update is live in the app store, which fixes a bunch of issues for iOS 5, and incorporates a bunch of user interface improvements based on feedback from users, trying to make it easier to explore the world around you.
- Mocking up 19 Oct 2011
A look at some of the different things I use to make mockups.
- Some update updates 18 Oct 2011
Some quick update news for both PlaceWhisper and Tickets.
- The Story Behind Tickets 13 Oct 2011
A look at the story behind our latest app Tickets: where the inspiration came from, and how it was an opportunity for us to both learn some new skills whilst solving a real problem.
- Tickets 11 Oct 2011
We're pleased to announce Tickets, an iPad client for the excellent issue tracking webservice Lighthouse.
In this post I'll give a detailed look at how you can use PlaceWhisper to create a phone based city guide for when people come to visit.
- Welcoming PlaceWhisper 2 6 Oct 2011
After much work over the last year, we're pleased to announce the launch of PlaceWhisper 2! Join us as we take a look through all the exciting new features we've added, including stepping beyond just the phone.
- Taking stock 6 Oct 2011
Reflecting on the passing of Steve Jobs, and trying to understand what that means for my work and where I am in my career.
- Using TypeKit with Cappuccino 19 Aug 2011
Some notes on how to integrate TypeKit fonts with a Cappiccino based web app.
- Watch The Water 18 Aug 2011
I'm excited to announce there will be a bit of Digital Flapjack at the Edinburgh Art Festival this year, in the form of Watch The Water, an ambient audio work contemplating the gothic soul of the streets.
- Come join us for fun and games 26 Jul 2011
If you're in or around London's Southbank on the evening of Thursday 4th of August then come join us as we re-run our locations based game set in historic London at Royal Festival Hall as part of the Hide & Seek Sandpit event!
- Using nib2cib with Xcode 4 19 Jun 2011
How to use Xcode 4 to generate xib files for use with the Cappuccino web framework.
- Unit testing for Google App Engine with Python 14 Jun 2011
I recently inherited a python project that used Google App Engine, and didn't have any unit tests setup, which is something I wanted to fix. Here's how I went about it.
- Quiz Buster 1.2 19 Mar 2011
Despite working full out on our next major thing (more soon!), we slipped out another point update to Quiz Buster, bringing it up to 1.2.
- Quiz Buster 1.1 update out 22 Feb 2011
We were fortunate enough to have some great feedback on Quiz Buster 1.0, and we took as much as we could and put out a quick 1.1 update.
- Quiz Buster! 11 Feb 2011
Today we're pleased to announce that our fun little question answering app, Quiz Buster has been released for the iPhone and iPod Touch.
Instructions on how to take one of the important bits of your developer experience from the old to the new.
- Visualising software development projects 21 Dec 2010
A video showing how work evolves on a shipping iPhone app.
- Drawing on the iPad 15 Dec 2010
How I built my own iPad stylus.
- Adding OAuth support to ASIHttpRequest 10 Nov 2010
After a lot of dog fooding, I finally have released my branch adding OAuth support to the excellent ASIHttpRequest library.