Posted 2 days ago
by Eloy Lafuente (stronk7).
38 issues have been successfully integrated with 8 rejected and 2 delayed. That is 83% success, not bad.
3 minor releases are coming next Monday (Moodle ... [More] 2.4.9, 2.5.5 and 2.6.2).
2 weeks for 2.7 full demo of new features (March 24th).
1 day for Jerome to leave us. We'll miss you, man!
0 more things to say, countdown finished.
MDL-41266 - Logging interfaces have landed, now reports will begin to use them.
MDL-43635 - Better handling of custom context levels.
MDL-43738 - Normalize Behat forms handling.
MDL-44361 - Yui updated to 3.15.0
And lots more, including security fixes for the incoming releases, and solutions in areas like quizzes, themes, libraries, glossaries...
To Michael Milette, for his collaboration and help in the Tracker, proposing and solving multiple accessibility issues. Thanks!
Ciao all, stronk7 [Less]
Posted 9 days ago
by Damyon Wiese.
41 issues have been successfully integrated with 10 rejected and 0 delayed. That is 80% success, great (but Sams is still skewing the counts with phpdocs fixes).
Minor ... [More] release week next week - get ready.Public holiday in Perth on Monday so HQ will be quieter than usualScheduled tasks + parallel cron has landed - http://docs.moodle.org/dev/Task_APIIntegrators are reviewing and discussing the use of namespaces in Moodle (https://tracker.moodle.org/browse/MDLSITE-2549). Expect a policy written about this "very soon".Do you have some spare minutes and some knowledge? Take a look to this list of issues waiting for peer review and let's reduce it to zero.Hot topics:
Daniel Neis for reporting, fixing and following up on issues right across Moodle. Thankyou, please do more of that!Cheers, Damyon [Less]
Posted 10 days ago by nore...@blogger.com (Tim Hunt)
I am at the MoodleMaharaMoot in Leipzig listening to people talk about Moodle.
First, the good news is that about half the words in English came from the same roots as German, so there are a fair number of words you can recognise, at least ... [More] if you have time to read them from the screen. For words that seem really key, there is Google translate. Also, the Germans seems like using English phrases for eLearning-related things, like Learning Analytics, or Multiple Choice.
However, I don’t think I was even understanding 10% of the words. What really makes a difference to intelligibility is what is on the screen. If speaker just had powerpoint slides with textual bullet points, that does not help. If the speaker uses the screen to show you what they are talking about - screen grabs or live demos - that is much better. Of course, this is just: show, don’t tell.
It also makes a big difference whether you already know a little bit about what is being said. I talked to some people from University of Vienna two years ago when they started building their offline quiz activity, so I already knew what it was supposed to do. I followed that presentation (which contained many screen-grabs) better than most. What they have done looks really slick, by the way.
Regarding my presentation, I feel vindicated in my plan to spend almost all of the presentation doing a live demonstration of the question types I was talking about. Of course, I am sure that almost everyone in the audience has better English than I have German. Also, I apologies that I talked for the whole time, and did not leave an opportunity for questions.
Finally, I have been speculating (without reaching any conclusions) about whether the experience of sitting there, failing to understand almost everything that is being said, and just picking some scraps from the slides, is giving me any empathy for people with severe disabilities who need major accessibility support to use software? As I say, these thoughts are inconclusive. What does anyone else think?
By the way, Germans applaud by rapping on the table with their knuckles. Your trivia fact for the day. [Less]
Posted 11 days ago
I just spent an entire day worrying away at a complex bug, when a single word in a comment sparked a thought, sent me off in a different direction and solved the problem in under an hour.
Its been said before, and it’ll be forgotten again ... [More] so for the record …
Comments are awesome!
The bug was in OUAnnotate, but it could have been anywhere. The problem was that when you have multiple annotations in the same place, and you click the settings button, the settings panel for the last annotation in the pile opens, not the panel for the annotation you wanted to change.
Each panel has its own object, so code like myComment.setState(‘Active’) should be very specific to the object. How could it possibly be affecting the wrong one?
It was a mess. I was seriously considering rewriting the whole state management part of the system. Yuck.
Along the way I noticed the comment “replace myComment with one for the current annotation”.
That one word clinched it. I quickly saw that myComment was in scope at too high a level, so there wasn’t one per comment, but one per location. And I could easily alter the scope by moving the definition inside the loop for each comment, and after a good amount of testing everything seems to be back to normal.
So the moral of this tale is to remember that comments can help you and those who come after you to clarify what is meant to be happening. Whenever you do something a bit fiddly, don’t forget to comment it. Especially if it relies on code elsewhere in the file/system so you can’t see the two in one place.
Oh I know code should be self-documenting. Yes that’s important too. There shouldn’t be as many comments as lines of code, and comments like $i++; // increment $i are useless.
But to those developers reading this (and me to force me to remember) anything a bit complex needs a comment. And the words need to be useful. Replace, not Set up or Declare in this instance made the world of difference.
Posted 16 days ago
by Damyon Wiese.
74 issues have been successfully integrated with 7 rejected and 0 delayed. That is 90% success, great (but all Sams issues fixing phpdocs have skewed this week).
There ... [More] is a 2.4 release this week because we were convinced to backport some non-security - but nasty data-loss bugs for the quiz backup/restoreUp for review next week is - Parallel cron aka scheduled tasks (MDL-25505).Work is continuing on Atto (the new text editor), Logging and Clean as the default theme - expect to see them integrated in the coming weeks.Do you have some spare minutes and some knowledge? Take a look to this list of issues waiting for peer review and let's reduce it to zero.Hot topics:
MDL-27414 - Upgrade the randomsamatch question type to the new question engineMDL-44018 - variant field of question_attempts table is not getting backed up by Moodle backupMDL-42618 - Importing Grades via CSV with blank or whitespace as useridnumberMDL-43504 - Collapsable courses and categories don't work (combo list??)And lots more in quiz, themes, events, and phpdocsWarm thanks:
To our newest iTeam member Rajesh Tanaja, for jumping enthusiastically into our testing team with David and becoming a Jenkins Jedi.Cheers, Damyon [Less]
Posted 23 days ago
by Eloy Lafuente (stronk7).
29 issues have been successfully integrated with 7 rejected and 3 delayed. That is 81% success, not bad.
After some good discussions here and there it seems ... [More] that, soon, we'll be able to have namespaces under control. Once everything gets reviewed and decided, they will be added to out coding style guidelines.
Some awesome developments are happening under the scene, into some big development branches, it's time to learn about events (since 2.6), logging, atto and conditional availability enhancements, all them important goals for Moodle 2.7. Read the specs, look at the issues, discuss in forums, now it's the time!
Do you have some spare minutes and some knowledge? Take a look to this list of issues waiting for peer review and let's reduce it to zero.
MDL-42882 - Performance improvement on upgrade when handling files.
MDL-40938 - Login block using the clean theme.
MDL-44029 - Quiz user overrides being deleted incorrectly.
MDL-43200 - Fixes to manual enrolment web services.
MDL-32724 - LDAP fixes when updating user information.
MDL-43804 - Move from r0, r1 css alternate styling to newer, widely supported, nth-* selectors.
And lots more in themes, ajax, quiz, backup, accessibility, installation...
To Justin Filip, for his continuous collaboration and help everywhere. His, always, cool mood and wise words are really welcome, thanks!
Ciao all, stronk7 [Less]
Posted 26 days ago
A while ago I wrote a blog about learning analytics from different perspectives giving examples of different analytics based tools that could benefit different users. Since then I’ve had discussions with numerous people, many of whom have great ... [More] ideas for analytics tools, but I’ve discovered there is a disconnect between the analytics people want and their understanding of where to find the data.
To get from question to answer there needs to be an understanding of where the data are located and how they can be brought together. My intention with this blog is to show you where to find data for analytics in Moodle.
Source 1: Database tables
The database tables are used by Moodle and its plugins for data storage. They are able to be queried for information about users, and their involvement, as well as course and site information. I would estimate that more than half of the data needed for analytics are stored in these database tables.
The limitation of these data is that they are not historical – they represent the current state of the system. There is some historical data, for example Forum posts and Chat sessions, but for historical information generally you need logs or observers. One advantage of drawing from database tables rather than logs is that such data can be gathered in real-time, all the time, which is not advisable for log data (more on that later).
Here is a summary of the data in Moodle database tables. I’ve categorised the data by the perspectives relevant to analytics.
name and profile fields
site access (last login)
course access (last access)
Database activity entries
Lesson activity progress and answers
Scorm progress and answers
Wiki writing contributions
Workshop submissions and reviews
involvement in add-on activities
Grades and achievements
activity and course completion
organisation within course and sections
number and mix of activities and resources
Question bank questions and types
configuration and content of activities and resources
course enrolments (roles)
groups and groupings
organisation of courses and categories
“My home” page customisation
Examples of using database data
Here are some examples of how data in Moodle’s database tables could be used for learning analytics. It’s not a comprehensive list, but perhaps there are ideas here that could inspire some great analytics tools.
Student involvement and achievement
Accesses to enrolled courses
Progress through course
Relative success or risk of failure
Opportunities for students to undertake activities or interact
Regularity of access to courses
Timely interaction with students
Success of students in teacher’s courses
Potential to assist students at risk or commend success
Richness of content and activities
Use of assessment
Source 2: Logs, Events and Observers
Currently the logging of events in Moodle is undergoing change. Rather than referring to past implementations of logging, I’ll be more forward looking, referring to events and logging as used to some extent in Moodle 2.6 and used fully in Moodle 2.7. The new logs are richer and more focussed on educational activities.
From logs it is possible to extract information about events that have taken place. Here are some relevant aspects of events that are captured.
The part of Moodle (module, block, core) in which the event took place
What took place, based on a pre-defined list of verbs
Whether the action was to create, read, update or delete
Whether the action was teaching, participating or other (eg. administering)
Who was responsible for the action and who they might have been affecting (eg. a teacher grading a student)
Course and context
Where it happened
When it happened
Here is a list of verbs (action words) that are used with events currently. This set may grown.
accepted, added, answered, assessed, attempted, awarded, backedup, called, commented, completed, created, deleted, duplicated, evaluated, failed, graded, imported, loggedin/loggedout, loggedinas, locked, moved, passed, previewed, reassessed, reevaluated, submitted, suspended, switched, viewed, registered, removed, restored, reset, revealed, unlocked, upgraded, updated
One of the problems with logs is that they grow very large. This makes efficient searching and processing of log information almost impossible, particularly on larger sites. With richer event information being captured, there are also events being recorded from more places in Moodle. There is the potential to direct log information to log stores outside of the Moodle database. The intention of this change is to allow searching and processing of logs without impacting the performance of the Moodle server itself. There is also the potential to export log data to files for filtering and analysis outside Moodle. So it is possible to get detailed log information, but this cannot be used in real-time, say for a block or a report that combines logs with other information.
One way to capture event information so that it can be used in real-time is with observers. As each action takes place an event is “triggered” within Moodle and observers can “observe” events based on certain criteria. The new logging system is an event observer that consumes all events that are triggered and stores them (to one or more log storage plugins). It’s possible to create new observers that can focus on a subset of events, store relevant information so that it can later be presented efficiently. If you were interested in, say, creating a report that focussed on enrolment actions, you could allow the report to observe enrolment events, store records in its own table and then present the results to users appropriately, any time it was needed. The report could even make use of messages to send out alerts when necessary.
Examples using events and log data
Monitoring site activity and focal points
Number of user accesses, which could be used to infer time online
Repeated exposure to resources and activities within courses
Students accessing teacher feedback on activities
Student retention in courses (based on enrolments and unenrolments)
Source 3: Click tracking by external monitors
Google Analytics for moodle.org
their environment (browser, OS, device),
where in the world they are coming from and
the paths they are following through your site.
This information is useful to administrators wanting to ensure their Moodle site is catering to users’ needs. To discover learning analytics from Google Analytics, it is possible to drill down into usage information, This will not yield the same sort of information as the Moodle database or logs, instead showing patterns of behaviour. This information could potentially be fed back into Moodle as Google provides an API to query analytics data, which could be presented in a Moodle report or block.
Source: Damo’s World
Another relevant click-tracking tool is the Moodle Activity Viewer or MAV. This is a system in two parts: a server-side component that collects course activity usage statistics and a browser plugin that takes the page delivered from Moodle to your browser and overlays the page with colour to turn the course page into a heatmap. This shows teachers where the focus of activity in a course is taking place.
Could this understanding be built-in?
Unfortunately, at this stage, there are no simple generic mechanisms built into Moodle that allow you to freely gather and combine information without writing code. There are some exceptions attempting to allow generic report writing, but I don’t think these are simple enough for ordinary users yet. Currently, if you have specific questions that can’t be answered using standard Moodle reports, the best way to get the answers you want is by writing (or get a developer to write) a plugin (report or block). Hopefully this guide so far will provide an understanding of what data are available and where to find them.
Is there a possibility to create the reports without coding them from scratch?
One potential future step would be to allow plugins (and Moodle itself) to be able to describe the data they store. With this meta information, it could be possible to use a generic tool to gather and combine specified information on-the-fly and tweak the criteria as needed. This would allow access to the rich data in the Moodle database (with appropriate security constraints, of course).
It could also be possible to create a generic observer that can be configured on-the-fly to consume events of interest and record them. The current logging and events system APIs allow such alternative logging. Providing a sense of what events could be observed would be the challenge here, but at least events are now somewhat “self describing” meaning meta information is recorded with the coded description of the event objects.
For administrators interested in the sort of user information that Google Analytics reveals, it is possible in Moodle to determine a user’s browser, OS and device type. Moodle already does this to allow page customisation for different combinations of these factors. It would not be a great step to capture and present this information in a report. Google could probably do this better, but perhaps you’re not too keen to allow Google to snoop on your students and their learning activities. Moodle logs could be used to infer the paths and behaviour of students, but this would be a very costly exercise, requiring a great deal of computing power, preferably away from the Moodle server.
What to do with this data?
The final challenge then is to go beyond data gathering and analysis to provide tools that can use this information to support teaching; tools that help students learn, teachers teach and administrators to cover their butts. Only then will we see the LMS take education beyond what could be achieved in the classroom.
Posted 26 days ago
I recently read an article posted on TechnicianOnline titled “Moodle usage increases regardless of complaints” that really got me thinking. The article outlines the difficulties being faced by educators at NC State University as ... [More] they come to grips with the use of the Moodle system. I strongly recommend before reading this blog post further that you read the article they posted in it’s entirety by clicking here.
I do not doubt that many educators reading this article will feel that this could just as easily be describing their own school/Uni/workplace. The points raise are ones we all hear often. But what if all of this could be avoided? Well..it can and it should!
Let’s start by lifting one specific quote.
“The problem with Moodle is that it has so many features that are complicated for the instructors to use. A lot of us don’t run our classes that way and don’t need all of those things . . . I would like to see them come up with a Moodle lite, or something like that.”
Bob Larson (communication lecturer)
Is this statement true? Resoundingly so. Moodle IS a complex tool with a wide range of features ranging in complexity.
Does it need to be so for the teacher? ABSOLUTELY NOT. The issue here is not Moodle itself, it is bad admin setup. But it is far easier to blame the tool and hence, here we are.
The aim of this post is to address just some of the techniques that can be implemented to make Moodle a far more pleasant experience.
What is the issue in a nutshell?
It is often said that Moodle’s strength, and weakness, is its range of features. Those numerous pages of options that confront every teacher the moment they turn editing on.
The strength of course is that all these settings allow us to customise the system and course to work exactly as we want. To allow us to delivery an online model of education that does not have to fit inside some pre-determined methodology but instead the work the way that we each intend.
The weakness is the confusion. Anyone who has set up a Quiz in Moodle will know what I am talking about here. Pages of options that while giving flexibility also create large amounts of complexity.
So why am I blaming Admin? Here is why. Moodle does not HAVE to be this complex. It is designed to be customised and shaped to fit the exact needs of the organisation. Why have a site full of features and settings your staff don’t need?
Implementing Simplicity (or How I Learned to Stop Worrying and Love the Moodle)
Moodle provides numerous areas where Admins can enable/disable functionality as well as setting defaults. No organisation uses all the features. Why have them all on? The admin should customise the site to the needs of the organisation. How can we do this. Some examples are below:
Disable/enable plugins based on what you need moodle to do.
Blocks can be culled very easily. As can many other plugin types.
Plugins as well as course settings can have default settings. Don’t force educators to have to change numerous options every time they create. Find what 80% plus use and set the defaults to that level. This is very useful at the course default level
Customise your plugin settings
Many plugins in Moodle allow you to “hide” settings in the “show advanced” toggle. Not removing them completely, but removing them from the initial view. This enables power users but makes things far less confusing for beginners
Create custom permissions
Another way of limiting how many options appear to a user is to change/create custom permissions. Most organisations don’t fit into the seven standard Moodle roles. And why should they? Every organisation is different. Customise moodle’s feature set based on the real world roles your organisation has. More information on Roles and Permissions in Moodle can be found here.
Create course templates
Now personally I hate the idea of course templates. I find template based courses are forced to make too many assumptions around how a course should be delivered. That being said, to many new users who don’t know where to start, this can be a god send. (P.S. course templates are a simple use of Moodle’s backup/restore function). A great discussion around this very topic was started by David Brown on Moodle.org and is worth a read if you are only starting down this path (http://learn.moodle.net/mod/forum/discuss.php?d=32240)
Create a help course
This is so obvious and yet done by only 10% of sites I come across. Support your educators! It is a simple idea isn’t it. You don’t even have to make all the content yourself. At the lowest level link to relevant Moodle docs. Check out the how to’s on the Moodle YouTube channel. But you should do MORE than that. Invest some time every week to create your own videos and documentation. Don’t magically expect your users to magically absorb information from the Knowledge Unicorn as it flies past dropping sugary sweet candies of perfection and best practice as your educators sit in front of their screens of satisfaction. It just doesn’t happen!Below are some examples of Help courses made by organisations that are open to the public
University of Nottingham Moodle Help
Oakland University Moodle Help
GSLIS Moodle Support
Amherst College Teacher Suport
Focus on Design
How many sites do you find using just a front page moodle generated course list as a means of navigation? (sorry University of Essex, Im using you as an example)Have you put any thought at all into how you users navigate the site? Using nothing more complex than a Label, Admins can create custom front page navigation to make it easier for users to get to exactly where they need to go. Check out the examples below using nothing but labels to achieve this.
St Lukes Grammar School
If you are willing to go a step further and use a custom theme then you can achieve front pages like these.
Dublin City University
and of course the new Moodle.org
Invest in PD
Another contentious statement. What? Moodle is free you say? Hell no! N system is free. Even if you are not paying for the software you need to invest in support. Training. Don’t invest and expect no uptake! I don’t know any more about the PD program at NC State University other that what is in the article. I did however beam brightly when I read the following quote.
“We will come to a faculty member’s house and teach them exactly how to do whatever it is they personally need to be able to do on Moodle if they request it”
Martin Dulberg (senior coordinator)
I could go on, But in short, it is easy to blame a system for all your woes. Moodle IS complex. It IS detailed and it IS full of settings. But only as far as you want it to be. The trick for Moodle administrators is to find the right balance of design, training and settings to ensure that the system can work the best it can for their organisation. Be careful of going too far in the opposite direction though. I want to finish with this last quote form the article.
“The most we can do is try to make the best tools that we can, and it is up to the instructor to decide how they want to use it, if they want to use it. We can’t appeal to the lowest common denominator.”
Martin Dulberg (senior coordinator)
In particular that last sentence. If you build a system aimed at your lowest common denominator you are doing them and you a diss-service. Find the average pace in the organisation. Build for them while idealy providing upskilling for the lowest users and still providing effective tools for your power users. But in the end, remember we are NOT building for our lecturers/teachers. As contentious as this statement will be.
Moodle should be constructed for your learners, not your educators!
Are you an Admin and never thought about any of this before? That is why YOU should be the first to be up-skilled. How can YOU be responsible for a system YOU don’t understand? Don’t know how your educators are/should be using Moodle? Find out? Speak to them. Get involved in the process. My closing point is that being a Moodle administrator is NOT a purely technical role. It is just as heavily focused in understanding the pedagogy/andragogy of its intended application as much as the LDAP and security settings.
Original Artical on Technicians Online
Official Moodle docs
Moodle YouTube channel
Get online Moodle Certification
I deliver training around the Asia Pacific. get upiskilled!
The post Don’t blame the tool, blame the setup appeared first on Moodleman Blog. [Less]
Posted about 1 month ago
by Sam Hemelryk.
A total of 38 issues have been integrated this week, 6 have been reopened, and 7 have been delayed. That is a 87% success ration, up on last week.
Delays this week were due to chained issues ... [More] where a preceeding issue has been reopened, leaving the chain broken until the issue is fixed and looked at again next week.
The file lib/tests/code_test.php was removed this week, its purpose was to sanity check our code and as part of its process it checked certain conventions. Tim Hunt made a very good point that conventions can be very useful during development. For example DONOTCOMMIT, it can be easily added via macros or hotkeys within your IDE, and if you set up a git commit hook to look for it you can prevent yourself from accidentally committing something you're not meant to.
David Mudrak has provided an example of how to handle create such a hook see the commit message and I've created an example myself to see how it works.
MDL-38923 Clean theme now supports the dock in master. If you'd like to see this backported please vote on MDL-43995. Thanks Bas.MDL-39617 We have a new CLI script that is used to backup a single course. Thanks Ruslan.MDL-43592 We've now got a means of patching YUI when we need to without hitting caching issues.Several Quiz and question improvements from Jamie Pratt.Warm thanks:
Jamie Pratt for his work on Quiz this week, and because we just couldn't get through all the great work he's put forward. Thanks Jamie. Thamie.
Sam Hemelryk [Less]
Posted about 1 month ago
They say it is good to walk a mile in some-one else’s shoes. Recently I’ve been involved in a requirements gathering exercise to provide new services for developers in our office. It has been an interesting and challenging experience which I ... [More] thought would be worth reflecting upon.
One of the bits of my job which I enjoy the most is to gather user requirements and draw them together into a functional specification. Part of that process which I feel is important is to challenge where requirements or ways of working seem less than ideal. The introduction of a new, or improved, service is a perfect opportunity to improve business practices.
Funny how that doesn’t feel quite so nice when you’re on the recieving end.
So I wanted to reflect upon why I feel so tense about this, and how I can try to ensure that other projects where I’m gathering requirements don’t make my client feel bad.
Part of this is good interpersonal skills. It is important to really think about how you say things to get your message across and to actively listen to what’s being said. I did have a few other ideas. I’m not sure any of this is rocket-science though.
Time: The project I’m working on is under considerable and increasing time pressure. It is however important to ensure there is enough time for the requirements analysis phase so all stakeholders feel consulted. Otherwise you risk the wrong solution. And rushed people tend to respond with hostility.
Scope: Sometimes those odd practices are working round problems that exist elsewhere. If they can’t be addressed by the current project, then they simply have to be acknowledged and a best fit solution proposed. This isn’t any-one’s fault but tends to make people feel defensive, which isn’t a great working environment.
Terminology: Sometimes there are phrases that you’d think both sides would understand in the same way so you assume clarity. It is worth sanity checking that, because it isn’t always true. Getting a clear understanding of what people mean can save problems in the long run.
Meetings: Written communication tends to increase confusion. Nothing beats getting face-to-face to thrash out contentious areas quickly.
Willingness to compromise: Like all clients, I think I’ve come to this feeling that I don’t want to change and that what we do is fine. That’s human nature, and its something that those challenging working practices and requirements need to bear in mind.
What do you think? What else makes for a good, collaborative working environment for project scoping and shaping that leaves every-one feeling valued and respected but makes changes for the common good?