Building a Wiki

I’ve long admired the value that I get from Wikipedia and like the concept of crowd sourcing knowledge, just never seemed to get around to setting one up. Finally decided to do it as a way to accelerate the SQLSaturday documentation, and I’ve set it up at http://wiki.sqlsaturday.com.

I looked at a few options. I wanted something free, preferably open source, and definitely running on SQL. Definitely a plus if it was asp.net. Turns out ScrewTurn Wiki is all of those. I did a quick test drive online, decided to try it. The install is fairly simple, it needs a single database with a login/user, copy the web files to an IIS web site, set the connection string, and go.

The database design seems reasonable, though no stored procedures, it’s all inline and/or generated on the fly. Lots of small interesting features. Discussions, RSS feeds, reasonably rich permission scheme. The only downside I’ve seen so far is that content is stored in a wiki markup format, not sure there is a compelling reason not to leverage HTML more. It will let you past HTML in and it displays fine, but when you go back to the graphical editor you don’t get the pretty view, just HTML code.

Of course, I don’t really know what I’m doing. When I do documentation the challenge (for me) is always trying to organize it. The wiki doesn’t fix that, but it does encourage writing pages that are nugget sized, and then we can create a few landing pages to point to the rest. For example, when someone emails Blythe to set up a preliminary call about doing a SQLSaturday, she’ll want to send them a link to a page that has pointers to the stuff they need to read at that stage of the game.

I started by just typing in a couple dozen topics as pages, and will try to spend some time each week building those out. You can see the list by clicking on the all pages link on the wiki. Not a lot of focus on style for now, just get the information and wait for some patterns to emerge.

We want to do things to keep the TCO low, so I’m automatically inserting the event leader as a wiki user when we create the event. Creating the user and putting them in the appropriate group was easy, but the password is stored as a hash, and so far haven’t had time to dig through the code to find which hash they are using and call the same from CLR in SQL. That means, sadly, that while I’m setting up the user, they’ll have to request a password reset to gain access (which the wiki will do automatically).

Lots of wiki options, and I don’t know that this one is substantially better/worse than the rest, but seems to work well enough. You can download and have it running in about 30 minutes, so it’s a nice lunch project if you want to give it a try.