Groupware (CSCW) environment for ETL529/ITC213

Here is the big picture view of a model groupware environment in action with this subject, using freely available Internet services. Services such as e-mail discussion lists, the Z Object Publishing Environment (ZOPE is at, Learning Communities MOO (LC_MOO is at

Fig 1. Groupware components of a learning community. Note the 3 stages of growth that group members endure.

1 Why MOO?

Following are some points where you can see the importance of the MOO (Raza, 2000), not only in education , but also for a wider variety of professional workgroups:

·A MOO has potential as a teaching tool, providing the students with the opportunity for authentic conversations with people from outside of the classroom.

·MOOs offer a 'safe' zone in which the any one can practice the target language without any risk. Because of the 'text-based' nature of the MOO database - the descriptions of areas and people 

·MOOs also provide an opportunity for reading and writing tasks. Once the students are 'inside' the MOO, there is a sense in which they are no longer in the classroom - they have room to maneuver autonomously.

·It's fun and useful and gives the person the opportunity to be creative. In a situation where access to the Internet is easily available, introducing the students to synchronous talk zones and other 'Net facilities is an opportunity to bring a 'real world' tool into the class curriculum.

·Due to its text base nature can be successfully use in business because you can keep the records of the meetings 

·Lot of members of organizations can have a meeting from all over the world with very less cost as compared to the other medium of telecommunications.

While all four CSCW components may be a value, a MOO environment like the Learning Communities MOO(LC_MOO) can exhibit most of the features of the other components. LC_MOO was created to serve primarily the joint teaching and research ventures of the Farrer Centre and the Centre for Studies in Teacher Librarianship at Charles Sturt University in conjunction with the information technology program within the School of Information Studies. Supported by the research and development systems at K2 and K9 MOOs, LC_MOO serves as both a learning environment for our students and as a broader community for use by professional workgroups, teachers and researchers wishing to hold meetings, lectures, seminars etc and to collaborate on projects. LC_MOO is situated on CSUnet and is linked with ourcollaborating partners at University of Texas (Dallas), Texas Woman’s University (Denton), Texas A&M University (College Station) and the University of Hawaii.

LC_ MOO is also home to an international network of professional workgroups in the areas of information technology, agriculture (extension programming), education, and business. LC_MOO supports links with other organisations. Membership applications from students, faculty and professional organisations are considered on the basis of mutual interest in our mission or enrollment in one of the CSU subjects using LC_MOO. Reasons for application should be explicit regarding the use ofLC_MOO in any combination of youreducation, workplace, research or professional development interests.

LC_MOO is the central platform for CSCW in ETL529/ITC213.

Here is a glimpse of things to come…

Web/MOO simulcast presentations

Figure 2 below shows part of an online lecture on MOO programming in action. This slide shows how Internet Exporer 5 handles a Powerpoint presentation via the enCore Web/MOO interface. All text and images can be stored in the MOO after each “live” performance and students can “replay” the lecture in their own time, using groupware tools found or programmed in the MOO database.



Figure 2. A snapshot of a lecture about MOO Object design showing the dialogue window on the left and the Microsoft Powerpoint frame on the right (Using Internet Explorer 5.0 with feature to run Microsoft Powerpoint .ppt files).


MOO and Webcam simulcast of a “live”event




Figure 2 A snapshot of a commentary in dialogue window on the left and the WebCam on the right (Using Internet Explorer 5.0)
Figure 2 above shows part of MOO/WebCam interactive simulcast in action. This slide shows how Internet Explorer 5 handles a Java push applet to present a live event.

2 In the beginning

The LambdaMOO programming language was developed as a research project at Xerox Parc Palo Alto Research Center by Pavel Curtis in 1990, and remains the most popular MOO server source code and MOO database core. This is what Pavel has to say about the enCore system:

I'm really pleased to see this kind of dedicated effort being put into using LambdaMOO for education in the right way. I have long been a supporter and a believer in the constructivist philosophy of learning, and it's wonderful to me that there now exists such a toolkit so that groups all over the world can try it out for themselves. This is the kind of progress that really justifies all of my work on LambdaMOO over the years. My heartfelt thanks to the many people responsible for putting it all together in the High Wired enCore.


Pavel Curtis

Cofounder and Principal Architect of PlaceWare, Inc.

Creator of LambdaMOO


[Have a look at Pavel's latest work at ]


3 enCore: The technical environment

enCore was built with standard Internet technologies MOO, HTML, Java and Javascript. Here are some statistics about a typical enCore MOO:

MOO Server: LambdaMOO version 1.8.0p5

Core: enCore, version 2.0.4

Database: 6233 objects, 20387444 bytes on disk

MOO Client Protocol : version MCP/2.1

Web server: enCoreXpress/2.0.4 (HTTP/1.0 )

Authentication: Persistent Client State HTTP Cookies

The technical environment involves the integration of various Internet technologies dealing with client/server architecture, database design, object-oriented programming (MOO objects and Java applets), human-computer interaction, synchronous/asynchronous networking applications, data communications protocols and multimedia design. Three main MOO’s are:

LC_MOO – the production site for professional workgroups

Rochester Castle

K9MOO – the prototype environment for object-oriented programmers.

4 Getting connected


LC-MOO is hosted on the Internet Special Projects Group's server in the School of Information Studies.
For recording the dialogue of a meeting on your own machine, download and install a MOO client from the list below:

For enhanced telnet connections, logging files of meetings etc in text mode, we recommend Pueblo 2.0 for Windows9x/NT from or tkMOO lite (requires tk/tcl installed as well) for Windows/Mac/UNIX users from

MacMOOSE for MacOS users from or MUDDweller for older System 7.x Mac users from


4.1 The Java applet interface

The sample below is from the old K9 MOO at (now at 7682).


Fig.1 The Welcome screen at K9 MOO using version 2.0.4 of the enCore database. The Xpress Web interface is built using Java applets for frames and the MOOtcan client.


Visit the enCore “mothership” at (Fig 2) for the latest release of the enCore database.


Fig 2 The Lingua MOO: where all the enCore action first surfaces.



5 Programmers note for the MOOtcan Java applet


MOOtcan will support the MCP., but at the moment it has support for history, by pressing page-up and page-down (or ctrl-up and ctrl-down). the history-items are editable; if you are currently editing some text, and you want to refer to something you wrote earlier, the applet will remember what you were editing.


java.awt.TextArea updates very slow, and even slower on some implementations. The workaround is to update it in chunks, instead of updating it for every line. now it scrolls about at the same speed as TinyFugue (MOO/MUD client for text terminals). The code is mixed java-1.0 & java-1.1. when run under java-1.1 the TextAreas are a lot nicer, i.e. we get rid of superfluous scrollbars etc. but it should work under java-1.0 (except under Netscape 3.x for unix). Currently it is line-oriented only, so it's probably not usable for character-oriented MUDs etc.


Sørensen (1999) provides the latest MOOtcan source code and binaries are available from: The main MOOtcan Java package is outlined below:

5.1 Class mootcan.MOOtcan












Fig 3 the MOOtcan client as a standalone Java tool.


5.2 public class MOOtcanextends Applet 

A simple MOO-client, it is currently only usable for MOO-connections as it sends and read lines, not characters, through and from the socket. It may be modified to support character-oriented connections. this class glues together a GUI (currently only a panel inside a frame) and a network-connection. It supports processing of the stream from the MOO, so that things like Surf'nTurf's browser interaction and MacMOOse's Object Browser can be implemented. Two pipes are set up (marked with ->): (the users input) -> (the parser) - (the network socket) (the MOO output) -> (the moo parser) - (the users terminal) maybe it will be possible to send objects through the MOO-server, maybe storing them in MOO-objects, and rebuilding them at another client !? This could be usable for exchanging objects like texts / pictures / sounds, you name it. For security, the applet and its threads are killed if the browser leaves * the applet-page for more than 10 seconds. The way we do this, is to start a thread that is waiting for the user to get back. there is a link to a description of this method in @see

License: enCore is Copyright © 1997-1999 of Jan Rune Holmevik and Cynthia Haynes. All rights reserved. The core of this program is Copyright © 1991-1997 of LambdaMOO. The enCore layer is Copyright © 1997-1999 of its respective authors. Built-in support for the MCP/2.1 protocol is copyright © 1998 of Ken Fox. The MOOtcan telnet applet is Copyright © 1998-1999 of Sindre Sørensen. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License See for details. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.

Credits: Jan Rune Holmevik, Cynthia Haynes, Sindre Sørensen, Ken Schweller, Mark Blanchard, Jorge Barrios, Amy Bruckman, Matthew Campbell, John Towell, Gustavo Glusman, Craig Leikis, Juli Burk, Michael Thompson, Nils McCarthy, Rui Miguel Barbosa Pinto, Andrew Wilson, Ken Fox, and Matthew Beerman.

6 Client/server architecture

6.1 The enCore Xpress

The enCore system comes with a WWW-interface system called Xpress that can provide a rich multi-media content in a MOO. Through the Xpress interface people can browse the MOO as a non-interactive hypertext (using the MOOTcan Java telnet applet or their own telnet-based MOO client), oruse the integrated Xpress MOO client to communicate with others online. enCore Xpress comes with a variety of graphical point-and-click applications that makes mailing, editing and programming easy. The web interface allows you to connect Web pages, images, sound files, Real Audio and video streams, Shockwave animations, Java applets and more to objects in a MOO.

The enCore Xpress web interface is listening for incoming connections on port 7000, so the URL for your MOO's homepage is The URL of any object in the MOO is determined by the object's number. For example, the URL to the LC_MOO enCore Starting Point is: 62(#62) is the MOO object number.

The enCore database includes support for the MCP/2.1 MOO Client Protocol. This is an out of band protocol used for sending messages between servers and clients. Several useful applications are available that are built on MCP/2.1. Programmers can use MCP/2.1 to create new applications for MOO. For more information about MCP/2.1 see and enCore is open to commercial use under the terms specified in the GNU GPL license.

Enough technical stuff… let’s get down to creating and manipulating various objects as tools in our CSCW environment.