This could be an attempt to create a program to view online wikis that use the mediawiki software.
Servers that hold wikis which are frequently visited, such as the wikipedia, have a lot to bear. The benefits if users were to use an external program are obvious:
- Every transfer would only be several bytes / kilobytes and, in some cases, images or other media.
- All the skins, little window decorations, etc. would be left out.
- No parsing of wiki markup on the server-side
- Servers would have to server much less requests. Example: A user views a wiki article, decides to edit it, previews it and saves it. Online this would take 4 requests and the server would have to parse the wiki markup in the background. If an offline program was used, this would only take 2 requests: get the article content and load up the modified version.
The user interface could be easier. Especially the editing part would be easier since the markup view would be replaced by wysiwyg.
More Trust From Users
This might sound strange to some, but many people don't trust the internet very much. They simply reject the idea of editing something online. A "real" program might add authenticity.
There could be a caching function which aids further in taking a load off of the servers. Browsers support caching, but a special caching especially for mediawiki's could be more efficient and space saving.
Texts could be saved while editing. This would get rid of some problems that people might have with loosing data. For example clicking backspace while the edit window is not in focus and the browser goes back in the history: All their modifications are lost. I suppose this problem is solved in most modern browsers (I know with Firefox it works). But some older browsers might still make some trouble.
Gadgets & User Settings
Users could store many more settings due to the fact that these would be saved on their own computer. Much extra functionality could be added this way.
This idea may sound unrealistic and it's just a suggestion: Home workstations could be used to store and distribute content. Many other systems have implemented this idea: Bittorrent, Seti@home, ... Don't ask how this could be realised though, I haven't looked into it yet.
Of course, this wonderful piece of software should be Open Source. Java seems to be a programming language that is well suited for this type of program.
One major difficulty is that there would have to be some kind of daemon running on the server that serves the clients requests.
The proposed software is a program run on the user's computer, like a special browser for wikis. It can be either a separate program or additional functionality integrated into a regular web browser. The purpose is to provide the user with more comfort and offline functionality. The primary target should be MediaWiki wikis, but there could also be an interface so that plugins for other backends might be added later (such as MoinMoin).
The “wiki browser” fetches pages from the wiki server always in their source format and renders them locally. (The rendering is either done directly or by conversion to html and displaying through an html engine.) Also, the version list of a page is always loaded. As the pages are downloaded always in their source format, it allows faster switching between the rendered version, the editor, the preview, the editing diff and the version list. This also relieves the server, which would not be called for editing and previewing. Another effect is that navigation and tool links can be displayed outside the document, using standard GUI elements, such as menu bar entries or tool bars.
If the wiki server is unavailable, other data sources such as a CD-ROM, a database dump or a mirror server can be used as well. The user can see in his local copy of the version list, which versions are in the local cache, and which are currently available at all. Versions that are available locally (CD, DB dump etc.), are only copied to the cache if the user requests this. The version list could also contain checksums so that the integrity of a particular version could be verified. A user with dialup internet access could browse the wiki from CD and mark certain articles for batch download, in order to obtain their newest version or their correspondant discussion pages.
Editing of pages can be done offline, too. If the wiki server is not available, the edited version is saved as a local version and marked as such in the local version list. Local versions can be marked for batch upload and uploaded later (or via email). Although long waiting increases the risk that the version is rejected because of an edit conflict, offline edititng is the only way for some people to participate in a wiki at all.
The program would also include a watchlist manager that automatically fetches the watchlists of all wikis the user has an account on. Optionally, the watched articles are also be batch-downloaded at this point.
The program should also use a P2P protocol such as bittorrent to download large media files. The server might make this compulsory for certain files, so that the high traffic for a free music wiki or a free video wiki can be handled at all. In some cases it might even be neccessary to share the entire cache, so for smaller projects with very limited resources.
For special purpose wikis, special purpose editors and viewers could be plugged in. So, for a music wiki, a tracker program could fetch and post the score data directly from and to the wiki.
- It is possible to have a local MediaWiki installation and thus to edit and preview articles offline, but the changes have to be transferred to the master wiki manually.
- There is a commandline up- and download tool with an interface similar to CVS. (Does it actually work yet?) It could make offline editing possible, but there is of course no preview function.
- There are offline editions of Wikipedia for PDAs and on CD. They give a good impression how an offline reader could look like. However, the articles are converted into another format and thus not suitable for further editing.
- There is a MediaWiki plugin that sends out mails whenever watched articles change. This might be a partial solution to the problem addressed in the watchlist manager idea.
- The KDE team has announced plans to create a MediaWiki API so that user side client software cann access the wikis more easily (↑WikiNews article).