Designing E-Learning 3.0 in gRSShopper - 5

E-Learning 3.0 - Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Part 6 - Part 7 - Part 8 - Part 9 - Part 10 - Part 11 - Part 12 - Part 13

We launched the course this week and I did a bunch of things to get ready. This summarizes them in no particular order (except that they were all done in the last few days in a frantic rush).


Videos are an important part of any MOOC and these MOOCs are no exception. In the first week or so I created four videos, including two live recordings of conference talks, a live webcast interview, and an opener.

Normally, I like to use xSplit to produce and publish videos, but the new release has not been playing well with my laptop. So for three of them I recorded directly into youtube (and used xSplit to make a backup recording on a different computer).

A note on the computers - in the expectation of doing somthing like this I spared no expense on the computers. This is the single most important tool I'm using.

Through my employer (NRC) I ordered a Dell XPS 15inch quad-core i7 with 32gig RAM and a solid state 1 terabyte drive. They didn't want to be seen ordering a 'gaming machine' so they got me a Precision 5510 instead (i7-6820HQ 2.7GHz), but it still had most of the specifications I wanted (except for the graphics card).

Figure 58 - Dell Precision 5510
I also spent about $3200 of my own money and got the exact computer I wanted, the XPSwith i7-7700HQ running at 2.8GGz and the RAM and solid state drive. And the graphics driver. This was a year ago and I've been working with both machines since. As I expected, NRC locked down key components of the 5510 so it was essential that I had my own to run alongside it (so it wouldn't, for example, shut down while recording a video of a conference talk).

Both computers have been excellent, though the 5510 hasn't been able to stand up to the load; it burned out a power bar (which I just replaced this week) and the battery life is down to two hours (I'll need to replace it). As I mentioned, the XPS struggles under the new xSplit (probably a video driver problem) but has otherwise been excellent (even after I dropped it on its corner on a cement floor in Colombia).

The key for me for planning my videos was to locate the magic URL on YouTube - specifically, this one:

As mentioned previously, I set up the videos to play in the Activity Centre. This worked pretty well, with a video window, a slides window, and a chat window, all on the one page. For some reason, the chat window wasn't working, and further, it wasn't pulling in comments from Mastodon, so that's on the list to fix this week.

Now, how to display the recordings after the event? On my own website, I use the 'presentation' table, and I have special views for YouTube videos and Slideshare slideshows. I also use a Javascript to resize the media for smaller windows (including mobile). Here's what it looks like (with the header and footer removed:

Figure 58 - Presentation Page on
For E-Learning 3.0 I'm using Events and media, but I still want to obtain the same result.

First things first, Media. I want to store these in their own table, so I can create lists of them. So for each video, I create a new Media item in the Media Editor.

Figure 60 - Media Editor
I haven't bothered creating a Form for the media table, so this is just the default form that gRSShopper produces, showing everything. The 'media' in question here is the YouTube video specifically, which is titled E-Learning 3.0.

Note that near the bottom of this form is a field titled 'media_youtube' and it contains just the key of the video, without the rest of the URL. I could (and will eventually fix this) write code to extract this automatically from the URL. But for now, it has to be entered manually.

Figure 61 - Bottom of the Media Editor, with YouTube key entered
So, first things first, I've entered the data for all four events in YouTube. In theory I could harvest the YouTube RSS (Google just reinstated YouTube RSS a few months ago) but that's on the list of things to test.

Anyhow, here are the media listed in gRSShopper.

Figure 62 - List of media in gRSShopper
Now to create a page that lists all the videos. First, a media summary view:

Figure 63 - media_summary view in the Vide Editor

Next, the Course Videos page newly created in the Page Editor.

Figure 64 - Course Videos page in the Page Editor

Notice the keyword string:


I don't want all media in the videos list, just video. To filter the results, though, I did something different:


This creates a regular expression search in the Media table, looking for a media URL that contains the string 'youtube'. I didn't have to do it this way, but I thought it would eb interesting to show. And it works just fine:

Figure 65 - Course Videos Page
I'll publish this (and set it to auto-publish so I don't have to recreate the page every time I add a new YouTube video) and tweet the link so people can find it. I will also need to edit the course contexts box (at right) to include it in the course menu. I could make the listing even better by uploading and displaying thumbnails, but I'll save that for later.

Figure 66 - Tweet advertising the course videos page
Next, I want the videos to always appear in the newsletter when I create them. So I add the following line to the Course Newsletter page in the page editor:


I've added an 'expires=24' parameter so I only capture the videos produced today, and also a 'heading=Videos' to that if there are new videos, a new heading will be produced.

Here's how it looks in the Newsletter (previewing before I send it out):

Figure 67 - Videos as displayed in the Course Newsletter

Next I need to add these to the events page.


I've been remiss in attending to the Course Newsletter, with the result that I haven't been getting them out (that's why I called the first week 'Week 0').

Here's how the newsletter works:

  1. you make a page called 'Newsletter' (or whatever you want to call it
  2. you create contents for the newsletter - ideally using keywords so the contents are created automatically
  3. you set the newsletter to autopublish every day 
  4. you set it to archive as well (otherwise, each day's newsletter over-writes the old newsletter)
  5. you set it to send every weekday (or whenever you want)

All the automatic things are handled by the cron_tasks() function in admin.cgi, and you set this as a cron job to run every minute.

As always, things are a bit different in E-Learning 3.0. The main thing is that I'm on a very small personal account on Reclaim Hosting. They say they'll expand my capacity if I ask, but I want to stay out-of-the-box for as long as I can. But this means I can't just use the gRSShopper email capacity. It works just fine, but (a) I can't be sure it won't be interpreted as spam, since many sites are at the same location, and (b) if I'm sending a lot of emails, I can overload the server.

So I've been using MailChimp. This can all be automated, but I haven't done that yet. However, I've set up an account, and I have a workflow that works for now.

Step 1

Works just as sdvertised. I created a page called 'Course Newsletter' and it publishes to course_newsletter.htm 

For templates I'm using page_header and page_footer. This is a bit different from usual. Normally I would create special email_header and email_footer templates, because in email, you can't import any styles from external files, which means everything must be declared in the email (that might still be true with MailChimp but I'll experiment).

Step 2

Contents work just the same. As we've already seen, I've set up the keyword command for videos. The other major content I want to include in the newsletter are posts written by course participants.

There's a whole process for this using the harvester, but I'm not ready for that, so I want to do it manually for today's newsletter. A few people have written posts and advertised them on Twitter (using the #el30 tag) so I have read them. I'd like to share them.

So for today, I'll just create these posts manually. Here's one:

Figure 68 - new post in the Post Editor
This actually turned out to be a bit tricky. I'm in the middle of updating  the code for the keylists (which I'll write about later). This means that the different tables aren't displaying exactly right at the moment (specifically, I set it to give me a drop-down list if there are fewer than 25 items, but right now everything has less than 25 items).

A simple post is actually a bunch of connected resources:

Figure 69 - Post components

Each arrow represents a line in the graph, and the graph resources are displayed with the keylist command. Normally they are created automatically, either when a link is harvested and then converted into a post, or when a post is manually created. But since I broke this, I am having to manually create the author and feed. *sigh* Gotta fix this.

There were more, but I only did five posts, which is enough to get us started (apologies if I missed you).

Step 3

It's set up to autopublish. And I published it manually now, just in case. :)

Since I'm using page_header the newsletter will include the course contents menu. But this won't look very good in most email readers. Again, normally I would use a specialized email template to fix this.

OK, when I published, it would display the posts. Why not? The preview displays them just fine.

Digging into the source - making sure all the tags and
tags match - I found an error in the page_footer template (I didn't close the " in one of the div tags). Fixed that. Nothing changed.

This is an odd problem that I've never seen before. The page always publishes the way it previews. What would change that?

I tried deleting the published page, thinking maybe it was a permissions problem. It wasn't. I tried adding another post to the list. Make no difference. I tried changing the format in the keyword. Nope. So I cut down the keyword command as far as it would go: . Still nothing.

OK, I have to debug the code. *sigh*

(An hour elapses) Oh! Found it.

I forgot about the fact that I have to actually publish a post before it shows up on a web page. OK. Go to the 'Publish' tab on each post, click Web Publish, and publish the newsletter again. It works. Yay.

Step 4.


I had to change the archive page to point to the exactly right URL. What I do is use archive.htm to redirect to archive.cgi?page=course_newsletter.htm

I need to make sure I have a nice link to the archives available. But archives is working so I'll move on.

Step 5.

Send email. As I mentioned, I'm not using gRSShopper to send email for the course. I could, but I've chosen to use MailChimp.

I need to automate this, but right now it's manual. Basically, here's the process:
- log in  to MailChimp
- Create 'campaign' - email
- Edit paramebers for each of: list, sender, title,text

For text, I use the 'Make your own' template, and paste the source from course_newsletter.htm and then had to fiddle with it a bit to make it look nice.

Then I click send.

Awkward, but it works. Newsletter sent. It came out... not as pretty as it could be, but OK. Interesting that the send email doesn't match the preview in MailChimp.


Popular Posts