Abstract
As it is growing GSI's TWiki installation is evolving from a free-text documentation system to a rapid development toolbox for web-based
groupware applications.
I'd like to present the TWiki features and extensions that enable this functionality and also give a report on the current installation status in general.
Start presentation
Slide 1: Welcome
TWiki as a toolbox for bottom-up web applications
Slide 2: Situation pre Wiki
- No central documentation system in the IT department
- Most of the knowledge esp. about workflows only implicit
- You have to go and ask
- People must be available
Slide 3: Wiki paradigm in brief
- Collection of HTML pages (topics)
- In place editing with simple markup (WikiML)
- Easy cross-referencing using WikiWords (CamelCase)
- Revision control
Prominent Wiki implementations:
See my
talk at last Hepix in Karlsruhe
Slide 4: TWiki praise
TWiki: A Wiki focussed on cooperate intranets
- Integrated access control on a per web and per topic basis
- Attachment support
- Tracing of most recent changes
- Syndication with RSS newsfeeds
- Email notifications
- Hundreds of plugins and add-ons
- Implementation in Perl based on the UNIX toolbox:
- Filesystem based
- RCS for revision control
- Search using
grep
- Powerful markup including macros
Slide 5: Current status
- Central installation of TWiki since 2 years
- Substantial growth during the last six month
- Nevertheless satisfactory performance and usability (since upgrade to recent TWiki release and hardware)
- Central documentation and coordination tool of the IT department
- Separate wikis for CBM and Hades collaborations:
- Virtual Wikis : run on the same server, common codebase
- Distinct topics, attachments and users
Slide 6: Statistics
GSI wiki key figures for September 2005:
- Total users: 270
- New registrations: 50
- Topics: 2600
- Topic views: 90000
- Topic edits: 4000
- Attachment uploads: 800
Slide 7: TWiki pros and cons
Cons
- Recent TWiki vulnerabilities
- Debian package already secured by hardening patch
- lock, modify, unlock (RCS) instead of copy, edit, merge
- Content loss due to early lock release (only once?)
- Editor a bit too simple:
- No offline editing
Pros
- Shallow learning curve
- Tables are easily operated thanks to EditTablePlugin and TablePlugin
- Inspirational like a good toy (a geek tool?)
- (T?)Wiki is an excellent toolbox for modelling workflows
Slide 8: Vacation Calendar
- 20 Oct 2005 - 24 Oct 2005 - Helmut
- 10 Oct 2005 - 14 Oct 2005 - Walter - Hepix SLAC
- 10 Oct 2005 - 14 Oct 2005 - Christo - Hepix SLAC
- 07 Oct 2005 - Hans - ill -
- 17 Oct 2005 - Christo
- 10 Oct 2005 - Sergei
- 21 Oct 2005 - Sergei
Slide 9: Meeting minutes à la TWiki
Search
- Topic name or full-text search, optionally with regular expressions
- Display of search results may be completely customized
- may contain partial content from of the search results using pattern matching
- Retrieve a list of existing meeting minutes formatted as a table:
%SEARCH{"MeetingMinutes[0-9]{6}" scope="topic" regex="on" limit="12"
nosearch="on" reverse="on" nototal="on"
header="| *Date* | *Minute taker* | *Latest change* | *Revision* |"
format="| [[$topic][$pattern(.*? (\d+[ .]+\S+[ .]+\d+).*)]] | $createwikiusername | $date by $wikiusername | $rev |"
}%
Slide 10: Meeting minutes à la TWiki
- New minutes are created via a simple webform:
<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
<input type="text" name="topic" value="MeetingMinutes%SERVERTIME{$ye$mo$day}%" size="23" />
<input type="hidden" name="templatetopic" value="MeetingMinutesEditTemplate" />
<input type="hidden" name="formtemplate" value="MeetingMinutesForm" />
<input type="submit" value="create" />
</form>
- The created topic uses the given template
- The meeting participants are listed using the associated DataForms:
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| Participant | checkbox+buttons | 7 | FirstParticipant, SecondParticipant, ... | |
Slide 11: Meeting minutes à la TWiki
Finalization
- Probably meeting minutes must not be changed after all participants agreed on their content (i.e. ISO 9000)
- TWiki:Plugins/ApprovalPlugin models this workflow
Slide 12: List of server topics
Slide 13: List of server topics
- %COMMENT{type="logbook"}%
%TMPL:DEF{PROMPT:logbook}%
<textarea %DISABLED% name="comment">%MESSAGE%</textarea>
<input %DISABLED% type="submit" value="Add entry"/>
%TMPL:END%
%TMPL:DEF{OUTPUT:logbook}%%POS:AFTER%
| %DATE% | %URLPARAM{"comment" newline="<br />"}% | %WIKIUSERNAME% |
%TMPL:END%
No such template def 'PROMPT:logbook'
Slide 14: A light-weight Trouble Ticket System
ActionTrackerPlugin:
- %ACTION{closed="10-Oct-2005" due="10-Oct-2005" creator="Main.ChristopherHuhn" state="closed" who="Main.ChristopherHuhn"}% Hepix talk at SLAC
Assigned to | Due date | Description | State | Notify | |
---|
Christo | 2005-10-10 | Hepix talk at SLAC | closed | HpcGroup | edit |
- %ACTIONSEARCH{...}% for todo lists
-
actionnotify
cron job
Slide 15: A light-weight Trouble Ticket System
No such template def 'PROMPT:incident'
Assigned to | Due date | Description | State | Notify | |
---|
WalterSchoen | 2005-10-17 | Alles kaputt - Created by Christo, 07 Oct 2005 21:28:56 | closed | | edit |
Slide 16: Carpool token management
Next driver (token count -8): Stefan
Modus operandi:
- Drivers earn one point for each fellow passenger
- Passengers must give away one point per ride
- SpreadSheetPlugin for calculations:
%CALC{"$IF( $SUM(R2:C2..R6:C2) = 0, Error! Sum must be 0! , )"}%
- ChartPlugin for the diagram:
%CHART{type="bar" table="carpooltokens" data="R2:C2..R6:C2" xaxis="R2:C1..R6:C1" yaxis="on" datalabel="box"}%
Slide 17: Next projects
- Portal for system announcements
- Replace all
wall
shell script mess
- Form-based input
- Distribution with RSS
- Category-based cleanup
- Email notifications enhancements
- Immediate notifications
- Subscribers list form
- Plugin to automatically subscripe editors
Future: A portal for system announcements