[imc-cms] [Plone-developers] Indymedia.org CMS Developers Survey - please read!

Martijn Pieters mj at zopatista.com
Sun Feb 11 06:06:01 PST 2007


On 2/11/07, ryan <ryan at linefeed.org> wrote:
> 1) Survey Part 1 - Personal Details
>    a) Your name?

Martijn Pieters

>    b) Your geographic location?

Currently: Norway
Past: Netherlands (native home) and U.S.A.

>    c) How long have you worked with Plone and what work do you do
>       with the project?

Zope (the underlying web platform): since Feb. 1999 (almost 8 years, golly).
Plone: since March 2004.

>    d) Do you work on any other CMS projects?

No.

> 2) Survey Part 2 - CMS Basics
>    a) What programming language is Plone written in?

Python. Some parts of Zope have been writting in C.

>    b) What is the backend database used by Plone?

The native Zope object database (ZODB), a fully transactional object store.

>    c) Are there other servers required (application server, Tomcat,
>       etc)?

No, but it is recommended to run Apache and/or Squid in front as proxy
and caching servers. Varnish is emerging as an alternative to Squid in
this space.

>    d) How do you describe the overall software design of Plone?

>    e) Can you give details about real-world scaleability
>       considerations for Plone?

With appropriate caching, Plone can scale to handle hundreds, if not
thousands of requests per second. The backed database can scale to
millions of objects, provided the developer makes use of the
framework's facilities for scaling (persistent BTrees and the Catalog,
an OO indexing engine).

> 3) Survey Part 3 - CMS Functionality
>    a) A core feature of our software is the ability for anonymous
>       users to post media to appear on the site. Is this easily
>       added to a site using Plone?

The workflow engine is easily configured to allow for this use-case,
with appropriate steps for editorial review if so desired. Each
workflow state governs content permissions such as visibility and
available actions, all configurable.

>    b) Can you describe the site search functionality available?

Whatever aspect you want to search on, it is either there or can be
added. Because of the OO nature of Plone content, plus it's support
for standard Dublin Core metadata, you can, out of the box, search for
full text, content type, title, description, authors, publishing date,
expiry date, workflow status, keywords and modification date. All
searches are governed by access controls as well, so site visitors can
only find content to which they have viewing rights.

Such searches can be 'canned' into a 'Smart Folder' content type,
allowing site editors to create new views on the content of a site.
For example, a standard Plone site has a 'Events' smart folder,
showing all upcoming events in the site. Smart Folders can be further
refined into sub-searches, allowing site visitors to drill down.

A good example is the Trolltech customer listing at
<http://www.trolltech.com/customers/directory/>, where you can list
customers by different aspects, such as technology used, platform or
industry. The following URL then, shows customers using QT, in the
automotive industry:
<http://www.trolltech.com/customers/directory/qt/industry/industry-automotive>.

>    c) How is RSS/XML/RDF support included?

Out of the box, any search result can be rendered as RSS 1.0 feed. The
aforementioned Trolltech search, for example, can be subscribed to via
the URL <http://www.trolltech.com/customers/directory/qt/industry/industry-automotive/RSS>.
A default Plone site displays the RSS icon on any such search result
or Smart Folder, see for example the following search for
"non-profits" on plone.org:
<http://plone.org/search?SearchableText=non-profits>.

>    d) We would like to have one server per site which allows many
>       instances of actual websites, each with different admin logins
>       and different websites altogether. Is this easy to set up with
>       Plone?

Each Plone site is a sub-object in a Zope server. Having multiple
sites side-by-side on one Zope server is not a problem, and each site
has it's own users defined independently. Using setup profiles
(defined in XML), it's easy to set up reusable site configurations and
default content, so setting up a new site is as easy as selecting the
right profile from a drop-down list.

>    e) Can you describe the multimedia support in the software? We
>       allow users to upload and manipulate online all types of media -
>       mpeg, mp3, ogg, jpg, pdf, etc.

Plone's out-of-the box configuration does not deal too well with large
multimedia files. An add-on product is needed to store such larger
files outside of the object database. Direct, out-of-the-box support
is planned for Plone 3.5, using recently developed support in Zope's
ZODB.

I've developed several sites that allow editors to upload multimedia
content using such add-ons. One such site is for a Dutch local video
competition, called ZoeTown (<http://www.zoetown.nl/>), where visitors
get to vote on video's created by youths.

>    f) Internationalization is very important to us. Many of our sites
>       support 2-3 or more languages. Can you describe how this is
>       accomplished in Plone?

The UI of Plone itself has been translated into 35 languages
(available out-of-the-box). An add-on called LinguaPlone adds support
for multi-language content in sites, supporting translators and
publishing in multiple languages. Plone handles the world's languages
and scripts with ease, including Japanese, Chinese, and right-to-left
languages such as Arabic and Hebrew.

Sites using LinguaPlone store translated content as discreet objects,
so a translation has it's own workflow and access permissions. Aspects
of content types can be marked as language-independent and are shared
among the translations. This enables scenarios like images shared
across languages, with only their keywords, description and title
translated.

A LP site will present it's content in the language preferred by the
visiting browser, after which the visitor can select other available
languages at will. A good example is the website of the Centre for New
European Research at Hitotsubashi University, Tokyo
(<http://cner.law.hit-u.ac.jp/>). It presents it's content in no less
than 13 different languages.

>    g) What types of anti-abuse or anti-spam measures are in the code?

This is a wide field, with many protections built into Zope by
default, such as automatic quoting of HTML at template rendering time
(unless specifically enabled all HTML pulled in from outside a
template is quoted). Email addresses are automatically protected
against spam harvesters, and content creation is governed by workflows
that allow for review. Add-on products can add further features, such
as CAPTCHAs.

>    h) Is there a calendar included in the codebase?

Yes, and events can be exported in both the iCal and vCal formats.

>    i) How do you describe how a user would edit a given piece of content
>       on the website, or briefly describe the model used in this part
>       of the functionality?

If a user has the appropriate access, the user would select the 'edit'
tab of a piece of content, and use a browser form to edit the various
content fields. Rich content such as page bodies can be edited with
the built-in HTML editor (called 'kupu'). Metadata such as keywords,
publication dates and authors are put on a seperate tab. Both the edit
form and the rich-text editor can be expanded to fill the browser
window, allowing an author to focus on editing process.

>    j) How do you describe any type of user moderation system that
>       is built into Plone?

Plone uses 'Roles' to mark distinct access rights and
responsibilities. The default workflow let's 'Members' enter and
submit content, and 'Reviewers' to verify submitted content for
publication. Other scenarios are easily created, as the workflow
engine supports arbitrary states and transitions, each with their own
permission structure and transition gates.

>    k) What types of integration is there with P2P networks?

None out of the box.

>    l) Another important feature for us is networking between the
>       websites. If we want users from one website to have rights on
>       another website in the network, how could we do this?

I personally would use an LDAP server, and use the built-in LDAP
support to pull users in the LDAP directory into the Plone sites.

>    m) We are concerned with the ability to easily rsync pages from a
>       website to other servers and setup a type of mirroring scheme.
>       How would this be accomplished with Plone?

There are add-on products that support mirroring content from one site
to another.

> 4) Survery Part 4 - Miscellaneous
>    a) What do you believe are the top selling points for Plone?

It's community, it's out-of-the-box feature set, it's userfriendly UI
(developed by professional UI experts) and it's expandability.

>    b) From what you know about the Indymedia network, how well do you
>       think IMC would mesh with the development community for the CMS?

The IMC would fit right in. The Plone development community consists
of commercial integrators, individual consultants, and lots of
end-users, and the latter group includes many NGOs and community
organisations. I'd like to highlight the Burning Man organisation
here, represented by Rob Miller. The Burning Man volunteer
organisation relies heavily on Plone to organise itself, and many of
the improvements made by the organisation have flowed back into Plone
and Plone additions.

>    c) What are the top 3 areas you believe the development team for
>       the CMS needs to be improved?

Release focus and documentation. Can't think of a third.

>    d) Where do you see Plone in five years?

Grown further, ever more maturing and adapting to the changing
landscape of the web. Plone 3.0 introduces extensive use of AJAX in
it's UI for example. Who knows what the future will bring?

-- 
Martijn Pieters


More information about the imc-cms mailing list