Neil's News

Context Menus

19 December 2005

Moo Canada now has context menus. Whenever an object is mentioned, there is a small arrow next to it which pops up a list of simple commands associated with that object. I think this will open up the Moo to a generation who didn't grow up with CP/M, DOS or UNIX command prompts. New users can draw upon their experience with Windows or MacOS to click around and explore. On the other hand, it may dumb-down the environment to a limited point-and-click experience. History is replete with well-intentioned people inadvertently killing the things they mean to improve.

Attempting to make these context menus secure, flexible, cross-browser, and fast was somewhat challenging. The execution chain for a menu goes something like this:

Moo code (e.g. $physical:title_menu) writes Moo code, which is buffered by Python, which is transmitted by PHP, which is parsed by JavaScript, which creates JavaScript (the empty menu stub), which is transmitted to PHP, which is transmitted to Python, which is executed by Moo ($player:do_out_of_band_command), which writes Moo commands (e.g. $command_utils:commandmenu) which is buffered by Python which is transmitted by PHP which is parsed by JavaScript which creates JavaScript (the visible menu) which is transmitted to PHP which is transmitted to Python which is executed by Moo (e.g. look flag pole).

And in other news, the OU confirm that I've passed all my courses. They've also accepted the topic proposal for my dissertation: Construction of a Multi-user Asynchronous Integrated Development Environment. Otherwise known as merging SubEthaEdit and the Smalltalk interface and shoehorning it in place of the Moo's verb editor. Should be fun.

< Previous | Next >

Legal yada yada: My views do not necessarily represent those of my employer or my goldfish.