Saturday, May 23, 2009

Use (Doku)Wiki as a Documentation System?

By a wiki, I mean a web based piece of software, installed in an intranet for privacy. I have tried DokuWiki. It is a great piece of software. I can add information really quick (wiki is said to mean quick), I can tag it and search for it. Links are created automatically when I use WikiWords in CamelCaps or put the word/phrase in [[double square brackets]].
DokuWiki (and possibly other wikis) offer a good deal of access control; enough to make sure that configuration details are read only by the IT staff. It's probably not safe enough for passwords, but there are solutions for those too, e.g. KeePass.

Hard to use while disconnected
Because a wiki is on the web (with a few exceptions, e.g. TiddlyWiki), it's by definition hard to use in disconnected mode. But I see a few options (none of them tried yet) to get around this limitation:

1. Create an HTML copy
Before I leave the office, I could use wget or a similar tool to rip the entire wiki into a set of HTML files. I could copy these files on my netbook and have robust read-only access on the road. Unfortunately, such a scheme can't have direct write access, so I'd have to write new stuff to a separate file and integrate it later when back at the office. Not nice, but workable.

2. Run a Wiki Server on the Netbook plus Synchronisation Plugin
I didn't really expect this to be possible, but there are synchronisation plugins for DokuWiki. On a quick search this morning, I found sync and freesync. Development of both has begun as late as February 2009, so this is really new.
Running a full Apache webserver on a netbook may be stretching it, but it should be possible. Perhaps I'll try it some distant day and report on my technical blog.

One limitation of this scheme is the need to synchronize over the network. This is a show stopper in my typical use case: I leave the office in a hurry, just synchronising to the USB pen. I don't have the time to boot the netbook, connect it to the network, start the web server, start firefox, move to the synchronisation page, trigger the synchronisazion, wait for the synchronisation to finish, shutdown the netbook, pack the netbook. In short: when I leave the office (network), the netbook will not be in synchronized state.
The next morning I'm on the train, outside of network connectivity, so I can't synchronize and the netbook will stay out of sync. But I'm going to produce a lot of ideas, to do items, clarifications etc. So the already out-of-sync netbook copy will be modified further. When I return to the office, there is a lot to synchronize and chances are high that there will be conflicts. Resolving synchronisation conflicts is probably harder than integrating separate notes, so I'll better create those separate notes.

3. Synchronize the raw data files through the USB pen
DokuWiki stores its pages in simple plain text files, not in a database. I could synchronize the text file using unison or a similar tool, but doing so bidirectionally, and that's required when I want to be able to edit on the road, would reqire write access to a network share of internal wiki files. I could arrange for that acces for me, because I'm the administrator, but that's not feasible for the average user.

1 comments:

Anonymous said...

I'm currently using your second solution with Dokuwiki, and I have to say it works really well. I have my laptop and desktop syncronising everything and I also sync a subset of my wiki with my work machine. So far it has proved to be very simple and reliable. Obviously this means running apache on all my machines, but I have not experienced any problems doing this yet.

Post a Comment