HackDay – hack attempt 1 – a wiki sync

Yesterday was IBM’s fourth HackDay. My first project attempt of the day was to try and ‘hack’ our internal wiki.

Background
We have an internally hosted wiki software on the intranet. Anyone is free to create a new wiki, and these wikis are used to manage anything from work projects and teams to community projects.

The idea
The plan was to write something that would let you have a local copy of a wiki – a copy which lets you read and edit an intranet wiki while offline (or with only Internet access). The idea was to have the ability to sync this local wiki to the intranet-hosted the next time you are on the intranet.

Why?
The thought was that sales or service IBMers who work at customer sites might not always have access to the intranet.

And even with Intranet access, I thought that some tasks – such as looking something up quickly – might be better-suited to the quicker access you could get from a locally-hosted mirror.

What was the plan?
Our intranet wiki is actually an installed version of third-party wiki software, Confluence. Confluence has an API and developers kit. The plan was to use my .NET wiki application to run the local copy of the wiki – something that can run on Windows desktops (and with a little porting work with Mono, Linux desktops). I could use the Confluence remote API to download/upload pages from the intranet wiki, writing some syncing software to keep track of the most up-to-date copy of pages. The syntax of the two wikis are a little different, so the syncing code would have needed to include some conversion or translation. The Confluence UWC framework would have helped with this.

Another benefit of using my .NET wiki would be that it could be synced with a Windows Mobile smartphone or PDA. You could be sat in a meeting with your phone, and look something up on the intranet wiki. Or update some meeting minutes while still sat in the meeting. Or look something up while at a customer site without intranet access. Any changes you make would be synced up with the intranet version next time you connect your phone to a computer with intranet access.

How far did I get?
Not very far. Attempts to write something that converted between wiki syntax types went well – I made a good start on extending the UWC framework.

Unfortunately, the hack ground to a halt when I tried to use the intranet wiki’s remote API:

“Error 403: Remote API is not enabled on this server. Ask a site administrator to enable it. “

What next?
I’m not sure.

When showing my idea to someone yesterday afternoon, they pointed out that there is an external IBM-hosted equivalent to the wiki software – and that this one does have remote API enabled. So I might come back to this idea, and use an external wiki to put together a proof-of-concept.

Who knows? If it works well, I might try convincing the server admins for the intranet wiki to enable Remote API 🙂

2 Responses to “HackDay – hack attempt 1 – a wiki sync”

  1. Alexander says:

    Any news on this? It’s a great idea. I’ve been looking for something like this for a while. I’m not a programmer so I can’t help you with the code; but if you need beta-testers here I am.

  2. dale says:

    It’s still something I’m playing with, but I’m afraid that it’s not ready to share – sorry.