Zephyr for the Impatient
This page was migrated from the old website and has not been manually reviewed, or is here for historical purposes. We make no guarantees that the content is up-to-date or reflects SIPB's current views. Contact sipb-www@mit.edu if anything is broken or you have other questions or feedback.
Zephyr for the Impatient
This is a short and efficient guide for quickly getting on Zephyr. It’ll explain everything you need to know to start zephyring as quickly, and reliably, as possible. Zephyr is a fairly old piece of technology, so it can be a little intimidating at first.
This guide assumes only basic understanding of how to use a terminal.
Get mosh
Mosh is like ssh
, which lets you securely log into a
remote computer, but with the extra functionality of roaming. If
you computer moves across networks, the connection won’t drop. This
is often useful.
If on Linux, install mosh via package manager; if on macOS, via homebrew or macports; if on Windows or Chrome OS, install Mosh for Chrome.
If on Linux/macOS, the incantation for logging into athena with mosh is:
mosh --ssh="ssh -K" --server="athrun mosh_project mosh-server" user@hostname
The -K
part will allow you to use Kerberos tickets on your machine,
you have them. From here on out we refer to the above incantation as
mosh
.
Pick a dialup
Log into one of the Athena dialups with the command
mosh user@athena.dialup.mit.edu
where user
is your Athena
username. Log in with your Athena password. Once on a dialup, run
echo $HOST
to learn the name of the machine (for example,
mass-toolpike
or biohazard-cafe
). You can use the Moira command
stella $HOST
to learn aliases for the hostname for quicker
logins. If you were logged into mass-toolpike.mit.edu
, for example, you
might log in with mosh user@i90.mit.edu
. (If you’re on campus,
you can omit the .mit.edu
part.)
The reason for doing this ceremony of picking one Athena dialup to use consistently will become clear in the next step.
Prepare a screen session
Log into the dialup you picked above and
run athrun sipb pag-screen
. screen
is a UNIX program that lets
you run other programs even when you’re not logged in, which is
crucial for being able to receive zephyrgrams. Here are the
relevant screen commands (C-a x
means pressing and releasing Ctrl-a,
then pressing x). You can run man screen
to learn more commands.
C-a d
- detach the screen (you need to do this to log out without killing your programs)C-a c
- create a new window (a single screen session can have several windows, each behaving like a separate terminal)C-a n
- cycle to the next windowC-a p
- cycle to the previous windowC-a #
- cycle to the#
th window, indexed from 0C-a a
- send a literalC-a
to the underlying program, required for nested screens.
Screens either be attached or detached (being attached means that there’s a logged-in user looking at it). To reattach this screen, run
screen -dr pag
The -dr
flag will detach the screen (in case a hanging session left
it thinking it was attached) and reattach. pag
is simply the name
of the screen; you can list them with screen -ls
. If you only
have one screen session, you can omit the name. The important feature
of this screen is that it will continuously renew your Kerberos
tickets, as long as they are renewable; this way you only need to
get new tickets once a week! (This magic is accomplished using the
script cont-renew-notify
, which is automatically invoked by
pag-screen
. If you don’t want this feature, you can kill it).
Now, while logging into different dialups will get you the same files
(since MIT runs a networked filesystem called AFS), the same is not
true for programs that run past a logout, like screen
. In order
to resume a screen, you must log onto the dialup it was created in.
This is why we had to go through the trouble of picking a dialup.
Start a Barnowl
While attached to your screen, run athrun barnowl
. This will start barnowl, the premiere zephyr
client. Because of how the zephyr protocol works, you must have
barnowl running constantly to receive messages; you’ll also need
valid tickets to receive personals. This is why we had to go
through the process of setting up pag-screen
. Some useful things
you can do right off the bat:
- Press
h
to bring up a simple help dialog (q
to quit). - Press
:
to bring up a command prompt (C-c
, i.e. Ctrl-c, to cancel without running a command).
Zephyr is divided into “classes” and “instances”. A class
corresponds roughly to a chat channel, but they do not belong to
any one user, and are unmoderated. An instance of a class is like a
“discussion topic”. For example, -c sipb -i food
is a discussion on
the class sipb
about food (probably getting some).
A “personal class” is a class used by one user to discuss things about themselves (in the Twitter sense, perhaps). By convention the class is the person’s username. It is a good idea to subscribe to personal classes of people you know, and don’t be afraid to take part in discussion; however, being loud on someone’s personal class is considered rude, especially if they don’t know you too well.
Other useful classes include -c sipb
, which is all about SIPB, and
out-of-the-loop
, a general ask-question-get-help class.
To receive messages sent to class, you can subscribe using the sub <class>
. To see your subscriptions, run show subs
.
To actually send a zephyrgram to a class you’re subscribed to, run the command
zwrite -c <class> -i <instance>
which will then let you type your message. You can send your
message by pressing return on a line with just a dot, or by sending
an end-of-file (C-d
, i.e. Ctrl-d). Pressing z
will bring a zwrite
command, so you can avoid having to type :zwrite
to send a
command. Pressing r
will let you reply to a message, by
pre-running the zwrite command with the appropriate -c
and -i
flags.
You can also send personal zephyrgrams to any user currently logged
in, by running zwrite <user>
. If you want to send a personal to
several users, you can use cc syntax:
zwrite -C <user1> <user2> ...
This will make it easier for them to reply to everyone in the conversation.
Zephyr has been around for much, much longer than most internet communities, and has some etiquette that can seem a bit bizarre to newcomers. A good description of this (and a more in-depth description of how classes/instances work) can be found at here.
To let people know you’re using zephyr (and so you get
subscribers!) send a zephyr to -c hello -i <your-username>
.
Don’t forget to subscribe to hello first! It’s a good idea to
greet newcomers yourself, too, so they have personal classes to
join! While subbing (and lurking) on others’ personal classes
is perfectly fine, be mindful of others; not every zephyr user
wants their classes to become full of people they’ve never met.
Get tickets.
Kerberos is an authentication system developed at MIT, which uses “tickets” to prove credentials. Tickets allow you to do privileged actions, like receive personal messages. For security reasons, tickets expire, so you’ll need to get new ones every once in a while. The longest MIT allows this period to be is 7 days. Tickets also need to be renewed, but pag-screen takes care of that for you.
To get tickets for barnowl, make a new window (C-a c
) and run the
command
kinit -l7d
This means “get me Kerberos tickets with a lifetime of 7
days”. You’ll have to do this every week; pag-screen will zephyr
you to remind you the day before. Since your screen will now have
two windows, use C-a n
and C-a p
to navigate between them.
You should now have everything you need to join in on the conversation on Zephyr! Happy zephrying!