Prototype Wrapup #23

Last week I made 3 prototypes, and this week I also made 3.


I had an amusing thought while I was looking at one of my Github projects: web startups often have big obnoxious name-drop banners that list all the companies using their software. Why can't I do the same for my projects? So I thought it'd be funny to make a tool to automatically generate such a banner by pulling down the list of people who starred your post and cross-referencing it with the logos of the places they work. So this was the first part, grabbing the list of starring companies. I used plain ES6 now that NodeJS has nearly full support, and it was much nicer than having to use the whole Babel transpiler toolchain.


I took a quick break to work on a Go tool to deal with the issues I had with GOPATH last week. I realised that if the compiler "needs" your project to be in GOPATH to satisfy whatever rubber stamp idiocy it has internally, I could just make a a tool to generate a fake GOPATH and symlink the project in there (I called it golinkyourself). Predictably, that didn't work because of issues with symlinks and paths and the Go tool, but I eventually made a variant (called goly) that symlinked the vendor directory instead, which seems to work well enough. I of course wrote these tools in Go, which continues to be very enjoyable to write despite its incomprehensible tooling decisions.


Back to my Github starring adventure. I wanted to get the logo images of the most popular organisations on Github, on the assumption that they would correlate well to companies trendy enough to feature in a name-drop banner. Github's API doesn't really support this, but there is another site called Github ranking that collects this information from Github. So I re-collected it from them; it's the circle of life! I wrote this in Go using a jQuery-like HTML parser called GoQuery, which was quite nice to use.

Fratercula arctica

Fratercula arctica

Done O'Clock

Factory whistle

I've been thinking recently about how to avoid getting burned out with the things I'm doing. I think there is something about the combination of a daily habit of writing and of prototyping that interacts badly, specifically that because both habits are (by design) inflexible, they draw from the same resources and fail in the same ways. But more generally, I think there is a problem with obligations tending to stack up and leave you with no unobligated time.

It's a very dangerous situation to be constantly behind, which is something I came to realise recently. Beyond just its implications for spoiling the value of failure as a signal and its tendency to lead to "what the hell"-style giving up, you also build the wrong kind of habits. You need a different kind of engine to keep going vs getting off the ground in the first place, and being behind tends to stress that short-term system.

But maybe the biggest danger is that I think you need time and space to come up with ideas, to feel spontaneous and creative. It's important to cultivate that sense of freedom and instability to allow you to remain creative, and that can't happen if you're always under the gun. And yet stability and structure are important too, and with those inevitably comes pressure. How do you strike the balance?

I don't know yet, but I can tell when I'm getting it wrong, so I guess the best thing to do is just try things and see how they work. So I'm starting with an idea I call Done O'Clock. Done O'Clock is when all your obligations are fulfilled for the day. It's when, if you feel like it, you can just go to sleep or watch TV or stare at the sky for as long as you want without affecting your plans in any way. Done O'Clock is when you make the transition from high to low pressure, from work to play, and from creation to creativity.

Historically, I don't think I've believed in Done O'Clock that much. I would tend to leave things like writing or prototyping until late in the evning, something I actually flagged earlier but never really dealt with. I would schedule stuff right up to bedtime, on the assumption that one time was as good as another. But the problem with not having a Done O'Clock is that you can never really relax because you know there's still something else to do. Your leisure time is an illusion because you've still got an eye on the clock.

So I'm endeavouring to treat each day as a race to Done O'Clock. It might be early in the day if I don't have a lot on, it might be late, but there will always be a point where I'm finished. That's not to say I won't have fun before Done O'Clock, or won't work afterwards, but when Done O'Clock passes I'll know I've completed what I set out to do.

Ramphastos toco

Ramphastos Toco


A projector looking at its own reflection

A year ago, I wrote Proprioception, where I argued that other people observe you based on your external effects, but you need to measure yourself by your internal compass. Anything else is just giving up your sense of self to forces beyond your control, which is unreliable and dangerous. I've been thinking recently about the link between internal and external perception, so I'd like to take a shot at an important way in which this is reversed.

I don't know if I could commit to never lying, because despite my ideas about truth it seems obvious that there are situations where lying could lead to the best outcome. However, mostly when we talk about lying we assume that same division between internal and external perception. In your mind, you believe the truth. Outside it, people believe the untruth. This division is so fundamental you can use it to test for a developed theory of mind.

"Be yourself" is advice I've dumped on (twice), and justifiably so. But if it's such bad advice, why does it get repeated? Is there any kernel of usefulness hidden in there? I think so, and it's for the simple reason that the internal–external division is not as airtight as it seems. In reality, we imply both ways, and the way we act externally influences how we feel internally. The advice "be yourself", generously interpreted as "act like you're comfortable with yourself", is not so bad. Over time it might come to be true.

In general, I think we must be very careful not to pretend that we act in an external vacuum separate from our internal sense of self. The version of ourselves we project to others is the version of ourselves we see reflected back. The things we say end up being the things we believe. And, while lying to others might sometimes be justified, it so easily leads to the unjustifiable: lying to ourselves.