Saturday, August 15, 2009

MIT 2013 AIM Blast, Zephyr, and Barnowl

[Update: 08.16.09 ~1 hour later] Well, all the quoting issues are fixed (yay speed bug killing courtesy of austein) so just ignore anything you see about quotes or bugs (excluding this statement itself--phew escaping that self-reference loop).

[Update: 08.16.09] Welll, in the name of progress, my blog post has already become outdated ^^; I'm too lazy to fix it all so I'll just list the changes up here:
  2013 / MSGS / austein  15:50  (Matthew Goldstein)
       The MSGS gateway has been upgraded:
       a) Zephyr users are again specified at the start of the message instead
       of the alias, making Blast's logs more readable
       b) Instances are now specified by #hashtags at the start of the message
       instead of commas
In short, you'll need to use / you'll see
[mit2013]: (zephyrgate) (kusername) #instancename yay this is a message
versus the old
[mit2013]: ("kusername" zephyrgate) ,instancename, yay this is a message
[14] Oh, also, double quotes don't work as of right now. So stick to Joyce-esque dashes :)


Disclaimer: This post is wordier, more passive, and less organized than I would like it to be, because I have too low of a ratio of motivation:time. [0]

Abstract: This post goes through getting onto the [MIT 2013] AIM Blast, getting onto MIT's messaging system, Zephyr, via the Barnowl client, and some basic commands for both.

So, if you're here, you're probably wondering, "Zephyr? Barnowl? Athena? Kerberos? Screen? WTF?" like I was. Let's walk through this in chronological order of when you would encounter them. (Or, see Other Useful Articles for other people's introductions).

Table of Contents
  1. Summary of Steps
  2. Zephyrgate
  3. Conclusion: Why Zephyr?
  4. Other Useful Articles
  5. Footnotes

Summary of Steps

AIM Steps
  • Join AIM Blast via the (closed) "MIT 2013" facebook group, or get someone already on it to !invite aimusername you
  • Optional: Set a nickname for yourself via !alias nickname (often set as "kusername", your Kerberos username, or "real name")
  • Optional: Maintain instances ("topics") by preceding messages with ,instancename, (e.g. ,zephyr, how do I get on zephyr?)

Zephyr Steps
  • Remote connect to Athena and startup Barnowl, a Zephyr client
    add barnowl; barnowl
  • Subscribe to the class "2013," which is magically linked to AIM via a piece of software
    :sub -c 2013
  • Write to the class with "test" as the instance (aka topic)
    :zwrite -c 2013 -i test
  • Send the message with the shortcut [Ctrl-d]
  • To reply to messages, scroll up or down with the arrow keys and hit "r" (or "R" if you want to change the instance)
  • To go to the last message, hit ">"


Presumably you will encounter the AIM Blast first, the invite is listed on the closed MIT 2013 Facebook group. The "blast" is a feature of AIM new to our class, and lets you send group messages. Unlike a normal AIM chatroom, it is permanently open--it operates like mailing list, always waiting in the background until someone speaks up, and then everyone in the Blast gets the message. [1]

Now, a current MIT student has invoked some magic to render the MIT 2013 Blast special: [MIT 2013] links to Zephyr via a "zephyrgate." Zephyr? Zephyr is the MIT chat system, used primarily by MIT and Carnegie Mellon University (two different "realms" in zephyrspeak). Zephyr's specialty lies in its system of classes and instances. [2] Class:instance :: blast:topic, in old SAT verbal analogy form. Classes can be created by anyone for anything from a literal class, e.g. 8.012 Mechanical Physics for Masochists, to a student group, to personal classes (reserved by convention) for each zephyr user (e.g. to be used as a twitter feed, diary, etc.). Thus, going from spontaneity to order: AIM > Zephyr > Forum > Email. The power of Zephyr lies in the fact that one can easily "filter" mesages by class or instance, or even by "dynamic filters" created on-the-fly, which we will go into in another post.

Note also that, on Zephyr, no list, such as might be found in chatrooms or IRC, exists of the number of people in a class. Although this makes it difficult in [MIT 2013] to tell if anyone will hear you, what can I say... zephyr == lurker heaven :P [3]
The AIM Side
So, on the AIM Blast, you'll get messages such as
[mit2013]: (aimusername) hello world #Note: appears like this even if you use gmail to login to AIM
[mit2013]: ("smart-enough-to-set-an-alias" aimusername) hey wassup
[mit2013]: ("another-alias" lorem ipsum dotum 
[mit2013]: ("kusername" zephyrgate) technogarblespeak
That last person is likely a current student... or a prefrosh invading Zephyr, heh. [4] [5] [6]

You may also see something like this:
[mit2013]: ("kusername" zephyrgate) ,zephyr, hey how do i change the name in the parentheses
The ",instance-name," is actually intrepreted on the zephyr side as an instance (messages not assigned an instance default to "personal"). Or, from our point-of-view, zephyrgate translates zephyr instances into ",instance-name," on the AIM side.
Some AIM Commands
!off -- mute [MIT 2013]
!on -- yea
!alias -- set your alias, e.g. !alias "Your R Name" or "kusername"
!history -- view the last few IMs on the blast
!invite -- invite a friend to the blast
Note that people on the Zephyr side can see your alias.

See AIM Blast Power User Tips for more.
The Zephyr Side: Getting Started
One more thing about zephyr... its most popular client (such as one might use Pidgin or Trillian or Gmail to connect to AIM), called Barnowl[7], is text-only... heh. But no worries! Text-only does NOT equal impossibly non-user friendly, unlike what everyone in the world would have you believe. Ready? Here we go.

(Note: It's helpful to have the MIT 2013 Blast open simultaneously, 95% of the time people _are_ listening and more than willing to help prefrosh invade Zephyr).

So, let's use our magic SSH powers (see my previous post) to connect to linerva (or athena-dialup or linux).

  1. SSH to the SIPB Linux Dialup
  2. Enter
    add barnowl; barnowl
    Immediately, your screen should display
       OWL ADMIN
           Welcome to barnowl version 1.2.1.  Press 'h' for on-line help.
           To see a quick introduction, type ':show quickstart'.                  
           BarnOwl is free software. Type ':show license' for more                
           information.                                                     ^ ^   
           Please report any bugs or suggestions to    (   )  
    Isn't the owl cute? :) [8]
  3. At this point, to gain loser points like me, you can talk to yourself. -^-^- Since this first part is easy to mess up, I've included the points where you should press [Enter]:
    :zwrite kusername[Enter]
    hello self[Enter]
    • You should immediately see
         Zephyr sent to kusername  01:29  (Your R Name)
              hello self
      were kusername is your kerberos username, and that R is your middle initial if you have one. The stuff in parentheses is called your "zsig," which we will learn about shortly.
    • Then you should see, in bold
         Zephyr from kusername  01:29  (Your R Name)
              hello self
      Yay :)
    • You can change the stuff in parentheses, your "zsig", via
      :set zsig "a new zsig"
    • Note that your zsig doesn't show up on the AIM side. On the other hand, AIM users have their zsig set as (alias Via MSGS Gateway).
  4. Okay, amusing detour aside, now that you're done talking to youself, "subscribe to class 2013":
    :sub -c 2013[Enter]
  5. To verify that you're subscribed (if you hit [MIT 2013] at a slow point in time when no one's talking), if you enter
    :show subscriptions
    you should see
    in the list of classes you are subscribed to.
  6. Now write something to class 2013 under the instance test:
    :zwrite -c 2013 -i test[Enter]
    Your message here[Enter]

Zephyr Shortcuts
That said, Zephyr's interface definitely has a steeper curve than your GUIs such as Pidgin or meebo, but it really isn't that bad. All you need to know are the keyboard bindings, or "shortcuts." [11] Barnowl actually has an extensive help documentation inside itself. If you don't like reading the help docs via CLI, check out the docs on the web: /doc - barnowl - Trac
h -- help
:view quickstart -- view a quick introduction to Barnowl
arrow keys -- move up and down messages
Shift-v ("V") -- return to default view (if you ever do something funky)
Shift-. (">") -- move to last message
r -- reply to message (the one that has an arrow next to it marking your place)
R -- reply to messages, but with the option to edit the command (e.g. change the instance)
Ctrl-c -- cancel message / command
Alt-p -- view personal messages
Ctrl-d -- send message
:quit -- quit barnowl

The Zephyr Side: Some Cultural Stuff
Okay, so one thing to note is that the culture on Zephyr is a bit different from AIM.
  1. Longer messages / more punctuation AIM defaults to one-liners (hitting [Enter] sends the message. You have to hit [Shift]-[Enter] to get a multiline message. Zephyr makes no distinction between one- or multi-line messages. On -c 2013, the rules are relaxed since anyone current students sub'd to 2013 know what to expect with all the AIM users, but on any other class one-liners such as "lol" are discouraged, while grammer/spelling/punctation is encourage. Again, see UsingZephyr.
  2. Different conventions:
    i,i -- I have no meaning, I'm just saying (said before random tangents, often)
    stark[ing] -- Replying to a message after a length of time (people then know to check their logs) (this is named after a gsstark, who did this a lot)
    ==kusername -- what kusername said
    kusername++ -- props for/ I agree with / I suport what kusername said
    kusername-- -- downvote (apparentally, CMU used to have a bot that tallied peoples' scores)
    -i instancename.d -- Indicates a tangent instance, sometimes used as a meta-instance to comment on the original instance
  3. [Update 08.16.09] Misc.: Due to twitter, people occasionally use "@username" instead of the old "re:username" or "username:". Nothing really wrong with it, but do take note that in Zephyr formatting is done with "@format(a message)" so some people may prefer that you not use "@" for addressing people. [13]

Zephyrgate Bugs
Messages may sometimes be lost in zephyrgate. Avoid quotes. Known issues: From zephyr:
hey "It's a shame, this entire message gets lost on the AIM side due to the unclosed _single_ single quote(s)" everyone
Hi "Oh noes! 'Only spaces appear where' both sets of quotation marks where on the AIM side :(" guys
So, in conclusion, use double quotes if you have to quote anything, and definitely avoid single quotes inside double quotes. Or do like James Joyce does and use dashes instead...
――You are an artist, are you not, Mr Dedalus? said the dean, glancing up and blinking his pale eyes. 
(from A Portrait of the Artist as a Young Man, V)

Conclusion: Why Zephyr?

So, at the end of all this, or even the first few times you get on Zephyr via Barnowl, you might wonder, why? It's annoying to get around this oldfangled CLI (command line interface) and AIM works perfectly well for -c 2013. Well, like anything, it takes a bit of time to get used to zephyr. But the kusername class you get to yourself, the ease of instances and filters, and the sheer customizability of Zephyr/Barnowl win me over. For instance, "j" and "k" are common conventions for moving up and down a document (e.g. vi, google reader). Well, by just editing a file or two or going straight through the Barnowl interface, I can [in a well-documented way] change Barnowl so that "j" and "k" also move up and down messages. (How to do this? Save for followup post, again). Also, with colorcoding via filters, my terminal looks just plain delicious :)

Other Useful Articles

UsingZephyr | SIPB. -- A no-frills tutorial. Using MIT Athena Remotely, Part 2: Zephyr and Barnowl | The Sam Range Blog -- Another good introduction to Zephyr and Barnowl lies here, which goes into some background info & really walks you through it.


[0] Okay, sheesh, these entries are annoying to format and take a long time to make (I'd say this one easily took a good 8 to 10 hours). I only have 2 more left in this series, and then I need some more non-tutorial-formal entries if I really plan to enter a blogging app... [1] See AIM Blast Creates Instant Message Groups for Mass IMs | Lifehacker for more info. [2] See XMPP: Chatroom Aggregator Idea for more insight into the differences between IM and Zephyr. [3] With important exceptions, such as the fact that anyone else on linerva can check out when you logged on and how long you've been idle (w | grep kusername)... and indeed the SIPB people who run the machines can see what processes you're running (aka ps x) [4] Re: Hello world || Ok, just kidding, we're not _that_ nerdy... I think. [5] Re: "another-alias" || Note: no clue how people get @gmail onto zephyrgate, which is AIM Zephyr... do I want to know? O__o Update: austein on -c 2013 informs us that you can use an email address to sign up for an AIM account, resulting in this monstrosity. Oh, and on the Zephyr side, it shows up as ""... [6] Re: Technogarblespeak || Well, more often technogarblespeak than straightup AIM users, at least. [7] Other people have worked to get graphical clients such as Pidgin to work with Zephyr, but these are generally outdated and not maintained. Stick with Barnowl. [8] Right away, you may see a message such as
   Zephyr from kusername  18:11  (Your R Name)
       Your tickets on  will expire within the next 24 hours.
       Run "kinit -l7d" to get new renewable tickets. 
This can be safely ignored if you're just testing stuff out on Zephyr and won't be on long. If you want a persistent Zephyr session, though (e.g. if you're on a flaky internet connection, or need your personal class to be constantly running to get text messages [8.1]), this will matter (if you fall under the above use cases, you can go ahead and head over to UsingScreen | SIPB for a look) and tickets will be explained in a followup post. [8.1] See SMS to Zephyr Relay (more will be explained in another post). [8] Alternatively, use [Ctrl-d] to send the message. [10] Note that on the SIPB UsingZephyr doc, 'tis exemplified
:subscribe CLASSNAME * *
I've verified on zephyr that the * * is no longer necessary (it's automatically added for you now) [11] There really isn't any menu to access these functions, Barnowl being CLI and all, so 'they're not technically shortcuts... [12] Some acronyms can be looked up by running
kusername@dr-wily:~$ athrun sipb whats
For instance, you might enter
athrun sipb whats i,i
However, we're stuck in barnowl and I haven't talked about Screen yet, so... [13] Source: pants on -c 2013:
I feel like it might be worth pointing out that the '@' character
is used within zephyr for formatting, like @bold(ZOWIE) or
@(@color(purple) a good color). As such, zephyr users tend
to read things like "@pbaranay(that sucks)" to mean "I'm saying
'that sucks' kind of like pbaranay would say it".
I personally don't care that much, but wish to forestall confusion
in your future zephyr adventures. 
[14] The reference to "making Blast's logs more readable" is because, in the past, due to the hack-ish nature of using Blast aliases to display Zephyr kusernames, using the !history command only displayed "(zephyrgate)" and not the individual kusernames. All the more reason to get on Zephyr and use Screen :)

Archived Blog notes. [27 jan 2010]
8.16.09 I'm using Ubuntu 9.04, Firefox 3.0.x
Webkit (Safari, etc.) users: Sorry, can't seem to get the code block text to NOT wrap. (seems to work in every other browser I can get my hands on)

8.20.09 I use "#" at the *end* of a line to denote comments, these should NOT be typed in.
(lines with "#" at the *beginning*, such as
#! blah blah
should be typed in).

If you notice any errors (spelling, content), do leave a comment or email me (the obvious, the name of this blog @ mitedu). Thanks!

No comments:

Post a Comment