One thousand lightbulbs

Infix operators I have known and loved

For the last month or so, I’ve been learning the R programming language. It’s been super-interesting, and quite the change from my usual stomping grounds of high-level OO languages like ruby or python.

I’m now past the point of complete beginner, and getting my teeth into some of the more advanced stuff.1 One thing I’ve already had a bunch of fun with, however, is R’s infix operator syntax.


In October of last year, I wrote a thing in which I needed some coins to appear. I immediately wondered: “what should they be called?” Sure, I could just use “pennies”, or “cents”, but here was on opportunity for world-building, damn it!

Because I overthink things, I immediately went, “Well, what do other people name coins after?” And after a little research, I found an answer, and kept writing.

How to run a con

The less sexy title:

“A couple of ways I like to organise roleplaying games at a tabletop convention, which might also work for you.”

A new lick of paint

If you haven’t noticed (hello RSS readers), I’ve done a significant site redesign. It’s also been a chance for me to clear out some of the cobwebs that’ve built up in my giant nanoc Rules file.

Worth noting: I’ve also moved the atom feed for the blog here. /atom.xml will continue to work for the next few months, but I’ve put a nice big warning at the top of all posts and will be disabling it at some point in the future.


Hello folks! Do you use omniboard, my sparkling-fresh ruby-only program that pushes your Omnifocus database to an HTML-styled Kanban board? If so, and if you keep it up-to-date, you may have noticed some hiccups recently.

In with the new

OmniGroup recently announced that they would be encrypting server-side documents held on their Omni Sync Server, which is awesome! Stuff should be encrypted! Encryption is good. Of course, for the hobbyist programmer with people using their tools, encryption means yet another layer between their program and usefulness, and a lot more spots where things can get wrong.

Omniboard 1.0

Over the past couple of weeks I’ve been chipping away at bugs, feature requests,1 and other miscellanea for what is officially (as much as that means anything) Omniboard V1.0.

What’s Omniboard?

Omniboard is a small ruby library that does one thing: it turns your normal OmniFocus library into a Kanban-style board of projects, each sorted according to the criteria you provide. It does this by reading the database files produced by OmniFocus, which means that you do not need a Pro account (or even to have OmniFocus running) in order to run Omniboard. That’s kinda cool - you can find out more about this on the project page.

Minimum viable guard

Guard is a cool ruby library for automatically performing tasks every time a file changes. But if you’re not sure what to expect, it can be hard to set up. Here’s the quickest possible setup for Guard.

Use case

In this case, I’m making a quick website prototype in haml. I want to make sure that, whenever I modify one of my haml files, ruby immediately produces the equivalent html file for me in the same directory.

Urban World - Chases

Radio silence while I figure out a number of side-projects. However, in the meantime I’ve been working on some optional rules/moves for Dungeon World. Our last Dungeon World game took place in a pretty urban environment1, and one thing I found was that the regular moves don’t really account for the city as environment, setting, or community.

Well, that needs a bit of a caveat: Dungeon World is totally cool with the idea of cities, mechanically speaking, but they mainly exist as locations for resupply, or places to be defended from great evil. The sprawling metropolis of sword and sorcery fame, on the other hand, is less of a thing to be protected and more of an environment in its own right, existing above and apart from nations and rulers: you can invade such a city, beseige it, afflict it with plague; people die, empires crumble, powers fade, but the city lives on. The city is, in essence, its own front in the same way that Apocalypse World’s Landscapes or Dungeon World’s Dungeons are fronts: a place with its own impulse and moves.