drupal
We're getting very close to completing the application for the Knight Foundation on our Knight Drupal Initiative proposal.
Out of curiosity, I figured I'd run it through Wordle and see what turned up.
The Knight Drupal Initiative proceeds apace. Last week, two additional projects were approved to be forwarded along to the Knight Foundation, and there is a third strong proposal under consideration. If you are a Drupal developer, and/or have an idea about how to combine your love of open source software with your desire to change how we communicate, get a proposal in.
We are in the midst of refining our proposal prior to submission to the Knight Foundation. It's been a useful process, as it has forced us to take a step back from our thoughts and ideas and find a method of communicating them to a general audience. This post gives a summary of what we are thinking; if you are so inclined, please leave any feedback in the comments.
Need: What journalistic or public need will the proposed project address? How was the need identified?
Schools, non-profits, community organizations, and traditional media have all struggled with how to update their approach to their mission through effective use of social media. Over the last few years, while mainstream media outlets have made forays into these areas (albeit with limited success) smaller organizations have been constrained due to financial and technical barriers. Our Local Publishing Platform seeks to eliminate the technical barriers and minimize the financial barriers.
The Aggregation Hub seeks to eliminate another issue affecting smaller organizations ranging from local papers to community-run advocacy groups around varying issues: frequently, these organizations have limited knowledge about similar work being done by other groups. The aggregation hub, at its most basic, would provide a centralized resource for groups with a common mission. Over time, the aggregation hub could serve as a springboard for greater collaboration. With services like Twitter, we have seen the power of loose connections, and how in specific circumstances these types of lightweight connections can lead to more meaningful exchanges.
These needs were identified in a variety of ways: primarily, we observed common patterns of community involvement and development as part of our own work, as we are actively involved in several different online communities. Second, countless people – from clients to other social media professionals to heads of community organizations – identified a subset of these needs as issues they were struggling within their own organizations. As we talked with different organizations doing a wide range of work – from organizing resources around School-Based Health Care, to running online magazines for K-12 students, from supporting Action Research as part of Teacher Professional Development, to developing Community Published Journalism platforms, to building out a news and services directory to support agriculture among rural communities in Southeast Asia, a set of common needs emerged: people wanted to publish easily from a variety of sources, and collect these posts in a central place. Taken individually, these are all interesting projects; taken collectively, they have the potential to shift how we view “news,” and who has a right to “make” it. While these ideas have been around for a while (depending on how you want to look at it, they can be sourced to the advent of the Social Web or, arguably, to the advent of the web browser as Tim Berners-Lee first envisioned it, the promise has yet to materialize. Sophisticated, easy to use tools remain beyond the reach of many grassroots communities. This project aims to meet that need.
Proposed Project: Briefly summarize the project for which Knight Foundation funding is requested. Relate the project to the needs identified above.
As described above, the needs can be condensed down into two discrete categories
- Local Publishing Platform: A more efficient means of communicating.
- Accepts input from web and mobile devices;
- Seamlessly handles images, audio, text, and video;
- Easy to install, maintain, and use;
- Can support simple group blogs to more structured channels or magazines;
- Can support publish-on-demand alongside community rating and editorial review.
- Regional Aggregation Hub: A more efficient way of creating community knowledge.
- Low barrier to entry – participating groups do not need to make significant changes to their current procedures;
- Over time, accumulated content forms a searchable archive of information contributed by different community members and organizations;
- Provides a means of both highlighting the work of individual organizations, and amplifying the voice of loosely connected groups;
- The strength of loose ties -- shared content in the same “space” creates an initial connection that can be used as a starting point for more comprehensive collaboration.
Within both sites, various methods of “visualizing” a community can be employed. This visualization can be rendered based on geography, content, tags, users, frequency of posts, or any combination thereof.
In our proposal, we request funding to build these two resources. The Local Publishing Platform will address the needs of individuals and organizations as they communicate their message to a broader audience. This site will be available as a downloadable platform from Drupal.org, and will have a full suite of documentation describing how to install, modify and use the site. Our goal is to build a base profile that can be installed within the space of about 15 minutes (an average time of a standard Drupal install). This initial install will contain some sensible defaults to support several common publishing scenarios.
The second site, the Aggregation Hub, will be made available in the form of a site recipe. Like the Local Publishing Platform, all the code needed to build this site will be freely available for download from Drupal.org. The documentation will describe how to install and configure the site. As the expressed needs of the Aggregation Hub cover a broader range of functionality than the Local Publishing Platform, documenting the base install and additional use cases will allow us to build a tool that will be useful to a larger audience.
Both of these projects can be replicated and installed by any organization that wants to use it. To emphasize: this is not software as a service, and it is not a tool that an organization needs to rely on a third party to provide or support.
I have a recurring pattern when implementing a project. I start simple. Then things get complex. Then I start overthinking, overdesigning, overengineering things. And they start getting really, really cumbersome, awkward, and unmanageable.
I’ve done this with every development platform I’ve used. WebObjects. Rails. PHP. WordPress. Moodle. Drupal.
Yes, even Drupal.
So, again, I need to remind myself.
Work WITH the tool.
NOT against it.
Or, if you’re working too hard, you’re doing it wrong. If things are designed properly, using the most appropriate approaches, more often than not things become quite simple. Easy, even. If something isn’t easy, it’s being done wrong.
If you’re writing a bunch of custom code, you’re probably heading off on a blind alley. Chuck the custom code and find a shared framework, module, plugin, etc… that will do the job. The less code you write, the less to debug and maintain.
I’m working on a website for an agency, where I’m building a system to manage the data and daily operations of a 100-person organization. I’d started writing custom code to embed snippets of processed data. I was writing code to chunk data into reporting periods, grouped by staff member, client, and any number of other criteria.
But - Views already does that. When combined with other modules like Calendar to provide the date-based chunking. And some other helpers to expose UI widgets and data selectors.
So, by working WITH the tools at hand, I just dumped a bunch of silly custom code. I’ll need to refactor a bunch of stuff, but it will work much better in the long run, and take MUCH less to maintain.
The biggest thing I have to do at the moment is refining the data entry process - I need to find the best date selector widgets to make the process as painless and error-free as possible when in use in the field.
I’ve been having a fair number of spam comments get tgrouh the filters on my blog. I’ve tried Akismet. I’ve tried SpamKarma2. I’ve tried Akismet AND SpamKarma2. Still, I get over a dozen spam comments published on my blog every day (and hundreds successfully killed by the filters on a typical day).
It doesn’t sound like much of a problem - a dozen or two spams to deal with every day - but it makes keeping a blog with open comment posting more tedious than it needs to be. I shouldn’t have to fear leaving a computer for extended periods of time, nor dread returning to connectivity after a couple of days to sift through the crap that got through (and hopefully not accidentally nuke any valid comments).
So, it’s time to give Mollom a shot. I’ll try it for a week to see how it works out. It’s free. It works with WordPress (and Drupal, and several others) and claims to be quite effective.
Update: wow. I know it’s waaaaay too early to tell, but in the hour since enabling Mollom, I’ve had ZERO spam get through. 26 attempts blocked already, and no moderation needed. That’s a VERY good sign.
Update 2: jinx! as soon as I posted the first update, 3 spamments got through. doh…
An Overview
If you have an interest in new media, new approaches to traditional media, online publishing, community work, or a basic interest in how to use the web to communicate within a community, you need to stop reading this post and check out the Knight Drupal Initiative.
Okay. Glad to have you back.
This initiative, funded by the John S. and James L. Knight Foundation, aims to support Drupal-based projects that lower barriers to participation in community development and new media. This program has several distinguishing characteristics, including:
- A transparent community review process -- all projects are publicly reviewed, with monthly reviews/meetings taking place via IRC, and these IRC sessions are logged and made publicly available.
- The program is ongoing, and accepts rolling applications. In other words, if you are a Drupal developer and have an idea that will change the way people interact with/make news, you need to get your thoughts together, and submit a proposal.
Also, take a little time and review the existing proposals -- there are currently three proposals slated for review. As mentioned before, this is an open review process, and anyone with constructive feedback can participate in the review process.
Finally, all interested parties can play a role in the monthly meetings when proposals are publicly reviewed. The next meeting is slated for August 7th, at 3:00 PM Eastern time.
Our Proposal
We submitted a proposal in early May. The full writeup goes into more detail, but to summarize, our proposal aims to simplify the process of community building -- and support grassroots media -- in two ways: first, by creating a powerful, flexible platform that can be up and running within 10-15 minutes; and second, by creating a platform that multiple organizations can use to share information about related work on a regional, national, or international level.
At the risk of stating the obvious, these tools will be freely available for any and all to use. In our proposal, we also dedicate time to document how to use and extend these tools. Our goal is to build and document a resource that can be used by anyone.
We are incredibly happy to announce that our proposal has been vetted and approved by the Drupal community, and recommended to the Knight Foundation for consideration. In other words, we have passed the first hurdle. Now, we are working directly with representatives from the Knight Foundation as we complete our official proposal. As things progress, I'll post updates via the blog.
All of our Knight Drupal Initiative posts will be available here; with their own RSS feed.
This is number two in an at least three part reflection on my Educational Technology and the Adult Learner course that I completed last week. I’m saving the ‘what i learned as a teacher’ post for last, so that I have all the grades finished and a full reflection is possible. For this particular (and probably shorter) post, I’d like to sketch out some of my tech design ideas.
You can now visit the website, I had to remove two students information (at their request) but got permission from the other students to share their quite excellent work with you all, and hope that it in some way contributes to the ongoing discussion of teacher training, reverse curriculum usages and my own discussion on rhizomatic learning. See http://edugrids.org
Drupal - the platform
The website was built in drupal six. I’ll post a copy of the build here on the website in a couple of weeks once i’ve cleaned it out for anyone who thinks it may be of help as a start for their own educational websites. It was designed as a site for a single class, with all the navigation intended to serve one class in particular and in no way designed to interact with the outside world. I kept the module selection fairly vanilla, just the usual suspects
-
CCK
-
Views
-
pathauto
-
token
-
image
-
fckeditor (with aspell add on, by overwhelming student request)
-
userplus (excellent funnymonkey module)
Design approach
I went for an ‘add don’t take away’ design approach to this website. In the first iteration, the students had access to three navigation buttons across the top -
- my work (view of all of an individual student’s work),
- my planning page (rebranded my account page, included personal descriptions, course goals and a literacy plan)
- reflections for review (a view of recent blog posts, sorted by day then by how many comments they had received)
On the side navigation they had the created content button which offered them book, blog and image options. There was an additional sidebar which had the syllabus in it, and eventually grew into the reverse curriculum document, essentially a book with completely open editing rights.
A few other options were added, the contact button and browse by learner (mostly for me) but the students found the simplicity of options and navigation… well… actually they didn’t say anything about it. Which I take as the highest compliment. They were all working in it from day one, and other than two students who registered with email addresses they couldn’t access from inside our classroom, things went pretty smoothly.
URLS (pathauto/token)
I included the day, week, author name and raw title in each of the urls. I just found this the easiest way for me to figure out where i was at a glance of the url and also to use that to sort the content. It’s easy enough to sort in other ways, but i find url sorting to be very tidy… personal preference I guess.
Weird date thingy on the student projects page
You’ll notice on the student projects section that all the pages start with a number followed by a time. I did this (on the spur of the moment) in order to allow the students to choose their presentation day at the same time. They ‘added a child page’ to the book page and were instructed to use the number representing the day of the week followed by the time they wanted. Worked like a charm… not elegant, but… waddaya gonna do. It makes a really nice reference page AND made it so that they could contribute simultaneously.
chat
I used the chatroom in order to give students a way to co-create knowledge during the presentation of other students. If you flip through the pages, you’ll notice chat records. I didn’t, sadly, end up using the chatroom installed on the site. It seemed to work fine, but i just didn’t feel like i knew it well enough to trust it for student interaction… so i used the edtechtalk chatroom.
timeline
I put this together pretty quickly, and spent the vast majority of the time worrying about the syllabus and a very small amount of time worrying about the site itself. It could easily be adapted for multiple classes, but I just wanted a sleak simple interface that would give me my few requirements. Simple user interface. Encourage blogging comments. Allow for co-creation of textbook. Allow for student connections via tags. Allow for personal descriptions via profile. Allow for easy browsing.
overall lessons
My instinct with this build was to stay as simple as humanly possible. No frills, and nothing that could break or confuse the students. Want video? upload it outside and copy and paste the code in. Want editing functions? you’ve got bold, a few more (and i broke on the spelling… wow… did they ever want a spell checker). Some of the students really seemed to identify with the site and the work that they were doing. Most of that was them, some of that might have been my teaching… the website did it’s job… stayed out of the way and structured the habitat within which the real work got done.
upnext - my lessons as a ‘person who stands up and tries to help people learn stuff’.
Over on the Infinite Thinking Machine, Wesley Fryer has a blog post about creating a Netflix-style website for readers, with an emphasis on COPPA compliance for readers under 13.
Here's how I'd go about building that site using Drupal.
The main functional requirements:
These requirements are pulled and paraphrased from Wes' post; any that I have added are italicized.
- COPPA compliant -- no personal data collected from minors without the prior consent of an adult;
- Readers can rate books they have read;
- Readers can create lists of friends; these "friendships" can be one way, or reciprocal;
- Readers can write reviews on books; these reviews can be shared publicly, or privately between friends;
- The site should recommend books to readers based on their likes and dislikes of other books;
- Readers should be able to see what their friends are reading, and any reviews/recommendations of their friends;
- Readers should be able to keep a reading log on the site; this reading log should have the ability to be public or private;
- Readers should be able to form public and private groups/communities.
There are other features that will need attention, of course; for example, a site like this will require a detail-rich user profile page, and pages for recent recommendations, featured books, featured readers, etc.
Building the Site:
As a start, in addition to Drupal core, we'll need the CCK, Views, and Organic Groups modules. These modules will provide the main functionality to power the site. Other modules will be discussed in context below.
For user profiles, we'll use the Bio module.
For book ratings, we'll use the VotingAPI and the FiveStar modules.
For friends, we have a few different possibilities, and the best choice for the specific site would require some module evaluation. The shortlist: Buddylist (the original module of this type in Drupal, which we have used and liked in the past); Buddylist2 (an upgrade of Buddylist that looks promising, but it is younger code and we have yet to try it); and the Friend and Notice modules (also newer than Buddylist. Another possibility is the User Relationships module, that came out around the same time as Buddylist2. The "best" solution here will require some analysis of the existing code, cross-referenced against some precise descriptions of the desired functionality. This is also a place where the right design and UI is critical.
Views of friends recommendations, reading lists, etc: the Views module.
Reading log: CCK, with access control via the Coherent Access module.
Book reviews: CCK, with access control via Coherent Access
COPPA: this requires some custom development. We actually have some COPPA code that we worked on a while back that we need to dust off, clean up, and release. At its most basic, we need to branch the registration process, with all users under 13 directed to get their parent, or (alternately) to enter their parent's email address. The specifics would need to be vetted with legal counsel.
Content Recommendation: this is where things get interesting, and we have a few options. The shortest route could be dusting off the Content Recommendation Engine. We could also get some basic recommendations by looking at content a reader has reviewed favorably, looking at other readers who have reviewed that item favorably, and then drawing from their lists of recommended items. Also, creating lists of similar items when looking at both books and book reviews would be a nice feature to have. In short, content recommendation would also require some custom development, with the Content Recommendation Engine, the Similar by Terms module, the Similar Module, and the Memetracker all having code that could be useful/relevant for this project.
Public and Private Communities: Organic Groups, with Views to customize how content is presented within groups.
Module List
A list of the modules mentioned in this post:
http://drupal.org/project/og
http://drupal.org/project/views
http://drupal.org/project/cck
http://drupal.org/project/bio
http://drupal.org/project/votingapi
http://drupal.org/project/fivestar
http://drupal.org/project/buddylist
http://drupal.org/project/buddylist2
http://drupal.org/project/friend
http://drupal.org/project/notice
http://drupal.org/project/user_relationships
http://drupal.org/project/coherent_access
http://drupal.org/project/cre
http://drupal.org/project/similar
http://drupal.org/project/similarterms
http://drupal.org/project/memetracker
Wrapping Up
This is a quick overview. As with any implementation, the details would need to be clarified to the point where we could generate solid design mockups of the key screens. But, given what I've seen of the functional requirements, Drupal would provide an ideal platform for this functionality. Building this site in Drupal, from open source components, and documenting the process would allow any organization who wanted a site like this to create it; or, several schools could join together to use a common space.
via Sumit Kataria on the oauth list:
I am very happy to announce that Drupal’s OAuth module is now ready to use. Right now it just acts as server because we don’t need client support at this time, Client implementation will be done soon by the time release of Drupal 7 as ServicesAPI in Drupal 7 will be needing it. Endpoints for Drupal are:
REQUEST URL : http://www.example.com/?q=oauth/request
AUTH URL : http://www.example.com/?q=oauth/auth
ACCESS : http://www.example.com/?q=oauth/access
At this time Services API is necessary to use OAuth (also it is the only module which is gonna use oauth as well - so not a big deal). This module also provides a test browser to produce OAuth tokens (whole Drupal way using multi-page form). Right now only PLAIN-TEXT signature method is supported but soon support for other methods will be added as well.
I’m slowly learning my way around Drupal, so this is rather good encouragement to learn faster…
See the announcement for more details and links.
Well… i’m finally getting my teeth back into opensim and finding that there are a couple of things i’d like to get built over the next couple of months. We’ve already gotten a good start on the automated installer for opensim, but what i’d really like to do now is attempt an integration with drupal. I’ll be keeping my running requirements list for that integration on the openhabitat project page and will hopefully pop a few updates into here from time to time.
What I need
I need two things.
- I need a good drupal/opensim programmer. Someone familiar with both platforms who can spearhead the drupal integration (or, if you like opensim integration).
- I need some sense that there are other folks in the British Higher Education community who would find this integration compelling for an application to the emerge community for extra funding.
Why would we need this?
Opensim is an opensource Multi User Virtual Environment. It allows you to have much of the functionality from something like Second Life, and you can host it on any server you like, or, if you like, on a desktop in your classroom. The one issue, is that if you would like to tinker with it a little, you currently pretty much have to do it from the command line on the server. What I would like to see is an integration with a content management system (my preference is drupal, but the code could easily be repurposed) so that a teacher can do stuff like track users and install different ‘presets’ for training purposes.
Why would we need this — slightly more technical explanation.
There are currently two flavours of opensim, the ‘grid server’ and the ’standalone server’. My work with opensim over the last 9 months has led me to believe that the standalone server is far better scaled to the average educational use… but, sadly, much of the work towards creating a user interface has tended to side with the larger grid server installations. Standalones are more manageable, and provide an easier entry point for the ‘average’ person and really allow for alot more functionality.
so… if you’re interested and interested British Higher Ed person (I’m looking at you emerge community or anyone else for that matter) … just send a comment here and I’ll pick up your email address and get back to you. Same goes for if you are that drupal/opensim person out there. If you don’t want your comment posted, no worries, just indicate in the title, and I’ll delete it after getting your email address.

Photo thanks to Bern@t’s Flickr stream.
Cole Camplese recently had a provocative post about open design that has me thinking about a few things that might frame some of the ideas that I think are key to imagining a loosely joined, open, and mashable community for teaching and learning.
I am thinking more about how openness should be built into the design process. Not really instructional design per say, but design in general … in my mind learning design is looking at the notion of building learning opportunities in a more broad sense than more strict instructional systems design.
I think this idea of building openness into the design is at the heart of re-imagining how we think about the ways in which we learn. It’s a great idea, re-kindles for me the importance of imagining an aesthetic for the distributed model, allowing people to conceptual the space visually (which moves back towards thinking about an open instructional systems design). In fact, Ernst Jünger’s novel The Glass Bees has been useful in this regard:
At first glance, the glass hives were distinguished from the old pattern by a large number of entrances. They resembled less a hive than an automatic telephone exchange…what if what I have been observing was not so much a new medium as a new dimension, opened up by an inventive brain; it was a key which unlocked many rooms. For instance, what if these creatures could be used—as they are used in the world of flowers—as messengers of love between human beings….? (129, 140)
This description of the hives as a loosely joined dimension of exchange that is decentralized and automatic, yet potentially capable of connecting humans though messengers of love is a fascinating image that frames the imaginative space of Jünger’s novel as remarkably prescient in its subtle elegance. He frames a kind of proto-naturalistic system of exchange premised on nature, and the model, as Bruce Sterling suggests in the introduction to this novel, such a sentence describing the glass bees as less a beehive than an automated telephone exchange “uncannily anticipates the scattered structure of the internet” (ix)
And this image of the beehive (or nest given the natural state I am thinking of) is sticking with me because I think it offers a powerful way to think about how we might design these spaces that are premised more upon openness with no one center, but rather a distorted, naturalistic sphere with innumerable entrances and exits. This is the metaphor I have been looking for to explain why I think an application like WPMu might be understood as an example of open design, and Drupal not so much.
I’m almost sorry to open up this old can of worms (weel not really
), but it’s something I have been trying to explain for a while now, and I can finally articulate what I was trying to say at Northern Voice this past February durng the application banter. Unlike Drupal, WPMu is like a huge beehive with no center, it’s scattered and unruly like the internet. And that is one of its greatest strengths. Think about it, anyone with a blog on the system has their own unique sub-domain they can enter through, not unlike a cell in a beehive.
This model of a system that is both porously open and de-centered suggest a different, almost naturalistic, element of design. Loosely joining a series of cells into a honeycomb, not with wax but with rss glue. So someone using a WPMu blog has the ability to be part of a community, yet at the same time have their own unique space that they control entirely. It strikes me as very different from the nodal logic of most CMSs, which are very much pointed to a center, and driven by the logic of representing information in structured boxes. This design is more about efficiency than effect and in many ways it is not a natural organization of information, rather it is rigid, with angled corners that smack of a man-made apiary.

Image used thanks to pintxomoruno flickr photostream.
I know this may seem needlessly polemical and hard on an open source CMS like Drupal, but I think there’s a larger point here. In fact, I am trying to think about why a much more de-centered design that is scattered and affords the individual user far more control over their own cell may be more akin to the internet than a centralized node of control/entry that characterizes most CMSs—they can’t help it, it ’s in their DNA.
De-centered, distributed publishing is a flow of information we are not used to, it’s anarchic, somewhat confusing, and difficult to follow unless you are in the “natural” flow of things. Yet, that is the key here, once in the stream (and the idea of a stream here is a much larger aesthetic and design shift that the internet as undergoing more broadly for a number of years now) the trace of the arguments, discussion, and ideas become that much more naturalized to the flow of information in a community while at the same time keeping the power of design (think themes and widgets here) as well as the overall control of the space in the hands of the individual.


