Wiki Lecture
Slide 1: Wiki Lecture
Wiki Lecture
CIS:People/BobKrzaczek
2005 February 10
Slide 2: Background: The Generic "wiki"
- "wiki wiki" is Hawaiian for "very fast"
- A wiki web site was, originally, an approach to quickly building up a web site, quickly editing it, quickly getting to information in it...
- Generally, Wiki:WardCunningham is credited with being the first person to develop the idea of a publically accessible and useful wiki, circa 1995.
- Quickly became notable for collaboration above all else.
|
- Examples of things hosted using wiki technology:
- Research Projects (both group and single user)
- Encyclopedias
- Engineering Projects (civil engineering, software engineering)
- Customer Support Departments
- Personal Web Sites
- Today, there are an uncountable number of web sites employing wiki technology in existence.
- Over 100 different wiki engines
- Based on Apache, Araneida, IIS, Tomcat, ...
- Written in ASP, C, CL, Java, Perl, PHP, Python, Ruby, Smalltalk, ...
- Intranets, commercial sites, educational sites, personal home webs, ...
|
Slide 3: Focus: TWiki
- Feature sets vary wildly between wikis (e.g., attachments, hierarchies, markup languages, database support)
- We'll focus on TWiki for this lecture.
- Not favoring one wiki over another.
- Since TWiki is used in CIS and many other sites, focusing on it gives you tools you can most directly and quickly put to use.
- Alternatively known as TWiki, TWikiClone, the "Take Five Wiki"
- Requirements
- Runs almost anywhere you can run Perl.
- Easiest to roll out under Apache.
- Examples of known installations:
- FreeBSD, Linux, NetBSD, OpenBSD
- Solaris, Tru64
- Windows NT and XP
- Mac OS X
Slide 4: The Basics of TWiki
Terms and Jargon
- What we consider a "web page" is known as a topic in TWiki.
- One may view a topic, or edit its content. As a page is edited by users, a revision history of the topic is maintained. Typically, you can view this history to see "when who changed what".
- A collection of topics, often referring to one another or perhaps in a hierarchy, is called a web.
- A TWiki site has multiple webs.
|
Functionality and Features (What Makes It Different)
- Automatic linking between topics.
- Easy markup language, no need for HTML.
- Dynamic topic presentation: each topic's content is generated on demand, every time. Changes are instantaneous in the site. Searches are always up to date.
- Decentralized! No webmaster, no waiting. See something that should be changed, fixed, or updated? Just do it!
- Easy Plug-In system: lots of available add-ons and extra functionality (charts, calendars, schedulers, drawing tools, spreadsheets)
|
Slide 5: What Can You Do With It? Collaborate!
- Propose Designs, Gather Commentary, Evolve, Improve!
- Show others what you want to do: ObservationQueue?
- Let others work with you: PipelinePedigree?
- Or let them just comment on what you did: WaspAcquisitionDesign
- Change is good: encourage your editors!
- Be fearless! Each topic has a revision history.
|
- Discussions and Logs
- Capture meeting minutes: WaspLeicaMinutes
- Keep a status page for yourself or your team: PhaseSevenStatus?
- Manage remaining todo lists: PhaseSevenCloseOut?
- Collect and Organize Data
- Project Requirements: DcsRequirements?
- Test Cases: ValidationVerification?
- FAQs: Palm:WebHome
- And a "big" project: TWiki
|
Distance, location, timezones... it's not a problem.
Slide 6: How Does a Successful Wiki Grow?
- Capture
- Wiki syntax is simple, lets you focus on capturing the data
- All in one topic, lots of little topics, whatever works for you
- Organize
- After a while, patterns emerge, structures appear
- Easy move information around
- Easy to see changes (e.g., WebChanges)
|
- Refactor
- Related topics often share the same information
- Be Merciless! Crush redundant information!
- Archive
- Don't delete, just move old information to other topics
- Or just slide to the bottom of a topic
|
Lather, rinse, repeat...
Slide 7: Highlights: Context of Content - Database Table
Flat, no hierarchy:

Context: Mainly next/previous; search
Slide 8: Highlights: Context of Content - File System
Tree hierarchy:

Context: Down/up; search
Slide 9: Highlights: Context of Content - HTML Pages & Wikis
Hyperlink structure:

Context: "What is related" browsing; search
Slide 10: Highlights: Context of Content - TWiki Structure
Tree + hyperlink structure:

Context: Down/up browsing; "what is related" browsing; search
Slide 11: Highlights: Context of Content - TWiki Breadcrumb
Where am I?

Breadcrumb example: Home > Plugins > PluginPackage > PluginDevelopment
Slide 12: Questions?
- Other questions, comments...?
- We'll continue with "how to" from this point
Slide 13: TWiki as a Web Site
- Main traits
- Simple, most obvious use
- Fast: publishing is as fast as email. Fill in the form and submit; done!
- Easy: writing topic content is as easy as writing email.
- Can be thought of as a read-write web.
- Easy to add content
- Edit the page where you want to "spin off" into your new page just by mentioning it.
- TWiki's content is dynamic; new page link appears immediately.
- Click the new page link, and start entering content right now!
- Multiple authors and contributors? Not a problem.
- By default, once you edit a page, you "lock" it for an hour.
- TWiki expects you'll have more subsequent edits to make.
- Other people "hold off" editing that page until your lock expires.
- You, the author, can turn off the lock if you want. "The user knows best."
Slide 14: TWiki as a Web Site (cont'd)
Miscellany
With this background on headers and templates under our belts, we're in a position
to survey the primary components of the standard C++ library:
- String objects were designed to eliminate the need to use
char* pointers in most applications. They support the operations you'd expect ... Some string implementations employ reference counting, which can lead to better performance (in both time and space) than char* based strings.
- Stop writing your own container classes! The library offers efficient implementations of vectors, lists, deques, maps, sets, and bitsets...
---+++ Miscellany
With this background on headers and templates under our belts, we're in a position
to survey the primary components of the standard C++ library:
* String objects were designed to *eliminate* the need to use =char*= pointers...
They support the operations you'd expect ... Some =string= implementations...
_better_ performance (in both time and space) than =char*= based strings.
* Stop writing your own container classes! The library offers efficient
implementations of vectors, lists, deques, maps, sets, and bitsets...
Slide 15: TWiki as a Web Site (cont'd)
TWiki offers the usual set of display and formatting machinery:
- Font rendering (italics, bold, monospace)
- Structure, sections, tables of contents
Every TWiki editing page includes this text at the bottom; read it!
Formatting help:
- bold put word/phrase in asterisks:
*your phrase*
- bullet list 3 spaces, asterisk, 1 space:
* your text
- headings 3 dashes, 1 to 6 pluses, 1 space:
---++ Your Heading
- ...
- More formatting help and hints on good style
Slide 16: TWiki as a Document Authoring System
- Everything in one topic
- Simplest to manage
- Great for reports, articles, how-to's, assignments...
- Becomes unweildly for long documents
- Collaboration is "one at a time"
- Chapters or Sections in topics of their own
- Each significant chunk of a document can be viewed or edited separately
- Even better collaboration: now people can edit different sections in parallel
- A "main" or top level document can be constructed that =INCLUDE=s the other topics together.
Slide 17: TWiki as a Database
Great potential! Merges free form documentation with intelligent searches,
structures, sorting of topics, and so on. As much or as little detail can
be present in a given page.
Pages can be created with templates. A template is just another topic that is
copied into a new wiki page when you create it for the first time.
Great for bringing new users up to speed, entering their content in an established
style.
For example, a template can be
TestCaseExample?.
<form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/">
Create a new test case named:
<input type="text" name="topic" value="BlahBlahBlah" size="24" />
<input type="hidden" name="templatetopic" value="TestCaseExample" />
<input type="submit" value="Create" />
</form>
Slide 18: TWiki as a Database (cont'd)
There are two general ways of using TWiki as a database.
- Text Searches
- Each page has a "style" that is followed, either in topic name or page content.
- A search can then be made, looking for content following that style. Using our friend
INCLUDE, searches can generate reports as well as tables.
- Because the search is live at runtime, wiki always appears "fresh" and up to date.
- Example of a content style: BuildingGCC SoftwareInstalls
- Example of a topic name style: ArcReq29? DcsRequirements?
- Forms
- Each page has a form associated with it.
- Form can be updated whenever the page is created or edited.
- Form contents immediately affect searches on the rest of the rest of the TWiki.
- Example: TestCaseForm? TestArchivalOfAllRelevantData? ValidationVerification?
Other Cruft
- Set BEGINTWOCOLUMNS =
- Set NEXTCOLUMN =
|
- Set ENDCOLUMNS =
|