Discuss on Athena (AC-32)


Table of Contents || Revision history || Copyright information

Overview

Discuss is a networked, electronic conferencing system, similar to the bulletin board programs found on many computer systems.

Discuss uses the metaphor of a conference with many on-going meetings. As you might expect, a "meeting" in Discuss is a discussion group with a specific focus (such as a particular course, interesting quotes, harassment, where to find free food, Athena development, or any other topic of interest to a particular set of people). In Discuss, the form the discussion takes is not verbal conversations but written messages, known as "transactions". Transactions are similar to email messages; in fact, in some cases you actually send transactions to the meeting via email, although usually you enter transactions using options of a Discuss interface.

To participate in a meeting, either as a silent bystander (someone who just reads the transactions) or an active contributor (someone who enters new transactions), you first need to "attend" the meeting. Meetings differ according to what kind of participation they allow: in a public meeting, anyone can read the transactions and enter transactions of their own; in a private meeting, only a specific set of users is allowed to read or enter transactions; in read-only meetings, anyone can read the transactions, but only a specific subset of users (usually just a moderator or some automatic process that forwards mail messages) can enter transactions.

To find out what public and read-only meetings are available for you to attend, you can read the transactions of the meetings New_meetings and Athena_meetings; these meetings have as transactions announcements of most available public meetings.

There are three interfaces to the Discuss program:

(Each of these methods is also accessible via the Dash menubar, under the Communications menu.)

If you are a beginning user, you may prefer the X-based browser.

The following sections describe each of these interfaces, and also list some of the interesting public meetings you can attend via Discuss. No matter which browser you decide to use, you should skim the section on the command-line form of Discuss -- that section introduces all the features of Discuss, including some mentioned only in passing in the sections on xdsc and Emacs Discuss.



Command Line Interface to Discuss

The original method for accessing Discuss is a command-line oriented shell. You enter the command discuss, then type commands at the discuss: prompt to read transactions, enter new ones, add and delete meetings, and so forth. This command oriented interface is not the simplest method for interacting with Discuss (for an interface that's easier to use, see the X-based browser xdsc). You may want to skim this command line section however, to get an introduction to some of the concepts behind Discuss.

Note that most of the commands in Discuss have a long, descriptive name, and at least one abbreviation. For instance, add_meeting, add_mtg, and am do the same thing. The same is true of meeting names. For example, you can refer to the Everybody meeting as eve. In this document, when a new command or meeting is introduced, the long name will be mentioned first, and the shortest name will be used in examples.


Starting Discuss

To start Discuss, type the following command at the athena% prompt (or select the Text-based Discuss Reader option from the Discuss submenu of the Communication menu of the Dash menubar):

  discuss
Discuss uses a file in your home directory called .meetings to keep track of the meetings you attend and related information. The first time you use Discuss, this file does not exist and Discuss asks you whether it should create it:

  athena% discuss
  discuss: No such file or directory
If you are using Discuss for the first time, or if you have only used the experimental version of Discuss, you need to run the dsc_setup command from the shell.

  Run dsc_setup now? (y or n) y
  
  Running dsc_setup...
    Creating .meetings file:
    done.
  discuss:
From now on, when you type discuss, you go straight to the discuss: prompt:

  athena% discuss
  Discuss version 1.6.  Type '?' for a list of commands.
  
  discuss:
You are now in the Discuss program, ready to give it a command. Discuss gives every new user two meetings to attend. These are New_meetings and Everybody. New_meetings is for announcements of new meetings, and Everybody is for announcements or discussions of general interest.


Finding and Adding Interesting Meetings

To list the meetings that you are currently attending (i.e., whose transactions you are able to read), use the list_meetings (lsm) command at the discuss: prompt.

  discuss:  lsm
   Flags  Meeting
   -----  -------
   c      New_meetings, new_meetings
   c      Everybody, eve
The transactions in the New_meetings meeting are the announcements of some of the public meetings that have been created -- in other words, New_meetings lists many public meetings you can join. (The second name in the meetings list is an abbreviation; every Discuss meeting has at least two valid names.) Since you are automatically attending the New_meetings meeting, you can just goto (go, g) it:

  discuss:  g  new_meetings
  New_Meetings meeting:  455 new, 455 last.
Now you can list (ls) all of the transactions in the meeting. In this case, with over 400 transactions, there are far too many to print on one screen. (See the section on Specifying Transactions to see how to list a range of transactions.) For now, you can list them all and press Ctrl-C to interrupt the flow if you see something interesting.

  discuss:  ls  
   [0001]*  (2) 10/29/86 21:54 wesommer   Reason for this meeting
   [0034]   (9) 04/10/87 23:54 rlk        Athena_Flames meeting
   [0045]  (10) 04/11/87 04:24 spook      Athena_Meetings meeting
     .
     .
     .
   [0453]   (8) 08/12/92 10:20 carla      Help_Desk_Info meeting
   [0454]   (8) 08/13/92 03:28 tom        External Outages meeting
   [0455]   (8) 08/13/92 10:09 pjb        Fall_Readiness_92 meeting
The columns (left to right) tell you the transaction number, the length of that transaction (in lines), the date and time it was entered, the username of the person who entered it, and the title or subject of the transaction. The asterisk indicates the current transaction; if a command requires a transaction specifier and you omit it, it will use the current transaction as default.

To read a transaction, use the print (pr, p) command. (Despite its name, this command simply displays the transaction on your screen; it does not send it to a printer.) For example:

  discuss:  p  301
  [0301]  qjb@ATHENA.MIT.EDU New_Meetings 02/28/91 22:22 (8 lines)
  Subject: Bogus_Thoughts meeting
    Meeting Name:  Bogus_Thoughts
    Host:          charon.MIT.EDU
    Pathname:      /usr/spool/discuss/bogus
    Participation: Public


  When you think of something that is so stupid it's funny, this
  is the place to mention it.
  --[0301]--
  ^L
While you are attending the New_Meetings meeting, you can use the add_meeting (add_mtg, am) command to add a meeting to your .meetings file (this enables you to attend the meeting). The add_meeting command uses the information in the Host and Pathname fields to find the meeting; you don't need to worry about this. So, to add a meeting, use the number of the transaction in New_Meetings:

  discuss:  am  301
  Transaction [0301] Meeting Bogus_Thoughts (bogus) added.
If you know the host and the meeting name, but don't want to search for the meeting announcement, you can use the add_meeting command with a full pathname of the meeting, separating the host and the pathname with a colon. The pathname is almost always /usr/spool/discuss/short-meeting-name. For example, you could have added the bogus meeting added above this way:

  discuss:  am  charon:/usr/spool/discuss/bogus
  Meeting Bogus_Thoughts (bogus) added.
Your list of meetings will now look like this:

  discuss:  lsm
   Flags  Meeting
   -----  -------
   c      New_meetings, new_meetings
   c      Everybody, eve
   c      Bogus_Thoughts, bogus
The c in the Flags column (for ``changed'') indicates that the meeting has new transactions that you have not read.

There are other meetings like New_Meetings that contain announcements of new meetings, most notably Athena_Meetings.

In summary, attending a meeting (i.e., adding a meeting to your .meetings file) requires the following steps:

  1. Attend a meeting that contains announcements of new meetings, such as the New_meetings meeting (goto new_meetings)

  2. Find the announcement of the meeting that interests you (using list and print)

  3. Add the meeting to the set of meetings you are attending (using add_meeting with the transaction number in the new_meetings meeting)


Checking for Changed Meetings

As noted above, the list_meetings command specifies which meetings have new transactions (i.e., which meetings have changed) by showing a c in the Flags column. To show only meetings that have changed, use the check_meetings command. Compare the two commands:

  discuss:  lsm
   Flags  Meeting
   -----  -------
	  New_meetings, new_meetings
   c      Everybody, eve
   c      Bogus_Thoughts, bogus
  
  discuss:  ckm
   Flags  Meeting
   -----  -------
   c      Everybody, eve
   c      Bogus_Thoughts, bogus
If there are no changed meetings, check_meetings will return:

  discuss:  ckm
  discuss (check_meetings): No changed meetings
As you accumulate meetings, you'll find ckm very useful, although it tends to be slower than lsm.

After you've checked your meetings with ckm, you can use the next_meeting (nm) command to advance to each changed meeting. This command is a variation of the goto command; it goes to the first listed changed meeting.


Specifying Transactions

This section describes ways to refer to individual transactions or sets of transactions in Discuss commands that take transaction specifiers.

To refer to single transactions, you can just use the number of the transaction. For example, to display the first transaction in the current meeting, type:

  discuss:  p  1
You can also specify a transaction relative to the current transaction, relative to other transactions on the same theme (i.e., transactions in the same "chain"), or relative to the meeting as a whole. These specifications include:
  -------------------------------------------------------------
  Specifier(s)    Matches
  -------------------------------------------------------------
  current or .    the current transaction

  prev or p       the previous transaction in the meeting
  next or n       the next transaction in the meeting

  first or f      the first transaction of the meeting
  last or l       the last transaction of the meeting

  nref            the next transaction in the current chain
  lref            the last transaction in the current chain

  fref            the first transaction in the current chain
  pref            the previous transaction in the current chain
  -------------------------------------------------------------
(A chain is an original transaction plus all the transactions that are replies to that transaction.)

To specify a range of transactions, separate the specifiers by a comma or colon (but don't include any spaces after the comma or colon). For example, to print all the transactions from the current one to the end, type either of the following:

  discuss:  p  current,last
  discuss:  p  .,l
You can use simple arithmetic with the + and - symbols. For example, to list the last 20 transactions in the current meeting, type:

  discuss:  ls  last-19,last
You can also use some Discuss commands (e.g., list and print) to affect several transactions at once, not just individual transactions. Some pre-defined specifications you can use include:
  -------------------------------------------------------
  Specifier    Matches 
  -------------------------------------------------------
  all          all transactions in the current meeting
  new          all unseen transactions in current meeting
  aref         all transactions in the current chain
  -------------------------------------------------------
For example, to get a list of the new transactions in a meeting, you could do the following:

  discuss:  g  eve
  Everybody meeting:  2 new, 4689 last.
  discuss:  ls  new
   [4688]*  (9) 08/31/92 11:47 vanharen   Re: hurricane relief?
   [4689]   (5) 08/31/92 17:48 rjbarbal   Re: postering, absence of
(The goto and list commands are covered in the section on Reading Transactions.)

To read all the transactions in a chain, use print aref. One of the transactions in the chain must be your current transaction for references to aref to work.

These are the basic transaction specifiers. There are other options available. For more information, type:

  discuss:  help  specifiers

Reading Transactions

Reading Transactions in a Single Meeting

The basic command to display a transaction on the screen is print (pr, p). The commands next and prev are shorthand for print next and print prev. (See the section on Specifying Transactions for more information.)

To read transactions, you must be attending the desired meeting. Use the goto command to attend a meeting:

  discuss:  g  eve
  Everybody meeting:  2 new, 4689 last.
To view the currently selected transaction, type print. To view a specific transaction, type a command of the form:

  print transaction_specifier
If you are in a meeting that has new transactions, the current transaction is the last one you read.

  discuss:  p  1
  [0001] srz@ATHENA.MIT.EDU  Everybody  11/11/86 20:14 (3 lines)
  Subject: Reason for this meeting
  This meeting is the everybody meeting, whose purpose is to allow
  people to play with discuss and generate interesting discussion.
  Feel free to put random things in here.
  --[0001]-- (nref = [4681])
  ^L
  
  discuss:  p  425
  [0425] amgreene@ATHENA.MIT.EDU  Everybody  07/16/89 13:46 (9 lines)
  Subject: Theeyyyy're Baaaaacckkkk!!!
  From: <jrock@ATHENA.MIT.EDU>
  To: amgreene@ATHENA.MIT.EDU
  Subject: Theeyyyy're Baaaaacckkkk!!!
  Date: Sun, 16 Jul 89 13:08:20 EDT
  
  Remember the conversation we had yesterday about the Smoots?
  Well, sometime in the past 24 hours, they reappeared!
  Year marks ('88-'92) and all!!
  Wicked-awesome!
  --[0425]-- (nref = [0427])
  ^L
Rather than use explicit transaction numbers, you can also specify transactions relative to the current transaction:

  discuss:  p  next
  [0426] amgreene@ATHENA.MIT.EDU  Everybody  07/16/89 15:06 (22 nes)
  Subject: Announcing quiet.sty
  (I'd like to get maximum exposure on this; please start using it
  if you use LaTeX and let me know what you think...)
     ...
  --[0426]--
  ^L
  
  discuss:  p  prev
  [0425] amgreene@ATHENA.MIT.EDU  Everybody  07/16/89 13:46 (9 lines)
  Subject: Theeyyyy're Baaaaacckkkk!!!
  From: <jrock@ATHENA.MIT.EDU>
  To: amgreene@ATHENA.MIT.EDU
  Subject: Theeyyyy're Baaaaacckkkk!!!
     ...
  --[0425]-- (nref = [0427])
  ^L
So, you could continue to type next until you finish reading all the new transactions.

As you may have noticed in the example above, transaction 425 shows (nref = [0427]) at the end. The nref stands for "Next REFerence". that is, the next reference in a chain of transactions. When someone replies to a transaction, Discuss remembers the links in the chain (actually, the list of transactions with the same subject). Often, the transactions in a chain are sequential, but this is not necessarily true. So, using the specifiers nref and pref (for "Previous REFerence"), you can read through a chain:

  discuss:  p  4413
  [4413] honor@ATHENA.MIT.EDU  Everybody  07/19/92 19:57 (6 lines)
  Subject: elevators and combos
  during the school year, there was talk about how slow the student
  center elevators are.  i think they're even slower now.  has 
  anybody else noticed this?
   ...
  --[4413]-- (nref = [4417])
  ^L
  
  discuss:  p  nref
  [4417] epeisach@ATHENA.MIT.EDU Everybody 07/20/92 23:28 (3 lines)
  Subject: Re: elevators and combos
  The student center elevators are faster by my recolition.
  Probably because it is no longer convenient to press both 
  elevator buttons on the third floor.
  --[4417]-- (pref = [4413], nref = [4420])
  ^L
  
  discuss:
To read all the transactions in the meeting you are attending, type print new, or use combinations of print, p next, and p prev. To read transactions in a same-subject chain, use the specifiers pref and nref.

When you get to the end of a meeting, you can go to the next changed meeting with the command next_meeting (nm).

Reading Transactions in all Changed Meetings

The read_new (rn) command lets you read all new transactions in all changed meetings. This command first checks all your meetings, then goes to each changed meeting in the order in your .meetings file and shows you each of the new transactions. It effectively combines the check_meetings, next_meeting, and print new commands.

As read_new takes you to each meeting or transaction, it asks for confirmation. Press the spacebar to go to the next meeting or next transaction; press q to quit and return to the discuss: prompt:

  discuss:  rn
  Checking meetings...
   Flags  Meeting
   -----  -------
   c      New_meetings, new_meetings
   c      Everybody, eve
  
  Hit space to go to next meeting:  <space>
  
  New_Meetings meeting:  457 new, 457 last.
  Hit space for next transaction:  <space>
  
  [0001] wesommer@ATHENA.MIT.EDU New_Meetings 10/29/86 21:54 (2 lines)
  Subject: Reason for this meeting
  This meeting is intended to provide a central place to announce
  new meetings for discuss in the Athena realm.
  --[0001]--
  ^L
  Hit space for next transaction:
Thus, to read all the new transactions in all the changed meetings, type rn and keep pressing the space bar until you're done.

If you don't want to read all the new transactions straight through, there are other options available. At the Hit space for next transaction: prompt, use one of these responses:

  ------------------------------------------------
  Option       Action
  ------------------------------------------------
  Space or n   show next transaction
  c            catch up on transactions in meeting
  p            show previous transaction
  ^R           review current transaction 
  q            quit from read_new
  r            reply to current transaction
  t            enter a new transaction
  ?            show this list
  ------------------------------------------------
From the Hit space to go to next meeting: prompt, you have these options:
  -----------------------------------------
  Option       Action
  -----------------------------------------
  Space or n   go to next meeting
  p            show previous transaction
  ^R           review current transaction
  q            quit from read_new
  r            reply to current transaction
  t            enter a new transaction
  ?            show this list
  -----------------------------------------
Note that these commands are not valid when you're in the middle of a message.


Entering New Transactions

Replying to a Transaction

Use the reply (rp) command to reply to a specific transaction. To do this, you must either know the tranaction number, or make that transaction current by using the print command (rp alone replies to the current message):

  discuss:  rp 609
  Subject: Re: testing
  Enter transaction; end with ^D or '.' on a line by itself.
  This is a reply.
  ^D
  Transaction [0610] entered in the Test_Meeting meeting.
Note that ^D refers to Ctrl-D, not caret (shift-6) D. The links between your reply and its reference are automatically set, and Re: is added to the subject line.

  discuss:  p  609
  [0609] belville@ATHENA.MIT.EDU Test_Meeting 08/21/89 11:30 (1 line)
  Subject: Re: testing
  foo
  ^L
  --[0609]-- (pref = [0606], nref = [0610])
  
  discuss:  nref
  [0610] belville@ATHENA.MIT.EDU  Test_Meeting  08/21/89 11:44 (1 line)
  Subject: Re: testing
  This is a reply.
  ^L
  --[0610]-- (pref = [0609])

Entering a Transaction with a New Subject

Use the talk (t) command to submit a new transaction to the current meeting. You are prompted for a subject, then for the text of the transaction:

  discuss:  t
  Subject: New ideas
  Enter transaction; end with ^D or '.' on a line by itself.
  I need some.
  . 
  Transaction [0611] entered in the Test_Meeting meeting.

Deleting a Transaction and Restoring a Deleted Transaction

If you decide that the transaction you entered should not be there, you can remove it. Only the owner of a transaction (the person who entered it), or someone with delete access to the meeting (see the section on Access Control) is allowed to delete a transaction. To do this, use the delete (dl, d) command:

  discuss:  d  611
Notice that Discuss does not tell you anything about the procedure, but you can see that it did work:

  discuss:  p  611
  discuss (print): No transactions selected
If you delete a transaction by mistake, the same people who were allowed to delete it are allowed to restore it. Use the retrieve (rt) command.

  discuss:  rt  611
Transaction numbers are unique. When you delete a transaction, the next transaction entered takes the next transaction number, skipping the seemingly deleted transaction's number. This explains why you may find gaps in the numbering sequence, and how it is possible to retreive a transaction even after many new transactions have been entered. The deleted transactions can be retrieved any time until a system administrator cleans up the meeting.

Using a Different Editor When Entering Transactions

When using reply or talk, you can specify an alternate editor by using the -editor switch on the command line. This is helpful if you want to enter a long transaction, because the default editor doesn't allow for much editing. For example:

  discuss:  t  -ed  emacs
  Subject:  foo
This tells Discuss to start up an Emacs window. Type your message, editing and saving like any Emacs file (using the filename provided by Discuss -- don't worry about what it means), exit Emacs, and your transaction will be entered.

If you consistently want to use Emacs (or some other editor), you can set the environment variable DISCUSS_EDITOR by placing an appropriate line (e.g., setenv DISCUSS_EDITOR emacs) in your .environment file.


Access Control

Some Discuss meetings have different levels of access than others. For instance, some meetings are private (only certain people can read them). Some are read-only (although you can read the transactions, you cannot enter new transactions). The procedure for granting privileges to a user uses an access control list.

The "chairman" (or "chairmen") of a meeting are allowed to change the access control list.

The possible access modes are:

  ---------------------------------------------------------------
  Mode  Access
  ---------------------------------------------------------------
  a     "answer": user can respond to transactions in the meeting

  c     "chairman": user is a chairman, and can edit the access
        control list for the meeting (does not automatically
        imply any other access privilege)

  d     "delete": user may delete or retrieve from deletion any
        transaction in the meeting entered by any user

  o     "owner": user may delete or retrieve from deletion any
        transaction in the meeting entered by that user

  r     "read": user may read or list any transaction in the
        meeting

  s     "status": user may find out summary information about
        the meeting (e.g., list the access control list, find
        the number of transactions, etc.)

  w     "write": user may add new transactions to the meeting
        (other than a reply)
  ---------------------------------------------------------------
To find out who has what kind of access for a meeting, use the list_acl (la) command (refer to the table above for the meanings of the letters):

  discuss:  g  eve
  Everybody meeting:  4 new, 4685 last.
  discuss:  la
  acdrosw    srz@ATHENA.MIT.EDU
  arosw      *
  discuss: g  test
  Test_Meeting meeting:  0 new, 632 last. (You are a chairman.)
  discuss: la
  acdrosw    *
For the Everybody meeting, user srz has chairman (c), delete (d), answer (a), read (r), owner (o), status (s), and write (w) access. Everybody (denoted by *) has answer, read, owner, status, and write access. In the Test_Meeting meeting, everybody has all access modes including chairman privileges. (Note that when we went to test, we were informed of the chairman privileges.)

Most public meetings have an access control list similar to that of the Everybody meeting (i.e., one or more people have full acdorsw access, and everyone else has arosw access). In contrast, a private meeting typically has a list consisting of only individual usernames with associated access permissions: if you go to a private meeting that you can access and type la, you get this list, with no access for *. (If you don't have access to a private meeting, you can't even go to it.)

If you are the chairman of a meeting and would like to set access for a user or all users, use the set_acl (sa) command with the desired access modes and username. To give everyone access to the meeting (except chairman and delete), type:

  discuss: sa  arosw  *
  discuss: la
    ...
  a  orsw    *
Notice that Discuss does not tell you that it has successfully completed the set_acl request.

To give someone else full privileges, type:

  discuss: sa  acdorsw  joeuser
  discuss: la
  acdorsw    joeuser@ATHENA.MIT.EDU
    ...
To delete someone's access, use the delete_acl (da) command with the username:

  discuss: da  joeuser
  discuss: 
To prevent someone from attending the meeting, use set_acl null joeuser, rather than using delete_acl, or joeuser will default to the modes for *.


Command Summary

To find more information on any of these topics, type help topic-name at the discuss: prompt. The options and arguments (except transaction specifiers) for each command are listed below the description line.

Commands for Transactions

  -----------------------------------------------------------
  Command                           Action
  -----------------------------------------------------------
  delete, dl, d                     delete a transaction
  list, ls                          list transactions
    -long_subjects (-lsj)
  next                              show next transaction
  nref                              show next reference
  pref                              show previous reference
  prev                              show previous transation
  print, pr, p                      show a transaction
  read_new, rn                      show new transactions in
                                      changed meetings
  reply, rp                         reply to a transaction
    -editor editor_name
    -meeting meeting_name
    -no_editor
    -subject
  retrieve, rt                      retrieve a deleted
                                      transaction
  talk, t                           enter a new transaction
    -editor (-ed) editor_name
    -meeting (-mtg) meeting_name
    -no_editor (-ned)	
  write, w                          write a transaction into
    filename                          a file

  -----------------------------------------------------------

Commands for Access Control Lists (ACLs)

  -----------------------------------------------------------
  Command                           Action
  -----------------------------------------------------------
  delete_acl, da                    remove principal from ACL
  list_acl, la                      list ACL
  set_acl, sa                       add principal to ACL
  -----------------------------------------------------------

Commands for Meetings

  -----------------------------------------------------------------
  Command                           Action
  -----------------------------------------------------------------
  add_meeting, add_mtg, am          add a meeting to list of those
    meeting_name                    to be searched          
  announce_meeting, ann_mtg, anm    announce a meeting's existence
    -public
    -private
    meeting-to-announce
    meeting-to-announce-in
  check_meetings, ckm               check for changed meetings
    meeting_name(s)
    -no_list (-nls)
  delete_meeting, del_mtg, dm       delete meeting from list of
    meeting_name                    those to be searched
  goto, go, g                       go to specified meeting
    meeting_name
  list_meetings, lsm                list meetings
    meeting_names
    -brief
  next_meeting, nm                  go to next changed meeting
    -ls
  read_new, rn                      print new transactions in
                                    changed meetings
  -----------------------------------------------------------------

Other Commands

  -----------------------------------------------------------------
  Command                           Action
  -----------------------------------------------------------------
  help                              show help file on topic
    topic-name
    access                          help on access control lists
    specifiers, spec                help on specifying transactions
  list_requests, lr, ?              list available commands
  quit, exit, q                     quit
  set                               set options
    seen transaction_specifier
  status, st, .                     show status information
  switch_off, swf                   switch off flags
  switch_on, swn                    switch on flags
  -----------------------------------------------------------------


X Interface to Discuss: xdsc


Using the X Interface to Discuss: xdsc

A window-oriented version of Discuss, xdsc, includes command buttons and pull-down menus, with keyboard shortcuts for most commands. (As an X Windows application, xdsc is not available over dialup or remote login).

To start xdsc, select the X Discuss Reader option from the Discuss submenu of the Communication menu of the Dash menubar, or simply type:

  athena% xdsc &
This pops up the xdsc interface. If you attend a lot of Discuss meetings, it may take a while for xdsc to gather information about all your meetings and pop up its window, but it does appear eventually. The window is divided into five areas:


Meetings Mode

The upper text window initially contains a listing of the meetings you attend. The current meeting has a plus sign (+) next to its name; each changed meeting has a c next to its name. To go to a meeting, you can:

The commands in the upper command line are of a global nature:
 -------------------------------------------------------------------
 Command    Action
 -------------------------------------------------------------------
 Down       Moves the current meeting to the next one with unread
            transactions.

 Up         Moves the current meeting to the previous one with
            unread transactions.

 update     Queries Discuss for an updated meeting list.  The new
            list reflects any transactions which may have come in
            since the last update, as well as any changes you may
            have made to the list of meetings attended.

 configure  Pops up a menu with two entries: add meeting and delete
            meeting, which are used to modify the list of meetings
            you attend.  Selecting one of these items pops up a
            dialog box with fields to fill in.  If the current
            transaction is the announcement of a new meeting, the
            fields are already filled in, and you can confirm the
            action by pressing the Add or Delete button at the
            bottom of the dialog box.

 mode       Pops up a menu with two entries that affect what gets
            displayed in the upper window: transactions (display a
            list of transactions in the current meeting) and
            meetings (display a list of meetings attended).

 HELP       Displays a help window, briefly explaining what the
            buttons currently on the screen do.  To get rid of the
            help window, click on the dismiss button at the bottom.

 QUIT       Exits the application.
 -------------------------------------------------------------------
If this is the first time you have used Discuss in any form, only the two default meetings are listed, New_meetings and Everybody.

To add a new meeting, first double-click on the line for New_meetings in the upper text pane. Then move through meeting announcements with the next and prev commands. When you come to the announcement for a meeting that you would like to attend, select add meeting from the configure menu and click on the Add button at the bottom of the dialog box. (You need to click on update before these new meetings will appear in your list of meetings.)


Transaction Mode

When you are in transaction mode, you see a list of transactions in the upper text pane, instead of a list of meetings, and this command is now active in the upper command area:
 -------------------------------------------------------------------
 Command        Action
 -------------------------------------------------------------------
 show           Pops up menu for specifying which transactions are
                listed (available in transactions mode only): unread
                lists all unread transactions; all lists all
                transactions (this can take a while!); back ten adds
                the ten immediately previous transactions at the
                beginning of the list (usually used for searching
                backwards for a recent transaction).
 -------------------------------------------------------------------
The lower text pane contains the text of the current transaction. The lower command area contains commands that operate on the current transaction:
 -------------------------------------------------------------------
 Command        Action
 -------------------------------------------------------------------
 next           Moves to next transaction in current meeting.

 prev           Moves to previous transaction in current meeting.

 Next in chain  Moves to the next transaction in the same chain.

 Prev in chain  Moves to the previous transaction in the same chain.

 goto           Pops up a menu with options for moving to specific
                transactions: number gives a dialog box prompting
                for a specific transaction number to go to; first
                moves to the beginning of the current meeting; end
                moves to the end of the current meeting.

 enter          Pops up a menu with options to enter a transaction
                in the current meeting: reply adds the new
                transaction to the current chain; new transaction.
                enters the transaction as a new item.  Either option
                pops up a dialog box where you enter your subject
                and text (for replies, the subject line is filled in
                by default; for new transactions, the subject line
                is blank).  You can use standard Emacs commands to
                edit your transaction.  When you are done, press the
                Send button to enter the transaction into the
                meeting.  Press Abort to cancel the transaction.

 write          Writes the current transaction to a file.  A dialog
                box asks you to enter a filename.  Press the Write
                button to write the transaction to this file.
 -------------------------------------------------------------------

Keyboard Command Equivalents

You can access every xdsc function with one or two keystrokes. The keyboard equivalent for any button is always the first letter of its label, and pressing this key has exactly the same action as clicking on the button itself. Note that uppercase and lowercase letters are distinct. For example, the lowercase n and p keys are synonyms for the next and prev buttons, for going to the next and previous transactions, while uppercase N and P stand for Next in chain and Prev in chain.

If a button triggers a menu, the menu appears and remains visible. Pressing the first letter of a menu entry has the same effect as choosing that menu entry with the mouse. Any key that does not match a menu entry closes the menu without any action.

When a simple popup dialog box appears, pressing Return takes the default action. You can close a dialog box by pressing Esc. For complex dialog boxes (those with more than one text field), Return moves between the text fields and C-Return makes it do its default action.

You can use the arrow keys to move the text caret up and down in the upper text window. Pressing Return then reads the meeting or transaction that the caret is on.

To read the marked transaction or meeting, press Return.

Finally, the space bar "does the right thing". If you are reading a transaction, the space bar scrolls one page down. If you are at the end of a transaction, it moves to the next transaction; if you are at the end of a meeting, it moves to the next changed meeting. If there are no further transactions to read, it does nothing. The delete (backspace) key moves in a similar way, but backwards.



Emacs Interface to Discuss


Using Discuss within Emacs

Many people prefer to use Discuss within their Emacs environment: Emacs is a familiar, convenient environment for many users (see the document Emacs on Athena if you are not already familiar with Emacs), and the Discuss commands in Emacs, like many Emacs commands, are often single key strokes.

Because Emacs cannot perform an initial setup of your Discuss files, you need to have run the regular discuss command or the X-based xdsc command at least once before the Emacs version of Discuss will work for you (this is once ever, not once each session). Once you have run Discuss successfully in one of these other ways, you can start Discuss in an existing Emacs window by typing:

  M-x discuss
(NOTE: Emacs Discuss may not work properly on Sun workstations: beware!) This command creates an Emacs buffer called *meetings* which lists all the meetings to which you subscribe, and checks to see which ones have changed. This listing looks something like this:

  Flags   Meeting name
  -----   ------------
	  New_Meetings, new_meetings, newmtgs
  c       Everybody, eve
  c       Bogus_Thoughts, bogus
The c in the Flags column designates a changed meeting.


Meetings mode

When you are in the *meetings* buffer, you can use the following commands:
  ------------------------------------------------------------------
  Command       Action
  ------------------------------------------------------------------
  n or Space    move cursor to next meeting with unread transactions
  p or Delete   move cursor to previous meeting with unread
                transactions
  down-arrow    go to next line
  up-arrow      go to previous line
  l             list meetings
  g             go to meeting listed on line
  s             print number of new messages in meeting
  a             add meeting
  d             delete meeting
  c             mark a meeting as read (catch up)
  q             quit Discuss mode
  ------------------------------------------------------------------
The n, p, Space, and Delete commands do not actually "go" to the next or previous meeting, rather, they move the cursor to the next or previous line in the meeting list. You then press g to go to that meeting and read the transactions.

The a command prompts you for the hostname of the desired meeting, then for the pathname (e.g., bloom-picayune, then /usr/spool/discuss/quotes).

The d command marks the meeting on that line for deletion after asking you for confirmation.

The c command marks all the transactions in that meeting as read.

When you press g to go to a meeting, an Emacs buffer named after the name of the meeting is created, and the first unread transaction is displayed. If there are no unread transactions, the last transaction is displayed.


Transaction mode

When you are in transaction mode, you may use any of the following commands:
  --------------------------------------------------------------
  Command    Action
  --------------------------------------------------------------
  Space      scroll to next screen of this transaction
  Delete     scroll to previous screen of this transaction
  n          move to next transaction
  p          move to previous transaction
  =          list unread transactions
  M-n        move to next transaction in chain
  M-p        move to previous transaction in chain
  >          move to last transaction in meeting
  <          move to first transaction in meeting
  g          goto transaction
  d          delete transaction (and move forwards)
  C-d        delete transaction (and move backwards)
  R          retrieve transaction (undelete transaction)
  q          quit meeting
  r          reply to this transaction
  f          forward this transaction via mail
  t          enter a new transaction ("talk")
  c          catch up, marking the rest of the transactions read
  a          add meeting (to ~/.meetings file)
  --------------------------------------------------------------
The q (quit) command returns you to the *meetings* buffer. If you have not read all the new transactions in that meeting, you return to the same meeting in the *meetings* buffer. If you have read all the new transactions, you return to the next changed meeting line.

The g (goto) command asks you for the number of the transaction you want to see.

Both the r (reply) and t (talk) commands start up a *discuss-unprocessed* buffer in which you can compose a message. The r command splits your Emacs window into two buffers so you can see the message to which you are replying as well as the message you are composing. It automatically inserts the subject line as Re: <subject of previous message>. The t command gives you a fresh composition buffer and lets you insert your own subject line. Use regular Emacs editing commands to compose your message. When you are done, both r and t have the same commands to close:

  -----------------------------------------------------
  Command    Action
  -----------------------------------------------------
  C-c C-c    discuss-send (enter the transaction)
  C-c C-]    discuss-abort-edit (exit without entering)
  -----------------------------------------------------
In transaction mode, the a command only works on new meeting announcements. It does not prompt you for the hostname and pathname, as in meetings mode.


Summary of Emacs Discuss Commands

To read all of the new transactions in all of the meetings already in your ~/.meetings file, follow these steps:
  --------------------------------------------------------------
  Step                                               Command
  --------------------------------------------------------------
  Start Emacs discuss and check meetings:            M-x discuss
  Go to first meeting line with new transactions:    n
  Go to that meeting:                                g
  Read the whole transaction:                        Space
  Go to next transaction (repeat until done):        n
  Go back to list of meetings:                       q
  Go to next meeting (repeat until done):            g
  --------------------------------------------------------------


Partial List of Public Discuss Meetings

------------------------------------------------------------------------------
Long name, short name        Transaction Number * and Description **
------------------------------------------------------------------------------
New_Meetings, new_meetings    -   Announcements of new meetings
Athena_Meetings, amtgs        45  Announcements of Athena-specific meetings
------------------------------------------------------------------------------
Athena_Flames, aflames        34  Flames generally related to Athena
Athena_MSGS, msgs            105  Messages of general interest        
Athena Software Suggestions, A51  Archive of software-suggestions@athena list
  suggest
Forwarded from the           411  Archive of bboard@lcs.mit.edu mailing list
  mit.bboard newsgroup,           (like Athena_MSGS but broader audience)
  mit.bboard
Bogus_Thoughts, bogus        243  What it sounds like
Bummers, bum                 210  What it sounds like
Central_America, ca          163  Nightly update archives of .plan files
Cheery_Thoughts, ping        329  What it sounds like
Cliff_Stoll_Wannabes, cswb   390  Discussion of security and privacy on Athena
Compact_Disc                 148  cd's for sale and other cd-related discussion
Depressing_Thoughts,coatrack 166  What it sounds like
Discuss_development, discuss 106  Includes archive of bug-discuss mailing list
Emacs_Hackers, emackers      295  Discussion of complex Emacs hacks
Everybody, eve                -   Discussions of general interest
Flaming_Thoughts, napalm     236  What it sounds like
Free_Food, munch             325  Announcements and tracking of free food
Freshman_Housing_Committee,  222  Archive of fhc@athena mailing list
  fhc
Hillel, hillel               128  Discussions relating to the Jewish community
Institute_Journalism_Review, 220  Discussion of campus publications
  ijr
InterFaith_Relationships,    299  What it sounds like
  interfaith
Law, law                     242  Discussions of law and law-related subjects
Locker Announcements,lockers A54  Announces non-Athena-maintained lockers
Military_Actions, war        289  Discussion of (potential) military actions
Musical_Notes, music         244  Musical humor
Obituaries, obits            315  Obituaries for people of note
pipe_dreams, organ           257  Wouldn't it be nice if....
postscript_hacks, pshack     113  Discussions of postscript ideas, hacks, news
Professors_Quote_Board, pqb  143  Records of sayings of MIT professors
Punsters, puns               131  Fed with horrible/bad/sometimes good puns
quotes, quotes                80  Records of amusing quotes of friends/enemies
Redhead_Maintenance,redheads 112  Discussions of redheads
RISKS Forum, risks            94  Fed with RISKS Forum mailing list
Scary_Thoughts, err          181  What it sounds like
Science Fiction & Fantasy,   256  What it sounds like
  sff
Star Trek - The Next         279  Discussion about the TV show and Star 
  Generation, sttng               Trek in general
Stories, stories              52  Archive of stories@athena mailing list
Survival_Discussion, survive 194  Discussion of various survival aspects
Techinfo                     230  Discussion of the TechInfo on-line
                                  information system
Test_Meeting, test           179  For testing Discuss
Theology, god                393  What it sounds like
Virus_Discussion_List, virus 182  Archive of VIRUS-L mailing list
Xdsc_Suggestions, xdsc       285  Suggestions and bug reports about xdsc
Zephyr_Comments, zcmts       119  Archive of zephyr-comments@athena mail list
------------------------------------------------------------------------------
*  Transaction number is number in New_Meetings; a number preceded by "A"
   is number in Athena_Meet
** Often the first transaction of a meeting gives more information.


MIT Information Systems Send a comment on this page