One thousand lightbulbs

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.

MailMate bundles for fun and profit

I usually think of MailMate like the A-10 Warthog of OS X email programs: it’s not as sleek and sexy as the average new email app you see coming out of indie devs’ doors, but it makes up for that in sheer power and efficiency when it comes to dealing with your email.1

One part of MailMate that seems pretty opaque to newbies is MailMate’s ability to run Commands on messages. If you’ve used MailMate in the past, you’ll probably have noticed the “Commands” menu item nestling on the top of your screen, but you may not have investigated it. Or maybe you use one or two of the default command bundles available for download, but have never thought about the fact that you can make your own custom commands.

OmniFocus + Kanban: the next generation

Everyone loved that little gem I made to convert OmniFocus projects into a kanban, right? Scarily enough, I made that post almost three years ago, so I figure it’s time for an update.

I recently posted about rubyfocus, my pure-ruby OmniFocus bridge. Since then I’ve been working to revamp kanban-fetch, my old kanban board application, to use rubyfocus. I’ve also taken the opportunity to add a couple of other features to the application, including a major change: rather than running on top of sinatra, my new version generates a static website. This is great news if you can’t be bothered running a pow instance on your machine or otherwise don’t want to serve up a whole webserver program for a one-page application. Column configuration is also much improved, and you can now change all sorts of variables to make your columns and projects look exactly how you like them.

Automating VoodooPad with scripts

Say what you want about Microsoft, OneNote is a pretty good notebook tool. Well, let’s clarify: OneNote for Windows is pretty good. I tried OneNote for OS X recently, and it leaves a lot to be desired. My go-to equivalent on OS X for the moment is Flying Meat/Plausible Labs’ VoodooPad1: it’s not quite as nice (in my opinion) as OneNote is on Windows, and some of the UI decisions could benefit from an update, but it does the job OK. I used to use it for a bunch of my literature notes during my Ph.D., and now I’m making a return to it for some of my other projects around home.

Every program has its benefits and its drawbacks, but some things just aren’t worth not having. When you’re writing notes, being able to quickly add headings or format lines is super-handy: something OneNote does really well, but something that’s still missing in VoodooPad. After about five minutes of playing around with VoodooPad I decided I needed to fix this problem, somehow. The obvious answer would be to take advantage of VoodooPad’s ability to run plugins, as long as I could work out how to actually do this.