OU blog

Personal Blogs

New blog post

Visible to anyone in the world
Edited by Sam Marshall, Monday, 8 Jun 2009, 12:14

From the standard Moodle forum configuration:

'Long post: Any post over this length (in characters not including HTML) is considered long.'

Soooo.... er.... longpost is long?

Share post

Hawthorn chat

Visible to anyone in the world
Edited by Sam Marshall, Friday, 5 Jun 2009, 17:00

Two posts for the price of one today - I wanted to plug Hawthorn chat.

Hawthorn is a personal project of mine - it wasn't developed in work time. It's an open source (GPL) text chat system designed to be unbelievably simple (to use, not to install) with virtually no features and high performance. It doesn't work on its own; you need to integrate it with an existing website that has an authentication/logon system.

Here's some of the reasons you might be interested in it if you want to add text chat to a website that you run:

  • Hawthorn has no features except text chat (group chat, one box). There's nothing for users to learn.
  • It is, hopefully, extremely fast; and doesn't place any load at all on your existing server.
  • No browser plugins are required; it's all JavaScript. (The server-side runs in Java, but users don't need to have Java installed.)
  • It can be integrated into JSP or PHP web applications using the provided libraries, or into virtually any other platform if you do it 'from scratch'.

And last but not least...

  • It comes with built-in support for Moodle! This installs as a course block and allows either coursewide chat, or group chat, or both. Supports groupings, too.

Check out the PDF that comes with the download if you want to learn more; the documentation's quite extensive.

Although I didn't develop this as a work project, we're evaluating this for possible use here. At present though I don't think anyone has tested this on any kind of scale so be a bit cautious if you do try it. smile

PS Google Wave? Screw that noise... smile

Share post

New blog post

Visible to anyone in the world
Edited by Sam Marshall, Friday, 5 Jun 2009, 17:06

I'm making some progress on the forum, in between bugfixing and eating licquorice all-sorts (thanks James!). Here's the index.php:


If you squint, you'll see that it is basically the same as the current forum's index screen. (Of course, if you're an OU user, you may realise that we don't actually use the forum index screen here!) There are three notable changes:

  1. The 'unread' count is given as a number of discussions containing unread messages, rather than a number of posts. (This was easier to compute and makes more sense since it's next to the total number of discussions, not posts.)
  2. Feeds are available in both Atom and RSS format (like our blog). These don't actually work yet.
  3. The 'general / learning forums' dichotomy isn't present. This forum doesn't integrate with the latest course news block etc, so there isn't really any such thing as a 'general' forum.

Clicking on the links to the forum takes you to the forum discussion list, which isn't done yet either... smile In fact this is the first 'finished' main UI screen (the global settings page is finished too, but that's not very exciting).

Share post

New forum - start!

Visible to anyone in the world
Edited by Sam Marshall, Friday, 29 May 2009, 14:46

Okay, it's not really the start. I did a lot of back-end implementation before. But I've just begun the serious development phase for the new Moodle forum we're developing, 'forumng'.

(Just to clarify for anyone not aware of the situation: we are developing a new forum independently, for our Moodle 1.9-based system. This is not going to be included directly in standard Moodle. However there is a prospect that our new forum might be considered for inclusion somewhere in the Moodle 2.x series.)

Since the 'basic' part of the back-end was done, this week I've been focusing on the next task on the list: getting email (subscription) support to work. It turns out that this is a pain in the backside to test when you have literally no user interface. smile However, I've managed to do this using the utility I built for load testing which creates forums, discussions, etc.

I've been taking lots of code from the existing forum, and then changing it to fit in with my new infrastructure. That leaves the code almost entirely different, but should still mean that behaviour is rather similar to the current forum. The worst bit was digests where all my assumptions were wrong. Yay!

  • I assumed digests were sent out at an arbitrary time per-forum. They're not, the time is specified and it is done across the system.
  • I assumed this time would be the same for everyone. In fact, in the current system, if digest time is 17:00 then it is sent out at 17:00 in each individual's timezone. Because this would be a right pain in the backside to implement, I decided not to bother; in forumng it always uses server time. I didn't see that much extra value in the current behaviour, especially as most sites relate to only one timezone.
  • I assumed digests were sent per-forum. They're not, they're sent per-course. (They do only include forum messages though and not anything from other activities! Phew.)

As a result I had to change my data model in this area, although the good news is that I was able to throw away one table altogether.

Anyhow it all appears to work now, but I guess I wanted to post because (a) this is what I've been doing for most of the week, and (b) there's a moral to the story: I don't personally use digest mode. That means I don't know how it works and any assumptions I make are liable to be wrong! And they were.


PS I'd be interested in stats for how many people actually use digest mode. Here's a query that works in Postgres:

select 100.0 * (select count(1) from mdl_user where maildigest<>0) / (select count(1) from mdl_user) AS percentage

Our percentage is... drum roll... 0.1%! Ho hum. But to be fair, we don't exactly make it easy for people to edit their user profile options.

Share post

Angelic, er, alternatives?

Visible to anyone in the world
Edited by Sam Marshall, Friday, 22 May 2009, 17:43

Last week I wrote a blog post about how crazy we must have been to make so many changes to the quiz system, causing it to become buggy because we couldn't reliably merge changes from new core Moodle versions.

This week I thought I'd write the opposite post explaining why we did this crazy thing... and why we might be doing more.

Basically it's quite simple - we're a huge institution and we have many existing procedures and policies when it comes to assessment. If we only used Moodle Quiz for formative quizzes, that would be fine. But we're trying to use it to replace the old paper-based multiple choice tests, too. Those count toward marks - so all the usual policies apply.

Data protection law is also a big deal. We have to make sure that the wrong people don't get to see student marks. For example, I just had to fix a panicky last-minute bug in our upcoming release. We have these custom quiz reports (which are part of the 'sort of in Moodle 2.0' work I mentioned last time). It turned out that one report didn't properly support groups, meaning that a tutor in one group could see the marks of students in other groups - not just their own. Oops! Apparently, that's a data protection issue.

(Personally, I get to see everyone's Moodle Quiz marks across the whole system, should I choose! Insert evil laughter here.)

In addition to the law, and university policies, there are also expectations involved with the fact that we've been doing things a certain way for a very long time. The Open University was a pioneer of computer-marked assessment. (And that's not an overstatement - I worked on a previous system that interacted with the assessment results from the current paper-based system; a student's results were, and quite possibly still are, represented as ASCII text files... with characters that have to be in specific positions in each line... because these files are exact representations of the punched cards used in a previous version of the system. Yes, really*.)

* ...well, probably. And it's a fun story.

When we've always done something one way, it's kind of hard to tell people 'nope, you have to do it differently now' - especially in the cases where 'differently' is actually 'worse'. Nobody's complaining that we got rid of punched cards, but pretty much anything else is open for argument.

The next looming challenge is double-marking of essay questions. Moodle quizzes can include human-marked questions. That's great! Unfortunately, University rules say that these questions have to be double-marked (marked independently by two different people who each can't see what the other gave it, and I guess with some procedures if the marks are significantly different). This isn't possible within Moodle. At present we solve this by... errr....

...printing out the answers and sending them to the two markers, who write down the marks (like, with a pen) and send them back (like, in the post) to the relevant department here, who work out the correct mark (like, with a calculator) and type it back into the Moodle gradebook (like, literally a person typing them in one by one).

As you can see that can't continue and drastically reduces the chances that we can use this kind of question at all. So there's a worrying prospect that we may have to make more, scarier custom changes to Moodle quiz in the future!

Key word, though: 'future'. Yep, I'm still waiting for Tim to get back. smile

Permalink 2 comments (latest comment by Sam Marshall, Wednesday, 3 Jun 2009, 13:38)
Share post

Devilish differences

Visible to anyone in the world
Edited by Sam Marshall, Friday, 15 May 2009, 17:50

(I thought I'd start with a long technical post just to scare off any non-geek readers! Well, maybe that wasn't the reason, but.)

My advice for any organisation that has developers working on customisations to Moodle code is to keep your changes to a minimum. Completely new code that plugs in - new modules, new admin reports, new blocks - is fine, go crazy. But try as hard as possible not to change existing Moodle core code, even if that means telling your users 'no we can't do that'.

Here's where it came up this week - our quiz module. Oh, dear gods, our quiz module. I'm not particularly enamoured of the fact that we've renamed it 'iCMA' (obviously somebody thinks that's a much snappier name than 'quiz') but hey, that was a local language file, so it didn't cause a difference from Moodle core code. Great!

Unfortunately the eighteen million other things we've changed in quiz did cause a difference from Moodle core code. We have custom navigation, custom statistics, custom reports, custom interface, custom question banks, custom grade calculation, custom ARGH. Some of this is kind of based on work which we were sort of hoping would go into Moodle 2.0 and become standard. But what's actually ended up in Moodle 2 is probably going to be a bit different, won't cover all of it, and is still at least a year away! (From becoming the OU's Moodle platform, that is. I'm not speculating on the public Moodle 2 release date. If you need more information on that, please see this definitive reference.)

The changes to our quiz module are so significant that - unlike every other area of code - we've given up merging bugfixes and other modifications from the Moodle 1.9 'stable' branch - there are so many changes it's impossible to merge without somebody completely expert in the system. While the rest of our platform is just moving to 1.9.4, I don't know where the quiz is, 1.9.1 with bits of 1.9.4? Nightmare.

In this particular case somebody was a little bit over-eager when merging in the 1.9.4 changes. They noticed that one file in quiz actually didn't have any OU custom changes! What an opportunity! So they merged the core changes for that file.

Unfortunately, that file turned out to call a function in another file - which had been newly added in 1.9.4, but hadn't been merged in, because the myriad OU changes already in that file made it too complicated.

For now I have fixed this by de-merging the changes and going back to the older version, which presumably means that we are again suffering from a bug which is fixed in standard Moodle. Yay.

So in summary, this is what we did. Don't do it.

Oh and the solution above might sound a bit short-term, but no worries - I have a long-term plan too. It is 'Wait for Tim to get back here and let him fix it'. smile

Share post

About this blog

Visible to anyone in the world
Edited by Sam Marshall, Friday, 15 May 2009, 00:38

Hi! I'm sam marshall and I work for the Open University as a 'leading technical developer' on our Moodle-based virtual learning environment.

I work on some of the student-facing parts of the system. Occasionally I make contributions to core Moodle code, but more often I'm working on some of our extensive customisations or features.

This blog will probably be updated rather rarely, maybe once a week, with chat about stuff I'm doing: technical problems, new features, annoyances, and so on.

If you want to know what ghastly crimes the OU is committing with our modifications to Moodle, this blog might possibly be of interest!

Note: Due to limitations of the current system, only those with an OU login can comment here. Apologies.

Permalink 2 comments (latest comment by Sam Marshall, Friday, 15 May 2009, 00:37)
Share post

This blog might contain posts that are only visible to logged-in users, or where only logged-in users can comment. If you have an account on the system, please log in for full access.

Total visits to this blog: 226267