Meta Levels

Metafinger got its name from a graduate seminar, "On Being Meta", held at the Media Lab, Spring 1996. The Metafinger application is "meta" for several different reasons, at different levels :

User Customization

Metafinger modifies it's behavior based on "who" is using it. The default way that it filters, sorts and displays the information it retrieves may be determined by the individual user using it. Personal (and private) user groups may also be defined. The personalization information is stored in a user profile in a user's home directory.

Another level of user customization is provided by the video interface to Metafinger. This interface uses a second configuration file, written in Isis, a variant of Scheme used for structured video composition by the Cheops Project , and now extended to general purpose computers. Within this file, the user is able to define both how they are represented in other users's video and how their video is generated from the information gathered from the finger servers and the other user's video configuration files.

Knowledge of Community

Metafinger supports the concept of online communities, or groups, which change over time. These groups may be user specific, or defined at the system level. For several reasons, the system groups are defined as being the public mailing lists at the local site:

Multiple Display Mediums

Metafinger generates either text or image output upon user request and medium availability. To easily support the largest variety of computer systems, a WWW interface is provided which supports both text and image formats. A Unix command line version which directly replaces finger and only supports text output is also provided.

Text

The text display medium is the one traditionally supported by the finger application, with two variations: a "long" format and a "short" one. Both of these are supported by Metafinger, with some customization allowed. Given the extension to multiple machines, an additional text formatting variation was introduced: summary . This new format condenses all information about a single user into a single report. Here are two examples of the summary format showing the same information, using different user profiles. The first is still long, showing all information :

wad (John Watlington)           active on cyrano ( ,Thu 20:31,*p1,dynamic-56)
                                idle on cyrano (2:33,Thu 20:31,*p2,dynamic-56)
                                  swensens (3 week,Thu 13:25,*co)

The second example filters out multiple user logins per machine (showing the most active) and only shows some of the information retreived from the servers in order to condense the presentation.

John Watlington     working on cyrano ( ,dynamic-56)
                    idle on swensens (3 week)

As is traditional in simple Unix applications, and WWW interfaces, the actual choice of font and font size is made by the program (terminal emulator or web browser) used at the interface between the user and the application.

Text is also used as the default output format if Metafinger was not able to interpret the information returned by a finger server. Oftentimes this is an error message, or a response to a request for the "long" format.

Video

Video is a term used loosely here, as the refresh rate is typically 0.2 - 1 frames per minute. This is an intentional design decision, as the Isis renderer is capable of several frames/sec using a networked X display interface. I feel that since the finger information is by it's very nature "slow" changing (the server system is designed around the assumption that information up to two minutes old is acceptable), a slow refresh suffices. It also makes the system more accessible - it works fine over low bandwidth network connections, such as 28.8K dialup.

The video output utilizes an additional database of video objects representing known users at the local site. The actual image is synthesized by executing a rendering script specified by the viewing user, which is provided with the same information given the text display routines. The rendering script in turn executes scripts (provided by the users being displayed) to provide the image information for each user. Users who don't have a video object defined are represented using a generic user object with a "nametag" of their username.

The default renderer places the user objects in a 3D space defined by the background selected. In order to indicate the amount of time a user has been idle, transparency is used. The more transparent a user, the longer they have been idle. Additional visual cues remain unexplored at this point.

Multiple Architectures

At the deepest level, we have the construction of an executable application for different flavors of computer systems. Any application like Metafinger, which intends to build community in today's heterogeneous computing environment, must run on most computers at a site. This requires that all the instructions on how to compile and link the executables are themselves written in a higher level language and compiled down for a particular architecture.

To some extent, I failed at this, for although generating the command line executable for a UNIX (or POSIX) operating system is pretty easy, I provide no native Metafinger application for most personal computers. Instead, I rely on the ubiquity of the WWW browser to provide an acceptable interface with a minimum of effort, at the cost of maintaining an additional server.


Prev..Project Proposal.........................................Extensions..Next
Meta Finger Top Level

wad@media.mit.edu