Archive | Development RSS feed for this section

World of Dungeons Compendium

30 Dec

UPDATE: I moved the compendium to googledocs. Ask me for editing permission if you would like to contribute:

Here is my Compendium of World of Dungeons Resources, at least until the wiki at is back online.

It’s rough, it lacks attributions and I couldn’t clean it up as I saved it before the wiki went down, so it’s kind of hard to edit it now.

I hope you enjoy it.

MikiWiki is on GitHub

16 Oct


We’ve been working on a programmable Mikiwiki for awhile, now it is on Github.

The code is still quite messy, but we hope you will find your way. At its simplest, Mikiwiki supports simple wiki pages organized in a tree structure. Wiki pages can also embed other pages as components called Nuggets. These nuggets can be programmed in javascript from within the Mikiwiki itself. All Mikiwiki pages have a FORMAT. The standard format is MIKI, but you can invent new formats. A page with a new format will contain JSON data and its format page will have format ‘javascript’ or ‘template’ and will know how to render the JSON data.

If you have trouble sleeping, you can read more in our IEEE, ACM papers and Springer book.

Feel free to post your questions. All feedback, tips and advice are appreciated.

Node.js experiments – getting Zappa to work

27 Jul

These days we are playing with serverside javascipt programming using node.js and coffeescript.  Zappa looks like a promising web development framework, strongly based on the ruby-based Sinatra.

We installed it with the standard

 npm install zappa --global 

but for some reason any time we tried to run it we got a big Cannot find module ‘coffee-script/lib/optparse’ error.

Anyway, we managed to do an ugly hack that got it to work.

1/ Find where npm installed your zappa module. In our case we found it via the error message: /opt/local/lib/node/.npm/zappa/0.1.5/package/bin/zappa

2/ Go there and open the package/lib/cli.js file

3/ Find the failing statement: OptionParser = require(‘coffee-script/lib/optparse’).OptionParser;

4/ Jam in the absolute path. In our case it was:

OptionParser =  require(‘/opt/local/lib/node/.npm/coffee-script/active/package/lib/optparse’).OptionParser;

5/ Ugly as hell, but now it works!

It looks like node had trouble resolving the path of the coffeescript sub-library and this is the only way we could make it work.

Do you have a more elegant solution?

Play by Wiki and Emergent Properties

9 Jun

I have been intrigued by the possibilities of wiki + story games for a long time.
Wikis can express powerful emergent properties that fit well with story games.

Does anybody know of any games that are played primarily by wiki and that are designed to explicitly leverage the nature of wikis? ‘Caravan’ by Emily Boss looks very promising, but I couldn’t find any real example of play.

We have also designed a wiki that can be programmed and evolved ‘from the inside’ by its users, so that as new mechanics get defined, they can be automated within the system, but I feel we need to learn more from actual play before releasing it to the community.

Any good pointer in this direction is highly appreciated!

WordPress + Ruby = Awesome!

9 Oct

WordPress is a nice pretty and friendly blog system with a really user friendly backend. Sometimes you can’t build your whole site in wordpress though.. but you still need to show some of the posts that are in your worpress blog.

Or maybe you just wish to use wordpress as a nice backend data-entry system for your clients, but you want the frontend being done in plain html or ruby on rails.

We developed WpElements together with Simone. WpElements is some ruby code that maps directly to the post table of your wordpress. You can also run either a Rails or asmall Sinatra server exposing a couple of handy urls that return you the posts in JSON format. Finally you have some javascript you can put in your html page and, using a jQuery+JSONP, allows you to retrieve the data you need and map it to your page.

var wpserver = "http://localhost:4567";

    $('#latest-post .title').html(post.title);
    $('#latest-post .author').html(;
    $('#latest-post .text').html(post.body);

Get WpElements.