195 lines
9.4 KiB
Plaintext
195 lines
9.4 KiB
Plaintext
|
SAPPHIRE DESIGNER NOTES by Tim Campell.
|
|||
|
|
|||
|
This section contains no especially important information. It is presented
|
|||
|
here for those people who might want to know why Sapphire was designed the
|
|||
|
way it was.
|
|||
|
|
|||
|
Some Background
|
|||
|
|
|||
|
I've been involved with computers since 1971, and since those early days
|
|||
|
spent sweating over a 10 character-per-second Teletype, my enduring passion
|
|||
|
has been computer telecommunications. I'm fascinated by the way it enables
|
|||
|
us to reach out and grasp the crystallized thoughts of a stranger. We can
|
|||
|
enter an amazing, exciting universe. Where time can stand still or flow
|
|||
|
sideways. Where people can flash across a continent in the blink of an
|
|||
|
eye.
|
|||
|
Over the years, I've worked out countless designs for computer telecommuni-
|
|||
|
cations systems. Several of these designs went beyond the planning stage
|
|||
|
and became reality. It excites me that we basement programmers have this
|
|||
|
chance to pioneer new methods of communication.
|
|||
|
|
|||
|
Some of the projects I've been involved with include:
|
|||
|
|
|||
|
ACCESS: Canada's first national consumer telecomputing service.
|
|||
|
|
|||
|
PYROTO: The BBS/Game system (about 50,000 people play it each week).
|
|||
|
The latest version is available from Pinnacle Software for
|
|||
|
$35. (Runs also as a door.)
|
|||
|
|
|||
|
SASSy: A bizarre experiment that helped us learn what's wrong and
|
|||
|
what's right about BBS's. The spec and a 2-year report are
|
|||
|
available from Pinnacle Software ($10).
|
|||
|
|
|||
|
I also had the chance to provide some suggestions for Ron Sharp's extra-
|
|||
|
ordinary INFINITy system, which is a BBS with a seemingly infinite number
|
|||
|
of message bases.
|
|||
|
|
|||
|
|
|||
|
Why Sapphire was Written
|
|||
|
|
|||
|
After years of seeing other kinds of BBS's, I had to admit that I didn't
|
|||
|
like the way any of them worked. I'm not talking about minor annoyances --
|
|||
|
my own program has dozens of quirks that I intend to iron out. Rather, I'm
|
|||
|
talking about fundamental design decisions.
|
|||
|
|
|||
|
To my knowledge (and based on my interpretation), every single one of the
|
|||
|
existing BBS packages evolved from RBBS. Perhaps not in actual program
|
|||
|
code, but certainly in concept. They all share the same general features,
|
|||
|
though admittedly most are vastly superior to the original RBBS!
|
|||
|
|
|||
|
I was never tempted to copy RBBS, because I'd already written my first BBS
|
|||
|
program long before anybody around here knew what a BBS was. It wasn't a
|
|||
|
very sophisticated program, but it did put me on my own path.
|
|||
|
|
|||
|
It is important to understand that there was something of a computer
|
|||
|
revolution in Montreal during the mid-to-late 70's. A large number of
|
|||
|
hackers set up house on a local school board's HP2000 mini-computer. We
|
|||
|
evolved our own set of idioms, so when the first "mainstream" BBS (an Apple
|
|||
|
Networks) came to town, we said, "BBS? What's that? Bulletin Broadcast
|
|||
|
System?" We really didn't know!
|
|||
|
|
|||
|
Our user-interface idioms found their way into various programs that were
|
|||
|
developed locally. And thus they were found in ACCESS, then PYROTO, and
|
|||
|
finally (after considerable mutation) in Sapphire.
|
|||
|
|
|||
|
|
|||
|
Notes About the Design Philosophy
|
|||
|
|
|||
|
Commands
|
|||
|
|
|||
|
Sapphire uses word commands, rather than single-letter commands. I figure:
|
|||
|
it's easier to remember words than mnemonics -- especially when the mnemon-
|
|||
|
ics are tortuously contrived (as in the infamous [Y]ell for chat).
|
|||
|
|
|||
|
Since you don't run out of words the way you run out of letters, Sapphire
|
|||
|
doesn't need multiple program layers where the same commands can mean
|
|||
|
different things (e.g. [U]tilities or [U]pload), depending where you are.
|
|||
|
|
|||
|
Because I use word commands, I tend to make Sapphire somewhat more conver-
|
|||
|
sational than a letter-command system. I should mention that some people
|
|||
|
find my programs fairly terse. What I mean to say is that, while Sapphire
|
|||
|
is not chatty, it is more like a dialogue than you're likely to find on
|
|||
|
most BBS's.
|
|||
|
|
|||
|
Maintenance
|
|||
|
|
|||
|
Sapphire is a zero-maintenance BBS. I design programs this way partially
|
|||
|
because I'm lazy and partially because in the 70's most Montreal hackers
|
|||
|
were in a position to get cut off from their programs at any time. (Most
|
|||
|
of us weren't really supposed to be on that central system.) As a result,
|
|||
|
my associates and I got in the habit of designing programs that could
|
|||
|
survive on their own.
|
|||
|
|
|||
|
40 Column Text
|
|||
|
|
|||
|
Many people have expressed surprise at my extensive use of 40-column text.
|
|||
|
The obvious answer is that there are still plenty of 40-column screens out
|
|||
|
there; the IBM-PC isn't the only personal computer in the world.
|
|||
|
|
|||
|
However, the real reason is that when people are reading boring text (such
|
|||
|
as is necessary while learning to use a BBS), they want to scan it as
|
|||
|
quickly as possible. The fact is, 80-column text requires too much eye-
|
|||
|
movement for easy scanning; if newspapers can use narrow columns, so can I.
|
|||
|
Why should I be held hostage to the actual width of my screen? No law
|
|||
|
forces us to fill each line.
|
|||
|
|
|||
|
The Cool Reception
|
|||
|
|
|||
|
The way by which potential members are introduced to Sapphire may not
|
|||
|
strike you as particularly inviting. They are requested to send a message
|
|||
|
telling you why they'd like to join. A few people are so offended, they
|
|||
|
hang up immediately.
|
|||
|
|
|||
|
The actual requirements for the application can easily be changed, though.
|
|||
|
Maybe you'll merely ask them to tell you their shoe-size. But if you're
|
|||
|
running your BBS as a public service, I'd advise against it.
|
|||
|
|
|||
|
The vast majority of BBS's go down within a few months because the sysops
|
|||
|
are appalled at the uncaring nature of the users. But what can we expect?
|
|||
|
Total strangers call our boards; should we expect them to be nice to us?
|
|||
|
|
|||
|
You can greet them all with open arms, but chances are, you'll be very
|
|||
|
disappointed. These anonymous people simply have no particularly good
|
|||
|
reason to think you're special.
|
|||
|
|
|||
|
Far too few novice sysops are aware of the simple fact that when you
|
|||
|
figuratively "throw open your doors", you can get crumbs, bums, free-
|
|||
|
loaders, and jerks. You also get some beautiful people, but it's hard to
|
|||
|
remember that when you've got some fellow who signs on, makes a beeline for
|
|||
|
the files section, and ties up your line for hours as he pilfers your
|
|||
|
software collection -- leaving nothing in return.
|
|||
|
|
|||
|
It is utterly futile to be bitter. The best solution is to be careful.
|
|||
|
|
|||
|
A sysop's worst enemy is his own good nature. He wants to spread his arms
|
|||
|
and hug everybody who signs up to his system. At first, he's excited that
|
|||
|
so many people are visiting his BBS. But later, when he realizes how many
|
|||
|
people treat him like a bus service for software and information, he
|
|||
|
becomes disillusioned.
|
|||
|
|
|||
|
Perhaps I'm wasting my time telling this to new sysops, but the experienced
|
|||
|
sysops will be nodding their heads, by now. The fact is: either you
|
|||
|
resign yourself to being used as a commodity, or you learn the very dif-
|
|||
|
ficult art of rejecting new applicants.
|
|||
|
|
|||
|
Of course, what percentage you reject depends on the size of your BBSing
|
|||
|
community. In Montreal, we have plenty of people calling BBS's. As a
|
|||
|
result, I'm easily able to reject 95% of all applicants. Mind you, that
|
|||
|
means that for the first 2 months, my BBS was excruciatingly dull. After
|
|||
|
all, how lively can a BBS be, when it has only a handful of members?
|
|||
|
|
|||
|
Happily, though, I stuck to my guns. Nowadays, The Pinnacle Club has a
|
|||
|
nice mix of people, all of whom are what most sysops consider "ideal
|
|||
|
BBSers". It almost took more patience than I possess (since, like most
|
|||
|
sysops, I have an urge to let everybody on), but it was worth it.
|
|||
|
|
|||
|
What makes Sapphire truly a "Zero-Maintenance BBS" is that you can judge
|
|||
|
people by their reaction to the request that they justify their petition
|
|||
|
for membership. You don't even have to phone them up! What people write
|
|||
|
in their application usually tells the whole story.
|
|||
|
|
|||
|
For example, many people write things like, "Hi, I'd like to be a member.
|
|||
|
Please make me a member. Thanks."
|
|||
|
|
|||
|
If such a person can't even be bothered to justify himself, it is extremely
|
|||
|
unlikely he will make an effort to be a good, contributing member.
|
|||
|
|
|||
|
I've had some extraordinary experiences with this method of validation.
|
|||
|
One fellow was incensed at the impersonal approach, but he took the time to
|
|||
|
express his objections in detail. Bingo! I made him a member. He later
|
|||
|
posted a message to the effect that he thought he'd "gone to BBS heaven",
|
|||
|
so impressed was he by the quality of the messages left by members!
|
|||
|
|
|||
|
Sapphire can be easily modified to be less daunting to the new user. I
|
|||
|
don't want to give you the impression that Sapphire must give all new
|
|||
|
applicants the cold shoulder.
|
|||
|
|
|||
|
But if you're a new sysop, I hope you'll think about the kind of people you
|
|||
|
want on your system and design accordingly. Ask a few experienced sysops
|
|||
|
for advice.
|
|||
|
|
|||
|
Conclusion
|
|||
|
|
|||
|
Sapphire is not complete. There are numerous upgrades to be made. Some of
|
|||
|
these are summarized in Appendix C.
|
|||
|
|
|||
|
However, I would like to make it clear that it is not my intention for
|
|||
|
Sapphire to be all things to all people. I hope to retain the apparent
|
|||
|
simplicity of the design.
|
|||
|
|
|||
|
In other words, there are many other BBS packages out there that are more
|
|||
|
grandiose in intent. They can make your microcomputer look like a whopping
|
|||
|
big mainframe. But if you want a BBS that is easy for your users and easy
|
|||
|
for you, I think you'll want to run Sapphire.
|
|||
|
|
|||
|
|