Brian Ingerson doesn’t look like most people’s image of a brilliant
programmer (at least, not mine), but he certainly is. This talk is about
Kwiki, a really neat implementation of
Wikis. I’ve installed it on a few machines, and it is quick and works well.
He set up a wiki for this conference, and pretty much every one here has
used it. It got slashdotted and vandalized, and the users just fixed the
pages (anyone can edit any page on the web site). He’s asking who knows
about some of the features it has, and most of us know about them.
Ingy asked how many attendees were Perl people and wanted to see some of
the internals. Almost all of us did, so he decided to show us a bit of it
later in the talk.
The slides themselves are generated by Kwiki: you just create a page with
some simple special text formatting, and it gets displayed like a PowerPoint
presentation. You can see the slides
here; just select
a screen resolution and hit F11 on your browser to go into full screen mode,
just like PowerPoint.
Demonstration. First, install CGI::Kwiki, using the standard Perl
functions (I used cpan force install CGI::Kwiki – I had to use “force”
because the tests are Unix specific, and fail under Windows, even though the
module is okay). Then, go to a directory where
you want to put the wiki and run “kwiki-install”. That program was
installed in the same directory as Perl, so it should already be in your
path. If the directory you chose was in your cgi-bin directory, you’re
done, otherwise you’ll need to define a ScriptAlias line in your Apache
configuration file to point to the directory, and restart Apache. Now when
you connect to your server with that URL, a wiki will be there.
Philosophy. The Kwiki philosophy includes: low barrier to entry (easy installation,
no prerequisites); keep it simple, fast, and clean; non-competitive
framework; extensible and pluggable; be brave; and walk away.
One site using Kwiki is
quiltzilla.com, where a lot of
quilters (many of them “little old ladies”) post their quilting designs and
pictures. Kwiki is certainly easy for anyone to use.
How it works. The Kwiki is essentially a single CGI program
(though an optional second one can be used if you want to separate
administrative control from user access). The program is full of slick
ideas. For example, the configuration file is config.yaml, written in YAML.
But Ingy figured someone might not want to use YAML. So the program looks
for any file named config.extension, then looks to see if there’s a module
named the same as the extension. If so, it calls that module to load the
configuration file in whatever syntax you want.
Kwikis have simple formatting rules when you edit a page. If you write
ManyWordsTogether, it automatically creates a link to that page (and if you
follow the link and the page doesn’t yet exist, it creates an empty one for
you to edit). Put text in [brackets] to force it to be treated as a link to
a wiki page. Tables are created just by separating columns with vertical