Xerblin

Release 0.8 (beta) now available. Fri Dec 9 2005.

This site is mirrored at:
http://gregarius.shacknet.nu/~sforman/xerblin/
http://calroc.home.mindspring.com/xerblin/

Xerblin is a completely general Human-Computer interface.

It is designed to allow non-computer-literate people to be able to use and control their machines with ease and confidence. It is also designed to allow computer savvy people to use their computers very fast and efficiently.

It uses the same metaphor to describe computer operations for newbies as well as advanced users. It also makes it trivial for a computer-literate person to customize a computer interface for his or her own use or for other, less computer-literate, people.

This metaphor consists of Executable Words that define single concrete actions or commands that one can issue to the computer.

These Executable Words can be combined in four basic patterns which correspond to the four basic possibilities of computer programs. In a computer program, there are only four ways in which discreet operations can be combined. The Compound Executable Words provide a way for the user to create new words out of the preexisting Executable Words by combining them in specific simple ways.

With a rich set of basic Executable Words and the four kinds of Compound Executable Words you have a completely general computer interface that allows for extreme customization and great flexibility yet can be understood by the average user.

Additionally, any program written in any computer language can be decomposed into this format, allowing the more advanced user several interesting possibilities for program development in Xerblin.

On top of this simple, elegant, extremely efficient model of computer programs there are several levels of User Interface. There is a Command-Line interface that allows for textual input and output including scripting. There is a Text-Based GUI that has several incredibly useful features. There is a non-text GUI that provides an interactive graphical model of the Xerblin Words and permits a direct-manipulation kind of interaction. And there is also a 3D Environment that allows for several sophisticated methods of interaction and design.

Each of these different interfaces access and control the same Xerblin environment, and it is perfectly alright to use them interchangeably as their strengths and weaknesses indicate, so that you might use the Text interface to author a script which is then sent to the Xerblin Interpreter via the command line interface for execution.

The architecture of the Xerblin system consists of a main, central Xerblin server wherein the Executable Words and environment of the system reside, and a set of client processes that provide the different aforementioned interfaces to the server. The client interfaces can be started and exited independently from the server, and can even run on a different machine than the server and access it over a network. The Xerblin server is just a Xerblin Interpreter the methods of which have been exposed through a Python XMLRPC server. Note that this means that interface clients can be written in any language that has an XMLRPC client library.

The complete state of the server can be saved to a file or stream at any time, and then reloaded later or on another machine. This, with a little help from a versioning filesystem (such as provided by subversion) permits a sort of time independence. One can go back in time, as it were, to previously saved states of the Xerblin environment and reload them, just like many video games have the capacity to save and reload games.

The proof-of-concept demo version of Xerblin is written in Python and is available for download. It currently contains a Xerblin server and Command-Line and Text-based Interfaces as well as a viewer client to visualize the Xerblin Stack. To learn more about it, read the source and API documentation.

I gave a presentation of Xerblin at CodeCon 2004 in San Francisco that was very well received. If you are interested in listening to that, there is an audio recording of it in mp3 format: CodeCon_2004-02-20_2.mp3.

You can contact me, Simon Forman, via email at username calroc, host mindspring.com. I would love to hear from you.

There is also a Yahoo! group for Xerblin that includes a mailing list and downloads as well as some more documentation.