Plone

published Nov 03, 2021

This is here to serve as contents for the atom/rss feed for Plone, also read by planet.plone.org.

Brain storming Plone features

published May 02, 2012, last modified May 03, 2012

Brain storming Plone features for the plone.com website

More info about PLOG 2012: http://www.abstract.it/abstract-en/initiative/plone-open-garden-2012/

What features does Plone have?

  • web based
  • familiar folder structure
  • in-site editing, no need to have a preview separated from the back-end editing
  • role or group based access control, or nested
  • customizable, local workflow
  • versioning, check-in/check-out
  • ZODB versions: undo
  • search: full text and live search
  • navigation: orderable items, readable urls
  • SEO optimization
  • HTML filtering
  • Pluggable authentication
  • strong commercial eco system
  • strong add-on eco system
  • flexible theming, skinning, templating; you can theme basically anything; getting easier; also some standard themes now
  • commenting
  • accessibility; a task force to have a new look at this may be formed
  • multilingual; UI (and content with an add-on)
  • GPL, open source, no license costs
  • Plone Foundation as copyright holder so not a single company; multi-vendor
  • works on multiple platforms
  • python
  • good security track record
  • persistent urls that stay valid
  • caching support
  • clustering (ZEO)
  • RelStorage (Oracle, Postgres, MySQL as backend)
  • cutting and pasting folders and documents
  • WYSIWYG editor
  • metadata, Dublin core
  • content types
  • COPE, multichannel
  • mobile ready
  • html5 ready
  • personal dashboard
  • WebDAV, ftp access, XML-RPC
  • built-in RSS indication
  • any search can be turned into an RSS feed
  • collections (document sets)
  • tagging, taxonomy
  • PDF generation (with add-ons)
  • portlets
  • customizable layout
  • event logs
  • buildout
  • content rules engine
  • mailing system
  • blogging
  • content management
  • image scaling/handling
  • inline view for (some) files you upload
  • getting faster with each release
  • sub sites
  • create your own forms (add-on PloneFormGen)
  • geo tagging
  • document indexing, full text pdf search
  • possible external search integration, e.g. SOLR
  • documentation
  • (community) support
  • local user groups and events
  • complete application stack
  • cross-browser compatibility
  • automated tests, continuous testing
  • there is an upgrade path to newer versions
  • framework team who reviews new ideas for the core
  • good release management
  • modular packaging
  • mature
  • you can migrate to Plone from several other platforms, there is a basis for that
  • translated into dozens of languages out of the box
  • external integration
  • community events, conferences, code sprints, Plone Tune-Ups
  • code quality
  • extensible content types through the web (dexterity)
  • turn a folder into a photo gallery
  • out of the box product plus platform
  • personalization, user profiles, user folder
  • contextual search: search within a folder
  • ratings, twitter, facebook (with add-ons)

If you are interesting in improving this list, structuring it, contact Matt Hamilton for access to a Google Docs document where we can collaboratively edit it.

Matt Hamilton: plone.com

published May 02, 2012

Talking about writing content for plone.com during the PLOG 2012.

More info about PLOG 2012: http://www.abstract.it/abstract-en/initiative/plone-open-garden-2012/

Goal: multilingual gateway to Plone for decision makers, managers, recommenders, press. Feature list. Mostly not software. Super cached for outstanding performance. Experience should be very user-focused.

Messages: Plone is active, pervasive, actively getting better, open source done right. Focus points: quality, security, testing, ease of use by content managers.

See idealware.org report Comparing Open Source CMSs: WordPress, Joomla, Drupal, and Plone: http://www.netsight.co.uk/blog/open-source-content-management-systems-a-tale-of-two-reports

We have ideas for the basic site structure.

What is of interest to a developer may not be interesting for an end user or decision maker. On plone.org as non-technical user you are lost. We should ask feedback from end users.

When a client of Abstract picked Plone, they still missed something like plone.com to explain to some of the decision makers what Plone actually is, compared to in this case Joomla.

For new developers it would help to have a document explaining Plone for Joomla developers or Wordpress developers, using their terms, their vocabulary, comparing technologies.

Gartner would not investigate Plone, because Plone is not a company.

PLOG social demos

published May 02, 2012

A few demos about social stuff in Plone.

More info about PLOG 2012: http://www.abstract.it/abstract-en/initiative/plone-open-garden-2012/

Guido Stevens: plonesocial demo

This is not yet on PyPI.

  • plonesocial.activitystream: portlets and a view to show activities (like object creation) in the site, plus microblog if it is installed
  • plonesocial.microblog: post twitter-like updates
  • plonesocial.suite: combine this in a bundle that you can add in your buildout.

Matt Hamilton: our approach to social

http://belron.net wanted some social stuff. We installed Intracore, some stuff we usually add to intranets; not yet open source, waiting for some legal stuff and some refactoring. Technically it is separately installed in MySQL for performance reasons.

Not every website needs top performance. So some adapters that allow you to choose a back end that fits your needs would be good.

Blindly adding some social sauce does not work. People need to want to use their intranet of their own free will, otherwise they will just avoid it after a while. It should help them with their tasks. It needs to fulfill business goals.

If Plone is lacking in the social area (or any area) it can be because no one has really needed it so far. But some people may be avoiding Plone because it does not support all this stuff out of the box yet (or with an add-on). It is the same for example for supporting CMIS. But see https://github.com/infrae/collective.cmisbrowser.

Plog Wednesday morning

published May 02, 2012

What are some of the topics in the Plone Open Garden in Sorrento?

More info about PLOG 2012: http://www.abstract.it/abstract-en/initiative/plone-open-garden-2012/

Guido Stevens: a social approach to Plone

No real social networking support in Plone currently. Web 2.0 is less state driven, more event driven. I tried approaching this with ZeroMQ. Downside is that you need to setup extra services outside of Plone. You need to store this somewhere. You need to integrate it within Plone. You can pull it in using a view, but can you search it?

For a client I have built a activity/discussion stream on the front page, which was basically just plone.app.discussion under the hood. You can do similar stuff with favorites/likes. Let's just see how far we come with this low hanging fruit, just using standard content types. For thousands of users this may not scale and you may need to use other solutions outside of Plone, but that is not the initial use case we are after. A plone.social suite.

Matt: we have something similar at NetSight. Danger may be performance: it only starts begin interesting with enough users, but then performance may become a problem.

Fred: make storage flexible, so for small cases you can just annotate the Plone Site root, and for larger cases you use a separate Data.fs

Matt: plone.com

Our main website is http://plone.org. It tries to appeal to developers, decision makers, users, everyone. Last year the Plone Foundation acquired http://plone.com. We want to use this to show people why they should use Plone. It could be just twenty pages of content, translated into various languages. Leading this effort are: me, Mark Corum, Carol Ganz.

Two things to do here:

  • A feature list of Plone. The old hands take a lot of things for granted, like the permission system, or being able to drag a folder somewhere else. Also, go through these features and see whether they are interesting for developers or end users.
  • Show case sites. Show some good examples that give a good idea of what you can do with Plone.

Maurizio: Case management

A bit of a business buzzword currently. Gathering information about a case (health, jurisdictional, etc), determing what it is. Plone probably has 90 percent of what is needed already out of the box.

Matt: blogs

Make Plone blogging a bit more like Wordpress blogging. Just have a nice overview with a big button 'Add blog post'. Sometimes it is just terminology. Maybe make a product with a skin that turns Plone almost into WordPress. You don't have to patch Plone every week for a new security fix. Usually for our customers of course we already have Plone, so using a blog in Plone means we do not have to add an extra technology stack.

Guido: Plone Innovation Awards

An idea that may be used in the Plone Conference in Arnhem. Have an awards website where you can nominate new technologies or solutions that have surfaces in Plone. Maybe use twitter for voting. Have a ceremony at the conference.

Giampiero: Google Docs

Google Docs is not always an acceptable solution, but sending around Word files edited in Windows and Mac and Linux via email is also not always working; I have seen lots of problems, like not being able to view it anymore. Something like that would be good in Plone. There is some xmpp stuff from Jarn.

Python Users Netherlands

published Feb 16, 2012

PUN meeting 15 February 2012.

The Python Users Netherlands (PUN) meeting on Wednesday 15 February 2012 was organized by Maykin Media in Amsterdam.

Remko Wendt, Maykin Media: Logging with Logbook

(I missed the first part as I was buying books at the nearby American Book Center, related to the ABC Treehouse where this PUN meeting is hosted; they sponsor this location.)

Logbook is a handy alternative to the standard logging module.

It is easier to disable debug logging and make it hardly take any time, contrary to the standard debug logging.

You can define a MailHandler that mails you at most 3 times per 5 minutes for the same error.

FingersCrossedHandler: only output debug level info when there is a problem .

You can use Logbook in combination with Sentry. This gathers log messages from several applications in one place, with statistics. See http://www.getsentry.com

See the Logbook documentation.

Sylvain Viollon, Infrae: Good and bad code

[Hurray: Sylvain is wearing an Emacs shirt. :-)]

I do open source because I want to reuse existing code: code that works, that helps me build my project. For me good code is reliable code. Professionally I want a high quality application that works for my customer.

Bad code is code that I can't reuse, because it is broken or it doesn't do what it claims to do.

Writing good code is writing code that works and fits my needs. Publish your code on PyPI so I can use it. Test your code, verify that it works in real life, under real conditions. Do not write tests only to get 100 percent test coverage. Handle errors and test them. Write code that is easy to test.

Respect the standards that are applicable to your application, for example the WSGI standards. Be polite to other parts of the system that you interact with. Actually look at the standards, instead of just guessing what will be the correct way.

Don't write fantasy code, code for hypothetical use cases that are never actually used. Keep it simple. Refactor your code later if needed.

Write documentation. Write simple documentation to get started. For me, doctest is not good enough for simple documentation. Maintain a changelog that is easy to find.

Listen to your users, so they can use your code. Update your code to make it usable by them or delegate that role to someone who wants to do it. Or better: make your code extensible so your users can be independent of you and continue development without you needing to watch it or spend time on it. Use dictionaries instead of if-statements [not sure how that would look, Maurits]. Create setuptools entry points. Use the Zope Component Architecture (which in essence is a nested dictionary). Do not EVER hardcode anything.

Audience:

  • Remco: be iterative; start small and release it. Your package does not have to be perfect the first time around and contain everything. Do not let doubts about how good your code is hold you back.
  • Good code is code that does just one thing, instead of a package that does eight things out of which just one thing is relevant for me.
  • Use PEP8, please.
  • Make easy tasks easy and make hard tasks possible.
  • If I can choose between code hosted on Launchpad and code hosted on github, I choose github.
  • 100 percent test coverage is still better than 80 percent test coverage. Sylvain: sure, but your 100 percent may have tested that your code can correctly divide 2 by 2, but you may still miss the more important corner case of dividing by zero.
  • If you write documentation but do not keep it up to date, you should be shot.

Reinout van Rees, Nelen en Schuurmans: Laptop setup: explicit automation

Do not just fool around. Collect everything. It it is not version controlled, it does not exist. I have my stuff on github: https://github.com/reinout/tools

There is a directory with some tiny shell scripts that probably each save four of five seconds of work per time (e.g. editignores.sh: svn propedit svn:ignore .). Also python scripts.

Symlink your dotfiles (.bashrc, .pypirc, etc): pip install dotfiles. Separate: ~/.emacs.d: Google for the starter kit.

I have a lot of packages on github, bitbucket, pypi, etc. But my dotfiles? Maybe not. I use a private repository on an own Linux box, like ssh://vanrees.org/~/git/Dotfiles, ssh://vanrees.org/hg/preken. (Yes, I do need to have my ssh key somewhere.)

I counted: I have 31 git, 22 subversion and 9 mercurial checkouts. I use checkoutmanager so I do not have to do git pull, svn up, etc in each directory. Also, checkoutmanager out checks if I have changes that are committed but not yet pushed to the central server. It's on PyPI and bitbucket: http://pypi.python.org/pypi/checkoutmanager

Backups. You should automate this, too. I have mail that is coming in on an own server and is automatically copied to gmail. Use git/hg/svn. Use the Time Machine when you are on the Apple Mac. Synchronize with Ubuntu One. Backup your own server when you have it, for example with backupninja.

Write a blog entry on your setup, so you can Google it the next time you need it.

You can also put a gpg encrypted file with secrets (passwords) somewhere in a version control system.