Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Citadel (software) - Wikipedia, the free encyclopedia

Citadel (software)

From Wikipedia, the free encyclopedia

Citadel is the name of a bulletin board system software program, and of the genre of programs it inspired. Citadels were notable for their room-based structure (see below) and relatively heavy emphasis on messages and conversation as opposed to gaming and files. The first Citadel came online in 1980 with a single 300 baud modem; eventually many versions of the software, both clones and those descended from the original code base (but all usually called "Citadels"), became popular among BBS callers and sysops, particularly in areas such as the Pacific Northwest, Northern California and Upper Midwest of the United States, where development of the software was ongoing. Citadel BBSes were most popular in the late 1980s and early 1990s, but when the Internet became more accessible for online communication, Citadels began to decline. However, some versions of the software, from small community BBSes to large systems 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.

Contents

[edit] The Citadel user interface

Typical Citadel BBS screen
Typical Citadel BBS screen

The utilization of a natural metaphor, the concept of rooms devoted to topics, marked Citadel's main advancement over previous BBS packages in the area of organization. Messages are associated with rooms, to which the user moves in order to participate in discussions; similarly, a room could optionally give access to the underlying file system, permitting the organization of available files in an organic manner. Most installations permitted any user to create a room, resulting in a dynamic ebb and flow closer to true conversation that most other BBS packages achieved. Certain versions of Citadel extend the metaphor of rooms with “hallways” and/or “floors,” organizing groups of rooms according to system requirement. By contrast, previous bulletin board software emphasized the availability of files, with a single uncoupled message area that could only be read linearly, forward or backward.

Citadel further improved the user experience in the area of command and control. Based on Alan Kay’s philosophy of user-interface design, “Simple things should be simple; complex things should be possible,” and influenced by the fact that Citadel was developed in an era of 300 baud modems, the basic and most heavily used commands are accessed via single keystrokes. The most common commands are <G>oto (the next room with new messages), <N>ew messages (display the New messages in the room to the user), and <E>nter a message into the room. Other single keystroke commands exist as well, such as <K>nown rooms, which lists the rooms known to the user.

This elegantly small command set made the system so usable that many daily users during Citadel’s golden era were never aware that Citadel also provided sophisticated capabilities. These are known as the “dot” commands and build logically from the set of single keystroke commands. A simple example would be the requirement to go directly to a specified room. The user would type <.G>oto <roomname>”, where the text between the brackets is user typed, while the rest is filled in by the system. A more complex example might be <.R>ead <A>ll rooms <Z>modem <N>ew messages (.RAZN), which results in all of the new messages in all of the rooms known to the user being sent to the user via the ZMODEM protocol. Filters for users, keyword searches, and other capabilities have been implemented, depending on the version of Citadel.

[edit] 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.

[This legend appears to confuse two unrelated programs I wrote about then: (1) strek.pas, the first Pascal (vs BASIC) star trek program on the UW campus. Timesharing access being $15/hr cash money back then, I wrote it on the Health Sciences DEC-10 account of my dorm roommate aka "The Cosmic Gorilla", who had an unlimited-funds account to add non-local GOTO support to Hedrick's Pascal for his master's project -- and who consequently got credit for strek.pas after it became a campus game staple. ;-) (2) Dand.pas, what would today be called a dungeons-and-dragons game level editor, an unknown concept at the time. Written in Hedrick's Pascal on the UW Physics Hall Visual Techniques Lab PDP-10 and so far as I know never released -- when I got to implementing spells, I realized magic follows no simple rules and requires a full application language to implement, so I went off to implement a Smalltalk compiler and virtual machine, and never got back to the project. I wrote a variety of stuff in this era ranging from CrT_talk (wardialing modem program based on Leor Zolman's telnet.t) to CrT_Edit (programming editor) to unixy filters for CP/M to an illegal port of AT&T's yacc to CP/M which I used to write a parser for Loglan -- arguably the world's first parser for a human-speakable language -- to various more ambitious things that never saw the light of day, such as Tetra, a nifty little bytecoded Forthish OOP software platform running on top of CP/M, which among other things had resizable overlapping windows and software virtual memory swapping onto a 90K floppy disk. -- Cynbe]

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 90KB floppy Heathkit H89 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.

[The last two lines are incorrect. Glenn Gorman's MINIBIN long predated Citadel, but was originally a simple BASIC BBS typical of the era. (Citadel was remarkable for the time for being written in C -- using Leor Zolman's brilliant, cheap and blazingly fast BDS C compiler -- in an era when almost all BBSes were flaky little amateurish jobs written in BASIC, given to frequent crashes which would leave the caller at the BASIC prompt, free to rewrite and restart the program -- perhaps the most enjoyable aspect of them. Being written in C, Citadel seemed unbelievably fast and reliable by comparison.) After I explained to him the datastructures needed to support rooms -- Glenn was a VW mechanic just learning BASIC at the time -- he went on to add them to MINIBIN, but it was always 100% his code: we never collaborated on anything, and I never collaborated with anyone on Citadel. My involvement ended with the release of Cit 2.11, beta'd on David Mitchell's ICS BBS on Bainbridge Island -- popular because it was a local call from Seattle but long distance from Seattle's east side, home to various obnoxious script-kiddy types like Bill Gates, collectively called "the Lakeside kids" -- and then released via the BDS C User's Group, later renamed the C User's Group. -- Cynbe]

[Cynbe's account of the "Citadel/Minibin" connection is correct. Minibin was a standard linear BBS I used to learn "basic".

CrT tried to explain the concept of a Citidel type system (which at this time existed in his head) but I couldn't understand because I had had no contact with D&D.

 So, Even though Minibin predated Cynbe's "ODD-DATA", Citadel was the "original" room 

based BBS. I coded the "new and improved" version of Minibin after I learned the concept from ODD-DATA's (Citadel) (I was to ignorant that didn't know that this type of progam could not be written in Basic, so I did it anyway) Glenn]

Citadel code has been forked, merged, ported, and cloned ever since.

[edit] 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.

Early Citadel development happened before there was much sophistication in software licensing in the developer community. Developers lacked the explicit responsibilities and rights popularized over a decade later by Open Source licenses; as a result, a fork was sometimes interpreted by one side as stealing work and credit. For example, the STadel fork became shareware as a result of legal pressure from its original trunk, Citadel/86. Closely-held source (c.f. Citadel/68K) sometimes slowed development relative to the liberally licensed Unix-based UUCP suites. Although Citadel systems were some of the leaders in BBS network federation, the nature of a BBS often focused relationships on local and area code communities rather than network membership.

[This is an interesting take on why the code forked, and really doesn't go to the heart of the matter. The primary reason for the end of Cynbe's involvement with the code, and withdrawal from the 1980s Seattle BBS scene had nothing to do with contributors to the code. I'm referring to an episode that we later called "the sugar bunny incident". A brief synopsis is that there was a personality conflict, people chose sides, and a schism developed which never got resolved. The schism was related to a particular individual (sugar bunny) who was very good at polarizing peoples opinions. There was a divorce involved, plenty of name calling, high minded calls for peace, personal attacks -- all the stuff that happens when most of the interaction is limited to email only. Cynbe basically completely withdrew from the code for personal reasons, and that's where I stepped in. Cynbe's being out of it forced other people to either watch the code die or step in, and in effect it made David Bonn and I and James Shields and others pick up the ball and run with it. Bruce King]

Technical improvements and platform ports often occurred despite of, not because of, the collaborative development process.

[edit] History of the original Citadel code base

Some Citadel implementations can trace their source code back to the original CP/M implementation. (These are sometimes called "True 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 (released by David Bonn) and IronHenge (released by Major Chaos).

The longest lived fork from the 2.10 code started in the American Midwest, when Hue White (aka Hue, Jr.) ported the code to MS-DOS and called it Citadel-86 ("C-86"). His board, Citadel-86 Test System, served not only as a discussion board and distribution center for the software, but also was the focal point for a lively Citadel-86 community in the 612 area code (the Twin Cities), as were other C-86 BBS's, such as Bad Sector, Todos Santos, and Dreamland. Numerous suggestions from sysops andd users, both local and national, guided the growth of Citadel-86, including the addition of a network capability as well as enhancements to the command set. Hue's contributions were substantial enough that several other porting projects used Citadel-86 as source material, such as Asgard-86, Macadel (Macintosh), STadel (Atari ST), and Citadel-68K (Amiga), and many of these contributed back to Hue Jr's project. Many of these ports were compatible with the growing Citadel-86 network (C86Net). Local systems would network with each other on a demand basis (due to the work of David Parsons), while the long haul network was serviced late at night.

From Citadel-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 Citadel-86 network.

Another fork from Citadel-86 was introduced by Vince Quaresima in New Jersey, eventually to be named Citadel:K2NE. (Southern New Jersey, like the Twin Cities region, had a geographically large area code (609), most of which was accessible toll-free from one side to the other. This encouraged lots of BBSes and helped the popularity of networking.) The relationship between Hue and Quaresima eventually went sour, as Quaresima extended the networking code in certain ways without consulting with Hue, developing some incompatibilities between the two versions' use of networking. Networking was eventually made compatible again, but the Midwest Citadel sysops and users blamed Quaresima for "stealing" Hue's code and credit.

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.

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.

[edit] Other Citadel implementations

Clone Citadels that were not descended from the original Citadel code base are also common. They 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 efforts 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 Unix version called Citadel/UX. Citadel/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, but this is a controversial claim), extending the Citadel metaphor to enable what its developers call "a messaging and collaboration platform (for) connecting communities of people together": a groupware platform.

Several attempts have also been made to adapt the Citadel paradigm to the World Wide Web, including Webadel, written by Jarrin Jambik, a former Citadel-86 sysop, and [[1]Anansi-web], hosted by former Citadel-86 Sysop, Ultravox the Muse. The only current actively developed web-enabled Citadels are Citadel/UX and PenguinCit, a PHP-based Citadel.

[edit] External links

[edit] Active Citadels

  • KaraNet BBS, http://www.karanet.at/, the largest Austrian BBS (DOC) - telnet www.karanet.at, or secure ssh -2 -l bbs www.karanet.at
  • depths of hell BBS, running BBS100. Telnet to bbs.hell.org ([2]).
  • The Dog Pound II BBS, Formerly known as The Dog Pound BBS, running Citadel/Ux, one of the major hubs of the larger Citadel BBS network. Also available via SSL, or you can telnet to dogpound2.citadel.org ([3]) or ssh to bbs@ dogpound2.citadel.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 ([4]) or ssh to bbs@bbs.eschwa.com.
  • Haven BBS, One of Indiana's oldest surviving BBSes (started 1992), running Citadel/UX. Alternatively, ssh to bbs@havenbbs.org.
  • ISCABBS.com - Started in 1989 and still the largest active DOC (Dave's Own Citadel) BBS. Telnet to bbs.isca.uiowa.edu ([5]).
  • Slumberland via web (Java) interface, one of the last remaining True Citadels (started in 1991), running a multi-user version of Citadel+. Alternatively, telnet to bbs.slumberland.org ([6]).
  • UNCENSORED! BBS, the home BBS of Citadel/UX.
  • BARBARIA the last of the many citadel BBS'es in Santa Barbara CA
  • 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 ([7]) or ssh bbs@utopiadammit.com with no password.
  • Anansi-web, run on Red Hat Linux by Tim Foreman.
  • New Moon, a PHP-based implentation by Angst Badger.
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu