Thoughts on TWiki
I really like the TWiki concept, but I think it falls short in practical implementation for some things.
Here's a list of things I think should be fixed. I'll amend them with discussion topics as time goes by.
- Everything is a topic. Like the proverbial hammer makes everything look like a nail, TWiki uses topics for everything, even when it's not really appropriate. For example, by putting the configuration in TWiki pages, it can be well documented, but it can also be easily destroyed. Add or remove a space and the configuration is gone. TWiki should provide specialized tools for cases where editing a topic is too error-prone or time-consuming. TWikiForms is a step in the right direction.
- Infrastructure topics (see below)
- Discussions (see below)
- Access control
- TWiki discussions are hard to follow. People go and edit each other's comments to reply, reply anywhere on the page, etc etc. The Wiki "everything is a page" concept just isn't well suited for discussions. I believe the CommentPlugin should get a lot smarter, with threaded views, marking which items have been read by you, etc. Just think of all those bulletin boards that exist.
- Some people just don't understand topics and webs. They don't intuitively grasp that a web is a collection of topics, and that topics can contain as many attachments as they like. That should be made more obvious somehow.
- Topics are hidden unless explicitly listed. If someone makes a topic about something but doesn't prominently list it in the WebHome, there's a good chance that no-one will know about it, except for people that know how to search properly. WebHomes should have a list of all non-infrastructure topics that are not otherwise listed in the WebHome.
- Infrastructure topics diverge. Because each web has their own WebHome, WebSearch, WebPreferences, WebNotify etcetera, upgrades to those topics have to be done to all webs. I define upgrade to be something that is not configuring the topic to be more fit for the current Web. Even if you have only 2 webs, you will still have this issue. Programmers know that cut'n'paste programming will lead to errors, the same holds true for cut'n'paste infrastructure topics.
- Access permissions are very brittle.
- If you accidentally remove a space in front of an access control setting, it's no longer functional, even though it looks like it might be.
- I'm pretty sure at least some of the code still leaks information. The access control should be handled by the storage backend, flatly refusing to load data that is not visible to the current user. Apart from that there's probably code in plugins that checks the backend storage directly.
- Page loads are slow. Even with mod_perl or PersistentPerl enabled, each page render means looking at a lot of files and doing a lot of processing. In my opinion, a lot more pre-rendering can be done. Plain text is easy enough, macros and plugin calls could be marked as static by the code that implements them, meaning they will give the same output no matter what changes.
- Some people just don't want to learn TWiki syntax. The wysiwyg editor is a step in the right direction but it's still not all there (aside from it being slow).
- It should be made easy to add macros in the topic text, using dropdowns or something.
- International characters aren't always easy to add either, a list of html tokens for those would help a lot.
- You should be able to attach files from within the editor. Etcetera. Think spreadsheets. Many people that have little programming skills nevertheless make complicated excel spreadsheets with formulas and cell linking because the wizards help them coming up with the right formulas.
Guess who Wout is
Check out my blog at http://w00tbl0g.blogspot.com
My TWiki Links
My Personal Preferences
- Show tool-tip topic info on mouse-over of WikiWord links, on or off:
- Set LINKTOOLTIPINFO = off
- Preference for the editor, default is the WYSIWYG editor. The options are raw, wysiwyg:
- More preferences TWiki has system wide preferences settings defined in TWikiPreferences. You can customize preferences settings to your needs: To overload a system setting, (1) do a "raw view" on TWikiPreferences, (2) copy a
Set VARIABLE = value bullet, (3) do a "raw edit" of your user profile page, (4) add the bullet to the bullet list above, and (5) customize the value as needed. Make sure the settings render as real bullets (in "raw edit", a bullet requires 3 or 6 spaces before the asterisk).