So I jwanted to create a FAQ for my lab using Python and some net stranger pointed me to Wiki. Could this do what I want? Maybe.
I like the ad hoc nature of wiki, although others in the groups probably won't. They want to put passwords on the site. Why? Apparently to stop all those crazy hackers who want to put bogus FAQ entries on our precious web site. I can't understand the paranoia, but ...
So now I'll see if PikiPiki
can do the job. I want to stick with Python because I like Python and want to get better at it.
Scott, I'd like to hear your results. I tried to get PikiPiki
working, and gave up after a few hours. (I was in a hurry.) I got PyWiki
running in about 10 minutes just by following the directions. (Of course, I am running RedHatTheCompany
, which is what PyWiki
was tested on, if I recall correctly.) -- RichardBash
Richard, I needed 5 mins for PikiPiki. :) PyWiki does not run good on Windows (actually, not at all, because of the versioning module). I already extended PikiPiki at the workplace, and will probably spin a sourceforge project off it. -- JuergenHermann
If you decide to loosen your constraints about Python, I'd recommend TwikiClone as well. It's very easy to use and setup.
I use PikiPiki
for this sort of stuff at work. I've made a bunch of extensions to it; this was very painless to do. It works very nicely. I must admit that so far I'm the only person who uses it, so I can't talk about (e.g.) scalability issues... -- GarethMcCaughan
My idea on scalability, should it become a problem, is to make PikiPiki
a webserver instead of a cgi script. Easy to do in Python...
These are the other changes that I thought of until now:
- First things first, some kind of edit locking, with manual breaking & timeouts
- Configuration outside the script proper
- Make it a package, with a small cgi driver (see configuration)
- Versioning (via CVS), optional
- Some kind of access authorization, via pages with a special WikiName
- Hierarchical WikiWiki's (grouping of different projects)
- Support for I18N, especially German WikiName's (J�rgenHermann ;)
- Possibly make it a webserver (advantage: configuration is kept in memory)
I don't think making it a webserver would be a win. That would amount to replacing a carefully crafted webserver written in C or C++ or something (Apache, say), with something, inevitably much slower, written in Python. You'd gain by not having invocation overhead, but I think you'd lose more. But, hey, what do I know? :-)
The only one of your proposed changes I've implemented is versioning. I haven't done edit locking, so race conditions are still possible, but I have made it prevent scenarios of the form A clicks on "edit page", B clicks on "edit page", A saves changes, B saves change
(in a very crude way, but it seems to work OK).
Python isn't as slow as you think. Invoking a CGI process
is as slow as you think. Maybe even slower.
I'm trying to add ModPython
handlers to PikiPiki
. Will post results here.
Twisted is another example of a Python-based web server that's faster than you'd think... significantly faster, for example, than Apache + a CGI written in C.
The wiki WindowsWiki
runs cleanly and dependably on windows, fresh out of the box. -- KirkBailey