This page aggregates blogs and status info from Moodle developers. Please contact Helen if you'd like your feed added.
30 June, 2009
It's not a Friday, but it is way too hot (about 30C in our office) and I need a break, so here's a blog post.
This time it's about accessibility. I had a think (and discussed with one of our in-house experts) what to do about screenreader accessibility for forums. Turns out nobody really knows.
Here's my best shot at it - this is a screenshot of a ForumNG discussion with 'View / Page Style / No Style' in Firefox, which is a convenient way to approximate what screenreader users 'see'. (Yes, there are extensions etc. that do it more accurately - or you could actually use a screen reader, but last time I installed JAWS it did horrid things to my computer, so not going there again. Anyhow.)

Here are the accessibility points in the above screenshot:
- Each post has a level-2 heading (which is not visible to sighted users). This means that screenreader users can skip through posts by pressing the H key. [If the post has a subject, that'll be a level 3 heading.]
- The level-2 heading gives each post a number (not visible to sighted users). Numbers are in date order of posting.
- The heading tells you which post (by number) the current one is a reply to. (That's also a link, should it be necessary to skip back up to the parent post.) This is important because screenreader users likely don't have access to the visual information that indicates it - indents to indicate which post replies to which.
- Also in the heading is information about the category of the post that is otherwise only available visually - whether it is 'summarised' (showing only the first few words) or not, whether it is 'unread' or not.
- All the links that are copied for each post (Reply, Edit, Expand, etc) contain the post number so that the links are unique. [Having lots of links with identical titles is an accessibility problem.] Again, the post numbers do not display to sighted users, there it just says 'Reply'.
- There is some use of appropriate XHTML: in addition to headings (as mentioned), the per-reply commands have been formatted as an unordered list.
I'm sure we can do better but I think this is a good start and it illustrates a few tricks and issues so I thought it might be useful for other people.
If anyone has easy-to-implement suggestions about improving accessibility further over this layout, please add them here. Difficult-to-implement suggestions will probably be ignored. :)
by Sam Marshall at 30 June, 2009 03:42 PM
27 June, 2009
Having ended up with a spare iPhone from a recent upgrade I decided to try jail-breaking the old one and see what software was out there away from the restrictions of the app store. I discovered that lighttpd, php and sqlite were all available from the software repositories for download - these three combined are enough to run a Moodle server. So out the window went cleaning my flat and sensible tasks - I had to make my phone into a Moodle server!

Getting the software for moodle installed and configured was relatively painless, the 'cydia' software installer appears to use dpkg under the hood, so I installed openssh server and apt through the gui installer and then sshed onto the phone to do the work with a full size keyboard and the moodle server was up and running quite quickly. (More details for configuration below).
Sqlite is a really interesting technology which seems to be making its way into a lot of software and I was quite interested to see Moodle support for lightweight testing sorts of applications and it has made its way into Moodle thanks to the great work of Andrei Bautu in his GSOC project last year. It only exists in the highly unstable Moodle 2.0 development branch so I needed to install this on my iPhone. Development is moving incredibly fast in the Moodle 2.0 branch so I was not at all suprised to see that the sqlite driver was not working.  It took a bit of time to find out what the major issue with the driver as it was a silent error. But I eventually found and fixed the major issue.
Sadly, despite successfully installing and passing most of the database unit tests on my development machine with sqlite, some database queries were continuing to cause the iPhone server issues. I spent some bit of time improving the sqlite driver to show more debugging information and get to the bottom of the issue.
After a lot of debugging and irritation, it seems that the sqlite library version (3.3.7) linked to from php has a bug/incompatibility which means it does not like queries like:
SELECT student.id FROM mdl_user student JOIN (SELECT ra.userid FROM mdl_role_assignments ra) roles ON student.id = roles.userid
It'll report: SQLSTATE[HY000]: General error: 1 no such column: roles.userid
Where as it will work fine with something like:
SELECT student.id FROM mdl_user student JOIN (SELECT userid FROM mdl_role_assignments ra) roles ON student.id = roles.userid
(That was a simple example to try and find the problem - the SQL we have in moodle is a lot more complex that that).
To confuse matters, the sqlite command line tool I was using to test on the phone itself was a newer version (3.6.12), which works absolutely fine with both queries. The same was true on my development machine, which meant that I could install with sqlite succesfully everywhere but the iPhone itself.  I assume the php version has been linked to the iPhone OS version - but I am too lazy to check/do something about it!
While I don't yet have a working moodle server install running on the phone itself, the exercise in improving the sqlite driver has been really useful. I've updated the driver in CVS, on recent sqlite versions it is only currently failing 9 of 1298 tests. (CEIL and SUBSTR being the major issues - but they are only used for stats and the admin healthcheck) so its really looking like a really useful option for those situations where a full-grown database server is overkill.
I've put a video of the (disapointing) install on youtube and you can find details of the various bits of configuration below.
Configuration Details
I love apt
apt-get install lighttpd php sqlite3 git
I've never configured lighttpd before, but a quick search for configuring with php and I made a very simple config with /etc/lighttpd/lighttpd.conf and /etc/lighttpd/mod_fastcgi.conf
JB-Phone:~ root# cat /etc/lighttpd/lighttpd.conf
include "mod_fastcgi.conf"
server.document-root = "/htdocs/moodle"
server.port = 80
server.tag ="lighttpd"
server.errorlog = "/htdocs/log/error.log"
accesslog.filename = "/htdocs/log/access.log"
server.modules = (
"mod_access",
"mod_accesslog",
"mod_fastcgi",
"mod_rewrite",
"mod_auth",
"mod_fastcgi"
)
index-file.names = ( "index.html", "index.php" )
# cat /etc/lighttpd/mod_fastcgi.conf
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"
)
)
)
And started the webserver manually with:
lighttpd -f /etc/lighttpd/lighttpd.conf
I created the /htdocs/ directories - and git cloned moodle into /htdocs/moodle and created the moodle config file as mentioned in the sqlite moodle docs:
$CFG->prefix = 'mdl_'; // prefix to use for all table namesV
$CFG->dbtype = 'sqlite3';
$CFG->dblibrary = 'pdo';
$CFG->dbhost = 'localhost';// leave dbhost to localhost (or blank) to store the database file in Moodle data directory
Oh and I was also naughty and made the 'zip' php extension an optional item (as it wasn't in the packed php version):
diff --git a/admin/environment.xml b/admin/environment.xml
index e15a33b..94ed8f2 100644
--- a/admin/environment.xml
+++ b/admin/environment.xml
@@ -262,7 +262,7 @@
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
- <PHP_EXTENSION name="zip" level="required">
+ <PHP_EXTENSION name="zip" level="optional">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
Enjoy!

by nospam@example.com (Dan Poltawski) at 27 June, 2009 09:27 PM
26 June, 2009
By today I'd hoped to have the ForumNG discussion display working in the basic non-JavaScript version, but that was not to be :(
I've got about half-way through the display of single posts, which is obviously a key part of this, but.
On the plus side, the forum view page is pretty well complete now (the sorting options work, mark read works, etc).
As for why that discussion code isn't done yet, well, out of five days this week I've recorded 1.25 days of development. The rest is code review and otherwise assisting the other developers on my team; fixing problems with our live system, and analysing a performance question (we've just made a 3% performance improvement, woohoo); providing support for users of our existing stuff; etc. I sincerely hope next week is better, otherwise I may need to go into hiding in order to get anything else done.
Oh, and I've now seen a document sent by aggrieved FirstClass users. For non-OU people: FirstClass is the existing commercial conferencing system we use; it's being phased out in favour of Moodle forums, which is basically why I'm writing an updated Moodle forum version.
They seem to be rather concerned about bandwidth usage! I'll have to make sure ForumNG is reasonably efficient in that regard... now I'm wondering whether I should change all my CSS class names that begin 'forumng-' to 'fng-', which would save a whole 5 bytes each time...
[Conclusion: Er, no.]
Or, maybe if we turn on gzip transport compression they will be perfectly happy with getting rid of FirstClass...?
[Conclusion: Hell no. :)]
by Sam Marshall at 26 June, 2009 04:29 PM
25 June, 2009
I'm pleased to announce that demo.moodle.org now has a new course - Romeo and Juliet Sample Unit - thanks to Lesli Smith of Moodlerooms.  The course includes a variety of activities, and course participants are arranged into two groups, Montagues and Capulets. Our demonstration site provides the opportunity for you to explore some of Moodle's features as a student, teacher or administrator. It's no problem if you make a mess, as the whole site is reset to a clean state every hour. The site is regularly updated and is currently using Moodle 1.9.5+. If you don't have a separate Moodle site for testing, then demo.moodle.org is a good place for checking whether a certain bug affects all Moodle sites, or just yours, and whether a bug has been fixed in the latest stable release of Moodle.
25 June, 2009 01:46 PM
Moodle and Mahara complement each other quite well, and it’s been possible for a while to set up SSO between them.
We do a lot of Moodle+Mahara with SSO for our clients - and most of these are hosted on the same web server, but following the instructions in the document I linked above can be tedious and time-consuming!
So I wrote an auto-config script that does the work for us!
to keep it simple at this stage it is a single file, it contains lots of hard-coded error strings, and doesn’t always display them as pretty as it should, but it works!
just drop the file into your moodle/admin directory and call it via the browser (you will need to be logged in as an admin to use the script)
if your Mahara install has been dropped into your Moodle webroot, or if it’s in the directory above your moodle webroot it will automatically find it, and display the path in the form on the screen - if not, you will need to know the server path to your mahara install - it’s the same as the $CFG->dirroot you have configured in the Mahara config.php
Once you’ve entered the Mahara dirroot on the form - hit execute, and it will go through all the steps necessary in Moodle and in Mahara to configure them to talk nicely to each other! - when it gets to the Mahara configuration, you will be asked to login to Mahara - make sure you login as an admin!
the file is available here (although I’ll put it in contrib and the modules & plugins db at some point soon)
keen to hear of any issues you experience or any ideas for improvment!
by dan at 25 June, 2009 02:28 AM
23 June, 2009
I was just reading this criticism of Moodle, and the thing that strikes me about Bryan Ollendyke's criticisms are the reactions of a software geek. They are also very familiar. I had a similarly horrified reaction the first time I saw the Moodle code (and got into trouble with my boss at the time for speaking my mind at an inopportune moment ;-)) and three and a half years later the same criticisms still apply. But what I have come to learn over the last three and a half years is that it does not really matter. That is somewhat humbling. I am a professional software developer. I have worked hard to learn to write good code; to build and appreciate elegant and powerful software architectures; to design usable interfaces with modern UI idioms; and so on. However, as I say, that seems not to be very important. Teachers all over the world use Moodle to create great (and ordinary) learning experiences; teachers who move from other learning management systems tend to like Moodle better than whatever they were using before; and all sorts of people from all over the place seem to be able to write plugins. All that, despite Moodle not being a text-book example of software design. So, are Bryan and I and others with similar opinions just software engineering snobs? Well, probably yes, up to a point, but it is our job to care about these things. Other things being equal, we should do things the right way. The point is that some of the other things are much more important than the cool (or not) technical things going on behind the scenes. The most important thing is education. Moodle's genesis was in Martin Dougiamas's postgraduate studies of online education; but more important is that the Moodle project, led by Martin, has always focussed on engaging teachers, as well as developers, in the Moodle community. To use the HCI jargon, Moodle has always practiced user-centred design.  Now, if you are an expert in HCI design, and you have seen parts of Moodle like the quiz settings form (screen-shot right), then that last sentence might make you laugh. That form is a typical long Moodle form with a million fields you can fill in. In the technical details it does not follow recent user interface best practice. However, suppose you really want to simplify it. The best approach would be to find some options that nobody really needs, and remove them. Well, believe me, I have tried on several occasions. I have convinced myself that some feature is pointless and posted in the quiz forum. Of course, I quickly get a lot typical 'How dare you! I love it that feature. I'll throw my toys out of the pram if you remove it.' responses. Then, invariably, someone will make a well reasoned post that explains a compelling educational situation where that feature really makes a difference, and I will realise why that feature was added in the first place, and why it would be a mistake to remove it.
That is the thing. All those features that bloat the interface are there because someone wanted them badly enough to implement them. Even if they were not a professional developer, and even if their code is not first rate. On the whole, it is probably better for Moodle to have those features than not, even if that means that the interface is not great. We are not here primarily to build beautiful interfaces. We are here to let teachers build beautiful learning experiences. Of course, that is not an excuse to just ignore defects in the interface. We should, and do, go back and apply HCI know-how to improve the interfaces of existing features; and these days we do try to think about UI design for new features before we implement them. We are learning. To reiterate my main points in summary: While we developers should strive to do the best job we can, technically, we should not be snobbish about it. We must remember that the most important people for Moodle are the teachers and learners, and it is our job to serve them. We should not reject contributions from people who know lots about education, even if they do not write code as well as we do.
by Tim Hunt (noreply@blogger.com) at 23 June, 2009 12:45 PM
19 June, 2009
Here's another forum update, but first, an apology - yes these posts are getting old, but it is what I'm working on, so I'm hoping it's of interest to someone... somewhere... somehow...
I could write an amusing anecdote instead... but then I can't post it here because the wrong people might read it! Bad enough that I said in one meeting this week 'this feature is absolutely insane, I'm not doing it, just no' and only then found out that the person who requested it was sitting opposite... :)
So, forum. Well, here's the 'start new discussion' screen. In a refrain which has become depressingly familiar, it looks exactly like the old one.

This form basically works now, except for all the features I haven't tested. Hey, those might work too! (Not testing code is sort of the equivalent of sticking your fingers in your ears and shouting LA LA LA I'M NOT LISTENING!!!! - it's great.)
I don't think I mentioned the technical architecture yet. While it doesn't affect the screenshot above (as you may have guessed, I created the code for this form by copying and pasting all the code from the old version then changing it about), the architecture is quite a lot different.
- This is a slightly object-oriented design: the main system is contained in classes forum, forum_discussion, and forum_post. All the back-end behaviour is handled in these classes (oh, and forum_cron).
- Forum types are now plugins and also object-oriented. Types entirely control the display of the 'view' (discussion list) and 'discussion' [not yet implemented] page, although it's expected that they will do this by using base class methods rather than really changing it too much.
One piece of good news this week, if anyone's considering switching to this forum once it's developed: Jenny (the OpenLearn lead developer) told me she's hoping to implement the conversion code so that you can convert a standard forum with all its messages into a ForumNG. Yay!
That's it for now. I'm hoping to start work on the discussion page next week (after I deal with umpteen critical bugs) and brace yourself - it's actually going to look different!
by Sam Marshall at 19 June, 2009 05:15 PM
Looking for inspiration for your Moodle course? Or perhaps you have a great glossary or other activity which you'd like to share? If so, please check out the Moodle Exchange, where you'll find databases of glossaries, database templates, Scorm packages, quizzes and even courses. A big thank you to Paula Clough and Dan Marsden for developing and facilitating the Moodle Exchange.  We can look forward in future to being able to share courses very easily via a community hub. See the community hub specification for full details.
19 June, 2009 09:08 AM
18 June, 2009
Today I'm going to be completely innovative and will skip any reference to our favourite LMS. So, apart from Moodle... uhm... oh, no! I did it... again! :-( Will try to achieve this tomorrow, grrr! :-P :-D :-P
by stronk7 at 18 June, 2009 08:38 PM
There's a huge amount of work still to be done for Mahara 1.2 to be released, and Nigel and I have decided to have a formal hackfest rather than just our semi regular Saturday morning CH/Saturday night NZ irc hackfests.
We will be in the irc channel (#mahara-dev on freenode) all weekend (barring normal everyday things like eating dinner) and working on the list of things still to do for Mahara 1.2. We will ourselves mainly be working on the theming changes that Nigel already blogged about, but anyone else interested in getting into Mahara development and helping us get 1.2 out the door would be more than welcome to join in and we have many bugs on the tracker that you can help with!
by penny@she.geek.nz (Penny) at 18 June, 2009 06:20 AM
16 June, 2009
Today, as part of our weekly code review, I tested a wiki interlinking bug which has been around since the wiki module was added to Moodle 1.4 - Wiki redirects to http://www.c2.com/cgi/wiki? ( MDL-19460). The current wiki module is based on the Erfurt wiki. However, as listed in our Roadmap, it's due to be replaced in Moodle 2.0 by a new wiki, Nwiki.
16 June, 2009 05:04 PM
15 June, 2009
I've just returned from a wonderful week at the Oklahoma MoodleMoot where I met many amazing people. The Moot was special in that there were lots of new Moodlers, so the hands-on sessions were particularly popular. It was great to be able to talk with new Moodlers about their first impressions of Moodle. There were plenty of MoodleMoot OK tweets, and as a result I decided that I should begin twittering too - see twitter.com/moodlehelen. A big thank you to everyone for making the Oklahoma MoodleMoot such a success, especially Matt Campbell for his superb organisation and Metro Technology Centers for hosting the event.
15 June, 2009 05:07 PM
I am happy to announce that Liip are now a Mahara partner! Mahara is an Open Source ePortfolio system.
In many respects Mahara is a "sister" application to Moodle, providing students with a learning environment that they themselves own, giving them them the ability to showcase their work and collaborate with their peers. However, Mahara is also well suited as a social networking system, running out of the box without Moodle.
Mahara was originally funded by the New Zealand government's Tertiary Education Commission, and has grown into a thriving open source product that is increasingly being adopted worldwide. It makes a lot of sense for Liip to be a partner, both because we're already the official Moodle partner in Switzerland, and Mahara fits very well into our existing list of projects we work with, but also because I have been involved in Mahara since the start, and wanted to continue my involvement since coming to Liip. Liip have been fantastic supporting me in this goal!
by penny@she.geek.nz (Penny) at 15 June, 2009 09:21 AM
12 June, 2009
Given the amount of time I had to spend fixing bugs and attending meetings and doing support this week, it's not surprising I didn't get that much done on the new OU forum. Still, here's another 'oh look! It's just like the old version!' screen:

As you can see, it does indeed look just like the old version - though OU users may notice we've put back user pictures, which are already in this screen on standard Moodle.
On this screen, the 'mark unread' buttons are currently non-functional, as are the links to view discussions (I haven't done that screen yet) and the 'Add a new discussion topic' button (ditto). But paging works. Woohoo! Woohoo indeed.
New features that will be on this screen, most of which also don't work yet:
- Sorting - the default sort is by 'Last post' date (newest first). You'll also be able to click on the other column headings to sort by 'Discussion' (alphabetical), 'Started by' (alphabetical), and possibly by 'Replies' (biggest first) - not sure about this one. This will be a proper database sort, so you can use it even if there are multiple pages. Note: This feature is already in the OU's customisation of old forum.
- Sticky discussions - this is sort of half-done. These will display at the top of the list regardless of sort (if there are multiple sticky posts, they will show in the selected order). These may look different in some way (eg pin icon) and there will be a dividing line between sticky posts and normal ones.
- Locked discussions - again half-done. There will be an icon (eg lock icon) indicating when posts are closed for further discussion.
- Deleted discussions - not sure if that will be at the bottom of this page, or on a linked separate page, but there will be a way for admins to view the list of deleted discussions in the forum. [In ForumNG, nothing is 'really' deleted straight away - only marked as deleted, so admins can still see it. It can be really-deleted after 30 days, or not at all if you're feeling flush with DB space.]
Another exciting progress update next week! Maybe.
by Sam Marshall at 12 June, 2009 05:01 PM
08 June, 2009
This week I'm off to the Oklahoma MoodleMoot (#mootok09). I'm really looking forward to meeting lots of familiar faces from moodle.org, as well as chatting to newer Moodlers about their experiences. I'll be sharing stories from the Moodle community in my presentation, including "Moodle millions?", "Spam - such a scandal!", "Which wiki?", "Moodle ecstasy", "Our Knight in shining armour", "Gradebook goings on", "Moodle and Microsoft" and "Resources revelations". You can find lots more interesting stories about Moodle in the Moodle stories forum.
08 June, 2009 04:08 PM
06 June, 2009
I've felt really nostalgic today. Two reasons: the first, I reviewed in the cvs history my first commit ever to Moodle, it was one tiny change to moodle/course/teacher.php (non-existing nowadays), see MDL-261, more than 6 years ago!. The second, I attended to the worldwide avant premiere :-P of some cool Moodle stories by Helen, amazing! What a day, marvellous! Ciao :-)
by stronk7 at 06 June, 2009 12:14 AM
05 June, 2009
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. :)
PS Google Wave? Screw that noise... :)
by Sam Marshall at 05 June, 2009 04:00 PM
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:
- 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.)
- Feeds are available in both Atom and RSS format (like our blog). These don't actually work yet.
- 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... :) In fact this is the first 'finished' main UI screen (the global settings page is finished too, but that's not very exciting).
by Sam Marshall at 05 June, 2009 03:49 PM
03 June, 2009
Thanks to a post by Steven O’Donnell at moodle.org, I have discoverd very interesting tool called Marginalia. Marginalia is an open source Javascript web annotation system written by Geof Glass. It allows users of web applications to highlight text and write margin notes as they can do in a desktop word processor. There is a demo site available where you can check how this stuff works.
As Steven noticed in his post, this would be a great feature for teachers and/or students to comment forum posts, online submission texts or (what a surprise ) a peer work in the new workshop module. Eventualy this might become a standard part of the Moodle core extending the current Comments 2.0 proposal. I am definitely going to consider this in the future.
by David at 03 June, 2009 08:40 PM
I've not yet had chance to see the infamous 1 hour 20 minutes video embedded in the general developer forum discussion Google Wave, but I have managed to watch several interesting videos recently by Moodlefairy aka Mary Cooch. Mary, a talented video creator, has set up a YouTube channel www.youtube.com/usingmoodle for all her videos. I particularly liked the video 'What can Moodle do for you?'  Another video I've enjoyed watching today was an interview with Martin D by Charles Severance of Sakai from 2005 (my first year of moodling) - Visiting with Martin Dougiamas. In the interview Martin answers a number of questions including 'When did you find your first really big helper?' and 'Has there ever been a situation when the community has mildly revolted?' (Edited to remove the video link, as there seems to be a bug displaying it in this blog entry.)
03 June, 2009 08:10 PM
Moodle has a new language pack, Marathi, thanks to translator Usha Deo and translation coordinator Koen Roggemans.  According to the Wikipedia article Marathi language, Marathi is a language spoken by the Marathi people of south-western India, and the 15th most spoken language in the world. Moodle has been translated into over 70 languages. According to download.moodle.org/lang, 'There are currently a total of 79 language packs', whereas Translation credits lists 75 languages. If you can figure out exactly how many language packs we have now, please let me know.  In our developer chat today, Tim Hunt was asking Martin D for a Pirate-English language pack for Moodle. Who would ever want a language pack full of 'Ahoy!', 'Aye aye!' and 'Arrr!'? I wondered to myself...
03 June, 2009 11:29 AM
01 June, 2009
I've just been updating the list of particularly helpful Moodlers in our Community credits. We have 13 more particularly helpful Moodlers since the last update six months ago. A big thank you to all our particularly helpful Moodlers past and present.  Particularly helpful Moodlers are people who have written a lot of useful posts in the Using Moodle forums, as determined by the Moodle community when they rate posts. The Particularly helpful Moodlers group was the first group to be created on moodle.org, hence the "group=1" in the URL. Members were originally added manually by Martin D or I, but nowadays it's calculated automatically based on a formula. You can check recently rated posts via a block on the Using Moodle course page, which uses the RSS feed from moodle.org/useful. Useful posts are also available via twitter.com/moodle.
01 June, 2009 08:35 AM
29 May, 2009
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. :) 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.
by Sam Marshall at 29 May, 2009 01:30 PM
28 May, 2009
Yesterday I had an enjoyable and interesting time at MoodleMoot NL 2009 in Amsterdam. This is the fifth Dutch-language MoodleMoot, with the location alternating each year between Holland and Belgium. In my presentation 'Moodle community op weg naar 2.0' I talked about some of the new features in Moodle 2.0 and about how the Moodle community can help 2.0 come sooner. Martin Langhoff gave an entertaining presentation about OLPC and Moodle, mentioning ideas for simplifying Moodle by removing lots of options. Another highlight for me was the presentation 'Mahara + Moodle = Mahoodle?' by Koen Roggemans and Richard van Iwaarden. Copies of many of the presentations are now available from MoodleMoot NL 2009 handouts. A big thank you to everyone for making the Moot such a success, especially Ned-Moove, the Dutch language Moodle organisation, for organising everything (in just two months!) and to Pieter Nieuwland College for hosting the event. Meeting other Moodlers in person is always special. 
28 May, 2009 09:22 PM
27 May, 2009
At a moodle developer meeting recently, some developers were asking if a mentoring scheme could be started up for new developers who wish to get into moodle development. Unfortunately, there just aren't enough hands on deck with time to manage to do the mentoring for something like this, despite the obvious long term benefits.
I suspect we will always be on an uphill battle to improve our documentation and resources (like many things in life, documentation isn't very exciting or give instant payoffs to our users), but there are some resources which should be very useful to new developers: dev.moodle.org, Moodle Docs and of course the forums of moodle.org.
When I think back to how I have learnt about various aspects of moodle development i've not really used many of those resources very much, instead i've been lead by the constructivist approach! My journey into moodle development started in MDL-6784, this was my second bug report, first patch and first accepted patch into moodle! Since this first patch i've reported/fixed/watched/contributed to many many moodle bugs and I think this is my secret to moodle development!
Of course this is really no secret at all, the code and bugs are open for everyone to see. But I believe that spending time finding, reproducing and resolving bug reports gives new developers an invaluable insight into various aspects - which libraries do what, what are the caeats of x, how to fix y and where to go looking for future bugs! By watching bug reports, seeing comments, reviewing patches and fixes commited slowly your knowledge of moodle wil become massive, despite a lack of dedicated mentor!
I do have a few general tips for moodle debugging which I i'd like to share (and apologise as they feel 'obvious' to me)!
You've set debugging to DEBUG_DEVELOPER, right?!
print_object() is basically print_r with whitespace and I use it at least 1000 times a day[1]. Its not just for objects Print statement debugging might not be sexy but its essential and useful
debugging() prints a stack trace - why wouldn't you use it!
grep backwards for lang strings! (grep 'my error message', find the lang string name (myerrormessage) and then grep for that)
I die() lots.
We have CVS history and bug numbers for a reason! Look at CVS history of a file and bug numbers/linked issues!
Keeping up to speed with CVS history is a really useful exercise, if time consuming
I often wonder if I would still be in moodleland if my first patch was not reviewed as speedily as it was, I think probably not. In which case how do we ensure potential contributors such as myself don't get lost in our workloads and we encourage new contributors!? Its interesting to consider.
If you are a new contributor please don't be put off by lack of review, pester us and ensure your work is reviewed because moodle is really great place to work! You could look at some other bugs while you are waiting
I'm off hoidaying - see you all soon!
[1] I also exaggerate 100s of times a day too.
by nospam@example.com (Dan Poltawski) at 27 May, 2009 11:04 PM
I’ve just noticed this post on Rustici’s Blog -they’ve also mentioned in the past about the possibility of offering a commercial plugin for Moodle and their SCORM engine.
One of the questions posed on their post is:
Q: Would open source adoption increase revenue substantially?
A: Doubtful. If the SCORM Engine were part of Moodle, for example, would any Moodle user come to us for a support arrangement? Or would they go to a Moodle host? Would we continue to appear to be a distinct entity in the eyes of a user? We don’t think so, and given that, what’s the positive impact for us? (It is, after all, about us, in some respects.)
While this may seem selfish to some people in the open source community - it’s also a very important one that many open source communities battle with! Rustici is a Business that needs to make money to pay employees so they can pay their mortgages etc… I presume a large amount of their income comes from the licensing of their SCORM engine. SCORM LMS development isn’t cheap - and it’s not always easy to find someone to fund the full development work, but it’s not as hard to find people willing to pay smaller amounts of money to get a SCORM compliant Engine! - So when SCORM 2.0 comes out finally - Rustici may be in a better position to spread the cost of development across a larger group of clients rather than the traditional Moodle method of a single up-front cost.
But eventually, an Open Source based LMS will implement SCORM 2004 and then 2.0 (maybe) - we’re hoping this will happen for Moodle soon! - So any income that Rustici receive for licensing may decrease significantly when that happens. But - if the SCORM engine in Moodle was an open-source engine from Rustici - then the profile Rustici would get from this integration could improve Rustici’s revenue rather than decrease it!
So will Rustici release an open source version of their Engine? - I would love to see it happen, but I don’t think it is likely at this stage! - in the meantime it will be good to see a commercial offering from them to allow people who really need compliance/certification inside Moodle to have a viable option!
by dan at 27 May, 2009 08:57 AM
26 May, 2009
I'm really privileged to be a mentor for Google Summer of Code with Moodle again this year! If you've not heard of google summer of code before the basic premise is that google fund university students to work on open source software over the duration of their summer break. The idea is to get more contributors into open source software and moodle is a proud participant to this great scheme. The great slogan is 'flip bytes not burgers!'
Penny and I are really excited to be mentoring Christopher Waclawik in his project to make XML administrative settings for moodle. We're just coming to the end of the community bonding period, developing the specification for the project and moving towards the start of coding, but of course we still need absolute community involvement!
Moodlers, imagine the prospect of installing moodle, choosing your local language and default settings which fit best with how you would like your moodle to be setup. This is one of the great aims of the project!
The advantages of these defaults have perhaps best shown themselves to me in the lively discussions which took place recently about grades over 100%. This concept of grades over 100% doesn't seem to have spread much further than the in the USA, many outside the USA can't understand the concept and indeed the original release Moodle 1.9 didn't support this concept at all. Functionality has now been implemented in moodle to allow this - but it is not default. This choice makes sense to many but those who feel like this functionality is essential - like many localised settings in moodle its impossible to get the perfect defaults for all scenarios - this is really where I see these defaults fitting in.
In my own day job we are frequently overriding moodle defaults to fit more with our localised environment (UK schools) so I realy can envisage the advantages of these for institutions rolling out moodle. But what perhaps I think is the most exciting element of this project is that it doesn't have to be exclusive, we could all create 'dans awesome moodle settings' moodle settings, share them amongst oursleves and satisfy our local preferences or legsilsative obligations. This power of templates might help to combat the misconception that moodle doesn't fit 'x senario'.
Please contribute your thoughts to Chris' project specificaton, point out areas we've forgoten and other improvements we've missed! This is the great thing about open source, we're hoping for you all to become involved and become invaluable resource to us all!
See the progress in MDL-18548, Development:XML_Administrator_Settings and in the forums.
by nospam@example.com (Dan Poltawski) at 26 May, 2009 12:49 AM
23 May, 2009
Now that we’ve manged to get Moodle 1.9 Stable to pass all the SCORM 1.2 tests, there’s been a lot of talk between Moodle Partners and other Moodle users about SCORM 2004. I’ve posted about this in a few places in the moodle.org forums 1 2 and I’ve sent various e-mails to a range of interested users! - here’s my attempt at summarising it all in one post!
To get to where we are today took 3 months of solid funded work (thanks to Moodle HQ) from 1 full time Senior Developer(Piers), with 1 part-time Senior Developer supporting(me). This included closing approximately 160 issues in the Moodle Tracker, and modifications to support the ADL test suite.
The SCORM 1.2 test suite comprises of 2 test packages. SCORM 2004 contains 103 test packages, of which Moodle currently passes 2 (at least it did last time Piers ran the tests) - It’s really hard to define how much time it would take for us to complete SCORM 2004 so it passes all the different tests!
Sequencing and Navigation is a big chunk of SCORM 2004 that isn’t implemented - we expect that once this work is completed a bunch of the test packages will pass. I’ve seen estimates that put completion of SCORM 2004 work at 6-8 months or even more! - there are also a range of SCORM 2004 bugs that are related - for more details see MDL-7068
We’re currently attempting to source an initial 3 months worth of funding to continue work on SCORM 2004 - we believe that 3 months would be a worthwhile effort, at the end of which we would have an accurate picture on what it would take to complete! - bounce me an e-mail if you might be able to help fund this! - dan@danmarsden.com
by dan at 23 May, 2009 11:44 PM
22 May, 2009
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. :)
by Sam Marshall at 22 May, 2009 04:32 PM
I've finally got around to checking out the new repositories feature in Moodle 2.0, which allows users to browse external repositories such as Box.net, Flickr or Wikimedia, and select files to bring into Moodle. It's fabulous! Kudos to Dongsheng Cai, Jerome Mouneyrac, Martin D and everyone else who helped with development ( MDL-13766).  There are currently 15 possible repository plugins to choose from, though lots more are planned (see MDL-16543). As a Google Docs user, I was pleased to see Google Docs in the list, thanks to Dan Poltawski and Dongsheng ( MDL-16383). If you're a developer thinking about writing your own repository plugin, please see the guide Development:Repository plugins.
22 May, 2009 12:07 PM
19 May, 2009
Eloy reminded me the other day of the importance of linking between Moodle Tracker issues and forum discussions to ensure that developers and testers have the full picture. It's easy to add a tracker issue link to a forum post - simply type the issue number and the tracker issue auto-linking filter will do the rest. Adding a tracker issue link to a forum post encourages others to watch, vote for and/or comment on the issue. If you're looking for a challenge, you may like to check out a particularly difficult issue which Eloy reported a while ago - MDL-15169. 
19 May, 2009 03:09 PM
15 May, 2009
(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'. :)
by Sam Marshall at 15 May, 2009 04:41 PM
The Workshop module specification has been marked as “Waiting for the approval”. I have incorporated valuable comments, ideas and suggestions that came during the community feedback period. Many thanks to Penny Leach, Mary Parke, Rick Barnes, Dan McGuire, Tim Hunt, Daniel Brouse, Mark Pearson, Matt Gibson and Vernellia Randall for their replies in the request for comments thread.
According to the Gnome Time Tracker, I have spent 51 hours and 32 minutes working on the specification (includes the time I was testing the current behaviour and was studying the source code). I think I’ve got a clear vision how 95% of the new module should work, how 85% of the UI should look, and how 75% of the internal API should be. So, I think it’s time to hack some code and chew bubblegum. And I’m all out of bubblegum.
by David at 15 May, 2009 03:07 PM
With just over a week left of our GSOC community bonding period, I've been checking how each of our six students are getting on. Everyone now has a blog for keeping the Moodle community informed of their progress etc - see GSOC/2009 for links. Nearly everyone has a project specification in Moodle Docs, and has posted in one of the Using Moodle forums asking for feedback.  I've also been checking any new/updated entries in our front page databases. Fortunately I have lots of help with approving database entries (thanks to all our volunteers assigned the role of non-editing teacher), though sometimes Moodle Jobs database entries need amending to ensure they comply with the Trademark License for Moodle. The Moodle Jobs database currently contains around a hundred adverts for Moodle-related jobs offered and wanted.
15 May, 2009 08:20 AM
14 May, 2009
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.
by Sam Marshall at 14 May, 2009 02:11 PM
05 May, 2009
As part of our weekly code review this week, I chose a couple of XHTML strict validation issues to test. This was easily done by enabling the xmlstrictheaders setting in Administration > Server > Debugging. A few days ago I came across a Drupal initiative for encouraging community members to help with testing - Patch review sprints. It seems that sprints have become popular in some Open Source projects. In our developer meeting last week, Penny's idea of a Moodle bug sprint was met with enthusiasm.
05 May, 2009 07:18 PM
04 May, 2009
It seems that lots of newcomers to moodle.org end up in the Lounge and completely miss the message: " Please do not post here asking for technical help with Moodle itself! Use Moodle Support for that (it's probably the quickest way to get an answer!)." and post their Moodle questions in the social forum. In the hope that less posts of this kind in the Lounge will prevent other newcomers from making the same mistake, I've been tidying up and moving discussion threads into the Using Moodle course. In case you're wondering how this was done, I've written down the method in tracker issue MDL-12622. (I decided not to add it to the Forum module FAQ as I thought it pretty unlikely that people would want to move discussion threads between courses. If I'm wrong, please vote for the issue!) For those of you who asked how I hid certain themes database entries last week, please see the Database module FAQ. Whilst we're waiting for blog comments to come in Moodle 2.0 ( MDL-8776), if you have any comments about my blog posts, please feel free to send me a Moodle message.
04 May, 2009 01:16 PM
30 April, 2009
Working on the Workshop 2.0 specification, I studied the current behaviour of the module. I needed to figure out how the calculation of grade for assessment (also known as grading grade) works. This part of the module has always been a mystery for me – and I was not alone. Before I learned how the calculation actually works, I proposed to rewrite it from scratch. Interesting. Is it just me tending to push own solutions instead of trying to understand someone else?
After some time studying the code I realized the ideas behind are pretty clever. Now I think there is no need to reinvent the wheel. If the calculation is documented well and the Workshop module has advanced reporting features that help to understand and explain why a student received the grade, the current algorithm should be kept.
Some non-trivial issues and questions emerged, however. The calculation is based on some basic statistical estimations. To be able to measure the quality of assessments, it is assumed that for a given student’s submission there is the only one theoretical objective assessment. Something like “if Zeus assessed the submission, he would give it 67/100″. Is this philosophically right? Is there the only truth about the work out there? And also – the grading in Workshop is determined by the grading form designed by the teacher. So even if Zeus is absolutely objective, his assessment is paltry if he has to use a crappy grading form.
It is clear the Workshop has a potential to be very mighty evaluation tool. In hands of a reckless teacher it becomes a dangerous weapon, however.
by David at 30 April, 2009 11:04 PM
|