This page aggregates blogs and status info from Moodle developers. Please contact Helen if you'd like your feed added.
16 May, 2012
Earlier today Martin Dougiamas posted on Moodle.org about the upcoming Moodle Research Conference on 14-15 September 2012 in Heraklion, Crete.
“The purpose of the conference is to support networking and sharing among those who are researching Moodle and thinking about ways to improve it for different learning scenarios. It will also directly inform the development of Moodle in the future.”
This is going to be interesting aspect which was not apparent before but makes sense to learn from successful case studies of implementation of Moodle. Martin went on to explain:
“We’ve had a good number of papers already submitted for the conference, so it’s looking pretty exciting! Submitted papers range from in-depth case studies of how Moodle can be applied and used in various environments to interface design experiments and the development of whole new modules to introduce new techniques.
(Personally I love detailed and rigorous case studies. There are so many ways to apply even a stock Moodle but it’s important to understand what patterns best achieve our goals of improving education and why they work)”
They have extended the submission date until the 28th May, so if you have a paper to submit, go ahead! You have two more weeks to do so.
Conference link – > http://research.moodle.net/
by ghenrick at 16 May, 2012 04:26 PM
14 May, 2012
Although for my plugin reviews I do not do a comprehensive analysis, this is something I use in my consulting and training and recommend to people to think about these type of issues when considering implementing a 3rd party plugin.
There are many great 3rd-party plugins available for Moodle. However, it is important to assess the suitability and reliability of the plugin before adopting it. The list in the linked document is not exhaustive as there may be more or fewer questions depending on the individual installation and organisation.
Some hosting providers may have already have audited the plugin and publish a list of ones they approve for their hosting platform - Remote-Learner for example. However. as although something may be technically okay, the suitability and cost implications may be something to make you think.
The list is basically something that one could use to assess the risk related to implementing the plugin. Each question could have a few lines to describe what it means, but you should get the overall picture. To give some context I will explain the reasoning behind three of the questions here:
Question: Has it got a Moodle Docs page.
Even though a plugin may have extensive documentation already, if someone is in Moodle and clicks the Moodle Docs link at the bottom of the page in a plugin that’s where they end up. So having a page, or even a stub page which has the links to official documentation is a good thing and helps people getting lost.
Question: Do they (the author)work for an established Moodle development team (Moodle partner, the OU, or HQ for example)?
This is an assessment of business risk. If someone is a freelancer, the ability for them to provide ongoing support for a module is sometimes (not always) less than where it was built-in an established development team where it may be in use by many clients or installations and thus maintained for business reasons. This is not always the case, but it is just one of the many things that one coud consider.
Question: Does it impact performance of Moodle in normal or high traffic usage?
How complex is the solution? Is it using a lot of slow database queries constantly, are they optimised? are the server resources being heavily used by this and reducing the overall performance? Does it encourage more synchronous activity or is it asynchronous? Understanding what the impact of the usage of the plugin, especially if it is heavily adopted by courses is important.
Download Some Criteria for reviewing plugins (pdf) - 409.64 kB
Please feel free to add any questions or sections that you think should be added to the list
by ghenrick at 14 May, 2012 02:27 PM
13 May, 2012
by Eloy Lafuente (stronk7). Cold numbers:
71 issues have been successfully integrated with 9 rejected and 1 delayed. That is near 89% success, one, well done!
Notes:
Because some of the features planned for Moodle 2.3 are still being improved and finished, it has been decided to delay the beginning of the QA testing cycle for 2 weeks, so it will be starting on May 21th. Surely that will cause the final release date (originally scheduled for June 4th) to be moved slightly in order to GTD™ properly.
So, no doubt, the next week will be an intense one. It is the last one for anything wanting to debut in Moodle 2.3.
In the stable side, the last produced weeklies are the candidates to become the next minor releases, so expect Moodle 1.9.18, 2.0.9, 2.1.6 and 2.2.3 to be announced and available on Monday, May 14th. We are packaging all that stuff, release notes, security advisories right now.
Hot topics:
- MDL-32843 - YUI updated to 3.5.1
- MDL-31147 - In progress, detect and take rid of deprecated stuff.
- MDL-32718 - Recent activity fixes under group modes.
- MDL-32899 - Fixing the assignment upgrade tool.
- MDL-32849 - Better support of URL rewriting by slasharguments and themes.
- MDL-32689 - Allow blocks to decide if collapse is allowed.
- And a lot more in multiple areas like mod_assign, ajax, enrol, quiz, calendar, forms, administration, scorm, E_STRICT fixes...
Warm thanks:
- To Aparup Banerjee, Dan Poltawski and Sam Hemelryk, for their continuous handling @ the iTeam*, always finding, sharing, instructing, proposing and collaborating in a wonderful way. Thanks, I love to work with you!
Ciao all, stronk7 
* iTeam: Integration Team, take that dear Apple, I was first (I hope)! 
13 May, 2012 01:30 AM
09 May, 2012
The conference season has really kicked off now, and they are coming quite fast over the coming months.
1st Moodle Research Conference – Sep 14-15
The call for papers on the 1st Moodle Research Conference being held in Heraklion, Crete-Greece is nearly up as 14th May nears, so if like me your have your submission nearly done, time to finish it!
For information on the Conference check out http://research.moodle.net/
EdTech 2012 – May 31, June 1
Although not a Moot, this Ireland based EdTech conference is being held in National University of Ireland Maynooth has a focus on Digital Literacies. There are some very interesting keynotes (Martin Oliver and Lesley Gourlay , Martha Rotter and Doug Belshaw) and there is also a workshop session on Moodle 2.
For more information check out http://www.ilta.net
Here are some of the Moodlemoots in the coming 2 months:
iMoot 2012 May 26-29
This is an online Moot, focused on Communication, Collaboration and Community. There will be a good number of presentations from Practitioners around the globe. The 4 day ticket is only 80 AU$ – which is great value so this is one not to miss.
For more info check out http://2012.imoot.org/
Mountain Moodlemoot May 30, June 1
This moot is held in Helena, Montana and features a rich schedule over 2.5 days with a nice range of pre-moot sessions from Tammy Belgarde, Michelle Moore, Floyd Saner, a keynote from Laura Pasquini of the University of North Texas, and presentations from Helen Foster and Tim Hunt.
For more info check out http://www.mountainmoot.com
MoodleMoot Oklahoma – June 4-6
The Moot will be held at the Metro Technology Centers, Springlake Campus. The first day is a selection of training sessions and then the main days will be broken into four/five tracks on Curriculum, Hands-on, Technical and Business.
For more info check out http://moodle.metrotech.edu/
Moodlemoot Croatia – June 13
This Moot will be held in Zagreb, Croatia. The topics will include Implementation and development of the Moodle system
- Teaching and Learning with Moodle
- The technical side of Moodle
- Moodle 2.x
The two named speakers are Joyce Seitzinger ( New skill of digital curation ) and Susana Leitão (Moodle and SIGARRA IS – an integrated environment).
For more info check out http://www.srce.unizg.hr/moodlemoot
MoodleMoot Euskadi June 15
This Moot is held in Txorierri, Spain and looks to be a very interesting day with a number of key presentations and then three parallel sessions.
For more info check out http://mooteu12.moodlemoot.net/
French MoodleMoot June 20-22
This 8th Moodlemoot in France will be held at the University of Nîmes. There is a wide choice of case studies, round tables, and Technical and training sessions including quite a bit on Moodle 2 and on Mahara.
For more info check out http://moodlemoot2012.unimes.fr/
Hungarian MoodleMoot – June 28-30
The Hungarian Moot is held at Szent István University in Gödöllo, Hungary. The first two days are presentations with the 3rd day of practical work. The presentation themes include elearning content development, ePortfolios and Moodle integration among others.
For more info check out http://moodlemoot.hu/
by ghenrick at 09 May, 2012 12:06 PM
07 May, 2012
One new setting that I think many people will like is the new Course Setting called Course layout. This is set by editing the course settings. This is taken from the Moodle 2.3 Dev branch.
This setting determines whether the whole course is displayed on one page or split over several pages. The setting has no effect on the SCORM format however works nicely on topics and weeks!
The Options are
- Show all sections on one page
- Show one section per page
So what does it look like?
The following images show the course page as it is at first with just the section name showing in a list, and then as the user moves through some of the sections.
The things to note are
- The main page is now an index for the course
- There is basically a next section / previous section above and below the section area but using the name of the section
- Section 0 is still there (like using the old §ion= option, so you need to be aware of what you put in that section).
 Index of the Course page - "One section per page" option on
 Looking at one section
 Paged Version of Course - Last Page
So as you hopefully can see this provides a nice section by section experience.
Of course now, make sure your section 0 is just 1 line of text/graphic in size to get best use of this and that your topic fits on one screen!
Nice improvement!
As per comment, changed the images to be a real course.
This is one of a number of great improvements for the course page which includes the lovely activity selector pane. So keep an eye on the Moodle tracker!
by ghenrick at 07 May, 2012 11:33 PM
by Eloy Lafuente (stronk7). Cold numbers (2 last weeks):
112 issues (57 for April 27th, 55 for May 4th) have been successfully integrated and 22 have been rejected (plus 5 delayed). That is near 84% success, wow one.
Notes:
A lot of the planned stuff for Moodle 2.3 has been landing along the past two weeks and, hopefully, everything will be in place in some more days. Once ready, the Beta version will be released and, at the same time, the QA testing cycle will happen.
In the stable side, accordingly with the releases calendar, new minor releases of all Moodle versions (from 1.9 to 2.2) will be packaged next Monday, including the latest bug and security fixes.
In the integration side, since this week and until the Release of Moodle 2.3, we will be working in "continuous mode" (for that branch only), where the normal weekly organisation disappears and we try to integrate, test and release each 2-4 days, in order to make the QA process agile.
So, as far as everybody is going to be really busy developing, fixing, reviewing and testing, take a big breath, count 1, 2, 3... and gogogo, we can!
Hot topics:
- MDL-32503 - YUI updated to 3.5.
- MDL-32508 - Paging support in weeks and topics course formats.
- MDL-31052 - Convert all the JS/AJAX in course to use YUI 3.
- MDL-32569 - PHPUnit support improved.
- MDL-31270 - New assignment module (mod_assign).
- A bunch of 3rd part core-libraries have been upgraded these weeks.
- And a lot more in multiple areas like quizzes, themes, backup, web services, repositories, enrolments, administration, workshop...
Warm thanks:
- To YOU, for being there and helping us!
Ciao all, stronk7 
07 May, 2012 12:25 AM
04 May, 2012
I saw that the new Assignment Activity code was in the development stream today, so I installed it on my test site to play.
I like it! It is super cool.
So here I have added two short vidcasts of the assignments settings and one of an example from teacher and student point of view.
Hope you find them useful.
Assignment Settings
Assignment Example
by ghenrick at 04 May, 2012 05:52 PM
03 May, 2012
This is a bit of a different review to module reviews I have done, so please excuse me! Normally I go through the following process when doing a review:
- Background to Module/Author
- What does it do?
- Is it simple to install?
- Is there documentation for it?
- Is it easy for the teacher/admin to use?
- Is it easy for the learner/student to use?
- Does it do what it promises?
However this is going to be the first post of a series which together will be my review of ELIS – Remote-Learner’s Enterprise Learning Intelligence System for Moodle. It is a system designed to tackle some complicated processes and organisational challenges, and my normal review structure wouldn’t really suit a review as it is not just a plug ‘n’ play module.
Background
I used to work for Remote-Learner, so became familiar with the suite of add-ons. It was made publicly available through their GITHUB repository – https://github.com/remotelearner/ over 10 months ago. Initially released for 1.9 it was upgraded earlier this year for Moodle 2, so it is about time I did a review.
So what is ELIS?
ELIS is a suite of tools that add some very specific and useful features into Moodle. Here I go briefly into each aspect:
Program Management
Whilst native Moodle provides category-course structures for Moodle, and some level of interlinking with meta-enrolment, these are not interlinked as a program. ELIS provides a hierarchy structure for courses, providing the ability to group them into programs, build in dependencies, assign credits or certification for completion and also to easily roll out new iterations of the whole program as a track of classes. One nice aspect is to expire a completion of a class so that they have to re-take, useful for yearly compliance type training, or CPD.
User Management
All users in out-of-the-box Moodle are managed by the admin centrally. There is ability to provide a hierarchy for organisational structures with manages, owners and so on. THe ELIS Users feature enables the creation of user sets where viewing the users is dependent on your role within the ELIS system, so that a user can only see their users and not others. Being an admin of a user SET in ELIS does not mean you are an admin in Moodle.
Reporting
So with the extra course/program aspects and user structures and permissions, a lot of new reports can be built to provide an overview on the system. I won’t go through them all here, but it includes things like program level reporting across all the classes for a user, by himself or a manager of his user “SET”, be it a company organisation or a university course, and user Set report across all the programs, and classes in them, giving a very wide view on one or all people taking the programs and classes. However more later on this.
Notifications
Some of the events in Moodle prompt emails to users, such as self-enrolment in a course, however if someones tutor, manager, HR department wants to also get a copy that is not normally possible. The notifications aspect of ELIS provides a decent suite of event based notifications which can go to the user, or people with a right to get them for that class or user, on events such as:
- Class enrolment / completion / or when they have not started by a given time
- Program completion / or when they have not completed by a given time
Repository
ELIS has an interesting Alfresco integration that goes beyond the repository API. I didn’t have this set up for the review with Moodle 2 so I won’t be discussing this beyond here.
Summary
So to properly review this solution, I will break the review into a few different parts.
The next post in this review series I will start with the reviewing the User Management.
by ghenrick at 03 May, 2012 02:06 PM
27 April, 2012
by Jenny Gray. I didn't make it to as much of this year's OCWC global conference, which joined with OER12 in Cambridge, because of some domestic upsets that delayed my departure (you'd think living within a 45 minute drive of the venue I could have done that better!).
But, what I did see, I enjoyed very much as usual and it was lovely to catch up with my OCW family!
The biggest shame was that I missed my poster session on Moodle for OER, but my colleague Guy Barrett held the fort and had some interesting conversations with other OER Moodlers. We found a new one too at http://www.saylor.org/ so I'm hoping to have some discussions with them about their experiences and see if we can learn from one another.
The conference themes were innovation, impact and collaboration. I was particularly interested in the innovation strand, but it was the lightest of the three (or maybe it was all on the Monday).
One theme which I identified in presentations and questions was in recurring concerns from previous conferences: granularity of re-use, problems with discoverability of OER, problems tracking re-use. These are all issues that I'd like to try to address with OpenLearn over the coming months and years.
A couple of memorable quotes:
- "OER is here to stay" - Gary Matkin, UC Irvine
- "Openness is an approach not a community" - Patrick McAndrew, OU
A memorable synergy: The OU has an open-sourced assessment engine, OpenMark, looked after by my colleague Tim Hunt who is also the quiz module maintainer for Moodle. There were numerous calls for open assessment support at the conference, so it was good to try to hook more OCW people up with Tim to share the good work he's been doing in that area.
And a follow-up in the April OCWC newsletter: "The OCW Consortium has identified some interesting projects that we might like to get involved with and are looking for advice from the technology working group. We are looking for new members of the working group who can commit to being active for one year. The technology working group makes recommendations on technology to the Consortium, identifies new trends in tech that would be interesting to members, and provides technology advice to the membership in general. If you are interested in joining the technology working group, sign up here for the technology email group, or send an email to technology@ocwconsortium.org." I'm on this group and would love to see technology issues discussed again (its been quiet for a while) so please do join in if you're interested in OER and technology - we're a really friendly bunch ;)
27 April, 2012 09:50 AM
23 April, 2012
Moodle is lucky to have 4 successful GSOC projects this year – hopefully this will be a rewarding experience for the successful students and will produce some useful code for Moodle! – Thanks to Google for providing the funding to allow this to happen!
The quality of applicants varied a lot this year – we had one applicant who copied the full Wikipedia Moodle page and submitted that as their proposal. There were several students who put a great effort into their applications and missed out this year – hopefully some of these may still engage further in the community – we appreciate the effort you put into your applications and the patches you provided as part of your application process!
by dan at 23 April, 2012 07:46 PM
19 April, 2012
by Dan Poltawski. Cold numbers: 38 issues have been successfully integrated and 8 have been delayed/rejected. That is 84% success Notes: Work continues at a fast pace on the 2.3dev branch and developers should note that this week landed updated imports of YUI (3.5.0), TCPDF and Flowerplayer (3.2.9). Hot topics: - MDL-26099 - The workshop module is now able to to automatically switch phases
- MDL-32443 - A command line version of the question upgrade helper was added
- MDL-25660 - workshop submission deadlines now display on the calendar
- MDL-32388 - Problems with SCORM windows opening minimised with Google Chrome were resolved
- MDL-32377 - A bug causing the language string cache to constantly rebuild has been resolved, brining performance improvements for some sites
- MDL-32433, MDL-32356, MDL-32355 - Multiple improvements were made to the formal white theme
Warm thanks:
19 April, 2012 03:21 PM
18 April, 2012
At the Ireland & UK Moodlemoot we presented on the Google-Analytics reporting we had implemented for the Moodlemoot.ie site. In this post I will go through what the challenge was, and what reports we were able to achieve. As the implementation requires some changes to Moodle Bas Brands on his blog will focus on what we code we used and how it works to achieve this type of reporting
The challenge
Usually the standard Google Analytics code logs the url of the page. Now for my blog that url is meangingful in its naming:
http://moodlemoot.ie/programme/online-presentations/
/programme/ is first level and indicates the page is within that area
/online-presentations/ is the page name and indicates what it is
These urls are easy to understand when viewing in a report, however as with some other applications Moodle does not have these clean URLs (or SEF urls).
A url of a course in moodle could be : http://moodle.moodlemoot.ie/course/view.php?id=15
Or a section in a course: http://moodle.moodlemoot.ie/course/view.php?id=15&topic=2
Or a resource in a course: http://moodle.moodlemoot.ie/mod/resource/view.php?id=146
In a Google report the friendly url makes the report instantly meaningful, whereas the normal Moodle url adds the challenge to go back and see what it is.
So the challenge was to address that in a way that takes advantage of the incredible reporting power or Google Analytics.
I have had this idea for some years, just never had a particular reason to implement it. I have seen others do something similar, but this approach here had a specific reasoning behind it.
Anyhow, on with the show.
Pretty Pictures
Before the pretty pictures, let’s explain what we did. It is a simple approach and it is not a solution for everyone. (yes, better get this in now this is an approach to the solution which may or may not suit you). So with the code implemented for yourself, you can do what we have but you may want different things. We do, just did this as a conceptual demo of the approach.
We had Google Analytics log this url http://moodle.moodlemoot.ie/2012/general/Pecha+Kucha/What+is+Pecha+Kucha/Page
instead of the normal one which would have been http://moodle.moodlemoot.ie/mod/page/view.php?id=69
It logs /$category/$courseshortname/$sectionname/$activityname/$activitytype
This is our 1st phase of the development we hope to do, we will plan to have custom variables stating role (student/teacher) and other aspects as well, but more on that another time.
The reason for the / in the url is specifically to available of the Page path depth analysis in the Analytics.
I will add later what we intend to do next, hopefully collaboratively with people.
The stats reports here run from the date before the Moot, till the day after. April 1-5th.
Here is a quick overview of the visitor traffic that Google Analytics tracking provides. In this case the top report is Page Views vs Visits, with some summary stats below it.

The bottom demographic report shows Operating system in this regard.

It is also possible to show time spent, so the image below is of Average Visit Duration.

URLS dont matter here, just that the code is everywhere on your Moodle site – so within the Theme. This is important and it is why the code solution we went for was a theme change, not a block or mod.
Visitor Flow
Another very handy report, for seeing how users flow through your site (main page, login, course page, forum, view post, etc…) However you can see from this image that the URL is important here and becomes meaningful.

That red bit is user dropping off at that point. You can also use this kind of analysis to explore your navigation labelling and so on.. but enough on that for now. As with most of G-A you can play with the source item which in this case was Country on the left. It would not surprise someone looking at this to know that the Moot was held there. But it could be many things like city, or operating system filtered for Returning Visitors only..

That was audience standard reporting, what about content (pages etc) reporting? Well, now it gets a bit fun!

Now we see the Page urls in the results below. And you can see what we have done with urls and that the report is instantly readable.
Then you can get more info on the Pages

So I can see that The glossary in the best practices course has an average of 2 minutes on a page. 337 views, 84 unique. Hmmm Michelle will like that I am sure.
We can look at referral traffic (where the person came from when clicking a link to the site) – I have doctored image to remove some person info. So we can see most came from the main Moot website, then twitter links, and mostly afterwards the email alerts. But 71% was direct traffic who type in the URL or had a bookmark.

Custom Reports and Dashboards.
Thats all well and good for normal reports, but when you build custom reports and dashboards the fun really begins.

There is a number of widgets on the dashboard which show specific information. Like the pageviews/traffic for a specific course over the 5 days. These widgets are configured easily as below:

This only counts the traffic where Page Page level 2 contains /workshops/ which is the unique course shortname. This is the very reason we went with this approach.
So how about a whole dashboard on one Moodle course only?

These widgets all filter on the course level for /game/ and show different aspects.
But there is more. Path level rocks.!!
With this report, I can then dril down a category (in this case 2012), into one course and then see a list of the section names that people spent time in the items within that section. and could also dril further to see the usage of the items within that section alone
 Custom Report with option to drill down
 Custom Report Drilled down 2 path levels
Access
Now of course if you were (for some, or maybe all courses) want to give this info to each teacher or school/faculty admin you would not want to give them access to the main G-A login, so you can either
a) download the PDF of the report – [attach pdf]
b) Have it email them the report, daily, or weekly, monthy etc.
So by setting up a dashboard for each course that you want to the overall usage can be fed right back to the people who want to know.
Future Development Ideas ….
This was just the first implementation of the solution as a visible proof of concept and approach. Although I have a clear idea of how this “could” progress what would be better is to get a group of like-minded people together to collaborate on this going forward, or at least that is the idea. Get in touch!
So, what are the possible future roadmaps bits?
- Using Custom Variables in G-A to track visitor used related aspects such as
- the main role of a user from a hidden profile field (staff vs student or Job Title, or work department)- useful for breaking down activity by a new visitor option
- perhaps even an anonymous hash which correlates to a user within Moodle, just g-a does not know it.
- Using page related variables to track certain aspects of visit (category for example) instead of URL paths
- Exploring logging Event tracking for activity completion or completions
- Building a settings page / config to control which variables are logged in the various parts of the implementation as no two sites would probably want to same data
- Build an email messaging scripts that takes the PDF sent via email by Google-Analytics for a report, and inserts it to a course for the teacher.
- build a plugin which replicates moodle logging calls into analytics calls as a more 1-1 outsourcing of the inbuilt statistics
- Exam using the analytics API to extract data and produce reports in Moodle using Google-Chart rather than report via email or the Google Analytics interface.
Well, that is some ideas, I am sure that there will be many variants to tackle all the use cases that people want to implement, but perhaps we can get a group to work through some of these together.
Technical Implementation
So for the technical aspect, I suggest you pop over to Bas Brands blog.
by ghenrick at 18 April, 2012 07:54 AM
Over the last two years, there has been a great online Moot, powered by a willingness to shared experiences and learn from others in their practice and implementation of Moodle. These fully online practioner conferences had a large number of virtual presentations from people around the globle. This year it is taking place at the end of May, so I had a quick chat with the organiser Julian “@moodleman” Ridden about the iMoot to ask him to explain what the iMoot is all about.
What is the imoot?
Julian – iMoot is a Global online conference that aims to unite the best speakers from all over the world in one place to share their knowledge with the global community. Having been in a lucky position to visit Moodle Moots all over the world, I have heard from a wide variety of passionate and knowledgeable Moodle speakers. I realised however that sadly they are often only heard by people in their regional locations. The idea of iMoot was to provide a central online space where these local experts could get their voice heard by the community at large. The second goal is to charge as little as possible to ensure these voices can be heard by as many moodle users as possible.
When is the imoot?
Julian – The next iMoot is coming up on May 26th. It will run for 24 hours a day over 4 days. The reason for the non-stop schedule is to allow for presenters from all over the world to present in their local timezones. It also allows us to have a very active, dynamic and diverse program.
What are the strands at this years imoot
Julian – Well first I should point out our theme. This year we have gone with Moodle C3 - Communication, Collaboration, Community. We saw these three “C’s” as being the cornerstones to Moodle’s success and of those who use it. We are keen to hear stories that reflect on that theme. The iMoot itself is a working case in point of these very same C’s in action. More information on the theme can be found here – http://2012.imoot.org/mod/book/view.php?id=31&chapterid=11. As the event is global and has an intentionally loose theme, the streams themselves are simply slit up into presentation types. These are “How To’s” or instructional sessions), “Case Studies” and “Academic Papers”. This last one has been added by popular request from the community.
If someone wants to present, what should they do?
Julian We are currently seeking submissions for this years iMoot. If you have already presented, or will be presenting, at a moot somewhere in the world, we would love it if you also submitted your session online at our website. If you are not presenting at a moot but still have a session in mind, we would also love to hear from you as well. In return for speaking at the conference you receive free admission to the event and access to all sessions.
What we require from our presenters is the ability to present at least one live session delivery via our Moodle website. We use Adobe connect for the live delivery. Support is provided to presenters who have not used the tool before. If a presenter can, we ask that they present at two different times of day to allow more attendees to hear them. But while a request, this is not a pre-requisite. After a presentation time is also given for some Q and A.
So have you got some experience to share? Then pop over to the iMoot site and submit a proposal.
by ghenrick at 18 April, 2012 06:36 AM
12 April, 2012
Nearly 40 presentations from the Moot last week are now online, so I thought I would include a selection of them here. These selection is random-ish, with no real preference on any. Hopefully the videos will be available in the coming weeks to upload as well!
For the full list check http://moodlemoot.ie/programme/online-presentations/
Enjoy.
by ghenrick at 12 April, 2012 11:17 PM
I have been thinking some time about the announcement nearly two weeks ago of the Blackboard acquisition of two Moodle Partners. My focus has been elsewhere so I have not had the chance to blog my thoughts until now.
As most will know, for the past few months my focus was the organising of the Ireland & UK Moodlemoot which ran last week April 2nd-4th, and from feedback so far people were happy with it. It was the first event that I have run with my new business (http://www.lts.ie), so hence it was a big focus. But as that is now over, and moving into the wind-down phase I have the time to put my thoughts to paper so to speak.
My Initial thoughts
I admit that I was surprised by the move on a few levels.
Firstly I was surprised that Blackboard would acquire any Moodle service provider at all, as I think many were. Up until then it did not fit within my understanding of their planned business model; however business focuses can change and plans have to adapt. When you have a core product like an LMS, the Value Added Services (VAS) is where the incremental profit can be coming from. And looking at it now, those behind Blackboard have certainly laid the foundations for this area with virtual classrooms and learning analytics.
Virtual Classrooms
The acquisitions of WIMBA and Elluminate platforms for virtual classrooms demonstrated a good understanding that the LMS is one part of the ecosystem and they wanted to have other value-added services to augment the LMS service income.
In some ways you can see this as the first move towards diversification of LMS service provision. When you have clearly good products (like Elluminate) which can work with many LMS, it makes sense to actively sell into all of the different LMS customers which is only made easier through supporting the multiple platforms.
I have not seen a better collaborative whiteboard than the one in Elluminate (now Blackboard Collaborate), although it is just one aspect of the overall virtual classroom solution. Right now, I see Adobe Connect as being better for mass-delivery (for webinars/presentations) and there is a variety of solutions that can perform small class tutorials. The one I am watching in this regard is BigBlueButton. However, time will tell how this area plays out. The battle is still ongoing.
Analytics
Also Blackboard have made good inroads with the analytics side of learning and if they can make this work for Blackboard why can it not also work for Moodle, and other systems. Analytics is going to be one of the service battlegrounds in coming years. Stats are king. So limiting the market for a good learning stats focused application does not make sense in the grand scheme of things.
When I worked with Enovation Solutions they used Jasper Reports to build BI reports for Moodle. These were kind of cool and the power of an external tool analysing Moodle was clearly one way forward. I have also seen the great reporting that is possible with Moodle when you enhance it with a system like ELIS (from Remote-Learner when I worked there), these reports were compelling. Joule from Moodlerooms also had enhanced reporting. So it is clear that reporting is being pushed as a priority.
The two community contributed modules in Moodle which can enhance reports are configurable reports and the Ad Hoc SQL reports, both of which enable report design however within the confines of Moodle database structure.
So if I was a betting man, I would expect a version of Blackboard analytics to be available within Moodle in Joule soon, and perhaps even a community block released.
So..
So if these are some of the business reasons behind the push to support multiple platforms, what is the impact on Moodle the product and Moodle the community?
Well, to understand the potential impact one has to look at what Moodle is but before that let me add a quote.
Martin Dougiamas made a very clear post on Moodle.org explaining his view point, these were two of the points
Moodle itself has not, and will not, be purchased by anyone. I am committed to keeping it independent with exactly the same model it has now.
I think it’s prudent to wait and see how it works out. There are a lot of strong Moodle supporters involved inside Moodlerooms and Netspot, and they all have the best of intentions towards the software and the community.
This is very important and his comments lay the groundwork for my thoughts.
What is Moodle?
Moodle is an open source application, where anyone can use it without a license fee. They are free to install it as many times as they want, use it however they want, to customise it however they want, to integrate it into any system as long they provide the source to others; not modify or remove the original license and copyrights, and apply this same license to any derivative work. The full license is available here – http://docs.moodle.org/dev/License
So what is the risk to the software itself?
Well, not a lot, or at least this change of ownership of two Moodle service providers has no major change or any risks that I can see.
Moodlerooms already had a version of Moodle so to speak, with the Joule system as they had wrapped extra functionality around it but as they only hosted Joule and did not distribute it some of those features are not publicly available. That said, they have released a number of of their changes to the community over the years including flexpage, googleapps integration and other code directly into HQ.
Moodlerooms contributed the IMS LTI consumer (External Tool) and the IMS Common Cartridge import and export for Moodle 2 both of which are great additions and Netspot are currently working on the re-development of the Assignment for Moodle 2.3.
There was also another corporate distribution of Moodle, and some open source enhancements such as ELIS from Remote-Learner, but core Moodle still exists and grows stronger with more features and, most importantly, more integrations with other systems.
I firmly believe that Moodle, as with all LMS, is one part of the full learning eco-system. In this light Moodle 2 having out-of-the-box integrations with Flickr and a wide range of other systems is the road forward – this is where things in general are moving especially considering the future impact as IMS LTI becomes widespread.
There is a large number of contributors to the Moodle code base as can be seen here – > http://moodle.org/dev/ So from where I sit, there is no increased risk for Moodle code base from the acquisition of the two Moodle Partners.
How about the community?
The Moodle community is the backbone of Moodle. The community is made up of so many different groups around the world:
• Moodle users (teachers, trainers, course creators, admins)
• Moodle developers
• Moodle integrators (with other systems)
• Moodle HQ
• Moodle Partners
• Moodle partner clients
• Self hosting institutions
• Other Service providers
and so on.
Although a lot of the community interaction happens in the Moodle HQ provided forums, ticket system (tracker), Documentation Wiki (Moodle Docs ) there is also a lot of interaction elsewhere including Moodle User Groups, Moodle support e-mail lists, support blogs, help videos on Youtube and other systems, Twitter, Google+, Events like Moodlemoots or Moodle streams in other conferences.
- The community is strong.
- It is cross sector.
- It is global and it is growing quickly.
Last week’s Ireland & UK Moodlemoot showed the strength and depth of the collaboration and sharing that is going on and will continue to grow. One thing that struck me was that although the numbers from specific institutions may have dropped, that overall more institutions were attending the Moot for the first time. That is a strong and healthy eco-system I think.
So of the community itself, two of those service providers now have a new boss and a different direction perhaps, but at least from what we have read so far, the intention is still there to keep them as part of the community which bodes well.
Will this still be the case in 2 years? Who knows, but knowing some of the people involved in both companies, they are good people so as it stands I am not worried yet.
So what about Moodle HQ?
Having worked for two Moodle partners, I understand how the partner system helps funds Moodle HQ. I know it has been explained it in presentations at Moots and in forum posts but I do find that when talking to people in the community they are not always as aware of the details.
It is no secret that Moodle partners give part of their revenue to help fund Moodle HQ and that this money in addition to the donations Moodle HQ receives directly is what gives HQ the income to employ the developers and staff in HQ to work on Moodle fulltime.
To quote one of Martin Dougiamas posts:
As for your other question, no, Moodle Partners are not required to contribute to Moodle in any other way than by their 10% royalty payments. However, the bigger partners all do additionally contribute to the code in some way (either by coding, or bug fixing, or specification development, etc), because they want to be (and also to be seen to be) a true part of the open source community. It’s about respect.
Likewise, their clients often have particular concerns (eg bugs) that need addressing, and we (Moodle HQ) prioritise those concerns. It’s a very symbiotic relationship of goodwill and co-operation. And everybody in the world gets to use the resulting software for free.
Win-win-win.
The Moodle partner network is one of the things which differentiates Moodle from other open source applications in providing it a strong continuous income to push the product further and further, improving it, supporting it, bug fixing it and so on.
The revenue stream from the partner network, along with the depth of the community certainly are two of the pillars on which the success has been built.
What is the risk for HQ with the two service providers being purchased?
Well, my understanding from the public statements is that they are still Moodle partners so will continue to contribute under that mechanism. Over the last few years, the partner network has been expanding and is currently 50 strong so that will help provide more security over time.
From where I stand it looks like the code, the community and HQ are in a strong position for the coming years.
by ghenrick at 12 April, 2012 08:36 PM
by Dan Poltawski. Cold numbers:
Last week 36 issues
have been successfully integrated and 10 have been delayed/rejected. That is 78% success
This week 21 issues
have been successfully integrated and 9 have been delayed/rejected. That is 70% success
Notes:
We’ve had two broken weeks with some easter holidays but the pace of change continues like normal. As we are heading towards code freeze for a new major release many things are starting to make their way from developers’ work in progress branches to land in 2.3dev. If you’ve not developed in master for a while you’ll start to notice some differences. E_STRICT is now part of DEBUG_DEVELOPER so all developers are encouraged to remove any hardcoded 38911 debug levels and check master for E_STRICT warnings. By raising our debugging level to E_STRICT we hope to increase compatibility with future PHP versions and reduce obscure bugs. Core E_STRICT issues can be reported in MDL–32405.
Hot topics:
- MDL-20438 - Moodle now checks for updates in the core release and third party plugins, reporting available updates to administrators
- MDL-32143 - Custom icons can now placed in dataroot to give more flexility to sites who are not able to change their theme directory.
- MDL-32323, MDL-32400 - PHPUnit support has landed, bringing us a number of advantags over simpletest. We already have over 1000 tests and 20,000 assertions in core (more than double the simpletest number)! Developers are encouraged to try out the new framework and give feedback.
- MDL-17327 - The database module search performance has been improved to be much more efficent.
- MDL-31789 - Problems with teachers viewing their local file system repostiories in Moodle 2.2 have been resolved
Warm thanks:
- To Dan Marden (Catalyst IT) and Davo Smith (Synergy Learning) - two great developers with who share a great initital! Thanks for your development, fixing, collaboration and support for other Moodlers on the Moodle forums.

12 April, 2012 04:34 PM
11 April, 2012
Last week at the Ireland and UK Moodlemoot 2012, I did a short presentation on IMS LTI.
I have blogged before about IMS LTI; what it is; how Moodle could use it; and how a custom Module enabled Moodle act as a LTI provider tool.
So for more background I suggest you have a read of those posts:
To recap the key points:
Before explaining LTI, What is IMS?
The IMS Global Learning Consortium (IMS GLC) is a global, nonprofit, member organization that strives to enable the growth and impact of learning technology in the education and corporate learning sectors worldwide.
The IMS name originates from the initial name of the organisation which was a bit specific – Instructional Management Systems. Glad it changed to IMS
What is LTI ?
IMS is developing Learning Tools Interoperability (LTI) to allow remote tools and content to be integrated into a Learning Management System (LMS).
So basically it is a set of standard integration methods that enable two systems talk to each other in a common language/protocol.
So with that out-of-the-way, here is the presentation I gave last week (or at least a recording of what I demoed)-

Feel free to post any questions & comments below.
by ghenrick at 11 April, 2012 10:36 PM
10 April, 2012
Having seen Tim’s post about fixing a bug in Moodle core I thought I should take the opportunity to follow up with the next part of the process – integrating the changes into the Moodle core. Once a developer has produced a fix which is ready for integration and requests a integration review then the bug is ‘handed over’ to the integration team.
The integration team
The integration team is staffed by a group of developers at Moodle HQ. We are a geographically disparate team, spread across the world in order to prevent natural disasters and political unrest from affecting the Moodle weekly release cycle. Aparup and I are located in Perth, Australia; Eloy in Lardero, Spain and Sam in Nelson, New Zealand. 
Together we have 20 years of Moodle development experience and this collective experience is an important part of how we work together as a team – knowing the idiosyncrasies of Moodle – how parts of the system have come to being and understanding how changes can potentially affect different areas which might otherwise be missed. I should say that since i’m the newest member of this team (and still learning the ropes) I hope that my comments are accurate!
The integration review
The integration team is responsible for ‘pulling’ code from all developers around the world, reviewing and bringing it together (integrating it!) to make up the Moodle core release. This process is the same for all developers no matter whether they work for Moodle HQ, a University, Moodle Partner or none of the above.
The purpose of the integration review could be misconceived simply as as a final technical code review before code gets into core. That is certainly a large part of it – we are striving to continually increase the quality of Moodle releases through technical reviews, increased testing and other processes. But the integration review is also about examining the impact of each change from our users point of view – ensuring that we don’t loose focus of Moodle as supporting education! Other aspects of the integration review include ensuring that discussion has taken place with interested parties before a change lands and facilitating that if it hasn’t as well as providing guidance and feedback to contributors – helping developers learn why we might want changes or if there is something that could be useful for next time.
Anyway enough preamble, the title promised mechanics so..
Down to mechanics
At the start of each week we being a new integration cycle and on average there are 30-40 issues waiting for integration into Moodle core. The process begins with an integrator moving issues waiting for integration into the ‘current integration’. Issues marked as in the ‘current integration’ are those which we will work on for this cycle. We make this distinction simply to avoid the bucket of issues we are working to integrate for the weekly release from constantly refilling.
The integrators work through the queue of issues waiting for integration one by one – in this case I cheated a bit and allocated myself MDL-32039 early, as I thought it’d be a good opportunity to do a follow up post to Tim.

Reviewing the History
The first step is to mark an issue as ‘in integration review’ in the tracker workflow (pictured) and starting to read back the comments in the issue – learning about the history of this change. In this case the change is fairly obvious and straight forward so there is not too much to consider. But sometimes there might be debate about a particular approach or how to solve an issue and comments from peer reviewers or watchers of the issue. Or indeed there might be no discussion at all when someone is proposing do something particularly radical which is equally important to note.
As a brief side note – I personally encourage all developers to ‘vocalise’ even their internal though process through bug comments and commit messages. Its an often forgoten about communication method but comments on a bug like this can help reviewers now understand the decisions without too much back and forth. And perhaps more importantly months and years down the line it can be used by other developers to understand why a change was introduced even if you are no longer working on Moodle or if you’ve forgotten.
Reviewing the code
At the point of integration review, we review changes ‘in situation’ to see how the fit with other integrated issues. So the first step is to pull the change into the master integration branch.
danp@marge ~/git/integration> git checkout master
Switched to branch 'master'
danp@marge ~/git/integration> git fetch origin
danp@marge ~/git/integration> git reset --hard origin/master
HEAD is now at abd2899 MDL-31768 - it is not possible to add a picture to the thanks page in feedback
Some notes about this first step. On git.moodle.org we have two repositories, the production moodle.git (which almost everyone should be using) is the result of what the integration process produces. We also have integration.git which is our ‘staging’ repository where we pull changes, integrate and test – this is where integration work happens before deploying to moodle.git. integration.git is intentionally separate and volatile, this is where we iron out the kinks before pushing to the production moodle.git. I have a separate integration checkout which I am using here for reviewing changes and pushing to the integration repository.
To explain what I did – I first checked out the master branch of the integration repository and brutally reset this to the current state of the integration repository to accept new changes. In most git workflows this is not an advisable strategy but the way I use my integration repository I always want it to be completely clean and blow away any changes (in fact I have a script which does this on all branches) so I am happy to do this.
Now to pull Tim’s changes:
danp@marge ~/git/integration> git pull git://github.com/timhunt/moodle.git MDL-32039
From git://github.com/timhunt/moodle
* branch MDL-32039 -> FETCH_HEAD
Merge made by the 'recursive' strategy.
.../lang/en/tool_qeupgradehelper.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
I now have Tim’s changes in the master integration branch and it merged successfully without issue. This was straight forward – which is not surprising as its a fairly self contained issue and nobody else has been working on that language file this week. But simple merges are not always the case. We ask developers to rebase their changes against the latest weekly release to reduce the frequency of conflicts, but sometimes the integrator will have two changes integrated during the same week and there will be conflicts. Common examples of merge conflicts are multiple changes to the major version number in one week. This is where integrators need to examine the differences and either resolve the conflict manually or delay an issue as it might be affected by another issue which is conflicting.
Since that was straight forward I can move straight onto reviewing the change:
danp@marge ~/git/integration> git diff origin/master..master --stat
.../lang/en/tool_qeupgradehelper.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
danp@marge ~/git/integration> git diff origin/master..master
First I look at a quick summary of lines changed – this is useful to find if there are any unexpected places where lines are changed. Then I look at a diff in unified format – which when reviewing open source code you get very used to. But since this is a language change I actually decide to review it in a more readable format by using the –word-diff option of git diff.
danp@marge ~/git/integration> git diff origin/master..master --word-diff

In –word-diff format we are much more easily able to see this change and it looks good. In other circumstances the –ignore-space-change option can also be useful to find just the changes that have happened ignoring space changes such as indentations (when introducing a conditional and so forth). We will also look around the files in full form and history of file changes around the area in question. I tend to use the command line and vim, others will use IDEs such as netbeans and eclipse.
Commence pre-flight checks
At this stage I have reviewed the change, tested it and understood the impact and i’m confident in the code change that i’m ready to integrate the change. However, we have another tool up our sleeves for checking changes before integrating – our loyal servant Jenkins. Jenkins is a continuous integration server which we are in the early stages of integrating into the Moodle workflow thanks to some great work by Eloy.

I am able to run a pre-check on Tims branch before integrating. This pre-check will run the various code checkers against Tim’s change to spot problems and then produce a report on this. In the future its planned that this will happen without an integrators involvement automatically when an issue is submitted for integration.

Luckily (and as expected) the checks ran successfully and no issues were found so I am now ready to push to integration.
Rinse and repeat
Since the change in question affects multiple branches and not just master I need to repeat the review process for all other branches required (2.1 and 2.2 in this case). In the interests of keeping you awake, i’ve spared you this process.
Pushing.. done
The time has come to push to the integration repository:
danp@marge ~/git/integration> git push integration-push master MOODLE_22_STABLE MOODLE_21_STABLE
Compressing objects: 100% (24/24), done.
Writing objects: 100% (26/26), 3.14 KiB, done
21cadef..7d7331b MOODLE_21_STABLE -> MOODLE_21_STABLE
18ca35b..41b4bb0 MOODLE_22_STABLE -> MOODLE_22_STABLE
abd2899..6461e14 master -> master
Done? Well not quite.. at this point the previously mentioned continuous integration server notices the change in the integration repository which has been pushed and starts running a series of tests on the changed branches. There are too many checks to go into here and they continually being evolved, but for example we will run all unit tests and ensure ‘the build is not broken’ as well as conduct fresh installs and upgrades and compare that upgraded data is exactly matching newly installed data. This automated testing stage can prevent serious and difficult to spot regressions before they make their way into production and indeed in last weeks integration cycle it caught two such bugs.
Mark as Integrated
Once the change has been pushed, we will then mark the change as integrated in the tracker and the worflow will change to mark the issue as ready for testing.
Unresolved

Since this blog post has grown to much longer than I expected, I will stop my description of the integration process as this point. I hope some of you made it to the end
by danp at 10 April, 2012 11:23 PM
As attendees will know, during the Ireland & UK Moodlemoot in Dublin last week there was a bit of Gamification at play. There were a number of things that people could do to earn points, and some of them were short quizzes.
Now as the results of the winners will be announced tomorrow, we will be releasing the questions for the Moodle 2 for people to use for fun etc. So before we do that I thought I would do a short post on the type of reports one can do with the Moodle 2 quiz using the data from the quizzes. Thinking about even releasing a course backup of the anonymised quizzes so people have ready mate reports to play with, more on that in coming days.
Format of Quiz.
There was 20+ questions in a category and 20 questions were randomly selected from the category.
People were given 2 minutes to complete the quiz. It is not a lot of time, but enough time to get surprised by the timer!
All questions were on 1 page as page reloads would just eat up short amount of time.
The questions were a mix of Multi Choice, Short Answer and True / False.
Results
About 70 people completed the quiz. No one got 20 out of 20 in the 2 minutes which would have given 40 points. The two highest were 28 which is quite good. In my test runs and knowing the questions I knew it was going to be a challenge.
The following graph shows the score distribution.
 Score distribution in the Moodle 2 quiz
More stats
The following images show more of the stats available:
 Quiz information
 question stats report
 Quiz structure analysis report
You can also report on just one question in detail, here is one of them (I wont post all would be too long).
 One Question Report
All very interesting really, love the level of detail you can get to help improve your questions for next time you use them.
I will post the questions later in the week, but as I had been going through this thought I would post up some images.
So ….
How much have you used the reports in Moodle 1.9 ?
How much will you use these reports?
by ghenrick at 10 April, 2012 08:16 PM
05 April, 2012
I am a massive fan of Moodle Quiz. It really is one of the most powerful and comprehensive pedagogical tools in Moodle. From its multiple question types (http://docs.moodle.org/20/en/Question_types) to its many configuration and grading options, its various methods of giving students targeted feedback and its comprehensive reporting, it leaves most other quiz engines in the shade.
Reporting is one of Moodle Quizzes biggest strengths and an aspect of the quiz that I think people overlook. Today I want to take some timeout just to do some justice to Moodle quiz and share with the world just how fantastic it is.
Very generally there are two types of reports that can be generated for Moodle quizzes, student report and statistics report. Lets look at each of these reports in a little detail.
Student Report
The student report (grades) allows the teacher to see how students are performing in the quiz. The student report allows the teacher to see at a glance averages for questions and students but also allows the teacher to drill down to individual students to individual question and view a log for a student’s behaviour in a given question.
The screen shot below demonstrates a simple example of how summative information for a quiz is displayed.
 Grade report for Moodle Quiz
For a teacher to review an individual learners attempt he or she just needs to click on one of the marks. This will bring up the question and outline the students response to the question including a log of what the student did while answering the question.
 Question level logs
Teachers need to not only know how their students are performing but they also need to know how well their quizzes are performing. Moodle provides a “statistics” report providing basic psychometric analysis of quizzes to do this.
Statistics Report
The statistics report is broken into two parts; quiz information, which provides summative stats on the quiz, and quiz structure analysis, which provides detailed information about the quiz’s questions.
Quiz information contains the following information about a given quiz:
- Quiz name
- Course name
- Open and close dates for the quiz
- Total number of first/graded attempts
- Average grade for first/all attempts
- Median grade
- Standard deviation of grades
- Score distribution skewness (for first attempts) – indicating whether there is a long tail on the distribution curve to the left (negative skew) or right (positive skew)
- Coefficient of internal consistency (sometimes called Cronbach Alpha) – This is a measure of whether all the items in the quiz are testing basically the same thing. Thus it measures the consistency of the text, which is a lower bound for the validity. Higher numbers here are better [1].
- Error ratio – the variation in the grades comes from two sources. First some students are better than others at what is being tested, and second there is some random variation. We hope that the quiz grades will largely be determined by the student’s ability, and that random variation will be minimised. The error ratio estimates how much of the variation is random, and so lower is better [1].
- Standard error – this is derived from the error ratio, and is a measure of how much random variation there is in each test grade. So, if the Standard error is 10%, and a student scored 60%, then their real ability probably lies somewhere between 50% and 70% [1].
The screen shot below outlines how this information is displayed to the teacher.
Statistics are also generated for each question. The following looks at the types of statistics that you can expect for each question in your quiz (source: [1]):
- Q# - shows the question number (position), question type icon, and preview and edit icons
- Question name - the name is also a link to the detailed analysis of this question (See Quiz Question Statistics below).
- Attempts - how many students attempted this question.
- Facility Index - the percentage of students that answered the question correctly.
- Standard Deviation - how much variation there was in the scores for this question.
- Random guess score - the score the student would get by guessing randomly
- Intended/Effective weight - Intended weight is simply what you set up when editing the quiz. If question 1 is worth 3 marks out of a total of 10 for the quiz, the the intended weight is 30%. The effective weight is an attempt to estimate, from the results, how much of the actual variation was due to this question. So, ideally the effective weights should be close to the intended weights.
- Discrimination index - this is the correlation between the score for this question and the score for the whole quiz. That is, for a good question, you hope that the students who score highly on this question are the same students who score highly on the whole quiz. Higher numbers are better.
- Discriminative efficiency - another measure that is similar to Discrimination index.
- Where random questions are used, there is one row in the table for the random question, followed by further rows, one for each real question that was selected in place of this random question.
- When quiz questions are randomized for each quiz, the quiz module determines a default position.
- Quiz statistics calculations gives further details on all these quantities.
Conclusion
So there you have it, Moodle quiz allows you to see how well your students are performing and how well your quiz itself is performing. This is very powerful stuff giving you the information to create better questions and better quizzes that truly evaluate a students knowledge.
References:
- http://docs.moodle.org/22/en/Quiz_statistics_report
by Mark Melia at 05 April, 2012 04:22 PM
02 April, 2012
by Jenny Gray. They don't make happy bedfellows do they?
But one of the key features I need to implement as we move to Moodle 2 is that urls that currently look like /course/view.php?id=4542 will look like arts_humanities/introduction_musical_culture and these need to stick as you browse through the content, not just be a 302 redirect. This keeps search engines happy.
We've done this before in Moodle 1.9 like this arts_humanities/3/introduction_musical_culture/A151_1, but here the extra 3 and A151_1 are all important - the words are ignored by the system, and we did a 302 so as you browsed around, you ended up back with the standard Moodle url.
The best practice way to do the SEO urls would be to use a couple of apache modules, mod_rewrite and mod_proxy. The first will redirect any url to where you want it to go and stick that url in the address bar. The second will rewrite your page content to replace 'wrong' urls with seo ones.
We can't do the rewrite thing here because our server build doesn't include it and the rationale to add it isn't strong enough, and so I've built an alternative which I thought you might like to know about.
There are three steps:
1. build a 'front controller' script which accepts SEO urls, works out the right place in Moodle to display includes the necessary scripts and sets up the necessary request parameters.
2. use apache mod_rewrite to redirect SEO urls to the front controller
Those two get you a page displayed with an SEO url which sticks in the browser. The difficulty is coping with following links within the content which have the standard urls.
3. Update the module to use a renderer class to output all links. This class in its default (OU VLE) mode just outputs the standard moodle url. In the OpenLearn theme, it will output the SEO url.
This only really works because I'm targetting a single module (the OU structured content module), and all other Moodle pages will use the standard urls. Otherwise it would be a bit too much effort. Later I might update some of our key activities, but OpenLearn doesn't use them very heavily yet, so I'm not sure it is worth the pain.
As an aside we realised that 3 would be MUCH simpler if Moodle's core renderer had a render_url() function which output <a href="moodle_url->out()"> for you. If this was used across the board, we could override the render_url() function in one place and affect the entire system.
We haven't performance tested this setup yet, but that's on the todo list. Hopefully it won't be too painful.
02 April, 2012 10:41 AM
Moodle HQ ends support for Moodle 1.9 Security fixes in June and there seems to be a large number of people in the community who aren’t ready to upgrade to Moodle 2 quite yet. I offered to personally continue support for Serious Security fixes until Dec 2012 and had a range of people get in touch with feedback(thanks!). I also sent a bunch of e-mails looking for someone to help to fund support for a longer period as the extension by 6 months wasn’t quite long enough for some people I’ve been talking with.
I’m pleased to announce that I have found a sponsor that will allow the team here at Catalyst IT to continue support for serious security issues with Moodle 1.9 until December 2013
Totara LMS is funding/sponsoring this work which is great! – hopefully this will ease the concerns of organisations who are not quite ready to upgrade to Moodle 2.
I’ve posted more info about these plans in the moodle.org forums here.
My employer Catalyst IT is an authorised Moodle Partner and we have offices in UK/AU/NZ, we provide a range of services focused around free and open source technologies including products such as Moodle/Mahara/Drupal/Koha and many others.
Totara LMS is custom distribution of Moodle targeted at the corporate sector.
by dan at 02 April, 2012 08:13 AM
29 March, 2012
by Eloy Lafuente (stronk7). Cold numbers:
31 issues have been successfully integrated and 8 have been rejected (plus 1 delayed). That is 79.5% success, nice one.
Notes:
After some weeks of silence (some I was off, others I was lazy), here we are again. This has not been a big week but some important stuff has been landing to 2.3dev lately, like initial support for phpunit, taking rid of the two biggest remaining particularities (reminiscences from MySQL) in our DB support: unsigned integers and LOB sizes, support and fixes to be E_STRICT compliant, just to name some. And a lot more coming soon!

Also, it's time to chime all the bells, because Moodle 2.3 coding freeze is just 5 weeks ahead of us. And we need to implement, review and push a lot of stuff before then, in order to have a great QA month before release (planned for June 4th). So be warned and gogogo!
Hot topics:
- MDL-27710 - Enable branching on some lesson content pages.
- MDL-31654 - Fix users upload when some profile fields are used.
- MDL-29400 - Better display of the upload submission status in assignments.
- MDL-12730 - Enable E_STRICT on Moodle 2.3 debug (part of MDL-31167).
- MDL-11378 - Better support of SSL SMTP configuration.
- And a lot more in multiple areas like repositories, lesson, scorm, questions, forms, external databases...
Warm thanks:
- To the Big Ben, and its Quarter Bells, for being so big, so insistent and so heavy. They won't define the rhythm of my life (cannot hear them from Spain,
) but can assume that they will root others, np.
Ciao all, stronk7 
PS: I hope MDL-26500 will be fixed soon! 
* Image: Engraving of the second 'Big Ben', taken from The Illustrated News of the World December 4 1858. Public Domain. [source]
29 March, 2012 11:07 PM
Several people at work have asked me about this, so I thought I would write it out as a blog post. In this post, I want to focus on the mechanics of using git and the Moodle tracker to prepare a bug-fix and submit it. Therefore I need a really simple bug. Fortunately one was reported recently: MDL-32039. If you go and look at that, you can see that the mistake is that I failed to write coherent English when working on the code to upgrade from Moodle 2.0 to 2.1. What we need to doThis bug was introduced in Moodle 2.1, and affects every version since then. Since it is a bug, it needs to be fixed in all supported versions, which means on the 2.1 and 2.2 stable branches, and on the master branch. My development set-upI need to fix then test code on three branches. The way I handle this is to have a separate install of Moodle for each stable branch, and one for master. I use Eclipse as my IDE, so these three copies of Moodle are separate projects in my Eclipse workspace .../workspace/moodle_head, .../workspace/moodle_22, and .../workspace/moodle_21. Each of these folders is a git repository. In each repositor, I have two remotes set up, for example: timslaptop:moodle_head tim$ git remote -v moodle git://git.moodle.org/moodle (fetch) moodle git://git.moodle.org/moodle (push) origin git@github.com:timhunt/moodle.git (fetch) origin git@github.com:timhunt/moodle.git (push) One is called moodle and points to the master copy of the code on moodle.org. The other is called origin and points to my area on github, where I publish my changes. In order to test the code, I have three different Moodle installs, each pointing at one of these copies of the code. Each install uses an different database prefix in config.php, so they can share one database. Getting ready to fix the bug on the master branchThe way I normally work is to fix the bug on the master branch first, and then transfer the fix to previous branches. The first thing I need to do is to make sure my master branch is up to date, which I do using git: timslaptop:workspace tim$ cd moodle_head timslaptop:moodle_head tim$ git fetch moodle remote: Counting objects: 1442, done. remote: Compressing objects: 100% (213/213), done. remote: Total 817 (delta 624), reused 790 (delta 602) Receiving objects: 100% (817/817), 197.21 KiB | 111 KiB/s, done. Resolving deltas: 100% (624/624), completed with 225 local objects. From git://git.moodle.org/moodle 8925a12..09f011a MOODLE_19_STABLE -> moodle/MOODLE_19_STABLE 1cd62bf..a280d40 MOODLE_20_STABLE -> moodle/MOODLE_20_STABLE a7899ca..c54172b MOODLE_21_STABLE -> moodle/MOODLE_21_STABLE a81e8c4..58db57a MOODLE_22_STABLE -> moodle/MOODLE_22_STABLE c856a1f..a280078 master -> moodle/master timslaptop:moodle_head tim$ git checkout master Switched to branch 'master' timslaptop:moodle_head tim$ git merge --ff-only moodle/master Updating c856a1f..a280078 Fast-forward ... lots diff --stat output ... timslaptop:moodle_head tim$ git push origin master Everything up-to-date (Why is everything already up-to-date on github? because I was fixing bugs at work today, and so had already updated my github space from there.) Since there were updates, I now need to go to http://localhost/moodle_head/admin/index.php and let Moodle upgrade itself. Fixing the bug on the master branchFirst, I want to create a new branch for this bug fix, starting from where the master branch currently is. My convention is to use the issue id as the branch name, so: timslaptop:moodle_head tim$ git checkout -b MDL-32039 master Switched to a new branch 'MDL-32039' Other people use other conventions. For example they might call the branch MDL-32039_qeupgradehelper_typos. That is a much better name. It helps you see immediately what that branch is about, but I am too lazy to type long names like that. To fix this bug it is just a matter of going into admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php and editing the two strings that were wrong. Except that, if I screwed up those two strings, it is quite likely that I made other mistakes nearby. I therefore spent a bit of time proof-reading all the strings in that language file (it is not very long). That was worthwhile. I found and fixed two extra typos. This sort of thing is always worth doing. When you see one bug report, spend a bit of time thinking about and checking whether other similar things are also broken. OK, so here is the bug fix: timslaptop:moodle_head tim$ git diff -U1 diff --git a/admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php b/admin index 3010666..7bd7c13 100644 --- a/admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php +++ b/admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php @@ -50,3 +50,3 @@ $string['gotoresetlink'] = 'Go to the list of quizzes that can $string['includedintheupgrade'] = 'Included in the upgrade?'; -$string['invalidquizid'] = 'Invaid quiz id. Either the quiz does not exist, or +$string['invalidquizid'] = 'Invalid quiz id. Either the quiz does not exist, or $string['listpreupgrade'] = 'List quizzes and attempts'; @@ -57,5 +57,5 @@ $string['listtodo_desc'] = 'This will show a report of all the $string['listtodointro'] = 'These are all the quizzes with attempt data that st -$string['listupgraded'] = 'List already upgrade quizzes that can be reset'; +$string['listupgraded'] = 'List already upgraded quizzes that can be reset'; $string['listupgraded_desc'] = 'This will show a report of all the quizzes on t -$string['listupgradedintro'] = 'These are all the quizzes that have attempts th +$string['listupgradedintro'] = 'These are all the quizzes that have attempts th $string['noquizattempts'] = 'Your site does not have any quiz attempts at all!' @@ -82,2 +82,2 @@ $string['upgradedsitedetected'] = 'This appears to be a site t $string['upgradedsiterequired'] = 'This script can only work after the site has -$string['veryoldattemtps'] = 'Your site has {$a} quiz attempts that were never +$string['veryoldattemtps'] = 'Your site has {$a} quiz attempts that were never (Note that: - I would not normally use the -U1 option. That just makes the output smaller, for the benefit of this blog post.
- The diff is chopped off at 80 characters wide, which is the size of my terminal window.)
Now I need to test that the fix actually works. I go to Site administration ▶ Question engine upgrade helper in my web browser, and verify that the strings now look OK. OK, so I have a good bug-fix and I need to commit it: timslaptop:moodle_head tim$ git add admin/tool timslaptop:moodle_head tim$ git status # On branch MDL-32039 # Changes to be committed: # (use "git reset HEAD ..." to unstage) # # modified: admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php # timslaptop:moodle_head tim$ git commit -m "MDL-32039 qeupgradehelper: fix typos in the lang strings" [MDL-32039 9e45982] MDL-32039 qeupgradehelper: fix typos in the lang strings 1 files changed, 4 insertions(+), 4 deletions(-) Notice that I followed the approved style for Moodle commit comments. First the issue id, then a brief indication of which part of the code is affected, then a colon, then a brief summary of what the fix was. This first line of the commit comment is meant to be less than about 70 characters long, which can be a challenge! If this had been a more complex fix, I would probably have added some additional paragraphs to the commit comment to explain things (and so I would have typed the comment in my editor, rather than giving it on the command-line with the -m option). In this case, however, the one line commit comment says enough. Now I need to publish this change to github so others can see it: timslaptop:moodle_head tim$ git push origin MDL-32039 Counting objects: 15, done. Delta compression using up to 2 threads. Compressing objects: 100% (7/7), done. Writing objects: 100% (8/8), 653 bytes, done. Total 8 (delta 5), reused 0 (delta 0) To git@github.com:timhunt/moodle.git * [new branch] MDL-32039 -> MDL-32039 Now I can go to a URL like https://github.com/timhunt/moodle/compare/master...MDL-32039, and see the bug-fix through the github web interface. More to the point, I can go to the tracker issue, click Request peer review, and fill in the details of this git branch, including that compare URL. 
If this was a complex fix, I would then want for someone else to review the changes and confirm that they are OK. In this case, however, the fix is simple and I will just carry on without waiting for a review. Transferring the fix to the 2.2 stable branchSo, now I want to apply the same fix to my moodle_22 code. First I need to update that install. Since this is similar to what we did above to update master, I will not show the output of these commands, just what I typed: timslaptop:moodle_head tim$ cd ../moodle_22 timslaptop:moodle_22 tim$ git fetch moodle timslaptop:moodle_22 tim$ git checkout MOODLE_22_STABLE timslaptop:moodle_22 tim$ git merge --ff-only moodle/MOODLE_22_STABLE timslaptop:moodle_22 tim$ git push origin MOODLE_22_STABLE Then I visit http://localhost/moodle_22/admin/index.php to complete the upgrade. (This may seem a bit laborious, but look out for a future blog post where I intend to talk about how I automate some of this. I only typed out the commands in full this time because I was writing this blog post.) I want to apply the bug-fix I did on master on top of MOODLE_22_STABLE, and fortunately the command git cherry-pick is designed to do exactly that. (Since we are back in new territory, I will start showing the output of commands again.) timslaptop:moodle_22 tim$ git fetch -p origin remote: Counting objects: 1138, done. remote: Compressing objects: 100% (118/118), done. remote: Total 586 (delta 451), reused 569 (delta 434) Receiving objects: 100% (586/586), 189.65 KiB, done. Resolving deltas: 100% (451/451), completed with 176 local objects. From github.com:timhunt/moodle * [new branch] MDL-32039 -> origin/MDL-32039 2117dcb..a280078 master -> origin/master timslaptop:moodle_22 tim$ git checkout -b MDL-32039_22 MOODLE_22_STABLE Switched to a new branch 'MDL-32039_22' timslaptop:moodle_22 tim$ git cherry-pick origin/MDL-32039 [MDL-32039_22 2c92dc7] MDL-32039 qeupgradehelper: fix typos in the lang strings 1 files changed, 4 insertions(+), 4 deletions(-) timslaptop:moodle_22 tim$ git push origin MDL-32039_22 Counting objects: 15, done. Delta compression using up to 2 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (8/8), 662 bytes, done. Total 8 (delta 5), reused 3 (delta 1) To git@github.com:timhunt/moodle.git * [new branch] MDL-32039_22 -> MDL-32039_22 Notice that the convention I use is to append _22 to the branch name to distinguish the branch for Moodle 2.2 stable from the branch for master. Other people use different conventions, but this one is simple and works for me. Of course, in the middle of that, I checked that the fix actually worked in Moodle 2.2. In this case, there is not much to worry about, but with more complex changes, you really have to check. For example the fix you did on the master branch might have used a new API that is not available in Moodle 2.2. In that case, you would have had to redo the fix to work on the stable branch. Transferring the fix to the 2.1 stable branchNow I rinse and repeat for the 2.1 branch. (I will supress the command output again, until the last command, when something interesting happens.) timslaptop:moodle_22 tim$ cd ../moodle_21 timslaptop:moodle_21 tim$ git fetch moodle timslaptop:moodle_21 tim$ git checkout MOODLE_21_STABLE timslaptop:moodle_21 tim$ git merge --ff-only moodle/MOODLE_21_STABLE timslaptop:moodle_21 tim$ git push origin MOODLE_21_STABLE timslaptop:moodle_21 tim$ git fetch -p origin timslaptop:moodle_21 tim$ git checkout -b MDL-32039_21 MOODLE_21_STABLE timslaptop:moodle_21 tim$ git cherry-pick origin/MDL-32039 error: could not apply 9e45982... MDL-32039 qeupgradehelper: fix typos in the lang strings hint: after resolving the conflicts, mark the corrected paths hint: with 'git add ' or 'git rm ' hint: and commit the result with 'git commit' So, git cherry-pick could not automatically apply the bug fix. To see what is going on, I use git status to get more information: timslaptop:moodle_21 tim$ git status # On branch MDL-32039_21 # Unmerged paths: # (use "git add/rm ..." as appropriate to mark resolution) # # deleted by us: admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php # no changes added to commit (use "git add" and/or "git commit -a") That may or may not make things clear. Fortunately, I know the history behind this. What is going on here is that in Moodle 2.1, this code was in local/qeupgradehelper, and in Moodle 2.2 it moved to admin/tool/qeupgradehelper, and this confuses git. Therefore, I will have to sort things out ourselves. In this case, we can just move the altered file to the right place timslaptop:moodle_21 tim$ mv admin/tool/qeupgradehelper/lang/en/tool_qeupgradehelper.php local/qeupgradehelper/lang/en/local_qeupgradehelper.php Then use git diff to check the changes are just what we expect: timslaptop:moodle_21 tim$ git diff -U1 diff --git a/local/qeupgradehelper/lang/en/local_qeupgradehelper.php b/local/qeu index ac883b5..7bd7c13 100644 --- a/local/qeupgradehelper/lang/en/local_qeupgradehelper.php +++ b/local/qeupgradehelper/lang/en/local_qeupgradehelper.php @@ -19,3 +19,3 @@ * - * @package local + * @package tool * @subpackage qeupgradehelper @@ -50,3 +50,3 @@ $string['gotoresetlink'] = 'Go to the list of quizzes that can $string['includedintheupgrade'] = 'Included in the upgrade?'; -$string['invalidquizid'] = 'Invaid quiz id. Either the quiz does not exist, or +$string['invalidquizid'] = 'Invalid quiz id. Either the quiz does not exist, or $string['listpreupgrade'] = 'List quizzes and attempts'; @@ -57,5 +57,5 @@ $string['listtodo_desc'] = 'This will show a report of all the $string['listtodointro'] = 'These are all the quizzes with attempt data that st -$string['listupgraded'] = 'List already upgrade quizzes that can be reset'; +$string['listupgraded'] = 'List already upgraded quizzes that can be reset'; $string['listupgraded_desc'] = 'This will show a report of all the quizzes on t -$string['listupgradedintro'] = 'These are all the quizzes that have attempts th +$string['listupgradedintro'] = 'These are all the quizzes that have attempts th $string['noquizattempts'] = 'Your site does not have any quiz attempts at all!' @@ -82,2 +82,2 @@ $string['upgradedsitedetected'] = 'This appears to be a site t $string['upgradedsiterequired'] = 'This script can only work after the site has -$string['veryoldattemtps'] = 'Your site has {$a} quiz attempts that were never +$string['veryoldattemtps'] = 'Your site has {$a} quiz attempts that were never Actually, you can see that there is one wrong change there (the change to @package, so I need to undo that. The easy way to undo that would be to edit the file in Eclipse, but I want to show off another git trick: timslaptop:moodle_21 tim$ git checkout -p local diff --git a/local/qeupgradehelper/lang/en/local_qeupgradehelper.php b/local/qeupgradehelper/lang/en/local_qeupgradehelper.php index ac883b5..7bd7c13 100644 --- a/local/qeupgradehelper/lang/en/local_qeupgradehelper.php +++ b/local/qeupgradehelper/lang/en/local_qeupgradehelper.php @@ -17,7 +17,7 @@ /** * Question engine upgrade helper langauge strings. * - * @package local + * @package tool * @subpackage qeupgradehelper * @copyright 2010 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later Discard this hunk from worktree [y,n,q,a,d,/,j,J,g,e,?]? y @@ -48,16 +48,16 @@ ... lots more diff output here ... Discard this hunk from worktree [y,n,q,a,d,/,K,j,J,g,s,e,?]? q Now, git diff will confirm that the change is just what we want, so we can test the change, and then finish up. (output suppressed again): timslaptop:moodle_21 tim$ git add local timslaptop:moodle_21 tim$ git commit timslaptop:moodle_21 tim$ git push origin MDL-32039_21 Submitting the fix for integrationNow I have tested versions of the fix on all three of the branches where the bug needed to be fixed. So, I can go back to the Tracker issue and submit it for integration. When I get to the bug, I see that Jim Tittsler, who reported the bug, has seen my request for peer review, and added a comment: 
Fantastic! It really makes a difference when people follow-up on the bugs they report, and supply extra information, or just say thank you. In this case, although I intended to carry on without a peer reveiw, I got one. Now I press the Submit for integration... button, and fill in the fix version, the details of the other branches, and most important, we write some testing instructions, so that someone else can test the bug next Wednesday as part of the integration process. 
Finally, we are done. Now we sit back and wait for next Monday, when the weekly integration cycle starts. Our change will be reviewed, tested, and, all being well, included in the next weekly build of Moodle. ReflectionIs this an overly laborious process? Well, it is if you try to describe every detail in a blog post! In normal circumstances, however, it really does not take long. In normal circumstances I could probably have done this fix in ten to fifteen minutes. What usually takes the time is thinking about the problem, and writing and testing the code. This takes much longer than typing the git commands and completing the tracker issue. Writing the testing instructions can be laborious, particularly if it is a complex issue, but that is normally time well spent. It forces you to think carefully about the changes you have made, and what needs to be done to verify that they fix the bug that was reported without breaking anything else. As I said in my previous blog post, I think testing instructions are a really good discipline. I hope this rather long blog post was interesting, or at least useful to somebody.
by Tim Hunt (noreply@blogger.com) at 29 March, 2012 11:07 PM
26 March, 2012
by Jenny Gray. As I've said before, you can export from LearningSpace in a range of different formats because we create the content in XML before rendering it onto the website. One of the formats we support is a 'standard' Moodle 1.9 backup file. By 'standard' I mean 'not using the OUs wide range of custom code'.
This week, I've been looking at how to support a 'standard' Moodle export as we migrate to Moodle 2.0. The LearningSpace code is used more widely at the OU, so I have a range of requirements to fulfil:
- The VLE requires the ability to export individual structured content documents or an entire module website containing multiple SC documents and other modules. These exports are generated on demand on an occasional basis.
- LearningSpace requires the ability to export individual structured content documents and related other modules. These exports are generated automatically for every unit.
- LabSpace requires the same functionality as the VLE, but these exports are generated automatically for every unit.
Not complicated at all!
Here's how I'm hoping to code it...
We will initially creating a standard Moodle 2 backup of the course and then post-process to remove OU plug-ins and replace them with standard Moodle plug-ins rendering the same content.
Each structured content document will be rendered as Page resources, with one course section for each document. Similarly, each subpage will be rendered as a course section with standard Page, URL, File etc resources. Each ouwiki will be rendered as a standard wiki. Support for further OU plug-ins (like forumng to forum) may be added in future through a system of classes which each handle the mapping from one OU plug-in to its corresponding core representation, but these aren't needed for OpenLearn content and I have to draw the line somewhere! The code will loop through all the classes in the code directory. It should be noted that no user content is included in these backups, so it is only the key settings for the wiki that are exported.
Moodle restore can cope with backups using modules that are not installed on the restoring platform, so these could be left in, but it would be more elegant to remove them. I still need to test what happens if I back up a quiz with a custom question type as I hope it will restore gracefully skipping that question too.
The code to do this will be stored in a new block called 'reuse', which also include a link to create the standard backup package on request on the Course settings screens. For OpenLearn and LabSpace an additional config setting for structured content documents will ensure that the code fires automatically at the same time as structured content is saved to a Moodle course.
Magic, hopefully!! Now all I need is a developer with a bit of spare time...
26 March, 2012 12:43 PM
23 March, 2012
If you are wondering where to head to at the end of the summer, stop the presses (or the brain cells at least) …
On September 14-15 2012, there is a Moodle Research Conference taking place in Heraklion in Crete-Greece. Yup that is right. More Sea, Sun, Sand, Culture, History and Moodle than you can cope with is coming your way.
Moodle HQ and ITisART Ltd, with the support of the CoSyLlab, University of Piraeus, are organising the 1st Moodle Research Conference 2012 in Heraklion, Crete, Greece. There is an exciting list of names on the Programme Committee from institutions across the globe and the two conference chairs are Martin Dougiamas and Symeon Retalis (Associate Professor – University of Piraeus).
There is a wide range of topics proposed including:
- Research studies and case studies on teaching with Moodle
- Mobile Learning with Moodle
- Innovative Moodle plug-ins
- Learning Analytics in Moodle
- Collaborative Learning with Moodle
- Moodle communities of practice
- Interoperability with Moodle
- Accessibility in Moodle
- Adaptivity in Moodle
So if you have a piece of original unpublished research or recent developments on these areas, the call for papers is now open and details for submission can be found here -> http://research.moodle.net/ All the submissions will undergo a blind peer review process and wondefully, accepted papers will be published as a conference proceedings in an open access online-only version. +1 for the open access!
The deadline for submissions to the research conference is 14th May 2012, so get your motors running and pop over to their website to get more info.
by ghenrick at 23 March, 2012 01:09 AM
19 March, 2012
by Jenny Gray. At the EU Moodle dev meeting in February I spoke a bit about some improvements to user profiles that I'd been brainstorming for the OU's student-facing systems. We've run out of steam a bit to make these changes right now, but we still have a general interest in making profiles better, and there's demand for it from our users (at least the ones that collared Tim at a recent OU conference).
I had hoped that updating LearningSpace to Moodle 2 would give me the internal client to drive this work forward again. But instead we've decided to bypass Moodle profiles in order to offer a more integrated profile area across the OER (Drupal) and LearningSpace parts of OpenLearn.
That said, we will be keeping LabSpace as a purely Moodle solution I think and we will have a need for Moodle profiles there. So there's still hope that I'll be able to develop some of this soon - or that some-one else will do it for our students first.
I promised to write a bit about what I thought needed changing and why, so I'm going to do that any-way.
- We want different required fields. Description should be optional because people don't always want to say much about themselves in a large community like our student body or in a fairly public place like OpenLearn. Email should be optional because some people who have visitor accounts with the OU don't have to give an email address. For smaller sites location is meaningless because you're all co-located, so that should be optional.
- We want to be able to hide fields - like location in the above example and some of the old IM fields.
- We want to be able to group and re-order the fields. For example on OpenLearn we group all the optional fields together so you can skip past them if you want. Description is seen as important, so this is higher up the form. If I add a custom profile field, I might want to put it in with some of the standard fields where it is more appropriate - for example postcode should go with address, and Twitter with Skype not at the bottom.
Admins should be able to define which fields are visible & required, visible & optional or invisible & empty. At the same time the Admin should be able to say what the default value for each field is (in the same way you can do for country now).
- We want to split out profile fields which relate to use of the system (e.g. html editor, ajax) from data about the person. You should be able to edit these in a separate place to the information about yourself, although the two should both be available on your profile page. Separating them means it is clearer what others will see about you.
- Allow plug-ins user_preferences to be exposed in the same place as the above core settings. This way if my theme offers a large-text view, this setting can be beside the ajax and html editor settings.
- Improve display of profile view/edit so different sorts of information can be separately viewed and submitted.
As above, admins should have control over how these things are grouped and how the groups are displayed e.g. through nested links in the settings block, tabs, or groups on one long page, so they can be flexibly arranged depending on what is in use and helpful to students on a partcular site.
We want to do a lot more with custom profile fields, mostly so that you can put more on-screen text alongside the custom fields to give user guidance in the same way as we'd expect to do if we were programming a Moodle form completely...
- new radio button and date custom profile field types
- add help popups to custom profile fields
- display a description prompt with custom profile fields
- add static description text to custom profile category
Privacy is important in big systems like the OU's student body or OpenLearn. Users should have complete and obvious control for each profile field (like email currently does) of whether they wish to reveal that information to every-one, just to their teachers, or people in the same group as them.
Some of these are discussed a bit more in various places in Moodle.org
If you're interested in this sort of thing too, please add to the forum thread, tracker issues or wiki page with your feedback or extra requirements so we can try to work together to make this better!
19 March, 2012 02:23 PM
18 March, 2012
GSOC is here again and Moodle has been approved as a participating organisation. GSOC students get USD $5,000 for participation in the program(thanks Google!).
Depending on the number of slots allocated to Moodle and the quality of the applicants, I’m planning to run 2 projects this year.
SCORM 2004 – building on the work from our GSOC 2011 student Mayank, I’d like to get some more progress towards SCORM 2004 compliance – there are a large number of tasks to complete 2004 and I may take on more than one student to work on this (depending on slots/applicants) If you know of any students good with Javascript and PHP – make sure you point them towards GSOC.
Improving Plagiarism API – The plagiarism api currently only hooks into the upload assignment types – I’ve been planning to add hooks into other Moodle modules but haven’t quite got round to it – this project will involve adding new hooks to other Moodle modules and probably some work on some plagiarism plugins like Crot.
For more info see: http://docs.moodle.org/dev/Projects_for_new_developers
by dan at 18 March, 2012 08:19 PM
15 March, 2012
Many of you will have used and maybe still use Joyce Seitzinger’s Moodle Tool Guide (@catspyjamasnz) which she released nearly two years ago. As her blog mentions since then people have released twelve translations of the guide into Basque, Brazilian Portuguese, Catalan, Croatian, Dutch, French, German, Hebrew, Norwegian, Portuguese, Slovene and Spanish. There has also been some adaptations for specific institutions and also for colour blind users and other LMS like blackboard and Dokoes. * All of these variations are linked from her blog.
A Moodle 2 version
So last year I had put together a Moodle 2 version which included the tools as they were now in Moodle 2. I had not released it, but as I have given it to some people in the meantime, I thought I better put it up so people can use it or comment on it, suggest changes and so on. Everyone will have their own take on what should be in it or not, and rightly so. This is probably just another start point for 2 – perhaps.
With so many resource types and activities in Moodle, I had put it onto two pages although am trying to work a version into one page, again this is something people will debate about!
So it is now added to SlideShare where you can download, but you can also download the PDF and the Powerpoint here
Download PDF here
Download the Powerpoint here
Just one request, if you make a translated version, or a localised version, could you send a copy of the changed one to me for an archive. That would be great!
All feedback & corrections welcome.
For all details on the original version created by Joyce Seitzinger for Moodle 1.9 check out her website -> Moodle Tool Guide
by ghenrick at 15 March, 2012 09:33 PM
13 March, 2012
Packt were kind enough to send me a copy of Nicholas Freears book Moodle 2 for Teaching 4-9 Year Olds to review. Having reviewed a few other Moodle 2 books I was interested to see what the difference was in this book. The book was published in October 2011 and had a great list of reviewers including the well-known Mary Cooch, so my expectations were high. Nicholas subtitles his book “Use Moodle to create quizzes, puzzles, and games to enhance the learning ability of your students” – so this is the theme along which I have read the book.
For those who don’t know Nicholas he works as an Application Programmer/Web Developer in the Institute of Educational Technology at the Open University.
The book is broken down into chapters on key topics:
- Getting Started
- Basic Math in Moodle
- Telling Stories
- Spot the Difference
- Setting Homework
- Fun Games
- Interactive Puzzles
- Stories Revisited
- Embedding the web
- Administration
I am going to go through two of the chapters in detail in this review.
After the getting started section, it seems each chapter can really be taken in isolation, so I jumped into Chapter 3.
Telling Stories.
Nicholas kicks off this chapter on imagination and uses this as a backdrop to introduce a way to help nurture creativity and narrative skills in storytelling, both written and verbal. He explains that one way to achieve this is using the database activity and then takes the reader through the setup of the activity touching on some of the important aspects including accessibility.
He then introduces and takes the reader through installation and usage of an audio recorder for recording MP3s to enable use of audio in the storytelling.
The chapter provided a solid introduction to the usage of the database covering all the key aspects well through a solid use case.
Next chapter I looked at was Chapter 6.
Fun Games
The chapter is focused on the use of a custom activity called Game. This is a great plugin which enables you to have games like crosswords and snakes & ladders in your Moodle course. Of course to have these type of games you need content (questions, words) and the chapter introduces how the Glossary activity is a great place to manage this content and provides a nice table of which game and which source of content is suitable.
Nicholas here introduces us yet another reason why the Glossary is such a wonderful activity. The reader is taken step by step through setting up the Glossary, adding items and how to enable auto-linking of the entry names. The instructions are clear and the pace is good.
Once this is done, he quickly takes us through installing the custom GAME activity and then gets into creating a game of Snakes and Ladders. This was very well explained and easy to follow. Then Nicholas brings us through creating a word search puzzle. Again the instructions are clear and easily replicated. He finishes off the chapter with a more complicated setup using quiz questions and a glossary to help create a Hidden picture puzzle.
Overall the chapter provided a thorough introduction to he GAME activity through clear examples and context.
After that chapter I felt like I wanted to try something else, so I opened Chapter 4.
Spot the Difference
This chapter introduces the Lesson module and takes the reader through creating a lesson and editing images for use in the spot-the-difference activity. The Lesson activity is a complex one, so it was refreshing to see Nicholas introduce the Lesson with some clear examples and contrasts to the quiz module. He also has a nice diagram to explain the workflow that is possible with the Lesson. The diagram is used as the reference for the activity setup and provides a nice visual to help people get back on top of things as they progress through the setup if they get lost or confused.
To find images for the activity, Nicholas uses the Open Clip Art Library and takes the reader through downloading and repurposing the SVG image with an editor to have two similar images but with a difference for use in the activity. Although knowing how to change images is not exactly part of the core Moodle skill set - these type of skills are important to learn to fully utilise media in the LMS and it is great to see them explained so clearly. Nicholas then brings the reader through setting up the question pages using the newly altered images. The chapter ends on introduction to student enrolment.
The other chapters in the book follow the same approach with solid instruction backed by clear examples and concepts. The book ends with a chapter on basics of administration as well as some other smaller features.
Summary
So if you are looking for ideas on how to set up some fun activities, be it storytelling or games in Moodle, this is certainly the book for you. The style of delivery and clear instructions make it a must buy. Thanks again to Packt for sending me a copy to review.
The book is available from packtpub.com in Printed copy and a range of eBook formats: ePub, PDF and Kindle.
by ghenrick at 13 March, 2012 10:36 AM
12 March, 2012
by Jenny Gray. That's how we try to allow people to take away OpenLearn units.
Because our content is authored in XML we can render that XML into a range of different offerings, although admittedly they're mostly HTML based. Our aim is to provide as wide a range as we can manage, so that there will be something to suit every-one. In that way, we hope that OpenLearn content can be re-used as easily as possible by as many people as possible.
Recently I was contacted by a nice lady from the IMS, who is involved with their Common Cartridge (CC) standard. OpenLearn was one of the first producer of Common Cartridges, but we've not done any work with them since.
So we're still stuck at version 1.0 of the schema. From our perspective there won't be much / any difference to change to the latest schema, and we'll do that as we move all the content from Moodle 1.9 to Moodle 2.x.
The other more interesting discussion though, was around continued support for IMS Content Package (CP) standard. Apparently most LMS providers now support IMS CC and IMS CP should be phased out. However, according to our statistics, both formats are equally downloaded.
Is that just because people don't know what to do with them? Or are IMS CP meaningfully useful to a small, but perhaps important, section of society? And if so, why are none of the other formats meeting their needs?
In order to find out, we'll be retiring IMS CP from the current LearningSpace platform and providing a link for people to ask us if they really need it - this way we can discuss with them what the issues around retiring IMS CP permanently would be.
If you have any views on the use cases for IMS CP over any other of our supported formats, please let us know.
12 March, 2012 09:36 AM
06 March, 2012
Ever since Moodle 1.5 I’ve enjoyed developing the Turnitin integration which has resulted in the new Plagiarism API in Moodle 2 – now we have plugins for Urkund, Crot, Moss and hopefully more to come!
I started developing the Turntin integration while working for Lincoln University and playing with the Turnitin basic assignment type developed by Turnitin which didn’t really suit our requirements. Since then a company called nLearning (now part of Turnitin) developed a 3rd plugin called “Moodle Direct” – so there are now 3 different ways of connecting Moodle to Turnitin.
Independently developing the Turnitin plugin has presented a range of challenges – including:
- Keeping in touch with new features/improvements to Turnitin services and implementing them in my plugin.
- Providing support to people who have downloaded the plugin and have a contract with Turnitin but no support contract with me – I’ve spent a lot of volunteer time helping via e-mail/forum support but this can be quite time-consuming. It can also be confusing for people using the plugins – not knowing who to contact related to a problem.
- Diagnosing issues can prove difficult – is there an issue with the code/Turnitin (Kudos to the Turnitin Devs who have provided a lot of support directly to me while developing/improving the plugin)
- Enabling my plugin can be a convoluted process, emails to Turnitin, extra configuration required…
Where am I going with this you ask? – Turnitin are working directly with me to “merge” their “Turnitin Direct” plugin with my plagiarism plugin for Moodle 2.x – this will bring a range of very good benefits.
- Single support base – support for the plugins will come direct from Turnitin for all plugins making it much easier to access support.
- Larger feature-set available – my focus has been on the originality checking feature – Turnitin provides a range of other features which will be implemented and supported in both plugins.
- Moodle admins will be able to choose between using the plagiarism plugin which uses the existing assignment types or to use a separate “turnitin” module.
- The new plugin will be backwards compatible with data stored from my version. (planning to use the same tables)
- The new plugin will sync grades entered via Grademark with Moodle.
- The new plugin will support the existing featureset (and more).
Obviously there will be some form of changeover period where I will continue some level of support for the existing plugin but sites will be migrating to the newer version provided directly from Turnitin – Turnitin are hoping to provide the new code in a git repo and allow others to contribute patches back (I know I’ll probably be submitting a few in the long term)
This is all very new and there isn’t a specific time frame in place to have this completed except to say that you should keep an eye out for the initial code release in the upcoming months.
Thanks to everyone who has tested/provided feedback/provided patches/provided funding for the plugin – it’s been a cool project to be involved with. Now that the core plugin will be supported directly from Turnitin I may finally have time to implement the plagiarism api into other areas of the Moodle codebase like forum posts, workshop mod, Essay quiz questions etc – or maybe I’ll just waste away more time on SCORM…
by dan at 06 March, 2012 09:02 AM
02 March, 2012
by Jenny Gray. One of the features that will be changing as we move LearningSpace to Moodle 2.0 is the learning journals.
Learning Journals use Moodle 1.9's oublog module to provide personal blogs. In 2011 there were around 1,500 posts by just under 800 people. But by far the majority of these are private posts. We'll be encouraging these people to find an alternative learning journal and suggesting a number of blogging and other online document storage solutions.
The trickier part is for the small number of people with public posts on LearningSpace. Turns out that I'm the most active in this way and so it falls to me to blaze the trail of how to get my posts out of LearningSpace and into some other blogging platform.
A quick bit of googling came up with a shortlist of possible solutions (avoiding any OU-offered solutions so that other LearningSpace users can walk the same path one day). I look briefly at WordPress, Blogger, Tumblr, MoveableType, SquareSpace, TypePad and Posterous.
The two which most seemed to fit the sort of blogging that I do are WordPress and Blogger. Others have written comparisons of the two e.g. (with thanks to @bmuramatsu for the link) http://eyeinform.wordpress.com/2011/01/23/wordpress-vs-blogger-%E2%80%93-our-experience/ but I still didn't see anything to strongly draw me to one over the other. There is of course the "do you want to give more data to Google" question especially in mind this week with the privacy rules changing.
So I decided to try importing my blog into both and see whether one proved easier than the other.
And here is where I have failed. Both say they offer import tools. Blogger only imports blogger blogs though. WordPress imports some of its key competitors but you have to add an extra widget to import from generic RSS and you can only add widgets if you're self-hosted.
Bah. This is not the easy Friday afternoon job I was hoping for.
There are some tools 'out there' which promise to convert generic RSS into Blogger xml, but I'm not sure how much I trust them, especially if I have to recommend them to some-one else. Would I be better to write my own? But then I'd have to support it if some-one else tries it.
Maybe you can recommend something?
02 March, 2012 04:48 PM
This is a brief blog post to let ForumNG users know that I've now, finally, set up a stable branch.
MOODLE_21_STABLE branch at GitHub
This branch will shortly (from Tuesday) match the version on our live servers and should continue to do so until we stop using Moodle 2.1 (which is currently scheduled for April 6th). After that it becomes unsupported and we'll hopefully have a MOODLE_22_STABLE branch.
You can still use the 'master' version of the code, if you want our current untested development version. As of just now, there is a change to the master version which fixes a critical Moodle 2.2 bug (email sending was broken), but unfortunately also means that the master version won't work on Moodle 2.1 any more.
So to summarise:
- We now provide a MOODLE_21_STABLE branch which is the same as our live servers so should be stable and reliable and will receive critical security fixes. It does not work on MySQL.
- As of today, the master branch requires Moodle 2.2 or above. It does work on MySQL - thanks to Brian King for providing the answer to the problem from my last post. :)
If you really really want a version that works on both 2.1 and MySQL, I guess you can grab the relevant commit from GitHub (i.e. the one just before the commit where I say it requires 2.2).
by Sam Marshall at 02 March, 2012 03:02 PM
With just over four weeks to go to the Ireland & UK Moodlemoot in Dublin, the programme and the book of abstracts of accepted presentations has been published.
There is nearly 70 presentations in total throughout the three days, on a variety of topics which are covered by the following topics:
- Moodle 2
- Implementing & Developing Moodle
- Teaching & Learning with Moodle
- Academic takeup of Moodle
- Student engagement
- Organisational use
I will be presenting on IMS LTI and showing some examples.
The book of abstracts is downloadable from Slideshare ->
The programme is detailed on the Moodlemoot website
by ghenrick at 02 March, 2012 11:04 AM
28 February, 2012
Today’s plugin for review is ForumNG and I was using Moodle 2.2 for this review.
Background
This forum plugin has been around for Moodle 1.9 for a few years now. It is created by The Open University in the UK, and is maintained by their internal team including Sam Marshall. The module had a beta-release in September 2011 and there has been no production release since. However, as there has been a few fixes and changes since then that are only available on the github site I used the code from there for the review. There has been talk on and off about this code replacing the built-in forums in Moodle a while back, time will tell.
What does it do?
This is a Moodle activity plugin which is an alternative option to the standard Forums within Moodle. Like the OU Wiki module, this can sit alongside the original forum activities as it is completely independent. There will be times you may want to use one or both systems depending on the use case.
The forum has some key extra features which make it quite a nice tool to use including:
- Easy to use Ajax driven User Interface
- Unique discussion view, with expanding posts
- A friendly star system for ratings.
- Sticky Posts
- Discussion locking
- Multiple file attachments
- Flagging posts
- Private one to one discussions between individual students and teachers
- Draft options for posts
However, one which I particularly like (and something which Juan Leyva just made for Moodle 2 normal forum see last comment ) is a single thread subscription rather than for the whole forum.
So enough about the features onto the rest of the review…
Is it simple to install?
There is a zip available in the official Moodle plugins database, however for the purpose of the review I downloaded the most recent codebase from Github. It does say that it is not frequently updated which is a pity! But at least github is there. It is a normal Moodle module, so once I downloaded it I created a folder called forumng in my moodle 2 site under /mod. I then uploaded the contents of the zip to this folder.
Logging into the Moodle 2 site as admin, I was prompted to upgrade to install the plugin, and all the subplugins (image below) This install went fine with no reported errors.
 ForumNG install
As mentioned in the introduction there are a lot of features. As you can see, there are a lot of parts to ForumNG when it installs. There was also quite a few global settings for ForumNG but as with most of my reviews, I left them all default.
Is there documentation for it?
Unlike the OU wiki which is simplicity, this is a complex feature rich plugin. The Moodle Docs page provides good information on the different features, releases and a short FAQ. It also links to the OUs forum quickstart guide which is an essential read!
There are forums discussions and the README also provides the essential information for installation.
Is it easy for the teacher/admin to use?
When creating the forum, the teacher is given options to select the forum type. Unlike the standard Moodle forum, there are only two types available - The standard forum or the Study Advice (which is the one to one with student/teacher format).
The teacher can also set ratings, limit posts times, remove old discussions and limit users to a number of posts per day.
Once the forum is created you see the following on the screen.
So you need to add a discussion now.
The add discussion is somewhat similar to the native Moodle forum, however you immediately notice one change – the option to make the discussion a STICKY.
 ForumNG Add Discussion
You can also save the discussion as a draft for completion at a later stage.
One feature I really like is the ability to specify the time which the discussion appears for students. So you can preload your forum with questions just as you would line up quiz or assignment deadlines. In practice this means that when it is hidden students do not see the discussion at all. However or moderators, it will show on the discussion list in grey and with a small clock icon.
 ForumNG View discussion, sticky and timed image
I can think of a number of use cases where this is just very helpful. For example, a timed Sticky to provide a reminder to students of something important deadline wise. Funky huh?
Once you have created the forum discussion the first entry looks is quite straight forward.
There are quite a number of buttons at the bottom which give the teacher direct control over the discussion thread. These are:#
- Discussion option (easy access to Display and sticky options)
- Lock (enables you to post a closing post and then prohibit any more posts on the discussion)
- Merge (enables you to merge to different discussions into one)
- Copy (enables you to copy the discussion to another forum – which is good for archiving great examples)
- Delete
- Export (enables you to export to the portfolio api options and gives you the option to choose whole discussion or selected posts)
- Forward by email (enables you to create an email to a user of the forum discussion and gives you the option to choose whole discussion or selected posts)
- Print (creates a block-less view of the forum discussion and gives you the option to print discussion or selected posts)
 ForumNG View Discussion
When you have multiple discussions, you can then set a discussion to be at the top always rather than them changing with new posts. This is the sticky option, and is viewed below with the Green icon on the discussion box.
 ForumNG View discussions
Is it easy for the learner/student to use?
When a student goes to create a thread it is quite straight forward. Replying to an existing thread is ever simpler. The reply box appears below the post you want to reply to without reloading the page and if the student runs out of time to submit he can save a draft until later.
 ForumNG Draft
If a discussion has been deemed important to read, it has probably been stickied so will appear at the top.
The ease of use of the interface makes ForumNG quite attractive to some.
Does it do what it promises?
The forum has two nice useful use cases available for it that provide a multitude of options for teachers. The interface is easy to use and the number of neat user-friendly features just make the whole experience great for the teacher and the student.
You may use the Moodle forum still for some particular use cases and it has some options that ForumNG does not but once you have got forumNG, you will see the specific benefits of the timed posts, the nice UI and the extra options for the discussion view page.
Of course one option that some are arguing for is to have those sought after features in the core Moodle forum or have one module with the blend of both sets of options. I can’t wait!
Stars: 4 out of 5 stars for this plugin
**Standard Reminder**
These reviews check out the plugin for usability not for security. If you are considering installing any module on your site you should also check that is secure and does not impact the server performance.

This work by Gavin Henrick is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
by ghenrick at 28 February, 2012 02:58 PM
26 February, 2012
by Eloy Lafuente (stronk7). Cold numbers:
45 issues have been successfully integrated and 11 have been rejected / delayed. That is 80% success, nice one.
Notes:
After the two previous weeks (13th and 17th Feb), where we had some testing problems leading to delayed weeklies (nothing serious, just a couple of days) and our % of success (72%) was slightly under the mean (mainly due to some back and forth iterations related to the way we are documenting in php), it seems that this week we are, finally, in the good way. Great!
Review and integration of issues belonging to the "Documentation Sprint" have continued, with 60% already sent upstream and the remaining ones expected to land soon.
Also, be noticed that, following our recently introduced scheduled release plans, we are aiming to next point stable releases in 2 weeks (March 12th) so, surely, is a good moment to review/prioritise open issues.
Hot topics:
- MDL-31666 - The git repository has been completed with some old branches, tags and their corresponding commits, so now we have the whole history of Moodle under git.
- MDL-30521 - Some problems breaking cron execution while fetching external blogs have been fixed.
- MDL-25432 - Fatal errors on backup happening when the course has some "orphan" modules have been solved. At the same time, MDL-31571 has been created to discuss and implement one cleaner able to find, fix or delete those orphan pieces of information.
- MDL-29402 - Fixed mail outs on Q&A forums, so students get initial Qs from teachers.
- MDL-31014 - Glossary allows a different format to be used to approve entries.
- Backup & restore, SCORM, IMS CC, rubrics, lesson, themes...
Warm thanks:
- To Gavin Henrick, because he is doing a wonderful work at his blog, "Some Random Thoughts", sharing all sort of information, reviewing plugins, talking about customizations and integrations, allowing us to know more about some sweet developers. It's one of the lectures I never miss. Thanks!
Ciao all, stronk7 
26 February, 2012 09:37 PM
24 February, 2012
by Jenny Gray. That's the question we've been asking ourselves over the last couple of months. And finally we have a picture in our minds and are starting to ramp up the development effort.
OpenLearn has grown since we first created the LabSpace and LearningSpace. It used to be that www.open.ac.uk/openlearn held information about OpenLearn but no open educational resources. Because it was "content" not "learning" it was (is) a Drupal site. When the old open2.net content moved into the OpenLearn banner though, that changed. Now www.open.edu/openlearn houses information about the project but mostly delivers bite-size open educational resources such as our YouTube and iTunesU materials, blog posts and articles by leading academics. Still delivered in Drupal. There's a range of functionality to allow people to comment on, rate and share links to the OER. And there are tag clouds, what's hot lists....
Drupal lists the LearningSpace units in its browse lists. Drupal and Learningspace use the same (roughly) graphic design, single sign-on, search engine. So the important question we had to ask ourselves was whether to continue with a Drupal/Moodle hybrid system or swap to just one.
One system is attractive because it will allow us to offer common rating, commenting, link sharing, tag clouds, what's hot lists across all types of content, and will be simpler for us to maintain technically. Historically Drupal is better at search engine optimisation (SEO) but Moodle has much better learner tracking and offers a wide range of learning activities.
In the end we just don't want to let go of the flexibility of Moodle for learning activities, especially as more OU courses are presenting more online and using more of those activities and we want to be able to cherry-pick materials for publishing in Learningspace with as little extra effort as possible. Personally I think moving away from supporting this richness of learning activity in OpenLearn would be to move away from what we first envisioned OpenLearn to be, and what some commentators expect of us - elearning, not just printed materials online.
So I'm pleased that we're going to continue with a hybrid site, moving LearningSpace to a Moodle 2 platform hopefully for release in the autumn. We'll be working hard though to tie the two platforms together ever more closely. The most complex challenges are in supporting SEO urls in Moodle, and in sharing blocks between the two platforms to allow us to share commenting, rating etc. I'm sure I'll write more about that as we work out the details over the coming months. We'll also be looking to publish LearningSpace units into MOOCH, the Moodle community hub and working to enhance user profiles in Moodle to integrate with profiles in Drupal to create some kind of shared "user persona". I hope to write more about those some day soon.
We'll also be retiring some of the experimental features in LearningSpace which haven't gained much use by the community. For most of these, there are better systems which can be used alongside LearningSpace and we'll be encouraging people to make the most of them. No point in re-inventing the wheel badly after all.
We may still move more into Drupal in future (perhaps when the next major Drupal version number change hits us), but in part it depends on how many LearningSpace units use the wider range of learning activities in Moodle, rather than just presenting text.
But just for now, I'm going to be very busy working out what we did, why we did it and how to do it better in Moodle 2.
24 February, 2012 11:23 AM
21 February, 2012
Any MySQL + Moodle experts out there?
Somebody's reported a problem with ForumNG on Moodle 2.x, and I believe it's likely a MySQL problem. There is a really complicated query with several subqueries and the database error is something about f.id not existing (which it blatantly does).
CONTRIB-3480
If anybody fancies installing ForumNG on their Moodle 2.x/MySQL test system, please let me know in the above tracker issue (a) if it works/fails for you (confirm version numbers please?), or (b) if you can tell me what's wrong with MySQL and/or my query, and what I could change to make it work.
I do not currently have a MySQL test install so I would prefer 'I have tried this and it fixes it' type answers rather than 'You could try this, it might fix it...' :)
I did already look at the MySQL documentation because I know there is a hideous limitation in a slightly similar situation (if you have subqueries in a DELETE, they can't refer to the table you're deleting from? Something like that), but I didn't find anything that obviously seemed to apply to this.
(I've disabled comments on this blog post, please add suggestions directly to the tracker issue.)
by Sam Marshall at 21 February, 2012 02:35 PM
20 February, 2012
Today’s plugin for review is the Drag and Drop Marker Question Type.
Background
On Feb 13th, 2012 the Open University released to the community ten new question types for the Moodle quiz. These are question types that they had developed when they were moving to Moodle 2. It was work that they had designed in-house (mainly Phil Butcher) and contracted the coding out to an independent developer Jamie Pratt.
Tim Hunt did the release post about them which briefly explained each one. They sound great. I will get around to reviewing all of the question types over time, but for this post I am reviewing one – Drag and Drop Marker.
What does it do?
This question type enables the student to answer the question by placing a marker or multiple markers onto the image that the question is using. Yes, it is really just that simple.
Is it simple to install?
There is a zip available in the official Moodle plugins database. However, one of the things you find out on the detailed download page is that this question type, being a more complex one has two dependencies. You need to install two of the other simple question types to be able to activate this one. They are Drag and Drop onto Image and Select missing words. So I downloaded all three and unzipped them. I then uploaded the contents of the all three zips to the moodle/question/type folder.
Logging into the Moodle 2 site as admin, I was prompted to upgrade to install the three plugins, which reported a success with no reported errors. There are no global settings for any of the question types, so once installed it was ready to try out.
Is there documentation for it?
The README text file with the zip has clear instructions on how to download from git should you need to. It also explains how to install for either Moodle 2.2 or Moodle 2.1. The clear GIT instructions will certainly help those who are not familiar with GIT and yet want to start using it to include plugins. The plugin entry also has this same information on the download page.
The OU have their own documentation page up on their question types (this is delivered in Moodle). The space has videos about the question types, and a nice pdf of it as well. There is also comprehensive instructions (aimed at their tutors) about how to use them. This is under How to create an iCMA in Moodle.
With so much documentation there, it may be useful to add in stub entries to the Moodle docs which provide the direct link back to the centralised documentation pages – on http://docs.moodle.org/22/en/question/type/ddmarker for example.
Jamie also has a site set up with example quiz so people can try them out.
Is it easy for the teacher/admin to use?
So to test the question type, I went into a course and created a quiz and added a question of this new type. I went with all the default settings for the quiz.
When adding a question, I saw that the new question types were there : Drag and drop Markers, Drag and drop onto image and Select missing words. So I selected the Drag and drop markers and clicked next.
The question has the usual fields:
- Name
- Question Text
- Default Mark
- General Feedback
Then you were faced with the preview section, which was very simple to use.
Firstly you uploaded the image – for this example I took a flickr picture of a house and uploaded it. (from http://www.flickr.com/photos/baronbrian/3694497122/sizes/l/in/photostream/)
I then had to define the drop zones areas which for the first one was not something I was used to but once I got the pixel count it was fine.
I then added the Markers (names for the zones which will be used as labels for dragging onto the image by the student) and selected them in the drop down for the drop zones.
It may seem complicated at first but it was actually very simple – the only hard parts is the coordinates which with the auto-preview of the locations, it is very easy. The one thing I would add here is a help icon for the locations to help with pixel examples.
These are the three images once it is configured:
 Drag and Drop Marker - Image Preview
 Drag and Drop Marker - Dropzones
 Drag and Drop Marker - Markers
So once all that was done, how does the question look?
Is it easy for the learner/student to use?
For a student answering the question is really quite simple too. The question displays an image with the pre-defined markers below the image. The student then has to drag them to the areas of the image they think they apply to.
 Drag and Drop Marker - Quiz Example
Does it do what it promises?
Yes. This is a really useful question type and a great piece of work from the Open University, I look forwarding to reviewing the other ones. As this question type used aspects of the other two that was required to be installed before it would work we can get a hint of how they will work.
I will not try to produce a list of examples where I see this type being used, as there are just so many in a wide range of disciplines. But one area I do see this being helpful is in geography naming countries or states, or rivers, mountains, streets … I better stop now before I can’t stop.
I certainly recommend you try this out as a nice extra after the default question types in Moodle 2.
Stars: 5 out of 5 stars for this plugin
**Standard Reminder**
These reviews check out the plugin for usability not for security. If you are considering installing any module on your site you should also check that is secure and does not impact the server performance.

This work by Gavin Henrick is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
by ghenrick at 20 February, 2012 02:20 AM
15 February, 2012
by Jenny Gray. I've spent a little time today looking at the Flourish unframework because it is being used on a system that I may have to start looking after at some point for the OU.
Its a difficult question to decide whether you 'like' a framework or not, because it makes you think about what you're looking for. Here's what I came up with as criteria (in no particular order):
- integrates well with the other bits of my system
- helps do my job easier
- good documentation
- stable release(s)
- good community support
- good core developer support
What else would you add to that list I wonder?
So in this case, Flourish is being used purely for its database abstraction layer. Zend is being used for the majority of the framework. Why I hear you ask? Well apparently Zend doesn't support connecting to an MSSQL database from a linux web server via freetds. Is that true - well, a quick bit of googling suggests otherwise. Opinions from my readers very welcome!
Does it help do my job easier - well Flourish's DB classes seem neat and easy to use, and include all the transaction, escaping, translation, utf8 ... support that I'd expect, so yes.
Does it have good documentation? Yes.
Stable releases? Well no. It's listed as being in beta, being suitable for many production environments and stable 1.0 expected end 2011. Sadly it is now early 2012.
Does it have good community support? Arguable - there's not a great deal of activity in the forums, suggesting that the userbase for this library is relatively small.
Does it have good core developer support? Arguable again. It certainly had active commits and tracker interactions up to the end of November last year. Then... nothing. Oh and most (all?) the commits are by a single person. Though that could be that the real author isn't being credited, I'm nervous about a library that is run by a single person.
Should I use it? Well, it does what I need it to now, so maybe I don't care about poor support or beta status. Should I really make a fuss and get it swapped for a.n.other database layer? Is it worth the pain (even if that is some-one else's not mine)? To be honest, I haven't decided yet.
15 February, 2012 03:56 PM
First of all – Federated Moodle Management – what does that even mean?
This is where an entity (regional organisations or perhaps umbrella groups) require the ability to self provision multiple Moodle instances for each of their member organisations, while at the same time retaining the services of a professional external provider to manage and maintain the service. These umbrella organisations may want to retain a supervisory role over the spawned instances (very often keeping full admin control) while letting the member organisations create the content and look after enrolments among their learners. New courses, can be created locally or pushed from the central organisation using a course hub for all to use. New functional components can be added or removed by the umbrella organisation. On top of all this there is a need for reporting across all sites and perhaps the ability to turn off sites and functionality on a case by case basis. The diagram below outlines how Federated Moodle Management works.
 Federated Moodle Management architectural diagram
Enovation have built up considerable expertise in the managed hosting of Moodle implementations in a diverse infrastructure – shared physical and virtual servers, dedicated physical and virtual environments. Harnessing this expertise we have built an open source stack to create an environment where these umbrella organisations can be empowered to control the generation/deletion and updating of Moodle instances for member organisations.
What are its benefits?
The Centralised management solution offers:
- A Simple interface for package (could be a custom Moodle) creation – allowing a premade custom package to be deployed together with selected add-ons
- Facilitate billing of member oganisations
- Automated package upgrades
- Ability to turn on/off sites
- Ability to turn on/off components within these sites (eg additional Moodle modules, or additional packages – mahara)
Who is using this?
The Irish Computer Society (ICS) is one organisation who are using this solution as part of their ICSGrid. ICS have the ability to fully manage all their member schools using an interface provided by Enovation. In the background Enovation manage the infrastructure and maintain the packages, and ensure that all instances are up to date and running correctly.
If you would like to see a demo of Federated Moodle Management – just give us a shout!
by Mark Melia at 15 February, 2012 08:56 AM
14 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Brendan Rollinson-Lorimer.
Tell us something about yourself
I graduated from the University of Waterloo approximately three years ago with a degree in Math and Computer Science. At university, I participated in the co-op program, where I worked for five different companies across six work terms.
I currently work full-time for Remote-Learner, doing Moodle-related development work. This is my first job after graduating from university.
Outside of work, I spend time listening to music.
When did you first start programming?
I taught myself to program in Visual Basic 6 in 2000, more so out of curiosity than for any particular reason. The first proper project I took on involved writing my own graphical HTML editor for personal use.
Shortly afterward, I participated in three high school courses in “Computer and Information Science” that involved programming in Turing. The most significant project in any of these courses involved writing a graphical Jeopardy game with one other student.
When did you first encounter Moodle?
I first encountered Moodle when performing research before applying for my current job at Remote-Learner.
At the time, I had never heard of Moodle before, but was familiar with some competing products, such as Angel (which I used at school), and the Sakai Project (which I was exposed to at a co-op job).
What did you use Moodle for?
I mainly use Moodle as a developer. I spend most of my time with Moodle developing for an enterprise-level product that sits on top of it, providing extra functionality.
I also spend some time testing similar functionality, including features that integrate with specific components and features of Moodle.
What was your first Moodle plugin? Why did you write it?
The first Moodle plugin I wrote was a block that displayed entries from the Moodle log database table. This plugin was not used in a production environment. I wrote this block as part of my interview process for my current job.
The first Moodle plugin I wrote that was useful in practice was a block that imported data for state standards for use in custom reports. This data was subsequently used in a suite of custom JasperServer reports that end users could view. I wrote this block as part of a custom development project for a particular customer.
What is your latest Moodle plugin & why did you write it?
I worked on the ELIS 2 Curriculum Manager release for Moodle 2.
I am current working on writing a block for Moodle 2 that imports CSV files, creating data based on their contents. This import process is used to integrate Moodle with a variety of external systems. This plugin is the Moodle 2 version of an existing company product, with several improvements.
What would you say to someone who is considering writing a Moodle plugin?
There are an extremely large number of plugins available for Moodle 1.9 and 2.0 on moodle.org, including contributed plugins. Make sure you’re not re-inventing the wheel if you don’t have to. If you write something that is generally useful, share it with other potential users via moodle.org or otherwise.
moodle.org also has plenty of developer documentation that you will find helpful when writing a plugin for the first time.
Lastly, keep in mind whether you want to write versions for both Moodle 1.9 and / or 2.0. Right now, many people are using both version of the product, and there are some API changes between the two of them.
Final Thoughts
The Moodle community is very open, and is receptive to suggestions, code contributions and bug reports. If you are encountering an undocumented problem, make a comment about it on the Moodle forums or create a tracker issue.
Some Plugins
This is a list of the plugins that Brendan has contributed to that are currently released to github. To view all these check the Remote-Learner Github
| ELIS Reporting |
This Plugin provides enhanced reporting for curriculum and user sets in the Moodle extension ELIS. |
| ELIS OPENID |
This is the OpenID authentication add-on for ELIS. |
| ELIS CM |
This plugin is the primary ELIS Curriculum Management component. |
| ELIS Alfresco |
This plugin is the ELIS Alfresco Integration component. |
| ELIS Base |
This plugin is a group of base modifications to Moodle which are required for other ELIS components. |
by ghenrick at 14 February, 2012 06:47 PM
By special request, here's a super-boring post on the ForumNG 'features' plugin infrastructure! (Not a developer? Look away now.)
It's very simple: you stick standard Moodle subplugins in the 'feature' folder. Each one must have a class which extends either mod_forumng_discussion_feature or mod_forumng_discussion_list_feature (which themselves extend mod_forumng_feature).
The difference is that 'discussion features' will be placed at the bottom of the discussion page, and 'discussion list features' just below the list of discussions on the main forum view.php. Discussion features are passed a $discussion parameter for a bunch of things, and discussion list features are passed a $forum parameter.
The classes for this basically have three methods that probably need implementing: get_order (returns an integer indicating the order relative to other features), should_display (default returns true if you have moderator permission) and display, which returns some HTML.
This doesn't really add up to much; it just means you can put a button (or pair of buttons, or dropdown, or whatever) in the area below the list of discussions or at bottom of a discussion.
Then you can put the code for handling actions in PHP scripts inside your feature.
That's about it except there are some helper functions/classes to make certain things easier (making the button form; plus for example if you want to use the 'post selector' feature which integrates with a lot of built-in JavaScript as well as non-JS alternative code, so that you can let users do some action [export or forward by email] on whatever posts they want).
There's a catch here, which is - well, let's take the 'delete discussion' feature as an example. So there's a 'delete' discussion feature and it provides the button you use to delete (or undelete) a discussion, and the script that runs when you click on it with the 'are you sure' prompt, and it checks permissions and stuff - but it doesn't really do the actual work for deleting a discussion because that clearly ought to be, and is, part of the forum back-end in the mod_forumng_discussion class. (Note: If you want to look at the code for a forum feature, the delete one might be a pretty good place to start.)
That's also true for a lot of the built-in features: the 'feature' architecture actually only includes the UI, and the real back-end work is done inside the core class, because it sort of has to be that way.
But it does still allow some degree of separation.
One of the reasons I wanted it is that ForumNG at the OU includes this totally useless 'show who read this discussion' function. Supposedly this shows you who has read a discussion and when, but in fact it's impossible to tell. So the list, though sort of correct, is basically a lie. I had to do it because they made me. :) But I didn't want to include that in the public version; no reason to spread our bad practice around the world. The 'features' system meant I could just exclude that one folder from the distribution without changing anything else.
Note: An obvious extension would be to add mod_forumng_post_feature class but we did not find a need for this yet - possibly because the 'post selector' approach (where you click a button at discussion level, but then can select one or more posts with checkboxes) is more flexible.
by Sam Marshall at 14 February, 2012 04:53 PM
13 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Richard Oelmann.
Tell us something about yourself
My background is as a Primary School teacher for the last 18 years, until leaving the job this year. During that time I was IT coordinator in a range of schools, Advisory Teacher for ICT in Cardiff and Deputy Head of a school in Monmouthshire.
Since leaving Primary teaching, I am now working for University of Wales, Newport as a ‘Web Based Learning Environment’ developer – Essentially I am managing the upgrade of the University’s learning environment to Moodle2.
When did you first start programming?
Since originally learning BBC Basic programming about 25 years ago, I had done virtually no programming or coding of any description until I started working on Moodle themes. Since doing so, I have been learning HTML, PHP and CSS primarily – teaching myself with plenty of support and encouragement from the community.
When did you first encounter Moodle?
I first encountered Moodle as an Advisory Teacher in Cardiff, when it was being rolled out as a Virtual Learning Environment for the Primary Schools in the County. At that stage I was simply a user – and providing support to teachers beginning to use Moodle in their schools – I was not involved in the ‘back-end’ of Moodle until I returned to school and began setting it up for myself.
What did you use Moodle for?
I have used Moodle in all these roles, moving from being a user (‘student’ type role) to Teacher before beginning to administer Moodle for my school when I left Advisory Teaching and returned to the classroom.
Currently, I would tend to call myself an administrator with an interest in developing – although I guess others see me as a developer as that is now my job description!
What was your first Moodle plugin? Why did you write it?
My first ‘plugin’ was a theme to create the appropriate look and feel for my school. This wasn’t released to the community, although when Moodle2 was first released I began creating some themes for the community where many of us were learning about the changes to themes in Moodle2. I believe the first theme I released to the community was a light-weight theme called LampLite..
What is your latest Moodle plugin & why did you write it?
My latest plugin released to the community was a pair of themes called MultiLayout and MultiStyled, with the intention of providing administrators who have limited server access with a means to choose a variety of layout options. As with many of my themes it developed from comments on the forums about a variety of needs, although not necessarily a specific feature request.
I have also recently written a few small modifications of some of the standard blocks within Moodle to target specific needs within the University.
What would you say to someone who is considering writing a Moodle plugin?
My advice would be – give it a go!
Look at what you want to achieve and look at some of the existing plugins – not necessarily ones that do something similar – you might get ideas for different parts of your plugin from different places.
Make use of the community – there are plenty of people out there who will be more than happy to help you.
Final Thoughts
As you can tell from my previous answers I am a big advocate of the Moodle Forum Community. You can learn so much from other members of the community, but I would definitely recommend active involvement in the forums – replying as well as asking
Some Plugins
This is a list of the plugins that Richard has contributed to that are currently (Jan 2012) in the Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
Flexi_ii
|
A theme for admins who do not have regular access to server files. It has a very comprehensive settings page to allow changes to the theme. |
Krystle2
|
A Moodle2 theme which integrates awesomebar and custom menu into a single menu bar. |
| Lagomorph |
A css3 based theme intended to be suitable for tablet/mobile use. This theme also incorporates new block positions in the centre section. |
Multilayout
|
MultiLayout is a theme with minimal styling which enables various 1, 2 or 3 column page layouts to be used from within the single layout file with little recoding. |
MultiStyled
|
Multistyled is a child theme for Multilayout. It provides the colour scheme and settings page for Multilayout, allowing the page layout and colours to be controlled from the theme’s settings page. |
by ghenrick at 13 February, 2012 11:13 AM
10 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Justin Filip.
Tell us something about yourself
I am the manager of software development at official Moodle partner Remote-Learner. I work out of our Waterloo, Ontario, Canada office with the rest of the Remote-Learner development team.
As of February 2012 I will have been working with Moodle (and Remote-Learner) full time for six years.
When did you first start programming?
In elementary school I managed to figure out how to enter and run some BASIC programs from my Math textbook but that doesn’t really count. The first language that I really learned anything with was Turing which is a Canadian-developed language meant for teaching. It had some graphics capabilities and ran on DOS/Windows. I did managed to convince my high school math/programming teacher to switch to Java for my last year of high school which was great for me because the first language we worked with in university was Java.
When did you first encounter Moodle?
I first encountered Moodle in October 2005 when I first started doing contract development work for Mike Churchward who then was the sole member of the Moodle partner Open Knowledge Technologies (we later merged with Remote-Learner to become Remote-Learner Canada).
What did you use Moodle for?
I mainly use Moodle as a developer but I’ve been toying with the idea of creating some courses within the system to use as training for newly hired developers.
What was your first Moodle plugin? Why did you write it?
I think the first Moodle plugin I fully wrote was the Sidebar Block. It was created because one of our clients wanted a way to put activities in a course that were inside a block and not contained within one of the course sections. Basically we replicated the functionality of the front page Main menu block but made it work within courses.
What is your latest Moodle plugin & why did you write it?
I recently worked on the release of ELIS for Moodle 2 – it has many Moodle plugins as part of it. But it’s been some time since I personally wrote a Moodle plugin just by myself.
I want to “pretty up” a rough script I created that can do a database-to-database Moodle schema and data copy and add some kind of web-based UI to it before releasing the code to the community. The script is meant to transfer a Moodle database from one kind of DB backend to another (i.e. MySQl to Postgres) using the Moodle database API. This was born out of the need to convert a client’s database from PostgreSQL to MySQL and there being no tools out there that could handle it correctly.
What would you say to someone who is considering writing a Moodle plugin?
Take a look at the code for some of the existing plugins for Moodle to get a feel for how the code is structured. Also, start with something smaller and easier like a block rather than creating an activity module as your first try. It will introduce you to a lot of concepts and Moodle APIs that you will expand upon when working with more complex plugin types.
Get involved with the community, particularly the General Developers forum on moodle.org. There are a lot of helpful people in the community.
And there is also the Moodle 1.9 Extension Development book written by Remote-Learner’s Mike Churchward and Jonathan Moore. Even though it focuses on Moodle 1.9 it does contain a lot of lessons that also apply to Moodle 2.x, even though the underlying Moodle code has changed quite a bit in some cases.
And the developer documentation is getting better! There is a strong push right now for better code-level documentation as well as developer information in the MoodleDocs wiki.
Final Thoughts
Moodle is like any other open source project: it ‘s strength lies in it’s community. If you want to help out and participate in that community you will get more out of your time with Moodle. Share your code and use a site like Github to make it available for others who can help fix bugs or make improvements to your code. Get involved in the forums and the Moodle bug tracker.
Also, don’t forget to have fun.
Some Plugins
This is a list of the plugins that Justin has either contributed to or is the lead developer on. To view all these check the Remote-Learner Github
| Questionnaire |
This module provides an easy way of creating your own surveys using a range of question types. |
| ELIS Reporting |
This Plugin provides enhanced reporting for curriculum and user sets in the Moodle extension ELIS. |
| ELIS OPENID |
This is the OpenID authentication add-on for ELIS. |
| ELIS CM |
This plugin is the primary ELIS Curriculum Management component. |
| ELIS Alfresco |
This plugin is the ELIS Alfresco Integration component. |
| ELIS Base |
This plugin is a group of base modifications to Moodle which are required for other ELIS components. |
by ghenrick at 10 February, 2012 04:18 PM
by Jenny Gray. OU Annotate was released to all OU students and staff on Wednesday. Well, technically it had been open to all of them from the previous week, but we made a song and dance about it on Wednesday.
So far, I've not had any reports of the server falling over, so that's a good start!
I've been keeping an eye on things, and did some number crunching and thought I'd share...
- The number of annotations has increased 2-fold since release
- The number of users has increased 8-fold since release (lots of lurkers then)
- Around 40% of the annotations added have been deleted (lots of "hello world" I guess)
- Almost all the annotations are private; there's small but significant use of public and share-by-group
- 90% of the annotations are highlights rather than bookmarks, and only 1 used the accessible creation form rather than the toolbar (still at least 1 did, or I'd wonder why I built it!)
- 70% of annotations have comments attached
- 25% of annotations changed the highlight colour
- 20% of annotations are on non-OU content
- There is small takeup of the rating and tagging features, but again, they have been used so I think it was worth building them!
So, there's been some use of every key feature that we built - except for the Alert tool, and I'm pretty glad about that not getting used!
A very satisfying first few days :)
10 February, 2012 03:56 PM
09 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Sam Marshall
Tell us something about yourself
My current desktop background is from the Japanese light novel/anime/etc series Maria-sama ga miteru (The Virgin Mary is watching). The picture is a silhouette of Yumi and Sachiko holding hands in front of some abstract leaves-and-cherry-blossom swirlies drawn by the wallpaper artist.
Huh, that isn’t what you meant?
I work for the Open University as one of the lead technical developers on our Moodle-based VLE, which is used to run the websites for all the study modules that the university offers.
When did you first start programming?
First? Really?
First programming that was more than ’10 print hello, 20 goto 10′ was probably on the CASIO PB-80 pocket computer, in BASIC, when I was about six. I remember coding a Hangman game.
The system had a massive 544 bytes of memory so the way it worked was, you would code the game and have maybe 150 bytes left to put 10 or so words into the data memory. Then you would pass it to your sibling to play the game for a bit, and when he ran out of words he could edit the data and add his and pass it back.
Hours of fun and obviously far more efficient than just using a piece of paper.
When did you first encounter Moodle?
When it was suggested to replace our previous in-house system. I don’t remember exactly when, but it was version 1.6.
What did you use Moodle for?
As a developer and for troubleshooting / advising admins. Apart from that I just use it for my blog, some internal forums, and moodle.org forums.
What was your first Moodle plugin? Why did you write it?
Probably it might have been the original ‘resourcepage’ module (which is now being superceded by the subpage module for Moodle 2).
When we started using Moodle and switched from our previous system, Moodle couldn’t handle pages with lists of files on, which was basically the only feature of the previous system. So in order to transition we had to implement that in Moodle.
Amusingly, even in current Moodle 2.2 six versions later, Moodle *still* can’t nicely handle pages with lists of files on without custom modules.
What is your latest Moodle plugin & why did you write it?
Literally, not sure – I write a lot. Our internal system has about 150 plugins (obviously I didn’t write all of those). Most of them are small and simple and don’t do much.
Of the ones which are publicly available, I guess subpage is latest. (And by the way, I didn’t actually originally write that one – I did a detailed design, and code reviewed the result, but it was coded by a developer at Catalyst. We’re maintaining it in-house though so I guess it is gradually getting more and more ‘mine’ or at least ours.)
Subpage I mentioned above; it’s an only slightly hacky way to let you put activities and resources onto ‘subpages’ off the main course page. It’s basically essential to the way our study module websites are developed, so I had to do it (or something like it) before we could migrate to Moodle 2.
There are a bunch of other modules that ought to be publicly available but aren’t because we haven’t had time.
What would you say to someone who is considering writing a Moodle plugin?
When you’re coding in Moodle, a lot of the time you need to go find an example from core code to basically copy.
Try to learn which modules are the ‘good’ ones you should copy and which are the old, encrusted ones that you should be cautious about copying from.
Also, try to follow the Moodle code style guidelines and put appropriate comments on everything; it’ll make your code easier to read/review for other developers and anyone considering using it.
Final Thoughts
Too busy for thinking right now.
Some Plugins
This is a list of the plugins that Sam has contributed to that are currently (Feb 2012) in the Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
ForumNG
|
Alternative forum with AJAX and management features |
OU Blog
|
Alternative blog. Can be used as a course activity. |
OU Search
|
Provides an indexed full-text search backend for OU activity modules. |
OU Wiki
|
Alternative wiki. Simple wiki designed for teaching and learning. Read the Review |
by ghenrick at 09 February, 2012 08:44 AM
08 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Joseph Rézeau.
Tell us something about yourself
I am a retired English teacher and researcher. I taught English at secondary school level and at university for the last 15 years of my career. I’ve been interested in using computers for teaching languages since 1983. At university, we used WebCT and then Moodle.
When did you first start programming?
I wrote my very first programs on a Commodore 64, in Basic. Language learning and games.
When did you first encounter Moodle?
When I was a senior lecturer at my university, and Moodle replaced WebCT.
What did you use Moodle for?
I used to use Moodle for my online language courses, of course. Now I do some programming as a hobby.
What was your first Moodle plugin? Why did you write it?
My first Moodle plugin was the REGEXP question type. I wrote it because Moodle was missing (and still is, to this day) a shortanswer question type with student’s answer analysis based on regular expressions.
What is your latest Moodle plugin & why did you write it?
I think my latest Moodle plugin was the Export Glossary to Quiz Block..
What would you say to someone who is considering writing a Moodle plugin?
Have a good look at how similar existing core plugins work.
Final Thoughts
When programing for Moodle (as, I expect, for any Open Source project) you can always rely on the help of the community. That is great!
Some Plugins
This is a list of the plugins that Joseph has contributed to that are currently (Jan 2012) in the Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
by ghenrick at 08 February, 2012 07:43 AM
07 February, 2012
Important note: This is just my personal opinion as a developer. Nothing in here relates in any way to the Open University's official position on any of these matters!
Internet Explorer 6. Three words that strike fear into the spine of any web developer.
As part of our move to the new Moodle 2-based system for some of our module websites, we agreed - well in advance - that we would no longer support IE 6. Google dropped support in 2010, Microsoft run a website encouraging people to stop using it... it's game over.
Why did we drop it? Well, anyone reading this who isn't a web developer might not be aware, but IE6 isn't just equivalent to any other old browser version you might encounter, like say Firefox 3.6 or something. IE6 behaves radically worse than every other browser in terms mainly of its CSS (layout) and JavaScript (interactive) support. If you want things to work in IE6, you have to do a significant amount of extra work in testing and coding workarounds to all the problems. We would rather spend our development time improving the system for 98.5% of users, not fixing problems for 1.5%.
So, we don't support IE6. That means not only do we not test with it, but if anyone reports problems we don't fix the problems, just tell them to use a different browser. And because we developed a new theme without supporting IE6 from the very start (unlikely our previous system, where we fully supported IE6 at the time our theme was originally implemented), it was likely there would in fact be problems.
Turns out that in fact, the main portion of the page doesn't display at all in IE6. It's blank. Oh well, whatever. We don't support it, right? Not a problem.
Until last week when everything hit the fan. Specifically, it turns out that certain government institutions are currently still using IE6, and preventing their staff from installing other browsers. And those staff often don't have the opportunity to simply study at home instead.
Which institutions?
The ones with guns.
Ooops.
I could wear a bullet-proof jacket, but that wouldn't solve the real problem. Which is, we don't want to support IE6, because it costs a lot of developer time. We can't very well sort of half support it; if we support it then that means we have to test everything in IE6 because it's not like any other browser (we don't test everything in Opera either, but that usually just works) - most things probably won't work and will need workarounds. We'd lose all the benefit of ditching support.
But then I had an idea. I suggested it to my bosses and they were okay with it, so we went ahead.
IE6 is a disability. These students are being forced to use an ancient browser; it's kind of like they're being forced to walk down the street blindfolded.
We support blind users. Why not support IE6 the same way?
There's no problem with IE6 as a basic HTML browser. If your website has no style and no interactive features it will work fine. Coincidentally, this is roughly the same way that blind users (through screen readers) experience the internet. So we've already made our sites work if you don't 'see' the styles or the interactive features.
So if you're using IE6 and you look at our new module web sites system (not this one), you'll now see a totally plain screen - we've stripped out all the styles and interactive scripts. It's just like the experience you get with a screen reader - complete with skip links. Not exactly pretty (and we still don't officially support IE6), but you can access all, or nearly all, of the content.

Because I did this at a theme level, it should apply in general. We don't need to test in IE6 - if we build a new feature, as long as it works with JavaScript turned off and no styles (which it ought to, for accessibility) then it should be fine in IE6 too.
That's all. I thought this might be interesting for other people struggling with IE6 issues. There was an embarrassing/amusing screw-up when we deployed this change, but this post is already long enough so I think I'll leave it out. :)
PS To avoid confusion, I should make clear: there are many OU websites which still fully support IE6. This post is only about the new system for module websites, which doesn't.
by Sam Marshall at 07 February, 2012 06:25 PM
Update on my previous post: three out of the four issues (all except media embedding MDL-29624) are now resolved and included in the relevant upcoming Moodle versions. Yay! Thanks to all Moodle HQ developers and other people who assisted with getting these approved and included.
This is a mini-post. I'm going to do a real blog post next.
by Sam Marshall at 07 February, 2012 05:50 PM
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is John Stabinger.
| Name: |
John Stabinger |
| Twitter: |
- |
| Blog: |
- |
| Source Code: |
- |
Tell us something about yourself
My day job is with a suburban school district in Pennsylvania. I also design/code for Newschool Learning, a Moodle Partner. I have B.A.s in English and Journalism, and an M.Ed. in secondary education.
When did you first start programming?
I don’t really consider myself a programmer. A designer/coder would be a better title for what I do. I started developing websites 10 years ago, but only really started working on Moodle design 3 years ago.
I mainly use CSS and javascript with minor doses of PHP (when necessary).
When did you first encounter Moodle?
I first encountered Moodle about 3-4 years ago at work.
What did you use Moodle for?
I use Moodle from all three standpoints, as a teacher, admin and as a developer.
What was your first Moodle plugin? Why did you write it?
I created a very poor theme based on Mocha UI. I was interested in Moodle and was using the UI for another project so I attempted to mash them together. The results were not very pretty.
What is your latest Moodle plugin & why did you write it?
My latest plugin is the theme Fabric. I wrote it to showcase some CSS3 transitions I have been working on (see block open/close).
What would you say to someone who is considering writing a Moodle plugin?
Grab a plugin that is close to what you want, and take it apart. Don’t worry about perfection…
Some Plugins
This is a list of the plugins that John has contributed to that are currently (Jan 2012) in the Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
Allcontent
|
Two column content-focused theme with custom menu and drop-down login/profile box. From NewSchool Learning. |
Dark Blue 2.0
|
A three column theme with a settings page that allows the user to change theme colors, etc. |
fabric
|
A two column theme from Newschool Learning. |
| fadeback |
A two column theme with a settings page to change logo and link color. From Newschool Learning |
| MyMobile |
myMobile is a theme for Moodle 2+ that is customized and optimized for smart phones and tablets. It is based on jquerymobile. For a device support grid, please visit the jquerymobile website (http://jquerymobile.com/). |
| newsie |
A two column moodle2 theme from NewSchoolLearning. Features a horizontal submenu with the custom menu. Best used when custom menu items are only one level deep. |
| SimpleSpace |
This is a three column flexible width theme. |
by ghenrick at 07 February, 2012 08:29 AM
06 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Dan Marsden.
Tell us something about yourself
My wife and I have 5 great kids; Justin, Britney, Tori, Larissa and Malea, and my work hours fit around school pick-ups/drop-offs.
I maintain the Choice and SCORM Modules in Moodle, Developer of the Plagiarism API in 2.0. I have worked extensively on a range of other areas in Moodle including various 3rd party plugins.
I now work as the “Christchurch office” of Catalyst (a Moodle Partner) from a home office which allows my time to flex around the needs of a large family!
When did you first start programming?
I started with quickbasic as a 14yr old hacking on various programs including one that replicated the school login screen (dos based) (which I didn’t use for malicious purposes – honest!)
My first paid gig was a bit later developing an ASP based website connected to some data from a filemaker db.
When did you first encounter Moodle?
My first introduction to Moodle was in a position at Lincoln University after being hired as the “educational developer” to look after their in-house LMS based around Microsoft FrontPage and a back-end Microsoft Access Database….. I quickly spent time looking for ‘something better’ and started playing with Moodle 1.3/1.4 – I then got on board with a Government funded project that collaborated with a range of higher ed institutions in NZ looking at the range of open source LMS that were available at the time and recommend one to be adopted by the institutions involved in the project. (Moodle was selected)
My first bits of Moodle development were to add the “limit” function to the choice module (the Lincoln LMS had a lab booking app written in perl that needed to be replaced by functionality in Moodle) I then created the ntlm auth plugin (which has since been merged into the standard ldap auth plugin in core) to allow SSO.
What did you use Moodle for?
In my first job it was both Moodle admin and dev, but now it is 100% as developer.
What was your first Moodle plugin? Why did you write it?
My first “plugin” was the NTLM Auth plugin – when I first started at Lincoln the in-house LMS used a separate username/password to access each course which was given to students at the start of the year and they would have 6 or 7 different passwords to access the different courses so they were always forgetting them, having difficulty accessing the courses, so before we moved to Moodle I implemented NTLM Auth across all course sites allowing them to use their “main” user login to access their courses – at this time we also implemented a process to pull user enrolments out of the SMS (PeopleSoft) and store them as groups in Active Directory so we could set group level permissions on the server. When we moved to Moodle we wanted to keep the SSO that NTLM provided for on-campus users.
What is your latest Moodle plugin & why did you write it?
My latest plugin is a generic courseformat called “singlemod” based on the SCORM course format that allows other modules to be loaded as soon as someone enters a course.
The SCORM course format allows a single SCORM to be loaded as the only item in the Moodle course – I saw a request from a user asking for another module to be loaded in a similar way so I wondered how quick it would be to develop a course format that would support something similar.
I’d be interested in replacing the SCORM course format in Moodle with this new code – it needs a little bit of work before this can be done and the only module that currently supports it is the SCORM mod.
What would you say to someone who is considering writing a Moodle plugin?
Find a recently developed core plugin to base your code on – DON’T look at SCORM!!!.
Final Thoughts
Google, Google, Google.
The community forums are a massive knowledge base – use Google to search through moodle.org for keywords of a problem you have – then if you still can’t find anything, don’t be afraid to ask questions in the forums – try to find the most appropriate forum first – don’t cross-post the same question in multiple forums – then wait patiently for a response!
Some Plugins
This is a list of the plugins that Dan has contributed to that are currently (Jan 2012) in the Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
Turnitin plagiarism plugin
|
Turnitin is a commercial plagiarism detection system which requires a paid subscription to use – This Plugin integrates with the existing Moodle Assignment module. |
URKUND plagiarism plugin
|
URKUND is a commercial Plagiarism Prevention product owned by PrioInfo AB – you must have a paid subscription to be able to use this plugin. |
My courses
|
An alternative to the Course Overview block used on “My” Homepage. |
Course Contents
|
Course contents block produces a table of contents for the course – that is a list of all visible sections (topics or weeks) in the course. Clicking at one of these links will display that particular section. Read the review |
by ghenrick at 06 February, 2012 10:09 AM
03 February, 2012
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Michael de Raadt.
Tell us something about yourself
I’m a regular guy. I have a wife and two kids and live in Perth. My background is in the academic sphere where I taught software development for many years and conducted research around novice programmers. I have been working for Moodle HQ for almost a year now.
When did you first start programming?
Ah, the good old days. I remember writing programs in BASIC as a young fellow. In those days you couldn’t just download games. Through high school I enjoyed programming in competitions and went on to teach programming and run such competitions. I enjoy writing Moodle plugins as it is a great way to share my code and teaching ideas.
When did you first encounter Moodle?
My department ran a trial and I ended up chairing the trial.
What did you use Moodle for?
I grew from a teacher to a developer over time as I saw the potential to create plugins to improve student learning.
What was your first Moodle plugin? Why did you write it?
I wrote a clock block as a learning exercise, but the first plugin I shared was the Progress Bar block.
What is your latest Moodle plugin & why did you write it?
I wrote the Peer Review assignment type as a better way to conduct peer assessment. I still need to update that one.
What would you say to someone who is considering writing a Moodle plugin?
First see if there is not something similar to your idea already available. As far as development goes, it’s getting easier. Decide what type of plugin would suit you best and look for an example to work from.
There are lots of good examples out there. Don’t be afraid to ask questions on the forums; there is plenty of experience out there.
Documentation is improving, as is the consistency of the codebase.
Final Thoughts
Please share your work on the Plugins repository. In the end, your efforts will be appreciated and will help teachers and students around the world.
Some Plugins
This is a list of the plugins that Michael has contributed to that are currently (Jan 2012) in the Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
by ghenrick at 03 February, 2012 07:40 AM
02 February, 2012
by Aparup Banerjee. Cold numbers:
25 issues have been successfully integrated and 5 have been rejected / delayed. That is 83% success, thats great considering scorching summers/freezing winters atm!
Notes:
This week has been a normal and paced integration week, just calm enough for me to do my first round up here today. There are still Documentation Sprint issues in the integration queue which are being integrated slowly but surely. Integration is taking a turn for the better as we try out some automated quality checks to keep regressions low and quality high. Soon an interesting file will attached to MDL issues containing some feedback from these evolving checks but rest assured humans will always be involved. 
Hot topics:
- MDL-29615 - A new setting, 'messagingallowemailoverride', has been added to turn off the additonal email address in case its not needed.
- MDL-30484 - Question engine changes and fixes when regrading essays.
- MDL-31000 - Filepicker now lists the various repository instances in the sort order as specifed in repository management.
- General fixes/improvements were made in the quiz, forum, choice, feedback and scorm modules, the file & url resources, some themes and the navigation block too.
Warm thanks (with cozy fires):
- To all moodlers in the cold northern hemisphere.
- and of course to the rest of us in the south hemisphere soaking up the sun.
cheers,
Aparup
02 February, 2012 07:08 PM
This is part of a blog series of short profiles on plugin developers within the Moodle community. Today it is Jenny Gray.
Tell us something about yourself
I am a leading technical developer for the Open University, UK. I’ve been working mostly on OpenLearn http://openlearn.open.ac.uk over the past 5 years, and recently transferred some of our plug-ins to Moodle 2 and built a separate web annotation system.
When did you first start programming?
I started programming in 1990 in Fortran. I worked for the Bank of England and was responsible for maintaining and extending their macro model of the UK economy under the guidance of a team of economists. I had no programming training at that time and was totally self-taught. The Bank kindly paid for me to get an undergrad degree (from the OU!!) in computing. Over time I moved into their web team and was responsible for creating their first Intranet site.
When did you first encounter Moodle?
In 2005 when I was told to use it as a platform to set up our Open CourseWare initiative, OpenLearn.
What did you use Moodle for?
I’m admin for OpenLearn (and a couple of other smaller special projects sites which are less public), and developer for all those platforms and occasionally for our student-facing servers.
What was your first Moodle plugin? Why did you write it?
Too long ago to remember! Probably the “download this unit” block, which just prints links to everything in a folder called “downloads” where we put the alternative format versions of OpenLearn units.
I get asked for this block a lot, because people think it’s doing the conversion as well. Sadly it isn’t!
What is your latest Moodle plugin & why did you write it?
My latest plugin is A recommender block.
Admins customise which recommendation services they want displayed (so our OpenLearn and Student platforms can have different ones through the same block), and the block queries the database and offers links to things that might be useful.
For example there’s an “other open educational resources like this” service, a “people on this course looked at this activity recently” service… Services can be added without rewriting the entire block.
What would you say to someone who is considering writing a Moodle plugin?
Start simple, read the documentation, use the forums for help, think about adapting something that already exists.
The important thing is to know what your users want – who is the plugin for, how can you make things easy for them. If you get this right, probably with paper prototypes first, you’re more likely to be successful.
Final Thoughts
I’m a pragmatic programmer with a strong customer focus. It doesn’t matter to me if the standard is perfect – if it is difficult to implement and/or not useful to your audience then there’s no point in adhering to it.
I also think it is better to release early and get feedback so you can iterate towards the best solution, adding bells & whistles as you go.
So I guess I’m advocating an agile/rapid application development style of programming.
Some Plugins
This is a list of the plugins that Jenny has contributed to that are currently (Jan 2012) in the new Moodle plugins database. To view all these in the Moodle.org Plugin database check this page
Rate a course
|
This block provides an Amazon-style 5 star rating system for courses. Users each give a rating and the total is displayed in the block. |
Recommender
|
This block offers four different recommendation services: popular activities on this course; popular courses on this site; open educational resources; shared bookmarks. Each can be enabled and configured separately. |
by ghenrick at 02 February, 2012 08:03 AM
|