Web site development can be an intimidating process to nonprogrammers. And collaboration with others can also be daunting, requiring expensive server-based applications. But it doesn't have to be that way. A technology with the strange-sounding name WikiWikiWeb (or just WikiWeb) simplifies both processes.
Created in 1994 by Ward Cunningham, WikiWeb was loosely derived from HyperCard principles and is written in a language called HyperPerl. The guiding principle behind the original Web site of Kansas City, Mo.-based WikiWeb Inc. (www.wikiweb.com) is that anyone can change or add to anything on a Wiki site at any time via an ordinary browser interface, making it an ideal collaborative environment.
Wiki provides an easy way to navigate files in a database. The technology is a stable platform that allows for adaptation or cloning to suit individual requirements. Wiki sites have been created using several development tools and languages. The www.Kehei.com WikiWeb is Perl-based; a clone written by Patrick Mueller was created in Rexx; and there are also Wiki engines in Python, Java, Smalltalk, Active Server Pages, Ruby, PHP and Visual Basic. Many clones have been created to support corporate or departmental intranets.
The main benefit of using Wiki is that it's not necessary for all changes to be submitted to a single intranet manager or webmaster. Those who use the site can keep it up-to-date on the fly. One implementation involves a customer support site for IBM's Component Broker product. Because pages are generated dynamically, the most current version of the file is always being served and links are automatically updated. Dynamic page-loading increases server load, but the Apache Web server with the mod_perl programming module can simultaneously support up to several hundred users.
LilyPond, a music software site, is using Wiki for its online documentation.
For Tcl enthusiasts, there's The Tcl'ers Wiki. This is a collaboratively edited area on the Web dedicated to the Tcl programming language and its extensions.
The JOS Project is a collaborative undertaking by an international group of Java programmers and enthusiasts that's aimed at the creation of a free and open Java-based operating system (JOS). This site's goal is to support the creation of membership lists, hold brainstorming sessions and provide requirement documents, detailed specifications, sample code and other documents essential to the JOS Project.
The original Wiki site stores all pages together in one file using the Unix dbm hashed-access method. The Wiki translator accesses the database as it formats each hyperlink, which -- according to the dbm documentation -- can be done in two disk reads or fewer. The flexibility of this technology lets it sit on top of other databases such as Oracle, Access, Mini SQL and Revision Control System.
Wiki's formatting procedures aren't WYSIWYG, nor are they particularly intuitive. But the editing and creation commands are easy enough to master with minimal study, and they're brief enough to keep open in a second browser window for quick reference.
The basic text-formatting rules are simple:
- Don't indent paragraphs.
- Words wrap and fill spaces as needed.
- Use blank lines as separators.
- Four or more hyphens at the beginning of a line make a horizontal rule.
You'd never guess some commands: Use doubled single quotes ('') for emphasis (usually italics), tripled single quotes (''') for strong emphasis (usually bold) and six single quotes ('''''') to separate names that would otherwise appear to Wiki as page names but aren't. For example, QuickStudy, the name of this tutorial, would be input as Quick''''''Study to avoid being coded as a hyperlink.
Linking Made Easy
Creating hyperlinks to local pages is as simple as joining capitalized words together; if there were a page on the topic, its name would appear as JoinCapitalizedWords. Since page names are the hyperlinks between documents, it's important to assign names that clearly inndicate a page's content.
Creating new pages is simple. Following the Wiki naming convention (using joined capitalized words as page names), include a link to your new page in any other page. When you save the page, a link will be generated that ends in a question mark. Clicking on the question mark opens the link's edit window. Type or paste in text, save, and you're done.
I was able to easily add my own test file to the Wiki Wiki Sand Box, which is an area of the site where users are free to experiment.
In the piece I added, there are two hyperlinks to local pages: WikiWikiSandBox and TextFormattingRules. The word test was italicized by using the emphasis rule, while WikiWikiSandBox uses both the strong emphasis rule and the local hyperlink rule. The most-used-pages links were created with the list rules. For these, I had to use the Alt key plus 0-0-9 in place of the Tab key, which didn't work in the edit window.
The original Wiki markup language doesn't incorporate an HTML subset, although some clones have included one. The logic behind its omission is that using raw HTML would mean losing too much control over the content presentation. Since HTML hard-wires the syntax and features, a single small error can break an entire page; also, full HTML allows users to exploit browser security holes.
Because pages are automatically indexed by their assigned category (a term used interchangeably with "topic" in the Wiki world), site maintenance is considerably reduced.
As a former intranet manager, I would have loved to have been able to delegate site updates through such an easy-to-use tool. Anyone responsible for maintaining a Web site or who has manually updated hard-coded links in flat HTML pages would appreciate Wiki.
Blake is a freelance writer in Dover, N.H.
This story, "WikiWikiWeb" was originally published by Computerworld.