We've worked around the reboot problem for VMs using DHCP, and VMs using
[wiki.git] / doc / zephyr.mdwn
index 2dc6fcb..6abd38e 100644 (file)
@@ -13,6 +13,8 @@ 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.
 
+Here are [detailed instructions for getting onto Zephyr.](https://sipb.mit.edu/doc/zephyr-quick/)
+
 ## 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.
@@ -34,10 +36,11 @@ Roost makes use of [Webathena](https://webathena.mit.edu/) to keep you subscribe
 ### Zulip
 
 
-[Zulip](https://zulip.com/zephyr) is a 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 company composed largely of MIT alums and SIPB members.
+[Zulip](https://zulipchat.com/zephyr) ([source code](https://github.com/zulip/zulip)) is a web-based Zephyr client that also provides [mobile apps](https://zephyr.zulipchat.com/apps) for Android and iOS and desktop apps for Linux, Mac, and Windows. Zulip was originally a proprietary product developed by a company composed largely of MIT alums and SIPB members. It was acquired by [Dropbox](https://www.dropbox.com/about) in 2014, and [released as open-source software](https://blogs.dropbox.com/tech/2015/09/open-sourcing-zulip-a-dropbox-hack-week-project/) a year later. The Zulip for Zephyr service is offered by [Tim Abbott](http://web.mit.edu/tabbott/www/) (MIT '06, SIPB member)'s Kandra Labs.
+
 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.
+See [Zulip for MIT setup](http://zulipchat.com/zephyr) for details.
 
 <!-- merge to http://zephyr.1ts.org/wiki/ZephyrClients (I would do this, except I can't log in…)
 
@@ -63,9 +66,9 @@ 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
-security on classes -- anyone who knows the name of a class can
+security on classes &mdash; anyone who knows the name of a class can
 subscribe, and there is no way to determine who is subscribed to a
-given class.
+given class. (For secure or private zephyring, consider [[zcrypt]].)
 
 To subscribe to a class, use the subscribe command:
 
@@ -86,6 +89,29 @@ instance with the -i option to zwrite:
 A message without an instance specified will default to the instance
 &ldquo;personal&rdquo;.
 
+You can send zephyrs to individuals (as opposed to classes) with:
+
+    :zwrite USERNAME
+
+It is possible to `zwrite` to multiple individuals at once, by listing the
+usernames separated by spaces:
+
+    :zwrite -C USERONE USERTWO USERTHREE
+
+The `-C` option automatically puts the line `CC: USERONE USERTWO USERTHREE`
+in the body of the zephyr,
+although this is only a convention and is not required or enforced.
+
+### Aside: zephyr triplets
+
+All messages are actually sent to a "zephyr triplet" &mdash; a class, instance, and recipient. Subscriptions are also made to zephyr triplets. The recipient can be either "*" &mdash; to indicate a broadcast message &mdash; or a specific individual.
+
+When sending, the default class is "message", instance is "personal", and recipient is "*". `zwrite` supports sending to arbitrary triples with `:zwrite -c CLASS -i INSTANCE USERNAME` &mdash; the two examples above use the defaults for the parts that aren't specified.
+
+For subscriptions, the class must be specified. You can specify all instances on a class with "\*", or specify just one instance. You can only sub to recipient "\*" or your own personals (indicated by "%me%").)
+
+### Common classes
+
 Some common classes include:
 
 <strong>help</strong>:
@@ -108,42 +134,89 @@ Some common classes include:
 > report what one is working on or up to, or ask friends questions, or
 > just rant about something.
 
+<strong>hello</strong>:
+> -c hello is for introducing yourself to the Zephyrsphere!
+> Send a zephyr to `-c hello -i YOUR_USERNAME` to let people
+> know you're a Zephyr user! This is a way to find out who else you know
+> uses Zephyr so you can subscribe to their class, and to get to know
+> new people through Zephyr. Also, feel free to invite others to
+> subscribe to your class!
+
+<strong>unclasses</strong>:
+> Most classes have an unclass, formed by prefixing "un" to the name. For
+> example, -c help has the unclass -c unhelp. The unclass is generally used for
+> snarky or unproductive replies; the prototypical example that first inspired
+> their creation was telling somebody with computer issues to run
+> `sudo rm -rf /`. Rarely, un- prefixes are stacked for even snarkier
+> discussion, on -c ununhelp and so on.
+
+<strong>.d classes</strong>:
+> Classes like -c help.d are sometimes used for discussions that deviate from
+> the conversation on the main class. .d instances are more common, though;
+> see below.
+
 ### Zephyr Slang
 
 If you spend enough time on Zephyr, you'll begin noticing some strange
 phrases and words being thrown around.  Some of these include:
 
 <strong>i,i foo</strong>:
-> picked up from CMU zephyrland and means "I have no point here, I
-> just like saying:".  Sometimes people simply use quotes: `"foo"`.
+> USENET saying picked up from CMU zephyrland that expands to "I have no point here, I
+> just like saying:".  Sometimes people use
+> [scare quotes](https://en.wikipedia.org/wiki/Scare_quotes) (e.g. `"foo"`) 
+> for similar purposes.
 
 <strong>mix</strong>:
 > If somebody accidentally sends a Zephyr to the wrong class or
 > person, they will send another Zephyr to that wrong/class person
 > simply saying "mix".  This basically just means, "oops, sorry, I
 > didn't mean to send that Zephyr here".  You might also see "-i mix",
-> which is the same thing, only with instances.
+> which is the same thing, only with instances. The specific invocation "unmix"
+> is used when accidentally sending a Zephyr to a class instead of its unclass
+> or vice versa.
 
-<strong>.d</strong>:
-> You may see an instance change from `-i foo` to `-i foo.d`.  This
-> indicates a deviation or tangent from the the original topic.
-
-<strong>starking</strong>:
-> Answering a question or replying to a topic to a topic several hours
+<strong>to Stark</strong>:
+> To answer a question or replying to a topic to a topic several hours
 > (or days, occasionally) later. The term originates from Greg Stark,
 > who would often reply to zephyrs hours or occasionally days later
 > without seeing if anyone had answered yet, or worse, if the instance
 > had moved on to an entirely different topic.
 
+<strong>.d</strong>:
+> You may see an instance change from `-i foo` to `-i foo.d`.  This
+> indicates a deviation or tangent from the the original topic.
+
+<strong>.q</strong>:
+> Similarly, `.q` at the end of an instance name indicates a quote.
+
 <strong>ttants</strong>:
->  Literally, "Things That Are Not The Same".
+> Literally, "Things That Are Not The Same". When the things are people,
+> <strong>pwants</strong> for "People Who Are Not The Same" may be used.
 
 <strong>prnf</strong>:
->  Literally, "Pseudo-Random Neuron Firings".
+> Literally, "Pseudo-Random Neuron Firing".
+
+<strong>eiz</strong> or <strong>eip</strong> or <strong>else</strong>:
+> Instances used to comment on discussions on other classes in Zephyr without
+> linking to the original source for reasons of privacy or discretion. "eiz"
+> means "Elsewhere in Zephyr", "eip" means "Elsewhere in Personals".
+
+<strong>eiw</strong>:
+> "Elsewhere in Webspace": instance used to comment on events on the Internet beyond Zephyr (like, say, on another messaging service).
+
+<strong>eim</strong>:
+> "Elsewhere in Meatspace": instance used to comment on events not on Zephyr.
+
+<strong>doxp</strong>:
+> "Do X predicate", from Lisp naming convention. A discussion on whether one
+> should do X.
+> A common variation is "doxory", literally "Do X or Y".
 
-There are many other acronyms that are used; if you don't know what it
-means, try using the `whats foo` command at an Athena terminal. If you
-don't have the command, run `add sipb` first.
+Many of the acronyms may be suffixed onto normal instance topics with a period
+to indicate relation. There are many other acronyms that are used; if you don't
+know what it means, try using the `whats foo` command at an Athena terminal. If
+you don't have the command, run `add sipb` first. Alternatively, running the
+single command `athrun sipb whats foo` works as well.
 
 ### Zephyr Etiquette
 
@@ -151,8 +224,7 @@ There are rules that people tend to use on Zephyr.  These include:
 
 Good grammar, spelling, and punctuation.  Not everybody uses
 capitalization, but they will still use good English.  Please do not say
-things such as "hey wut r u up to???".  It makes you look like an idiot.
-Really.
+things such as "hey wut r u up to???".
 
 You don't need multiple question marks or exclamation points.  Usually.
 
@@ -160,10 +232,9 @@ There are a few abbreviations people use, such as YMMV (Your Mileage May
 Vary) or IIRC (If I Remember Correctly), as well as some nerdier ones
 like DTRT (Do The Right Thing, in reference to
 [ The Rise of "Worse Is
-Better"](http://www.jwz.org/doc/worse-is-better.html)).  Try running `add sipb; whats dtrt` to look up an
-abbreviation.  Common abbreviations that you might find on AIM, however,
-are not often used.  People tend to look down upon "lol", "rofl", and
-such.
+Better"](http://www.jwz.org/doc/worse-is-better.html)). 
+As mentioned above, try running `athrun sipb whats dtrt` to look up an
+abbreviation.
 
 Personal classes are by convention considered a little more private than
 non-personal (public) classes. Although most people don't mind people
@@ -182,5 +253,4 @@ 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
-nothing.
+shell to launch the `false` executable instead of `zwgc`, thereby disabling it ('false' does nothing).