Tapping the rhizomes of dotlife: Creating an RSS search feed for Scoop.it posts

This was a useful post to write and reflect on some ideas. If you are here because you want to make RSS feeds for Scoop.it posts searches here’s the Feed+ Machine Chrome Web App and the standalone Feed+ Machine App

Recently when reflecting on my career path two key moments came to mind. First around 1999 having graduated as a structural engineer I got a job converting course content marked up in Word documents into HTML. Why this was important was I was forced to understand the raw building blocks of the web, I was in a foreign world and I needed to learn the language and fast.

Luke, view the source

A decade later and my interests shifted, less about static content and more dynamic data. Tapping into the work, primarily of Tony Hirst, my eyes were opened to the opportunity of remixing the web. Taking existing data, a dash of code/3rd party services and creating new things and ideas. In this world data feeds are the new building blocks to play with. In particular RSS and Atom feeds are the prize. Usually openly available and easy to manipulate/render.

Luke, find the feed

Unfortunately this ease of access appears to be putting off the big 3rd party services. With the latest Twitter API atom isn’t an option, with Google+ RSS feeds should be forgot about. This is a great shame a number of open online courses recognise the value of learners finding their own space, feeding their activity into tools which can aggregate, potentially sense make, and feed the rhizomes of the networked learner.

Like other open courses this is the challenge we face in ocTEL, pulling distributed activity into the machine. For some services RSS is still championed.  Diigo where the RSS badge with pride..

RSS from Diigo

JISCMail go even further also flying the auto-discovery flag (yet another front being eroded) …

RSS from JISCMail

What about Delicious …

Where's the RSS from Delicious

Mendeley … exists but you have to go digging

Mendeley have some, but not telling you

Google+ … this is where it gets interesting

[trumpets] Feed+ by Eric Koleda

Eric Koleda has created a Chrome Web App (Feed+) that lets you create RSS(Atom) feeds for Google+ searches. Using Google Apps Script Eric has created a user interface and it does all the negotiation with the Google+ API converting the data into RSS. Given the availability of a Scoopit API and using Eric’s base code I’ve forked the project to create the Feed+ Machine Chrome Web App and the standalone Feed+ Machine App (Google login is required to manage your feeds). To begin with it only supports creating feeds from Scoop.it! post searches, but given Eric has done such a great job on the design it’ll be easy to extend. I’ll spare you the details of the code but the source files are here if you want to unpick what’s going on and ask questions.

Here’s an example of a feed for Scoop.its referencing ocTEL, which we are already digesting in the ocTEL Course Reader. But why do this? My interest is primarily in capturing as much of the digital landscape, each artefact collected adding more detail to the map. Whilst material pulled from Scoop.it is potentially yet another churn of existing content, who is sharing and any insight they add provides additional context and may be another way in which participants can identify and migrate to new clusters of activity.

There is a downside to this to this approach. Having a search feed from Scoop.it is useful but having wrestled with the ScoopIt API there is much more data available not being captured such as metadata around posts and topics. So perhaps like others I should abandon the feed and favour JSON and start filling the Tin Can

PS NEW!!! CETIS briefing on Activity Data and Paradata for more developments in this area.

Dashboarding your WordPress bbPress forums to gain quick top level insight

The term ‘dashboard’ currently seems to have a similar effect to marmite, you either love it or hate it. Fortunately it looks like the trend is towards increased personalisation of the way data is presented for both visual and exploratory purposes (an example of this is Thomson Reuters finance system Eikon), so if you don’t like marmite you can have something else instead.

One of the reasons I like using Google Spreadsheets is it’s a fairly easy environment to pull data into, provide specific views and share with others. Recent examples of this include the work I did providing a summary of the discussion activity within the open online course LAK13 (btw the recording of the recent ‘Geek Out’ webinar covering this is available from here). This example takes the existing Atom feed from Canvas discussion boards, which contains all forum posts, and provides some lite summary of activity (shown below – click to enlarge).

CanvasNetworkDashboard

When faced with a similar challenge for ocTEL it made sense to evolve this existing work rather than reinvent. As previously outlined in the ocTEL course recipe, we use the WordPress platform as a course hub, creating additional functionality using plugins. For the discussion forums we use the bbPress plugin. Like the rest of WordPress, bbPress creates a number of data feeds that we can use for forums, topics and replies. As far as I can tell though these feeds follow the WordPress global reading settings for the number of items available and are limited to RSS2.0.

One of the really nice things however about working with WordPress is once you have you basic stack of plugins its easy to customise using your themes functions.php script. And that’s what we’ve done for ocTEL. Using WordPress’ extensive codex documentation we can see it’s possible to create our own feeds. So by adding this custom action in our theme functions.php and including this feed template in our theme folder we have an Atom feed for all our forum activity. With some very minor tweaking of the Canvas example mentioned above I’ve now got an overview of ocTEL forum discussions dashboard.

[If you have your own bbPress forums you can use the code above to create your own data feed and File > Make a copy of the spreadsheet to dashboard your forums.]

So now we have some insight to the ocTEL forum activity it raises some interesting question. Besides turning the insight into action the questions at the top of my mind are: how do we promote this data endpoint? what other data feeds and formats would be useful? How do we license the data? Your thoughts as always are very welcome. 

PS My colleagues Lorna Campbell and Phil Barker have recently published an Activity Data and Paradata briefing paper

Guest post: How Apps Script Makes Classroom Observation Quicker and Easier

Just a quick note to highlight a guest post I’ve written for the Google Apps Developer Blog on How Apps Script Makes Classroom Observation Quicker and Easier. In this Google Apps Script example I show how a couple of lines of code can do some custom Google Form handling. In this case the scenario was:

Justin Marckel, the assistant principal at Cornatzer Elementary School in North Carolina, asked for help in modifying one of my existing Apps Script examples. Justin was recording teachers’ classroom activities using a Google Form, then manually copying and pasting data into separate spreadsheets for each teacher to review. Justin wanted to know whether there was a way for a Google Form to store the results in a master spreadsheet, then filter results to each teacher’s spreadsheet.

You can rad the full post here

PS Will Welch spotted that there will be new Google Apps Script/Google Forms functionality announced at Google I/O.

#ocTEL- an open online course recipe using WordPress

Having recently posted the ingredients card for ocTEL I thought I flesh out some of the details and give ‘mama’s secret recipe’. Like most recipes it’s not perfect and I encourage you to try it yourself and refine where necessary. Also it’s worth remembering that even though the course is in progress the recipe is being continually refined so it might be worth tracking the code and developments announced here.

Look and feel (child theme)

Starting with the basics, ocTEL gets it’s appearance from the Responsive Theme. The advantage of this is it automatically gives us a mobile and desktop friendly interface. Because we were planning a number of customisations we created a child theme (more info. on child themes). Child themeing works well but one issue is as we have customised some of the templates we are now locked into an older version of the parent theme, version 1.8.9.3 (the parent theme is now version 1.9.3).

Course Reader

As previously mentioned we’ve developed a bespoke Course Reader into our child theme. This incorporates the functionality of a couple of other plugins (Jetpack for infinite scroll, WP Favourite Posts). The main new template files are archive.php and content.php. To give the Course Reader it’s own configurable sidebar widget additionally there is sidebar-archive.php which is registered in the child theme custom functions.

Registration

Within ocTEL my life is made a little harder because registration is entirely separate to the WordPress site. Ideally I’d just use the Theme My Login and enable the ‘Enable User Moderation’ and ‘Enable Custom E-mail’ modules then moderate new users using admin approval. In Settings > General you would also need to set Membership to ‘Anyone can register’ and ‘New User Default Role’ as Subscriber). In the Theme My Login custom email options I’d direct new users to complete their profile (within ocTEL we use bbPress (a forum plugin) which gives us a nice profile page – I’ll detail how we customise this later).

Theme My LoginIn ocTEL we still use Theme My Login mainly for a front-end login screen and instead to create the accounts we use the Add Multiple Users (AMU) plugin. When creating usernames the rule of thumb we used was to use the person’s twitter username or combination of firstNameLastName. The reason for using the twitter handle is FeedWordPress (the aggregation plugin we use) tries to match authors to existing user accounts “with the same name as either (1) their login, (2) their display name, (3) their e-mail address (if given), or (4) one of the “aliases” listed in the user’s profile” [Ref].

By using a Twitter handle  gives FeedWordPress another dimension to match authors using the theory that your twitter handle may be your ‘nom de plume’ for 3rd party services, hence trying to avoid the situation of users being ‘analytically cloaked’ (Suthers & Rosen, 2011). Logins and passwords generated by AMU were exported back to ALT to allow them to distribute via their mail merge system.

Some additional complication is in the original offsite registration form was that users were asked if they a) wanted to be publically listed, b) receive course related emails. To display course participants we use Author Avatar List which allows you to list users based on role.  So by using User Role Editor we duplicated the ‘Subscriber’ role as ‘Subscriber Unlisted’. As AMU lets you define the role for each new user the import data was reshaped in Excel to include this.

As part of the  course related emails we were keen where possible to automatically subscribe users to the ‘daily newsletter’. The newsletter is distributed using the MailPress plugin which does have a built-in add-on to synchronise its mailing list with the site users.  The problem is there is no easy way to batch subscribe a subset of users who opted for email correspondence, instead you have to dig into the guts of the SQL database (to get easy access to this we use Adminer) and do an import from there. If the course was configured so that the default was you got the daily newsletter but you could opt out on an individual basis this would have been a lot easier as there is a tickbox in the MailPress Settings for newsletter Subscriptions for default on.

Feed aggregation

imageLike many other similar courses we are using the FeedWordPress plugin to pull data from external feeds. Most of the setting are left as default.  Where we perhaps do something different is in the Categories & Tags settings we’ve switched of ‘Match feed categories’ for Categories and then assign the default custom Categories Reader and child category Blog posts.

imageThere are a couple of reasons for doing this. In the Course Reader is programmed to render any posts with the ’Reader’ parent category and when users self-register blogs we wanted them to automatically be assigned these categories.  When we register other data feeds like Delicious bookmarks we override the site settings and ‘file’ the feed into a different child category of Reader.

imageThis provides an easy way to filter the course reader down to certain categories of feeds. So if I just want to I can see Bookmarks in the Reader of filter down further for just Mendeley Bookmarks.

There are a couple of extra FeedWordPress plugins we use to try and keep our feeds clean. After reading Anne-Marie Scott for #edcmooc we’ve installed FeedWordPress Duplicate Post Filter mainly to try and cope with duplicate bookmarks, but as you’ll see from the previous links it doesn’t always work.

We also use Ada FeedWordPress Keyword Filters which means we avoid the issues of finding participant feeds for particular tags or categories. Instead we instruct participants to include the course tag in their post content or title and then filter using OR ocTEL,octel,OCTEL (the filter is case-sensitive hence the variations)

  image

Profile

Default wordpress profile pageA fortunate decision we made was to include a discussion space within the ocTEL site. For this we used the bbPress forum plugin. The benefit or using this was that we automatically had a template for participant profile pages, instead of the less user friendly default WordPress page (shown right). Originally we hoped to use the Theme My Login Redirection module to redirect users to their profile page on login but it didn’t seem 100% reliable.  Instead we added a custom filter to redirect to the profile page. We didn’t completely remove the backend admin for subscribers. Instead we opted to hide some of the extra clutter.

Listed/Unlisted

One of the early user requests we got was the ability to update whether they were listed on the public participant list. As there was already a hook to handle the profile updates it was possible to allow users to switch roles.

New fields

Your Profile - OCTELAs well as being able to view any profile (view profile template), users can also edit their details (edit profile template). For the profiles we remove some unwanted fields and add some of our own, which we hook into WordPress.

Registering a blog feed

As part of the profile page we also get users to register their a blog feed, if they have one. I’ve cued up this video clip to show how the process works (you can watch for whole clip to see other profile features). Feed registration is notoriously difficult, feeds aren’t always visible, low general awareness of RSS etc. etc. The solution we’ve come up with is based on Martha Burtis’ Perfecting the Syndicated Blog Sign-Up. The process for doing this is in two parts. On the frontend we attach some jQuery/JavaScript to add some additional functionality to the form fields. When a blog url is entered and a button is clicked an ajax call is made to try auto-detect the RSS feed (the core stolen from Alan Levine). This creates a dropdown list of feed sources which is rendered in the profile edit page.  When the profile_update is triggered as well as updating the listed/unlisted status we add the blog rss feed url to the WordPress Links database (see FeedWordPress Basic Concepts). This is done using a modification of Martha’s make_link function. The rough workflow is get the category for FeedWordPress links and build the link item. If a link hasn’t been submitted before (this is recorded in the user’s metadata) insert the link using the build in wp_insert_function (to avoid the stripslashes issue Martha talks about in her post this link is updated with a SQL call). If the user has already submitted a link we overwrite the existing one.

Newsletter management

Because we wanted users to be able to manage their newsletter subscription from their profiles and because MailPress handles this separately from user profile data we created a custom link populated by querying the MailPress database.

Individual Course Reader Submissions

Other open courses have employed a number of techniques for capturing thoughts, ideas, activity from off the rss beaten track (the ds106 assignment bank immediate springs to mind). Early on in ocTEL we got a request to add someone’s Storyify to the Course Reader. As this had no RSS feed in the user’s profile page we created an individual item submission form.  The form uses the User Submitted Posts plugin. In the end it might have been quicker to code this from scratch because the plugin has a number of settings that have to be configured and custom hooks applied.

If this is something you want to use in your own course activate the plugin and in the settings show:

  • Post URL
  • Post Title
  • Post Content

Use the HTML5 form, don’t include JavaScript or targeted loading (we call the form building function in the template). Ignore the category selection for now – I’ll got into how we structured our categories later. Don’t worry about the set assigned author. We chose to publish immediately but you might want to moderate new submissions. An important part is the ‘Use registered user info’. Make sure you tick:

  • Use registered username for author
  • Use a hidden field for submitted category

In the category ID you need to find the ID of your chosen categories (you could use the Uncategorised’ ID because as part of our custom processing hook we modify/add it)

Some custom processing is required so that posts submitted via this form behave in the same way as content collected by FeedWordPress. This requires adding the meta data used in the Course Reader and modify the behaviour so that the post redirects the user to the source url. For the first part we add an additional category (this is where you could add/remove more) and post meta then change how the permalink works for this post type.

Forums

As mentioned earlier we use the bbPress forum plugin in the course. Originally this was included to allow an alternative discussion space for people who were not big users of other social media channels. Beyond some new templates for profile pages the only other code customisation is the integration of a users WP Favorite Posts. Several bbPress specific add-ons are used to improve functionality listed in the ocTEL recipe card, denoted by bbPress or bbP (one additional plugin recently added is bbPress Pencil Unread). These plugins are mainly used to enable extra functionality for administration, navigation and notification. Within the forum settings (Settings > Forum)  with these plugins enabled gives you some extra control. For the next iteration of this one change we’d probably make is flip the threaded reply order to newest first.

MailPress custom theme

A big aspect of our course configuration is the daily newsletter summary of course activity. This is handled by the MailPress plugin. MailPress includes a number of additional add-ons which you can selectively enable (Plugins > MailPress Add-ons). The ones we have on are:

  • Batch_send Mails : Send them in batch mode
  • Bulk_import Users : import from mp users list
  • Connection_sendmail Connection : use Sendmail
  • Import Users : Import/Export mp users from/into files
  • Newsletter Newsletters : for posts
  • Sync_wordpress_user Users : synchronise with WordPress users
  • Tracking_ga Tracking : mails activity to your site with google analytics
  • View_logs Logs (view logs stored in tmp folder generated by MailPress in your browser)

MailPress allows you to theme your mailings in a similar way to WordPress themes. Our theme

octel newsletter [click to enlarge]The newsletter currently contains five sections (links highlight main sections of the code on Github):

  • Course information – displays any full post made by the course team tagged ‘course information’.
  • Recent activity – is used to summaries new aggregated content from the course reader
  • Forum activity – currently configured to display the last 5 recent topics and recent replies
  • Participant blogs – excerpts from participant blogs
  • Bookmarks – a summary of bookmarks from delicious and diigo tagged ocTEL

So that’s a snapshot of work so far, stay tuned for more developments. If any aspect of this recipe is unclear or you have suggestions for improvements leave a comment ;)

Learning Resource Metadata/Schema in action: Maths Apps Index

One of the nice things working for CETIS is when organisations like the Association of Learning Technologists (ALT) approach you to contribute to their projects it’s often an opportunity to field test cutting edge innovation. This was the case when ALT recruited me* for their Maths Apps Index project which is part of the maths4us initiative being co-ordinated by NIACE.

*I only work 0.8FTE for CETIS giving me room to explore other projects

Maths App Index is designed as a community review site for maths related resources. The idea builds on the Jisc funded ‘Community-led Evaluation and Dissemination of Support Resources – Pilot’, which I was also involved with. One of the recommendations made as part of this pilot was the better display and indexation resource reviews. When ALT asked me for guidance on the latest project and having kept abreast with the work my colleague Phil Barker was doing with new learning resource metadata standards my immediate response was to use the Learning Resource Metadata Initiative (LRMI) properties being proposed for schema.org.

LRMI/schema.org

For those unfamiliar with LRMI/schema.org below is a short briefing note I prepared as part of the project:

There is a general trend in webpages away from hidden metadata (keywords, descriptions contained in the header of a page) towards structured markup. This is in part a move by search sites to prevent the manipulation of search ranking by using hidden metadata. The solution has been to move towards combining human-oriented resource description and machine readable metadata.

An example of this is used in the Creative Commons embeds information about licenses in webpages. Using their ‘license chooser’ tool it generates extra HTML code for you to include in your distributed work. As well as the human readable icon and/or text the machine readable markup includes the rel="license" attribute shown in Figure 1.

clip_image002
Figure 1 Example of RDFa markup used in Creative Commons license

The inclusion on rel="license" allows search engines to identify that a resource might be released under a specific license, this information being used as a means to facet search results.

Schema.org

A development in this area of particular significance is schema.org, an initiative involving Google, Yahoo, Yandex and MS Bing that aims to:

"… improve the web by creating a structured data markup schema supported by major search engines. On-page markup helps search engines understand the information on web pages and provide richer search results." (schema.org, 2013)

There are two aspects to schema.org; a syntax for encoding parts of a page to identify additional metadata, and a shared schema of item types and their properties to make it easier for search engines to consistently index information.

Learning Resource Metadata Initiative (LRMI)

The Learning Resource Metadata Initiative (LRMI) is working to extend the the controlled vocabulary used in describing educational resources which is compatible with schema.org and other systems. This will mean search engines will be able to understand the information on web pages describing learning resources and make it easier for users to find them.

Table 1 is an extract from the draft LRMI Specification version 1.0[1] and describes the metadata that could be used to describe a learning resource. Within schema.org/LRMI all properties are optional.

Table 1 LRMI Specification version 1.0

Property

Description

educationalAlignment

An alignment to an established educational framework.

educationalUse

The purpose of the work in the context of education.

● Ex: "assignment"

● Ex: “group work”

intendedEndUserRole

The individual or group for which the work in question was produced.

● Ex: "student"

● Ex: "teacher"

interactivityType

The predominate mode of learning supported by the learning resource. Acceptable values are active, expositive, or mixed.

● Ex: "active"

● Ex: "mixed"

isBasedOnUrl

A resource that was used in the creation of this resource. This term can be repeated for multiple sources.

● Ex: "http://example.com/great-multiplication-intro.html"

learningResourceType

The predominate type or kind characterizing the learning resource.

● Ex: "presentation"

● Ex: "handout"

timeRequired

Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience.

● Ex: "P30M"

● Ex: "P1H25M"

typicalAgeRange

The typical range of ages the content’s intendedEndUser.

● Ex: "7-9"

● Ex: "18-"

useRightsUrl

The URL where the owner specifies permissions for using the resource.

● Ex: "http://creativecommons.org/licenses/by/3.0/"

● Ex: "http://publisher.com/content-use-description"


[1] http://wiki.creativecommons.org/LRMI/Properties

It’s worth noting that these were the draft specification and since then intendedEndUserRole has become educationalRole and, as noted by Phil useRightsUrl hasn’t currently made the cut.

In action

Because we thought it was unrealistic for a reviewer to supply data like educationalAlignment for the site we opted for a subset of the LRMI markup. As the review site is a WordPress installation we use a user submitted blog post for each review using the TDO Mini Forms plugin to capture the additional metadata. This is then rendered in modification of the Sampression Lite theme. Below an example of how LRMI is included within this review.

example LRMI/schema.org 

Where to next

When we plug the page into Google’s Structured Data Testing Tool we can see Google is detecting all our lovely metadata. Within a Google Custom Search Engine (CSE) we can even use this to filter a search. For example here are all the reviews with educationalUse set to independent learning. The problem however is Google CSE doesn’t currently provide any tools to all easy faceting of a custom search. Within the Maths App Index site we do have filtering for LRMI properties but currently it’s not integrated with search e.g. independent learning reviews. So with little perceived benefit why are we capturing this data now. It’s primarily about future proofing. I for one wouldn’t like to go back over thousands of reviews adding the metadata. 

What I’ve starred this month: April 28, 2013

Here's some posts which have caught my attention this month:

Automatically generated from my Diigo Starred Items.

#ocTEL: Outline of an open course (maximising email push with MailPress)

This post originally appeared on the ocTEL blog on 15th April and was written in collaboration with David Jennings. I’ve reposted it here as it outlines some of the broad ideas we are using with this open course, but in particular I wanted to highlight the use of the WordPress plugin MailPress to distribute course updates. The latest MailPress theme is here and the course theme customisations (a more detailed recipe is in the works).

ocTEL has been up and running for over a week now. After a start where the momentum of the email discussion threatened to run away with itself, Stephen Downes, who is a ‘critical friend’ on the project, shared his advice to OcTEL. We’ve taken that advice to heart and this post outlines how we’ve sought to embrace his suggestions.

Stephen advises:

  • set up a system whereby you are sending out one email a day to people
  • in this email, put your course announcements at the top
  • also put a link to the mailing list archives, or (even better) links to the current topics on the board archives

… you can use this system to incorporate ‘publish in your own space’ responses

  • create a mechanism to allow people to register their blogs
  • set up an aggregator of participant blogs
  • include the aggregator listings in the once-a-day email

Additionally

  • aggregate the Twitter posts for the course tag (I forget what it was; I’m sure it’s in an email somewhere)
  • aggregate from the diigo group – https://groups.diigo.com/group/alt-octel
  • list these posts in your once-a-day email

One email a day: the Daily Newsletter

When creating the ocTEL platform we were conscious of the need to push information to participants in a timely and useful way. From day one we had included the MailPress plugin for WordPress for distributing a daily and weekly newsletter. Below is a screenshot of the newsletter from day one sent on the 4th April. Other than there not being much content (it was day one) we recognised there were a number of areas to improve.

Daily Newsletter Day 1 (click to enlarge)

octel newsletterUsing some earlier work we’ve developed a custom ocTEL template (available here along with other source code from the project). The image to the right (which you can click to enlarge) gives you an overview of a recent version of the newsletter, which you can view online here.

Put your course announcements at the top, plus links to the current topics on the board archives…incorporate ‘publish in your own space’ responses

The newsletter currently contains five sections:

  • Course information – displays any full post made by the course team tagged ‘course information’.
  • Recent activity – is used to summaries new aggregated content from the course reader
  • Forum activity – currently configured to display the last 5 recent topics and recent replies
  • Participant blogs – excerpts from participant blogs
  • Bookmarks – a summary of bookmarks from delicious and diigo tagged ocTEL

As the course evolves our plan is to refine the newsletter to maximise effectiveness. This will be in part to respond to the dynamics of the course, but also to experiment with different configurations and features. If you have any suggestions for these we’ve created a topic on the forum or contact us by any other means that you prefer.

Create a mechanism to allow people to register their blogs, aggregate them and include in daily email

The ‘publish in your own space’ (or wherever you prefer) principle is at the core of our platform design and has directly influenced a number of our fundamental decisions including the adoption of WordPress. As part of the registration form we asked participants to include a link to their existing blog and these were imported into our platform from the start, after which participants could login to review and edit their details — as shown in the video below. This includes selecting an RSS feed so that we can aggregated their posts into our site allowing other participants to review content via the Course Reader or as part of the daily newsletter.

Like a number of other open online courses we achieve this by using the FeedWordPress plugin for WordPress which has the ability to aggregate RSS data. In addition to this we recently developed the ability for participants to submit additional artefacts not accessible using RSS.

Aggregate from the diigo group

As well as collection of data from participant feeds we are aggregating other feeds. These include the ocTEL JISCMail list, the Diigo group, Delicious bookmarks tagged ocTEL and others. Even though the course has been running a relatively short time, it’s encouraging to see individuals establishing new places for participants to cluster. As these are created, and where possible, we are adding them to the list of aggregated feeds. This currently includes the Google+ Community created by David Read and a Mendeley Group created by Ann Nortcliffe.

Aggregate the Twitter posts for the course tag

Currently we are only aggregating a selection of tweets into the Course Reader using the search term ‘#ocTEL AND ?’ giving us a sub-selection of tweets which might be questions. Using a system developed for another open online course we attempt to match questions with answers. These are available in the Course Reader and in this dedicated page.

It is also worth highlighting that we are archiving all the course tweets using a Google Spreadsheet template. In an attempt to provide a way for participants to navigate and explore this data we have another dedicated page with a ‘conversation graph’.

Cease sending out mailing list emails, give people a few days to catch their breath

This was the one element of Stephen’s advice we haven’t yet followed. We trusted ocTEL participants to self-regulate and catch their breath of their own accord, and happily they did. We know that email discussion lists have the capacity to flare up suddenly, and that may happen again. However, our parent organisation ALT successfully runs an email list with a thousand members, and, at present, ocTEL’s list of just under 800 participants is going through a quiet phase.

To conclude

When launching this course for the first time, we wondered what decisions would look daft with hindsight. Now I think we know at least one such decision. We have made changes quickly where we could, while still operating within our original principles. I hope this post highlights in a number of other areas we are not only on top of the problem but proactive in developing and sharing new solutions to help others who might be interested in delivering their own open online courses. I hope it also illustrates that we are trying to respond to the needs of our participants and we welcome any suggestions you have to improve the course (you are free to choose how to submit these for example the forum, email or other…)

#ocTEL Using Google Spreadsheets for a basic analytic to find your fledgling bloggers

One of the nice things about open courses like ocTEL is whilst having your own blogging space wasn’t a mandatory requirement we were aware that a number of participants had setup one up anyway. Conscious that activities like blogging can be very lonely and also aware that this is often a critical moment in motivating people to engage in reflective writing we’ve been encouraging tutors to show these blogs some extra love, which seems to have gone down well.

This raises the question that given blogging is optional and we haven’t asked people to self-declare if they are new to blogging how do we identify this community? With this question in mind I quickly (initial pass took me about 5 minutes thanks in part to earlier work in this area) put together a spreadsheet which took the participant blog list and got feed counts.

post table

How it was made

If you look at Sheet 1 you’ll see there is a static list of Feed urls (Column B). This was obtained by using the Chrome Screen Scrape extension. The reason it is static is I wanted a column where tutors could make comments and a dynamic import would screw this up. Looking at Sheet 2 cell A1 you can see how to do a dynamic list using the importXML function (see this post for more examples of spreadsheet import options).

To get the post counts and dates some Google Apps Script was required to write a custom function (custom function, you ask? Where have you been, read my blog). After that it was a bit of conditional formatting.

What’s missing

It would be useful to have a dynamic list of feeds which could retain comment cells (ideas on how to do this very welcome. My thought was to do a cron job to read the sheet, fetch more feeds then output the result)

Another metric it would be useful to add a comment count. So 1 post 3 comments would be identified as a lower priority than 1 post 0 comments.

So do you think this spreadsheet is potentially a useful tool in the open course toolbox? How would you improve it?

Geek Out Webinar: Using Google App Scripts and Spreadsheets to Analyze Canvas Usage Data

Just a note to say on 26th April at 4pm BST (in your timezone) I’ll be giving a webinar on using Google Apps Script to extract data from Canvas (LMS by Instructure). Even if you’re not a Canvas user hopefully there will be some general techniques you’ll find useful. It might also be useful for people thinking about applying basic learning analytic techniques to your courses. I’ll update this post with any resources from the session.

Martin Hawksey of Jisc CETIS started playing around with discussion usage data in Canvas when he was participating in the Learning Analytics course in Canvas Network. Using Google’s cloud scripting service Google Apps Script,  free for Google Apps and Google account users, he could dig deep into the data and start doing some interesting (and valuable) analysis all from the comfort and familiarity of a spreadsheet.

Join us for this free 50-minute technical webinar on Friday, April 26th as Martin details his experience using the Canvas APIs and walks through building scripts to get meaningful Canvas data using Google Apps Script and the Canvas APIs.

Registration is free and you can book here.

Here’s a recording of the session and the bundle of links (including slides)

#ocTEL– proudly powered by …

There have been a couple of very interesting WordPress/FeedWordPress recipe cards for open courses from Anne-Marie Scott for #edcmooc and Martin Weller for #h817open. Below is the ingredient list for #octel. Added to the pot is some homegrown veg which gives us some very personal customisation. A lot of this is to tweak the functionality achieved by using existing plugins that don’t quite do what we want. For example, to allow participants to submit individual artefacts when no rss feed is available I chose the User Submitted Posts plugin. To get this to submit to two categories (instead of the default one), add custom fields to match those use by feedwordpress and change the permalink I needed these extra lines of custom functions.php. Given the amount of investigation required to find the exact right place to add the hook more often than not it feels like it would have been better to code the functionality from scratch.

I’ll leave you with the ingredients for now and next time highlight the recipe… 

Plugin

Description

Ada FeedWordPress Keyword Filters

Filters posts syndicated through FeedWordPress by keywords. You can do complicated keyword filters using AND, OR, and NOT logics. Plugin will look for user entered keywords in post_title, and post_content

Version 2012.0521 | By CAPitalZ | Visit plugin site

Add Multiple Users

This plugin allows you to add multiple user accounts to your WordPress blog using a range of tools.

Version 2.0.0 | By HappyNuclear | Visit plugin site

Author Avatars List

Display lists of user avatars using widgets or shortcodes.

Version 1.6.1 | By Paul Bearne, Benedikt Forchhammer | Visit plugin site

bbPress

About

bbPress is forum software with a twist from the creators of WordPress.

Version 2.2.4 | By The bbPress Community | Visit plugin site

bbPress – Mark as Read

Allows you to mark bbPress topics as read/unread and see all unread topics

Version 0.3 | By Pippin Williamson

bbPress Admin Bar Addition

This plugin adds useful admin links and resources for the bbPress 2.x Forum Plugin to the WordPress Toolbar / Admin Bar.

Version 1.7.1 | By David Decker – DECKERWEB | Visit plugin site | FAQ | Support | Translations | Donate

bbPress Email Notifications

Provide notification emails and controls for bbPress subscriptions, merge, and split functions.

Version 0.3 | By Jennifer M. Dodd

bbPress Search Widget

This Plugin adds a search widget for the bbPress 2.x forum plugin post types independent from the regular WordPress search.

Version 1.2 | By David Decker – DECKERWEB | Visit plugin site | FAQ | Support | Translations | Donate

bbPress Threaded Replies

Add threaded (nested) reply functionality to bbPress.

Version 0.4.3 | By Jennifer M. Dodd

bbP Topic Views

Counts the number of times a topic has been viewed, and allows the administrator to display the count in various places.

Version 0.2 | By GautamGupta | Visit plugin site

Enhanced Text Widget

An enhanced version of the default text widget where you may have Text, HTML, CSS, JavaScript, Flash, and/or PHP as content with linkable widget title.

Version 1.3.4 | By Pomelo Design | Visit plugin site

FeedWordPress

simple and flexible Atom/RSS syndication for WordPress

Version 2012.1218 | By Charles Johnson | Visit plugin site

FeedWordPress Duplicate Post Filter

Checks DB to see if any previous posts have the same calculated hash

Version 1.5 | By Mark Allen | Visit plugin site

Google Analyticator

Adds the necessary JavaScript code to enable Google’s Analytics. After enabling this plugin you need to authenticate with Google, then select your domain and you’re set.

Version 6.4.3 | By Video User Manuals | Visit plugin site

Google XML Sitemaps

This plugin will generate a special XML sitemap which will help search engines like Google, Yahoo, Bing and Ask.com to better index your blog.

Version 3.2.9 | By Arne Brachhold | Visit plugin site | FAQ | Support | Donate

Jetpack by WordPress.com

Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.

Version 2.2.2 | By Automattic | Visit plugin site

MailPress

The WordPress mailing platform. (do not use automatic upgrade!)

Version 5.3 | By Andre Renaut | Visit plugin site

Search bbPress 2.0

Adds bbPress 2.0 to WordPress search results with links back to the forum, topic, and replies.

Version 1.0 | By Stephen Carroll | Visit plugin site

Theme My Login

Themes the WordPress login, registration and forgot password pages according to your theme.

Version 6.2.3 | By Jeff Farthing | Visit plugin site

User Submitted Posts

Enables your visitors to submit posts and images from anywhere on your site.

Version 20130104 | By Jeff Starr | Visit plugin site

WP Category Post List Widget

Lists down Posts filtered by category. You can show thumbnail, modify the HTML structure of the widget and do almost whatever you want. Access it from the Widgets option under the Appearance. The shortcode is [wp_cpl_sc] Check the settings page for more info or check the documentation here

Version 2.0.3 | By Swashata | Visit plugin site

WP Favorite Posts

Allows users to add favorite posts. This plugin use cookies for saving data so unregistered users can favorite a post. Put <?php wpfp_link(); ?> where ever you want on a single post. Then create a page which includes that text : {{wp-favorite-posts}} That’s it!

Version 1.5.8 | By Huseyin Berberoglu | Visit plugin site

WP Mail From II

Allows you to configure the default email address and name used for emails sent by WordPress.

Version 1.0.1 | B

About

This blog is authored by Martin Hawksey Google+

JISC CETIS Learning Technology Advisor (OER Programme Support)
jisc cetis logo

The MASHezine (tabloid)

It's back! A tabloid edition of the latest posts in PDF format (complete with QR Codes). Click here to view the MASHezine

Preview powered by:
Bluga.net Webthumb

The MASHebook

You can also download this post as:

Subscribe to monthly email digest of posts

Loading...Loading...


Subscribe to per post email updates

Enter your email address:

Delivered by FeedBurner

Copyright License

Creative Commons Licence
This work is licensed under a Creative Commons Attribution 3.0 Unported License. CC-BY mhawksey

Privacy /Cookies

This blog uses Google Analytics (which makes use of 'cookie' technologies) to provide information on usage. Here's an overview of Google Analytics Privacy and how to opt-out (other 3rd party services like Twitter might also be tracking you via this site, but as far as possible I try and prevent this by removing official tweet buttons).

Badges

. . .