Tcl GroupKit Readme ------------------- Last Modified: June 19, 1993 ** Beta release of software ** Any and all comments of course are appreciated. Send feedback to Mark Roseman . CHANGES SINCE PREVIOUS RELEASE ------------------------------ 1. Better trapping of closed sockets so that connections close properly and lists of conferences and users are more accurate (still doesn't trap conferences which couldn't be created at all). 2. Reorganized distribution to take advantage of auto_loading. There is now a "gk_library" global which contains a path to many installed files. Things are now auto_loaded rather than sourced, and there is more flexibility in where you can run programs from. 3. Added default menu bars for applications so you don't have to quit via the window manager anymore. 4. A very large number of little details... INSTALLATION INSTRUCTIONS ------------------------- 1. Compile the socket extensions in the tcl-dp directory (courtesy of the good folks at Berkeley). My version differs from the normal one in several ways: a) the script rpc.tcl maintains a list of connections for servers b) it includes keyed lists courtesy of NeoSoft's Extended Tcl c) it sets a global variable gk_library for use by GroupKit Go through the following steps to compile and install the tcl-dp binary: a) edit the Makefile to change various paths b) type "make dpwish" c) copy the dpwish binary to somewhere in your execution path d) copy the scripts in "library" (e.g. rpc.tcl) to your tcl or tk library directory (i.e. where init.tcl or tk.tcl are located) e) run auto_mkindex in that directory to rebuild the tclIndex file 2. Copy the contents of the "library" directory in the main GroupKit distribution (e.g. containing conf.tcl) to whereever you designated the GK_LIB (gk_library) directory to be. Make sure to copy the subdirectories as well. For example: mkdir /home/grouplab/installed/lib/groupkit cp -r library/ /home/grouplab/installed/lib/groupkit 3. Copy the dot-tclgkrc file in the main directory of this distribution into your home directory as ~/.tclgkrc. This is a per-user configuration file that everyone will need. You will want to customize it at least as follows: a) change "myusername" to your real name b) set "internetdomain" to your net domain if you will be working across domains; you can delete this if you'll be on the same domain c) set "reghostname" to a local machine that will normally run your registrar process (see below) 4. (Optional) Compile the program in the "idletime" directory, and copy the executable to your gk_library directory. You'll need this if you want to try the "telefreek" registrar client. 5. (Optional) If you're on SparcStations, you can compile up the programs in the "netfone" directory, which are used by the "netfone" GroupKit application. Follow the README file in there for how to install them. RUNNING THE PROGRAMS -------------------- Under GroupKit, you don't start up programs directly, but do it through a registration system. Without getting into the underlying philosophy, here's the steps you should go through to get something going: 1. While logged onto the machine identified by "reghostname" in your ~/.tclgkrc file, from the main directory of the distribution, start the central registrar by typing: dpwish -f reg.tcl & 2. Start up a "registrar client" (interface to the registrar, used for joining groupware applications). Do this by typing: dpwish -f openrc.tcl & Note the registrar clients take options for the host and port number to locate the registrar, if it different than the default (and the registrar also takes an optional port number to change where it listens). You can specify them with -h and -p, so the above line could be: dpwish -f openrc.tcl -hjanu -p9999 & Openrc is one of serveral possible registrar clients. This should (in theory) pop up a window displaying a list of conferences (none to start) and another list of users. 3. To create a new conference, click the New button. A list of conferences (read in from ~/.tclgkrc) will pop up. Choose one, give it a name (the entry at the top) and click Ok. For the sake of illustration, create a brainstorming conference. You should get a window with a tiny brainstorming application in it popping up on your screen. 4. Start up another registrar client, e.g. dpwish -f openrc.tcl. You should see the name of the brainstorming conference in the conferences list. If you click on it, you will get the list of active users (one). To join the conference, double click on the conference name, and you will get another copy of the brainstorming application up on your screen. 5. Play around. Type stuff in the entry at the bottom and hit the Enter button to send it to the other person. ABOUT THE PROGRAMS ------------------ There are several demo applications to try out. The BRAINSTORMING TOOL you've seen allows anonymous "ideas" to be sent between users in the conference. VOTE allows you to call a vote on simple yes/no questions, allowing users to answer the questions while a tally of responses is maintained. The DRAWING program is a simple rectangle editor, albeit with no concurrency control, so you can play mouse wars if you like. HYPERSOMETHING extends that so you edit nodes (ovals) with lines (edges) between them. Neither of these two are particularly robust right now, but gives you an idea how to design your own groupware application on top of a canvas widget. GROUPSKETCH is a simple whiteboard application allowing you to draw (although not erase currently) using freehand drawing. You also have "multiple cursors" so you can point to things on the display. POSTIT allows you to send post it notes to other people's screens. This is mainly intended for use with TeleFreek (see below). GROUPEDIT is the start of a groupware text editor. Text typed on either end is sent to the others. There's no concurrency or locking currently, so if two people type at the same time, interesting things will happen. The SCROLLBARS program extends GroupEdit by providing a "multi-user scrollbar," a generic widget for showing where other users are working in a large document. If you happen to have a Sparcstation, the NETFONE tool provides a front end to John Walker's NetFone program for communicating over a network using the built-in audio of the Sparcstations. (This program is included in the current tclgk distribution). Again, it integrates best with TeleFreek. Another program, CMDRC, provides a command line version of a registrar client. Essentially you could say "cmdrc GroupSketch" which would join you up to a GroupSketch conference, or create one if it doesn't already exist. This would be used instead of the open registration client. TELEFREEK is the start of a "making contact" system. For now, the main thing built into it is a little postit note application, which you can use to send notes to other people or reminders to yourself. The idea is everyone would start up Telefreek when they logged in, so you have a "low cost" way of seeing who's around and sending notes. It again is a registrar client, so use it to replace openrc.tcl. DOCUMENTATION AND ROLLING YOUR OWN APPLICATIONS ----------------------------------------------- For now, you're pretty much on your own. Use the sample applications as a guide. Look at conf.tcl for the routines available to use in your applications. I've tried to document the code, but undoubtedly there's parts that are not so clear. In terms of the overall system, the best bet is to grab a copy of the paper I presented at CSCW92, which you can get by ftp from cpsc.ucalgary.ca. Although it describes the InterViews version, things are structurally similar here. If you come up with interesting applications you'd like to share with others, please feel free to send them to me and I'll include them with future versions of the system. Similarly, if you're considering a larger project, let me know about it. We're very interested in tracking the usage of the toolkit, and may also be able to hook you up with people doing similar work.