Ask SIPB - August 27, 2003

Want to learn more about Zephyr? Need to figure out if someone is logged in and communicate with them quickly? In this column, part 5 of 6 of our introductory orientation columns, we cover the basics of using Zephyr.

What is zephyr?

Zephyr is a powerful, built-in instant messaging system for Athena. While originally designed to notify users of official notices, it has since expanded in its purpose, allowing users to communicate quickly and easily.

How can I find out if one of my friends is logged in?

You can use the zlocate command to determine whether someone is logged in:

athena% zlocate username

This will bring up a list of hostnames of Athena machines that person is logged into currently. If you get a message that says Hidden or not logged in, this can mean several things. First, it can mean that person is not logged into an Athena machine. It can also mean that for some reason, that person has decided to hide himself or that the person has turned off his ability to receive zephyr messages by terminating his zwgc process. Note that if you try to zlocate a username that does not exist, you will still receive the Hidden or not logged in message.

Note that Athena cluster computer hostnames are based on the building and room number of the cluster. For example, if zlocating a friend shows that he is logged into w20-575-67 and m66-080-1, that means that he is logged into a computer in room 575 in building W20 (Student Center) and a computer in the basement cluster (room 080) of building 66.

How can I make use of a .anyone file and znol?

The .anyone file is a buddy list. By creating a text file named .anyone in your home directory with a list of Athena usernames (one on each line), you can easily see which of them is logged in. To see who on your .anyone file is logged in, type:
athena% xzul &
For a more informative, non-refreshing display, type:
athena% znol
After issuing znol, you will receive zephyrgrams when people in your .anyone file log in or log out, if they have set their exposure appropriately. If you wish for this to happen automatically upon logging in, append znol to the end of the .startup.X and/or .startup.tty files in your home directory. (You may have to create the files if they don't exist already.)

How do I send a personal zephyr?

To send a zephyr to other users, type:
athena% zwrite username1 username2 username3
where username1, username2, and username3 are the usernames of the intended recipients. You can add as many (or as few) usernames as you want to the zwrite command. If you zephyr multiple people, and you wish to add a CC line to inform them who you are zephyring, add the "-C" flag right after the zwrite. Keep in mind that command line options for zwrite are case-sensitive, so -C is not the same as -c.

What are zephyr classes and instances and how do I subscribe to or unsubscribe from them?

Zephyr classes and instances allow groups of people to have conversations via Zephyr. Zephyr classes are slightly more private than instances, since you must know the name of a Zephyr class to be able to subscribe to it. Zephyr classes have sub-channels within them called instances. (Although the terms "class" and "instance" come from object-oriented computer programming, their meanings are different in the context of Zephyr.)

A Zephyr class exists as long as at least one person is subscribed to it, so if you want to use a new Zephyr class to talk with a group of friends, just come up with a name, and make sure you and your friends are subscribed to that class.

To temporarily subscribe to a Zephyr class for just your current Athena session, type:

athena% zctl sub class_name \* \*
To subscribe to a Zephyr class for current and future Athena sessions, type:
athena% zctl add class_name \* \*
To temporarily unsubscribe from a Zephyr class, type:
athena% zctl unsub class_name \* \*
To unsubscribe from a Zephyr class for current and future Athena sessions, type:
athena% zctl del class_name \* \*
To subscribe to or unsubscribe from a Zephyr instance, you should use class MESSAGE, and the name of the instance in place of the first \*. For example, to subscribe to white-magic
athena% zctl add MESSAGE white-magic \*

How do I send a zephyr to a class or an instance?

To send a zephyr to an instance, type:
athena% zwrite -i instancename
This changes the instance you are sending to from PERSONAL to instancename, and by default sends to the class MESSAGE. For example, zwrite -i help would send a zephyrgram to the instance help, and anyone who had subscribed to the help instance would receive the zephyrgram.

To send a zephyr to a class, type:

athena% zwrite -c classname
This sends a zephyrgram to class classname instead of class MESSAGE. By default, it will send to the instance PERSONAL within class classname. To send a zephyr to an instance within a class, type:
athena% zwrite -c classname -i instancename

Capitalization does not matter in the names of Zephyr classes and instances. For example, zwrite -i white-magic is the same as zwrite -i WHITE-MAGIC, which is the same as zwrite -i WhIte-mAGiC, etc. Anyone subscribed to the instance white-magic will receive zephyrgrams sent with any of these capitalizations.

Also note that people will often refer to zephyr classes and instances by -c and -i respectively. For example, -c help -i food would refer to zephyr instance food within the zephyr class help.

What useful zephyr classes and instances are there?

For notifications of events affecting the network, you can subscribe to -i network. This is not an officially supported channel, however, meaning that information is not always sent here, and this is not a guaranteed way to contact the network group.

As mentioned in Friday's column, 3-DOWN provides information about both scheduled and unscheduled network and service outages. To receive updates every time the information on 3-DOWN changes, you can subscribe to -c 3down.

If you'd like to get zephyr notification when you receive new mail, you can subscribe to -c mail. If you have SpamAssassin set up, as described in the March 14, 2003 column, you can subscribe to -c mail -i inbox to receive notification only for non-spam messages.

Finally, for help on any topic you can think of, you can subscribe to -c help and send zephyrs there with your questions. Other people who have also chosen to subscribe to -c help may then respond. If you know the answer to a question, you are encouraged to participate as well and help others.

Keep in mind that when send zephyrs to classes, it is customary to also use an instance name to specify the subject, e.g.:

athena% zwrite -c help -i motorcycles

What are personal zephyr classes and what are they used for?

Personal zephyr classes can be used for a variety of things, including just rambling about how your day is going, what's happening in your life, commentary about conversations on other zephyr classes, or just other random stuff. In general, users choose the class based on their usernames, and friends subscribe to these classes.

For example, if the user named sipbtest wanted to communicate with a group of his friends, he could send zephyrs to class sipbtest, and ask his friends to subscribe to class sipbtest. In addition, random acquaintances often subscribe to the personal zephyr classes of people they know.

If you are interested in personal zephyr classes, it may be a good idea to subscribe to the zephyr classes corresponding to everyone in your .anyone file. Many of your friends may be using their personal zephyr classes already.

I don't like this interface. What other ways of receiving zephyrs are available?

"Owl" as an easy-to-use text-mode Zephyr client. owl is in the ktools locker and can be run like this:
athena% add ktools
athena% owl
The most important command to know in owl is 'h', which brings up the online help. Here is quick summary of the other commonly used keys:

<up> <down>move up and down between zephyrgrams
<left> <right>scroll around within long zephyrgrams
zsend a zephyrgram (you can use -C, -c and -i just as with zwrite)
rreply to current zephyrgram
dmark current zephyrgram for deletion
xdelete marked zephyrgrams
lshow list of online users (equivalent of znol)
:q<enter>quit owl

If you are interested in learning more about owl, check out the owl webpage: http://web.mit.edu/ktools/www/owl.html

You can also use owl-beta, currently version 2.0.7, which has some advanced features, including the ability to log into AIM. Though other programs, such as gaim in the im locker provide more familiar interfaces for using AIM, owl-beta can provide one convenient interface for both instant message protocols. Keep in mind, though, that this is a beta version, and may contain bugs. To run owl-beta, type

athena% add ktools
athena% owl-beta
In order to log into AIM, first type ":" This should bring up a prompt at the bottom of your owl-beta window. Type aimlogin yourscreename and owl-beta should prompt you for your password. In order to add a buddy to your buddy list (on both the AIM server and your session), use addbuddy aim samplescreenname, and to delete a buddy from your buddy list, use delbuddy aim samplescreenname. To send an instant message to someone, you follow almost the exact same procedure as sending a Zephyr: type "a", and then enter the screenname of that person.

Where can I learn more about zephyr?

For more information about Zephyr, you can pick up a paper version of Inessential Zephyr at the SIPB office in W20-557, or read the online version at http://www.mit.edu/afs/sipb/project/doc/izephyr/html/. You can also refer to the OLC Stock Answers at http://web.mit.edu/answers/zephyr/, and our February 28 and March 7, 2003 columns, available on our web site.


To ask us a question, send email to sipb@mit.edu. We'll try to answer you quickly, and we can address your question in our next column. You can also stop by our office in W20-557 or call us at x3-7788 if you need help. Copies of each column and pointers to additional information are posted on our website: http://www.mit.edu/~asksipb/