rewrite clients, excise content that is duplicated elsewhere, streamline lead
authorLuke W. Faraone <lfaraone@mit.edu>
Wed, 28 Aug 2013 19:12:11 +0000 (15:12 -0400)
committersipb-www <sipb-www@real-mccoy.mit.edu>
Wed, 28 Aug 2013 19:12:11 +0000 (15:12 -0400)
doc/zephyr.mdwn

index 99f443d..3dd8d24 100644 (file)
@@ -4,40 +4,47 @@
 
 ## Introduction to Zephyr
 
-Zephyr was a system designed to let system administrators send
-important messages to users in an easily noticeable format. It was
-meant to have a low volume of traffic and be used only for official
-notices. This is obviously not what Zephyr is today. It can still be
-used in the way it was intended: notice that you get official
-zephyrgrams as you log in, with important information about Athena
-services and planned outages. However, the most common usage is by
-average users exchanging information about classes, how their days are
-going, and talking on Zephyr classes and instances about everything
+Zephyr is a general purpose chat system for MIT.
+
+People use it to exchange information about classes, how their days are
+going, and talk on Zephyr classes and instances about everything
 from the latest episode of Battlestar Galactica to the next 18.03
-problem set. The usage of Zephyr has far exceeded original
-expectations. Over time, people have also created programs that give
-Zephyr a graphical interface, and programs that give zephyr a purely
-textual interface, that can be used entirely within a ssh
-terminal. Some of these zephyr clients have become so widely used that
-there are users who do not know that there are other ways to send (and
-receive) zephyrgrams. This wiki will cover the traditional commands,
-typed at the athena% prompt, as well as the more common modern zephyr
-client BarnOwl.
-
-The information in this wiki about BarnOwl just barely touches the
-surface.  More for in-depth functionality, visit the [BarnOwl
-wiki](https://barnowl.mit.edu/).
-
-## Modern Zephyr
-
-Today the majority of Zephyr users use the barnowl client.  There are
-other clients as well (for example, Pidgin supports Zephyr).  The
-following sections will go into detail about how to install, use, and
-customize barnowl.
-
-### Other Clients
-
-There are other clients besides BarnOwl, however their use is not
+problem set.
+
+Zephyr is an underlying chat system; the built-in tools for exchanging messages via Zephyr are rudimentary. Most people who use Zephyr today take advantage of integrated clients that make the system easy to use.
+
+## Major clients
+
+Here are some of the primary clients used at MIT. There's also a listing of [other Zephyr clients](http://zephyr.1ts.org/wiki/ZephyrClients), but their use is generally not recommended.
+
+### Barnowl
+
+[Barnowl](http://barnowl.mit.edu/) is a command-line Zephyr client that supports advanced filtering and customisation. It is probably the most commonly used client, but requires some effort to get started. To use Barnowl effectively, you should connect to an [Athena dialup](http://web.mit.edu/dialup/www/ssh.html) and run Barnowl along with a program to renew your Kerberos tickets. The Athena command `athrun sipb owl-screen` will set this up for you.
+
+In addition to primarily supporting Zephyr, Barnowl also lets you connect to [AIM](http://aim.com) and and [XMPP](http://xmpp.org/) (Google Talk, Facebook, etc.) networks.
+
+See [Getting Started with Barnowl](http://barnowl.mit.edu/wiki/GettingStarted) for more information.
+
+### Roost
+
+[Roost](https://roost.mit.edu/) is a graphical Zephyr client built by [David Benjamin](https://davidben.net/) as part of his [master's thesis](https://davidben.net/thesis.pdf). It is relatively new and currently considered experimental by its author.
+
+Roost makes use of [Webathena](https://webathena.mit.edu/) to keep you subscribed to Zephyr. This makes for a much easier setup.
+
+### Zulip
+
+
+[Zulip](https://zulip.com/zephyr) is a fully-featured web-based Zephyr client that also provides [mobile apps](https://zephyr.zulip.com/apps) for Android and iOS and desktop apps for Linux, Mac, and Windows. Zulip is developed by a group of MIT alums who also developed [Ksplice](https://www.ksplice.com/) (rebootless updates for Linux).
+
+Zulip, like Roost, is easy to set up because it uses Webathena for authentication.
+
+See [Zulip for MIT setup](http://zulip.com/zephyr) for details.
+
+<!-- merge to http://zephyr.1ts.org/wiki/ZephyrClients (I would do this, except I can't log in…)
+
+## Other Clients
+
+There are other clients besides the above, but their use is not
 nearly as widespread.  Some of these include:
 
 * Owl (unmaintained, BarnOwl evolved from this)
@@ -47,70 +54,13 @@ nearly as widespread.  Some of these include:
 * zephyr-mode for emacs
 * [ZephyrPlus web client](https://zephyrplus.mit.edu)
 
-Using BarnOwl is recommended, as it is better supported and more
-documentation exists for it.
-
-### Using BarnOwl
-You will need access to an Athena machine to run barnowl.  The easiest
-way to do this would be to SSH into linux.mit.edu.
-
-On a Debian-based Linux distro, open up a terminal and type `ssh
-<username>@linux.mit.edu`.
-
-On Windows, download a SSH client (such as
-[PuTTY](http://chiark.greenend.org.uk/~sgtatham/putty/download.html); you will need to [change PuTTY’s character set](http://utf-8.scripts.mit.edu/wiki/PuTTY) to UTF-8 to prevent occasional display glitches.)
-and install it.  Once you've opened it, type `<username>@linux.mit.edu`
-into the prompt and hit enter.
-
-On a Mac, open Terminal from the Utilities Folder in Applications. Type
-`kinit <username>@ATHENA.MIT.EDU && ssh -K
-<username>@linux.mit.edu` If this command fails (saying -K is
-invalid), then just do `ssh <username>@linux.mit.edu`.
-
-Alternatively, use a Java applet called Mindterm SSH inside any web browser. MIT makes this available at [athena.dialup.mit.edu](http://athena.dialup.mit.edu/ssh.html); although this will give you an Athena terminal, you may want to ssh from there to linux.mit.edu so as to follow the rest of these instructions exactly:
-
-       athena.dialup.mit.edu login: <username>
-       <username>@athena.dialup.mit.edu's password: <password>
-       (wait a while)
-       <username>@<some-server>:~$ ssh <username>@linux.mit.edu
-       <username>@<other-server>:~$
-       
-(In all these cases, don't include the angle brackets, just replace
-<username> with your MIT username).  You will then be prompted for your
-password.  Enter it, and then carry on with running barnowl!
-
-To start barnowl, run the command `add barnowl; barnowl` at the prompt
-on any Athena machine or dialup, such as linux.mit.edu.
-
-The simplest use of Zephyr is to send personal zephyrs to other
-users. To send a zephyr, type `:` to bring up a command line, and run
-the command `zwrite USERNAME`. You can also start a `zwrite` command
-by simply typing z.
-
-You can then enter your message, and then enter a `.` on a line by
-itself to finish the zephyr. By convention, zephyrs are usually
-word-wrapped to 70 characters or so per line; barnowl will wrap at about
-10 characters less than the width of your terminal window, so if you
-have a large window, you may need to press M-q (Alt-q, or Escape then q)
-to word-wrap the current paragraph to a smaller width.
-
-Once you've sent and received zephyrs, you can navigate the message
-list with the arrow keys. Press `d` to mark a message as deleted, `u`
-to undelete it, and `x` to expunge all messages that have been marked
-as deleted.
-
-Instead of entering a `zwrite` command manually, you can also select a
-message in the message list with the arrow keys, and reply to it using
-`r`, which will automatically set up an appropriate `zwrite` command.
-
-For more documentation on the built-in commands and keybindings, you
-can press h to bring up barnowl's built-in help screen. For help with
-a specific command, bring up a command line with `:` and then type
-`help COMMAND`.
+-->
+
+## Culture
 
 ### Classes and Instances
 
-Generally the most interesting discussion on Zephyr, however, happens
+Generally the most interesting discussion on Zephyr happens
 on so-called Zephyr <em>classes</em>. A class is a bit like a chat
 room in other IM systems. Anyone can send a zephyr to a class, and
 anyone who is subscribed to that class will receive it. There is no
@@ -221,166 +171,10 @@ non-personal (public) classes. Although most people don't mind people
 they've met subscribing to their personal class and lurking, it's poor
 form to talk loudly on the personal class of someone you don't know.
 
-### Startup
-
-There might be some options that you want to be consistent from
-session to session; you don't want to have to set the same variables
-each time.  You can fix this by adding the commands to your "startup"
-file, for example, `.owl/startup`.  This can be done from within
-BarnOwl, by using the `startup` command:
-
-    :startup set foo bar
-
-Where `foo` is the variable you want to set, and `bar` is the value.
-You do not necessarily have to use the `set` command, either, any
-command you can type in BarnOwl can be added to the startup file.
-
-### Logging
-
-It is handy to be able to log your conversations so you can refer back
-to them later.  To log classes, for example:
-
-    :set classlogging on
-
-And to log personals:
-
-    :set logging on
-
-This will log to the "zlog" directory in your locker. You probably
-don't want people to see what classes you're on or what people you
-talk to, so you can run the Athena commands
-
-    mkdir -p ~/zlog
-    fs sa ~/zlog system:anyuser none
-    mkdir -p ~/zlog/people
-    mkdir -p ~/zlog/class
-
-to create the necessary directories and make them completely hidden.
-
-Note that if you want the logging option to still be set after you
-quit and relaunch BarnOwl, you will need to prefix the "set" command
-with "startup". This is how you would write that:
-
-    :startup set classlogging on
-    :startup set logging on
-
-See the "Startup" section above for more information.
-
-### Colors
-
-By default, there are seven colors you may use in the terminal: red,
-green, yellow, blue, magenta, cyan, and white.  In order to use color
-in Zephyr, you can use the following notation: `@(@color(red)This is
-some red text)`
-
-Colors may vary from machine to machine, as different terminal
-profiles may have different shades of the seven colors.
-
-### Filters
-
-Some people like to customize their BarnOwl by color-coding classes.
-This makes it easier to tell different classes apart (and minimize
-mixing).  BarnOwl has some already existing filters, for example,
-`personal` (for incoming personals), `out` (for outgoing personals),
-and `ping` (for pings).  To assign a color to a filter, add the
-following to your startup file:
-
-    filter personal -c green
-
-What if you want to color-code your class, or a friends class?  You
-can create and color filters with:
-
-    filter johndoe class ^johndoe$
-    filter johndoe -c blue
-
-You can update your settings and filters without restarting your
-BarnOwl session by:
-
-    :source ~/path/to/config/file
-
-You can see all the filters by using `:show filters`, and narrow to a
-particular filter with, e.g., `:view personal`. You can use `:view
-all` or the keyboard shortcut `V` to see all messages again.
-
-For more detailed information on filters, visit
-[https://barnowl.scripts.mit.edu:444/wiki/Filters](https://barnowl.scripts.mit.edu:444/wiki/Filters).
-
-## <a id="screen">Running BarnOwl in Screen</a>
-
-It can be very annoying to have to close BarnOwl when you turn off
-your computer.  During the time your computer is off, you're missing
-many (possibly important) zephyrs.  It can be aggravating to be using
-zephyr via an unreliable network connection.  It can also be
-frustrating if you leave your computer on with Zephyr up, but go to a
-different computer and want to check your zephyrs - how do you do
-this?  These problems can be solved with the magic of screen.
-
-A more detailed and extensive explanation of this can be found at
-[http://web.mit.edu/kchen/arch/common/bin/owl-screen.txt](http://web.mit.edu/kchen/arch/common/bin/owl-screen.txt). Basic commands are [Ctrl-a] followed by [c] to open a new window (like a tab), [Ctrl-a][w] to see a list of open windows, and [Ctrl-a] followed by a number to go to that window.
-
-Do note that running `owl-screen` as apposed to just runnning `screen` and then a barnowl instance provides niceties such as reminders to renew your tickets (the process `/mit/kchen/arch/i386_rhel4/bin/cont-renew-notify`). Also, BarnOwl will always be located on the `0` tab of an `owl-screen` instance, so [Ctrl-a][0] will always take you back to BarnOwl.
-
-### Screen
-
-You should find a computer or server on which to run your screen
-session(s) that is up all the time, for example, linux.mit.edu.
-Screen allows you to run programs inside of it on one computer, and to
-access those same programs from other computers via ssh.
-
-### Quickstart
-
-1.  Pick a machine to host your screen session on.
-    If you don't know of any options, linux.mit.edu (Linerva) is a good choice.
-2.  ssh to that machine.
-3.  Run "add kchen".  You may want to add this to your `~/.environment` file.
-4.  Run "owl-screen"
-
-Your screen session is now ready.  Once you start the screen session,
-you'll need to get renewable Kerberos tickets in order to run it for
-any extended period of time.  Press C-a C-c to open a new screen
-window, and run
-
-    kinit -l7d -54
-
-(length 7 days, both Kerberos 5 and Kerberos 4). Press C-a 0 to return
-back to your BarnOwl window.
-
-When you're ready to log out, press C-a d to "detach" your screen, and
-then type `exit` or `logout` to log out.  Later, when you want to
-"reattach" your screen, ssh to the machine again, and run `screen -r`.
-
-### Kerberos Tickets and AFS Tokens
-
-In order to keep your screen session authenticated, you'll need to
-keep your Kerberos tickets and AFS tokens up-to-date.  There is a
-script that will do this for you, located in the `kchen` locker.
-After you ssh into the machine that hosts your screen sessions, run
-the following commands:
-
-    add kchen
-    owl-screen
-    C-a C-c
-    kinit -l1d -r7d
-
-### Attaching and Detaching Sessions
-
-To detach a screen session (for example, if you want to log out),
-press C-a d (Control-A, then D).  Screen continues to run, but is no
-longer active.
-
-To reattach a screen session, possibly detaching from wherever it's
-currently attached, run:
-
-    screen -dr
-
-`screen` can do a whole lot more.  To find out about it, see
-[UsingScreen](https://sipb-www.scripts.mit.edu:444/doc/wiki/UsingScreen).
 
-### Interaction with Traditional Zephyr
+## Interaction with Traditional Zephyr
 
-The default athena startup scripts launch zwgc on login. If you are
-subscribed to many classes and use Zephyr as many do today, zwgc's
-behavior is not very desirable. To disable zwgc startup, add:
+The default Athena startup scripts launch `zwgc`  on login. `zwgc` displays a popup for each message, so if you are subscribed to many classes and use Zephyr as many do today, `zwgc`'s behavior is not very desirable. To disable `zwgc` startup, add:
 
     setenv ZEPHYR_CLIENT false
 
@@ -389,5 +183,5 @@ to your `~/.environment` file if you use `tcsh` or
     ZEPHYR_CLIENT=false
 
 to your `~/.bash_environment` if you use `bash`. This will cause your
-shell to launch the `false` executable instead of zwgc which does
+shell to launch the `false` executable instead of `zwgc` which does
 nothing.