[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New snapshot: waterfall of features

From: Dmitry Borodaenko
Subject: New snapshot: waterfall of features
Date: Tue, 31 Mar 2009 16:55:53 +0300


New Samizdat snapshot (version in Debian/experimental)
contains quite a lot of changes. Quoth the changelog:

- RDF sub-properties, transitive closures, must-not-bind sub-patterns
- focuses renamed back to tags
- sub-tags may be defined by moderators
- replies, versions, translations, sub-tags and other parts are
  generalized as transitive sub-properties of dct:isPartOf
- back to PostgreSQL-only until new triggers are ported
- new plugin APIs: tag, route
- global API-wide plugin options
- plugin dependencies
- upload queue (fixes Savannah bug #20710)
- upload message and its multimedia parts in one go
- record original_filename
- pass a block to Sanitize to programmatically filter out or rewrite
  HTML attribute values
- manual cut-off mark for short message display
- edit title of a multimedia message without re-uploading the file
  (fixes Savannah bug #20402)
- lock message to prevent further replies
- allow to recover accounts blocked due to lost confirmation email, show
  list of blocked accounts to moderators
- login automatically on email confirmation
- require old password to change password
- generalized dynamic page cache out of FrontpageController
- CSRF protection moved from ApplicationHelper to Request, allowing
  multiple secure forms per page
- allow custom strings inside generated forms
- use Message#load_from_rdf
- ResourcesList component
- frontpage template extracted from the controller
- do not display redundant reply titles
- do not display a setting if only one option is available
- separate limit on number of tags in a list
- cookie-based flash notices
- calendar (incomplete)

For users, most interesting changes are:

- focuses are renamed back to tags

  Back in 2003, people used all sorts of different terms like keywords,
  categories, tags, etc., so it made sense to pick whatever was
  semantically closest to how this concept works in Samizdat. Now, most
  sites settled on "tags", so most users are familiar with this term,
  and from usability perspective it makes perfect sense to take
  advantage of that.

- sub-tags

  Moderators are now allowed to define a subTagOf relation between two
  tags, either from the /tags page, or via /message/reparent action. All
  resources related to the sub-tag will also show up on the parent tag's
  page. Thanks to the RDF storage changes, this relation is transitive,
  so sub-sub-tag's resources will also appear on grand-parent's page.

- isTranslationOf

  Instead of being a funny kind of reply, message translations have been
  provided with their own RDF property. As a result, the old two-step
  way of adding a translation is replaced with a dedicated "Translate"
  button right next to "Reply". As a collateral benefit, it is no longer
  allowed to add replies directly to tags (a mistake often made by new

- multimedia parts

  When posting a new message, you can now submit several (in default
  configuration, up to 10) multimedia files that will be recorded as
  parts of the parent message. Original filenames of the files will be
  recorded and replaced in all HTML img/src attributes of the parent
  message with locations of the files under Samizdat content directory.
  This means that you can prepare a message with images locally and
  upload the whole set at once, without having to upload images one by
  one and editing the message afterwards to add image links.

- edit title of a multimedia message

  If you want to change title of a multimedia message, you no longer
  have to re-upload the same file. Just submit the edit form with new
  title and no content, and the file from the previous version will be

- manual cut-off mark

  Samizdat now provides you with more control over how messages are
  displayed in short mode (e.g. on the front page, in the list of
  replies, or on member's personal page). In addition to the limit:short
  configuration option (set to 1000 characters by default), which often
  causes the message to be cut in mid-sentence, it is now possible to
  place a manual cut-off mark (by default, the mark is $$$). The
  limit:short option overrides the cut-off mark, so the mark has to be
  placed within the first 1000 characters for it to take effect.

- replies without titles

  When posting a reply, you don't have to supply a title. When the title
  is blank or identical to parent's title, it is not displayed. The
  message can still be opened directly by clicking on "link" in the
  message info line.

Admins should be aware of the following:

- database changes

  This update includes massive changes to database schema and triggers.
  These changes have not yet been ported from PostgreSQL to other
  database engines, so if you are running Samizdat on top of MySQL or
  SQLite3, you should not install this version just yet. For sites
  running PostgreSQL, database migration script is provided under
  doc/migration. If your database user is not samizdat, you should pipe
  that script through sed like this:

    sed -e 's/TO samizdat/TO youruser/g' doc/migration/upgrade_from_v0.6.2.sql

  Make sure to backup your data before running this script, as can be
  seen from the migration script, the changes are far from trivial and
  might blow up your data in interesting and exciting ways.

- configuration changes

  There are new configuration options in defaults.yaml, site:content
  location in config.yaml is now expected to be relative to site base.
  Make sure these changes are reflected in your configuration.

- frontpage template

  Front page is now generated from frontpage_index.rhtml ERb template
  and makes use of the new ResourceList component classes. If you want
  to move things around on the front page, all you have to do is edit
  this template. Adventurous admins may also want to add new kinds of
  lists to this page, for that you would need to create new resource
  list classes similar to the ones defined in

- lock replies

  Site moderators are now able to lock and unlock replies to a message.
  Once the lock is set, it applies recursively to all replies below the
  message, so the whole discussion is frozen. It is possible to unlock
  either the whole thread, or individual sub-threads (lock/unlock flag
  of a reply overrides that of its parent).

- recover blocked accounts

  Moderators can now manually unblock accounts that got stuck half-way
  through registration due to lost confirmation email. List of all
  blocked accounts is accessible through the moderation log page (since
  account status is a private information of the member, this list is
  only available to moderators).

Goodies for developers:

- RDF storage

  Many of the new features rely on the following improvements in the
  Samizdat RDF storage module. RDF property may be declared a
  sub-property of another property. A transitive closure of a property
  may be stored in a separate table supported by a set of triggers. For
  example of both, see isPartOf property and its subproperties. On top
  of that, RDF queries may now contain must-not-bind subpatterns denoted
  by EXCEPT keyword.

- Sanitize

  Sanitize#sanitize() may now be called with a block. The block is
  applied to each HTML attribute, based on the result it retuns, the
  attribute may be deleted or its value may be replaced. For example of
  how this is used, see Content#render().

Dmitry Borodaenko

reply via email to

[Prev in Thread] Current Thread [Next in Thread]