MSCFOSS/DIF122/Software Development Practices/Unit IV/Wiki
A wiki is a website which allows its users to add, modify, or delete its content via a web browser usually using a simplified markup language or a Online rich-text editor|rich-text editor. Wikis are powered by wiki software. Most are created collaboratively.
Wikis serve many different purposes, such as knowledge management and notetaking. Wikis can be community websites and intranets, for example. Some permit control over different functions (levels of access). For example, editing rights may permit changing, adding or removing material. Others may permit access without enforcing access control. Other rules may also be imposed for organizing content.
Initiator & First wiki
Ward Cunningham, the developer of the first wiki software, WikiWikiWeb, originally described it as "the simplest online database that could possibly work." "Wiki" Hawaiian word meaning "fast" or "quick".
Objective of a wiki
Ward Cunningham and co-author Bo Leuf, in their book The Wiki Way: Quick Collaboration on the Web, described the essence of the Wiki concept as follows:
- A wiki invites all users to edit any page or to create new pages within the wiki Web site, using only a plain-vanilla Web browser without any extra add-ons.
- Wiki promotes meaningful topic associations between different pages by making page link creation almost intuitively easy and showing whether an intended target page exists or not.
- A wiki is not a carefully crafted site for casual visitors. Instead, it seeks to involve the visitor in an ongoing process of creation and collaboration that constantly changes the Web site landscape.
- anyone can edit
- easy to use and learn
- Wikis are instantaneous so there is no need to wait for a publisher to create a new edition or update information
- people located in different parts of the world can work on the same document
- the wiki software keeps track of every edit made and it's a simple process to revert back to a previous version of an article
- widens access to the power of web publishing to non-technical users
- the wiki has no predetermined structure - consequently it is a flexible tool which can be used for a wide range of applications
- there are a wide range of open source software wiki's to choose from so licensing costs shouldn't be a barrier to installing an institutional wiki
Advantages in one context, may be disadvantages in another.
- Anyone can edit so this may be too open for some applications, for example confidential documentation. However it is possible to regulate user access.
- Open to SPAM and Vandalism if not managed properly. There are easy ways to restore a page however, and on WikiEducator you must be logged in to edit pages so this reduces vandalism by automated spam bots.
- Requires Internet connectivity to collaborate, but technologies to produce print versions of articles are improving
- The flexibility of a wiki's structure can mean that information becomes disorganised. As a wiki grows, the community plans and administers the structure collaboratively.
Examples of Wikis
The largest and most talked about Wiki on the Internet is Wikipedia
Wikipedia is, for the most part, editable by anyone in the world with a computer and an internet connection and, as of Nov 2008, contained over 10,000,000 articles in more than 250 languages. Two and a half million pages in English! There are also more than 250,000 articles in German, French, Polish, and Japanese; and more than 100,000 articles in Spanish, Italian, Dutch, Portugese, Russian, Swedish, and Chinese. While Wikipedia's mission is to create an encyclopedic resource of knowledge, wikis can be used for a variety of purposes and are quickly becoming the defacto technology for collaborative group work online. They can be great social tools for classrooms, teams, community groups, or can even be configured to provide easily updatable web sites for organisations.
The following wikis display a range of different applications of wiki technology:
- Wikitravel - a project to create a free, complete, up-to-date, and reliable world-wide travel guide.
- WikiWikiWeb - the first ever wiki, it has been around since 1995.
- AKOWiki - an evolving site to provide a bit of help with technology, ideas and teaching to staff in an institution. Lots of single issue pages, not much hyper linking.
- Scholarpedia - a wiki project based on a system of peer review.
There are literally thousands of wikis around the web on a diverse range of subjects and supporting many communities.
Open Source Projects & their wiki
- Ubuntu: https://wiki.ubuntu.com/
- Fedora: https://fedoraproject.org/wiki/Fedora_Project_Wiki
- Debian: http://en.wikipedia.org/wiki/Debian
- FreeBSD: http://wiki.freebsd.org/
Free/ Open wiki softwares
- MindTouch - http://www.mindtouch.com/
- Dokuwiki - http://www.dokuwiki.org/
- Foswiki - http://foswiki.org/
- Moinmoin - http://moinmo.in/
- Mediawiki - http://mediawiki.org/
- Twiki - http://twiki.org/
MediaWiki is free server-based software which is licensed under the GNU General Public License (GPL). It's designed to be run on a large server farm for a website that gets millions of hits per day. MediaWiki is an extremely powerful, scalable software and a feature-rich wiki implementation, that uses PHP to process and display data stored in a database, such as MySQL.
Pages use MediaWiki's wikitext format, so that users without knowledge of XHTML or CSS can edit them easily.
When a user submits an edit to a page, MediaWiki writes it to the database, but without deleting the previous versions of the page, thus allowing easy reverts in case of vandalism or spamming. MediaWiki can manage image and multimedia files, too, which are stored in the filesystem. For large wikis with lots of users, MediaWiki supports caching and can be easily coupled with Squid proxy server software.
$ sudo apt-get install apache2 mysql-server php5 php5-mysql mediawiki
- (mysql installation will ask you to create a mysql root-user password)
- Edit as sudo user: /etc/apache2/conf.d/mediawiki.conf and Uncomment the line starting with Alias
Configure your wiki
- Open web browser and navigate to: http://localhost/mediawiki
- Click "set up the wiki" link.
- For "Wiki name", you can choose any name (but not "MediaWiki") unless this installation is for a pre-existing MediaWiki instance, in which case use the same 'Wiki name' as the previous installation.
- "Contact e-mail", "Language", "Copyright/license", "Admin username" can be left unchanged.
- You will have to enter a password for the wiki administrator (default username 'WikiSysop'), and enter it again to confirm.
- "Shared memory cacheing", "Memcached servers": leave unchanged.
- "E-mail features (global)" - set to "Disabled" unless you plan to use MediaWiki's e-mail features.
- "User-to-user e-mail", "E-mail notification about changes", "E-mail address authentication", "Database type", "Database host": leave unchanged.
- "Database name", "DB username": leave unchanged to allow MediaWiki to create a user for accessing the wiki database, unless you have already used MySQL Administrator to create a database and user for MediaWiki.
- "DB password", "DB password confirm": Enter password for the wiki database user twice. Warning: This password will be stored in plain text in LocalSettings.php!
- To let MediaWiki create the wiki database and database user, click the "Use superuser account" checkbox and enter the MySQL superuser name and password.
- Click 'Install MediaWiki!' button.
It's very easy to edit the contents of a wiki. It only takes a few clicks.
- Click the "Edit" page tab at the top of the page.
- Make changes to the text.
- Click the "Save page" button.
Simple as that!
Editing rules, editing conventions, and formatting
The number one rule of wiki editing is to be bold. Dive in and make changes. Other people can correct mistakes later, so have confidence, and give it a try! There are all kinds of editing conventions, rules, and philosophies for the editing of wiki pages, but the "be bold" rule overrides these!
An edit can contribute whole new paragraphs or pages of information, or it can be as simple as fixing a typo or a spelling mistake. In general, try to add or edit text so that it is clear and concise. Most importantly, make sure you are always aiming to do something which improves the contents of the wiki.
When you need to use some type of formatting, such as for a new headings or bolding of text, you do this using wiki syntax or the buttons in the edit toolbar above.
Before you save a change, you can enter a short note in the Summary: box describing your changes. Don't worry too much about this, or spend too much time thinking about it, but try to give a little description of what you just changed e.g. "fixed typo" or "added more information about sunflowers".
The summary gets stored alongside your edit, and allows people to track changes in the wiki more effectively.
It's a good idea to use the "Show preview" button to see what your change will look like, before you save it. This is also related to tracking changes because every time you save, this is displayed to others as a separate change. This isn't something to worry about too much, but it's good to get into the habit of eliminating mistakes in your own work, by using a preview before saving, rather than saving several minor corrections afterwards.
Another option is the "Show changes" button which allows you to see the differences between the current version and your edited version.
Every article has its own “talk page” where you can ask questions, make suggestions, or discuss corrections.
Starting a new page
There are several ways to start a new page. These can vary based on the type of page started, as well as the wiki and namespace.
MediaWiki makes it very easy to link wiki pages using a standard syntax. If you (or anyone else) create a link to an article that doesn't exist yet, the link will be coloured red, like this.
Clicking a red link will take you to the edit page for the new article. Simply type your text, click save and the new page will be created.
Once the page has been created, the link will change from red to blue (purple for pages you've visited) indicating that the article now exists.
Usually this is the best way to create a new page, because it means that right from the start, the page will be linked from at least one other place on the wiki (and typically you will want to mesh it into other related pages later). If you are creating a new page without creating any link to it, you may need to ask yourself: Does this page really fit in with the topics already covered in the wiki? Also, how are you expecting visitors to find this page? Normally there is no reason to create a page without first creating a red link to it.
From the search page
If you search for a page that doesn't exist (using the search box and “Go” button on the left of the page) then you will be provided with a link to create the new page.
Using the URL
You can use the wiki's URL for creating a new page. The URL to an article of the wiki is usually something like this:
If you replace
ARTICLE with the name of the page you wish to create, you will be taken to a blank page which indicates that no article of that name exists yet. Clicking the "Edit" page tab at the top of the page will take you to the edit page for that article, where you can create the new page by typing your text, and clicking submit.
Create redirects to your new page
Don't forget to set up redirects when you create a page. If you think another person may search for the page you've created by using a different name or spelling, please create the proper redirect(s).
Protecting your new page
Normally a new wiki page can be edited by other people (that is one of the main ideas of a wiki!) However, a sysop could protect the page, if desired, to prevent normal users from editing it.
Moving a page
Moving (renaming) a page means giving it another name. This is done by using the "move" tab at the top. The tab is not visible if you are not logged in. Then simply enter the new name and click "Move page". Normally you would want to leave the "Move associated talk page" option ticked.
If you move page "A" to a new title "B", this operation will do the following:
- Renames the title of page "A" as "B"
- Renames all the editing history of page "A" as of page "B" as well
- Creates a new page "A", whose content is a redirect to page "B"
The second point is important. By using the "Move" feature, you also move the editing history, which is desirable in most situations. The editing history allows people to see how the contents of the page were built up, and who contributed what. If you move contents around by copying and pasting (not using the move feature), you do not achieve this.
Because the move operation leaves behind a redirect, it should not result in any broken links, however you might want to hunt down pages or other redirects which link in to the redirect, and change their text to link directly to the new title. The "What links here" feature, which can be used through the link in the Toolbox (at bottom of the sidebar on the left) is useful when doing this.
Proposing a move
Deciding on a page title can be a difficult aspect of wiki organization, and one which can often provoke debates. If the move you have in mind is one which might cause upset or could be considered controversial, you should propose the move first. Do this by leaving a note giving your reasons on the talk page. You might also establish a system for labeling the page itself, with a move proposal template, to make everybody aware of your intentions.
Undo a move
As with all wiki editing, a move operation can be reversed (by any user). To reverse a move operation, simply move the page back, e.g. move page "B" back to "A".
The page title "B" will still be left behind, as a redirect from "B" to "A". Any user can remove the redirect and propose that the page be deleted. However the final deletion will require sysop privileges.
Moving a page without creating a redirect
Users with the suppressredirect user right can optionally move a page without creating a redirect. This is particularly useful when undoing a move.
When the right is enabled, one additional check box will appear when one needs to move a page.
Sysop deleting and undeleting
Normal users cannot permanently delete a wiki page. This is a deliberate design feature, and is an important part of why wikis work. Every kind of editing operation can be reverted by any other user, and that includes resurrecting deleted content. It doesn't cause significant wasted space; and with nothing but a 'delete' label, the page is effectively deleted anyway.
Deleting a page is, on the other hand, a straightforward operation for anyone with sysop permissions: it allows to semi-permanently remove a page from the wiki, until a sysop undeletes (restores) it with the same ease. Typically sysops might look for delete labels, and do a proper delete on these pages, after a period of time. If for some reason you need a page to be deleted more quickly than that, you will need to contact a sysop to request this.
Sysops should also be aware of the general advice given on When not to delete a page: in particular, there are many situations where a deletion is too drastic. For example, a redirect is often more appropriate.
Before deleting you could perform various checks:
- Use the "What links here" tool. This gives an indication as to how important a page is, and what subjects it relates to. Perhaps the page is still linked to prominently from many places. All incoming links will become red links if you proceed with the delete. Ideally all incoming links should be changed/removed, if there is genuinely no need for this page to exist. You could do this work prior to deleting, or ask others in the wiki community to do it.
- Check the page history and the associated talk page. Who was proposing the deletion? Does anyone disagree? Has it been properly discussed? Did people have adequate time to raise objections? Did somebody vandalise a page, which then led to a deletion proposal?
The care taken over these things might depend on the size of the wiki community, and how clear-cut the case for deletion is. Remember that only sysop users can undo a delete action, so to a normal user the information appears to be lost forever.
Use the 'delete' action
Sysops should see a 'delete' tab or action menu option at the top of every page. Click this to delete the page. When using browsers which support keyboard shortcuts, you can also use (Control-Alt-D). You will be asked to confirm, and to supply a "Reason for deletion". This is a short textual description of why the page is being deleted. Your action will appear on the recent changes display, and in the deletion log.
To undelete a page you must navigate to the exact page name of the page. You can find this in the deletion log if you dont remember it.
You should then see a link to "View or restore n deleted edits". Tick the box next to the revision you wish to restore.
Configuring deletion reasons
The list of reasons in the dropdown box is maintained at MediaWiki:Deletereason-dropdown.
When not to delete a page
Typically you would delete a page if the contents are entirely inappropriate and do not match the purposes of the Wiki. In other situations, you would take a less extreme course of action, for example:
- The page should have a different title
- The contents should have been placed on a different page -- Add the contents to the other page, and then supply a redirect.
- The contents are already on a different page -- Delete the duplicate content and leave a redirect. That way, the page title, which made sense to somebody, will helpfully redirect to the information.
- The page is out-of-date -- Re-word sentences to be in the past tense, to make the page an historical record. Alternatively, label the information as out-of-date, with a warning notice.
- Don't delete redirects.
An actual delete is generally necessary only if the title of the page is inappropriate. In other situations, a merge and redirect is more appropriate.
Deciding on appropriate content/page titles can be a difficult aspect of Wiki organization, and one which can often provoke debates. If the merge or deletion you have in mind is one which might cause upset, you should propose the change first. Do this by leaving a note to give your reasons on the talk page. You might also establish a system for labeling the page with a delete/merge proposal template, to make everybody aware of your intentions.
The 'What links here' toolbox feature (bottom of left sidebar) will tell you which other Wiki pages link to the current page. Always use this feature to check before proceeding with deleting. These related pages will need to be edited for their links to reflect the change.