Monday, August 31, 2009

Alan Turing Petition

If you're reading my blog, you're probably the kind of person who knows exactly who Alan Turing was, not to mention the Turing Test (which I also mentioned in my previous post). However, you may not know that he was convicted for gross indecency (in admitting to an actively gay relationship) in 1952, which led to him being chemically castrated, his loss of security privileges, and his loss of work with GCHQ (wiki), and thence (it is thought) to his suicide in January 1954.

Why do I bring this up today? Well, enough is enough, this man deserves a better ending than this. He deserves a full apology from the UK government for their treatment (legally, morally and chemically), and I'd like to see him acknowledged as one of the greatest minds ever to come out of UK science and mathematics. Every computing professional in the country owes this man a debt of gratitude for his work in establishing the science of computing, as does, indeed, the rest of the country for his code-breaking at Bletchley. (though, obviously, he was not alone in either field by any stretch of the imagination!)

There's an electronic petition being lodged with the UK government, and here's the BBC article that brought it to my attention.

Saturday, August 08, 2009

The Monomyth vs. the Automyth

I subscribe to the GameSetWatch RSS feed, and generally flick through their headlines on Bloglines (an RSS aggregator that I thoroughly endorse, especially the beta version) in a spare moment or two each day. Most of the content leaves me quite cold, but this article actually caught my attention!

I've read around half of Joseph Campbell's book, The Hero with a Thousand Faces, but got bored and bogged down in his continual obsession with his Speilbergian father-son conflict as the driving force of all narrative. (Or is that perhaps, Speilberg's obsession in his movies with Campbellian father-son narratives?) His 1940's writing style doesn't help, but then Christopher Booker's 2005 re-tread and elaboration of the material, The Seven Basic Plots (or here for the US), suffers from the same obsessions, is nearly twice as long, and could have done with some serious editing down to reduce redundant repetition. (Mind you, I did get 80% of the way through this one)

So, I've not read every last word on the subject of the monomyth, or the seven basic plots, but I believe I have an amateur understanding of them. (Yes, go on, my opinions are incomplete and therefore entirely invalid... feel free to go read someone else's blatherings instead).

(note to the reader that chooses to continue, where I use a male pronoun, please feel free to substitute a female one if it helps you)

Quick summary: hero in the 'normal' world is challenged to go beyond the boundaries, overcome 'evil' (the father) in some way, returning changed to the 'normal'. There are, of course, many more details to monomyth, and the seven basic plots (quest, rags-to-riches, overcoming the monster, voyage & return, comedy (ending in love or life), tragedy (ending in some form of death), and rebirth) have more subtlety than that, and the article at GameSetWatch gives a more complete summary of the basics.

However, they mostly miss the point that elements of good story telling also involve subverting the monomyth, or the expectations of the basic form of the plot chosen (consciously or otherwise). For example, the hero might return from the experiences unchanged in himself, but the 'normal' world might instead have been changed as a result of his actions.

Anyhow, the point of that article is to ask why, if the monomyth is so well explored by Campbell and his acolytes, has no-one actually built an 'automyth' - a monomyth generator. This is the intriguing bit. It's all very well stating that there's an algorithm for a story, and even that one can subvert (invert?) or skip one or more, or most, of the 17 steps in the algorithm, but without a detailed language to express a world model, or two (possibly more) in which to run that algorithm, automation is just a dream.

How does one tackle filling in the steps in the automyth algorithm? Perhaps by giving the machine a library of options:

  • people: farm boy, new advertising executive, grizzled mountain man, washed out detective
  • places: Alabama USA, the Shire (or an analogue of), a moon-base, a small shop in London
  • challenges: alien invasion, disease, death of a parent, financial ruin (personal or global)
  • monsters: the boss, an out-of-control robot, the Devil, the judge(s)
  • assistants: the girlfriend, the grand-parent, the old mage, the bestest buddy, the advocate
  • ... and so on
But does this actually achieve anything? Can we build a grammar with which to join these elements? Do we need to?

I think what we're looking at here is a new expression of the Turing Test (a test where one person cannot distinguish which one of two subjects is human, and which one a computer, by means of asking questions). And if we define a world, or set of worlds, within which the automyth machine will operate, we have a limited Turing Test (the questions are limited to a specific subject).

At which point, can we talk about applying this to ludonarrative generation? Certainly we could build a quest generator (a la Diablo II), but that's only a subset of the challenge. Can we really express enough full plots. I think not, at least, not until we have a way to describe the entire world to a computer, give it a way of imagining alternatives, then (and this is the really difficult bit) giving that computer a way to judge which of those alternatives could actually hang together as an alternative. This is such a big job, I think I'm off to do the laundry instead.

Thursday, August 06, 2009

VirtualBox on Windows Hosts

A friend of mine has just written up his comments on installing Ubuntu as a virtual machine on a Windows host using VirtualBox 3.0.0 (the latest version at the time of writing, 3.0.4 has been released now). It's clear from his instructions that this is a fairly simple process, with the possible exception of a gotcha around networking. However, I did notice one other issue with his instructions that will probably come back to haunt him in some six months time or so... and when it happens it will be hard to find the cause.

As a side note, I'm also using VirtualBox, but on an Ubuntu host, to enable me to have a Windows XP running occassionally whilst I use Ubuntu for most work, even though I am writing this whilst running Vista (dual boot on the same machine).

Andy, you might want to be careful about using a dynamically expanding disc file for your root file system. NTFS is notorious for fragmenting files as they grow - especially if your file is living on a partition with other activity. And as we all know, the more fragmented a file gets, the poorer the performance becomes as the disc heads have to seek across more and more diverse areas of the disc to get to the content of the file. Where you have a virtual file system in a file, this is only going to get worse, because the file system you have inside the file will have no knowledge of how the data is distributed over the real disc, so it can't make any decisions over data distribution within the file system that have any meaning on the disc platters.

To avoid this, you need to be able to set a specific size for the virtual disc file. However, this will require a little pre-set-up work. First you need to decide on what is a sensible, reasonably future-proof size for your root partition. I notice that the VirtualBox installer chose 8.6GB ... that sounds quite reasonable to me, though I'd be tempted to go for 10-12GB myself. Next, you need to defragment your chosen disk partition until there is a region of free space at least as large as your desired file, and as few other gaps as possible (in order to give NTFS as little choice over where it puts the file as possible).

Now you can click the VirtualBox "New" button, to create your virtual machine.

This same issue affects the Windows page files, by the way.