Dev8ed – Birmingham, 29th – 30th of May 2012

Having finishing my last exam on Monday, I made my way down to Birmingham for the Dev8ed Conference, with two of my colleagues, Alex Bilbie and Jamie Mahoney from the University of Lincoln. Jamie is working on an ongoing project called ON Course, while Alex is about to start the new Linkey project, which involves tying OAuth to other authentication protocols, such as SAML. All of these projects are funded by JISC.

Dev8ed is a JISC funded event which involved people from a variety of JISC projects. During the two days, there was a selection of workshops and lightening talks on subjects ranging from the publishing of OER’s to the use of Personal Learning Envionments (PLE’s). Alex even presented his traditional and famous HTML5 talk.

I went to Dev8ed with two main objectives. The first objective was to attend all the workshops on the learning registry/JORUM and PublishOER, As well as have some developer time which I could devote to installing the LifeStream and BuddyStream WordPress plugins. This would give me the opportunity to evaluate how they are used and how they work, in order to identify if and how they can be used in the bebop project.


The first workshop I attended was based around the JORUM project. This workshop was interesting because it was based upon one of the OER’s providers that are of interest to the bebop project. The workshop focussed mostly on how the JORUM project was created, and how it can be useful to other projects in the future. We hope to utilise JORUM as an OER provider, and will feed resulting OER results into our university BuddyPress profiles.

I also attended a workshop based around the publishOER project, which opened my mind as to how OER’s can be published and shared. While this has no direct link to the bebop project, it was still a very interesting workshop which allowed me to understand some of the factors involved with the publication of OER’s.

Alex Bilbie presented the key new features of HTML5 and CSS3, such as new tags, form elements, providing brief examples of their use. These new standards will be utilised in bebop where necessary to create a more semantically rich plugin.


The second objective was to install the LifeStream and BuddyStream plugins onto the installation of WordPress I created in my previous blog post. We had previously identified the LifeStream and BuddyStream plugins as potentially useful for the bebop project, so I wanted to fully evaluate how each of these plugins are used to determine how i might be able to use parts of them in this project.


Lifestream is a plugin which pulls RSS feeds from multiple sources together, and places them into the WordPress activity stream. The RSS feeds are configured in the admin panel, and hence are more to do with the owner of the blog than anything else. This means that individual user RSS feeds cannot be imported into WordPress, only the generic feeds for the blog owner can be utilised. The bebop plugin which we will be developing over the coming weeks/months will need RSS feeds for multiple users, and hence the LifeStream plugin isn’t really what we are looking for in terms of usability. However, there is nothing to stop us from creating a plugin which utilises RSS feeds based which can be used by individual users. If I am honest, the LifeStream file-system is also rather complicated and bloated for what is a pretty simple task.


Unlike LifeStream, BuddyStream is integrated into BuddyPress. BuddyStream also utilised data API’s to provide user specific content feeds, powered by a CRON script. This allows individual users to pull data in from other sources such as Twitter. While social networking is not in the scope of bebop, BuddyStream provides a structure which is exactly what we are looking to do with bebop. The only difference is that instead of pulling in social networking content, we will be pulling in user specific OER content to enrich our BuddyPress profiles. We will therefore use data from both RSS and API sources for the bebop plugin from as many OER providers as we can.

The evaluation of these plugins has provided me with a good idea of how I can structure the bebop plugin and what features it should have. The next stage of the project is to set up the development environment, which will take place next week. The development environment will use a set of tools established by the LNCD department, including the Jenkins continuous integration server and PivitalTracker.

More to follow in the coming weeks.

Related BuddyPress plugins

One of the comments that came back from the panel that marked the Bebop project bid was that we should make sure there isn’t already a plugin or method of aggregating resources from third-party websites to BuddyPress. Fair comment. It was the first thing I did when I started thinking about submitting the bid to JISC. I collected links to related plugins but there was nothing I could find that did the job.

There have been some efforts at using BuddyPress for teaching and learning, as can be seen by the Courseware plugin and there are efforts to integrate specific third-party services such as Twitter, Google Plus and Mendeley, and there’s also a plugin for badging achievements, which I can see being used (or modified for use) in an educational context. There’s a plugin that allows you to enrich your activity updates with media that is uploaded locally. There’s a plugin that we already use at Lincoln, that allows you to pull an RSS feed into your group activity stream, (and another one here) as well as various uses of OAuth with BuddyPress and WordPress. BuddyPress is also being used as a collaborative project management tool and a collaborative document editing tool.

Clearly other developers are thinking along the lines of what we’ve proposed for Bebop, which is how BuddyPress can be used in an educational context and reflect a user’s activity external to the platform, but as far as I can see, there isn’t a plugin that allows a user to  easily add their username from YouTube, Jorum or Slideshare, for example, and have those resources aggregated and filtered nicely into their academic profile. The closest there is to that is this RSS aggregation plugin, which is designed to pull in external blog posts. It’s a start though and something we should look at early on.

The Bebop project aims to do more than this though by attempting to pull from the APIs of third-party services and organise the resources into collections on a user’s profile, as well as publish them to their activity stream. It involves more than simply pulling from RSS feeds (although we’ll include this, too), and once the data is being pulled in, we’ll provide a way for it to be pulled out again and re-purposed, assuming the T&C allow us to. Taking Slideshare as an example, could we re-use the data we get out of Slideshare within our organisation?

YOU SHALL NOT: sell, lease, share, transfer, or sublicense the SlideShare APIs or access or access codes thereto or derive income from the use or provision of the SlideShare APIs, whether for direct commercial or monetary gain or otherwise, without SlideShare’s prior, express, written permission;

It’s the word ‘transfer’ that worries me…. Jorum devs, please ensure that the T&C for your forthcoming APIs clearly state that the data via the API carries the same license as the resource itself. (We’ll post more about the T&C of APIs at a later date. If you have any advice, please do tell us).

Ideally, we’d like to be able to warehouse data about resources staff have published elsewhere on the web and have that data accessible over APIs on, like we’re doing with more and more of our data, so that we can build stuff with it. Getting data into BuddyPress is just one part of our project, but showing how the data can be made available for re-use is, arguably, the more interesting aspect.