links for 2006-11-28

  • Cyclic web feeds are not for current news or “fresh” content. They can though be used to “replay” existing content. For example if you have previously published a 10 episode podcast – that tells a story from start to finish – you can create a cyclic web f
    (tags: RSS web cool)

Needed: Comparison Reviews of Third Party Plone Products

It’s a lazy post-Thanksgiving weekend, and so it seems like a good time for me to make a list of tasks I’d like to put out to the Lazy Plone Web. (Before you go all “scratch your own itch” on me, though, remember that my blog is a much a set of notes to myself as to all of you, so this post is as much a “to do” list for me as it is for all of you.)

Specifically, I’m thinking about head-to-head product comparisons. As we all know, Plone has a got a lot of add-on Products. And there are quite a few common scenarios for which there are multiple add-on Products. This richness is definitely a strength, but it’s also a weakness — especially when there are very few good direct comparisons amongst similar products.

Here are a few clusters of products I’d like to see reviewed together:

  • Forums: Ploneboard, Gossip, ZForum, SimpleForum, NunBB
  • Blogs: CoreBlog2, Quills, EasyBlog, SimpleBlog
  • Workgroup Collaboration: mxmWorkgroups, TeamSpace, GrufSpaces
  • Filesystem Storage: ExternalStorage, FilesystemStorage, BlobFile
  • Email: PloneGazette, LindeMerkur, EasyNewsletter, ELetters, Listen, PloneContactFolder
  • Composite Page Layouts: CMFContentPanels, CompositePack
  • Photo Galleries: Plone out-of-the-box, LightboxJS, ATPhoto, FriendlyAlbum

(I’m probably forgetting a few products, and maybe even a few clusters — what’s missing?) The basic elements that I think would comprise a good multi-product review include:

  1. Compare the technical architectures of each product, especially identifying any significant strengths/weaknesses that might not be obvious to less experienced users.
  2. Compare the features of each product, preferably in a simple matrix format. (I’ve got the rudiments of a blog feature comparison in wiki format here. Feedback/contributions most welcome!)
  3. Assess the strength of developer & community support for each product. For example: does the product have a single author, or multiple contributors? Is there a track record of releases? Is the product widely deployed? What kind of future can we expect for the product?
  4. Given that many of these products cover somewhat different kinds of use cases, what are the situations where this product is a good choice? What are situations where another alternative might be best?

Are there elements that you think are missing?

Now, where to publish such a review? Martin Aspeli and the third-party products team are hard at work updating Plone Software Center to have much of this functionality for individual products (see here for details), but there’s as yet no plan to include multi-product reviews in PSC. (Hey, maybe that’s a good idea!) In the absence of that, I’d recommend writing up multi-product reviews as a tutorial in the documentation section of Plone.org. Tutorials are designed for complex, multi-page documents, so this seems like a good fit. I’d call a multi-product review something like “Review of Products.”

A final note: reviews are by definition subjective, opinionated documents. A good review is fair, balanced, and gets the facts correct, but is also not afraid to have an opinion. That’s what comments are for.

Eben Moglen: Software and Community in the Early 21st Century

Eben Moglen’s keynote address at Plone Conference 2006, “Software and Community in the Early 21st Century” was hands-down the most inspiring speech I’ve ever heard in my life.

Watch Eben Moglen's Plone Conference Keynote Address

In just over an hour, he traced the connections between the free software movement, the One Laptop Per Child project, and the past three hundred years of modern industrial economic development, and placed our work into the larger context of the ongoing journey towards freedom and equality for all people. There was hardly a dry eye in the standing-room-only house when he was done.

Thanks to my good friend Grace of Versant Media, Eben’s talk is now available for your online viewing pleasure at YouTube.

Now is probably a great time to thank Eben for all he’s done over the past 15 years to advance free software, and to thank Jonah Bossewitch, Paul Everitt and Ian Sullivan — and of course Eben — for bringing us the magnificent gift of this talk. I’m so pleased to be able to share it with the world.

Share it with someone you love who wonders what you do and why it matters. :-)

(A high-resolution version of Eben’s talk will be available for downloading from Archive.org under a Creative Commons license in the next week.)

In case you were wondering…

Borat is very, very funny and in very, very poor taste.  But, like most of the audience, I laughed almost continuously when I wasn’t cringing.


What does it say about our current national psyche when a film featuring two homophobic men wrestling naked in a hotel ballroom makes us laugh until snot drips from our noses?


links for 2006-11-18

Squeezebox

Just about two months ago I took the plunge, bought a SlimDevices Squeezebox network music player and finally committed to digitizing my music collection. Here’s a two-month report.

First of all, a quick rundown on my setup. I’ve got:

  • A Squeezebox 3 digital music player, connected to…
  • A pile of unremarkable cheapo stereo components in my living room
  • A garden variety PC running Windows XP in the office
  • A 500 GB external hard drive connected to the PC

Why did I choose the Squeezebox in the first place? Couple reasons.

  1. I have a lot of music, and I wanted to digitize it once, without data loss, and in an open, non-proprietary format. So using an iPod as my primary music storage device was right out.
  2. My computer is fairly far from my stereo, and running either speaker wire or ethernet cable from computer to stereo wasn’t feasible.
  3. I didn’t want to spend money on a NAS (network attached storage) device, or clutter up my living room with a computer. (I briefly thought of buying a Mac Mini, but $600 was a bit rich for my blood.)

The $300 Squeezebox (plus another $220 for a big ol’ external hard drive) was an affordable solution that would let me store and play high-quality digital music with few compromises.

So, how are things going, two months in?

Continue reading

Sprint Wisdom

Every once in a while, if you’re lucky, you get to be part of an event that seems simple, but isn’t. An event that appears effortless, but is in fact based on a subtle combination of deep insight and hard-won experience. An event that quietly encodes a massive amount of tacit wisdom bubbling just beneath the surface.

That was how I felt when I attended my first Plone “sprint” last month.

A sprint (I don’t like calling them “code sprints” because a good sprint has a lot more going on that just the writing of computer code) is one of those deceptively simple-seeming events whose story deserves to be told more widely.

The sprint was invented by Tres Seaver from the Zope community back in 2002 as a way to drive forward the development of Zope 3. (It may well be based on the longer-form “hackathon” model pioneered by the OpenBSD community.) Since the Plone community is closely tied to the Zope world, the concept of sprinting quickly diffused over to us. The first Plone sprint was held in Berne, Switzerland in February 2003. Since then, there have been about 25 Plone sprints.

Here’s the gist. I think a lot of the details get lost in translation, because like so many experiences, the description of the is really no substitute for the experience itself. Let me know in the comments what I’m getting wrong.

A bunch of programmers, often of widely varying skill & experience levels, come together, possibly along with folks who can write documentation, speak to feature requirements, address usability issues, etc. They’re all volunteers, donating their time to the community.

The sprint starts with a short all-hands meeting coordinated by a sprint coach, who lays out the goals and helps folks break the problem into chunks and to organize themselves into workteams. There’s usually a couple of hours while folks get setup with the software and tools they need to be productive, and perhaps a presentation or two to bring people up to speed on specific bits of technology.

The teams go off and work, each with an experienced leader, break down into even smaller groups of 2-3 people, and start working away. At the end of the day (or at some interval) there is usually another all-hands meeting where folks report out on what they’ve accomplished. Cheers all around. A sprint can last anywhere from a day to a week, and can be dedicated to one very specific topic, or run in a more “open-space” fashion where many loosely related things are addressed in parallel. A sprint can be as small as 3-4 people, and as large as 60-70. Sounds pretty simple, right? Well, yes. And no.

Ok, let’s break it down. A sprint is all-volunteer. It’s not a consulting gig. Some sprint organizers, especially folks organizing sprints to tackle very specific, complicated problems, will sponsor the travel costs of key attendees. But nobody’s getting paid for their time. Sprints are flat, non-hierarchical events (like open-source itself!) and that’s important.

Sprints are strongly rooted in the concepts of “extreme programming” (or “XP). That’s why we work in pairs (or occasionally, groups of 3-4). Extreme programming teaches us that having two sets of eyes but only one pair of hands on the keyboard results in better quality work. It’s not an approach that works for everyone, and it’s certainly not a panacea for software development, but for the talented, highly social generalists that tend to be attracted to open-source web application frameworks, it’s a great fit. More importantly, working in small teams, especially teams that mix experienced folks with newbies, results in a huge amount of hands-on teaching and learning.

As you might expect, sprints are highly social events. Along with conferences, they’re among the few face-to-face events where the globally-distributed Plone community comes together. And technology, as we know, is no substitute for beer. As bread is broken, the social ties that are the lifeblood of any productive community are formed. Sprints are part of the glue that binds us together.

The corollary is that sprints are one of the most powerful tools the Plone community has to bring new folks into the tribe. All you have to do is show up. Because of the open format for most sprints, you’ll get a chance to be part of a team, work with more experienced folks, share what you know, and achieve tangible results. You’ll have a great time, and leave feeling capable, confident and passionate. And even more that refreshing the social connections among existing community members, creating a smooth way to bring new folks in the door is what has allowed the Plone community to remain cohesive even as it’s grown exponentially over the past five years.

The Plone community has had sprints all over the world, and in some pretty fantastic locations. A castle in Austria (twice). A ski cabin in the Alps. A decommissioned military base on a Norwegian island. New York City. Vancouver. Vienna. Houston. My hometown of Seattle. :-)

What impressed me the most about seeing a sprint in action was the way so many small elements came together to produce an experience that was in many ways larger than the sum of its parts. The model has a lot of room for innovation, but certain core things you just have to get right in order to produce that magic blend of productive work and intense, immersive, peer-to-peer learning.

“The software is an artifact of the community.”

One of the memes I heard on the breeze at Plone Conference 2006 was something I heard attributed to Paul Everitt, co-founder of Zope, incoming Plone Foundation board chair and all around nice guy. (Who needs to blog more often, hint, hint!)

The software is an artifact of the the community,” Paul is alleged to have said. Damn. I wish I had thought of that. It’s not only short, memorable and true, it’s true in that “illuminating a deeper and easily-overlooked truth” kind of way.

Plone, the software, is the artifact of Plone, the community. Plone doesn’t exist in a vacuum. It the collective product (and gift!) of a community of people. Plone, the software, reflects the skills and passions and energies of Plone, the community. (It probably also reflects our collective neuroses and dysfunctions as well!)

Paul’s observation invites us to see open-source software through the lens of the communities that create it. It suggests that to really understand Plone, you need to spend the time to understand the Plone community as a community.

Plone has a history and, as I’m beginning to learn, a culture. Martin Aspeli’s master’s dissertation is a great social history of Plone through mid-2005, and Martijn Faassen’s talk at DZUG 2006 is a really informative longer-term history of Python, Zope and Plone. But of course, most history is oral history, and I learned a ton about where we’ve been (and where we might be going) from talking with Paul, Alexander Limi, Joel Burton and others at the Plone Conference. That’s one of the many, many reasons that in-person gatherings are so important for vital communities.

More importantly, if you care about the future of Plone the software, you need to think about taking care of Plone the community — and the individuals and organizations that make up that community. Plone the software will continue to evolve and succeed only if the community of people that make and use Plone are happy, healthy and passionate about what they’re doing. That means making sure they have good projects, sustainable employment, opportunities to share ideas with each other (and to borrow good ideas from elsewhere), and ways to be recognized for their contributions.

So, how are you feeling this morning?

Me, I’m feeling pretty darn good this morning.  I slept really well last night.  Maybe it was the new pillow.  Or maybe it was something else.

Then, I awoke to a glorious sunrise here in Seattle, with great election news all across the map

All in all, a “morning in America” kind of feeling.

How about you?

Thoughts on FeedFeeder

I’ve been checking out Zest Software’s new product FeedFeeder.  It’s pretty darn cool.  Basically, it’s a simple ATOM aggregator for Plone… with a twist: it turns the aggregated items into first-class Plone content objects. 

This is big.  What it means is that you can finally use Plone as a real content aggregator, and store the content for long-term archiving, remixing, etc. 

Of course there are some obvious rough edges.  (That’s ok, it’s still in alpha.)  Here’s what I saw.

  • FeedFeeder only parses ATOM feeds. To me, this seems like a pretty major barrier to a lot of real-world use, since ATOM isn’t nearly as widespread as it deserves to be, ahd there’s still a lot of RSS 2.0 out there, and since feedparser handles
    it, I don’t see why FeedFeeder shouldn’t be able to cope pretty easily.

  • Right now, you’d need to manually set up a cron job in order to auto-refresh feeds. I know this is something of a Zope limitation, but it’s still kind of a barrier to deployment.  I wonder if it is possible to implement something along the lines of PloneRSS and set a “freshness time”, and update when the page is called.  Crude, but perhaps user-friendly.  Or else we could take advantage of Zope 2.10′s clockserver (but not until Plone 3.0).

  • It would be really handy to be able to choose the default workflow state for aggregated items.  Right now, it appears to set everything to public draft.  But a site administrator might want to have everything published, everything private or to put stuff into a custom workflow state for reviewing.

  • Couple of minor nits:

  • The list of aggregated items appears to show dates in European format (dd-mm), rather than obeying the date format defined in site_properties.

  • The list of aggregated items links directly back to the original, rather than to the copy in Plone.  That seems counter-intuitive.

  • FeedItems could use an icon that is not a folder.

I can’t wait to see FeedFeeder continue to mature.  Big cheers to Jean-Paul, Rocky and their fellow Zest-ians! 

UPDATE: As usual, I am a day late and a dollar short.  A lot of this stuff was worked on at the recent Seattle Sprint.  Not merged back to the trunk yet, but that should happen presently.   And they have some good roadmap ideas, too!

A Few Plone Conference Memories

Before they escape my head, I wanted to share a few things I’ll remember from Plone Conference 2006:

  • The din of 350 people introducing themselves to each other.  The even louder sound of those 350 people telling each other how they found their way to the Plone community.  The nearly deafening sound of those 350 people telling each other what they wanted to get out of the conference.

  • Watching a live video feed of Martin Aspeli in Second Life while sitting in the room watching his presentation in person. 

  • Seeing 350 Plonistas assemble for a group photo in under 10 minutes.  I wouldn’t have believed it possible.

  • Sean Kelley’s bravura Lessig/Hardt style talk on PHP vs. Plone.  The only talk I attended in full, and the only one that ended with cocktails.

  • Finding “Plone Rules” scrawled on the bathroom chalkboard at the Lock and Keel.  I heard similar reports from Hattie’s Hat as well.  Several of my friends mentioned to me that they’d “seen Plone in Ballard.”   Plone knows how to party. 

  • Watching Jackie Arasi’s eyes grow to the size of dinner plates when I told her that I grew up in Port Jefferson, Long Island.  Turns out we grew up about two miles apart and went to rival high schools (but we didn’t quite overlap in time).  The response of an unnamed third party upon hearing of this coincidence: “Man, what do they put in the water there?”

  • Eben Moglen’s passionate, inspiring keynote talk.  Holy cow.  What an amazing gift.  Thank you, Jonah, Paul, and Ian, for making it happen.  And thank you, Eben, for doing all that you do to make open source possible.

  • The way so many folks pitched in to help keep the whole conference moving — Ann & Jesse from NPower Seattle, Dave, Kelley, Sean, JonB, and Andrew from ONE/Northwest, Eric & Lucie from Six Feet Up, plus Josten, Joel, Alan and Alma, Richard, Wayne, and all the other folks who took on tasks large and small.