Archive for the 'Plone' Category

Plone 3.0 released

I am really excited about Plone 3.0, the newest version of the content management system built on Zope, which was released today! New features include OpenID support, a new portlet architecture, built in wiki support, improved WYSIWYG editor and lots more. Installers are available for Windows, OSX, Linux and SuSE as well as cross-platform source bundles.

read more | digg story


Birds of a Feather - fostering Plone subcommunities

I’m at the PIKtipi sprint right now and thoroughly enjoying the sprinting, camping and socializing among friends old and new. I got a chance to chat with Xavier Heymans (CEO of ZEA Partners), and he was telling me about the new PloneGov initiative. It’s really interesting to see how governments from around the world are coming together under a common purpose to create open source software to serve the public.

This lead to a discussion about the importance of organizing the Plone users within various vertical markets and that collecting case studies about how these sectors are using Plone might be a good place to start. There is already an initiative on Plone.org for this, but it appears to be inactive. What are the policies for posting to this area of plone.org? How does one contribute case studies, news, links, events, etc.?

I’ve also been thinking about how the Plone community needs to do a better job of evangelizing its successes, and helping to facilitate like-minded groups to form sub-communities. Plone is being used in a wide variety of sectors and there are so many interesting use cases: libraries, eLearning, governments, artists, newspapers, mapping and even managing vineyards!

But these case studies are few and far between. As of today, there are only 6 case studies on plone.net. I should not be the one to cast the first stone, because my company, Jazkarta, has not published any case studies yet, even though we have several projects that would be very interesting to document.

I’ve started collecting various “Plone for…” initiatives and sites, and would like to post these somewhere permanent where they can grow into a comprehensive resource for decision makers who are evaluating Plone to see if it will fit their needs. Perhaps this information would be better suited for a home on plone.net? Here is the first shot…

Plone for Libraries

Plinkit provides Plone-based, pre-built websites for public libraries. See Darci Hanning’s presentation about Plinkit at the Plone Conference 2006.

Plone for Education and eLearning

eduCommons is an OpenCourseWare management system designed specifically to support OpenCourseWare projects. eduCommons will help you develop and manage an open access collection of course materials. eduCommons is used by Utah State University, Novell’s OpenCourseWare, Rice University’s Connexions, etc. Read more about the history of EduCommons.

Plone for Governments

• The goal of PloneGov is to develop in a cooperative manner, applications and websites suited for public organization for their own use as well as for their citizens’.
CommunePlone, the predecessor to PloneGov, is a fast growing open source software mutualization project led by local governments. Open to international collaboration, the project outlines the benefits of open source and mutualization for the Public Sector. Read more about CommunesPlone.

Plone for Artists

• Plone4Artists is an initiative to assemble a Plone products bundle with features commonly required for artist community websites. The target audience is artists and musicians who want to build a community portal site where they can showcase their work and network with like-minded artists.
BI.LIVE is an example of a site that is using the 1st generation Plone4Artists products for multimedia: ATAudio/ATVideo.

Plone for eCommerce

• PloneGetPaid is a lightweight framework for payment processing and commerce in Plone. There have already been two sprints to accelerate the development of the product. The upcoming doc-comm sprint at the Googleplex in Mountain View (June 25-29) will have a team of developers working on improving this product and getting it ready for prime-time.

Plone for Multimedia

• The MediaDB project was developed as a central repository for media files and documents, that were to be used in multiple web sites (referred to as ‘media sites’ here) run by the same company. That means the project not so much implements a media server handling the media content itself (e.g. video streaming), but focuses on storing files in a central place and making them available from (remote) plone sites. Demo of MediaDB

• The Plone4ArtistsSite suite of products includes several components for making it easier to manage multimedia content in your Plone site: Plone4ArtistsAudio, Plone4ArtistsVideo, and PloneFlashUpload.

• Plumi is a GPL licensed video sharing Content Management System based on Plone and produced by the EngageMedia collective. Plumi enables you to create your own sophisticated video sharing site; by adding it to an existing Plone instance you can quickly have a wide array of functionality to facilitate video distribution and community creation. EngageMedia is a website for video about social justice and environmental issues in Australia, Southeast Asia and the Pacific.

Plone for Community Planning

• OpenPlans aims to transform social activism by providing tools that connect people and enable them to share ideas, stay organized, and act collectively to effect change. OpenCore is the Plone-based software which powers the site, and is freely available under a GPL license. Read the getting started guide which explains how they use buildit to deploy the software.

Plone for GIS & Mapping

• PrimaGIS is a collaborative web mapping application for Plone. PrimaGIS is using buildit to easily deploy a PrimaGIS site.
Pleiades is an international research community, devoted to the study of ancient geography
GeoServer was started to help build a more open, interoperable infrastructure of Geographic Information.
• GISPython is a resource for all things about Python and GIS.

Plone for Newspapers

• Julius is a project that came out efforts to build a website dedicated to the national elections for the Mexican newspaper La Jornada. Julius has modules to convert HTML exported from QuarkXpress into NITF files, and code to import those files and create an “edition”, which is made of articles and photos. Read Carlo’s blog post on the Plone for Newspapers initiative.

Plone for Public Radio

• While there isn’t a formal project around using Plone for public radio, there have been some discussions about Plone on the Public Broadcasting Open Source Best Practices list which was started after the Beyond Broadcast 2006 conference in Cambridge, MA, and more discussion took place at the Beyond Broadcast 2007 and the IMA 2007 Conference. There are two public radio stations known to be using Plone: KCRW and KJZZ.

Plone for Multilingual Websites

• While the Plone interface has support for 50+ languages out of the box, the LinguaPlone add-on makes it possible to manage the actual content in more than one language. Plone Solutions (the maintainers of LinguaPlone) and Russ Ferriday from Topia are considered to be some of the experts in deploying multilingual Plone-based websites. Perhaps they could provide some case studies to show how Plone is a viable solution for implementing a multilingual CMS.
• ecoagents is an EU funded gaming website whose purpose is to teach kids about environmental issues. ecoagents is using LinguaPlone and XLIFF Marshaller to provide support and translation for 26 languages.

Plone for Laboratories

• Upfront Systems and BIKA Labs in S. Africa have developed LIMS, a web-based laboratory information management system (LIMS), a Plone-based tool for managing. Read the press release.

At the sprint I’ve been working together with some other folks on creating a Plone4Artists distribution using buildout. We are preparing a tutorial that will hopefully pave the way for other groups to create their own distributions of Plone. Right now, PrimaGIS and OpenPlans’ opencore projects are the only ones that I know of that are using any kind of automated buildout software to distribute their software. It might be a good idea to formalize this process, so that if you want your distribution of Plone to be listed in the directory (wherever that may be hosted), it should include a buildout to make it easy for people to download and evaluate.

The goal is to lower the barrier to entry for a would-be Plone user/integrator. If the software is hard to install and configure, people will turn to other CMSes such as Drupal or Joomla which often have one-click installations at a hosting provider. For the first time, we have tools that provide a way to easily set up and configure a Plone site just by typing a couple of commands (1. bootstrap 2. buildout).

Tools like buildout are empowering because it means we can distribute pre-configured Plone bundles that are specifically targeting a particular audience. These specialized Plone distributions demonstrate the real value of Plone - it’s ability to be easily customized and it’s rich library of 3rd party add-on products.

Technorati Tags: ,


Europe, here I come!

Tomorrow I’m off to Europe for three weeks. As usual, it’s a combined business/pleasure trip. My tentative itinerary is:

Yes, this trip is a continuation of the ongoing Plone4Artists roadshow with talks at LinuxTag, DZUG and possibly an impromptu talk at Podcamp Europe. The purpose of these talks is to promote the Plone platform as a viable tool for building online communities and managing and publishing multimedia content such as audio and video. My particular interest is to build artist communities and to facilitate networking and the exchange of ideas among a highly niche audience.

I would have liked to go to the Reboot conference in Copenhagen, but by the time I found out about it, the tickets were already sold out, and I had already booked my ticket to Berlin. While visiting the OLPC headquarters in Cambridge, I also found out about the iCommons Summit which is taking place in the beautiful seaside town of Dubrovnik in Croatia the last weekend that I’m in Europe.

Anyways, it would probably have been too much to try to do all of this in 3 weeks. I want to have some downtime to hang out with friends and just enjoy the delightful Danish summer. It’s been two years since I was last in Copenhagen, and I’m really looking forward to visit again.

I’ve got my Plazes profile setup, so you can now track my whereabouts. It’s not GPS but almost as good!

Technorati Tags: , , , , , , , ,


Integration Proclamation

I just signed the Integration Proclamation, a first step towards encouraging funders, software developers and those of us who work with them to invest resources in making tools that play together better.

Ever since I heard Alan Runyan, co-founder of Plone give a talk “Integration, not Isolation” (video) at the Plone Symposium 2006, this has been something I’ve been thinking about a lot.

It’s easy to fall into the trap of thinking that your CMS can do-it-all, and solve all technology problems. But the fact is, that no one piece of software can do everything equally well, and the sooner we accept this and look at how to integrate our software with other best-of-breed systems, the better off we will be.

There are already steps being taken to integrate Plone with Salesforce, Democracy in Action, What Counts, and Get Active.

If you want to make tools play together better, sign the proclamation. It only takes 15 seconds to fill out the form. Do it now!


Plone Conference enters Second Life

I’m on my way to the annual Plone Conference which is in Seattle for the first time. I went to college in Seattle and it’s been a long time since I’ve been back to visit. I’m really looking forward to stay right down in Pioneer Square / Pikes Place market, and see friends who I haven’t seen in awhile.

I will be giving a talk entitled Multimedia and Podcasting with Plone, sitting on the Plone for Enterprises panel, giving a lightning talk about Plone4ArtistsCalendar, leading a birds-of-a-feature (BoF) about multimedia, and coordinating the after conference sprint! Not to mention catching up with all the other Plonistas who I’ve gotten to know at various Plone events and on the #plone IRC channel. Whew - it’s going to be a busy week!

200610250220
One of the interesting developments this year is the creation of a virtual Plone Conference area in Second Life, the massively multiplayer online world, boasting 1 million “residents” and growing. See more photos on Flickr.

In the virtual conference area, there are viewing stations where you can actually watch live streaming of the conference sessions. So even if you can’t make it to the physical conference you can still participate, and interact with the other people who are visiting.

Created by Christian Scholtz (aka MrTopf), the Plone Conference in Second Life is free to attend, and all you need to do is download Second Life and create a character. See Christian’s blog post for screenshots and read the press release. If you decide to teleport in, look for me - my character is Fergut Huskerdu.

Technorati Tags: , , ,


Content licensing in Plone

At the recent Big Apple Sprint, we had one conference call (using iSight) with Brent Lambert from The College of Education and Human Services at Utah State University, to discuss the idea of a content licensing tool for Plone, as described in PLIP #136.

Jonah and I suggested that Brent look at Alec Mitchell’s contentratings product for an example of how to use Zope 3 annotations to add metadata to an object. By the following day, Brent already had a working example of adding a license to a piece of content via the Properties tab.

200607131406

In the attached screenshots, you can see that there is a content licensing selector in the Properties tab, and when you click on the ‘Choose’ link, the Creative Commons popup box appears where you can select a license.

200607131406-1After you select a license, your choice is fed back to the Plone edit form. So it’s a 3 click process, and has the advantage of using the up-to-date forms on creativecommons.org, so they don’t have to be maintained within the Plone product.

I think the rapid turnaround of this product is testament to the ease with which one can utilize Zope 3 technology to build truly useful tools in a componentized way.

You can browse the code in their subversion repository, and Brent assures me that this will soon be moved over to the collective subversion repository.

What’s next

The tool is currently only selecting the license, but not showing it anywhere on the view page. The tool should also embed a link to the RDF on the view page. It would be great if the tool could also include the CC license in RSS 1.0 and 2.0 feeds. The Creative Commons Web Integration Guide gives some examples for how to display the license information.

Technorati Tags: , ,


Listening for messages using listen

listen screenshotAlec Mitchell’s listen product is not only an excellent example of how to use the latest Zope 3 technologies in Plone, it’s also a very useful product.Listen is a mailing list management application that integrates into Plone. It’s based on Maik Jablonski’s Mailboxer product which has been around a long time and proved to be very stable.

PloneMailboxer was an attempt to integrate Mailboxer into Plone, but it hasn’t seen much development in over a year.

What I like about listen is that users can subscribe either as a user logged into the Plone site, or by simply providing an email address (while browsing the site anonymously). They can also post new messages and reply to existing messages through the Plone interface. All messages posted through the website are relayed to the mailing list, and vice versa.It took awhile to set it up all because it requires some configuration on the Linux server. Here is a summary of my experience.

1.Install listen

I grabbed the listen bundle and symlinked in all the products:

cd $PRODUCTS
svn co https://svn.plone.org/svn/collective/listen/bundles/current/ listen-bundle
cd $INSTANCE/Products
ln -s $PRODUCTS/listen-bundle/* .

Note: I put all of my products in a global $PRODUCTS directory, usually in /usr/misc/zope/products
Then for each Zope instance, I symlink the products I need into that instance’s products directory. This way I only have to update the products in one place for all my Zope instances.

2. Setup a test instance

Restarted Zope and made a test Plone instance ‘mysite’. Installed listen and made a listen instance ‘mylist’
So the listen instance is now at: http://www.domain.com/mysite/mylist
The email address for this list will be: mylist@domain.com

3. Set up the smtp2zope script

cd /etc/smrsh/
ln -s $PRODUCTS/listen-bundle/MailBoxer/smtp2zope.py 

4. Make the alias for the mailing list

cd /var/qmail/mailnames/domain.com
vi .qmail-mylist

Put the following in .qmail-mylist:

|/etc/smrsh/smtp2zope.py http://127.0.0.1:8080/mysite/mylist/manage_mailboxer 200000

Note: This step took the longest time because I couldn’t figure out where to make the .qmail-mylist file. First I put it in /var/qmail/alias, but it wasn’t getting read from there. Since my box is serving multiple domains, each domain has it’s own qmail aliases. It also didn’t help that all the instructions for setting up Mailboxer assume that you are running postfix or sendmail. Luckily I found this howto which explained how to do it for qmail.

If you are using postfix or sendmail, then you need to edit the ‘/etc/aliases’ file and add the following:

mylist@domain.com "|/etc/smrsh/smtp2zope.py http://127.0.0.1:8080/mysite/mylist/manage_mailboxer 200000

Once you save this file, you need to run the command ‘newaliases’ to refresh the aliases. The README.txt explains all this pretty well.

5. Configuring the Mailhost

By default, Plone now ships with SecureMailHost. I wasn’t able to get listen to work with SecureMailhost nor the recommended MaildropHost due to the error described in this issue. I deleted the SecureMailHost object in the Plone root, and added a normal Mailhost object. I left the SMTP authentication fields empty, and then it worked. If anyone knows why it’s giving an sslerror, please respond to the issue in the tracker.

What’s next?

I’d like to migrate all the mailboxer archives from lists.plone4artists.org over to use listen, but I’m not sure how easy this will be. I’d also like to be able to search the messages in the archive. Currently, they don’t appear in the search results when I use Plone’s LiveSearch. Although, this might be intentional?

Technorati Tags:


Blast from the past!

Thanks to Sidnei da Silva’s handy python script to migrate Plone blog entries to MoveableType format, I was able to modify it for my own use and import 16 posts that were trapped inside a defunct Quills 0.8 blog into this Wordpress blog.

Since there were no comments, I was able to greatly simplify the script. A few other changes that I had to make to get it to export correctly:

  1. Hardcoded the categories since they are all related to Plone and Plone4Artists.
  2. Added a condition to check that the object was actually a weblog entry and not a weblog topic, since with Quills 0.8, both are stored in the same container.
  3. Changed the method from getCookedBody to getBody, since that is how it’s defined in a Quills weblog entry.

## Script (Python) "mtexport"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##

out = context.REQUEST.RESPONSE

for entry in context.weblog.objectValues():
   if getattr(entry, 'meta_type', '') == 'WeblogEntry':
      print >> out, 'TITLE:', entry.Title()
      print >> out, 'AUTHOR:', 'nate'
      print >> out, 'DATE:', entry.created().strftime('%m/%d/%Y %H:%M:%S')
      print >> out, 'STATUS:', 'publish'
      print >> out, 'ALLOW COMMENTS:', '1'
      print >> out, 'ALLOW PINGS:', '1'
      print >> out, 'CONVERT BREAKS:', '0'
      print >> out, 'PRIMARY CATEGORY:', 'plone'
      print >> out, 'CATEGORY:', 'plone4artists'
      print >> out, '-' * 5
      print >> out, 'BODY:'
      print >> out, entry.getBody()
      print >> out, '-' * 8

null = printed
return out


Rating content in a Plone site

I’ve been meaning to try out Alec Mitchell’s contentratings product and tonight I finally sat down and tried installing it in a fresh Plone 2.5 test instance. The README is very comprehensive, but apparently I didn’t read it carefully enough because after putting contentratings into the Zope products directly, Zope wouldn’t restart.

Alec was on the #plone IRC channel and was kind enough to walk me through the process of configuring it. The product uses the “new school” approach which is to put it in $INSTANCE/lib/python. Once I moved it there, then Zope started up with no problem.

The next instructions in the README were to add the interface declarations in configure.zcml. Since I was just testing the product, I decided to configure as rateable the ‘Page’ content type that comes with ATContentTypes. This required adding these lines to ATContentTypes/configure.zcml:



 
   
   
                                                                                                                                                                      


After reporting that this still wasn’t working, Alec realized that he had omitted one critical line in configure.zcml:


 

Then I added the following code snippet to the bottom of CMFPlone/skins/plone_content/document_byline.pt:


 
   
   
 
 
 

Lastly, it was necessary to add these lines to the configure.zcml file to get the star images to appear:


 

 

The last line is not necessary if you are using Plone 2.5, since everything is already traversable.

What next

I proposed making a simple product which configures the relevant content types to be ratable, adds the indexes to the catalog and provides some nice looking views and portlets to display the highest rated content on the site.

I asked about making a configlet which would let the site admin choose which content types were ratable and Alec’s reply was “you just make a view that calls classImplements on the classes or directlyProvides on the instances.”

The goal is to make contentratings accessible and usable out-of-the-box. This could be a nice little weekend project.


Still no clear winner in the Plone blogging space

There exist many blogging tools for Plone, but none that have emerged as a full-featured blogging product comparable to Wordpress.

At the upcoming snow sprint we hope to investigate Tim Hick’s efforts using Zope 3 adaptors and interfaces so that the syndication and trackback functionality can be reused by other products.

Jon Stahl has some good reasons for why Plone needs a good blogging product, and what sorts of features such a product should have.
He even pleads with the the Plone developer community to not reinvent the wheel (how many different blogging tools does a CMS need?) and instead rally efforts around a single definitive blogging product for Plone.

Tom argues that it’s okay there are so many blogging products because then each person can do things their own way rather than make compromises.
Below is a list of the current crop of blogging tools.
Thankfully efforts are underway to share development efforts across the Quills and EasyBlog products, utilizing Tim Hick’s Five/Zope3-based syndication and plonetrackback tools.

  • Quills - BloggerAPI, trackbacks, powering theploneblog.org
  • EasyBlog - next version EasyBlog Generation V is expected to be completely restructured to make heavy use of the component model of Zope 3 using Five.
  • Plone Blog (qPloneBlog) is based on the SimpleBlog product. It is enhanced with ping abilities, RSS2 support for audio and video enclosures, Technorati tags, TrackBacks.
  • SimpleBlog - no fancy blogger-api/backlink stuff etc (yet), but it supports categories.
  • COREBlog2 - a former Zope only product, it has now been ported to Plone.
  • KNotes - uses PostgreSQL on backend.
  • Bitakora (Zope only)

I’m hoping that at the upcoming Snow Sprint in Austria, we can do some work on at least the syndication part, so that it’s easier to create RSS 2.0 feeds from Smart Folders.

There is murmuring of having a Plone as social software sprint in New York which would include development of blogging, tagging, syndication, discussions, etc. features for Plone. Stay tuned!

NOTE: this post is replicated as a Snow Sprint topic page Blogging.

Technorati Tags: ,