A meaningful structure

My life has been at a kind of curious inflection point lately. When I first started on my current path, I didn't really have any idea what it was; it wasn't even a path at the time so much as a big empty field. All I knew was what felt right and what felt wrong, so I followed my feet, assuming that if my steps were good they would eventually lead me to a good place.

And they did, at least sometimes. I usually couldn't tell the difference between a step and a misstep while I was making one, but I sure found out afterwards, and every time my sense of the path became clearer. Results became data, data became patterns, and patterns – slowly, haltingly – became understanding. My feet had done their work, and it was time for my head to lead.

This curious inflection comes from the mismatch at that crossover. Overdeveloped feet and an underdeveloped head. Far enough along that the beginning has disappeared into the distant past, and far to go that the ending is still in the distant future. Knowing what I'm doing well enough to see how little I know about how to do it well.

So this is an attempt at laying out the what in enough detail that it can serve as the beginning of how. It is a human structure as arbitrary as any other, but I have crafted it to be meaningful to me, to provide an understanding greater than just whatever feels right. The feet can work that way, but the head needs more.


The core of what I do is a creative process. This is an engine that takes my skills, resources and mental environment as input, and produces creative projects as output. It's not the only process, but I see this as the most fundamental: I'd still be doing it if I was the lone survivor of the zombie apocalypse, or stranded on an island with only a volleyball for company. It involves four steps: coming up with ideas, experimenting, putting in the hours, and releasing things.

Coming up with ideas really just requires relaxing and letting them come out, which is so easy as to be incredibly difficult: overwrought seriousness and editorial self-censorship sneak in and stifle the ideas in their sleep; distractions and pressure and Big Important Thoughts clamour together until it's impossible to make out the soft whispers of creativity; and of course, there's the clock, tapping its face insistently, saying "Thinking? Now? When there's so much to do?!" Ideas don't come out unless you make space for them, so I usually sit with a blank A4 page until I've filled it.

Experimenting is actually trying the ideas out to see how they work. A lot of ideas aren't actually any good, but even by being bad they can teach you something. And even a good idea might not be good enough to be worth a lot of time. It's hard to know, so experimenting is doing just enough to get a sense of it. It doesn't necessarily result in something good, or something that works, but it always leaves you more informed. I do this even if I'm working on something else; it's very liberating to spend a little time on something with no expectation of success, and to know that even if this idea never makes it into a real project, at least it had its day.

Putting in the hours is when your experiment has graduated to a project, and you just need to put your head down and work at it for an extended period of time. I've tried measuring projects a few different ways, but most of them only work if you already know what progress looks like. Sometimes you spend all day climbing to the top of the mountain just so you can see that the real mountain is further along and you'll have to climb back down again. Is that progress? I guess it depends how you think about it, but one thing's for certain: you can't reach the top of either without putting in the hours. Some hours are easy, flowy, and fulfilling; others are a dispiriting trudge that seems to go nowhere. But, one way or another, they all need to happen.

Releasing things is something I have only lately come to appreciate. "Release" has two fun and complementary meanings in software: a release is a specially designated version of some software, imbued with some kind of semantic meaning and intended to be distributed and used. Release is also something a program does with resources it no longer needs, so that some other program can use them. To me, releasing something is both "I've released it! Give it a try!" and "I've released it. I'm ready for it to stop taking up resources in my head." That's not to say the release is instant, or that the project won't come back later, but I still think it's important to set it free. Otherwise my projects just hang on forever, following me around in an ever-growing chain until I give up and throw my Nokia 3210 at the wall.


This is how my work connects with people. It's an engine that takes the outputs of my creative process and produces value for others. I would not be able to do it on an island, nor in a zombie apocalypse, making it pretty contingent on a functioning society. Although sharing is an inherently giving thing, that doesn't make it completely selfless: it can result in money, reputation, connections, or just the highly motivating happiness of seeing others enjoy your work. My structure for sharing is a lot less fleshed out, but the forms I see as important are expressions, fragments, performances and, for want of a less latinate word, colloquia.

Expressions are kind of second-order creations. While creative projects are the main output of what I'm doing, the process of creating them also creates a lot of opportunities for self-expression. For example, writing up things I learn or ideas I think about, describing things I've made and how I made them, practising a creative skill by using it to express myself, or using a work I've created expressively. This last one is particularly important to me because I see enabling creativity as a goal of some of my most important projects, and what better way to show that than by example?

Fragments are all the little byproducts that come off whatever else I'm doing. They're basically expressions without the editorial component or respect for the audience. An expression is intended to be enjoyable or useful to someone; a fragment is just whatever happened. Fragments include things like raw scans of notebook pages, half-baked thoughts and ideas, prototype code, work notes, progress photos, etc. These are intended to be as close to zero overhead as possible, just the result of cultivating a general habit of recording things and making notes, then dumping them somewhere in case they're useful.

Performances encompass basically any live talks, demos, exhibitions etc. In a sense, these are just live action versions of things I would be doing by myself anyway. A talk is just a live expression; a demo is just a live release, etc. But the liveness also adds qualitative differences, for example live performance means live feedback, no chance to censor mistakes, and a sense of impermanence. Beyond that, the dimension of human experience can fundamentally change what a work looks like, so some expressions, and even some projects may rely on performance.

Colloquia are like performances but with peers or collaborators instead of an audience. This includes workshops, certain meetups, and a very particular sort of conversation. These can be a kind of education, but the participatory kind: helping someone by working with them on their problem, not by providing them with information or teaching them skills. Not that there's anything wrong with that, but it's not a peer relationship. There can still be a substantial skill and expertise gap, but the power dynamic and the level of contribution expected should be fairly equal.


If sharing is how I produce value for others, development is how I produce value for myself. The inputs of this engine are the feedback and rewards I get from both creation and sharing, and its outputs are skills, resources and mental environment that feed back into the creative engine. It's basically a grab bag for all the ways in which I increase my own capacity. I would be unlikely to do much of this if I were stuck on an island, but I would likely keep hitting the books in a zombie apocalypse. These activities are even less fleshed out than the sharing ones, but what seems most important so far are connection, collaboration, learning, training, meta and quiet.

Connection is meeting people, finding interesting spaces and events, and generally building my social environment. It's valuable to have these resources to draw on if you're looking to work on something, but it's also very satisfying to feel like you have a network of peers and you can see others doing work that you value.

Collaboration, in this case, is about everything you get from working with someone else that isn't the actual project. Talking about ideas, throwing stuff around and trying it out, working through differences in opinion to try to benefit from each others' experiences. Sometimes this can happen organically while working on a regular project, but that can be tricky if you don't find a shared creative vision, and it can be nice to just work on something whose main purpose is working together to build your capacity.

Learning is research: looking up information, reading, doing courses, that kind of thing. It's basically the most passive of the development activities; you just consume information like a sponge until you know enough. Often to really internalise something requires more active work afterwards, but that work can't happen without the knowledge.

Training is a deliberate and repetitive act designed to build skill, rather than knowledge. For example, soldering kits, daily sketching, programming challenges, etc. These don't have exploratory value like experiments, expressive value like expressions, or creative value like projects, you just do them to get better at them and, by extension, the skills you want.

Meta is the time put into structure, reflection, habit formation, planning, and so on. It's dangerous to get too excited by thinking about how you're going to think about doing stuff, since it's so removed from the actual stuff, but it's also dangerous to spend too little time on it and end up in the wrong direction, or with no direction at all.

Quiet is probably the master development technique. Even without any other capacity-building activity, time specifically set aside for nothing is so valuable. This is time with no entertainment, no distraction, and no stimulation (I even find music a bit much) and most importantly fighting back the urge to fill the vacuum with stuff. I find walking or sitting in the park works well. Making some quiet space gives your brain a chance to bring up anything you've missed somewhere else, to wander into thoughts beyond your current frame of reference, and to chew through whatever background thoughts it's dealing with so that they can eventually surface.

Conclusion and future plans

This structure is an attempt to construct a definition of what I do by iterating on and extrapolating from what I've done so far. There is the core creative process, which is just making stuff. This combines with the development process to form a mutually reinforcing loop, where making stuff helps me improve, which helps me make better stuff. This also combines with the sharing process to form a three-part loop, where I make stuff and then use that stuff to provide value to others, which then helps me improve and make better stuff.

The main goal here isn't necessarily to provide a descriptive account of my activities, so much as a structure that can provide meaning to those activities and a mechanism for shaping them. Historically, I've done a good job at expression via writing, but rarely any other forms. Similarly, I've had a reasonable run at experiments by doing daily prototypes, but never really fleshed it out into something that provided a lot of value to my main projects. Coming up with ideas, on the other hand, is basically unchanged since I started it and still works just as well. Sometimes you just get lucky I guess.

My main next step is to quantify these activities. That is, right now I can say I do most of these things in an average week, but I'd like to make more specific claims like "I do some kind of creative expression every day" or "I spend about 20 quality hours on ongoing project work each week", or even "I spend time coming up with ideas most days".

I'd also like to figure out what to do with fragments. This idea evolved from a few different things I'd already done: the prototype code repo where I'd put whatever I did that day, my Twitter when I did that openness experiment, and my (long-neglected) idea globe that was meant to do double-duty as idea storage and also a public archive. What I'm missing is a good system (or good systems?) for collecting the byproducts of various parts of my process. My notes are kept in one place, my sketches another, my throwaway code yet another, and it'd be good to have some general dump that can handle all of it.

But that may need to wait for something long overdue, which is to spend a bit of time just focusing on experimenting, putting in the hours, and releasing things, and give the creative engine some steam until it's clear that it's running smoothly. In theory that's the strongest and best-tested part of the whole thing anyway, but all the effort I've been putting into meta-level stuff means I haven't actually been putting very much new work out.

Which isn't to say that I'm unhappy with my meta efforts. While my first instinct historically would have been to dismiss all this structure-wrangling as unnecessary complexity, I think I'm now ready to embrace it. What I want to do is, in some sense, fundamentally unnecessary anyway, and, far from feeling like a burden to carry, this structure feels like the opposite: a vehicle powered by the head, not the feet, to carry me down the long road ahead.

Meaningful structure

I've often found it frustrating when people add arbitrary complexity to simple things. Aha! Yes, I know you wanted me to sort this list, but you didn't specify how, so I started making a generic list sorting system that could work with any ordering, but then I realised that sorting is really just a special case of transforming data, so then...

Or if you want to start a project, there are all sorts of important questions that tend to get asked, like: "what's the website going to look like?" "what's your governance model?" "how will you handle disputes?" "which languages will you support?" "how will it scale past 10,000 people?" These questions are so important that they sometimes get asked before mundane ones like "what is it for?" and "does anyone want that?"

Life, too, is very easy to complicate. The lottery numbers come up in a secret pattern that only you can perceive. Each person is perfectly paired with exactly one other person according to a divine matchmaking algorithm. Everything you've done or had happen to you has been recorded in the great ledger of life, and the Cosmic Accountant is going to balance the books any day now.

But as far as we can tell, the structure of our universe has very little to do with good and evil. Instead, reality seems mostly concerned with enforcing certain universal symmetries in a bunch of interacting probabilistic structures that seem to cancel themselves out unless they're doing the least work possible. And it's hard to imagine which one of those universal symmetries requires that you win the Lotto.

The problem with the "things just happen and the universe doesn't give a shit" reality isn't that it's inaccurate, it's just that it's boring. It's a blank canvas: a carefully woven pattern that looks like nothing. A structure, sure, but a structure with no meaning. Which is no surprise, really; the universe doesn't need it. The numbers work out the same whether they mean anything or not.

So I think the real issue is that, when you have something to do, arbitrary complexity just makes it harder to achieve. In a word, it's inefficient. But our goals are defined in terms of simpler goals, which are defined in terms of even simpler goals, and eventually it all bottoms out yet again in the laws of our universe. Those laws don't really need us, so what does it mean to be efficient at something you don't need to do?

Ultimately, then, arbitrary complexity is an attempt to add meaning. And, in that sense, it deserves a second look. There are many situations where meaning is absent, ill-defined or indefinable, and the process of adding it is necessarily arbitrary. Why this thing? Well, why not?

But I'd like to distinguish between complexity and structure. Structure is a kind of arbitrary complexity: doing a thing with structure takes more work than doing it without. However, I see structure as complexity that you can build from. It's arbitrary, sure, but once you accept it, it makes other things less arbitrary. Which is to say, more meaningful.


So, what do you do?

I've been thinking a lot lately about that question. It sounds a lot like many similar questions: "What are you doing?" "What do you like?" "What do you care about?" "What are your values?" "What do you stand for?" – but it's not those questions, and the answers to those questions don't answer it.

"What are you doing?" sounds the most similar, but it's a factual question that admits very little interpretation or meaning. What I am doing now is writing a post for my website. What I was doing earlier is watching Ze Frank videos. What I did on the weekend was break an electric screwdriver and then fix it again. Facts.

"What do you like?" is about preferences. These are transitory, and in some sense performative. I am not my preferences, they are just things about me at the moment. I really like this track by Emancipator, but I have been listening to it a lot and will likely get tired of it. I used to both play and watch a lot of Dota 2, and now I don't. This has not affected me very much. I have enjoyed science fiction for as long as I can remember, but if I stop enjoying it I'm sure I can find something else to read.

"What do you care about?" is often the closest. I answered "programming" to "what do you do?" for a long time, but that was never really the answer. I care about programming, much like I care about writing and performing and experimentation and ideas. However, they're not so much things you do as kinds of things you do: fields, or industries, or genres of skill. Unlike this track by Emancipator", it would change me to change those things, but they're not what I do, they're the spaces I do those things in.

"What are your values?" asks a more fundamental question still. Even the things you care about change, but I would say your values don't really change so much as your understanding of them improves. I recently found something I wrote a decade ago that described values I still hold today. These values describe who I am and shape what I do, but they are not what I do.

"What do you stand for?" is something more akin to why you do: a statement of purpose. I described my purpose as the need to create beautiful things. So far, this is perhaps the most meaningful thing I have said about myself, and yet if someone asks "what do you do?" at a party, it does come off as a bit of a strange answer.

Because ultimately "what do you do?" is not asking for the highest level of abstract behaviour, nor the lowest level of concrete behaviour; it's asking for the lowest of the abstract, or the highest of the concrete. It's the transition between the two: where ∀ meets ∃; where "I write" yields to "yes, but what?"; where you give up the sweet brain crack and draw a line between the things you could do and the things you do.

I think "what do you do?" is answered, not by facts, preferences, fields, values, or purpose, but by a job description. Why not? If anything has earned a claim to banal abstraction, the humble job description is surely it. It specifies work concretely enough that its boundaries are clear, but abstractly enough that there can still be a meaningful choice of how to do the work.

Here's something I did that could be a bullet point on a job description: write a post on this site every day. Not "I wrote a post about this track by Emancipator", not "writing", not "I love expressing my thoughts", and definitely not "I am a vessel that each day fills with creation and I have to pour it out somewhere". I just... wrote every day. That's it. Somehow, it seems simultaneously profound and mundane.



I think of meaning as the noun for which understand is the verb. You can know a fact, like the sky is blue, but what does it mean to say you understand the sky being blue? That you know why it happens? That's just more facts!

The sky is blue because of Rayleigh scattering, which is a special case of the Lorenz-Mie solution, which is itself a special case of Maxwell's equations for ideal spheres, which are themselves the special case of applying the Euler-Lagrange equation to the quantum electrodynamics Lagrangian. Which is, of course, just a gauge theory based on the phase invariance of the Dirac electron field. So that clears that up I think.

Even if you know what all that means, has your understanding increased? My argument would be no, unless it makes the sky being blue more meaningful to you.

An alternate explanation would be to imagine the sky as a lake, light as waves on the surface, and air molecules as little rubber duckies floating on top. When the duckies get hit by waves, they bob up and down, making more waves. Waves that move up and down faster make the duckies bob up and down faster, which also makes them bob up and down harder, so they make bigger waves in response. In other words, the sky is blue because blue light has a higher frequency and that gets the duckies all excited.

This explanation is more meaningful to me because it connects with intuitions I have about water and lakes and duckies, and helps me understand at a practical level. But it might also be meaningful to say something about gauge theory. After all, there is something profoundly fascinating about the idea that the answer to "why is the sky blue?" could start with "well, you know there's no way to tell which direction a circle is facing?" There is always some path, however twisty, from banal daily observations to the fundamental laws of the universe.

So I would argue that facts cannot be meaningful on their own. Even if tomorrow we found the grand universal codex containing every fact that ever was, we would still have a lot of work to do in understanding it: finding connections, correlations, and patterns; creating structure, rules, and theories; crafting interpretations, predictions, and stories. The data wouldn't satisfy us until we had found a way to break it down and digest it into meaning.

But it's not complete just to say meaning is the noun for which understand is the verb; there must be some equal and opposite verb. To understand meaning is to internalise it: to take it from the world and put it into your mind. What is it called when you externalise it, taking something from your mind and putting it out into the world?

That's creativity: the act of making meaning for others to understand.

Womblin' 3: Womble in the Jungle

Every now and again while walking around, I stumble across some discarded hardware that deserves a second chance at life. Since the dawn of human kind, when our ancestors first threw away rocks to pick up other rocks, equipment has been discarded in the name of everything: from replacement to obsolescence to simple boredom. But womblin'? Womblin' never changes.

Fresh from the scrapyard today, this lovely LG "DV380" DVD Player: DVD Player

The ancient pedias spoke of shiny round USBs uploaded with content that you could only stream by spinning. Like every valued customer, I prosumed that this was just a metaphor, but it appears to be literally literally literally true. DVD Player with top of case removed

I love pre-Apple-design-era appliances. Specifically, the way they consist of metal boxes with screws on them, such that when you take out the screws the box comes apart. Revolutionary. The layout inside is weirdly sparse: DVD reader on the left, control board in the middle, power supply on the right, and then just an entire extra DVD player's worth of space in between. I'm digging the modular vibe though. DVD Player power module

The power module is a flyback converter driven by an A6259H, a modern independent switching controller that don't need no external MOSFET. What it does need, however, is that monster diode on the opposite side that probably wastes about 10% of the output power. Mmmm, efficiency. DVD Player power module underside

The bottom of the power module was too adorable not to mention. It's got little symbols for the components, and they even drew the diode symbol for the monster diode larger than the others. I mean, someone put some thought into this. DVD Player main module

The main module is really an ode to specialised ICs. That centre chip is a SPHE8202RQ, apparently an all-in-one "I just want a DVD player can you make a chip for that?" chip. The top left is an AM5890S all-in-one DVD motor controller, and the other two chips are flash memory and RAM. Kinda makes you wonder how long until every device is just a big blob of silicon with some wires coming out of it. DVD Player front panel module

The front panel was refreshingly un-integrated though. Just a few buttons, an IR sensor, and a nifty little 5-digit 7-segment display. I particularly liked the whole extra board complete with connectors and wire just so the power button could be on the other side of the case. I bet some engineer was pretty mad about that. DVD Player part that actually plays DVDs

Ah, at last! I'm not actually sure what to call the bit that actually plays DVDs. The DVD player's DVD player? The spinny stuff assembly? The exploited worker of the DVD-industrial complex? Something something Proletarian Revolutions Per Minute? I'm sure there's a version of that that works, but this margin is too narrow to contain it. DVD Player part that actually actually plays DVDs

Here's the main guts of it pulled free from the drive bay. The motor at the back spins the DVD around and the motor on the left moves the Eye of Sauron into position. To be honest, I was a little disappointed here because I was expecting some high-accuracy stepper motors, but apparently the low-end DVD drives just use regular brushed DC motors. Someone was too cheap to buy a good DVD player so I could scavenge it from their garbage. Outrageous. DVD Player sled assembly

Still, with all the useless lasers and motors pulled off it, $0 starts to seem like a pretty good price for a little linear sled platform that you can control with just a positive or negative voltage. I was originally hoping to use it as a drawing robot, but given the lack of steppers it's probably better off as a robot that pushes distant buttons or swipes left on Tinder for you. DVD Player components

The little lens assembly turned out to be pretty cool too. It's magnetically controlled like a solenoid or speaker, but in 2 dimensions, which I guess means it can compensate for the inaccuracy of the motors. Nifty! Careful with that laser diode, kids, you don't want to end up having to use your heightened senses to fight crime like uncle Ben Affleck. DVD Player components

So that's all she lased: a mainboard that has specialised itself into oblivion, a little power supply, some switches, LED display, motors, and most importantly the robosled, laser diode and optical sensor. Can you really take all that and throw it away for a Netflix subscription? Yes.