Web 2.0 and Virtual Movements
NOTE: The opinions and commentary expressed in this essay are those of the author and are an exercise of free speech. They do not necessarily represent the views of Free State Project Inc., its Directors, its Officers, or its Participants.
1. Evolution from Web 1.0 to Web 2.0
The buzzword Web 2.0 refers to certain modern (as of the year 2004, when O'Reilly Media first coined the term) web technologies and applications that significantly change the way people use the web. The term is fuzzy but useful, as it describes a phenomenon that has broken out of the technology journals to make daily headlines in the business press. Where Web 1.0 (and Bubble 1.0) was all about unidirectional 1-to-N e-commerce, Web 2.0 is about bidirectional N-to-N sharing. Look at almost any commonly cited Web 2.0 site (e.g. Tim O'Reilly's examples of eBay, craigslist, Wikipedia, del.icio.us, Skype, dodgeball, Adsense, and Flickr), and in each case the user is an active contributor, not a passive consumer. Indeed, ordinary users are the only contributors—there is no central provision of content! To O'Reilly's list we could now add Youtube (a content-sharing site like Flickr, but for video), social networking sites (LinkedIn, MySpace, Classmates, Facebook, Friendster, Xing, Meetup, and Tagged), dating sites, project-worker-matching sites (Elance), journals and blogs (LiveJournal, Blogger), and, most recently, contribution sites (PledgeBank and Chipin). In all cases, the site provides only infrastructure—users publish the content.
Whereas the value (connections) of a traditional 1-to-N network rises linearly with N, the value of a network where everyone can publish to everyone else rises with N squared (the network effect). Web 2.0 changes not only the mathematics, but the roles of publisher and consumer. In Web 1.0 we celebrated the ability of "anyone" to publish, but the reality was that few people could. The Web 2.0 publishing process has been made so easy that truly anyone can be heard, if they can make their voice audible over the din. In Web 1.0 it was the publisher who benefited directly from an increased network, but today it is the consumer.
Effect of adding a member to a hierarchical network
Effect of adding a member to an peer-to-peer network
2. Features of Web 2.0 SitesWeb 2.0 sites share a few defining characteristics:
- Users create the content (in fact, they may be the content)
- Users create a personal profile that provides their identity to the community
- Intrinsic benefit: At eBay or a dating site, users post their wares (e.g. themselves)
- Payment: Users may be paid for their content-publishing efforts, but it is a small minority of bloggers who collect money. Payment is rarely the first reason.
- Social contact: Users enjoy the contact and camaraderie of participating in a community.
- Reputation: Volunteers contribute content for the same reasons they contribute to charitable efforts in general—maybe altruistically without any expectation of immediate payoff, but in the hopes that their generous contributions will be noted and remembered by the community.
Key to the success of a Web 2.0 site is the personal profile. The profile is a sort of mini home page that represents the user in the community, displaying various times of information, e.g. demographics, interests, skills, and affiliations. Profiles allow users to associate into groups on the basis of interests or demographics of interest. If the profile clearly displays users’ contributions (e.g. donations or content like photographs, reviews, and forum posts), they will be more motivated to contribute.
3. Virtual Movement Shared Hosting
A virtual movement (VM) is a special type of virtual community (VC) in which the common interest is the accomplishment of some social or political objective. There are two ways for a virtual movement to take advantage of Web 2.0 technology: work within an existing site or make its own site.
VCs predate the web (e.g. Lotus Notes), and their basic features are familiar to everyone. Yahoo Groups is currently the most common place to form a quick VC; its menu is a guide to the essential VC features:
In a typical scenario, someone will create a new group (e.g. "People for the Ethical Treatment of Porcupines"), search for users with related interests (e.g. "animal-lovers"), and invite them to join. People join, engage in lively discussions, post their favorite photos, and maybe even arrange occasional meetings if enough members are located near the same city.
There are two advantages in creating a sub-community within a wider existing host community. First, the new community immediately inherits the technical infrastructure of the host. Second, the new community has a ready pool of potential members from which to recruit. For an infant organization this is all very important, and the larger the greater community the better.
VCs with any special needs (e.g. non-supported languages) quickly become frustrated by the limitations of the infrastructure, which is generally outside their ability to influence. The problem for a VM is, after discovering people of interest, forming links, and chatting, what next? Unless the greater community is growing rapidly, there are eventually no more new members to be recruited. The groups do not seem to *do* anything besides occasionally "meet up". The social networking (SN) web sites rarely offer functionality to support project coordination. This author must confess that he has accounts in most SN sites only because various friends have invited him to form links. More goal-oriented sites are now appearing, e.g. PledgeBank, ChipIn, and Facebook's new Cause function. However, the former two are narrow in focus, and better off as widgets placed on others' sites, while the latter is limited to non-profit US organizations with 501(c)(3) status. Eventually a successful VM will reach a point when it needs to host its own web site. It will almost certainly maintain representational outposts at each of the major SN sites, but the bulk of activity will shift to the internal site.
4 Virtual Movement Self-Hosting
As with all other software decisions, there are three options for creating one’s own VC: make, buy, and share. Starting from zero to make a full-featured VC with the extensive above-described functionality is a daunting task that few organizations would undertake. The required personnel, budget, and time to achieve it would be simply unfeasible. Most organizations would at least acquire the primary VC pieces (e.g. the discussion forum) and build on or integrate them. Commercial VC platforms exist, but they are generally purchased by mature organizations with financial means. Most VCs on the web are built on open-source software (OSS) that has two key features: it is free of charge, and developers are free to change and add to the code.
The most common VC platforms have been OSS discussion forums (a.k.a. bulletin boards), e.g. YaBB (now SMF). Discussion forums provide the bare VC essentials: personal profiles and message posting. Users can stretch the posting mechanism to contribute other forms of content (e.g. photos and event announcements), though these usually become quickly buried.
In parallel with the evolution of web-based discussion forums, there appeared on the scene open-source web content management systems (CMS). As web sites grew in size and number of contributors, tools became necessary to management them. CMS products store content in a database and provide several typical features:
- Role-based access control
- Workflow (author, edit, approve)
- Revision control
- Authoring tools for non-web-developers
- Attribution of content to the author
- Categorization via complex taxonomies
- Navigation and search
- Automatic generation of content, e.g. common headers, footers, and sidebars
Such features make a CMS ideal for the creation of a virtual library of articles or even books. Content is both easy to create and easy to find.
Modern web CMS products have evolved to provide additional features far beyond the basics:
- Generalized notion of “content” (e.g. article, discussion forum post, images, calendar events)
- Ability to completely change the look and feel via "themes" or "skins"
- Large number of contributors (with wikis being the extreme case)
- Multiple languages
- Robust site security
- RSS news feeds, both in and out
- API for modular extensions
- Large number of third-party modules providing a rich and unpredictable array of functionality
- Large distributed developer community
- distill best practices from multiple developers
- enable developers to build sites with less effort using ready-made components
- enable developers to focus on interesting new functionality, not the basic plumbing
- assure customers of a known product with future support
- increase a developer's motivation to share contributions
- increase the chance that a developer can re-use his knowledge on future projects with other teams
The above OSS features support failing intelligently. Failure can lead to success if you
- Fail quickly (don’t waste time, and don’t delay admitting failure)
- Learn from the experience
- Salvage some of your work
- Don’t give up
Even if a web project fails, the experience, tools, and custom code developed can be reused if this is planned for in advance. Failure is tragic when a large amount time, energy, and money are expended and the result is thrown away and forgotten.
From the market’s many OSS CMS products emerge clear winners. Robust, full-featured, extensible, and elegant, these platforms represent the best of the best. As of this writing, one hears most often about three CMS products: Joomla, Plone, and Drupal. Joomla is known to be the easiest and prettiest out of the box, but it is harder to modify. Joomla is thus favored by novice web administrators, and is the most popular. Where Joomla is based on PHP, Plone runs on Zope and Python; it is highly respected, but even experienced programmers need some time to learn to develop on it. A good compromise between out-of-the box functionality and flexibility is Drupal. Like Joomla, it is based on PHP.
5.1 Drupal API
The well-built Drupal API contains a library of hundreds of functions. Unlike Joomla, Drupal allows modules to interact. For example, one can create an e-commerce item out of any content item ("node"), assign any node a date to create a calendar event, and assign any node a location to that can be found by geographic functions.Drupal Components
- Module system (Drupal hooks)
- Database abstraction layer
- Menu system
- Form generation
- File upload system
- Search system
- Node access system
- Theme system
5.2 Drupal Modules
Drupal has literally hundreds of modules. It would be impossible to list them all here, let alone describe them, but below are the number of modules in each category:
Drupal’s architects had no illusions that a CMS could possibly be fully ready out of the box, and be all things to all people. Drupal was thus designed to be easily extensible. In that it is often described not as a CMS, but a content management framework. Developers with unique needs are encouraged to package their extensions as a module, and contribute it to the Drupal community if it will be of interest to others.Some modules of note:
- CCK and Views: these enable developers to create new content types and display them in lists.
- Taxonomy: allows content to be categorized by multiple hierarchies of terms ("taxonomies"), which can then be used in URLs to display related content.
- Organic Groups: enables the easy creation of groups of users with their own private content.
- Internationalization (i18n): Drupal offers modules for creating multi-language web sites, and this represents an area of active current development.
- RSS feeds: these can be generated from almost any mix of content, with not just one feed, but dozens for special interests.