About Chris Fryer

Goal: carrier-grade reliability. Nines. Lots of nines.

Lecture recording now available in KSW.1.04

If you are timetabled to deliver lectures in KSW.1.04 during Lent Term 2018, you can now choose to have your lectures recorded.  See our guide to setting your lecture recording preferences. Note that your sessions will need to be classified as “Lectures” in the timetable for you to be able to book them in LSE for You.

Two new vacancies at LSE

LSE’s Learning Technology and Innovation team are recruiting for two vacancies: a Learning Technology Systems Officer, to provide first and second line technical support for learning technologies including Moodle and lecture capture, ​and a Learning Technology Content Developer, to produce a range of engaging media content for use in the School’s online and blended learning provision.

The closing date for receipt of applications is 12th November 2017 (23.59 GMT)

October 19th, 2017|Announcements|0 Comments|

The way you link to reading lists in Moodle is changing

After we upgrade Moodle to version 3.1 this summer, one of the ways you currently link to reading lists won’t work. The integration between Talis Aspire and Moodle was written by the University of Kent and has not been updated to work with the new system.

How can I tell if I need to make changes?

If your reading lists bear this icon:  then they will no longer work after Tuesday 15th August

Instead, you will need to use one of the following methods:

Our plans for Moodle

This summer we’ll be using Moodle 3.1. It includes support for Competency Based Education, improvements to assignment grading, a Recycle Bin to help you retrieve deleted files, and enhancements to the Forum.

Other institutions have been using it for more than a year and we’re confident it’s stable. It’s a Long Term Support release, meaning security problems will be addressed regularly until May 2019.

The next Long Term Support release will be Moodle 3.5, and we plan to upgrade LSE Moodle to that version in summer 2018.

Why so serious?

Why don’t we upgrade at the same rate that new versions are released?

LSE Moodle is a mission-critical system, and we want it to be available 24/7. Upgrades are disruptive; taking Moodle offline for a day in reading week or during the exam period isn’t an option. New features can also be risky because they’re not tested to the standards we require.

But we’re keen to learn how you want to use Moodle to teach and to learn. This is why we’ve launched MoodleLabs, an instance of Moodle that will always run the current major release of the software.

So if you’re in receipt of an LTI grant and want to make use of a feature that isn’t yet available on LSE Moodle, you can use MoodleLabs instead.

Publishing Echo recorded lectures in Moodle

Update: I wouldn’t recommend using this method now. The EchoCenter works just fine, and has the added benefit of displaying analytics to instructors.


EchoSystem, the lecture recording service we are running at LSE, provides various methods for publishing links to recorded lectures in Moodle, our VLE (LMS).

The “Moodle Publisher” places the links in the course calendar, with each recording listed as a separate “event”.  This is useful, but it is not immediately apparent to our students that they should look there for the links.

If configured to do so, EchoSystem will generate RSS feeds for each course’s “section” or “module”.  This is also useful, because RSS feeds can be used in a number of contexts, including Moodle’s Remote RSS feeds block.  But there’s a problem: unless you have given your presenters the ability to edit their recordings (we haven’t), or you have the time to edit them yourself (we don’t), all the recordings from a particular section end up with the same title.

A Regular Expression to match any URL

Update: see my most recent comment. WordPress has a pretty good regex for matching URLs.

A bold claim, but I think I’ve got one:


An online events booking system I developed doesn’t allow HTML in the event description field, primarily to protect against annoying scripting attacks. But what if you want to provide a link in the description? I need to detect plain text URLs stored in the database, and turn them into hyperlinks when displayed in the browser. The regular expression above allows me to do that quite easily in PHP:

$pattern = |([A-Za-z]{3,9})://([-;:&=+$,w]+@{1})?([-A-Za-z0-9.]+)+:?(d+)?((/[-+~%/.w]+)???([-+=&;%@.w]+)?#?([w]+)?)?|;
$html = preg_replace($pattern, '<a href="$0">$0</a>', $text);

But the regular expression has several submatches. They provide a means to break down the URL into its constituent parts, including protocol, user info, server name, REQUEST_URI, query string and anchor.

Here’s a PHP class I wrote that uses this Regular Expression to analyse a string, detect URLs, populate an array with the constituent parts of the URL, and replace URLs with hyperlinks. Here’s an example of usage:

$text  = 'Please visit';
$text .= 'script.cgi?variable=value&variable2=some';
$text .= '+url+encoded+text#section-1 to find out more';

$urlf = new URLFinder();
$html = $urlf->make_links($text);
echo $html;

If you print_r($urlf), you can see how the URL is broken down.

I haven’t managed to find any exceptions to the expression, but if you do, please post an example.

LSE shortlisted for the Institute of IT Training 2008 Awards

LSE’s training website, which aggregates RSS feeds from multiple training providers across the school, has been nominated for an award. Luis Martinez in the Library, Jeni Brown in IT Training, and Jane Secker and I in CLT developed the system, which has subsequently been extended to include the Teaching and Learning Centre, the Language Centre, and the Staff Development Unit. We extended RSS by referencing additional namespaces — the RSS Events and Dublin Core Terms namespaces. This allowed us to include additional metadata such as the date, time and location of the event, and its intended audience.

Each training provider generates an RSS feed from their events database, which is collected using Magpie RSS. All the feeds are rolled up into one, with events sorted chronologically. Here, RSS is acting as database abstraction layer: the aggregator doesn’t need to know details of each database implementation to obtain the information.

If you’re interested in the details, have a look at the technical documentation.

BbWorld Europe 2007 Part Trois

In yesterday afternoon’s session, I attended the “Blackboard listening session”, with senior members of the board arrayed before us like contestants on University Challenge.  There was very little discussion of the Blackboard Academic Suite: almost everyone wanted to talk about the Vista/CE6 product line.

Bb have committed to extending the open API layers for all their products.  This is primarily to enable better integration with external systems, but also, one hopes, to expose information stashed safely away in the database, presently protected from the impious meddlings of systems administrators.

One delegate noted that there were diagnostic and performance tuning tools available to the sysadmins at Blackboard hosting services that aren’t currently available to the poor souls who have chosen to support the system in-house.  Sadly many of these products are proprietary tools not belonging to Blackboard, so they can’t be released.  They have promised, however, to release some “best practice” guides and improve the “reference architecture” so we can find out what the thing is up to.

Inevitably our attention turned to the thorny issue of stability.  One delegate said they were now having trouble “defending the product” to the user community.  We were told that Blackboard had learned from a bad version upgrade from 5.5 to 6 for their Academic Suite, and were now much better at running an “enterprise development shop” than were their colleagues at WebCT.  The core development and maintenance teams had been separated so the product could continue to evolve while bugfixing went on elsewhere.  The beta release programme is now being extended to Application Pack 2 for CE6 and Vista, and time on developing this release is almost 100% focussed on stability & scalability issues.  AP2 is being presented as an end to all our woes, but the release date may yet be too close to the start of the academic year.

February 28th, 2007|Conferences|0 Comments|

BbWorld (TM) Europe 2007 Part Deux

Today I’m at the BbWorld Europe conference in Nice, discussing all things Blackboard. The weather’s lovely, thanks very much, but as we’re installed in a windowless concrete monolith, opportunities for working on my tan are limited.

Bruno Lanvin of the World Bank delivered an interesting keynote presentation this morning, discussing the impact of knowledge and technology transfer in driving globalization. I won’t paraphrase him too much, as his presentation will be posted to the Blackboard website later on, and his slides will work pretty well without the voice over, but I was struck by some of his statistics.

This year, humanity will generate some colossal number of exabytes of new “information”, equivalent to the sum total of information generated in the last 5000 years. He didn’t comment on how much of this stuff will be useful; I have a gloomy suspicion that 90% will be viagra spam, and much of the remainder will be pointless barking into cyberspace in the form of blogging.

But let’s assume that plenty of “applicable knowledge” is generated. Students now entering the third year of a degree programme will find the stuff they learned in their first year is out of date. As educators, therefore, we should be concentrating on developing learning skills rather than content, since we are preparing students for jobs that haven’t been created, to use technologies that haven’t been invented, and solve problems we don’t even know exist.

Next, I attended a panel session with early adopters of WebCT/Blackboard Vista. Only some of them had upgraded to Vista 4, some relatively painlessly, others… less so. One of the presenters made an interesting point about scalability: yes, you can add a few application nodes and extra database servers and run the whole shebang behind a load-balancer to serve hundreds of concurrent users, but some of the software tools themselves don’t scale particularly well. The assignments tool, for example, rapidly becomes unwieldy once you get past 50 students on a course. To be fair, I’m sure there are examples in all VLEs.

Each presenter made passing reference to “stability” being a source of complaints from the users. A fellow delegate saved me the job of pressing them on this point. Perhaps unsurprisingly, given they were invited to speak by the vendor, the presenters did a good job of blaming external factors, such as the unexpected consequences of operating system updates, pop-up blockers buried in some anti-spyware tool, Java version changes and so forth. I almost followed up by asking whether it’s such a good idea to impose strict preconditions on the user environment in the first place, but perhaps that’s a question for the developers themselves.


February 27th, 2007|Conferences|1 Comment|

WebCT 6 Testing Checklist

The University of Houston and University of Houston-Victoria came up with a testing schedule/script to ensure their installation of Vista worked with various browsers, operating systems and java versions. I doubt we’ll have the time/inclination to test every possible environment, but it could be a good checklist for testing the student & staff builds, at a minimum.