PRODUCT SUPPORT ANNOUNCEMENT
Some videos and Web Editions may be returning errors on launch. Learn more.
WikiWikiWeb (aka Wiki) is an open source collaborative server technology that enables users to access, browse, and edit hypertext pages in a real-time context. Such servers are a critical tool for efficiently, and effectively, coordinating collaborative documents, databases, and projects. Unlike many alternatives, Wiki supports flexible, user-defined attributes and structure. It is easy to use, concordant with current technologies and standards, and requires little investment in hardware, software, or training.
The Wiki Way: Quick Collaboration on the Web compiles in one handy volume all of the information you need to set up, customize, and run a Wiki server. It offers an in-depth presentation of Wiki theory, practical implementation information, and many examples that demonstrate how to apply and adapt Wiki to the demands of various situations.
The book opens with a tutorial on setting up, running, and using a Wiki server, along with important background information on content structuring. It then presents a more detailed description of the core technology, Wiki server customization, and administration. The final section includes numerous case studies that showcase the Wiki technology in action.
Specific topics covered include:
Highlighted tips throughout the text will help you avoid trouble spots and enhance the quality of your Wiki server. Several fascinating case studies focus on the use of Wiki servers at Georgia Tech, The New York Times, Digital, Motorola, and the TRW Propulsion Center, among others.
The companion CD-ROM contains the public license Wiki sources discussed in the book, along with the means to run them--either stand-alone, or using the industry-strength Apache Web server. Complete Perl and Apache server packages for both Linux and Windows are also included.
Click below for Author's Site related to this title:
Author Web Site
Click below for Sample Chapter related to this title:
Why This Book?
Why You Want to Read This.
Contributors and Colleagues.
Errata and Omissions.
Read the Book, Use the Wiki!
I. FROM CONCEPTS TO USING WIKI.1. Introduction to Discussion and Collaboration Servers.
In this Chapter.
Collaboration and Discussion Tools.
Who Uses Collaborative Discussion Servers?
Features of a Web-Based Collaboration.
On the Horizon: WebDAV.
Comparing Wiki to Other Collaboration Tools.2. What's a “Wiki”?
The Wiki Concept.
The Essence of Wiki.
The User Experience.
Wiki Implementations by Language.
Other Wiki Offerings.
Pros and Cons of a Wiki-Style Server.
Why Consider Setting Up a Wiki?
Other Issues.3. Installing Wiki.
Wiki and Webserver.
Wiki on IIS or PWS.
The Apache Webserver.
Testing Webserver Wiki.
General Security Issues.
Security and Database Integrity.
Addressing wiki Vulnerabilities.
Configuring Your Browser Client.
Fonts, Size and Layout.4. Using Wiki.
In this Chapter.
A Virtual Notebook.
Making Wiki Notes, A Walkthrough.
Wiki as PIM.
A Working Example.
The Content Model.
Internal and External Hyperlink Models.
The Browser Editing Model.
Building Wiki Content.
Editing and Markup Conventions.5. Structuring Wiki Content.
In this Chapter.
Only a Click Away.
How Hard to Try.
When to Impose Structure.
When Not to Impose Structure.
What is the Purpose of the Wiki?
When to Spin Off New Wiki Servers.
II. UNDERSTANDING THE HACKS.6. Customizing Your Wiki.
In this Chapter.
Hacking Your Wiki Source.
Copyright and Open Source License Policy.
What to Customize.7. Wiki Components Examined.
In this Chapter.
QuickiWiki Component Model.
Core QuickiWiki Modules.
Optional Extended Components.
Analyzing Page Content.
Managing User Access.8. Alternatives and Extensions.
Parsing the Requests.
ClusterWiki Component Model.
The Library Module.
A Standard Wiki?9. Wiki Administration and Tools.
In this Chapter.
Tracking Page Edits.
Adding Authentication and Authorization.
Administering the Database.
Server Resources and Wiki Loading.
Avoiding User Waits.
Implementing Wiki Constraints.
Debugging a Wiki.
III. IMAGINE THE POSSIBILITIES.10. Insights and Other Voices.
In this Chapter.
Wiki as Open Community.
Writing Style Contention.
Why Wiki Works.
The Open-Edit Issue.
When Wiki Doesn't Work.
Public Wiki Issues.
Wiki Style Guidelines.
Notifying About Update.
Design and Portability.
The Future of Wiki.11. Wiki Goes Edu.
In this Chapter.
CoWeb at Georgia Tech.
Introduction to CoWeb.
Supported CoWeb User Roles.
CoWeb Open Authoring Projects.
Overall Conclusions.12. Wiki at Work.
In this Chapter.
New York Times Digital.
TWiki at TakeFive.
TWiki at Motorola.
Kehei Wiki Case Studies.
A Rotary Wiki.
Wiki Workplace Essentials.
Why a Workplace Wiki?
Planning the Wiki.
Day-to-Day Operations.Appendix A: Syntax Comparisons.
HTML Tag Inclusion.
Other Syntax Extensions Seen.Appendix B: Wiki Resources.
Internet Resources.Appendix C: List of Tips.
The idea for this book came from a couple of different directions. One was that I (Bo) had been getting more and more involved in collaborative efforts over the Internet. Another was that running and customizing a cluster of wiki servers for some time had given considerable material to use in a book. I closely followed developments in a number of areas concerning discussion and collaboration tools and saw that once wiki servers were adopted, enthusiasm for using them was invariably great.
A wiki server is in many ways an ideal tool for collaborative idea exchange and writing--informal, quick, and accessible. It even turns out to be a very useful Internet-aware personal notebook. Best of all, with a suitable source, setting up your own wiki server is remarkably easy, whether for personal use or wider network collaboration.
What seemed to be lacking for a broader acceptance was simply a more collected introduction to and analysis of both the tool and the culture that has grown up around it. The best thing to do, so it seemed, was to provide such a reference based on the material I had. The thought was to include a serving of sources and tools to get interested readers up and running with their own wiki servers. Therefore, I thought the matter over, put together a book proposal, and approached Ward Cunningham about licensing issues for his sources. Best to go to the source for the sources, I reasoned. I then learned that both he and publisher Addison-Wesley were keen to see a good book on the subject. Editor Mike Hendrickson at Addison-Wesley proved very supportive and approved the idea of a combined analysis and do-it-yourself tutorial. And given the nature of the subject, a deeper collaboration between Ward and me was the natural way to go about it.
The result is here, and we hope that you find this volume a worthy and valuable reference as you explore the wiki way.
We hope you will read The Wiki Way with a mind open to exploring simple yet powerful tools that you can have complete control over. We would like you to think of wiki as "leverage-ware": a tool to amplify your associativity, connectivity, and community--not to forget creativity. Play with the concept and the bundled sources, and see where it takes you.
This book targets primarily three distinct groups of readers, reflecting the predominant and potential uses of discussion and collaboration tools.
Wiki servers are already widely used to fill many roles, from simple discussion forums rather similar to the old BBS hubs, to collaborative tools and searchable information archives. A number are thinly disguised as a new breed of Internet presence providers, offering "instant" edit-and-serve Web hosting solutions.
Hundreds of versions exist hidden from public view on corporate or academic intranets. They have been set up for such demanding tasks as tracking product development, customer or developer support, and paper submissions. As noted on at least one major site, the quantity of e-mail typical for a project can otherwise be overwhelming. The wiki concept combines the immediacy of direct editing and "most recent postings" with adaptable structure and timeless persistency, where even old entries can be commented, amended, and brought up to date.
Typically, existing implementations were cobbled together by whoever found enough resources and hints on the Internet to set one up. The choice of wiki type has until now usually been determined by what is found first and happens to work. Tweaking tends to be haphazard.
What is lacking in the field is a more formal resource that can give the presumptive administrator a collected and clearer idea of the options and theory, along with examples of how to adapt the wiki to the particular demands of the situation at hand. Well, we've tried to make this book that resource.
The Wiki Way is a combined exposition, tutorial, and manifesto. This single reference volume aims to provide you with historical background, the state of the art, and some of the vision. We seek to meld practical how-to tips with in-depth analysis, all in an easy-to-read informal and personal style--even entertaining, as our technical reviewers assured us. We bring you conceptual overviews, philosophical reflection, and contextual essays from professionals in the field.
A tall order for a single book? Assuredly, but it was fun trying. We have chosen to organize the book into three parts, each catering to different needs and interests. There is some overlap, but we think you'll find that each part approaches the wiki concept from complementary directions, with a tone and depth appropriate to each. No matter what level of detail and involvement is desired, we wanted you the reader to always find something worthwhile to focus on.
First comes Part I, From Concepts to Using Wiki, which guides you through the basic concepts concerning Web collaboration in general and wiki collaborative culture in particular, and then we show you how to quickly get your own wiki up and running. Later, practical chapters focus on the mechanics of using a wiki server and an overview of content structuring.
Part II, Understanding the Hacks, gets to the technological core with extensive examinations into how a wiki server works. After a discussion about the structural aspects of a wiki database, we provide a systematic analysis of basic wiki functionality and show simple ways to customize your wiki. Although it may seem unusual to give the tweaks before the full code analysis, we find that this is a workable approach.
Then follows a complete program analysis of the components in the base example script. This sets the scene for the following chapter, where we suggest a number of cool hacks, easily inserted in the example Perl script, to modify and extend wiki behavior beyond the basics for specified contexts. We end part 2 with a technical overview chapter aimed at the wiki administrator, which takes up issues and tools that deal with usage, security, server loads, backup, and revision control.
Part III, Imagine the Possibilities, takes us into broader realms of usage, utility, pitfalls, and vision. We present anecdotal accounts and personal views from many sources to make this book much more than Yet Another Programming Book or Yet Another Application Manual. Material here comes both directly and indirectly from a host of professionals who develop or use wiki or wiki-like systems in their work. First, a chapter summarizes a chorus of views from wiki communities. Next, we share in some of the experiences gained from using wiki widely in academic settings. Finally, we provide some interesting case studies culled from the corporate world.
A collection of appendixes supplements the main body of the book by providing extra levels of detail, along with collected references and resources that would otherwise have cluttered up the main text.
To help you navigate what is undeniably a book filled with many facts and to complement the detailed table of contents, chapter summaries provide a quick overview of the main topics covered, and we trust that the publisher has crafted a decent index.
Scattered throughout the text you will find the occasional highlighted and numbered "tip", a special insight or recommendation that might otherwise pass unremarked on casual reading.
There are assuredly mistakes and errors of omission in this book; it's unavoidable, despite (or sometimes because of) the many edit passes, proofing, and the excellent efforts of editors and technical reviewers.
Let this not cast any shadow on any of the many people who worked with and contributed to this book. Getting a book out is a complex process with numerous deadlines, and a finished book (any book) is neither "finished" nor perfect, just (hopefully) the best that could be done within the constraints at hand.
We have, however, taken great care to get things right. For example, all code examples are taken from functional wikis. Functional for us, that is. We could not test every conceivable version and configuration a reader might run into, but we are confident that the sources will work on most, and we believe we have included enough information to allow the reader to work out any problems. Any code changes made along the way, no matter how "trivial", were verified on a working script.
There are many ways to code solutions; ours are not the only or necessarily the "best" ones, and we willingly concede that these are "hacks". But on the other hand, we wanted the code to be understandable and easily modified by the reader, so the "best" or most "optimized" variant would probably have been wrong for that purpose in any case.
In some cases we may have simplified things or made statements that someone, somewhere, will be able to point to and say, "Not so!" That may be; we could not verify everything, and sometimes the simple answer, correct in its place, was good enough for the focus at hand. The hardest mistakes to catch in this context are the things we "know", because some of these unquestioned truths can in fact be wrong, have changed since we learned them, or have more complex answers than the one we learned.
Omissions are generally due to the fact that we had to draw the line somewhere in terms of scope and detail. Our technical reviewers, drawn from various professional fields, had helpful suggestions there that led to some useful extensions of the original coverage. Although we do discuss wiki clones and other collaborative tools and have extended this scope somewhat, the book's primary focus remains on Perl-based wiki and specifically on the "back to basics" approach that will let the reader customize from a common codebase. In-depth coverage of other wiki variations did not therefore seem to serve our main purpose, but we emphasize that cursory mention or even omission is not meant to be a value statement on the merits of any given alternative version. It's just that we feel that to be the subject of another book.
The bottom line in any computer-related field is that attempts to make any definitive statement about such a rapidly moving target are doomed to failure. During the course of writing and likely in the interval between final submission and the book's being in your hand--not to mention between your first reading and your second--not only do our own sources continue to evolve as we discover and innovate new things, but even established packages like Perl, Apache, or Windows come in new and subtly different versions. The biggest headache is invariably to provide useful resource links--Web sites change or disappear, so forgive us if some resource mentioned can't be found by the time you read this.
Your feedback, positive and negative, both directly to us and to the publisher, is always appreciated. Comments and factual corrections will be used to help improve future editions of the book and help point out where the writing may not be as clear as intended. Until then, this additional information will be compiled and published on our support Web site (wiki) and will complement the discussions we hope will appear there.
Authors tend to get a lot of correspondence in connection with a published book. Please be patient if you write to us and do not get an immediate response--we have many professional commitments and will as a rule have the pressures of yet another book deadline to consider.
We will, however, make a genuine effort in some way to acknowledge the mail that we receive and, time permitting, will later make a more personal reply when this is called for.
Visit the collaborative open-source wiki set up at www.wiki.org, specifically as a support site for this book, where you can find updates and discussions about the book and using wiki.
The main attraction of such a collaborative support Web site site is (we hope) the contacts you can form there with other readers of the book and other users of wiki. Collectively, the readers of such a site always have more answers and wisdom than just a couple of authors.
Otherwise, the easiest way to reach the authors personally is by e-mail: firstname.lastname@example.org and email@example.com. But before writing with specific questions, first visit the Web site, where you can find much information about and further links to things wiki-ish and very likely the answer to most questions.
While the natural assumption is that readers have Internet connectivity and can both visit Web sites and send e-mail, this is not always true. You may therefore also contact either of us through the publisher by ordinary surface mail (unless this becomes obsolete):
The main publisher Web site is at www.awl.com. You may contact the publisher directly as well; for example, to see information about other books published. Send an e-mail to firstname.lastname@example.org, or use the Addison-Wesley surface mail address after the "c/o".
Thank you for buying The Wiki Way. We really hope you enjoy reading this book as much as we enjoyed researching and writing it.
The book provided a welcome professional excuse to take the time and effort to thoroughly plumb the depths of the existing codebase. It also prodded us to explore implementation variations that would otherwise have barely even remained an idea "for later study". Finally, it prodded us to more fully examine the concept of "wiki culture" and the "wiki way of doing things", which affects those who use this tool. This was an adventure in itself.Bo Leuf
- Abort Script routine, 253
- Abuse management, 275-276
- Abusive behavior, 273
- Access constraints, 276
- Access list, 235
- Access management, 276-283
- adding authentication and authorization, 281-283
- casual visitor functionality, 278-279
- core working user group, 278-279
- direct links to, 278
- lockable pages, 281-282
- multiscript security solution, 279-280
- permissions models, 277-280
- Access restrictions, 324
- Active hyperlinks, 87, 160
- Active Links page, 24
- ActivePerl, 39, 40
- ActiveState Web site, 39
- AddHandler directive, 59
- Additional-resource links, 20
- admin tool page, 298
- Administering database, 283-312
- Administrators, 356
- Alphanumeric character () notation, 196
- Analyzing content, 229-231
- AND logical operator, 163, 252
- Annotation and comment, 31
- Any characters (.) searches, 197
- Apache installer, 52
- Apache Web server, 25, 48
- accessing wiki, 54-55
- AddHandler directive, 59
- calling CGI script, 48
- changing paths, 57
- configuration file, 55-56
- custom installation, 51-52
- default Web space, 56
- DocumentRoot directive, 56-57
- Edit configuration shortcut, 52, 55
- fail-safe fallback, 54
- handling CGI scripts, 58-59
- Install service shortcut, 53
- installing, 51-55
- manually starting or stopping, 53
- as normal console application, 52
- Options ExecCGI directive, 58
- path aliases, 59
- paths, 56-57
- perl path, 48
- reconfiguring, 55-64
- running CGI scripts from anywhere, 57-58
- script locations, 48-49
- ScriptAlias directive, 59
- SetHandler directive, 59
- starting with default configuration, 54
- webzones, 59-64
- where to look for documents, 56-57
- wrapper script, 28
- Apache Web site, 51, 55
- apache.conf file, 52, 56
- Apache/htdocs subdirectory, 54
- Apache:The Definitive Guide, 55
- Append comment
- formatting codes, 182-188
- modular QuickiWiki version, 182-185
- remembering check box state, 185
- request-parsing solution, 185-188
- Append permissions, 185
- Applets, 15-15
- Application independence, 10
- Approving content, 336
- Archival wikis, 130
- Artifacts, 350
- ASCII-7 character set, 340
- AsHiddenLink subroutine, 161
- Associative links, 108
- Attachments, 205-206
- Authoring, 22
- adding, 281-283