Remodeling the Original Wiki

Ward Cunningham created the Wiki Wiki Web, the first wiki which is a website where the users create the content, for the Portland Pattern Repository. This repository studies the ways computer programmers solve problems using repeated methods, and tries to form a sort of natural language out of these repeated solutions to problems. [1] In 2015, write privileges were removed when a user threatened to vandalize the site through an automated process, and Cunningham worked on remodeling his original design to mitigate this problem and other abuses. [2]

Initial Design

Norms

Like with other wikis, users could edit pages on the Wiki Wiki Web. Unlike other wikis, however, the Wiki Wiki Web had different norms. [3] Research was done by the users so they did not have to attribute their findings, or even if work was copied it was not often cited. Users also did not have to carry a formal tone when writing, and may even carry out a conversation on a page. This level of conversation is removed from other wikis in an attempt to establish ethos; however, each wiki remains only as credible its community. The formality that some wikis try to impose causes students to be asked to do their own research and form their own conclusions instead of directly taking information from one of these wikis due to possibly incorrect interpretations. [4] To make up for the formal tone, and attempt to make information to appear as an absolute truth, the resources section can still be used by these students to have access to all the information available to the wiki writers. With the less formal Wiki Wiki Web, some contexts may be added to information such that this resource section can become unnecessary.

Security

The Wiki Wiki Web aimed to take advantage of Wiki Nature and Cunningham's Law such that it was more than just a "collection of things." [4] Debates often occurred on pages such that opinions could be viewed instead of completely hidden. Content that added no value to the wiki, such as spam or insults, was easier to delete than to generate, unless automated. That is why this wiki's community could maintain its reliability with almost no other form of security in place. [7] Along with the community deleting spam when it appeared, delayed indexing was used to discouraged spammers. [15]

The Wiki Wiki Web also had version control, which other wikis also use, which made it easy to revert back to a previous version of a page. This also allowed anyone to edit any existing content. If the community refused to accept these edits then they rolled back the changes made instead of having to rewrite the page. Unlike other wikis that may have permissions to edit certain pages, the system used by the Wiki Wiki Web made it possible to correct or remove incorrect information that someone else created.

Restrictions

Restrictions were imposed by the community of the wiki through either deletion or undoing changes made. The Wiki Wiki Web was lenient about what it allowed compared to other wikis, but there was a general agreement on what content needed to be deleted. Obviously spam needed to be removed. If insults or harassment were made then users were asked to delete the insults, but attempt to keep the relevant content. [8] This allowed for many conflicting views and reasoning to be shared on a page, but these were often separated to allow the reader to notice when are reading another's point of view. Furthermore, ad hominems were also frowned upon. Unnecessarily deleting content was possibly the most offensive action to this community. [9] Due to the Wiki Wiki Web being about programming, those who posted topics not related to the wiki or programming were often labeled as wiki squatters. Rather than getting frustrated at these users, they provided resources to help them understand how to set up their own wiki and build their own community around it. [10]

Reasons for Closing

Most of the abuse the Wiki Wiki Web encountered was taken care of by its community. However, the technology and practices the site used began to age and a new wiki needed to be made. Cunningham decided that it was best to close the old wiki since running it slowed down his computing to much to work on the new wiki. [5] Another reason for closing the wiki was to prevent a user from causing the automated destruction of the old wiki. [2] The old wiki is currently in the process of returning to full service, and will be later integrated with the Federated Wiki to eventually allow write access. The Federated Wiki is Cunningham's attempt at making a new wiki with modern technology such as its many open source plugins. Pods in the Federated Wiki will eventually be made available for the write access to the old wiki. [2]

Restoring Old Wiki

Cunningham is currently attempting to bring back the static data from the original wiki. Features such as the "EditText" link on wiki pages were omitted due to the removal of write privileges and the possibility of editing the old content through Fed Wiki in the future. Currently the static site is back to rendering static JSON for client viewing. Clients can now view paragraphs with emphasis, links, and lists. A plugin was also made to redirect to existing links, and Cunningham also made it possible to host the original wiki without needing to configure it. [2]

Producing the Fed Wiki

The original wiki used CGI with Perl to serve content, but in Fed Wiki's attempt at being more modern it is using node.js. In using node.js, installing the Fed Wiki server can be done through npm. It is possible to set up a Fed Wiki server in executing as little as two commands. [11]

npm install -g wiki
wiki

The federated wiki still attempts to remain minimal to encourage people to adapt it to their own needs. Even though they are attempting to stay minimal, it is taking much more code to write the new wiki. The original wiki was written in a week, but with Fed Wiki the project had to be broken up into many pieces to separate all the plugins. This makes additional functionality modular which helps keep it minimal at its core while maintaining functionality.

Interface

The original wiki worked like many other websites in that each link would bring the user to a new page. Cunningham envisioned that instead of reaching a dead end, when coming across a page that has not been created, a user could instead add that page with what they know and other people could come to that page later to improve it. With Fed Wiki, each link opens a new page to the side. Users can easily navigate back to a specific location by scrolling instead of through their history. In the original wiki, users also used camel case, or wiki case, to create links to new pages which they could later write [14]. The reason for using this method over being able to use anything as a link is that it requires no additional markdown to create a link. This decision was likely made due to the nature of wikis becoming deeply linked. The Fed Wiki takes the other approach and allows for anything to become a link. When the wiki sees this markdown it offers to create new pages if a user creates an internal link that is not already in use. To remove pages it appears a menu option will be created in the future, but currently those running Fed Wiki servers can delete pages they are hosting.

Current State

Currently, the original wiki has about 95% of its content back as static data. [2] Cunningham helped develop Fed Wiki and has written many plugins for it as well, and he also plans to develop a method to integrate the original wiki's content with Fed Wiki. Some of the plugins he has made extend Fed Wiki's markup, such as popup and outline. Cunningham also wrote plugins to help generate safe HTML and shell to convert escape sequences to HTML. He wrote an OAuth plugin, security-passport, to replace Mozilla Persona. User applications such as chess and morseteacher were also made by Cunningham for the Fed Wiki. These user applications take advantage of the wiki's structure by saving the user's progress to wiki pages. Cunningham also added plugins for services used outside of Fed Wiki as well such as an RSS plugin, twadio, microtalk, datscript, and bikeshare.

Fed Wiki has borrowed a few ideas that other wikis have implemented. For instance, it changed its markdown so that links now require markdown but no longer need to be camel case. The tab plugin Cunningham wrote also explicitly states that it attempts to escape certain links in the same way as Wikipedia [17]. The Fed Wiki has also built upon the original concept of linking to other wikis to where paragraphs from other wikis can be added, and the edits and where they came from are all automatically cited. Cunningham notes that it is the creative commons attribution that makes this possible. [16] Therefore, this method is similar to the approach open source software takes with forking and open source licenses.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License