From: hoppie@nemesis.East.Sun.COM (Tom Hopkins)
Newsgroups: alt.hackers
Subject: Re: BIFF.X: Lex script to simulate BIFF
Date: 6 Nov 92 01:13:05 GMT
Reply-To: hoppie@nemesis.East.Sun.COM
Organization: Sun Microsystems, Inc., Billerica, MA.
NNTP-Posting-Host: nemesis.east.sun.com

In article 7345@tc.cornell.edu, mdw@theory.TC.Cornell.EDU (Matt Welsh) writes:
>Here's the promised and long-awaited 'biff.x' English->BIFF converter
>that everyone's been clamoring for. I made a few small changes since the
>last version and made sure that it compiled correctly.
[...]
>Send me any bugs or patches; I'm good friends with BIFF and since this is 
>the first program he's ever posted to the net, he wants to know if you
>have any problems. 

Actually, I believe his first posted program was a lovely little number
called ASTERIKS AND SPACES, rendered in that classic Commodore BASIC.
I used to have a copy of VERZHUN 0.00, wherein he hadn't quite figured
out how to the spaces part to work, but he was going to fix it "REEL
S00N."  Alas, I never was able to get version 0.01.

(Wistful sigh.) But enough of this reminiscing.  I just wanted to point
out a few minor errors which seem to have crept into your code.  Any
BIFFologist could probably offer more insight, but I wanted to get
USENET credit for being first.

>"..."           { BEGIN NIW; printf((rand()%2) ? "...C00L HUH!?! " : "...!! "); }

The true BIFF generally limits himself to using the exclamation point
and the question mark as the only true punctuation.  Periods and commas
do not offer sufficient indication of emphasis for BIFF, who wishes to
let it be known the degree of care that goes into his constructs.  In
cases where an exclamation point is too glaring, BIFF will often simply
let one sentence run into the next, rather than risk seeming
unemotional.

>"."/{NW}	{ BEGIN NIW; printf((rand()%2) ? "." : "!!" ); }
>"!"$            { BEGIN NIW; printf("!!!!!!!!!!1"); }
>"?"/{NW}        { BEGIN NIW; printf("??!!"); }
>"?"             { BEGIN NIW; printf("?!");  }

The concept of the trinity in punctuation seems of great significance
to BIFF.  As a consequence punctuation is almost always to be noted
occurring in groups of three.  Having only one or two marks would risk
being considered flippant when a sense of caring was intended.  On the
other hand using four or more marks in a row would no doubt be
considered vulgar, and thus is to be refrained from.  Obviously the
schools of thought vary in this respect, and there are certain less
civilized areas of the world where using a punctuation triad is
considered in bad taste, but BIFF has no doubt weighed the options and
made a calculated risk.  It has obviously paid off; few characters are
so agressively imitated by as many.

>".\""           { BEGIN NIW; printf((rand()%2) ? "!!!\"" : "!1!!\"" ); }
>"!"+/{NW}       { BEGIN NIW; printf("!1!"); }

Punctuation plays an important role in conveying BIFF's intended
message.  As such, it would be unheard of to allow some foreign
character, such as a 1, to deface a block.  BIFF takes great care in
assuring that his punctuation is correct.  In fact it has been
speculated by some BIFFologists that this care for punctuation is what
leads to his lack of lowercase letters.  Better to allow viewers eyes
to be mildly offended rather than risk being grossly misinterpreted.


>":)"            { BEGIN NIW; printf(";-)!!! "); }
>":-)"           { BEGIN NIW; printf(";-)!!!!  "); }

In general smileys will not be seen in a posting by BIFF.  The exact
reason for the departure from standard net wisdom is one of the longest
standing debates in classical BIFFology, perhaps as old as the smiley
itself.  Some believe that BIFF considers it too trite for his personal
use.  Others believe it is his desire to denote the precise degree of
emotion that prevent his use of a general smiley.  Still others see it
as an outgrowth of his care against foreign characters in his
punctuation; a smiley can be a hideous blotch on an otherwise well
executed post, especially when placed improperly.

If humor is intended, and BIFF believes it to be too subtle for the
ordinary viewer, often he will append a "HA HA JUST KIDDING" to the
humorous phrase.  While not as concise as a smiley, it does provide a
more easily controlled gauge of humor.  Perhaps USENET would not have
its imminent demise predicted so often if more took this amount of care
in choosing their expressions of emotion.

>"fuck"/{NW}     { BEGIN INW; printf("FUCK !!!!!1 "); }
>"Fuck"/{NW}     { BEGIN INW; printf("FUCK !!!!!1 "); }
>"damn"          { BEGIN INW; printf("FUCK!! "); }
><NIW>"hell"/{NW}          { BEGIN INW; printf("FUCK!! "); }
>"Damn"          { BEGIN INW; printf("FUCK!! "); }
>"Shit"          { BEGIN INW; printf("FUCK!! "); }
>"shit"          { BEGIN INW; printf("FUCK!! "); }
><NIW>"Hell"/{NW}          { BEGIN INW; printf("FUCK!! "); }
><NIW>"dick"/{NW}          { BEGIN INW; printf("FUCK!! "); }
><NIW>"Dick"/{NW}          { BEGIN INW; printf("FUCK!! "); }
><NIW>"mad"/{NW} { BEGIN INW; printf("PISSED 0FF!!!1! "); }
><NIW>"Mad"/{NW} { BEGIN INW; printf("PISSED 0FF!!!1! "); }

One of the more distinguishing characteristics of a genuine BIFF post is its singular lack of offensive language.  BIFF does not like to offend.  In fact he can often be seen asking people if the would like to be his friend.  No, vulgar displays of language go against BIFF's grain, and are thus intolerable.

There are those times, however, when even BIFF is driven to anger.
There are subjects to which BIFF is extremely sensitive, most notably
VIC-20s and his really smart big brother Brad.  This is a weakness of
all humans, something which should not be held against him.  In such
cases, BIFF does dabble in profanity, but will try to limit it to
something like "OH YEAH??? WELL YOU SUCK SO THERE!!!"  While perhaps
not a perfect solution, it does provide for maximum demonstration while
keeping potential fallout to a minimum.

For purposes of your filter, perhaps it would be best if such language
were simply ignored.  No doubt that is what BIFF does wqhen it appears
in what he reads, if at all possible.

>"to"/{NW}       { BEGIN NIW; printf("2"); }
>"too"/{NW}      { BEGIN NIW; printf("2"); }

It is perhaps another effect of BIFF's desire for perfect punctuation
that he never uses a 2 where a word is correct.  However, this does not
mean that BIFF is a staunch supporter of correct spelling.  BIFF will
almost always use a homonym of the to that he actually intends.  It has
been speculated that this is a subtle poke at the spellchecking
extremeists that inhabit the net, as it obvious to all but the most
radical of these that BIFF is doing it deliberately.  Still, he has
tripped up an unwary soul on more than one occasion.

>"and"           { BEGIN INW; printf("&"); }

Ampersands are another nono, probably again due to BIFFs zealous
punctuation.  This does not mean, however, that BIFF will adhere
stiffly to the tenets of standard spelling; when it is appropriate, a
nonstandard approach can be substituted.  While the full rules that
govern appropriate spelling methods is beyond the scope of this paper,
one simple example is the phrase "ROK "N" ROLE".  Note that even this
isn't an absolute.   However, it is one of the more common usages.

>"biff"          { BEGIN INW; printf("B1FFSTER!!!!!"); }
>"BIFF"          { BEGIN INW; printf("B1FFSTERE!!!1!"); }
>"Biff"          { BEGIN INW; printf("B1FFSTERE!!!1!"); }

BIFF is a down to earth sort.  As such he prefers not to use any
pretentious monikers.  While many others will address him as BIFFER,
BIFFSTER, BIFFMAN or BIFFMEISTER, he himself will generally introduce
himself with a simple "HI INSURT NAME HEER I"M BIFF!!!" and leave it at
that.  One notable exception to the is the "nickname" signature, where
BIFF lists various nicknames he has acquired (been referred to by) over
the years.  A copy follows:

                           THE RUSTY SNAIL
                           DA BIFFMEISTER <------THANKS BEN FEEN!!!
                         THE LEAD GLADIATOR 
                        THE COBALT CONUNDRUM <---- MY BROTHER"S IDEA!!!!
                         THE MAHOGANY MONKEY 
                       THE SCARLET POMEGRANATE
                       THE HOMONCULUS OF DEATH
                           THE NEON NINJA <--- COWABUNGA!!!               
                         THE URANIUM CRANIUM <-----THANKZ BILLH!!!!!
                         THE GOLDEN FOGHORN 
BIFF@BIT.NET    THE IRON FISTED NEWS.GROUPS MODERATUR  BIFF@PSUVM.PSU.EDU 
BIFF@BIFFVM.BIT.NET                                  BIFF+@ANDREW.CMU.EDU 
     BIFF@PSUVM.ANDREW.PORTAL.COM.XZ.US.RUTGERS.ARPA.BITNT.EDU.UUCP 
 MAN!WOMAN!BIRTH!DEATH!INFINITI!ROCKS!TREES!BIT.NET!BIFF@UUNET.UU.NET.EDU 

>"cool"          { BEGIN INW; printf("C00L!!!"); }

That should actually be K00L.  BIFF tends very heavily towards avoids
the hard C sound at the beginning of words.  Various theories have been
advanced by way of an explanation, but the most popular notion is that
it is out of respect for Commodore.  It is worth noting that Commodore
is usually spelled correctly.

>"computer"      { BEGIN INW; printf("C-64"); }

Perhaps KOMPY00TER would be a better choice for a substitute.  BIFF's
respect for Commodore and its products is well known, legendary, in
fact,  and never would he use the a Commodore product where it might be
associated with an inferior machine.

>"i"             { BEGIN INW; printf((rand()%2) ? "I" : "1"); }
>"I"             { BEGIN INW; printf((rand()%2) ? "I" : "1"); }

There have been many BIFF impostors who of late have taken to replacing
the I in BIFF and elsewhere with a 1.  Perhaps this is out of ignorance
or a desire to be unique.  Perhaps it is an offshoot of the NetW1Z
phenomenon.  Perhaps these impostors are using the net on a teletype
and don't recognize the difference in the characters.  In any case, the
true BIFF simply would not use a 1 in his name for the same reason it
would never appear scattered amongst his exclamation points:  He cares
too much to allow any misinterpretation of who he is.

>"o"             { BEGIN INW; printf("0"); }
>"O" 		{ BEGIN INW; printf("0"); }
>"s"             { BEGIN INW; printf((rand()%2) ? "5" : "S"); }
>"S"             { BEGIN INW; printf((rand()%2) ? "5" : "S"); }

The point of numbers not appearing in BIFF's posts cannot be
overemphasized.  The substitution of 5 for S we see here is another
case which simply does not happen when the real BIFF is involved.

THe one exception to this rule about numbers is the double zero which
often occurs in place of long u sounds.  The generally accepted reason
for this exception is that the zero on a Commodore VIC-20 has nothing
above it, and thus can be shifted without being affected.  That and
having it in the middle of words looks k00l.

All in all, Matt, I'd say you've presented a good filter.  Perhaps my
suggestions can be incorporated in the next release.  On the other
hand, perhaps it is best that imitation of BIFF be not taken too far.
BIFF is unique, and attempting to be like him will cause undo confusion
and no doubt cause him undeserved grief.

Besides, acting like BIFF for extended periods of time has been knows
to cause headaches, and eventually permanent brain damage.

Tom Hopkins <hoppie@turbo.east.sun.com>
I doubt any of this is Sun's official opinion.
This line is intended to attract Kibo's attention.  Hi, Kibo!