About Chris Fryer

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

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.

February 10th, 2017|Announcements, Moodle, Teaching & Learning, Tools & Technologies|Comments Off on Our plans for Moodle|

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.

November 26th, 2010|Images, Audio & Video, Tools & Technologies|Comments Off on Publishing Echo recorded lectures in Moodle|

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.

December 6th, 2007|Announcements, Tools & Technologies|Comments Off on LSE shortlisted for the Institute of IT Training 2008 Awards|

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|Comments Off on BbWorld Europe 2007 Part Trois|

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.

May 4th, 2006|Tools & Technologies|Comments Off on WebCT 6 Testing Checklist|

LMS Comparison Wiki

I stumbled across this today:

Not sure if it tells you anything you didn’t already know. Yet another Wiki, too.

February 10th, 2006|Tools & Technologies|Comments Off on LMS Comparison Wiki|

WebCT 6 single-box

More a bookmark than a blog entry, but you can set up WebCT CE 6 as a single-box solution, according to the hardware requirements. Good while we’re evaluating, given the restrictions in the machine room.

October 28th, 2005|Uncategorized|1 Comment|

SOAP implementation for Moodle

Some Italian developers have come up with an API for moodle, using SOAP. They presented a paper (PDF) at OSS2005 describing the rationale; essentially getting Moodle to talk to other student-information management systems at Genoa. This would be an alternative to hacking Moodle’s database to replace some tables with views of CMIS.

The plug-in is still in development (of course), but can be downloaded from the Moodle Development section in Using Moodle

October 24th, 2005|Uncategorized|1 Comment|