Citadel is software for running a Bulletin Board System. The first Citadel came online in 1980 with a single 300 baud modem, and some versions of the software, supporting thousands of simultaneous users, are still in use today. Citadel development has always been collaborative with a strong push to keep the source code in the public domain. This makes Citadel one of the oldest surviving FOSS projects.
Ancient History
A recurring legend of Citadel history is that a user (Jeff Prothero, aka Cynbe ru Taren or CrT) of a multi-user game (DandD.pas) at the University of Washington in Seattle created a function that allowed users to vandalize the walls of the rooms in the games dungeon. Soon the writing on the walls became as important as the gameplay itself. The legend is richer than the reality, however. Prothero claims the legend is untrue.
The first Citadel, written by Cynbe ru Taren, came online in Seattle in December 1981 with the appropriate telephone number of ODD-DATA. It ran on a single floppy CP/M system. It was immediately successful. Cynbe turned the version 1.0 code out to the world through another system, John Rivoire's MAILBOARD. After six months, a hardware failure forced ODD-DATA offline. Undeterred, Cynbe teamed up with Glenn Gorman and began quickly revising the code. It was released to the public domain with the version number 2.0.
Citadel code has been forked, merged, ported, and cloned ever since.
Forks
The history of Citadel is a history of forked code. There were several prime reasons for forking, the first being simple geography. The majority of Citadel development occurred before the Internet allowed instantaneous and cheap communication between distant developers.
Abandonment was another great reason to fork or merge code. Almost all code was developed without pay. When a developer quit but left code behind, the best most sysops could hope for was for another Citadel project to pick up the pieces and hope that what emerged was compatible.
It wouldn't be appropriate to mention forking without also mentioning another major reason for splits: personal relationships. Any large collaborative project has its share of personalities and conflicts that simply cannot be reconciled. When the work being put in is free there is little barrier to dropping out. For those that developed Citadel for love for the software or of the personal interactions it enabled, it was just as simple to rename it, stop contributing to other projects, and continue on with one's own version as it was to continue working on an existing version.
Technical improvements and platform ports often occurred despite of, not because of, the collaborative development process.
History of True Citadels
A "true Citadel" can trace its source code back to the original Citadels. Citadel development stayed collaborative with Bruce King (under the pseudonym T'an T'u) releasing Citadel 2.10.
A dead-end fork resulted when Caren Park created Citadel 2.25, for MS-DOS. This fork became the basis of other notable versions, including StoneHenge (separately released with the same name by David Bonn and Kalen Bonn) and IronHenge (released by Major Chaos).
The longest lived fork from the 2.10 code started in the American Midwest, when Hue Jr ported the code to MS-DOS and called it Cit-86 . Hue's other contributions were substantial enough that several other porting projects used Cit-86 as source material. Many ports were developed, including some for the Macintosh, Atari ST, and Amiga platforms, and many of these contributed back to Hue Jr's project. Many of these ports were compatible with the growing Cit-86 network. From Cit-86 eventually came another major revision, Dragon's Citadel or DragCit , written by The Dragon. DragCit also introduced networking code, but the DragCit network was not generally compatible with the Cit-86 network.
Networking allowed the sprawling numbers of Citadels to exchange messages and email. The distributed networking method meant that messages could take days to traverse the entire network, and the same for replies. Even this slow method, however, served to join what were previously entirely separate systems into a larger collection. Eventually the Cit-86 and DragCit networks both became quite large, but despite some attempts to cross-network, remained separate.
Networking gave the various Citadels a critical mass necessary to sustain more development, and frequently, more forking. In the case of DragCit, it also widened the gap between sysops who wanted a more formal network arrangement and moderation of the conversation, with those who favored a non-structured "anything goes" approach. Improvements to the networking protocols allowed a minimal amount of meta-information to follow, but the most radical (generally called "twits") of those favoring a non-structured network were not interested in honoring that. DragCit thus forked into several networks, and the developers eventually stopped creating compatible features.
Notable DragCit forks were TurboCit, TwitCit, and MavenCit. MavenCit featured integration as a UseNet reader. These side projects, however, didn't halt DragCit development - even without the Dragon, who left the project in the early 1990s. The Gremlin (Matt Pfleger) made a new version, DragCit 3.11/MSC, and Richard Goldfinder split from that to create ACit. Then Matt and Richard, along with Brent Bottles, Don Kimberlin, and Elisabeth Perrin merged several code bases, and released a renamed GremCit as [[Citadel+]] under the moniker "Anticlimactic Teleservices".
Citadel+ made several major overhauls to the software. Changes to the network method first improved efficiency of the old DragCit models, while adding the ability to pass files. Later revisions separated the method of creating the network "packets" from the passing; this allowed long distance sysops to pass their packets through cheaper transport methods such as the Internet.
Citadel+ also introduced a scripting language allowing major functionality changes to be made by sysops who didn't wish to develop their own features into the Cit+ source code itself. It also expanded the Message Command Interpreter (MCI) from controlling simple things such as colored text, to holding and displaying variables and cursor movement. This gave users advanced control over the display of messages.
In a last gasp of implementing modernity, the most recent major Citadel+ developer, Brent Bottles, converted the MS-DOS-based software to the Win32 API. Along with that he finalized the multi-user code and made Citadel available by telnet. The multi-user code was successful enough to warrant a chat interface and a new Internet-native networking protocol that passed chat as well as messages.
The Citadel User Interface
Initially, Citadel's main advancement over other BBS software was that it split conversations into a natural metaphor, independent topic rooms. Within each room, messages are displayed in simple chronological order. Users can travel from room to room throughout the BBS, skipping rooms or reading them as preferred. Previous bulletin board software had a single message area that could only be read linearly, forward or backward. Further advancements on Citadel continued the "dungeon" or "castle" metaphor and allowed rooms to be organized (topically or otherwise) into "hallways" and hallways could be grouped into "floors".
Most systems allowed users to create their own rooms, creating a paradigm truer to the dynamic ebb and flow of conversations than the rigid linear message board structure.
The trademark of the Citadel interface is that instead of presenting users with a menu containing a limited number of options to guide users through the system, Citadels present users with a room prompt not dissimilar to a command line interface. Users face a small learning curve but quickly grasp the strength of the interface. The elegance of the interface is that the most common actions are done with only three keys. G goes to a new room, N reads New messages in that room, and E enters a new message.
Though one can easily use the BBS with just these simple commands, there is also an extended interface accessible at the room prompt through "dot commands". Dot commands take a single command, like R for read, and allow it to be expanded by modifiers. An overly complex example of a dot command is .rarvbk This would Read, across All rooms, Verbose (showing network information on messages), By-user, Keyword search; which would allow someone to find all messages sent by one user that contain a particular keyword.
Clones of Citadel
Citadel cloning, in contrast to modifications to true Citadels, is also common. Clones have ranged from vanity projects such as a Citadel-like control program to control the serial port of an advanced graphing calculator, to full-blown attempts to modernize the Citadel interface with modern protocols.
Notable clones included Glenn Gorman's clone in TRS-80 BASIC called Minibin, a clone of Cit-86 intended to run on a Unix running on Motorola processors called Cit/68, and a clone of Cit/68 called Citadel/UX. Cit/UX is still being developed under the name Citadel (its developers asserting that it is the only active Citadel project, and thus entitled to the name), extending the Citadel metaphor to enable what its developers call "a messaging and collaboration platform (for) connecting communities of people together."
External links
Active Citadels
- depths of hell BBS, running BBS100. Telnet to bbs.hell.org.
- eschwa BBS - for a particular subgroup of DOC users, often considered the endpoint of several migrations, (possibly) from ISCABBS to Heinous BBS, from Heinous BBS to Atrium BBS, and from Atrium BBS to eschwa BBS. Telnet to bbs.eschwa.com:6969 or ssh to bbs@bbs.eschwa.com.
- ISCABBS.com - Started in 1989 and still the largest active DOC (Dave's Own Citadel) BBS. Telnet to bbs.isca.uiowa.edu.
- A web (Java) interface to Slumberland, one of the last remaining True Citadels (started in 1991), running a multi-user version of Citadel+. Alternatively, telnet to bbs.slumberland.org.
- Utopia Dammit! BBS - a cousin of eschwa, where sporadic development of the DOC codebase still goes on nearly 15 years after its creation. Telnet to bbs.utopiadammit.com or ssh bbs@utopiadammit.com with no password.
- UNCENSORED! BBS, the home BBS of Citadel/UX.
Last updated: 05-28-2005 13:54:27