This page aggregates blogs and status info from Moodle developers. Please contact Helen if you'd like your feed added.

07 November, 2009

Helen Foster

Moodle 2.0 QA testing

This week I've made a start on setting up tests in the Moodle Tracker for our Moodle QA / functional testing - see MDLQA. (Thanks to Jerome Mouneyrac for figuring out how to use Jira as a Test Case Management Software and to Martin for creating the project.)

Up to now, we've not had any organised testing of Moodle features prior to the release of a new version. We're hoping for lots of help from the community to ensure Moodle 2.0 is the best release yet!

If you're wondering when Moodle 2.0 is likely to be released, the answer can be found in our Administration FAQ together with links to further information.

07 November, 2009 11:41 AM

03 November, 2009

Helen Foster

Over 120 thousand Moodle downloads last month!

Our latest monthly download statistics show that Moodle is more popular than ever!

Following the release of Moodle 1.9.6 and 1.8.10, the download figures for October 2009 rose to a record high of 127052 downloads! (Note that this figure is just for packages downloaded from moodle.org/downloads and does not include site updates via a CVS mirror server as described in CVS for Administrators.)

For more statistics, including proportions of registered sites using different versions of Moodle (with a surprising number still using 1.5.x) please see moodle.org/stats.

03 November, 2009 12:18 PM

01 November, 2009

Dan Marsden

Moodle and SCORM 2004 – certified already?

now that I’ve got your attention…. The guys at Rustici have written an plugin for Moodle to connect to their Commercial hosted SCORM player – which is SCORM Certified for 1.2 and 2004

Bascially, they “host” your SCORM object on their SCORM Cloud, and the Moodle plugin redirects the user to their site, and allows their site to pass back information like the grade and duration data. The Moodle module is free to download, and you pay Rustici for “hosting” your SCORM objects. You can create a free demo account to test their SCORM Engine but to use on a production site, you will need to pay them for the hosting.

The Moodle code and the SCORM Cloud are still in beta, (I’ve just had a quick look through the beta code and reported a couple of small issues) but in the near future, this could be an easy answer to those RFP’s that require a SCORM 2004 checkbox to be ticked.

something like this could be used in those RFP’s(and in the moodledocs):
Moodle 1.9.5 is SCORM 1.2 Compliant and Certified, it supports some SCORM 2004 content, but if SCORM 2004 certification is required then the commercial Rustici SCORM Cloud can be used to host SCORM objects that require full SCORM 2004 support

With the availability of the Rustici engine at an affordable price, the urgency for getting the SCORM module in Moodle SCORM 2004 compliant/certified has definately decreased.

by dan at 01 November, 2009 10:22 PM

31 October, 2009

Helen Foster

Last day of Moodle 1.7.x

Today is the last day of MOODLE_17_STABLE in the Moodle Tracker. As Martin mentioned in the moodle.org news back in February, New releases: Moodle 1.9.4, 1.8.8, 1.7.7 and 1.6.9,

Moodle 1.6.9 and Moodle 1.7.7 mark the last builds that the core team plan to release from those branches… please upgrade to later versions!

For anyone interested, our process of dropping support for older stable branches is detailed in Development:Stable branch support.

Keeping your site up-to-date is highly recommended in order to keep your site secure. Also recommended is to regularly run the Security overview report in Site Administration > Reports > Security overview (source: Hacked site recovery).

31 October, 2009 06:54 AM

30 October, 2009

Sam Marshall

March ForumNG features

This week we've started work on development for our March release. They haven't even started testing the December release yet, but these things have to overlap or we'd never get anything done...

There's a lot of development on ForumNG scheduled because the March release is a big push here - we want lots of courses to start moving onto the new forum, for new course presentations that start from that point on. I'm spending the vast majority of my time on it, and Ray Guo is also doing some of the new features. Hopefully I'll get Ray to make a screencast of his stuff so it's not just me all the time.

By the way, the version for Moodle 1.9 contrib (optional install) should be getting made really soon. (Famous last words.)

Anyhow, some people like the screencasts, so I decided to make another one each time I have a new vaguely interesting feature to show. This week I had to spend a lot of time scheduling tasks and suchlike (and getting Tim to do things he doesn't really want to do because he wants to work on quiz... but he's already implemented a really cool admin report). But I did manage to implement a new feature as well.

The feature is 'forward by email'. You can send a whole discussion, or selected posts from a discussion, in an email to any email address.

Here's the screencast (about 6MB). As usual, the link requires Firefox or another browser that is happy to play .swf files when clicked.

By the way, I didn't mention it in the screencast, but the whole thing does work for non-JavaScript users (including our 'friends' using IE6; we turned off ForumNG's JavaScript in IE6 because trying to make it work was a nightmare). The interface is basically the same but with less of the fancy visuals and more of the 'click a button, wait for a new page to load'.

by Sam Marshall at 30 October, 2009 08:25 PM

Helen Foster

Farewell to Moodle HQ developer

Today Moodle HQ says farewell to developer Nicolas Connault.

Nicolas joined Moodle HQ almost three years ago in December 2006. His work has included unit testing, the Moodle 1.9 gradebook, gradebook improvements in Moodle 1.9.5, blog improvements for Moodle 2.0 (MDL-19676) and over 350 bug fixes!

In addition to writing code, Nicolas has been a particularly helpful Moodler in the Using Moodle forums, a mentor for Google Summer of Code in 2007 and 2008, a documentation writer, and has added variety and artistic appreciation to our developer chat through his observations and daily photos.

A big thank you to Nicolas for his contribution to Moodle and best wishes for his return to university next year.

30 October, 2009 09:47 AM

29 October, 2009

Helen Foster

The story of blogs in Moodle

For those of you interested in some Moodle history, blogs arrived in Moodle in version 1.6, based on the work of Daryl Hawes. Since they were added, the lack of a blog comments option has been discussed at length (see Blogs, Forums and the nature of discussion and Blogs and comments) and as a result, blog comments will be included in Moodle 2.0.

In Moodle 1.7 it became possible to limit blogging to specific users by setting up a Blogger role.

Last year the Open University in the UK released their own blog module, the OU blog, which allows for course and group blogs.

In addition to blog comments, Moodle 2.0 will include a number of other blog improvements (see MDL-19676), such as support for external blogs and blog associations (based on the GSOC 2008 project Blog improvements by Joey Morwick).

As for my own blog on moodle.org, I’ve just moved it to helenfoster.wordpress.com where I’m enjoying discovering lots of cool WordPress features. Feel free to comment on any of my blog posts there!

29 October, 2009 05:33 PM

Tim Hunt

Rationality

We've just had the quarterly bun fight where a group of people get locked in a meeting room with long lists of requirements, and told not to come out until they have decided what we (the OU VLE developers) will be doing for the next three months. (Or, in this case, two months, because we are increasing the amount of elapsed time for testing between the end of development and putting the new version on our live servers.) I have to say, I have very little idea how they reached the decision they did.

Hmm. I seem to be leaping in at the deep end. Allow me to give you a bit more background before proceeding. At the OU, the development of our Moodle-based VLE is divided up into 'development periods' that last three months each. At the end of each period there are two key dates. There is the code-freeze date, which is when we stop working on new features and the testing team start testing the release. Then there is a 'live' date when the updated code is put onto our live servers. Between code-freeze and live date we only fix bugs on the release branch, but we can start developing new features for the following release. Rather pleasingly our development periods are nick-named after Scottish whisky distilleries, so last Friday (23rd October) was the Scapa code-freeze, and the bun-fight I started talking about above was to decide what the priorities are for the Craigellachie development period which is aiming at a 24th December code-freeze. (For the record, I am sipping Aberlour while writing this. Thank you Tessa.)

So, we are on time-based releases, with the release dates announced well in advance. (I think I could give you all the dates for 2011 if I wanted to.) Then from release to release we decide which requirements have the highest priority and fit within the available development resource. Hopefully this is a reasonable approximation at an agile process. Sometimes we fail to do everything we aspire to do for a particular release, in which case it either gets rescheduled for the next release, or quietly forgotten about. Even in the best run projects you can only fix two out of three from deadline, available resource, and feature list. We fix the first two and let the feature list flex. (For comparison, the Moodle project fixes feature list and available resource, and lets the deadline flex. That is why Moodle 2.0 is still not released yet.)

OK, so just before after the start of Craigellachie they had this meeting to choose the features we would try to get done. How did they do it? Well, as I said above, they went and sat in a meeting room. I have no idea what happened in there, but I was please I could remain at my desk and keep on developing my new question engine code. There are some advantages to not being a Leading developer any more ;-)

That is what I really wanted to complain about, and it comes in two parts: 1. there is no single, publicly browsable list of all the outstanding feature requests; and 2. no one can give me the rationale for why certain features were chosen as being the most important.

1. In fact, there is a fairly good reason why we don't have a single list of outstanding features. The value comes, not from having a list of features written down, but from having people who understand the range of things people are asking for, and why. That understanding comes from someone maintaining the feature list. With a complex system like the VLE, trying to manage the whole feature list would be impossible for one person. Instead we have different people with different responsibilities who mostly keep on top of their bits of the list. Each of these people manages their bit of the list in their own way, which is why there is no single list. There are various spreadsheets and Word documents, and who knows what else.

The trouble is that it is not very transparent. The only way to find a bit of the list is to know who to go and ask given the area of functionality you are interested in. Same story if you want your idea added to the list. I think it would be better if the whole feature list was browsable and searchable by anyone who was interested. Also, there would probably be small advantages in having all the feature requests in a consistent format. Anyway, I have been saying for years that we should just buy Jira, after all it works for the Moodle project. However, I have been saying that for sufficiently many years that I have now given up any hope that I will ever seeing happening. (In the mean time, we developers who need a bug database to manage the development and testing, use an unofficial Bugzilla install on a computer under Rod's desk.)

Anyway, the feature list is fragmented, but at least we have people who understand the different bits of it.

2. My bigger concern, especially given the fragmented nature of the whole list, is, how are the priorities set. Clearly with a long and complex list, you are going to have to get some people together for some discussion and negotiation. I just think that the rationale they use to reach their decision should be generally agreed, and publicly available. That is, I think there should be a document something like the following:

The purpose of the OU VLE


A course web site within the OU VLE should be the central organising point for all the (online) study that forms part of the course. The VLE should provide facilities for displaying course content to Students, and a range of educationally sound learning activities to help them learn. It should also provide a launching point for accessing other online content and activities that go beyond what is available within the VLE. The VLE should provide facilities for arranging the content and activities so that Students are never left wondering "What should I study next?"

The VLE must provide tools so that Course Teams can efficiently set up their course web site in the way that best suits their Students; and so that Associate Lecturers can follow and help the progress of their Students. The VLE must also integrate with other OU student information systems, and feed into the OU's management reports.

How new VLE features are prioritised for development


It must be acknowledged that with a system as rich as the VLE, there will always be many more good ideas for things that might be done than could actually be done with the limited development capacity available. Therefore, difficult decisions will always have to be made when selecting what will be developed next. When making that decision, the following points should be considered:

  • The University's strategic priorities, in particular ... (would be worth saying something a bit specific about the most relevant priorities)
  • The expected benefits to Students, Tutors, Course Staff, Administrators ... (can we say anything, a priori, about which of those roles takes precedence?)
  • The numbers of Students, Tutors and Staff that would use the functionality, and the dates by which they will require it. (That is, stuff that is going to be used by big courses and programmes gets priority, particularly if they ask for it early enough that it is actually possible to get it done before they need it!)
  • The estimated cost of the development, and any predicted cost savings or on-going support costs that might result.

The end.

That, with some of the details fleshed out, is what I would like to see. Of course, with a complex goal and set of criteria like that, it still takes a bunch of people locked in a meeting room to make the decision. However, such a clear public statement would give the rest of us some confidence that the people making the decision are doing so rationally. Should we then still wish to debate the wisdom of the choices made, we could only do so in relation to these agreed principles.

by Tim Hunt (noreply@blogger.com) at 29 October, 2009 12:13 AM

26 October, 2009

David Mudrak

In git we trust

It was one of that discussions when people prefer leaving the chat room before they say something they would regret later. The Pandora’s box was opened by an innocent question on the recommended procedure to customize a contributed Moodle plugin. The discussion turned into a hot topic on what the current source code management system (CVS) gives to us and what we and our contributors could gain (and lose) from switching the Moodle CONTRIB repository to git.

Imagine you have clients who pay you for implementing a solution based on a contributed Moodle plugin. The quality of the Moodle contributed code varies and some sort of the code review and clean-up is strongly recommended before using it at production server. The contributed code may contain critical security holes and such plugin may easily become an open gate to your server with a big bright sign “Welcome Attackers!” So you have reviewed the code, fixed several obvious bugs and improved the features a bit as requested by your client. And – now what?

Of course you want to deploy your changes to the client’s server – as soon as it is tested  (or at least it does not produce any PHP warnings ;-) ) And you, as a follower of the open source spirit, want to contribute your changes back to upstream. So you send your patches to the original component’s maintainer to be included in CVS. Sounds good. In a perfect world it would work with no problems. But the humans are not dead yet and things tend to get complicated. Also, some objections against the real benefits of this procedure were raised. Let me list some issues that may influence this contributing back to upstream.

  1. The maintainer does not respond. Such things happen. You can ask the CVS administrator to give you write access and become a maintainer. Do not do this if you know/feel you would not have time to do it responsibly. Remember the lesson #5 from the Eric Raymond’s famous essay: “When you lose interest in a program, your last duty to it is to hand it off to a competent successor.” It’s better if it’s known there is no maintainer than if people think they can rely on you. On the other hand, do it if a silent voice inside your mind whispers that it’s the job you always wanted to do. It’s both nice and good thing to spend your life on.
  2. The maintainer does not agree with your improvements. Then it’s time to discuss things. Summarize the issue and open the topic in Moodle forums. Listen to the maintainer’s arguments. Maybe he/she has some further plans with the module? Who else can profit from your changes? Try to not to fork the product unless there is a chance to reach a consensus.
  3. The rubbish can get into the code after you reviewed it. Yes, it can. You must remember the state of the code when it was reviewed. Source code management software calls such signs as “tags”. You shall tag a certain point of the source code history and review exactly that point. Then you know what version is sort of safe to be deployed. Also, you can focus on the changes that came after this point later when you review the code again.
  4. The maintainer does not understand your fixes. Some say that simply sending the patches to the maintainers is useless as they do not spend any effort on learning from it. I personally do not agree with this. However, I can see the importance of educating the contributors. If the contributed code contains a security bug which is exploited, who is blamed? The administrators? No,  they have always been against this community thingie. The original author? No, nobody knows him/her. Moodle itself? Sure – it’s all Moodle’s fault! And that’s not fair.

All these have nothing to do with the SCM software itself. It is about responsibility, communication, constructive peer-reviews and developer etiquette. However, I think that the features and the characteristics of the SCM may significantly help with sorting out the issues discussed above or with not running into them at all.

Switching Moodle CONTRIB area into a cluster of separate git repositories emerged as an idea during the discussion. The nature of git – a distributed versioning system – seems to perfectly fit into the nature of our contrib, the hive of really interesting features and ideas. Contributors may come with their own trees of source code and the comparison of such two trees is easy. If the maintainer stops responding to the community questions and proposals, his/her tree becomes quickly obsolete and the community may start to prefer some other tree (if such is available). The pull-based model of the the maintainer-contributor interaction requires the maintainer pays attention to the patches to be included and hopefully learns from them. On the other hand, the contributors have to keep their trees up-to-date with the recent versions of the upstream code if they wish it is included in the maintainer’s tree. The point is, with git, everybody can easily become a maintainer of his/her own clone of the product. They have to gain the respect of the community members by keeping the high quality of their version. And remember – respect is everything.

I do not think we should switch to git-only at the moment. Let us give git a chance and see what  Moodle contributors think. To help them with their first steps, I summarized my personal experiences with using git in Moodle development into a sort of tutorial at http://docs.moodle.org. You are welcome to review it and/or put comments with your own solutions.

by David at 26 October, 2009 09:08 PM

Tim Hunt

What I'm working on

I've been meaning to post here for a while about what I am working on, but I keep posting in the Moodle Quiz Forum instead, because what I have to say seems more relevant there.

Anyway, the short answer is that I am rewriting the Moodle Question Engine. That document explains the what and the why. I want to post here about the how.

The question engine is the part of Moodle that processes what happens as a student attempts questions as part of a quiz (or other activity). What makes this a relatively difficult problem is that there are two independent degrees of variation. A question may be one of many different question types (multiple choice, short-answer, essay, ...) and there are various ways that a student may interact with it (adaptive mode, non-adaptive mode, manually graded, ...). Plus, people seem to think that when quizzes are used for summative assessments, it is quite important that there are no bugs and that performance is good ;-).

The complexity of the problem, and my natural bias, means that I am taking a very object-oriented approach. More so than is normally used in Moodle. Separate objects, with clearly defined responsibilities, helps me understand the problem and have confidence that what I am doing will work.

If you read the document linked to above, you will learn that I have been dissatisfied with this part of the quiz code for years, however it is really only within the last year that I have worked out the overall approach to solving this problem nicely. The key realisation is that you need to apply the strategy pattern twice, once for the bits that vary with the question type, and once for the bits that vary with the interaction model. The other important part of the plan is a cleaner database structure that more closely maps to data we need to store.

However, to implement all that requires quite a lot of code. I need to build the core system that can support all the different interactions and question types. Then I need to create all the interactions to replicate Moodle's existing functionality and the new features we want to add (Certainty Based Marking, and what we are calling the Interactive mode). Then I need to modify all the existing Moodle question types to fit into the new system. And I need to do all this with robust bug-free code that we can confidently use for summative assessment.

Over the last year I become increasing coverted to test-driven development. Certainly I wrote a lots of tests while eating my elephant, and this time round I am being very thorough with testing, although I must admit I still don't always write the tests first.

I am also proceeding very iteratively. I started with a test that took a single true-false question through being attempted according to the simplest of the interactions, and wrote some code that used roughly the right classes to make that test pass. Then for about a week I did little more than refactor that code.

It turned out that most of my variables and classes had the wrong name. For example, at one point I had classes called question_state and question_states, which was clearly a recipe for confusion. It was only after I had working code that I was able to think of the name question_attempt_step (one step in a question_attempt) for one of those. I also came to realise that grades were stored in three separate ways in different places, and so I ought to make sure I was using a consistent naming scheme for my variables. Then I did a bit of moving methods between classes as the exact boundaries of responsibility of different classes became clearer. Should I have been able to get all that right first time? Well I think that would be impossible.

I also started gradually removing simplifying assumptions that worked for my initial test true-false question, but not more generally. That was the point at which I started extending my code to other question types and interactions. For example I wrote a test case a walking an essay question through the manual grading interaction, and exposed some new issues that had to be accounted for; and just today I introduced multiple-choice questions, which randomise the order of the choices when you start an attempt, but then you have to store that random order somewhere so it can be used throughout the attempt. I have also already implemented the certainty based marking interaction.

There is still much to do. My code that outputs the HTML for a question is still a rough hack of the current code that lets the tests pass. I need several rounds of refactoring before that will be cleaned to my satisfaction. There are sill five more interactions to write, although each one is getting quicker than the one before. Then I have to convert all the existing question types. I need code that stores the current state of everything in the database and later reads it back. Finally, the nasty bits, which are upgrading from the current database structure to the new one, and re-implementing backup and restore, including restore of old backups.

If you were paying attention in that last paragraph, you will have deduced that my code does not yet store anything in the database! I am taking an approach with the domain objects completely unaware of the database (which makes testing very easy) and I am planning to use the data mapper pattern to coordinate loading and saving the necessary data efficiently. I am pretty sure I know how to do that, however, I have not tried to write it yet because I want to re-read the relevant chapters of Patterns of Enterprise Application Architecture, and my copy only recently got back from Australia, and I won't be able to retrieve it from my parents' house until this weekend.

In terms of time-scales, I am really hoping to get this done by about Christmas, and in time to go into Moodle 2.0, since it breaks a number of APIs. However, I first have to implement this in the OU's Moodle 1.9 code-base and then port it to Moodle 2.0, so no promises. This may have to wait until Moodle 2.1.

Anyway, that is what I have been doing, and so far it has been very enjoyable. Write tests, make them pass, then refactor aggressively with the tests as a safety net is an approach that is working really well for me. These are quite big scary changes, but right now I am feeling confident that it will all work out, and we will end up with a really solid question engine upon which to base an enhanced quiz and other Moodle activities.

by Tim Hunt (noreply@blogger.com) at 26 October, 2009 02:32 PM

Helen Foster

New Moodle language pack – Dhivehi

Moodle has a new language pack, Dhivehi, thanks to translators Ahmed Shareef, Moosa Ali, Amir Hussein and translation coordinator Koen Roggemans.

According to the Wikipedia article, Dhivehi language, Dhivehi is the official language of the Maldives and is spoken by around 350,000 people. The word atoll (meaning a ring of coral islands or reefs) comes from the Dhivehi word atolhu.

You can easily install Dhivehi, or any other language pack, on your Moodle site via Site Administration > Language > Language packs. Even if you have no need for additional languages, you can still make use of Moodle’s language editing facility to change a word or phrase on your site. Please see the Language FAQ for details.

26 October, 2009 01:15 PM

23 October, 2009

Sam Marshall

December ForumNG release update - save draft

Today was our code freeze for the December 1st release. As usual, various things were delayed, but I did actually manage to finish a few new features for ForumNG. (Not as many as I'd hoped - unfortunately, what with me going on holiday and then various necessary bug fixing tasks, there was only about two weeks of development on new features. Don't know exactly how much development there was, because, er, I'm late with updating the schedule page... ah well...)

Anyhow, here are the new features since last time I posted to this blog:

  • Administrators can now choose to unsubscribe users (from the list of subscribed users). This was kind of supposed to be there already, but I'd forgotten to implement it.
  • There's a Collapse all link on discussion pages. It's no use to man nor beast, but people were disturbed by seeing the Expand all without its mirror image.
  • Moderators (by default; anyone with the appropriate capability) now get to ignore limits on posting. For example, the forum can be set to allow posting only from a certain date; now, moderators are allowed to post before that date.

And the big one - save draft. We had a customisation to existing Moodle forums that let you save draft posts. (There were lots of problems with it, too, but let's not go there.) ForumNG didn't have this, but people wanted it back, and their wish is my requirements list!

The new save draft is a lot nicer than the old one. You can conveniently use it either because you want to leave a message and finish it tomorrow, or because you're halfway through a long post and are (probably justly) paranoid that the system will crash and lose all your work. Anyhow, rather than explain how it works, I've made a 3 minute screencast to demonstrate it.

In order to see the screencast you need to be using Firefox or some other nice browser that will display .swf files that are linked to. This is because I'm too lazy to set up a proper web page for it.

That said, here's the link.

December release features (...i.e. save as draft) screencast

Enjoy! (Well, or just bear it. It's only three minutes.)

PS If you're a member of OU internal staff you can probably see the documentation page for this update. Not available for tutors or students or anyone outside the OU, sorry. (But if you read this blog you know it already! Just in a bit less detail.)

by Sam Marshall at 23 October, 2009 08:03 PM

22 October, 2009

Helen Foster

Meeting moodlefairy

Yesterday I had the pleasure of meeting up with particularly helpful Moodler Mary Cooch on a visit to Brussels in Belgium.

Mary, from Preston in the UK, is a real teacher at heart – she loves helping others and sharing her knowledge. A self-confessed “Moodle addict”, Mary is extremely active in the Using Moodle forums and in the Lounge, where she is a facilitator.

Mary has also written a book Moodle for Teaching 7-14 Year Olds and her Moodle Blog contains a wealth of Moodle how-to videos.

A big thank you to Mary and to all our particularly helpful Moodlers for their contributions to the Moodle community.

moodlehelen and moodlefairy

22 October, 2009 06:44 PM

20 October, 2009

Helen Foster

Moodle 1.9.7 supports IMS CC import

If Moodle interoperability matters to you, you'll be pleased to hear that Moodle 1.9.7 onwards supports IMS Common Cartridge import. Congratulations and a big thank you to Moodle Partner UVCMS and Eloy Lafuente for their development work (MDL-20591). goedkeurend

In case you're wondering why IMS CC has been added to 1.9.7 rather than 1.9.6, this is because there's currently a code freeze on the 1.9 stable branch. However, you'll be able to obtain this new feature in the first 1.9.6+ weekly build following the 1.9.6 release!

IMS CC import has been added as an experimental feature in 1.9, as it requires additional testing and bug-fixing. Help with testing is always appreciated! As for other experimental features, it may be enabled via Site Administration > Miscellaneous > Experimental.

Further IMS CC support is planned for Moodle 2.0. Please see Development:IMS common cartridge for details.

20 October, 2009 03:56 PM

19 October, 2009

Sam Marshall

Unit testing opinions

Tim dumped a huge book about unit testing on my desk today. He thinks I should read some of it!

But I'd been thinking of writing a blog post about unit testing, so why not take the opportunity before I read too much of the big book and it spoils me? I'll try to write a blog post that's nearly as long as the book!

First if anyone doesn't know what unit testing is, (a) it's a technique for writing computer program code that tests other pieces of computer program code in an automatic, repeatable way so that if you change the code that's being tested, and the change breaks something, the test will probably start to fail and you'll notice... and (b) you probably don't care about this post. Go have fun somewhere else! This is about boring programming stuff.

In my recent personal projects I do significant unit testing, but I don't really follow any of the buzzwords. Here's what I think, divided into neat pairs (spot the odd one out).

Be careful - I'm going to say that you 'should' do something or that you 'must' do something else or that 'nobody' would be stupid enough to even go within bargepole-reach of the general concept of a third something. If that's likely to concern you, please just pretend I said 'in my opinion' several times per sentence.

Is unit testing worthwhile?

  • Unit testing is really, really important when writing complex backend code. Unit testing won't work for UI code. This means you should ensure that as much code as possible is in the backend. But you know that already.
    Without unit tests you cannot change anything without being desperately panicky about whether it'll break (and it probably will). If you're doing something complicated you definitely want unit tests.
    JUnit is integrated into Eclipse, so if you're a Java programmer, it's easy to get started and run tests. No need to create test suites or anything. Just right-click on a source folder containing Java files with JUnit tests and 'Run As... JUnit Test' to run 'em all.
  • If you're doing something simple, writing unit tests is a waste of time. Don't bother. Unit testing set/get pairs - or anything that basically boils down to that - isn't big and it isn't clever. Because Java's a compiled language and because modern compilers give warnings for things like assigning variables to themselves, the chances you would break any code that simple are pretty damn low.

How completely should you test? At what level should you test?

  • When testing complex code you've written, coverage is important. Test coverage means the instructions that were covered by all your test cases. You hit run on all your test cases and something tells you what percentage of code was covered.
    If a branch wasn't covered by the test cases, it's probably a good bet that it's broken, so getting good coverage is important. I'd guess you want to be at least 80% or so, with maybe just some error cases and set/get and suchlike omitted. (If the errors are really important, i.e. might actually happen for somebody whose machine isn't already terminally broken, then you should make those tested too.)
    For Java developers, coverage testing is easy. Just install the EclEmma Eclipse plugin. It'll show you coverage by package tree, and you can look at source files to see lines that were covered (green) and weren't (red).
  • So I think coverage is important. But I don't think it matters a damn where that comes from. You do not need a matching test class for every real class. If you write low-level classes which are used by higher-level ones, then fine - just do tests for the higher-level ones, provided that gives reasonable coverage (and finesse the inputs to the higher-level code so it does). Or do lower-level tests for the worst most fiendish parts of that code, but don't bother with the finicky details; leave that for the higher-level stuff that will use it.
    Some people argue this means you can't immediately tell what failed. They're right, but nobody cares. Unless you're writing the world's most complicated project, it's unlikely that a failure in a high-level test would be more than a matter of minutes to track down at a lower level. You have a built-in reproducible example right there, and you know how to use the debugger. THERE IS NO STEP THREE. Come on. (Plus, you have the clue it's probably related to, oh I dunno, maybe something in the checkin that broke the unit tests?)

What about writing test code itself?

  • Test code should be well-organised so that we know which class you're testing...
  • ...but it doesn't have to be good quality code. Who cares? It's test code. Stick some comments in if you're doing something non-obvious or if you feel like it but if you have a function called testFreeble and your system has a feature called freebles and you run the freeble() function 3 times inside that test... I think we know what you're testing. If you call a function with -1 or 0 then it's probably an out of bounds or edge case. We get it.
    Similarly, refactor stuff (using the automatic 'extract method' or manual refactoring) to make your life easier writing and updating tests, but not purely for code quality reasons. Nobody needs to read tests unless they break. Unless your 'real' code is already perfect, spend time improving that before you waste it on test cases, which are usually relatively simple.
    Maybe you've configured your Java compiler to give a warning if you write a public method without javadoc (I do) - you can turn this off in test code because all test methods are public and those 'Tests freebles' comments get really old really fast. @SuppressWarnings("all").

Do you write tests before or after development?

  • After. Puh-leeze. You know you're going to change the API. How boring would a project be if you knew what the API was going to be before you started? And unit tests, achieving coverage, are not black-box tests; your test manipulates a black-box, but when writing the test, you choose test cases based on what you know's inside. It's much easier to do that when you've written it.
  • But, ideally, straight after. Write the complicated back-end code for the project first. You haven't got a user interface to run it - so until your project's very near finished, literally the only way you should ever be running it is through hitting 'play' on the JUnit view.
    Once you finish a feature, do the test for it. Running that test, you know your code won't work, because it's the first time it's ever been run. Yay! That's a good thing. Because writing tests is much less tedious if there's some realistic chance, like in this case about 90%, that they actually fail initially, and you have to go off and fix the bugs in your actual code.

Testing in Java is a dream; 'existing horrible project' aside, there's really little excuse not to do it. Write everything complicated as a separate backend package and test that sucker before you glue it into a real projet. Everything runs at lightning speed, you've got all the nice, pretty tools built into the IDE you already use (by the way, if you prefer NetBeans, the tools are available in that too).

 

Sooo.. at work I mainly have to develop things for (our customisation of) Moodle, which is written in PHP. Aaaand we're off to a flying disaster right there...

Moodle uses SimpleTest, which is a perfectly okay framework, but suddenly I have to go to a webpage to run the tests instead of hitting Command-F11. At present there isn't coverage stuff in it, either. We can never get the debugger to work (that's okay, I can live with print_object). But worst of all, everything in Moodle is tightly integrated, and (this part isn't really Moodle's fault) most of the complicated bits which are likely to break are actually database queries. Which means you can't usefully test it by abstracting out the database, even if that wasn't an absolute nightmare that wastes hours of development time (and yes I've done it).

Moodle 2 provides some things to make testing fractionally easier but overall it's still a nightmare and will remain so until there's some solution for setting up a reliable test database each test without having to do any work. (I favour SQLite or similar.)

In Moodle 1.9 frankly I can only be bothered to do unit tests where really essential (e.g. I did a fix for a bug with the shorten_text function, which is a complete nightmare, so I needed a test to have some confidence in my fix not breaking everything). The rest of the time... meh. Yes, that definitely makes my code less reliable, but with our timescales and the difficulty of unit testing, I don't see any option.

OK so that was way too long; if you read this far, have a cookie. (No, I didn't bring any cookies! Supply your own. Sorry.) Still, that's what I currently think about unit tests, not being an expert but having done or attempted them for quite a while. Let's see if I change my mind after reading Tim's book! (Which by the way is 'XUnit Test Patterns')

by Sam Marshall at 19 October, 2009 05:40 PM

18 October, 2009

Helen Foster

Most participatory courses on moodle.org

Moodle.org has a new community discussion course, Moodle in Cambodia. The language of Cambodia, Khmer, is considered to have the longest alphabet in the world (source: Khmer script) and computers don't generally have the font pre-installed.

For interest, here are the top 10 most participatory courses (views/posts) on moodle.org in the last four weeks:
  1. Bulgarian Moodle
  2. Moodle for Business Uses
  3. Facilitators Corner
  4. Moodle in Cambodia
  5. Moodle Certification
  6. Türkçe Moodle
  7. Hebrew Moodle
  8. مودل فارسی (Persian)
  9. Moodle en français
  10. Russian Moodle
(Source: Site Administration > Reports > Course overview.)

For information on how the list of most participatory courses is calculated, see the documentation Course overview reports.

18 October, 2009 06:36 AM

16 October, 2009

Sam Marshall

ForumNG: Study advice

Although time got eaten up by a zillion things unrelated to ForumNG changes, I did manage to develop one of the new features this week...

Study advice forum type

With this forum type, you can only see discussions that you started. (Except for moderators/advisors who have the capability that lets them see all posts.) All other discussions are entirely hidden.

So a student can post a question. Then the advisor can respond to it (and the student sees the response). But the student can't see questions that other students asked.

I'm not sure how useful this is in general; obviously we have a specific use case here which means it was 'critical' that this gets done in time! It is. Phew.

Development was a bit of a nightmare. I thought I'd finished inside half an hour... then I realised I'd only made the changes for the normal web view. Much, much, much harder were the changes to correctly display the 'unread message' count on the homepage (only includes ones in a discussion you can see), to make email subscription work (only sends emails you can see), and finally to make feeds work too. I kept realising there was another bit that needed fixing. Hopefully that is all done now.

And by the way - I haven't yet implemented the 'other' forum types in standard Moodle forum :) The Q&A type, for instance. That's scheduled for a future release.

Today we (Sharon and Lisa who are organising the 'FirstClass replacement' programme of work, plus me as the developer) met with a writer for the in-house magazine for tutors. For those not familiar with the University, FirstClass is the old, commercial conferencing software used here, and the new ForumNG software I'm working on is intended - along with the rest of our course website facilities - to finally replace it. Tutors heavily use FirstClass and are attached to the way it works, so that's why the magazine wanted to talk to us.

I said a number of inadvisable things involving the phrase 'sucks'. Let's see how many of them end up in the article. :)

by Sam Marshall at 16 October, 2009 05:49 PM

15 October, 2009

Tim Hunt

The Open University's approach to plagiarism

I spent the day at an OU internal conference on plagiarism. Until now, most of my engagement with this subject has been people coming to the Moodle Quiz Forum expecting technological magic bullets. There seems to be a depressing assumption in some quarters that preventing students from copying or pasting during a quiz attempt, or from using a spell checker, in some way helps the validity of an assessment. And using Google during a quiz attempt is surely cheating, it couldn't possibly be a valuable study skill for the 21st century?

Anyway, it is just not possible to enforce these kinds of restrictions from a web server application like Moodle. Image, for a moment, what would happen to the web if any advertiser could stop you leaving their horrible web site and going to Google to find something better. If you really want to set up a restricted environment (akin to the traditional invigilated/proctored exam hall) you need client-side software installed on the computer the student will be using. If you are looking for something like this, take a look at Safe Exam Browser, and open-source effort built on Firefox, which is now integrated into Moodle 1.9.6 (due for release soon). See MDL-19145.

I am pleased to say that the OU approach is diametrically opposed to this wishful chasing after technological magic bullets. The conference today started with two keynotes by Jude Carroll from Oxford Brookes University, who has been thinking about these issues for the last nine years, and who is an excellent speaker. She has the very clear summary of the issue: Universities have the responsibility/duty/privileged to accredit student's learning. They give the student a bit of paper saying that they have learned something, and in our society that bit of paper has a certain amount of value. So universities need to measure learning, and that is where assessment comes in. The real problem with plagiarism is that it breaks the link between what the student submits for assessment, what they have learned. If a student writes something in their own words, then that writing is good evidence of the extent to which they have taken in the ideas of a course. If they have just copied and pasted someone else's words, you cannot assess what they have learned. Also, teachers do not set assessment tasks just to measure students. We hope that performing the tasks helps the student to learn.

Jude also made the point that exactly is plagiarism does depend on the context. For example the level of experience of the student, the learning that is being assessed, what you are allowed to assume as common knowledge. Also, not all plagiarism is cheating, and not all cheating is plagiarism. Dealing with plagiarism must be done in an appropriate and proportionate way. To start with, understanding issues of academic honesty is an important learning outcome from a degree course, but it needs to be taught, it is not innate. It cannot be taught as an optional add-on ("the plagiarism lecture") but instead it must be embedded in the context of the subject early in a degree program. (By and large the OU does this in its introductory course.) When plagiarism happens, the response has to be proportionate. Early in a program of study, students need to be given feedback to help develop good academic practices. Later on, students should be expected to understand these issues, and plagiarism becomes a disciplinary issue, but still their need to be a range of fair and proportionate penalties.

The OU has clearly had a group of people thinking hard about this over the last few years, and that has resulted in a new plagiarism policy that was adopted last June. This conference was part of disseminating that policy more widely. There are now a range of penalties for various types of plagiarism, and a new role, 'Academic Conduct Officers' who can deal with most issues of plagiarism that go beyond what the student's individual tutors can deal with. This lets many cases be dealt with quickly, so that only the most serious cases have to be referred to the Central Disciplinary Committee.


Another part of the OU's response to this issue is a new web site Developing good academic practices, which I am afraid you will only be able to see if you have some sort of OU login, student or staff. That is a Moodle site in our VLE. It is a mixture of text to read, with a few audio clips, with a quiz at the end of each section. There is also a summary quiz at the end which draws questions randomly from all the other quizzes. The estimated study time for the whole site is 2 hours. It seems to be well done, and for me it is pleasing to see the quiz module used well, even if it is only multiple-choice and matching questions. The course has about 2300 quiz attempts at the moment.

Finally, the OU does use two technological means to detect plagiarism, CopyCatch and Turnitin, on a proportion of submitted work. However, this is only used to flag up possible cases that are then reviewed by a human. The third form of detection is that tutors marking the students' work can often spot problems. However, overall, the amount of plagiarism detected at the OU seems to be lower than that reported elsewhere. It is interesting to speculate why that might be.

by Tim Hunt (noreply@blogger.com) at 15 October, 2009 08:04 PM

Helen Foster

Moodle is certified SCORM 1.2 compliant

In case you've not yet noticed, an ADL certified SCORM 1.2 logo is now displayed on the front page of moodle.org. After months of waiting, Moodle 1.9.5 has finally been certified SCORM 1.2 compliant (MDL-19706)! Congratulations and a big thank you to Piers Harding and Dan Marsden for all their work on the SCORM module.

If you're into Moodle trivia, you may be interested in the following. Last week in our developer chat, Martin was asked which font was used for the Moodle logo. His answer was 'Soul Papa'.

15 October, 2009 05:27 PM

13 October, 2009

Helen Foster

Cool Course Competition opening soon!

A while ago I mentioned that we were planning a Cool Course Competition to encourage more people to donate courses for our Moodle demo site and to start building our demo community hub for Moodle 2.0. Three months on, a Cool Course Competition site has finally been set up (thanks to Jordan, our Moodle HQ system administrator) and we're almost ready to open the competition!

The Cool Course Competition site is networked with moodle.org so if you're logged in to moodle.org you can visit the site without being required to create an account or login. The Cool Course Competition site is now included in the list of moodle.org connected sites and already 15 people have taken a look!

We still have a few details about the competition to finalize, such as prizes, before the competition opens. If you have any comments or suggestions, please add them to the Cool Course Competition talk page in Moodle Docs.

13 October, 2009 05:17 PM

09 October, 2009

Sam Marshall

Back

I've been back at work this week, coping with enjoying a welcome return to ForumNG code!

The forum seems to have done okay during my absence. A few technical problems were found during this initial pilot period, and Bryan fixed a really bad one with email subscription (thanks/sorry). Other than that, there's a few serious ones, but they don't cause major problems for the test course. Which means I have been working in a calm manner to fix them for the next release rather than rushing to get stuff done.

(Of course I had to patch a totally different area of the system and rewrite a whole chunk of code that was supposed to have been done months ago... but that was quite enough rushing about for the week, so I'm glad it wasn't needed for the forum too.)

We have 3258 ForumNG posts on the live system now, which is still not that many, but a big improvement on the 20 before I went away.

  • I am trying to ensure that the community (Moodle contrib) release of ForumNG will happen soonish, possibly even actually getting time scheduled for it. Still hoping for November.
  • We added one more actual feature while I was away (again, thanks to Bryan) - you can now sort the discussion list in both directions. Previously, you could already sort by any column, but only one way (A-Z not Z-A, for instance).

Meanwhile this week I've been fixing bugs and working on an even more exciting feature - accessibility fixes! Yes, I know everyone might not be massively concerned about whether the icons are visible on a black background... but it did need fixing.

by Sam Marshall at 09 October, 2009 04:39 PM

David Mudrak

So long ADOdb, and thanks for all the fish

commit eb123debc6279c0e7fe92d7cb8979f4db651a46c
Author: skodak <skodak>
Date:   Thu Oct 8 22:34:34 2009 +0000

MDL-19474 One year and a half ago we started designing
and implementing our new database abstraction layer
which included brand new moodle native drivers.
Today we are finally removing old legacy drivers
that were still using adodb internally. From now on
the adodb will be used only in some authentication
and enrolment plugins, we are probably going to
drop adodb there too later in 2.x.
Thanks everybody who helped test and improve our
new drivers, even bigger thanks to all the great
developers who created ADOdb!

by David at 09 October, 2009 01:41 PM

Helen Foster

Seven new particularly helpful Moodlers

Three months ago I received a message from Colin Fraser asking whether he could start a page in Moodle Docs called 'Beginning Administration FAQ'. Of course my answer was "Yes please!" as everyone is welcome to contribute to our documentation wiki.

Beginning Administration FAQ grew very quickly and so Colin started another page Beginning Administration 2 FAQ with further advice for new Moodle administrators.

Naturally Colin is now included in the documentation writers group in Using Moodle and was recently added to the particularly helpful Moodlers group too, based on his forum posts being rated as 'useful'.

A big thank you to Colin and all our documentation writers and particularly helpful Moodlers for the valuable user support they provide. From updating the Community credits, I found that seven new people have become particularly helpful Moodlers in the last two months!

09 October, 2009 01:39 PM

08 October, 2009

Helen Foster

Moodle features list

This week I've been working on a list of Moodle features in a format suitable for setting up test cases. We'd like Moodle 2.0 to be extremely well tested during the beta period, so the plan is to ask the Moodle community for help with user testing in addition to running unit tests.

Moodle Docs also includes a page describing Moodle's features for people new to Moodle: Features. The page urgently needs updating though. Any help would be greatly appreciated!

08 October, 2009 05:37 PM

06 October, 2009

Helen Foster

Moodle 1.9.6 coming soon!

In case you missed Martin's recent post Heads-up for 1.9.6 - code freeze coming, Moodle 1.9.6 is due to be released very soon, most likely in a fortnight's time. Please see the 1.9.6 release notes for an evolving list of highlights.

I noticed lots of recently resolved issues in this week's code review had patches attached. A big thank you to Daniel Neis Araujo, Sean Farrell, Oliver Rahs, Oleg Sychev, Nick Freear, Lucian DiPeso and many other patch providers for helping with Moodle development. goedkeurend

06 October, 2009 03:20 PM

05 October, 2009

Helen Foster

Moodle accessibility report

Last week Moodle developers were given a really useful resource for helping improve the accessibility of Moodle - a report on Moodle accessibility undertaken by Randall Hansen on behalf of the CANnext consortium, funded by the Alfred P. Sloan Foundation, and supported by the Carroll Center for the Blind and the Washington State School for the Blind. See the discussion Results of my Moodle accessibility study for a link to the report and MDL-20409 for the list of issues raised in the report.

The report raises many excellent points, such as recommending that the most accessible option should be the default. Lots of food for thought for the Moodle community!

05 October, 2009 04:44 PM

29 September, 2009

Helen Foster

Resources for new developers

If you're thinking of developing a new module for Moodle, you'll be interested in the latest addition to our developer documentation - the NEWMODULE documentation, thanks to Daniele Cordella. The comprehensive documentation includes a tutorial, a reference, FAQ and even information on adding capabilities.

Another useful resource for new developers is the course Introduction to Moodle Programming which guides users through the process of developing a new block.

A big thank you to all our experienced Moodle developers who have written documentation to help new developers. approve It's great that the Moodle community is so friendly and welcoming!

29 September, 2009 08:35 PM

25 September, 2009

Helen Foster

Moodle errors in spelling

One of my weekly tasks as Moodle community manager is to respond to messages sent via the moodle.org contact form. Occasionally users logged in as a guest submit a message which I am unable to reply to if an email address is not provided. Yesterday I received one such message:

Moodle errors in spelling

Dear Moodle Support,

Our district is using Moodle as a support for our teachers and staff. It is a Wonderful resource; however, enrollment should have two (l's). Our students found the error when the logged on. Please be advised and try to correct these spelling mistakes.

Of course this is a frequently asked question which is answered in the Enrolment FAQ. As people continue to ask the same question, I wonder if things could be made clear elsewhere. If you have any ideas, please post them in a Using Moodle forum.

25 September, 2009 04:50 PM

24 September, 2009

Helen Foster

GHOP contest for 13-18 year olds coming soon!

Remember the Google Highly Open Participation (GHOP) contest in 2007/08? The contest, for 13-18 year olds, gave participants the opportunity to learn more about and contribute to various aspects of open source software development. Around 100 Moodle tasks were completed by 50 students - see GHOP/2007 for the list.

Google are planning on running GHOP (perhaps with a new name!) again this year, starting in early December. However, they are currently asking for help with testing and documenting the new system 'Melange'. Please see the GHOP meeting summary discussion for details.

Finally, if you have any ideas for Moodle tasks suitable for the contest, please add them to Development:Task ideas.

24 September, 2009 01:15 PM

23 September, 2009

Eloy Lafuente

I love Oracle, and PHP too... but, together?

I think no, specially when suc(h|k) couple is causing me to become crazy lately. Please, take a look to http://tinyurl.com/n5owdu and, if you can test, do it and report results. TIA!

by stronk7 at 23 September, 2009 11:23 PM

22 September, 2009

Helen Foster

Particularly helpful Moodlers identified in community discussion courses on moodle.org

Thanks to Eloy, the scripts for automatically populating groups in Using Moodle are now available for all other community discussion courses on moodle.org. approve

If you're a community discussion course facilitator and would like any of these groups in your course, please create a Moodle.org Sites issue in the Moodle Tracker about it.

If you're wondering how group icons are added next to users' forum posts on moodle.org, please see the create group documentation.

22 September, 2009 03:05 PM

21 September, 2009

Helen Foster

Demos of new features in Moodle 2.0

Our online developer meeting last Friday was packed with demonstrations of new features coming in Moodle 2.0, including the navigation and settings blocks (thanks to Sam Hemelryk and Tim Hunt), the TaskChain module, a replacement for the HotPot module (thanks to Gordon Bateson), and the new Workshop module (thanks to David Mudrák).

Thanks to everyone who participated in the meeting, especially those who had to get up early or stay up late, and to Dan Poltawski who logged in whilst on holiday in Tenerife!

If you missed the meeting, Developer meeting September 2009 contains a recording link. Meeting notes will be available soon.

21 September, 2009 08:32 PM

Penny Leach

mahara stand at swiss open expo

This Wednesday and Thursday I'm going to be at the Swiss Open Expo, "manning" the Mahara stand. Liip are always in heavy presence at the Open Expo, but this time will be the first time we have a Mahara stand, so it's pretty exciting!

If you're in or around Winterthur and interested in Open Source e-portfolios, come and say hi!

by penny@she.geek.nz (Penny) at 21 September, 2009 08:50 AM

14 September, 2009

Penny Leach

LEAP2A support coming soon to a Moodle near you!

Finally, I am very happy to annouce that I will soon be working on adding LEAP2A support to the Moodle Portfolio API that will be in Moodle 2.0.

There's already a rough specification for this work, and it's been on my TODO list for a very long time.

LEAP2A is a very simple and open atom-based e-portfolio standard, to promote interoperability between e-portfolio systems. Interoperability is very important in an e-portfolio system, because it is vital to be able to transport portfolio data around with you, as you move between educational providers, into higher education, and on to professional development. Imagine having in one portfolio system, your entire portfolio of work, starting from your first day at primary school, right up to your continued professional development. Of course, one would use many different portfolio systems over that time, so some sort of open standard to transport data around is imperative.

I was involved with the LEAP standard group last year when I was living in London, adding LEAP2A support to Mahara. I attended the LEAP meetings in the UK, and worked on the export side of the project. Nigel took over when I left Catalyst and continued, adding the import side (which is of course, much harder).

But wait, you ask. Isn't Moodle a learning management system, not an e-portfolio? Why do we care about interoperability with an e-portfolio standard? The answer is of course, that while you're working, you are entering data into Moodle, and at the end of the course, the natural thing to want to do is to export some of that data into your portfolio. At the moment, we have the Portfolio API in Moodle for that, which I worked on for last year for 3 months, during my time at Moodle HQ. However, at the time I wrote it, it wasn't at all clear what portfolio standard we should support, so content is transferred in "raster" format (rendered to HTML or a file like a pdf). Since then though, LEAP has emerged as a clear front runner, and now that Mahara 1.2 (almost released!) fully supports importing and exporting LEAP2A, the time is right for us to take the plunge and add LEAP2A support to Moodle's Portfolio API. This improves the integration between Moodle and Mahara, as well as opening the door for Moodle to integrate better with other e-portfolio systems that implement the LEAP2A standard.

I am therefore very grateful to the State of New Hampshire for providing the funding to Liip for me to do this work. This comes from a grant from the New Hampshire Department of Education, and a collaborate group made up of the following school districts:
Special thanks also to Matt Oquist who has been tirelessly helping me find funding for this work!


by penny@she.geek.nz (Penny) at 14 September, 2009 12:25 PM

11 September, 2009

Helen Foster

Mathematics and Understanding Moodle demo courses

If you fancy having a play with some of Moodle's features, please visit our Moodle demonstration site, which now contains courses in eleven different languages!

The German course category includes four Mathematics courses developed and donated by Christina Russu. The courses make use of the TeX notation filter to display mathematical symbols.

The latest course to be added to the site is Understanding Moodle, donated by Stuart Mealor of HRDNZ, one of our Moodle Partners. The course is media-rich, with several movies, and also includes a couple of interesting lesson activities.

If you have a course illustrating some of Moodle's many features which you'd like to donate for use on demo.moodle.org, please see Moodle demo courses for details of the process.

11 September, 2009 02:39 PM

09 September, 2009

Eloy Lafuente

Databases are that, just databases

Just some minutes ago I ended with some nice unittest results (1st time since tests were invented, lol!), and I wanted to share them with you: http://www.box.net/shared/nhx8rahl56 There are still more work to do (Oracle driver, more and more tests...) but, in any case, has been an enjoyable milestone for me. Go, Moodle 2.0 DB API, go!

by stronk7 at 09 September, 2009 04:26 PM

08 September, 2009

Helen Foster

Moodle HQ welcomes another developer

I'm pleased to announce that our Moodle HQ team in Perth has a new member - developer Rossiani Wijaya. Rossiani has already been assigned several 1.9 bugs to investigate, though the HQ page is still awaiting a photo of her in front of a Moodle orange wall. knipoog

Please note that we're still looking for another developer and a project manager. For details of these positions, see the adverts Moodle developer and Moodle technical project manager in our Moodle Jobs database.

08 September, 2009 04:07 PM

06 September, 2009

Dan Poltawski

Ubiquitous Moodle

Its not difficult for me to realise that Moodle is a popular global project - I work alongside the evidence every day; reading Moodle.org, fearing the volume of bugs which come into the tracker and in CLEO, we recently surpassed 200,000 Moodle users. Buts its actually the small events in life which help me quantify this.

When i'm fortunate enough to go to Moodlemoots the international community of Moodlers is very evident and the passion is incredible.

Often, i meet teachers at completely non-moodle related social events and discover they use Moodle.

While i'm cycling to work and pass children walking to school, I stop and realise these children are likely to be using Moodle now or some time in their future (such is the dominance of Moodle in our region).

This week I discovered my old Sixth Form College is starting to use Moodle. During my time at the college I got a passion for computer programming and also benefited enormously from my first exposure to online learning. I don't teach people (at least in the formal sense) and so this exposure certainly helps me understand the Moodle philosophy more than I would've been able to without.

One of the greatest things about working on this open source project is that my contributions hopefully go some way to benefiting all these users: The moodlers I meet at moots, the teacher I met one time at a party, the schoolchildren passing me on the way to work and the college which gave me many of the fundamentals which have helped me contribute to the project.

by nospam@example.com (Dan Poltawski) at 06 September, 2009 10:28 AM

04 September, 2009

Sam Marshall

ForumNG - the future

This is my last blog entry before going on holiday (from work and from everything Moodle-related!) for four weeks. So I thought I'd answer some questions about the future.

In the honourable tradition of FAQs, nobody has ever asked me a single one of the questions listed...

When is there going to be a public release of ForumNG for Moodle 1.9.x?

Hopefully the public release (to the 'contributed code' area where you can download optional extensions for your Moodle) will be around November. That depends on me sneaking it in on unscheduled time, unless I can get some scheduled...

The difficulty is not just the hassle of packaging it up and so on - code changes are required, because some JavaScript depend on TinyMCE's API and standard Moodle uses a different HTML editor. Hopefully the same things are at least possible with the Moodle 1.9 standard editor (otherwise the public release will disable HTML editor and use plain textboxes, making it not very useful).

Will ForumNG ever be the standard Moodle forum?

If the community likes it, it might be included in a 2.x release. This will obviously require us to update the module to support 2.x, and also to be able to transfer data from the old forum. (Both these things are planned.)

What new features are going to be in the OU's December release? (=same as the hopeful public release)

The December release plan includes:

  • Accessibility and usability fixes (we asked the relevant university department to do some testing for us, which identified some issues).
  • 'Study advice' forum type; a forum type where students can start discussions and reply in those discussions, but cannot see discussions started by any other user.
  • The return of the save-as-draft feature. (We had this feature in our modifications of the old forum. It didn't work properly. Unfortunately this time around I couldn't get away with the 'Moodle 2 will do this generically' excuse, because as we know, taking away features from users - even pretty annoying and not very useful features - is verböten.)
  • Ability for a user to 'flag' messages they are interested in or intend to respond to. Flagged messages get included as direct links on the front page of the forum, so you can jump straight back to them.

Hopefully there will be some other stuff, but to be honest, I might not even finish this lot as there isn't much development time...

Could you quote some useless statistics?

Okay. ForumNG went live on OU servers on Tuesday, and so far there have been a total of 20 posts. Woohoo! By comparison, we have 546,606 posts so far in old forums.

by Sam Marshall at 04 September, 2009 02:55 PM

Helen Foster

Moodle 2.0 progress updates

If you're interested in how Moodle 2.0 is coming along, you can track our current progress in the Moodle 2.0 planning document. (Please note the disclaimer at the bottom though: "This document is subject to change, and does not necessarily reflect the full picture. Details may be completely wrong....")

Martin has been updating the document this week, and asked in our developer chat for everyone to check it and make sure the estimates are correct for any projects we're involved in. Martin also mentioned that the stuff at the bottom of the document is liable to get cut if we run out of time!

As well as developing Moodle 2.0, the stable versions 1.8.9 and 1.9.5 need to be maintained. In the last couple of days I've been chatting with Eloy about ways of improving our bug triaging process in order to deal with Moodle Tracker issues more efficiently. If you have any comments or suggestions, please add them to Development talk:Bug triage.

04 September, 2009 02:17 PM

03 September, 2009

Dan Marsden

New windows installer for Moodle

A while ago I noticed Silverstripe and Drupal had been added to the new Microsoft Web Gallery for installing on Windows platforms – this installer looked really easy for people to use, so I wondered how much it would take to put one together for Moodle!

Here’s the result: http://www.microsoft.com/web/gallery/Moodle.aspx

If you’re running windows you can click the following button to trigger the install!

Early on the documentation seemed a bit on the limited side, but has improved a bit now and the Web Application Team from Microsoft were very helpful! – to see the scripts that build this package see: http://cvs.moodle.org/contrib/tools/m4wpi_builder/ thanks to some help from Eloy, the package is being rebuilt each month with the latest weekly build. It’s not an automated process getting the links in the Web Gallery updated though, so I expect it to take a bit of time before the Microsoft site is updated each month with the new build.

The packaging works a little like the LAMP installer for Windows, but it installs IIS/FastCgi/PHP instead. It doesn’t “automatically” install MySql but it does install the MySql odbc drivers, and it’s very simple to install mysql seperately.

The WebPI Packaging process doesn’t allow configuration of folders outside the webroot which can be a problem as the moodledata folder should really sit ouside the webroot for security and shouldn’t be accessible via an http request – IIS 7.0 allows you to prevent this by using a web.config file to prevent the access – IIS 5/6 doesn’t use the web.config in this manner, but the MS team have pointed me to this posting which will allow the same thing to be achieved – I haven’t implemented this yet, but will have a look at some point and try to include it in the package.

The other issue I came across is that there’s no easy way to determine the url that will be used to access the site on someone’s machine – according to some friendly help from the Microsoft Team:

Generating a wwwroot automatically is always challenging. The WebPI doesn’t do it because there’s no consistent way that the WebPI can know exactly which applicable host name you want to be used for your application.  There may be any number of legitimate host names for your server.

To get around this, the Moodle config file used by the package uses a combination of $_SERVER['SERVER_NAME'] and $_SERVER['SERVER_PORT'] however this may cause issues in the long term….but it would be relatively easy for someone to configure this manually post-install if needed.

At the moment – the package I’ve put together only supports installation with MySql, but it’s possible to allow users to choose between MySql and MS Sql during installation – When I get some free time, I might look at how easy this would be to add!

by dan at 03 September, 2009 08:04 PM

31 August, 2009

Helen Foster

Two hundred Moodle developers with write access

I'm pleased to announce that Moodle now has two hundred developers with CVS write access! We aim for a transparent and open development process and welcome contributions from the whole user community.

CVS stands for 'Concurrent Versioning System', a commonly-used way of managing source code for large software projects. CVS keeps all versions of all files so that nothing is ever lost, and usage by different people is tracked. It also provides ways to merge code if two or more people are working on the same file. All code and all versions are stored in a central repository (source: Development:CVS for developers).

In addition to Moodle's source code cvs.moodle.org/moodle, the CVS repository also includes areas for contributed code cvs.moodle.org/contrib and for language packs cvs.moodle.org/lang. Thanks to our contrib coordinator, Anthony Borrow, and our translation coordinator, Koen Roggemans, for managing access to these areas.

According to the software metrics site, Ohloh, the contrib folder contains well over a million lines of code (source: https://www.ohloh.net/p/moodle_contrib). wide eyes For further details of contrib, please see Development:contrib.

31 August, 2009 02:48 PM

28 August, 2009

Sam Marshall

Thankfully we only found a few more things wrong with ForumNG after the deadline. Mostly these are obscure but there's a serious IE8 problem - as it is too late to change anything before release (er, except the server OS major version... yes, let's not go there) we'll patch that the day after release.

The problem was caused by IE8 doing something right and then giving an error when it got to a bit of code where I'd done something evil to correct for IE7 doing it wrong! That's a positive sign, I think.

This week I gave a briefing and demonstrated the new forum along with the other new features, twice, to two different audiences: Helpdesk staff, and project managers.

It was basically the same briefing except helpdesk were a lot more responsive! Project managers sat there stone-faced... it's not like I have any actual jokes or anything, but I don't think the briefing was that dull, and the new software is pretty cool.. isn't it? Hmmm...

On the plus side, they didn't heckle when the system blatantly took ages to work at one point. [We were having problems with the test server, it's not a problem with forum - really! no, really really!]

Oh well, I guess they didn't want to be at that briefing. Or maybe there was a coffee shortage or something.

Another positive is that Helpdesk didn't spot anything wrong with the software. Usually when I show software to Helpdesk they are really good at spotting the stupid interface problems that are going to cause students to call them! So I end up going argh, yeah, you're absolutely right, damn, let me write that down, we'll tweak it as soon as we can... at least once. But not this time. Phew.

If I have time in next week's blog entry, I'll mention some of the areas we're planning to develop in the second release of the forum for December. I am hoping that along with these, we'll also have a working public release that other Moodle-using sites can try out, but I should say this unfortunately isn't scheduled, so we'll have to see.

by Sam Marshall at 28 August, 2009 05:13 PM

Helen Foster

Navigation in Moodle 2.0

This morning I had chance to check out the work Sam Hemelryk has been doing on navigation for Moodle 2.0 (MDL-14632). The new navigation system looks fabulous! approve The blocks for navigation and settings can even be converted to side panel tabs to save space.

If you're interested in trying things out yourself, please visit the test site - test.moodle.org/nav (login with username test and password test). As always, feedback is much appreciated. Please add a comment to MDL-14632.

In the Using Moodle forums the discussion What are the components of an exemplary high school Moodle course? is still going strong, with lots more useful suggestions. I also came across a discussion Probably will not use Moodle which reminded me of how friendly and welcoming the Moodle community is. smile

28 August, 2009 01:59 PM

27 August, 2009

Helen Foster

Congratulations to our GSOC 2009 students

I'm very pleased to report that our GSOC students, Andrei, Jose, Olli, Mihai and Alberto, have passed their final evaluations with flying colours! Congratulations everyone, and thanks, as always, to our mentors. approve

We're currently setting up test sites for several of the projects and evaluating the code for possible inclusion in HEAD.

Please see GSOC/2009 for test site links plus links to developer blogs in which each of our students have written a summary of their summer of code working with Moodle.

27 August, 2009 04:09 PM

Dan Marsden

Moodlemoot NZ 2010 Dates

Dates for Moodlemoot NZ have recently been released(13th – 15th April) – check out moodlemoot.co.nz for details.

For the first time in history, we get a Moot in the South Island (thanks to CPIT for hosting!) :-)

Christchurch (my home town) has a strong Moodle Presence – With 3 major Tertiary Institutions (Lincoln Uni, Canterbury Uni and CPIT) all running Moodle, as well as a range of schools such as Christs College, Papanui High School and Cathedral Grammar.

It will be good to see some of those familiar faces again! – keep an eye on the moodlemoot site for updates!

by dan at 27 August, 2009 02:29 AM

26 August, 2009

David Mudrak

Quo vadis Moodle?

One of the core Moodle developers put an almost innocent note into our Jabber chat recently and I can’t stop thinking about it. And no, it’s not about hating Google. The Quiz module is one of the most advanced activity module we have in Moodle. It seems to be popular and often requested by the newcomers. It even may be considered as a feature that helped Moodle to become first class LMS. I personally use it sometimes as a teacher, too. It’s just so quick and easy to prepare a question bank and let students to prepare themselves for the evaluation quiz. Yes, I trivialize the issue here. I know it’s not so easy to prepare valid and relevant questions, analyse the responses, modify the questions with low discrimination capability etc. But honestly – how many teachers do this?

Conditional activities subsystem has been committed into the repository and is one of the Moodle 2.0 highlights. It enables course designers to restrict the availability of any activity according to certain conditions such as dates, grade obtained, or activity completion. The world has been waiting for this feature since ages. And Sam really did a good job – kudos for him!

Now, the little worm in the back of my mind starts to whisper: Shh! Wait! This all starts to smell like a SCORM too much! Is not it a little bit strange that the automatically evaluated Quiz is so matured, while the Forum, the essential tool for constructivistic online courses, still lacks such essential features like to subscribe to individual threads, to mark (or tag) the thread as closed, to collapse the parts of the displayed threads etc.? When did we last improve our good old Forum in a really significant way? Why do we not support real cooperation of the students? We are still not able to group students into a team and grade the team work instead of individual students, for example.

I am all for these Moodle 2.0 changes, portfolios, repositories, database layers, webservices, output rendering frameworks, core architecture clean-ups and refactoring. Moodle becomes really nice cathedral in many areas. I only hope I can still start my Moodle presentations saying that the Moodle development has been always driven by a solid pedagogical theory and by its users’ needs. But also, Moodle has always helped teachers to get constructivism into the class simply because using Moodle forced teachers to think in terms of students activity. Not only the Moodle development is driven by teachers’ needs. Moodle learns teachers how to teach in a different (hopefully better) way. I consider this the most important face of Moodle and I wish it would not be put into the shadow in the light of all the bright and glittering cherries of the future release.

by David at 26 August, 2009 01:53 PM

24 August, 2009

Tim Hunt

Herding cats

Just before I left Perth, Martin advertised for a Project Manager for Moodle HQ. I think this is probably a good thing, if a good person applies and is appointed. However, I also think it will be a very difficult job to do.

Martin always has too much to do, and any time he can identify some tasks that can be delegated, it is a good thing. Early in the history of Moodle HQ he found Mike and Darlene who run a lot of the commercial side of the Partners network. More recently he appointed Helen to act as community co-ordinator, and Jordan as system admin. All those were successful appointments, and having watched form the sidelines I have seen that Martin will not recruit someone unless he is sure they are right for the job (important when you are running a small business) and Martin is a good judge of people.

The other reason a project manager would be a good idea is clear to anyone who had been following the Moodle 2.0 development, which still has a long way to go until it is finished. Someone with more time than Martin has to ride herd on the process can only help us get 2.0 out of the door.

However, it is not quite that simple. On the one hand, I have studied the Open University Project Management course from their Postgraduate Computing program. That is an excellent course, and as a result I know a bit about and am interested in what project managers do. On the other hand, I also know the fairly independent way that I and other core developers like to work. That is why I chose the title of this blog post. (Not because of some people's user profile pictures!)

To start with, the Moodle project is not even a project in the sense that Project Managers use the word. A typical definition is "A project is a temporary endeavor, having a defined beginning and end," but Moodle itself will not end (we hope). Still, some of the things we do, for example, the Moodle 2.0 release, are projects in this sense. However, we know there will also be another project called the Moodle 2.1 release later. Therefore, if we contemplate a short-cut that would let us release Moodle 2.0 sooner, we have to balance the short-term benefits with the long-term costs of cleaning things up in a later release. Classic project management tends to think about one project at a time.

That ties in with Moodle's choice of feature-driven, not date-driven releases. We will pick a set of features to be included in a release, and we will release when they are done, tested and bug-fixed, however long that takes. Well that is the general policy, but a certain amount of pragmatism is applied when interpreting it. This is a fairly unusual way to run a project. For example, with the Open University's Moodle-based VLE we operate the other way. We have date-based releases, with the dates announced a long way in advance, but we do not guarantee what features will be an any given release very far in advance.

Then there is the the nature of the work. One area where project management is generally successful is in construction projects. The cliché old maths problem "If it takes 2 men 7 hours to dig a trench 6 metres long ..." has at least some relevance to reality there. There is even the Bluebook cost guide that has established estimates for certain types of construction work.

In contrast, as that classic of software project management "The Mythical Man Month" says, "adding manpower to a late software project makes it later." What software developers do is much closer to an architect drawing the plans than to a builder laying bricks. The compiler (or PHP interpreter) is the builder. This is hardly new, and is why agile software-development methodologies were invented. If Moodle's new project manager is going to adopt a Methodology, I hope the choose an agile one.

Another difficulty is that software developers are not fungible. If there is some tricky job involving security you probably want Petr to do it. If it is to do with the quiz, it would be best if I did it. If it is related to backup and restore, no one wants to do it, and so it ends up with Eloy ;-). If those people do the job, it will be quicker. On the other hand, sometimes you want to give the job to someone else, to increase the bus number of the project. While this sort of think makes the project harder to manage, it is the sort of thing that a good project manager knows how to deal with - once they get to know the people involved.

Another consideration is that developers are highly distractible. That is, while they are working on one thing, they may suddenly notice that something is a bit messy, and decide to rewrite it or refactor it, even if that was not part of the original plan. When considering the long-term health of the moodle, that might be the right thing to do, even if, in the short term it delays the next release. At other times, it might just be self-indulgance and cause bugs. Would a project manager be able to tell the difference? Anyway, as some-time tiddlywinks world champion Andy Purvis once told my, after thrashing me soundly, "Strategy should be a mixture of planning and opportunism."

A final potential problem is that the Moodle core developers are a highly motivated group of people. We care a lot about Moodle, and have demonstrated that over the years. We don't need to be told what to do, and a project manager who tried could piss a lot of people off very rapidly and do a lot of harm to the project. Fortunately, I think the chance of Martin appointing someone like that is tiny. However, I think is an important point to make, that the Moodle Project Manager should be a colleague and peer of the developers (with a particular set of skills). That is, they should manage the project, not the developers.

So, I have said that I think a Moodle Project Manager is a good idea, but I have also said why I think it would be a very difficult job to do. So what do I think the Moodle Project Manager can usefully contribute (that I, as a developer, would not object to ;-)).

A good project manager is always a good communicator, and in multiple directions. The Moodle Project Manager will need to communicate with the developers to track as clearly as possible what development is going on, and what still needs to be completed before the next release. They then need to communicate that picture of where we are to all the Moodle administrators waiting for the next release, including the Moodle Parters. They also need to communicate it back to the developers to help them see what progress is being made and what the priorities. Naturally they will be working closely with Martin. They also need to communicate progress to Translators and third-party plugin authors, to help translators have their translations ready as soon to the main release as possible.

A project manager is also good at extracting clarity from a confusing situation, which is really another part of what I just wrote. They can take reports from a lot of people, and a more-or-less vague list of outstanding tasks, and combine that into a picture of where we are now, and where we are going that other people can understand.

Once you can communicate well, and as a result derive a clear picture of where we are and where we are going, then the actually project planning - getting the right people to work on the right tasks next - is relatively easy, but still requires some knowledge of the people and the tasks. Then there are the people skills to help keep people motivated and focussed on the next release without trying to over-manage them.

Finally, and particular around the release time, a project manager can improve the processes. For example, does Moodle need string and user-interface freezes in the run up to the release, to help translators and theme designers? (The answer needs to be a consensus of all involved, so more communication.)

The project manager will also be one of the people in a position to hear what new features people are most desperate to have next, and so will be able to contribute to planning the scope of future releases.

So, it is a challenging job, but I think someone is needed to do it.

by Tim Hunt (noreply@blogger.com) at 24 August, 2009 11:50 AM

Helen Foster

Moodle4Mac for PPC

A few days ago I received a nice surprise from Ralf Krause:

Dear Helen,

it's your birthday ... yes ... really!

I built a new version Moodle4Mac with XAMPP. XAMPP 1.7.2 for Mac OS X is the newest product from Apache Friends and it works on a PPC prossessor. You will find the download on the Moodle server. Look at http://download.moodle.org/macosx ... I hope you will like it!

Moodle4Mac is a product of your German Moodle Partner Moodleschule e.V.

Best regards, Ralf

Thus, the good news for anyone using a Mac with a PPC processor is that there is now a Moodle4Mac 2.0 dev package they can use! A big thank you to Ralf for building and maintaining the Moodle4Mac packages. approve

The Moodle for Mac OS X packages and the Moodle packages for Windows help people without access to a web server to easily install Moodle on their computer.

24 August, 2009 10:19 AM

21 August, 2009

Sam Marshall

So ma-ny bugs! So little time...

We just hit the deadline for bugfixes to our next release in the start of September. Nothing else gets fixed for the release after today; if anything important is found, we'll fix it with 'catch-up' patches to the system.

The good news is that I actually fixed all the ForumNG bugs (28 this week). Bad news is that I don't really feel like we had enough testing - they also only started testing it this week. Email features haven't been tested because we had technical problems setting it up on the test system. Overall, though, I still think it probably works.

Here are some things that were found during testing despite that I also thought it 'probably worked' when we sent it for testing in the first place:

  • Students couldn't post or reply or view discussions. (Ooops.) Nor could tutors. (Ooops again.) It worked for admins though! Well, admins using Firefox, because...
  • The interactive features all broke for Internet Explorer users. (Hey, it's only 80%.)
  • The interactive features all broke rather more seriously in Internet Explorer 6 specifically.
    I decided there wasn't time to fix it and got permission to leave out all the JavaScript for that browser, at least for now. Might have to put it back in later if people complain. For now, we are proudly running an 'IE6 sucks, get a real browser' message in the footer of affected pages. (Note: The wording might be slightly different...)
  • The edit timeout implementation was a complete mess, with no checking at all, and utterly incomprehensible to students. Testers complained.
    This turned out to be kind of a plus in the end, because now there is a really nice edit timeout implementation; when you edit a post it tells you what the deadline is, if the deadline's getting near the message goes bold, and when it runs out then the Save button is greyed.
    In addition, while you're just looking at a discussion, the 'Edit' and 'Delete' links automatically vanish when time's up.
  • Pretty much every Cancel button anywhere across the entire forum broke in a different way. (Who ever tests Cancel buttons?)

So, that's the good news. (Maybe?)

I guess the less good news is that I'm not quite sure when there will be a public release for other Moodle users (to 'contrib') of this code, even after we think it's working! Hopefully we can do this alongside our next December release. There is a bit of work involved though because this code depends on TinyMCE and standard Moodle 1.9 uses HTMLArea. With luck they have similar interactive facilities, but...

By the way, if you're an Open University student/tutor/other staff member and are wondering when you get to use the new forum, the answer is probably not 'September 1st' even if we are theoretically releasing it then. :) A very few pilot courses will be using it in September, along with the staff LTS-EDIT forums, and I think the VLE examples one that tutors can see. Most people are still trundling along on the existing forum for some time to come.

by Sam Marshall at 21 August, 2009 04:42 PM

20 August, 2009

Helen Foster

Happy Birthday to Moodle and Martin!

Happy Birthday to our open source course management system, Moodle, and to Moodle's founder and lead developer, Martin! smile

Moodle is 7 years old today! Please post your birthday greetings here: Happy Birthday to Moodle and Martin!

If you're interested in Moodle's history, please see

20 August, 2009 09:10 AM

18 August, 2009

Helen Foster

Migrating from Blackboard to Moodle

Last week I came across a couple of interesting presentations by Jonathon Sweetin and Tina Farmer of Pitt Community College describing their experiences of migrating from Blackboard to Moodle - The Whole Kit and Caboodle on Moodle and An LMS By Any Other Name... Both links are to entries in the Moodle Buzz, our database of Moodle news and publications from around the world. A further entry of interest to anyone considering migrating from Blackboard is the Final 2009 Report of the University of North Carolina LMS Evaluation Committee.

For additional information on migrating from Blackboard to Moodle, please see the Blackboard migration documentation.

18 August, 2009 09:33 AM

13 August, 2009

Helen Foster

Moodle HQ welcomes long-time Moodler

I'm pleased to announce that our Moodle HQ team now includes another European member - long-time Moodler David Mudrák. approve

David has developed several contributed modules, including the popular Stamp collection module, and is currently rewriting the Workshop module for Moodle 2.0 (see the discussion Workshop 2.0 screeshots for the latest developments). In addition, David is a Czech language pack maintainer and runs the Czech Moodle community site moodle.cz. David has been around on moodle.org for quite some time - more than 6½ years according to his profile!

David will be working from the same office as fellow-Czech Petr Škoda (skodak). I hear that David has already started painting the office walls an orange colour to match Moodle HQ in Perth!

13 August, 2009 05:01 PM

Tim Hunt

On the busses

On Monday I was privileged to to accompany Jo, Linda and Mary on two of their busses. Jo and I made our way to the middle of a street by the Thames in Pimlico, just opposite the old Battersea Power station, meeting Mary at one end of Vauxhall bridge, and Linda at the 24 head stop. Apparently that is the proper name for the bus stop at the end of a bus route.

The plan had been to get the 24 all the way to the other end at Hampstead Heath, and then get the 168 back all the way south to Old Kent Road. However, it turned out due to an accident in Tottenham Court Road, the 24s were not going beyond Victoria. We got kicked off there, and were faced with a potential rules crises. Jo, displaying a frightening knowledge of the London bus network, almost immediately suggested that we could get the C2 from Victoria to the other side of the Heath, and then walk across to the 168 head stop and so salvage some of the day.

Speaking of the rules of their busses odyssey, they can do other busses out of order, but are only allowed to add them to the blog in order. So, since the C busses will only appear after all the numbered busses, and the As and the Bs, that bit of the trip will probably get blogged in about 5 years time. Who know what the rules say if the route if modified in the mean time?

Having walked across the park, we found not only 168 busses, but also plenty of 24s, and the news that the route was now clear. (Actually, the busses going south use Gower street, not Tottenham Court Road.) So, in the event we were able to complete the rest of the 24 route in reverse, finishing at Victoria, from where Jo and I went to Oxford Circus for a very nice Curry at the Kerala.

It's a strange hobby, but it keeps my mother out of mischief of a Monday and it was nice to be able to share it with her. Being a geek, I hope I can be there when they do the 42 route. And I am pleased I persuaded my mother to blog. Now that I have added a hit counter to their site (thanks to http://www.statcounter.com/) we will be able to see whether anyone is interested, or whether the only visitors are friends and family, or people trying to find travel information. I have now also added a little search form to let people easily find TfL bus route maps from the blog.

by Tim Hunt (noreply@blogger.com) at 13 August, 2009 10:22 AM

11 August, 2009

Helen Foster

The story of the database activity module

Today I finally got around to renaming and recategorising database documentation pages about the database module to 'Database activity module'. Hopefully this will reduce confusion between the activity module and Moodle's underlying database.

The database activity module, which enables students to create, maintain and search a bank of record entries, was added to Moodle 1.6 by Martin D. It became popular overnight and so was added to Moodle 1.5.4 too.

The database activity module was heavily tested on moodle.org via three front page activities - the Modules and plugins database, the Themes database and the Moodle Buzz database. The creation of a database for 'all known Moodle modules, hacks and plugins' was extremely well-received by the Moodle community, as prior to then, contributed code had been scattered across Using Moodle as forum post attachments.

A presets feature was added to the database activity module in Moodle 1.7, allowing database activities to be easily shared. A variety of presets are available for download from the database for databases in the Moodle Exchange.

What does the future hold for the database activity module? As it's quite similar to the glossary module, it has been suggested that glossary data could be ported to the database module and the glossary module removed from Moodle. surprise (Source: Some feedback on the database module in 1.6dev)

11 August, 2009 06:45 PM

10 August, 2009

Helen Foster

Ten new particularly helpful Moodlers

Last week I received a lovely message from Colin Matheson, who'd just become a particularly helpful Moodler:

"I am super happy to achieved this lofty designation. Moodle.org is the greatest online community: developers+IT+teachers in a big mish mash of positive intentions."

Particularly helpful Moodlers are people have written a lot of "useful" posts in the Using Moodle forums recently, as determined by the Moodle community when they rate posts.

Our Community credits page lists particularly helpful Moodlers past and present. In the last two months, ten new people became particularly helpful Moodlers. A big thank you to everyone who helps in the Moodle community by answering forum posts. approve

If you're wondering how icons such as the PHM 'M' are displayed next to forum posts in the Using Moodle forums, please see the Moodle.org FAQ.

10 August, 2009 01:18 PM

07 August, 2009

Helen Foster

Issue security levels

Did you know that the security level setting of an issue in the Moodle Tracker determines how many people can view it?

I knew that serious security issues could only be viewed by members of the security team (led by Petr Škoda) but I only discovered recently that the other security levels also restrict access.

The different security levels provide access as follows:

None - Viewable by everyone, including non-logged-in users
Could be a security issue - Viewable by all logged-in users
Minor security issue - Viewable by developers and testers only
Serious security issue - Viewable by members of the security team only

If you're not sure whether your issue is security-related or not, please report it in the tracker anyway. If you're not sure which security level to choose, select a higher level. The issue can then be reviewed by a member of the security team and if necessary the level changed (as happened for MDL-18996).

The reason for restricting access to security issues, is that Moodle practises responsible disclosure. This means we have a policy of disclosing all security issues that come to our attention, but only after we have solved the issue and given registered Moodle sites time to upgrade or patch their installations. (Source: Moodle security procedures)

If you have a non-security-related issue, then the more people who can view it the better.

"Given enough eyeballs, all bugs are shallow" (Linus's law)

07 August, 2009 12:01 PM

04 August, 2009

Helen Foster

GSOC projects nearing completion

With less than a fortnight to go till the official GSOC 'pencils down' date (17 August 2009), our students, Andrei, Jose, Olli, Mihai and Alberto, are well on their way to completing their projects.

This year, for the first time, we've encouraged students to keep a blog of their progress. See GSOC/2009 for blog links together with links to tracker issues and discussions about the projects. As always, comments and feedback are much appreciated.

04 August, 2009 01:31 PM

03 August, 2009

Helen Foster

Thanks to our moodle.org sys admin

Last Friday, 31st July, was System Administrator Appreciation Day. A belated big thank you to our moodle.org system administrator Jordan Tomkinson for looking after all our servers so well. approve

Moodle server availability info can be found on http://moodle.org/stats/network.php together with info on the availability of CVS mirror servers.

Last Friday was also the last day of Moodle 1.6.x in the Moodle Tracker (MDLSITE-737). As Martin D mentioned in the moodle.org news six months ago, New releases: Moodle 1.9.4, 1.8.8, 1.7.7 and 1.6.9, "Moodle 1.6.9 and Moodle 1.7.7 mark the last builds that the core team plan to release from those branches... please upgrade to later versions!"

03 August, 2009 04:34 PM

02 August, 2009

Penny Leach

Changing my approach to keysigning

After attending Debconf 9 in Cáceres, Spain, and talking to various people about their different approaches to validating identity, I have decided to change my approach to keysigning.

In order to sign your key, I must have met you before and can recall your face or name. If I have not met you before, I must have had an interesting conversation with you during this meeting, and am relatively sure I will be able to recall you in future meetings.

I will of course still need to look at government issued identification for people I don't know very well who fit into one of the two above criteria.

Part of the reason for this change is that for the second time, someone didn't want to sign my key because my New Zealand passport has the name "Penelope" (along with all other documents like my two driving licenses and Swiss B Permit). While I can understand this, to me it shows that the traditional method of verifying identity using government issued identification is fundamentally flawed. When I think about what comprises my identity, yes, my name is a big part of it, and I consider my name to be Penny. I have never in my life been called Penelope. Not by my family, teachers, colleagues, friends or lovers. It's just not part of my identity, and anyone who knows anything about me, probably knows that. So what are we trying to achieve by keysigning then? The fact that the person you meet is in control of that key, and you've verified their identity. Sorry, but "Penelope" doesn't go a very long way to make up any part of my identity.

Identity is something I've been thinking about a lot lately for various other reasons (largely after reading Simon Grant's book about the use of e-portfolios for personal information, personal development and personal values), and intend to blog about in the future.

At any rate, conferences like Debconf are a great way to meet people and have interesting and thought provoking conversations, and me being difficult and refusing to sign someone's key because I didn't know them, or hadn't had any sort of meaningful conversation with them, led to a few interesting and thought provoking conversations. So there's an added bonus.

by penny@she.geek.nz (Penny) at 02 August, 2009 08:27 AM

Sources:  (feed) Dan Marsden   (feed) Dan Poltawski   (feed) David Mudrak   (feed) Eloy Lafuente   (feed) Helen Foster   (feed) Julian Ridden   (feed) Patrick Malley   (feed) Penny Leach   (feed) Petr Škoda   (feed) Sam Marshall   (feed) Tim Hunt 

Last updated: 07 November, 2009 01:00 PM (UTC)