Use Net Wiki

What do you get when you cross Wiki and UseNet?

If this were a joke, the answer would be "UseNet!"

But think about it a little: UseNet is a massively-replicated database of mostly ascii text. There's a little bit of structure (e.g. subject and date headers, threading info, newsgroups) and a lot of flexibility.

You could use it as the storage mechanism for a Wiki: ExamplePage would be stored by posting a message to UseNet with "ExamplePage" as its subject, and the Wiki-formatted text as its body. When someone edits the page, the entire new version of the text is posted as a message with the same subject ("ExamplePage"). There's really no point trying to conserve storage space: it's all a drop in the UseNet ocean.

A front end to this Wiki could take advantage of DejaNews (or whatever its successor is): to display ExamplePage, search for messages with the subject "ExamplePage" (probably restricted to a single newsgroup, e.g. alt.usenetwiki.mywiki), and pick the one with the most recent date. Display as usual.

Displaying a page's history would be easy: just find all the messages whose subject is "ExamplePage", and display them in a list, with their dates. The user could pick any two to diff.

Editing a page would similarly be easy: grab the text, let the user edit it, then post the new version to UseNet.

The only potential stumbling block I can see is simultaneous edits. You can't do effective locking, since the store is so radically distributed, and latencies are so high (e.g. you can't wait an hour to confirm that you have a lock on a page).

But this isn't necessarily fatal to the scheme. An analogy: WardsWiki uses page-level exclusive checkout, like most source-control systems. The UseNetWiki would use optimistic non-exclusive checkout, like CVS.

I'm temtped to say "So what", let the WikiGnomes take care of content forks (which should be automatically detectable, if you use reply-to: headers properly), and let users discover that ThreadMode isn't just harmful on UseNetWiki, it's a pain in the ass to engage in, as well.

A web-based front end would be the quickest way to get started, but dedicated clients (e.g. an Emacs extension) could also be written.

One extension has occurred to me: use encryption on the content (including the subject: headers) to create a distributed, secure Wiki. If you want to distinguish readers from writers, you can use PublicKeyCryptography: readers get the public key, so they can decrypt everything, but only writers get the private key, so only they can change pages.


Thoughts? Is this an insane scheme? Could it possibly work? Will we be reading a SlashDot link next year to an article titled "How Wiki Ate UseNet"?

Couldn't work for a popular wiki since new posts take a while to propagate. Consider people using GoogleGroups to post: It takes several hours to see newly posted messages. In the mean time, there could be (and definitely are in popular newsgroups) several conflicting posts. UseNet is much more asynchronous than Wiki.


EditText of this page (last edited December 19, 2002) or FindPage with title or text search