Slideshare API, oembed support.

Having not posted a progress log for a couple of weeks, people are probably wondering what we have been doing. Well, we have done a lot of work on bringing our code ‘up to standard’ in terms of WordPress coding standards, fixing over 2000 ‘errors’ in the process. That took a while, but it had to be done, and will now be much easier to maintain.

We have also been working on our extensions platform, which should allow people to create extensions in a short period of time, regardless of whether they are using an RSS, OAuth API or standard API data source. We have began compartmentalising the import scripts, which should essentially allow anyone to copy an import structure from another extension to their own extension, for which the data source functions in a similar way. The last sentance will make much more sense when we get round to writing our documentation. It is then a simple matter of pointing some variables at data, and voila. More data in the database. More sharing. More caring.

We have also cracked oembed, allowing API’s which support the standard to display content directly in the activity feeds.

Oh, and we also made a SlideShare extension, which can be used to pull in content from SlideShare, and all the user has to do is enter their SlideShare username.

Over the coming weeks we have two tasks; Make some more extensions for the more popular OER providers (It’s a shame JORUM don’t seem to have their API up and running yet) and produce custom RSS feeds so the data collected from Bebop can be consumed into other services, such as our Staff Directory. This will also provide a way for people to follow content posted by people as it is added to Bebop.

Don’t forget to check out the photos and leave us some feedback.

Bebop progress log – 09/07/2012 & 16/07/2012

Weeks: 09/07/2012 & 16/07/2012

Throughout the two weeks I have been developing a filter system to allow specific OER’s to be added to the activity stream filters. This involved looking into the BuddyPress files to find out what hooks there are and what can be added. Once the new filters were in place in the main activity streams, we decided that putting the activity stream for the OER’s of a specific user into a member’s OER page would a good idea.

I have then worked on this for the weeks trying to get only that specific members OER’s from the activity stream feed with the correct filter options. This has proven to be difficult due to the lack of hooks and filters within BP for creating your own activity filter query “all OERs”. The end result was to override the function which is creating the cookies for the activity stream on start of entering the OER page in order to allow the multiple page views to work correctly with the “LL OERs” . An extra addition was also added so that if the user leaves the OER profile page it resets their activity stream to default “everything” rather than being on the same as their OER profile. See the images attached below further information.

Throughout the two weeks, Dale has been focussing on providing user functionality to manage OER content within the plugin. This means that users will be able to hand pick the resources pulled in through our extension methods, an either verify or delete them as necessary. This also means no data will be accidentally displayed if the user does not want it sharing in their activity stream. Essentially, data is pulled in using the WordPress cron routine, and added to our our manager table. Each OER has it’s own identification number and status, which determine its usage.


Bebop progress log – 25/06/2012

Week: 25/06/2012


I have been learning how the system works and installing it locally onto the machine. I have been following the process through to understand how each of the hooks work. After getting an understanding of how things are working, myself and Dale worked on different OER feeds for authentication in order to pull in the data from different sources. This was done by learning how different OER sources are pulled into WordPress via using methods such as RSS, API.

In order to make Bebop easily extensible for future sources, we have decided to stick with the method of using a master import file for the cron job. This runs through all the different extension sources with their own import file for that specific data pulling. This ensures that if a new extension was to be created it would simply have to be put into the extension folder in the specified file format and the plugin would automatically incorporate it into Bebop without the need for extra changes.

By the end of the week we both managed to pull data and it is now a case of refining the code and looking at how we should managed and output this information that we have obtained. We have also been looking at setting up the cron job as we are currently (for testing purposes) running the master import manually.

See below for an image of the Youtube pulling.




David Whitehead.


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.

Project Plan, Aims and Use Case for Bebop

The Project Plan for Bebop can be found in our original proposal. It includes:

  1. A section on the anticipated benefits and impact (“aims”) of the project
  2. An outline of the work schedule and approach
  3. A list of deliverables for the project
  4. A risk assessment and
  5. A dissemination plan.

Our primary Use Case for the project has also been published and we will add to this as we engage with users.

Currently, Dale McKeown and Dave Whitehead, who are both Developers on the project, are finishing up their exams and spending a few hours each week learning BuddyPress and WordPress development. From the end of May, both will be working primarily on Bebop until the end of the project. A user group meeting is also being planned for early June with the School of Art, Architecture and Design.

With final year exams out of the way, Dale will be attending Dev8eD along with Alex Bilbie (Linkey project) and Jamie Mahoney (ON Course project), where each of them will be talking about their work and using the time to learn from others, too.