Cms

Fabricating Freedom

Originally posted on theploneblog.org Free Software Developers at Work and Play I haven’t posted much here lately, but I have been writing. I recently finished my first semester as a doctoral student in Columbia’s school of journalism and one of the papers I completed draws directly on my experiences in the Plone Community.  A few years ago I remember being struck at how different open source development was from what I (and presumably others) imagined it to be. I kept pitching human interest stories to journalists, ones that might emphasize the playfulness, the sprinting, and the organizational experimentation, but got very few nibbles. So, I finally wrote some of this up myself before it all fades from memory: Fabricating Freedom: Free Software Developers at Work and Play The paper was for a wonderful class this semester at the New School taught by Paolo Carpignano (The Political Economy of Media - here is the syllabus). The class was all about the shifting relations between fabrication and communication, or more colloquially, work and play. We opened with Marx and Hannah Arendt and closed with Yochai Benkler and danah boyd. The piece I wrote is personal and anecdotal, but reflects on all that our community has taught me about free software, free culture, organizing, consensus building and the day to day politics of software development. enjoy.

Plone University

Originally published on theploneblog.org Open source software as pedagogical scaffolding, and F/OSS ecologies as a dialogical knowledge communities. This is a fun post recognizing the role of open source software and breaking routines in learning new programming patterns and paradigms. 7 Reasons I switched back to PHP after 2 years on Rails

Rails was an amazing teacher. I loved it’s “do exactly as I say” paint-by-numbers framework that taught me some great guidelines. I love Ruby for making me really understand OOP. God, Ruby is so beautiful. I love you, Ruby. But the main reason that any programmer learning any new language thinks the new language is SO much better than the old one is because he’s a better programmer now!

Asymmetric Competition and the CMS

Originally published on theploneblog.org

Beyond the CMS - What are Plone’s greatest future competitors? I recently encountered O’Reilly’s asymmetrical competition meme and think its a good jumping off point to discuss the differences between Plone’s perceived and actual competition. First, let’s catch up to where we are today:

Web 2.0 … The Machine is Us/ing Us

The opensource CMS horserace has seemingly settled on a few players, and without provoking any religious wars, I continue to be impressed with the richness and maturity of all of these projects. But here in the educational sector there are rumblings which I think will spread beyond our corner. In our world ‘C’ stands for Course, not ‘Content’, and the big players are Blackboard (which swallowed WebCT), Sakai and Moodle. Here too, competition may come from surprising corners, as the game itself changes beneath us.

Honest Software

Originally publihsed 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?

Plato and the Laptop

SocratesWell, midterms have come and gone, and somehow I managed to complete my two papers on time, somewhere between San Francisco and PloneCon in Seattle. In my class on the Social Impact of Mass Media I was really impressed with Peter’s Speaking into the Air, and wanted to revisit the Phaedrus. While reading it I was making connections to read-only/read-write culture, and wanted to explore that connection to Plato’s analysis of writing. Also, his conversation has everything in the world to do with my thinking on the effects of Technology on Epistomology itself, and Memory in particular. Still, when I sat down to write the paper, I kept getting drawn back into conversations around OLPC, until I realized that’s exactly what I should be writing about! Plato and the Laptop: Prescribing Educational Technology for Society’s Ills

One Python Per Child

Originally published on theploneblog.org The $100 laptop project has chosen Python as the primary development language for The Laptop. I was lucky enough to get my hands on an olpc developer board, and have spent a little time learning about the platform and project. While there are a few issues I have with the project, it is really an thrilling moment in educational technology and after holding the hardware in my own hands I actually believe this vision might truly manifest. The main reason I am writing about this in the Plone blog is I have learned that the olpc’s application development language of choice is Python!

New York State of Plone

Originally published on theploneblog.org Preliminary report on the Big Apple Sprint July fourth has come and gone, but the fireworks set off at last week’s sprint are still visible. The sprinters arrived at Columbia University bright and early, Wednesday morning. (note to all future sprint organizers: tell the caterers to skip the decaf and double the regular order). About ~13-15 sprinters were present, but we also coordinated remote sprints with Austria (+5 hours ahead) and Utah (-2 hours behind) meaning we were basically sprinting around the clock. We all used the freely available, plone-based, OpenPlans service to manage our collaboration and everyone found the software to be extremely reliable and easy to use. The sprint began with introductions and detailed demos of the tools and products people had been working on and were most proud of. Sprints are difficult to plan in advance since the skills and interests of the attendees are not decided until the final roster shows up. A diverse range of interests were represented, but common themes rapidly emerged

Death and Taxonomies

Originally published on theploneblog.org A forray into drupal 4.7’s taxonomy system and what Plone can learn from it. I have been moonlighting on a Drupal project and paying close attention to their taxonomy system. Drupal’s taxonomy/category/tagging system was completely revamped for their 4.6->4.7 release - a release close to a full year in the making, analogous to the Plone 2.0->2.1 “minor” point release. The site I have been working on, theicarusproject.net has a very rich collection of content, and one of the primary motivations for the migration is to get a better handle on the classification system - noboday can find anything on the current site. They were committed to Drupal long before I arrived, so I dug in with the hope of learning something from the contrast. PHP bashing aside, there are alot of interesting things happening in Drupal land. I hope to follow up this post with a few more cross-pollinating nuggets, but for now I will focus on their taxonomy system. Taxonomies in Drupal are considered the heart of the system, and the essential modules ship with the core and cannot be disabled. Most URLs in Drupal are effectively queries, much like our smart folders (actually, for anything aside from anti-chronological display order you need to install the Views module) but the display results are all instances of content with matching vocabulary terms. The absence of folders and containment initially confuses many administrators, and renders breadcrumbs largely useless, but does allow for the creation of sophisticated information architectures. Taxonomies are managed top-down, not bottom-up, and have a separate administrative interface for their creation and management. Once the taxonomy vocabularies are created, specific terms can be added to these vocabularies without having to create content associated with those terms (in contrast to a bottom-up category system, like the mediawiki). Category Management - Vocabulary Listings: vocabulary_listing Druapl supports multiple vocabularies, which can each be associated with one or more content types. Vocabularies can be flat, one level deep, or N-levels deep (hierarchical). They can be fixed or free form (meaning content authors can make up new categories upon content creation). The core tagging system does not support the creation of tags per-user, per-object - only per-object. Category Management - Add a Vocab: add_vocabulary Category Management - Add/Edit a Term: edit_term The Drupal taxonomy system is very powerful, but its power is very open ended and does not necessarily lead users towards a uniform experience. The confusion around categories and taxonomies is best exemplified by the category module meant to consolidate and simplify taxonomy and navigation, but there is no consensus on its incorporation into the core. A large number of modules are built around taxonomies. Core Drupal supports roles, but no groups (organic groups is a popular access delegatoin solution, but it is incompatible with other access restriction modules - so you have to choose one), and does not have a notion of containment (ie folders). So, for example, one way to restrict editing access is by enabling the taxonomy access module. Another useful module is the taxonomy browser which allows for advanced search against unions/intersections of vocab terms. Category Browser: category_browser Once vocabularies are created, and terms added, content can be associated with these terms: content_creation Working on this site really drove home the value in separating the navigation axis (section) from the thematic axis (keywords), and separating these dimensions was easy to accomplish with the taxonomy/category tools built into drupal. In particular, once the scheme was developed, managing vocabulary lists (even hierarchical ones) is intuitive, albeit slightly clunky. I further chose to introduce a free-form tagging dimension for member contributed posts which may or may not fit into the fixed taxonomy. This is similar to myspace and facebook allowing for free-form hobbies and interests, and banking on a large enough user base that there will be overlap and potentially interesting intersections. section_vocab keywords_listing The system still does not allow for the intuitive modeling of a many-to-many relationship, which I continue to think is the litmus test which will mark of a truly powerful taxonomy UI. There is still quite a bit of programmer know how involved in setting up this system so that it operates the way that content administrators expect, and arguably there are too many degrees of freedom introduced by such a general purpose modeling capability (if you think about it, a tagging system can essentially allow web administrators to model relationships which used to require programming custom applications against an rdbms). Nonetheless, Drupal’s taxonomy/category/vocabulary system definitely captures a few use cases more elegantly than Plone’s current core does. But perhaps the real lesson is the importance of not mixing navigation space and content space, which can be kept separate in Plone, but is all too easy to conflate (in Drupal too!). Note: most things I describe in this case study could have been accomplished within core Plone - I think the most interesting things here are the administrative UI for multiple vocabulary management, the different types of vocabularies, and how central they are in the construction of a Drupal site.

There is no folder

Originally published on theploneblog.org Do not try to bend the folder – that’s impossible. Instead, only try to realize the truth. Then you will see that it is not the folder that bends–it is only yourself. Tagging seems to have spurred a growing amount of research on categories and classification. A recent paper by Clay Shirky, entitled Ontology is Overrated: Categories, Links, and Tags directly challenges the desktop metaphor which currently underlies much of Plone’s UI. To be sure, it is certainly possible to model the connections that Shirky describes using topics, smart folders, and a disciplined use of keywords, but the metaphor is critical for designing and intuitive system, all the way down to the icon. I have recently been working a bit with Drupal, and their handling of this problem is worth checking out.  The core taxonomy module, combined with its corresponding menuing systems (menu, sitemenu, taxonomy menu) provide a great deal of flexibility in this regard. Organization is going organic.