Stephen Downes

Knowledge, Learning, Community

Half an Hour, Aug 02, 2017


My pre-conference workshop for Online Educa Berlin has been announced and this seems as good an occasion as any to summarize what I've been up to lately.

Over the last year I've been quietly involved in three internal NRC projects:

- Learning Technology Landscape - this is a comprehensive look at the research projects, technologies, concepts and people who have been influential in our field. I've tried to cast the net widely, looking at much more than just free tools or commercial products.

- Competencies and Skills Systems - I've been investigating the work by Advanced Distributed Learning's Total Learning Architecture, including the aforementioned CASS as well as xAPI, Learning Record Stores (LRS), and related technologies.

- MOOC Aggregator - I know there are some very good MOOC aggregators out there but my interest here is in the deployment of a full-functioning aggregator to serve as an input mechanism for other software.

I've had good results in all three projects. This value web, for example,

is an early outcome of the Landscape project. It includes some elements you might expect to find in a learning technologies landscape - learning analytics, competencies and skills, etc., but also a lot of the supporting environment less commonly considered, such as development tools or cloud apps and storage.

I've been diving deeply into some of this. It's not enough, for example, simply to know that cloud technologies exist. I've been learning how to run virtual environments both on the desktop using DockerVagrant and Virtual Box (among others) and in the cloud using Amazon Web Services and IBM Bluemix. I have applications up and running in all these environments and have been learning about staging and scripting them.

Meanwhile the technology institutions and companies are beginning to move in this direction. I've been sitting in on the IEEE-LTSC meetings to learn about things like the Actionable Data Book, the 
Augmented Reality Learning Experience Model, and similar forward-looking initiatives. I've been studying the EDUCAUSE Next Generation Digital Learning Environment (NGDLE) publications, I have my own LRS running on AWS and have been looking at the API.

Meanwhile, the MOOC aggregator is occupying a lot of my attention. To harvest the course data I'm actually using an NRC-built tool in development called BeeYard. This will be useful in the long ter as it allows me to centralize aggregation functions to course providers aren't hit by a million personal aggregators. I've built parsers to convert the JSON data to useful listings. Equally important, though, is the use of this data to support listings and other content on

All of this brings us to gRSShopper.

This is the tool I've been working on and with for years now. It - or a much earlier version of it - is what we used to launch our first MOOCs in 2008. It is the tool I use to run my website and newsletter. It is my online workshop, my virtual research lab. It is not production software though in the spirit of openness you can see it as I work on it in GitHub. There are no stable branches (though one of my short term objectives is to create one and work on development branches).

gRSShopper, in whatever state of development, is the tool that I've always wanted. I've shown this diagram before:

It's the digital implementation of the 'Aggregate Remix Repurpose Feed-Forward' model. It's a personal content-creation and productivity tool. It organizes and saves my data for me, functions as a resource library, gives me a place to create and share, and more.

If I were a different sort of person it might have become another Moodle or Wordpress or whatever. But I was less focused on creating a product and more interested in exploring a concept. So I didn't switch from Perl to PHP when the whole world was using PHP for this stuff. Nor did I embrace the successive waves of devotion to Python and Ruby. Oh sure, I learned these languages. But Perl gave me the expressive range I needed. I can think in Perl in a way I can't with the other languages.

In the last few months I've been working on making gRSShopper more accessible. I needed to do this for the three projects listed above, and I need to do it if I expect to make gRSShopper make its next conceptual turn, helping people take multiple MOOCs (and use other resources) from the same environment. I'm drawing from many of the concepts we developed in the LPSS program to do this, and adapting them to my present reality.

Here's what I actually want to do. First, the discovery phase:

What you should observe is that gRSShopper is playing three roles. On the far right is a role it has already been developed and tested in: MOOC provider. As a MOOC provider gRSShopper aggregates resources and contributions from course facilitators and participants, helps support course activities (the integration to Big Blue Button still works!) and distributes the newsletter, RSS feeds and podcasts.

In the middle is gRSShopper in its role as MOOC aggregator, currently being served (poorly) by Once this part is up and running it will be possible to access MOOC listings from a large number of providers, and if I can make it work, sign up for MOOCs right in that environment. This is trickier because MOOC vendors don't play well with others. That's why I'm including the gRSShopper MOOC - to show what could be done if we had the imagination.

Finally, on the left, is gRSShopper in its newish role - personal learning environment. The idea is that each participant has their own gRSShopper (just like I do) and can create their own resource base, beginning with their personal list of MOOCs, feeds, and other resources they find useful in their day to day life.

Second, we have the study phase. This is where a person uses gRSShopper to actually learn and support their other activities.

As we can see, individual users in their own gRSShopper instances access one or more courses or MOOCs from different providers. Various specifications - API, RSS and LTI - are used to deliver learning resources (or even entire courses) to them. The users work with the courses, interact with each other and with external services, and can even do things like log their activist in an LRS.

The key question I'm looking at here is: to what degree can course resources provided by external providers (Coursera, EdX, etc) be presented in a gRSShopper environment. Again, I don't expect this to be easy - providers really want to you work in their environment, not yours. But I want you to work in one environment - your own - and access and work with external courses and resources from within your own personal learning context.

So what do I need to do to make this work?

First, I need to make gRSShopper more flexible and add hooks for external services, including analytics. So I've set up gRSShopper so that it has no particular built-in data model: you can load a predefined model into it, or design your own and export it. So now I have a version that holds my learning landscape database, another that holds courses, etc. And I'm designing mechanisms to run some basic analytics on incoming data (for example, courses or RSS feeds I've aggregated) to add to this database.

And second, I need to make gRSShopper usable without requiring that you run your own web server. Individual students aren't going to do that. But I can make gRSShopper an application you can access and run in a cloud environment. I'm still working on this, but my startup scripts have matured a lot. Ideally it will be possible to simply create an AWS account and load gRSShopper with a simple selection, running it for just a few dollars a month (and scalable if needed).

Then I need to test it and see where it works and where it doesn't. I plan to run some MOOCs this fall and this sprint. And I plan to run some workshops on gRSShopper and get people who are interested started up with it.

This is where 'gRSShopper in a Box' the workshop comes in. I want to talk about all of this and learn from the expertise and feedback of people in the room. And I want to roll out actual instances of gRSShopper and have people set them up as their own personal learning environments. Then we'll talk about what gRSShopper does (and it does a lot) and what it could do.


Stephen Downes Stephen Downes, Casselman, Canada

Creative Commons License.

Copyright 2021
Last Updated: Mar 30, 2021 8:32 p.m.