Cms

The Me Generation

isomorphic surprises: stickies, tasty, and the importance of user contributed content I have been thinking alot about tagging lately, especially how a complete tagging system - comprised of user-item-tag triplets, is isomorphic to rdf’s subject-predicate-object triplets. It is amusing to think about how egocentric Web 2.0 is - The subject is always me. Web 2.0 might be made of people, but not just any people - Just the most important one in the world. Today I had a fun time trying to explain to people on irc the power and importance of user contributed content annotations within plone. Crucially, user content annotations are per-user, per-object, and in many cases a single user might want to annotate a particular object with more than one annotation. Interesting annotations can come in many flavors. There are free form notes, fine grained annotations (anchored to particular phrases - think msword trackback - or geometrical coordinates on the target - nice for image annotations), keyword annotations (aka - tags), etc ect. There many problems that can be solved with custom per user content annotations, including quiz and poll results, per student answer submission, and lately we have been working on allowing users to clip audio and video by annotating start and end times on media objects. It is important not to confuse per-user tagging with DC:Subject - the dc metadata is shared across all users (like categories in the wikipedia) and in that sense, is global. While we are on the topic of tags, it is useful to talk about the vocabulary that drives the tagging. Vocabularies can be fixed or free, individual or collaborative, and personal or shared. All of these variations are interesting in different cntexts, and have to do with whether or not I see your tags, or if we each are developing our own ontologies. In educational technology annotations are a big part of the problems we are trying to solve, but there are tons of use cases in the world at large. Additionally, a high performance, robust tagging engine can power personal content organization, like gmail’s labels. Which brings me to the products we have been developing at CCNMTL. We have been using PloneStickies, a general purpose content annotation framework, in production for over a year now. Built using AT References, it allows us to create per-user AT objects connected to the target object. AT Schema Annotations won’t do the trick here since, like DC:Subject, these annotations are instance-wide. Z3 annotations might work, but by building AT derived stickies, we pick up search, workflow, permissions, and the richness of AT. This allows us to quickly and easily develop custom stickies, like the StickyClip. PloneStickies has a ways to go, but the basics work great. It is not yet super useful out of the box, since the portlet it ships with only allows users to attach a single free form StickyNote to the target object. But it is great to develop applications with. It ships with with some super snazzy css stickies, complete with colored/resizable/title-barred/drop-shadowed/roll-upable/transparent-when-dragging notes, which can preserve their own x-y position and state across sessions and never fall off your screen. It now supports attaching multiple stickies to a target, but does not yet provide a mechanism for the target object to place the stickies itself. At first we thought we could implement a Plone tagging solution using this framework - just create a StickyTags made out of keyword fields, and voilà - plonr. Trouble was, since tagging is such a symmetrical model, its tough to build an efficient zodb implementation (for me, at least) that can handle all the querrying we wanted to do. Enter the tasty microapp and the PloneTasty proxy (about 90% done). Tasty is a stateful (sqlobject) turbogears component that exposes a REST api, ships with its own snazzy ajax tagging client, and can be used across frameworks, languages, and platforms. We are even hoping it can help make the world a better place. So StickyTags (which doesn’t exist) and PloneTasty are two implementations of the same concept, with StickyTags being the AT/zodb implementation and PloneTasty/tasty the new microapp design (mashup architecture?) we have been working on and are pretty psyched about. And if you act now, you get the knife set and the lint remover too, for just 3 easy installments.

Faster, Better, Cheaper

Originally published on theploneblog.org In this episode, Sean Kelly at NASA compares j2ee, rails, zope/plone, turbogears, django… cue the laughtrack Okay, this is a long one, but it rivals any comparison matrix: better-web-app Plone comes out shining, although arguably it compares apples to pomellas.  Someone with the chops should really cut this baby up into chapters, cause its  a win for dynamic  languages over j2ee, and python, and Plone to boot. (spoiler: he uses the zmi for “hello world” and ArchGenXML for the time tracking app).

Plone in an Elevator

Originally published on theploneblog.org How hybrid economies help keep software honest. Last week’s Plone Conference was truly phenomenal - provocative, intense, and fun (big thanks Jon and ONE/Northwest!). One of the most amazing things I experienced last week was alluded to in Eben Moglen’s keynote (to be posted soon)- the manner in which this community has managed to bring together people who don’t ordinarily interact. Throughout the breakout sessions, I continued to question dividing us up according to our respective vertical sectors - Corporate, Non-Profit, Educational, and Government. As I have begun to write about elsewhere, systems like Plone can help balance the flow of communication and power between people in a variety of situations and settings. Content, collaboration, and community are contexts which exist across sectors, and the tools we all need cross over as well (sometimes with slightly different tunings). In many ways lumping together all the folks involved with education is odd. Universities are microcosms of cities, and their IT needs are as diverse as the the rest of the world. However, there are still structural and social similarities that form the basis for common language and culture. After engaging with my fellow educators a the educational panel session and the BOF session I understood the value of us sharing and strategizing, beyond just commiseration. But through it all, there was one thing that united all of the different attendees - a piece of general purpose software called ‘Plone’. It is worth dwelling on this mixture of participants and the varying forces they apply to the software. Lessig and Benkler have both been writing a great deal about hybrid economies lately, trying to understand their rhythms, and how we might be able to design them to succeed. They have been writing generally about the “commercial economy” and the “second economy” (sharing, social production, etc), but the lessons may cross over directly to our community. I realized in Seattle how beneficial diversity can be for software production. Most of the consultants using Plone are there strictly for traditional market considerations - to make a profit. They are helping to keep the software honest. Unlike some other open source projects which exclusively service the educational world, Plone is not sheltered from the raw, harsh forces of the commercial market. This means that some of the people using Plone use it because it helps them get their jobs done efficiently. Others have called this “productivity arbitrage”, and it is a concept that may hold the key to designing successful open source projects. It is challenging to imagine working backwards and trying to design a software ecology which captures the hearts and minds of such a diverse following. No small task. As Rheingold said “There’s been an assumption that since communism failed, capitalism is triumphant, therefore humans have stopped evolving new systems for economic production.” - Is Plone’s ecology an example of one of these new systems, and if so, what are our distinguishing characteristics?

Plone's Value Proposition

Originally posted at theploneblog.org The theory underlying Plone’s personal-ad campaign. At the marketing workshop in Vienna, one of the exercises we conducted was an informal poll of the personality traits and cultural values that people associate with the plone community. Motivating this exercise was an exploration of the recent Plone personal ad, which came out of the New Orleans Symposium. This anthropomorphizing of Plone was meant to embody the idea that software has a personality, and that since writing code is form of creative expression, the values of the author will inevitably be expressed in its features. So, for example, I will be suprised the day that Adobe easily allows for the assignment of Creative Commons licenses to content created using their tools, but no one is surprised by the fact that the Mediawiki wiki-engine deafualts to this license. If you accept this position, then selecting the right CMS is more than a matter checking off features on a matix. It becomes essential that the vendor’s values are consistent with the client’s mission. In the case of an open source project, the “vendor” is really an entire ecology, comprised of of the community, the software, and the processes and structures which bind them together. Here are some of the values that members of the Plone community currently associate with this project:

Adventures in Wien

I apologize for this study blog’s late start - I just returned from the Plone conference in Vienna, and the internet availability was spottier than it should have been. At the conference I presented a talk which relates closely to the topic of this seminar, entitled Platonic Wikis and Subversive Social Interfaces. People seemed very interested in the subject, and a common response was that these ideas were obvious when stated, but people were very happy to hear them concisely articulated and formulated. I will be posting my slides up on the conference site, but in the meantime, here is a working link to them: html ppt Photos and links from the conference should start appearing under plonecon2005 over the next few days. I will be catching up with ss05, blog postings, and sleep this weekend.

Techno-Bio:

I have an extensive background in software architecture, design, and development. Prior to joining the center, I was the lead developer at Abstract Edge, an interactive marketing firm which serviced both non-profit and corporate clients. I was also a senior developer at MaMaMedia, a children’s educational Web site. I am an active open source contributer whose technical interests include Linux, Python, and Content Management. [This blog was started for MSTU Social Software Affordances, and this post was written as an introduction].