The better part of valour

This post, the last of 2016, marks the beginning of a change I have been thinking about for some time: I'm no longer attempting to catch up on posts I have missed. Since I'm behind as of the time I'm writing this, that means I am also immediately flunking out of my "fairly weak formulation" of writing every day, that is to say having written something for each day, even if it was sometimes posted later than that day.

Ultimately, this comes from a realisation that writing every day, at least in the way I've been doing it, is not serving my goals very well. I mostly write as an outlet for my ideas and projects, a way to get convey those things to the world, to give them external existence, and expose them to judgement. In other words, writing is valuable because it complements my other work. Yet somewhere along the way things got mixed up and I ended up writing at the expense of everything else.

I don't think it's impossible for these two things to coexist, and even to reinforce each other – quite the opposite. And I'm not abandoning the idea of writing every day (though there is still substantial work to do before I can achieve that consistently). The thing I'm abandoning is the burden of trying to make something true that isn't: that I write a post every day.

And in a sense, that's probably the biggest relief of this decision. I believe in truthfulness, and there is some fundamental way in which my attitude towards writing had become untruthful, in the sense that my redefinition of "every day" to include writing after the fact actually removed the qualities that made the original meaningful.

The goal of writing every day was intended to produce habit and consistency, but how is that true if the actual production is infrequent and inconsistent? I wanted to save myself from "sorry it's been 6 months since my last post, here's a post about how I'm going to post more, which will be my last post for the next 6 months" syndrome. However, what were the failure posts if not a formalisation of that same syndrome?

So, no more. What you are reading now is the failure post to end all failure posts. The unbroken line is broken! Long live the unbroken line!

I'm adding a new field to my stats page to track my longest writing streak. It starts at 1 as of tomorrow. I hope someday to reach 365 again, but this time with no failures. In the mean time, my goal is to put my writing back in its proper place in my priorities, and to accept that I will write exactly as much as I can, and no more than that.

Swayze

So of course everyone knows Pac-Man, but I was thinking about an interesting spin on it the other day. What if, instead of you controlling Pac-Man and AIs controlling the ghosts, things were the other way around? You control the ghosts and Pac-Man obeys some relatively simple rules to keep away from them.

Your goal is still for Pac-Man to collect all the dots, but his programming only makes him run from the ghosts. That means to get him to do what you want, you have to position the ghosts such that you chase him into the dots without accidentally killing him. You could have a number of puzzle levels to get the mechanics clear (chasing around corners using two ghosts, avoiding dead ends, etc), and then a score attack version where you just play like the original game.

There are also some interesting opportunities to reuse the original mechanics around the power pills. If you get a power pill, Pac-Man's behaviour is reversed: instead of running away from the ghosts, he runs towards them. That would make some puzzles (pulling Pac-Man out of a dead end) possible that weren't otherwise possible. But it also leads to an interesting score dilemma. If Pac-Man eats a ghost, he gets bonus score, but you lose a ghost you can use to control him.

Ultimately, I think what I like most about this idea is that it reframes the role of the ghosts entirely. What if they were just trying to help you all along?

Etaoin Shrdlu

I had an interesting idea about using statistical mapping for gibberish generation. There are some fun projects out there, like the Hacker Typer, that let you hit random letters and code comes out, but I think there's some unused information there that's just begging to be put to use. Specifically, the letters you press have a pattern, and you could use that to form patterns in the output.

So here's the idea: take the letter bigrams, the conditional probabilites of a given letter following another, and turn them into word bigrams, the conditional probabilities of a given word following another. So if you type "T", the most common initial letter, that maps to "The", the most common initial word. If you then type "h", the most common letter following "t", it maps to "same", the most common word following "the", and so on.

If you input "the", it would generate "The same time". If you input "this", it would generate "The same way that", because [h,i] and [same,way] are both 3rd most common bigrams in their respective fields. In each case you're just using the ranks of the bigrams to map one to the other, but it means the generated text would be as probable as your input text, so you would get more gibberishy gibberish if you hit random keys than if you type feasible sentences.

Of course, you could also feed the output text back into the input to get arbitrarily large amounts of statistically similar garbage. Might be useful for padding out essays!

Rhythm Elements

This is an idea I've been thinking about since Markov Contact. One of the things I really liked about that project was the way the animations worked. The pulsing star for the current node was, in some sense, a function of the speed and intensity of the beat. The starfield, similarly, was meant to be a pure function of some initial randomness and the current position in the song.

I think the idea of functional animation in general has significant merit. Making your visualisation a pure function of some initial state and a small number of musical parameters makes it very easy to reason about, and also makes it generic across different songs and even different ways of determining those musical parameters. Once I got used to thinking "how do values in the music correspond to things on the screen" instead of "where should this move next frame" it actually started to feel more natural.

With a bit more work, I think it'd be possible to build up a library of these animations, dancing figures, bouncing objects, pulsing flares and lights, all using functional animation. You could take these rhythm elements, compose them together, and use them to build an entire animated musical scene. I think that could look pretty incredible, and not be anywhere as difficult as animating from scratch.

The next Hitler

The recent year has led to a lot of Hitler rhetoric. Personally, I think it's a bit overblown, but I also think we need to be very careful with our application of history's greatest figure of cartoon evil. The problem with Hitler (well, other than the obvious) is that he's too easy. The effect of this on rational debate is relatively well known, but I'd like to focus on the perhaps more important job of recognising the actual next Hitler when they come along.

This comes down to a problem with label-based thinking. It's easy to feel like you have learned a lot because you've figured out how to put the right labels on things but, while it does reflect a kind of knowledge, you can't use it to generate new labels. For that, you need to figure out how the labels ended up where they did in the first place. Which is to say, it's all very well to know the Nazis are evil, and it might be useful to loudly proclaim the evilness of whichever present-day boogeypersons are expedient, but all this grandstanding is going to have very little power at predicting or stopping actual evil.

I don't believe that the next Hitler is going to stand behind a podium and wave his arms around a lot while talking about locking up minorities, for the same reason that the next big computer worm isn't going to involve pictures of Anna Kournikova; the conditions that led to the last Hitler aren't the same, and the memetic weaknesses that allowed him to flourish aren't the same. Locking up minorities is still bad, of course, and it's worth condemning people who advocate it, but the path from here to genocidal world domination is pretty tenuous.

So what does the next Hitler look like? Well, the real problem is that the next Hitler isn't going to be a Hitler at all, because you only get to become a Hitler after the fact, in the cartoonish labelling machine of history. Present-day evil is more nuanced, and more acceptable. At the time, I'm sure Hitler was an affable chap, perhaps a little dangerous but ultimately manageable. Present-day Hitler will be the same, not the monster we learn about, but the regular person he was back then.

The problem is if we're too busy looking for the cartoon, we might not recognise the live-action version when we see it.