General Technologies, Protocols, and Practices for Fab Lab Websites
Each Fab Lab that wishes to participate in the Fab Lab Community Network will run its own website, and will post content in accordance with their own method of internal governance. The fab lab community network will aggregate content from participating Fab Labs using standard protocols (RSS), provide feedback back (PingBack / TrackBack), and provide searching capabilities for content produced by Fab Labs.
In addition to providing a formal channel for sharing information, the goal of this effort is to create a feeling of community that spans the diversity provided by the Fab Labs around the world.
Types of Content
- Project Writeups & Learned
- Technical HOWTOs
- Photos and writeups of events, outreach, gatherings, happenings, etc.
- More as needed...
Not all content produced by a particular Fab Lab needs to be shared with the global fab lab community network. For instance internal committee meetings and changes to the open-session hours are important to post on particular Fab Lab's website, but wouldn't be of interest to a worldwide audience. Lessons learned from particular projects would be of interest to a worldwide audience.
Existing resources, such as Thingiverse, are already providing repositories of project files. Source code repository systems, such as Mercurial, and services like SourceForge already provide ways for teams of programmers/engineers to work together on complex projects. Unless Fab Lab specific challenges emerge with respect to version control and source management, we should use these existing tools and focus our efforts on issues that are specific to the needs of Fab Labs.
Content Management Systems
While a web content management system (CMS) isn't strictly required to participate in the Fab Lab Community Network, they are very useful. Most CMSs are designed to solve the problem of coordinating dozens of contributors with varying levels of web-publishing knowledge, and also make it easy/automatic to generate RSS feeds and other standard protocols used for sharing content between websites.
Fab Labs have reported good experiences with the following CMSs:
Home grown CMSs (and static sites) should be feasible, as well, but a well-known CMS backed by an active community of developers and users will likely provide more capabilities with less effort in the long run.
RSS Feeds & Aggregation
RSS Feeds (Really Simple Syndication) are the backbone of content sharing throughout the Fab Lab Community Network. RSS feeds can be provided by many CMSs, with very little administrative or setup overhead, and can easily be customized to meet the individualized needs of a side quite easily.
Individual Fab Labs provide RSS feeds (using whatever CMSs or tools they prefer) that can be polled periodically by aggregators and by individual users who prefer to be notified about new web content.
Not all content that a Fab Lab may wish to put on their website is suitable for worldwide publication. For instance, fab labs on the other side of the world probably aren't interested in local committee meetings and changes to open hours. I recommend using your CMSs tagging feature to create an RSS feed of items that are suitable for global publication. For instance, with Drupal, the Taxonomy module will allow site users to tag content, and Drupal will automatically create an RSS feed consisting of all of the tagged items. I provide the URL of this RSS feed to the fab lab community network's aggregator.
RSS feeds can also be used to syndicate content to social networking sites such as Facebook. In particular, Facebook provides an application called RSS Graffiti which can monitor an RSS feed and post to the wall of a Facebook user or Facebook organization. This is a good way to make sure that everybody who is interested in a particular Fab Lab receives notices about meetings and other items of local interest.
Pingbacks / Trackbacks
Searching the Fab Lab Network
FIXME: This is one of the aspects of the worldwide fab lab network that hasn't been hashed out yet.
Luke: Once the aggregator is in production, Fab Lab websites that wish to participate will add an extra search-box that searches the aggregated content using a method that's roughly equivalent to a Google search with the term "site:http://sandbox.fabfolk.com/drupal/" prepended to the search.
FIXME: Would anyone else like to chime in?
Individual Fab Labs should consider how web content is posted on the website, and how that content is reviewed. The exact details are likely to vary a great deal depending on what makes sense for a particular group -- everybody being able to post anything may work in some situations, sending all posts through a particularly web-savvy individual might work for other situations, and a formal moderation process would make sense for other situations. The important thing is that an individual Fab Lab considers the issue and does something that makes sense for their individual needs.
Here are examples of how Fab Labs decided to handle moderating web content:
- Champaign-Urbana Community Fab Lab's content moderation workflow
- More to follow...
We've had good experiences integrating with social networking sites by the following methods:
- Syndication: RSS feeds can be used to syndicate content to social networking sites such as Facebook. In particular, Facebook provides an application called RSS Graffiti which can monitor an RSS feed and post to the wall of a Facebook user or page. This is a good way to make sure that Facebook users who are interested in a particular Fab Lab receive notices about meetings and other items of local interest in a way that is easy for them.
- "Like" Buttons: In order to allow users to easily share links to interesting content via social networking sites, "Like" buttons are useful. For a Drupal sites, there is a module called "AddToAny" that will provide "Like" buttons for a dozens of social networking sites. Other CMSs provide similar capabilities, and most social networking sites have webpages that descrive how to add "Like" buttons to any type of website.
- Authentication: With a strong moderation system, such as the one shown for the Champaign-Urbana Community Fab Lab, the only reason to require a user account to authenticate before creating content is to reduce the amount of spam that the moderators have to sort through. Trusting a service like Facebook to provide a credible user identity will serve this need just as well, and won't require the user to sign up for an account. Not everyone uses social networking, so there is value to providing regular Drupal accounts as well. The desirability allowing anyone with a Facebook account to post content on the website is something that each Fab Lab will have to hash out internally but, in some situations, it could greatly streamline the content-creation process.
This topic is covered in more detail here:
Integrating Fab Lab Websites and Social Networking