Culture Ship Randomizer

Posted on The Distress Signal | web-development

I have to name things all the time—servers, databases, directories, functions, classes, mixins, etc. It’s kind of a pain. As everyone knows:

"There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors."
—Phil Karlton

As I’ve said before, I’m also a big fan of Iain Banks’ Culture Series. That’s why I built this quick and easy tool to generate Culture Ship names at random, for whenever I need to use a random name. OK, it was mostly an excuse to learn how Jekyll’s newish collections feature works—but two birds, one stone, and all that. There’s even a bundled script for generating names at the command line.

A little background on Culture Ships: Some of the series’ most important characters are the sentient machine based intelligences known as Minds. Each mind at the heart of a Culture Ship has its own unique and distinctive personality. To identify themselves, these ships choose their own names—often reflecting a particular aim or generalized personality. There are a lot of these ships in The Culture, and meeting them has become one of my favorite parts of reading the books. Re-purposing the ship names for random test databases and the like just seemed like a perfect fit to me.

Building out the tool with Jekyll and Github was super simple. Jekyll Collections and YAML data files let me quickly and easily tie together data about the books and ship classes with specific info for each of the ships. I also included a Ruby script that Jekyll builds when generating the site to let me call new names right from the command line. Github makes publishing the whole thing online effortless.

Have a look at the project repo if you want to learn more.