This is an index of all the posts made on this website since I started blogging here in 2019.
Versioning Codable types in Swift apps (without tearing your hair out)
If you work on codebases any larger than a few lines, at some point you will have to deal with data stored in some sort of document. Inevitably, this type will change, and you’ll need to add, remove, and rearrange fields—while still needing to retain compatibility with stored documents in earlier versions of the format.
This is a problem I’ve recently encountered on my side project, Unspool. Even though I’m the only person ever to have used the app, I still found myself iterating on the data structure to make more logical sense—leading to decoding errors and un-openable documents, along with lots of boilerplate that wouldn’t have been sustainable in the long run. (Read...)
Unveiling Unspool
I am pleased to announce the side project I’ve been working on for the past 3 months, and hope to release to the public some time this year. It’s called Unspool, and it exists because I’ve recently got back into film photography and wanted a metadata tagging app that doesn’t make me want to throw things.
I intend to write a developer blog on my experiences building Unspool at least once a month, to give me accountability to: (Read...)
There is no such thing as an apolitical and non-societal discussion
On 3rd March, Jason Fried, co-founder of Basecamp (a company that runs an online project management tool and Hey, a privacy-focused email service) tweeted:
Company culture is not written down, it’s acted out. A company’s culture is a 50-day moving average of how it is, not how it thinks it is, wants to be, or was supposed to be.
Fifty-five short days later, on 26th April, he would publish a long and baffling blog post entitled “Changes at Basecamp. (Read...)
Maybe the real deepfakes were the lies we believed on the way
In 2014, a Tumblr post featuring an implausible anecdote involving a homeless man dancing to Gangnam Style and a miserly rich man being shamed in front of a crowd of applauding strangers was posted to Reddit, where it was roundly mocked. Over the years, Oppa Homeless Style, as it became known, became an infamous part of the ‘Tumblr canon,’ a widely-acknowledged example of the absurdity of a platform at the time famed for hosting naïve teens and ‘social justice warriors’ (a term used by people who think opposing social injustice and oppression is a bad thing, for some reason. (Read...)
Removing cookie-based tracking from this website
I’ve removed gaug.es visitor counting from this website, for the following reasons:
this blog receives nowhere near the number of hits necessary to justify it; although I trust gaug.es to be less invasive than (e.g.) Google Analytics, there’s still no good reason to really be tracking what kind of devices people are using and where they’re coming from—even if it’s anonymous. The double advantage of this is that there are now literally no cookies on this website, and therefore, there is no need for a cookie warning any more. (Read...)
Infrastructure—we should all own it
Here are three disturbing ideas:
There is more infrastructure in the world than you think; The infrastructure you rely on is more vulnerable than you think; The people in charge of managing that infrastructure either don’t realise that it’s infrastructure, or don’t care. What do I mean by ‘infrastructure’? The Oxford English Dictionary defines it as:
infrastructure (noun) The basic physical and organizational structures and facilities (e.g. buildings, roads, power supplies) needed for the operation of a society or enterprise. (Read...)
Is your Pride a performance?
Today is Pride in London. Many tech firms have been festooned in rainbow bunting for the last week, and some app developers have even changed their apps’ icons to suggest solidarity with LGBTQ+ people.
It’s important to remember that Pride is, fundamentally, a protest. This year marks 50 years since the Stonewall Riots, when the queer community in New York City rose up against the police’s violent oppression—an uprising led by drag queens and queer people of colour. (Read...)
Machines, Code, People
I’ve written an article for a book! Machines, Code, People is a compilation of articles written by people at Zuhlke, and I’ve contributed a short article: “If you like it then you shouldn’t put some code in it.” It discusses the tendency for us to think we can solve everything with code.
You can read the whole book online, or you can buy a dead-tree version of Machines, Code, People at Amazon Germany. (Read...)
CamelCase cursor movement in Xcode
I mostly write Swift in Xcode these days. I can’t say I miss Java. I do, however, miss IntelliJ IDEA, and specifically, the little CamelHumps option:
This changes the behaviour when using the arrow keys to navigate between words (⌥+→, ⌥+← on MacOS) so that it respects CamelCase—i.e. it treats the word CamelCase as two words, rather than one. This certainly made it easier for me when it came to renaming variables with long names: (Read...)
When might makes right, sharing ain’t caring
A recurring theme in the two conferences I’ve attended in the last fortnight (Agile Manchester and BeyondTech) has been psychological safety, people’s perception of being in a safe place to take risks: to bring up new ideas, to raise concerns, to admit your own mistakes. Amy Edmondson found that it was the most important feature of effective teams, findings corroborated by Google’s Project Aristotle.
A key point of Gitte Klitgaard’s excellent talk Psychological safety: overprotection or not? (Read...)