Archive for the 'MOOC' Category

Creating a ‘full fat’ RSS feed for Google Gmail labels (enabling some dark social judo)

In this post I want to cover three things. First I want to introduce a little app I’ve developed which allows you to create a RSS feed for any of your Gmail labels (with the option to remove certain links – useful if you don’t want others unsubscribing you from mailing lists). Secondly I explain how it was made and how you can use it yourself. Finally I want to discuss how this could be used in an open course environment, utilising the vast processing power from services like Twitter and reusing there target marketing emails to your benefit with a bit of ‘dark social judo’.

What is Gmail Label Feeder?

It’s a little Google Apps Script app that you can setup to select one of your Gmail labels, preview content (with the option to remove all the links you’d like not to publish, like unsubscription links) and publish a public feed of the result. This video (embedded below) gives an overview of the problem and how the ‘Gmail Label Feeder’ app works:


How can I setup Gmail Label Feeder and how does it work?

Whilst logged in to your Google account open this script and then follow the instructions below:

  1. In the Script Editor File > Make a copy (this makes your own personal copy of the script which lives in Google Drive. With this copy you can control permissions etc and means I except no liability if it goes wrong, breaks, doesn’t work)
  2. From the Script Editor Run > setup
    IMPORTANT: when authenticating use the Gmail account you want to create feeds for
  3. Still in the Script Editor File > Manage versions… and create an initial name and ‘Save New Version’
  4. Then, Publish > Deploy as web app… and select ‘Execute the app as: me’ and allow anyone access even anonymously
  5. Finally open (and bookmark) the ‘current web app url’ to create (atom) feeds for your gmail labels

The process covering the creation of individual feeds is covered in the video above. The video below shows the five steps for the initial setup:

How it works

Having already used Eric Koleda’s Feed+ script when creating a similar app to turn Scoop.it searches into an RSS feed it wasn’t too much effort to change the source data to a Gmail account. It’s not the first time I’ve hacked the functionality of Gmail having already used my inbox to re-enable Google Reader social share features, so I already knew/had code to GmailApp.search using the ‘label:’ search operator. One thing I struggled with was removing selected links from emails. The UI side was straight forward thanks to the fantastic framework already developed by Eric. Initially I tried Removing html tags and content where tag content matches an array of values using Xml.parse() but as you see from the answer and comments from Jonathan Broughton and Bruce Mcpherson (thanks guys!) I used regex instead (only after getting caught out by line breaks and tabs).

Dark social judo: Pulling the email push

I was first made aware of ‘dark social’ via Alan Cann (who is ironically quoted in the THE today for his work around social media) and in particular his move to email as the main communication tool for students.

Alexis Madrigal at The Atlantic — who writes about the influence of what he calls “dark social” on engagement and traffic patterns. While everyone is busy watching Twitter and Facebook because they are easy to track, Madrigal argues that most social traffic still comes from old-fashioned or difficult-to-track sources like email and chat messages – (From Dark social: Why measuring user engagement is even harder than you think)

The use of email is something we’ve paid particular attention to in the open online course ocTEL, developing a daily newsletter to push a automated summary of course activity (talking about automated summaries read Tony Hirst’s Notes on Narrative Science and Automated Insights). There’s nothing particularly new in this but one whole I wanted to plug was getting an archive of these back into the ocTEL Course Reader (an RSS aggregation of all available course activity), hence the Gmail Label Feeder. Whilst doing this and picking over my own inbox for example emails I started to think about the ‘push’ I got from social sites like Twitter, Google and LinkedIn keeping me aware of activity and making suggestions for people and content I might like. Whilst some of these are very basic action reporting others require a degree of processing to generate.

Social push

The particular scenario I had in mind was if for example you were running a course Twitter account, when you get the inevitable ‘suggestions similar to’ or ‘do you know’ would there be some value judo style ’pull when your opponent pushes’  and publishing this content so it’s available to all your students. Even if this is of little individual value to the student wouldn’t aggregating this data in a machine readable way be useful down the line. Have a look at the menu of push options, wouldn’t at least some of these be useful to your students. Should we be doing a bit more dark social judo?

Twitter dark social menu

Opening the intercom with your open course participants: Tracking and engaging students

Earlier today I popped in the visual.ly site to see if they had anything new. After login in, having a quick nose I moved on. Minutes later I got this email:

Email from visua.ly

My initial reaction was:

Looking at how they did this there are some clues in the email. Notice the email contains a link with ?source=intercom (campaign tracking), and the email domain for the sender is intercom.io. Visiting the intercom.io site it’s immediate to see the pieces fall in place, Intercom providing a customer relationship tracking/engagement service which allows condition based automated messaging.

intercom dashboard

If you click ‘Start using intercom’ more is revealed about how this service works. By embedding a code snippet to your sight which returns the logged in user email (in the advanced setting this can be encrypted/hashed rather than plain text it appears you still need to send either a user_id or email in plain text as well as hashing)

intercom setup

And true to their word in 30 seconds I was able to track active on the ocTEL testbed site.

intercom test dashboard

Tracking user logins is a standard feature on most platforms (and can also be enabled in WordPress with the last login plugin), but there are nice features of Intercom that might make it a useful component within an open course situation. As well as tracking ‘last seen’ Intercom are able to track location, extended social profiles and levels of engagement. The fact it’s easy to install is a big plus, but if you are prepared to pay the $50/month you can get your hands on some nice additional features. As well as auto messaging you can reassign message replies to other users (the scenario I have in mind is reassigning messaging to other tutors).

So what would your reaction be if this tool was used in a course like ocTEL? Are there similar or better tools out there that you know about?

PS I’m currently having problems getting the email encrypted version of the embed code to work. Others might have more luck

Update: Here’s the code to add to your theme’s function.php to added Intercom.io support

Webinar: Overview of cMOOC platform trends and creating your own open online course using WordPress 15th May 16:30BST

As part of ocTEL on the 15th May at 16:30BST (check in your own timezone) I’ll be doing a webinar on platforms for Massive Open Online Courses (MOOCs), in particular focusing on some of the connectivist style recipes I’m aware of. As part of this I’ll be taking participants behind the scenes of the ocTEL course highlighting some of the configuration/customisation that’s been done to the WordPress platform. There will be lots of opportunity for questions so if you are thinking of hosting a similar style of course it’s a great chance to find out some of the pitfalls.

This week’s webinar is on platforms for Massive Open Online Courses (MOOCs) and in particular focuses on the connectivist style of courses being often taught by individuals or small teams of academics. As well as an overview of emerging trends there will be an in-depth behind the scenes look at the ocTEL platform. ocTEL is built on the open source WordPress blogging platform which has been supplemented with a set of additional plugins and some custom coding. Participants will gain an insight into the challenges of developing and running a connectivist style open course and have the opportunity to quiz the platform architect Martin Hawksey.

You can access the Week 5 webinar via this link A recording of the session is here.

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

#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 ;)

#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?

#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

(M)OOC in a Box: Turning WordPress into an Open Course Reader #ocTEL

Back in August 2012 having surveyed the technology behind a number of connectivist orientated MOOCs (cMOOCs) and I came to the conclusion that:

It’s apparent from the survey of [c]MOOC technology that course teams are taking a loosely joined set of tools that they are comfortable with to facilitate a shared experience with the learner.

I also asked:

Even with the bespoke nature of [c]MOOCs there are still opportunities to start collectively raiding the parts bin. … Given the wide use of WordPress … are there opportunities for [c]MOOC specific themes or plugins?

At the time I highlighted the prevalence of the FeedWordPress plugin for WordPress, which is used to aggregate content from other sites via RSS feeds. Six months on and reading posts mainly from Alan Levine the WordPress parts bins has well and truly been raided. Alan is at an advantage having been involved with the open online course in Digital Storytelling (DS106) and it’s been incredibly useful to see how his recipe has evolved. At the same time others have been turning to WordPress to support their courses. Of note are E-learning and Digital Cultures on Coursera (#edcmooc) , which challenges the division of connectivist (cMOOC) and instructivist (xMOOC) by using the FeedWordPress recipe; and the Open University/OpenLearn/Martin Weller course in Open education (H817).

This last example is particularly interesting because as you’ll discover by reading this post by Martin Weller you’ll see he’s embraced the DIY approach, confronting the challenges of being your own IT support head on. In the post Martin concludes:

One last plea – I joked with Alan that I needed DS106 out of a box. I think I’m serious though – it would be great to have a step by step, idiots guide to installing and setting up a DS106-like environment. The rest of us don’t have Alan and Jim’s tech skills, so getting to the starting line is difficult. I know they’ll say you should invent your own way, but they done so much great work that I don’t think they realise just how much expertise they have. A simple installation that let the rest of us get started, would mean we could all go off in different directions then. So any of the DS106 crowd up for it? And I do mean a simple guide, it has to be Weller-proof.

Personally, and at the danger of frustrating Martin further, I think it needs more than just a guide. In my original post I highlighted how aggregation of data was key. This still holds but with all data the next challenge is turning it into something actionable. What pathways might be useful for users to make sense of what is going on.

ds106 blogs hubLooking at H817, EDCMOOC, DS106, ETMOOC and others you have a lovely, gorgeous, wonderful flow of creativity, ideas and reflections, but often this is hard to navigate. Even when you use post excerpts a page of the last 10 posts is at best over 3,000 pixels long. Add in the issue that you might be pulling in content from 100s of sources and those 10 posts could quickly disappear.

Taking a step back a considering what FeedWordPress is doing, its a feed aggregator so are there any cues we can take from feed readers to make it easier to users to browse the content. That was the question I found asking myself when I was recently asked to contribute to ALT’s Open Course in Technology Enhanced Learning (ocTEL) [starts 4th April – still time to sign up].

Take Google Reader for example (don’t even get me started on Google’s ridiculous decision to close this in July). Reader is able to allow you to easily browse 10 posts in 300 pixels and if there are over 10 posts as I scroll down more content is automatically added. If there is anything I look the like of I can click the title to get the content. I can also see the things I’ve read and options to ‘star’ and share (although sharing has been compromised with the introduction of Google+). Feeds can also be organised into folders making it easy to filter content.

Google Reader (sob)

With these ideas in mind I scoured the WordPress plugins database to see how much of this functionality I could recreate. And here’s what I’ve come up with:

I’ve got more tidying up to do with the code before official release but you have have a play here (if you want to test read/favouriting then register here) and here is the current code (very poorly documented).

Open Course Reader

Thoughts and reflections

A group RSS reader

When I started making this custom child theme Google Reader was going to live to a merry old age. Given it’s death in July and having already started my search for a replacement I’m wording if reusing this recipe and my existing feed subscriptions might be the way forward – particularly as the base theme is responsive and works well on mobile. Taking this idea one step further there are potentially some interesting collaborative opportunities beyond an open course context. In particular I was thinking of enabling the WordPress commenting system which would allow discussion of posts, the scenario being your team want to monitor and comment on a set of feeds (I’ve disabled commenting for now as I want people to discuss content on the source post, the issue though is the comment activity is not captured and displayed … one to add to my TODO).

WordPress as an open course platform

Pro – flexibility allows you to find and install themes/plugins to get your desired functionality

Con – flexibility means you’ll spend hours looking for the right plugin then discover it doesn’t quite do what you want and which point you either (if you can) tweak, live with or spend hours more searching for an alternative

Pro – wordpress has numerous well documented internal functions and an architecture to easily add custom functionality (functions.php) and creating themes based on existing templates (child themes)

Con -  custom functionality takes time and can easily break if dependencies like plugins or parent themes change (for example my current child theme is broken by the very latest version of the responsive theme)

Box of bits and no instructions

One of the things at the forefront on my mind is this is potentially an open course platform in a box, but the box contains a random selection of pieces and no instructions. The guidance can be written, its finding the balance between ‘flat pack’ and bespoke.

As always you thoughts and ideas greatly appreciated

BTW  I final got a nice blog registration integrated into FeedWordPress. More about that next time (code is in the reporegister your blog

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

. . .