Subject: Re: BBS Development for Linux From: morley@suncad.camosun.bc.ca (Mark Morley) Date: 16 Jun 1993 10:43:08 PDT
Just thought I'd throw in a few thought of my own. I'm currently writing
a UNIX based BBS package and am developing simultaneously on a Linux box
and a Sun Solaris box. I'll be running it in our city in the near future
under Linux on a 486/50 system.
'Sorry if you think this is a waste of bandwidth, but perhaps this'll give
you guys some ideas for whatever BBS software you may be working on...
Some features of the BBS package:
- Can make use of already installed programs (like elm, tin, emacs, etc).
Because of this, it automatically supports Internet mail and news and
so on. I'll be writing a simple mailer and news reader as well so
you have internal options. Since you can write a program and then
have it become a command in the BBS (without shutting it down!), you can
add pretty well any functionality that you require.
- Can use forms for full-screen data entry. None of this one line at a
time stuff (unless that's what you really want...)
- Highly flexible and customizable. You can define global settings,
group settings and individual user account settings. This means you can
have a BBS that has the exact same look and feel for all users, or a
totally different look/feel/command structure for each user (or anything
in between). You could create a group of accounts for a specific
company that has its own screens, look&feel, bulletins, file areas,
databases, etc.
- Each user can have their own private file area (if you allow it) where
they can store stuff for later download, build and maintain private
mailing lists, whatever.
- Multilingual support. Most of our users are English speaking, but we'll
be offering French as well as German and Dutch (probably others as
time goes on.) The user can switch to any other language at any time
they choose. We can add new languages to the system at any time without
bringing it down. We just need to pay someone to translate into the
specific language we require.
- Things like time/date/money formats can be defined globally, on a
group level, or for each user. This means you aren't stuck with the
Canadian/US formats.
- Totally flexible file library system. You could create one big pool of
files available for download, or create seperate file areas that can
contain files as well as other file areas, etc. Each file record in
the database contains information including name of the original
uploader, when it was uploaded, when it was last downloaded, how many
times it's been downloaded so far, expiry date, etc.
- Databases. You can create classified ads, business ads, whatever you
want. Databases are searchable using plain a query language that
allows parenthesis, and, or, not, operators (<, >, =, !=, etc), etc.
You can also create a "form" that they simply fill out. Any records
the match the form are selected (query by example). If the user has
access (via ACL's) they can add new records, modify records, be
read-only, etc. Combining this with 256 color on-line images gives you
a very powerful system for realtors, auto brokers, etc.
- Uses a sophisticated ACL system. Any object in the BBS can have an
optional ACL associated with it. No ACL means any user can access
the object. Objects include bulletins, commands, file areas,
individual files, databases, database records, etc. The ACL system
is based on identifiers, loosely based on VMS.
- Includes a built-in bulletin viewer that allows you to scroll up and
down through the bulletin using the arrow keys, page up, page down, etc.
- Support for ANSI colors and "graphics".
- Support for 256 color images. Using a special file transfer
protocol, the software can send a 256 color (any resolution) image to
the user's screen. It uses my own image format that supports a
variety of compression schemes, allowing an image to be transferred
very quickly and efficiently. Of course the user needs to be using a
special terminal emulation program if they want this functionality.
- Support for GTP (Graphics Terminal Protocol). I designed GTP after
examining the specs for NAPLPS and RIP. Neither one was what I was
looking for. GTP allows the user to use an (optional) graphical
interface complete with mouse and touch screen support, icons,
buttons, all sorts of bitmapped fonts, etc. It's kinda like NAPLPS and
RIP combined, then some extra functions thrown in. It's also as fast
(usually faster) than either of them. It can also support NAPLPS and
RIP directly, if you so desire.
- MultiTerm, a communications package for DOS machines that knows how
to "speak" GTP. It is very good as a general purpose terminal
emulator as well (supports VT52, VT102, VT220, ANSI, SCO ANSI CONSOLE,
TTY, etc) Uses external protocols and can auto-detect downloads.
Has a dialing directory. Supports COM1-4 and custom IRQ/IO settings, as
well as LAT and CTERM network connections.
How far along is it? Well, MultiTerm is done and is in use by many people
just as a terminal emulator (beats Telix/Procomm/etc for VT100 emulation).
The graphics protocols are working just fine. The database routines and
query engine are working (although I want to clean these up a bit). The
"miscellaneous" things like the bulletin browser, ANSI engine, etc are all
done. Right now I'm tying it all together, finding bugs and squashing
them. You know the routine. Since it's a non-work related project I
don't get a lot of time for it, but it's coming along.
Will I make it available? Maybe. I hadn't really thought about it until
this thread came up. Will I charge for it? Maybe. Haven't thought about
it much. Will I release *parts* of it? If you ask nicely. 'Depends which
parts you want. Will I answer questions about it? Sure. Can you try it?
Not at the moment. My Linux box is on the Internet though, so when I'm
happy with the way it works I'll let you know where to telnet to to try it.
Later,
Mark
===================================================================
Mark Morley, SUN Guy NET: morley@camosun.bc.ca
Camosun College - Interurban Campus TEL: (604) 370-4601
4461 Interurban Road Room 143-Tech FAX: (604) 370-3660
Victoria, B.C. Canada V8X 3X1