Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
140 lines (109 sloc) 4.31 KB
Samizdat Design Goals
- allow everyone to post messages immediately readable by everyone (+)
- include multimedia files in messages (+)
- publish summaries on the front page (+)
- use static publishing (cache as much content as possible into static
web objects, with mirroring and p2p in mind) (~)
- post edited versions of published messages (and provide version
control to keep history of modifications) (+)
- aggregate related messages together (and build complex hypertexts such
as FAQs, media-galleries, educational articles, books, etc.) (~)
- encrypt and sign messages protected by web of trust
- track resources regardless of their location
- not require online access for content preparation
- PGP-authorized anonymous publishing via Mixmaster
- full p2p hosting and mirroring (Freenet)
- advanced versioning (e.g. approvement by original author)
- advanced aggregation (e.g. alternative slices (a-la CVS tags) of
content, see also custom filtered views in "Search and Filter/Should")
- publish blogs/diaries (that is, personal space for messages from
individual members) (+)
- publish via Atom API
- vote on message tags (and make tags more universal, allowing to filter
and sort content by overall quality, local relevance, fairness,
quality of prose/content, factuality, novelty, related messages,
section, topic, event, geographic location and so on) (+)
- keep track of all cast votes (for accountability) (+)
- vote for stories to be included on front page (or, to speed-up
publishing, to be excluded from front page) (+)
- admin-defined quorum
- vote on request for extensive resource usage
- allow or require justification for some kinds of votes
- pluggable voting mechanisms (e.g. take into account number of votes)
Search and filter
- categorize and group messages by tags (+)
- allow members to add new tags (+)
- set up custom filtered views, publish search filter as a view (~)
- produce standard meta-data (RDF, Dublin Core, FOAF, etc.) (~)
- filter out low-quality messages (may look authoritarian, but actually
it is the same story as with consensus: it's better in the end to
filter them out but still have them available, than to have to resort
to deleting spam and other trash) (+)
- highlight new messages since last login
- transparent RDF search requests
- filter by ratings as voted by specific member group or member's
- categorized RSS syndication (NewsMonster, Reptile etc.) (+)
- distributed search across peer sites
- advanced statistical text analysis (content clusters etc.)
- automatic spam filtering (+)
- allow members to form groups and register friendship relations
- exchange material goods (books, cds, printouts, services, whatever)
- event calendar
- link calendar with date/time parameters of content metadata (published
date, expires date, urgent until, etc.)
- iCal/xCal calendar exchange, calendar syndication
- full-featured collaboration and coordination system
- generic issue-tracking mechanism to track tasks, timelines, and
- preview published messages (+)
- support publishing content in different languages (i18n) (+)
- support language selection for site interface and messages (l10n) (+)
- use CSS to customize representation for light-weight, text-only,
printer, PDA, text-to-speech or other accessibility devices (~)
- generate image thumbnails and galleries (~)
- publish and read content via email interface
- track favorite threads and events
- integrate with Haystack
- software abstraction layers for: storage/database (+),
content+metadata (+), representation (+), syndication,
searching/indexing (~), distribution/delivery (~)
Low barrier to entry for new developers:
- source code conventions (with options for indent, vim, and emacs) (~)
- documentation: developer documentation (+), source code comments (+),
user manuals (~), on-line help
- spam filtering (+), IP address blocking
- filter out dangerous CGI parameters and cookies (+)
- taint all user input (+)
- support OpenID, GnuPG/OpenPGP web of trust, SSL/X.509 certificates and
SSH keys