Plone Code Swarm

Chris “cbcunc” Calloway has put together two great video visualizations of Plone’s community activity over the past eight (!) years.

Check out:

Plone core code swarm — a visual representation of the evolution of the Plone core from 2001 to 2008.

Plone collective code swarm — same idea, only this time it analyzes the universe of Plone add-on products

It’s really amazing to see the fireworks that surround major code checkins, and to see the moment in time when legendary Plone contributors like Martin “optilude” Aspeli and Hanno “hannosch” Schlichting (just to name two) first appeared on the scene. 

(Eagle-eyed viewers will spot my name flicker around the edges of the Collective from 2006 onward.)


Plone Code Swarm from Chris Calloway on Vimeo.

Manage Infomration Overload by Blogging

Michael Gilbert has an interesting notion: becoming a knowledge blogger is a good way to practice managing information overload.

The experience of “information overload” has many causes, among which are these three important ones: (1) We don’t know what to do with the information we are getting. (2) We don’t know how to filter and select amongst all that information. (3) We don’t know how to influence the flows of information themselves.

Blogging addresses all three of these causes of the “information overload” experience.

The operating principle here is this: Most of the inbound flow of information that we have to deal with is unclearly tied to our productive work. If we can shape a small element of our productive work so that it gives us the practice of rapidly discerning the value of various types of information, in a manner that is easily actionable, then we will quickly refine our sense of purpose in a way that improves our filters. By learning how to decide whether or not to blog about something and then what to say about it, we become ruthless in our culling of information and in our selection of sources.


It’s a counterintuitive notion, but I couldn’t agree more.  I’ll add the notion that blogging regularly is really great practice for developing a personal, authentic and *brief* online writing style. 


Flexible external redirects in Plone: a brainstorm

Sam Dorman of the League of Young Voters just tickled my funnybone with a really nice idea for how to elegantly handle external redirects in Plone.  I think this would be really easy to roll up into a nice user-friendly product that would have tremendous, wide-ranging re-usability.  I’d love your thoughts on it.

The problem

Lots of online activism campaigns (like the League!) use generic content management tools like Plone for their main website and supplement it with more specialized online advocacy tools like Democracy In Action.  It’s a winning combination that takes advantage of inexpensive, easy to use, best-of-breed tools.

The problem is that you can wind up with some messy URLs.  For example, Democracy In Action URLs can look like this:

https://salsa.democracyinaction.org/o/315/my/donate.jsp?supporter_my_donate_page_KEY=someVariable

Ugh.  Not very user friendly to stick into an email, a tweet or a blog post.  What Sam really wants is to have a redirect URL like this:

http://go.theleague.com/someAction/someVariable

That will automatically redirect you to the DIA page, with someVariable appended.

“Why not just do this with Apache rewrite rules?” I can hear you asking.  Because Sam’s not an apache administrator, and doesn’t know how to write a regular expression (and neither do I).  We want these to be manageable by people with Plone-user skills, not server-admin skills!

My vision

As Sam was telling me his story, a little vision appeared in my mind’s eye.

I imagine an “external redirects” control panel in Plone, where you would be find a screen that would let you add lightweight “redirects” that would have the following attributes:

  • Redirect name (the “someAction” in the example above)
  • Redirect destination (the external URL you’re redirecting to.  Variables to be allowed with things like $1, $2)
  • Enabled/disabled checkbox

I’d see this as a DataGridWidget or something similarly quick and easy.  A site could have quite a few redirects to manage on a single screen, we’d need to use KSS well to avoid too many page reloads.

Practicalities

Plone’s current “Link” object supports some very basic external redirection, and we could extend that as described at PLIP 126, but I’m not convinced that this is a very ideal approach.  The use case I’m trying to cover is about “placeless” adminstration of lots of links, not administering one-by-one links that are scattered within the content hierarchy.  Also, implementing this functionality with full-fledged content objects creates some problems with viewing vs. editing mode, which I think can be avoided with a centralized, approach based on a utility tha could be overriden or extended.

The other concern that would have to be addressed with this approach is namespace collision.  I think that could be avoided by doing a quick catalog search to make sure your proposed actionName doesn’t conflict with an existing content object (KSS validators to the rescue!).  We might be able to entirely avoid namespace collision by letting you define a subdomain in the control panel (e.g. go.mydomain.org), and if possible push that into VHM.

We’d probably need to sanitize variables so that this doesn’t allow any weird injection attacks.