RSS

RSS Redux

9:30 -- Re-read Brian Lamb's blog post.

9:33 -- Poked around Stephen Downes' site, reading over some of the documentation on Edu_Rss. Really, I'm hoping to find an OPML file. Bingo.

9:40 -- Create a database on educon20.org.

9:42 -- Go to Drupal.org -- grap a copy of the 5.7 codebase, and the following modules: FeedAPI, FeedElement Mapper, Views, Views Bonus, Tagadelic, and CCK. At a later point, if nothing blows up, I'll probably add in Similar Content.

9:50 -- untar code. Realize I'm curious how long this will actually take, and resign myself to getting less sleep than I originally hoped. So it goes.

9:59 -- upload code to the server. Crack a beer. A good one.

10:04 -- bring site live.

10:08 -- in the process of installing the modules, realize I have forgotten to download the SimplePie parser. Oy.

10:16 -- create settings for the imported feeds, and create taxonomy categories the individual posts.

10:23 -- test import with a test feed. It looks good.

10:30 -- import opml file

10:35 -- first attempt at opml import bombs. Time to increase the memory allotted to php scripts in the settings.php file. Bumping it up to 40M ought to do it. If that doesn't work, I'll break up the opml file into multiple parts. At this point, I congratulate myself on the wise choice made at 9:59. A lesser beer would offer less solace during these times of peril.

10:42 -- second attempt bombs again. Time to try a third attempt, and see if it bombs in the same place. Don't know if I'm running into a php timeout, or a malformed xml file.

10:45 -- third attempt. Fingers crossed.

10:46 -- bombs out at close to the same place. In all likelihood, a php timeout issue. Small curses.

10:57 -- finished editing the original opml file into 4 smaller opml files. The first one imports with no issues -- 100 feeds down. Now trying the second opml file, which is larger than the first.

Note: I'm doing all this via a wireless connection, which is rather silly. When I am uploading files, I prefer to use a wired connection, as there is less chance of a transfer getting munged.

11:06 -- the second opml file bombed -- edited it into two smaller opml files. Trying again now.

11:13 -- the first two opml files have imported cleanly. The third is importing now. After this, two more to go.

11:22 -- opml import complete. Now, to begin the process of importing the feeds.

11:23 -- first cron run begun. In Drupal, there are many wonderful things that occur during a cron run. It is a sign of my general disintegration that I now have an active interest in things that occur during a cron run. During the first cron run, nearly 1000 posts were imported from the various feeds.

11:26 -- second cron run begun. An additional 2000 posts imported

11:30 -- third cron run begun.

11:37 -- fourth cron run begun.

11:45 -- create default views for imported feeds, and keyword directory.

12:06 -- install Similar Terms module -- this is a lightweight content recommendation engine.

12:25 -- for the last 20 minutes or so, I've been lost reading content.

12:40 -- set up a cron job to run automatically. This will serve two main purposes: import new posts, and index the site so that the search actually works. It will probably take about half a day for the site to get fully indexed; after that point, the full text search will work pretty well.

1:00 -- clean up this post. Wonder why I didn't go to bed earlier.

As of this writing, a little over 3.5 hours from when I started, there are nearly 7500 posts imported from around 500 different feeds.

Thoughts on Sharing Lessons

I’m writing these ideas out quickly -- there are sure to be holes in this, and gaps in this reasoning -- please point them out in the comments.

For some context on this post, see these two threads on Dan Meyer's blog.

Users working with online lessons will generally fall into at least one of the following categories:

  1. People searching for lesson ideas (probably the majority)
  2. People already creating content on their own blogs (a growing number of folks, but still a very small percentage, compared to people in category 1, or even teacher-bloggers)
  3. People looking for a place to create content (people who want to create blogs, etc -- I have no idea how many people fall into this category, but I’d imagine that if people, particularly younger teachers, saw the benefit they would have some amazing things to contribute)
  4. People who will find lessons on another site, edit/revise those lessons for use in their class, and republish the updated content on their own site
  5. People who will edit/revise content on someone else’s site (ie, wiki-style) -- the majority of these people would probably be very committed to the ideals of Open Educational Resources (OERs), have part of their professional responsibilities include curriculum development, or have some other type of immediate personal connection to a learning community. These people would probably be the ones to make the greatest use of any social networking features within the site

Produce --> Share --> Reuse --> Remix -- where does influence fit in? The influence of shared lessons, and the role that influence can have in helping a teacher develop and revise their existing materials, should not be overlooked.

Most working teachers do not have the time to collaborate online with other teachers to create freely available resources. Most of the teachers I talk to barely have time to engage in that type of collaboration within their own schools, let alone within an online/social networking context. Most teachers, even the ones currently blogging their lessons, do not have the free time to join another site and learn another system, even if there are long-term benefits. Teacher time needs to be respected, which is why any system that mandates a teacher use a new tool to participate will lose a good number of potential contributors due to that barrier to entry.

Here is what I propose -- and what I have partially built, here: http://threeclicks.org/lessons

  1. A site that aggregates lessons already being published online. This way, any teacher currently blogging lessons doesn’t need to change a single thing about how they work. If they want to make it easier, they can choose to tag any lessons with a unique keyword, like “lesson” -- this would allow us (in most cases, anyways) to aggregate posts in that specific keyword.
  2. All imported lessons are full-text searchable, and, when possible, tagged with keywords that describe the lessons
  3. Organize the lessons by content area
  4. Possibly, add in rating mechanisms to allow site members to rate content
  5. All posts imported into the site can be printed via a print-friendly page, and exported via rss.
  6. As a further development, possibly create a mechanism where site users could clone and revise imported content, or create new lessons to be published within the site. This lesson development would leverage content already created and imported into the site, or could be used by interested people to develop learning resources from scratch. For this type of curricular planning, we could incorporate wiki-type functionality.
  7. As noted by David Rothstein here, we could incorporate a “request a lesson” feature

What is missing? Please add any necessary details/suggestions in the comments.

A Thanksgiving Feed

Over the last two nights, I put some time into building out a rough proof of concept showing some of what can be accomplished via a good aggregator and Drupal's taxonomy structure.

We've been thinking about/using aggregation in a variety of ways for the last couple years, but the development of the FeedAPI has created some pretty amazing possibilities faster than we could have hoped. I've been meaning to build out a site like this for the last few months, but a couple of recent conversations stirred me into actually doing it.

What has been fun about building out this proof of concept was how quickly the site came together. It's rough, and has no graphic design component at all, but the core functionality came into place quickly.

The results are here, and I'll include the brief description from the homepage of the site.

First, the useful details:

This site is designed to show the utility of a single location as a collection point of content from disparate sources, and how that content can then be re-organized by use of keywords to categorize the content that has been imported.

On this site, all imported content retains all keywords added to the post by the author. Additionally, new keywords are added to posts on import to allow for the content to be searched and organized in other ways.

A brief technical overview:

If you are not a geek, you can stop reading here. If you are a geek, read on!

  • This site uses Drupal as the main framework.
  • As this site is a proof of concept, we kept things light. The only core modules in use are Menu, Search, and Taxonomy. This site uses no path aliases, and the theme is the lightly modified Zen theme that ships with DrupalEd.
  • Aggregation is handled by the FeedAPI, and extended by the Feed Element Mapper.
  • The Similar By Terms module handles the content recommendations that can be seen alongside posts (see here for an example).
  • The Views module generates several of the screens for displaying and navigating the imported content, and the Views Bonus module extends these views.
  • Finally, CCK is installed and enabled (although, for this implementation it could probably be eliminated if necessary); and HTML Corrector is installed to clean up any unclosed tags that on imported feeds that could break the layout.

For those keeping track of such things, this site has taken a grand total of six hours to build, including this writeup. The functionality of this site is all achieved using modules and code currently available within the Drupal community.

One group of folks deserve a special mention: the team of people behind the FeedAPI module. For those interested, you can see a lot of the discussion at the RSS and Aggregation group. They planned and executed a great project, and without their work this site would not be possible.

Syndicate content