A system understood

I was a rather odd child, interested in logic long before I knew what it was.

At around seven or eight years old, I played Widget Workshop, released in 1995. It was a virtual workshop in which you could connect parts to make little inventions: switches, number generators, logic operators and displays, each doing something that another part could use. There were puzzles to solve, but also room to build your own contraptions and see what happened. (About the game)

A collection of parts could become something with behaviour. Change a connection, and the result could change with it. There was a system there to understand, and a way to experiment with that understanding.

Looking back, that feels like an early version of something that would become central to my life. Before I was writing code, I was already playing with logic.

A language I could use

I got into programming at around 12 or 13 years old, and it became a vice.

Learning, building, destroying, rebuilding. There was always something else to understand, something else to try, some small change that might make the whole thing behave differently. I could take an idea apart and put it back together in a form that actually did something.

Code became a way in which I could express myself fully. It remains my main way of interacting with the world.

That might sound strange for something so often associated with withdrawing behind a screen. But a screen can also be where something inside me becomes available to someone else. An idea becomes an interaction. A collection of interests becomes somewhere to explore. A feeling becomes a choice of colour, movement or space.

This website is one of those things. You are reading the words, but code helped me make the place where they live.

Light attracts bugs

The imagery had one obvious requirement: a dark theme, since light attracts bugs.

The rest is a workspace. A monitor sits on a desk with a drawing tablet and stylus in front of it. To the left are a pot plant and a mug filled to the brim with hot chocolate. Steam curls up from it, catching the light from the monitor. On the screen, small panels connect through branching lines. There are places to look closely, follow a path and work out what happens next.

But the workspace does not end at the edge of the monitor. Lines extend beyond it, curling through the darkness towards trees and a distant landscape. The thing being worked on seems to have escaped the window that was supposed to contain it.

I like that about the image. Code belongs on the screen, but what I make with it reaches into the rest of my life. The workspace opens onto somewhere larger than the desk.

The drawing tablet leaves room for another way of thinking. Even in an image about programming, a thought can begin as a sketch before it becomes an instruction.

Making something happen

There is a particular pleasure in writing instructions and seeing them take effect.

At first, an idea can be vague. I want this to move. I want these things to belong together. I want an agent to be able to find their way from here to there. Writing the code makes me decide what those wishes mean in practice.

What should happen when something is selected? Where should a link lead? What happens when the thing I expected is missing?

Each question asks for a little more precision. Eventually, there is something I can use, inspect and change. I can discover that what I asked for is not quite what I wanted.

That is part of the appeal. I do not have to get the entire idea right before beginning. Building gives me something to think with. Sometimes I only understand what I was trying to make once an early version is there in front of me, being thoroughly unhelpful.

Then I can revise it.

Breaking and rebuilding

Sometimes making something means pulling it apart. I can keep the useful pieces and reconsider the arrangement, or let a version go entirely.

There is freedom in being able to say: I made this, and I am allowed to change it.

That freedom matters on a website about myself. An article or a path between two interests can make sense when I create it and need changing later. Having made it does not oblige me to keep it as it is.

In Moon Garden, I followed roots through a landscape that was already alive. Here, I have an editor open. I can choose how to represent a little of what I have found.

The representation will always be incomplete. There is still pleasure in making it more faithful.

Where debugging stops

The metaphor becomes more difficult when I turn it towards myself.

With code, I can often narrow a question: what did I expect, what happened, and where did the two diverge? I can inspect an assumption, make a change and see whether the result improves.

It is tempting to imagine that enough inspection could make a person equally legible. Find the faulty instruction. Rewrite it. Run everything again.

But what would count as the correct output for a life?

A feeling can be uncomfortable without being a defect. Two wishes can contradict each other and still deserve attention. There are things I need to understand, things I might want to change, and things that simply need room to exist. Calling all of them bugs would settle the question before I had listened to the answer.

I can revise the words on this page. Revising the experience they describe is another matter. There is no saved copy of myself I can restore without also losing the life that happened afterwards.

The useful part of the metaphor is the permission to look closely and make deliberate changes. Its limit is the expectation that every difficulty must have a fix, or that I need to become error-free before I can take part in the world.

Still running

The system stays alive while I work on it.

That is true of the garden, and it is true of the person making it. I keep learning while I build. New experiences change the meaning of old pages. I keep making a place for memories, music, images and words; somewhere another person can wander through a little of what goes on inside my head.

The last sip

In the second version of the image, the mug is empty. It has moved a little, as though I picked it up for the last sip and set it down again. The steam has gone, and the computer is switched off. Its dark screen catches only a little of the surrounding night. The workspace is still there.

I like having that small ending in a scene about ongoing work. The hot chocolate can be finished while the project remains open. There is still more I want to make. I can put the mug down, switch the computer off and leave something for another day.

There will be time for another cup.