Personal tools
You are here: Home Archive 2005

Entries For: 2005

December 31, 2005

: Nice overview of ATMultimedia Bundle

Filed Under:

Jean-Francois Roche recently gave a talk about PloneMultimedia at the Plone Belgium users group meeting.

His slides provide a nice overview of this powerful suite of products, which include:

  •  ATAudio, for handling audio files including music downloads and podcasting
  • ATPhoto, which provides some powerful photo management features, including import and export from Flickr
  • ATVideo, which provides tools for handling video files

There is also supposedly video, courtesy of Mr. Topf, but the link appears to not be working right now. :-(

A screencast would be nice -- like PrimaGIS, these are tools that are even more impressive to see than to read about.

December 29, 2005

: Marketing, mindshare and blogging

Why a great blogging product and better documentation are a powerful way to market Plone.

Check out "The Great Drupal Blogging Project, Part One."  I think it illustrates something important about how Plone's approachability and blogging features are criticall for building mindshare among opinion leaders. 

In this story, Linux-Watch.com editor Steven J. Vaughan-Nichols begins recounting his path towards installing his own CMS for a personal, blog-oriented website.

I decided that my first problem wasn't that I'm a klutz at Web design. No, my biggest problem was that I don't have the time to manually put up a decent-looking Web site.

So, it was that I decided to put up one using a blogging-oriented CMS (content management system). By that, I do not mean using an existing CMS like Blogger or Live Journal. I mean actually setting up my own instance of a CMS on one of my Linux servers.

After confessing his limited PHP/Perl technical skills, Vaughn-Nichols continues...


Thus, I ruled out the CMSs that require a good amount of technical expertise. The goal, after all, is to come up with a Web site that requires minimal time for yours truly.

I looked at some other CMSs, such as Plone/Zope and WordPress, but I wasn't sure where to go.

So, I asked some of my fellow tech journalist buddies at the Internet Press Guild what they used. Robin "Roblimo" Miller [...] suggested that Drupal might fill the bill.

He uses it himself for his personal site, and one of our comrades, Bob Young, founder of Red Hat, uses it for his current company, the publish-it-yourself powerhouse Lulu.

I then did a spot of research and decided that Drupal seemed liked it was the ideal combination of power and ease of use, with WordPress a close second.


Pay very close attention to the process here.  He first decides what qualities he needs.   He gets a bit intimidated by the apparently-steep learning curve of leading products.  Then, he asks his nerdy friends what they use. Then he does some research, and feels better about moving forward. 

It's not a techical, objective, rational process.  It's based on feeling, intuition, and recommendations from trusted friends.  Now you can criticize it as poor decision making, but it is how real human beings tend to make decisions, and there is a snowball effect from it.

Why do Vaughn-Nichols' nerdy friends use (and recommend) Drupal?  Apparently, because it has pretty decent blogging features out-of-the-box, and is in many other ways a moderately competent CMS for power-users.

And that is a lesson that I think Plone should take to heart.   Having a good blogging features that are front-and-center in a general-purpose open-source CMS platform is a critical marketing feature, because then technology opinion makers (who tend to write a lot, that's why they're opinion makers) will use it for small projects, get confidence in it, and recommend it to friends.  That builds mindshare and recognition for the product.

And actually, come to think of it, it's not just about blogging tools.  It's about all of the features that together make a product like Plone suitable for quick-and-dirty publishing/writing/community projects as well as complex, enterprise projects.  Things like a simple and clean install process, great entry-level documentation, awesome usability, easy skinning, and the "Web 2.0" features that many tech opinion leaders now expect (great blogging, great commenting & discussion tools, great RSS feeds, etc.)  Plone is world-class in some of these areas, and could use more attention in others. 

That's the connection between "grassroots" features and "enterprise" projects.  Mindshare and critical mass are built one small successful project at a time. 



December 28, 2005

Alan Runyan: Best Practices

Filed Under:

While 'best practices' change as we evolve Plone and learn what works and what doesnt. We must document them or we risk hurting ourselves in the long run.

The Phone Calls

Its not a conspiracy theory.  I am on the phone, all the time, with people around the globe.  Most of my jabbering has something to do with Enfold Systems and Plone.  Other times its keeping up the social ties that keep me connected to developers, partnered companies, and friends.  Recently I was on the phone with a great developer chewing the fat about 'best practices'.  Of course that word was only muttered by myself (which I find myself constantly saying such words, and if I could see myself 5 years ago - I would either castrate myself or wash my mouth out with soap^H^H^H^Hzope)  not the other developer -- he chooses his words wisely and rarely talks about 'community'.  He knows that his involvement is limited to things that impact his life; he's clients need to be happy and he has a gas coding in Python and he enjoys Zope.  Its amazing how similiar he is with a lot of developers in the world of open source, Zope, Python, etc.  At one point he was burning the midnight oil to push the boulder forward; now he picks his battles and is more upfront what he is willing to work on for himself and others.  NOTE: Clients *pay* him to work on what they need.  He cant get around that.  Anyway.. he wants to document the development process  and manage people's expectations  - so he doesnt have to clean up the toilets after some newbie clogs them up and the Zope system overflows from rubbish choking the toilet.

Guts on the Table

In the land of open source - you see how the sausage is made.  And its not pretty.  It's people working their ass off to code. Some code is great; lots of it sucks.  But the thing is -- no one can predict where it (any code) will be at some (future) point.  Most of the people working their ass off are doing it because its their passion.  And my friend's passion is helping other people; besides coding.  With all of the guts on the table; people are easily confused.  What is a good product?  What is the best way to extend the system?  etc. etc.  How do we answer these?  We can write books but we learn valuable lessons every day and the books are outdated very quickly.  Now only the guts are on the table, which can scare and confuse people.  It's also a weird experience for people coming into the community.

There is no Talk there is only Do

Since people see all of the guts and its as easy to participate as posting a email -- everyone is a back seat surgeon.  Saying what should happen.  But most commonly the charge is This is Wrong and That is Right.  Offering the Correct Way (Tao of Snot) amounts to little more than adding unwanted noise; unless you are being constructive.  And if you are gonna to bother to be *that* constructive you might as well just Do It and punt on the talking about whats wrong.  Show people whats right.  The guy on the other end of the phone - is big on Doing not Talking, at least not into talking about doing.

How Things are Done

I just made a post talking about Best Practices of Plone Development.  Of course it was ramblings similiar to this web log post.  But it was narrower in scope - I hope it benefits someone.  In fact the email title was Best Practices for Sustainable Development - cant git more ConsultingSpeak than that -- I love it.  So this guy asks, "How do I do this" and the entire time I'm writing this I'm wondering, "Has this guy programmed anything in Python outside of the context of Plone?"  And I think thats what is bothering my buddy on the phone.  He is realizing that a lot of people who are doing things like Managing Skins/Scripts Through The Web (affectionately known as TTW) are doing it because they have no Python Programming context. To say it bothers him is a understatement.

Been There

I came to Python through Zope.  I did everything through the web.  It was "The Hook".  The problem was no one told me that what I was doing was not durable.  Also I dont know if I had the capacity to understand (over the internet - in person, if someone sat me down - i would have understood) that what was happening and what I was trying to accomplish -- was basically programming Python using a Web Framework and a Object Persistence System.  NOTE: I had never used any form of persistence besides insert,update,delete in a relational database; much less a persistent object system or something so transparent and easy as ZODB.  So a lot of the magic and power of Zope that I saw and was being "led" into using, was simply ZODB and Python.  But I was doing it the wrong way -- in the Zope Management Interface not on the file system.  Not with tests.  Not with a framework such as CMF/Plone.  Not with a community that has upwards of 3-4 conferences per year (2 Plone conferences, 1 PyCon and 1 O'Reilly - add EuroPython and OSCOM and you have a lot of Zope/Plone presence).    Now we do.  And we have Been There Done That.  We should really share our experiences; talk at conferences; leave evidence of our knowledge via documentation.  And people who receive this knowledge should feel compelled to redistribute it publicly.

My Friend My Friend

He is quite pissed about the state of documentation but also pissed about how newcomers expectations are being handled.  He wants people to understand how to use the technologies we all use on a daily basis.  He wants to raise them by their bootstraps and get them to speak, think and act like competent developers.  Not to pigeonhole them into a web interface - but show them the power of Zope/ZODB/Python and let them make their own informed decisions.  I think he would like: People to use version control (SVN), people to use doctests, people to understand python, people to understand persistence and then work themselves into leveraging Zope the way they need it.  He wants them to make their own decisions. I commend my ernest friend.

There are less important things to care about

I, on the other hand - sort of care a tad less.  I believe tha people can be sandboxed into use Archetypes to create "content types", simple "tools" and write tests.  Then use something like Entransit to formally delivery the content out of Plone and into data sources like XML and RDBMS that is then served by a technologies that fit their brain (read ASP, JSP, PHP, Python).  I know, in my heart - My Friend is right.  But I know in my slackgland that people are lazy (like myself) and just want something to work and arent interested in upfront pain.  Zope to me was the "last admin interface I ever had to write" -- I could use Zope and I would never have to make an administrator interface again; I could focus on using the data that came from the content authors.  I'm still tha way.  Plone is the ultimate Content Management System that excels at content authoring and overall production.  Entransit is the repeatable way to push content into another system; then use your skills to go from there.  I have less important things to care about than building a better mousetrap or teaching people that bobo is superior to servlets or ASP.

WTF is the Point?

Ugh.  I'm not sure where I am in this post by now.  I can say in full confidence we need a Zope/Plone Best Practices document/tutorial - that is kept up-to-date.  Everyone needs to tune out the people offering advice without commitment to putting in the elbow grease. I urge everyone to write documentation and solicite feedback -- those who incorporate feedback and cultivate contributions are the people who will help the community and project the most and personally get the most out of participation.  Finally I would like to thank My Friend and all other people in the Zope/Python communities
for being such great people.  I cant express how much fun it is to see Zope/Plone grow -- all the while introducing new people to the Python language. Zope is the best damn application server on this or any other planet.  We just need to be a tad more convincing.

December 22, 2005

Alan Runyan: "Make a Better World"

Filed Under:

James Booker applied to Plone and evagelism.

Plone is top 10 Content Managment Systems

So have you checked out Google rank lately?  Content Management - by Google.  Besides Plone being one of the best Content Management Systems (NOTE: We are not interested in Enterprise Content Management) in the entire marketplace - Google searches and websites are starting to really increase dramatically.  A search for Plone yields over 15 million results when googled. And ya know -- that query is really telling.

Plone makes money; car dont make no money

If you have seen Hands on a Hard Body there is a guy who says "Truck make money; car don't make no money" and that is absolutely true.  Trucks can make money but most importantly -- Plone makes money.  Look at the google results for searching for Plone -- we have consulting firms galore advertising.  This is indicative of people making money -- because they are paying money for these adwords.  Not hosting services or low-cost services.  But business oriented consulting; people providing solutions with Plone. 

Giving back?

Are these people giving back?  A lot of these companies are not involved in the Plone Foundation.  Which is mildly depressing to say the least.  But not only that - they dont contribute to the protection of Plone or advancement of Plone.  ZeoMega for instance helped the Plone Foundation with a booth for the O'Reilly conference.  I've never heard of Opatros or Enomaly.  Are they giving back?  Are they helping with Marketing?

Ways of Giving Back

  • Submit your website's to plone.org to be listed on plone.org
  • Tag your website's with plone-site using del.icious.us - it looks like we have over 600 sites taged.
  • Sites that are using Plone should have a link to plone.org -- to increase our google rank along with icon

You should always ask your client.  I've never had a client that did not want to link to plone.org -- they are getting a very capable product for free.  Enfold Systems didnt do the skin/design for Oxfam America but they were so happy with Plone they agreed to put a plone powered icon with a link to plone.org.

  •  Help out with marketing analysis.  Donate to the Foundation.  Come to a Symposium or Conference and do a presentation or sponsor a sprint. 
  • Contribute code, enhancements, pay developers to work on features or work on documentation.
  • Be creative - you started a company - what can help both your organization and Plone?


Open Source is not a Fad

I believe a lot of people have "caught on" to this Open Source as the DotCom phenomenon and a great place to make money without having to contribute.  But if I was a client looking at firms to provide solutions with Open Source -- I would ask for firm evidence they are tightly involved with the project.  There are reasons:

  • If you are not a contributor or work with the project - if there are deep changes need to be made for your client - there is ZERO possibility of the code going back into the main project.  Which is a shame - because deep changes (if applicable) are what Open Source evolution are all about.
  • You are a consumer of Open Source but have ZERO legitimacy which means you will not be able to control your destiny.  Most vendors who work with large CMS provides - are not used to this relationship between organization and community but the idea of Controlling Your Destiny is critical in Open Source.  Because the software exists today but if no one pushes the software further or the people who are pushing - move it into a direction you do not like -- you will have no recourse.
  • If you only take and do not give - that is Evil.  I am not a fan of Bush and I'm not interested in politics on the internet (only in person ;).  But if you are a constant taker of Open Source gifts without any contribution -- you are doing Evil.  Sorry to say it - but you are.  Dont be evil.  Its Christmas - people!  It's the time for *giving*.


Laissez le bon temps Roulez

And on that note - I'm gonna load up my Egg Nog with some Myers Dark Rum and crank up James Booker's Junco Partner  and do a tad of coding.  At Enfold Systems we have recently been working with Democracy in Action which is a ASP similiar to GetActive.  We now have a Python API into Democracy in Action in our SVN.  svn co https://svn.enfoldsystems.com/public/deminaction -- they are inexpensive.  Cant wait till we show you guys how and where we are using it -- its gonna blow you away!

Oh and before I leave.. the title of this blog - is inspired by James Booker's song.  Which you really should listen to while reading this posting.  Some lyrics:
"The world we know is built on skills, but that alone dont count"
"You gotta live and give; share and care"
"Everybody lets sing let freedom ring"

"Society is the priority, we're all one part of a whole
Whenever people shout, we gotta here them out,
Everyones a beautiful song."

fsck honkey ole Richard Stallman - I elect James Booker as the new Free Software Movement spokesman.

Everyone please be safe over the New Year - I hope this project and community is as inspiring to you as it is to me each day.  If not start giving a little more, and go buy the Junco Partner album -- if giving isnt making you groove enough

your friend and dictator, alan runyan

December 20, 2005

Jon Stahl: Thanks, Martin!

Filed Under:

A shout-out to Martin Aspeli, who made my life happier this week...

... by writing the Creating A Custom Navigation Section how-to on Plone.org.  I have been struggling for a while to grok a sensible way to implement dynamic drop-down menus for a Plone site.  (Limi is probably getting a headache as I type this, but hey, the customer is sometimes always right.)  Martin's timely article provided the "missing link" for me between Plone's navigation and the various CSS/javascript drop-down menu techniques. 

Thanks, Martin!  You're are, for this among so many other reasons, a rock star.

And while we're on the subject, check out the Mid-Peninsula Regional Open Space District for a nice example of how drop-down navigation can actually open up the design of a site quite a bit.

December 15, 2005

Jon Stahl: What Can Plone Learn From Ruby On Rails' Marketing?

Filed Under:

Plone and Ruby on Rails aren't the same thing, but there's a lot Plone can learn about marketing and building mindshare for an open-source toolkit.

So, the buzz this week among web developers is the new Ruby on Rails site.  For a new product with a rather small number of users, they sure have a lot of buzz.  How do they do that?

As my colleague Steve Andersen pointed out, they do a great job of breaking down their core message and presenting it in digestible chunks with pretty pictures.

What lessons should the Plone community learn from their polished efforts?




December 05, 2005

Jon Stahl: Interview with Alan Runyan

Filed Under:

Tom Parish interviews Alan Runyan about Plone and the Plone community.

Jon Stahl: COREBlog2 Released: Another (Pretty Good) Plone Blogging Tool

Filed Under:

The fast-moving landscape of blogging tools for Plone shifted yet again with this week's release of COREBlog2, a leading Zope blogging product, in a Plone-compatible version.

One of my biggest obsessions of late is the state of community & collaboration Products for Plone.  (See my baseline rant of a few weeks ago.)  One of the topics I went on about at some length there (and on the Plone-devels mailing list) was the somewhat sorry state of blogging products for Plone. To make a long story short, there are about five halfway decent blogging products for Plone, but none that are truly outstanding and full-featured.  Seems suboptimal to me.

Since I wrote that initial piece, the landscape of blogging tools has continued to shift -- in promising ways.  Kai Diefenbach, the creator of EasyBlog, released a 1.0 version and announced his intention to refactor EasyBlog and use the fast-evolving modular services of the Quills 1.0 branch, on which Tim Hicks has been quietly doing some great work.  That's a great move towards a more collaborative product landscape, and hopefully the combined forces of two leading Plone blogging development efforts will result in an accelerated development effort.  Bravo to Tim and Kai for making the connection.

Then, early last week, another interesting development: Atsushi Shibata released COREBlog2, which is the first Plone-compatible version of COREBlog, the leading blogging product for Zope.  COREBlog2 has a very polished front-end with most of what you'd expect in a blogging product.  It also looks like it's being developed a Z3/Five-ish style.

COREBlog2 looks like a nice product, but it's still a few syllables short of being the Last Word in Plone blogging products.  Here's a quick rundown:

Good things about COREBlog2

  • A sensible, fully-fleshed-out blog entry schema.  Headline, subheader, excerpt, body text, extended text, categories, etc.
  • Sends pings to notification services.
  • Trackbacks and comments can be open, closed or hidden. 
  • Nice, clean default templates.
  • Support for comments from non-logged-in users.

These are all things that are missing (or mostly missing) from current Plone blogging tools.

What COREBlog2 seems to be lacking:

  • Tools to prevent (and quickly clean up) comment and trackback spamming.  Plone isn't being targeted right now, but it will as more folks use it to blog.  Best to solve the problem while it's not an urgent one.  WordPress' option to moderate unauthenicated commenters comments until the admin approves, then to automatically publish comments from folks whose previous comments have been approved works pretty well.
  • COREBlog2 needs to have an option to require users to register/login to post.  That's appropriate for some sites. 

I'm not technical enough to offer an opinion on the quality of the underlying code, but I'd love to see some comments on it if anyone out there is so inclined. (Hint hint.)

OK, So where does this leave us?

Where to from here?  How do we get a great blogging product out into the wild?  It seems to me like COREBlog2 provides a solid front-end (and maybe a solid back-end, too).  No idea where Atsushi wants to take it or if he's looking for contributions/collaborators.  (There doesn't even seem to be public SVN yet, but the code is GPL, so that's a good sign.)  Tim Hicks' work on FatSyndication, FatTrackback, etc. -- Five-ified core services that blogs (and other content types!) need is also very worthy, and Limi has explicitly stated that he thinks its a smart direction to pursure.  Kai clearly has a head of steam up on the problem, and is looking to pitch in collaboratively. 

Personally, I think it would make a lot of sense to try to wire together Tim's back-end work with COREBlog's polished front end, and try to fill in the missing features around comment and trackback abuse. 

What do you think?






December 04, 2005

Alan Runyan: Task-oriented Documentation

Filed Under:

Ofer randomly emails me things he finds on the net. Today I had some time to read the blog posting he sent to me which was a guy ranting about the status quo in Open Source CMS. While I think he missed the point with Plone; he got one thing right.

I'm not into blogs.  When I'm on the computer these days - there is no time for faffing about with weblogs.  I have my set of weblogs - I dont even have a RSS client that rolls them up.  I goto them manually.  Thats how lame I am.  Ofer pointed me to a weblog entry where this guy is fed up with open source cms systems.  Buddy, we all are fed up with the state of CMS that is why the Plone project is trying to fix it.

So this guy's major complaints are:

Make it easy to install. --

I think Plone is a winner in this category.

Make it easy to get started. --

I think Plone needs to focus on this

Write task-based documentation first.

I think this is critical for Plone to take over commercial markets.

Separate the administration of the CMS from the editing and managing of content.

I explain this below.  Basically out-of-the-box we should give people a concept of 'microsites' and staging.  I have written about this numerous times about using accessrules to apply retail views using portal_skins.changeSkin method.   Not only does this need to be documented it needs to be considered best practices.

Users of a public web site should never -- never -- be presented with a way to log into the CMS.

Since users dont have a understanding of the above changeSkin using accessrule.  They think that Plone is *required* to act this way. 

Stop it with the jargon already.

We are getting better about this

Why do you insist Web sites have "columns"?

This was because he didnt understand that you could change the skin to a retail view. 

You will notice that if we would explain this 'applying retail views using hostnames to differentiate admin from public' we would have solved most of this guys complaints.  Education is very important.  In fact it is what is keeping Plone from widespread adoption.  It is not a technology problem.  It is creating quality mateirals, presenting the mateirals and people being able to discover the materials.

So here is my reply to this guy but since I dont read/use weblogs much.  His weblog system asked for me to comment but when I tried to post it said his weblog was not accepting comments (why did it allow me to reply to this weblog?).  I think he was using something called movable type which is regarded to be on the best weblog systems around.  Then why does it have such a obvious usability problem? *smirk*

My response which was rejected because Comments are not allowed on this entry.

If the biggest problem you have with a CMS is 3 column layout -- either your not looking hard enough or your requirements are rather shallow.  I do agree that the state of CMS is rather sad.

Your problem with Plone, is that you do not understand how to apply a different view to your website.  You were trying to customize the Plone administrative interface.:

  - You should not try to customize the plone admin interface.  It simple to create a folder off the root of your Plone called, say, public_website. 

  - Create a skin using Zope PageTemplates (this could be hard for you as well - not sure if you like ZPT). You have to read up on how to create a skin.  Then register it as say "RetailView".

  - Create a AccessRule in your public_website that when you go into that folder and the URL is a retail url such as <a href="http://mysite.com/">http://mysite.com/</a> that it applies the RetailView.


  - Finally set your virtual host to point mysite.com to the public_website and set admin.mysite.com to point to Plone.  voila.

I think its very difficult to support all the aspects of site building in one application.  For instance, it will be difficult for other systems to handle the translation functionality that LinguaPlone gives you with Plone. Then add EnSimpleStaging which gives you a simple versioning and Staging solution, ouf-of-the-box.

In my world its not about if something is called mambots or if it has 3 columns.  I need to be able to make sophisticated websites that fulfill business rules and can be customized quickly, easily and maintain robustness.   In my experience Plone seems to accomplish this very well although it requires understanding of the system (just like it would require you to understand best practices of interwoven or vignette).

Its not what Plone can do for you

Plone is the livelihood for tens of companies supporting an estimated revenue of approximate 100 million dollars globally.  What are the companies doing?  Why are they not helping with documentation?  Task-oriented documentation would be fantastic contribution to the Plone community in which we could all use to pass to our clients -- if it was quality.  I will save the 'what others are contributing' rant for another time.  But I would like for the community to reach and help work on a area of Plone that is sorely lacking.  Documentation.  Specifically Task-Oriented documentation. 

Documentation that clearly states: Here is the problem, Pre-requisites, Tasks, Post-instructions, Conclusion.  This way people can easily look up specific problems and solve them in a uniform manner. 

The amount of documentation is not the problem (there are 4 books and countless articles, blog entries, online tutorials) its a systematic way of introducing people into concept of Plone and making it better.  We need someone who has endurance and can overhaul our documentation story to the public for Plone.


December 03, 2005

Jon Stahl: Calendar Sprinting

Filed Under:

Looks like the Calendar Sprint crew is off to a flying start.

Cheers to Nate Aune and the Calendar Sprint gang who appear to not only be making some good progress on assessing and improving the state of calendaring functionality for Plone, but taking great day-by-day notes, too.

They're even webcasting.  That's hot.  Could this be a new standard in sprint documentation?

Calendar Sprint Month Mockup




December 02, 2005

Jon Stahl: GIS in Plone With PrimaGIS -- Screencasts Available

Filed Under:

Check out two new screencasts showcasing the capabilities of PrimaGIS, a collaborative web mapping application for Plone. It's an eye-opening demonstration of the power of the Plone platform, and how well it plays with other open-source frameworks.

Josh Livni of Livni Consulting has put together two screencasts showcasing PrimaGIS.  

For those of you not following the open source mapping world, PrimaGIS is a collaborative web mapping application for Plone.  It builds on top of the open-source MapServer application, and uses the Python Cartographic Library (PCL) and Zope Cartographic Objects (ZCO) to expose powerful interactive GIS mapping capabilities inside of a Plone-powered website.

OK, alphabet soup.  Here's the deal: PrimaGIS makes it easy to build powerful web-based mapping applications inside a Plone site.  That's cool. 

And it's a great showcase not only for open-source web-based mapping tools, but it really shows off how Plone can be used to power amazing web-based applications that manage and display content in innovative ways.  It can also suck in data from other GIS repositories -- this is Google-map mashups, only practical and useful, and standards-based.

Check out the screencasts.  It'll be the best ten minutes of your week.


Also worth noting in the rapidly-maturing world of GIS in Plone: WorldKit

November 30, 2005

Jonah Bossewitch: Plone in an Elevator

Filed Under:

livin' it up when your going down

Recently I met a Plone developer whose significant other had no idea what they did for a living, or what the heck Plone was. Without speculating on the communication challenges this couple may face, I also realize that Plone (and Content Management in general) needs to refine its elevator pitch. We need to hone and disseminate this language so that people do not need to struggle to explain the purpose and potential of this software at cocktail parties.

I recently had the pleasure to read Martin Aspeli's excellent MSc dissertation, Plone: A model of a mature open source project, where he proposes a good starting point:

Plone is a content management system (CMS), which allows organisations and individuals to
manage their electronic content, such as documents, files and images, through a web interface, and publish selected parts of their content to the internet or an intranet. (page 8)

I think we might even manage to get the word "manage" out of the definition - maybe "organize and administer their electronic content", but I realize I'm quibbling.  Crucially, this definition makes no mention of application servers, technology stacks, or programming languages.

In my experience it also helps to use examples of "classic" content management, like nytimes or cnn site, which quickly conveys the importance of workflow. From there, judging on the experience of the person on the other end of the conversation, you might mention a less obvious application of content management, like cafepress, or even blogging and wikis. You could even explain how many problems, including e-commerce, or even membership, can be modeled as Content Management Problems, and that Plone is far more than a web-based Contribute.

By this point you have probably arrived at your floor, finished your drink, or bored your new friend to tears.  Don't forget to get their card.

November 29, 2005

Rob Miller: Plone CMF-1.6/GenericSetup support

Filed Under:

A lot of work has been done recently getting Plone to work w/ GenericSetup, an entirely new way to handle site creation and configuration. This entry introduces GenericSetup, and provides an update on the efforts to get it working with Plone.

Currently, new Plone sites are created via a "PortalGenerator" object, which contains a bunch of Python code which performs all of the steps necessary to generate a new Plone site in your Zope instance.  This works, but it's not really ideal; initial site setup is really more about configuration than code.  With this setup, if you want to change the way a site is initialized, you have to first let the regular site install itself, then, using what is mostly boilerplate code, you have to procedurally make modifications to the site that is generated.  All add-on products basically do this; they have an install method that runs code performing all the necessary site configuration that the product requires to function.

At the CMF level, however, a new way of configuring portals was developed, in a product called CMFSetup.  CMFSetup let you specify site configuration options via XML; various XML files would specify the tools, types, workflows, properties, and initial content that should exist in a site.  A collection of these XML files would be called a site profile.  Additionally, the idea of extension profiles was introduced.  Site profiles defined the fundamental site configuration, while extension profiles could define optional additional settings that the site maintainer could apply at any time.

Even better than this, however, was the fact that CMFSetup could also allow for site exporting.  Thus it was possible to manually configure a site using the ZMI, and then use the setup tool to generate the XML files of the site profile when you were done.  Snapshots were also possible, so site managers could capture the site's configuration at any moment, comparing it with earlier or later configuration snapshots as desired.

But what's all this past-tense, then?  Has CMFSetup gone away?  Yes, sort of.  CMFSetup was so useful, that folks outside of the CMF world wanted to be able to use it.  Hence GenericSetup was born, which provides all of the same functionality to plain ol' Zope 2.  CMFSetup is still around in it's vestigial stages, but the stuff that used to be in CMFSetup is rapidly being rolled into CMF proper, and soon CMFSetup will be no more.

Several weeks ago, while in Fredericksburg, VA, at a sprint funded by the Goldegg initiative, I started working on getting Plone to work with GenericSetup.  I've been working on it fairly steadily ever since then, with a great deal of help from Brent Hendricks (thanks, Brent!).  At first we were working against the CMF trunk, which is targeted to become CMF 2.0.  It was realized during this time that the product breakage that CMF 2.0 would cause would be too much for Plone to assume in an upcoming release, however, so instead the CMF 2.0-style GenericSetup configuration code was back-ported to a newly cut CMF-1.6 branch.  CMF-1.6 is intended to stay very similar to the currently supported CMF-1.5, with portal configuration being the only difference.

This effort is coming very well; we now have a solidly working CMF-1.6, with all unit tests passing, and there is a branch of Plone that mostly works with CMF-1.6.  Things are not completely solid yet, but most unit tests are passing, you can add a site TTW, and within another week or so we should have the remaining problems sorted out.  There is a PLIP that formally proposes this to be included in the next major version of Plone, which the framework team will be considering over the next weeks.

Eventually, the goal is that  GenericSetup-based infrastructure will become familiar to anyone who does Plone product development.  The portal_quickinstaller would become just a wrapper object that provides a nice interface around the management of extension profiles.  Plone's migration engine would no longer try to modify pickled objects in place, but instead would export the content to XML and then reimport it.  (Kapil's XMLIO proposal will likely be a key component here.)  Anyone interested in learning more about how this works should take a look at the portal creation code in CMF-1.6 and/or the PLIP 113 review bundle.

November 26, 2005

Jon Stahl: Ajax in Plone

Filed Under:

Some thoughts sparked by the recent Bern Ajax Sprint, including my thoughts about low-hanging fruits for Ajax-ification in Plone.

It's very exciting to read Godefroid Chappelle's write-up of the recent Bern Ajax Sprint, even though I must confess that there are large swaths of it I don't really understand that well.  Which brings me to the questions that are on my mind as a follower-from-afar:

What relationship (if any) is there between Kukit/Azax framework and existing Ajax libraries such as mochikit, scriptaculous, etc.? Does Kukit/Azax reinvent these wheels, or does it provide a lower-level framework within which these libraries can be later used?  Or is this not even a relevant question? 

What I'm really getting at is: what, if any, of the massive amount of Ajax work going on "out there" can or should Plone & Zope re-use?


Ooh... shiny.  Now what?

OK, so we can now do Ajax-stuff in Plone.  What are we gonna do with it?  Here are my top-of-mind ideas, things that I think would have a big impact on everyday usability and performance.

  • Drag-and-drop.  Using Plone would get a lot nicer if the following UI elements supported drag-and-drop via Ajax:
    • Folder ordering
    • Moving items between folders
    • File and image uploads
  • Switch between tab items without reloading the entire page.  E.g., switch from view to edit to properties to sharing.
  • Click-to-edit operations in folder_contents view.  Things like: renaming, changing states, etc.
  • Could pages that are being edited be auto-saved (without destroying the ability to cancel edits)?

What am I overlooking here?  What are Plone's low-hanging Ajax fruits?

Jon Stahl: Usability = Configurabilty = Configlets

Filed Under:

Plone needs more Products with good Control Panel Configlets

I'm really happy to read (and to echo) Andy McKay's call for Plone developers to pay more attention to building high-quality user interfaces that make configuring Plone and its add-on Products easy.

Some people may think of them as meaningless chrome or bling, but in the end they do what users want. They take all the underlying bits and peices and make a simple radio button out of some logical choices.

The code and the technology behind it is probably quite boring to anyone interested in Plone.

It's not boring to me.  A huge amount of Plone's value is the fact that it makes it insanely easy for non-technical end-users to get their work done.  That's because the Plone core has been given a tremendous amount of UI lovin' by Limi, et al.  But unfortunately, many add-on Products haven't been given similar attention.  Alan briefly touched on this the other day:

... Plone's aim should be the Macintonish of Content Management Systems.  We have had blind people give us input, human computer interaction experts, lots of end user feedback.  We absorb this feedback and put it into Plone.  But there is so much more we could do. 

Alan then asks:

What about the usability guys stepping up to the plate?  The usability guys use blogs.  They use Plone.  They use Poll's.  Why dont they work with the authors of the package to make them better?

Usually the usability guys cannot write software.  Why don't they ask plone-users or #plone for help to FIX the usability of a add-on component? Even better why don't Add-on developers ask usability people for help?  

Here's one idea that might help:  Alan wrote a piece a while back called "How to Add Your Configlets to the Plone Control Panel"  But there's nothing that explains how to actually write a configlet in the first place.  Maybe that's why so few products have 'em.  What about a follow-up: "How To Write Configlets For Your Product." 

UPDATE: Maybe I should search the Plone documentation site before I spout off.  If I had I would have found Alan's how-to Add Configlets for own Product's-Settings.

Another usability connection that the San Francisco Plone Crowd might want to look into is AspirationTech's work on open-source usability.  They did their first "extreme usability" sprint for open-source developers in August, and I don't know what they've got planned for the future, but it might well be worthwhile to connect with 'em.

Finally, a question:  which Products do you think are most in need of a usability review and/or some configuraiton options?



Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: