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.