As part of the new moodle.com redesign, we’re delighted that MoodleNet is now listed on the ‘Products’ page: https://moodle.com/products/moodlenet
Now that we’ve proved the value proposition of the new MoodleNet service, we’re planning to ‘sunset’ (i.e. gracefully retire) the existing moodle.net service. The date we have in mind is in time for the inaugural Global MoodleMoot in November 2019.
This will take time and effort, as there are many services and subdomains related to moodle.net. You can track the progress of this project in its own right at the following Moodle Tracker epic: MDLSITE-5854. We welcome community input and suggestions, so please do comment on issues linked from that epic!
The MoodleNet team is delighted to welcome Karen Kleinbauerů and James Laver who will both be working on backend development. Karen’s based in the Czech Republic, and James lives in The Netherlands. They’ll both be working 2.5 days on MoodleNet!
We would love to hear a bit about your work history?
Karen: I have previously contributed to Pleroma, an ActivityPub server that MoodleNet is loosely based on. In fact it was my presence on the Fediverse that has got me interested in programming and my love for the project that has made me contribute to it. Doing so has given me knowledge in ActivityPub, Elixir/Phoenix and the general struggles of hosting an AP server, both from a technical perspective and a community management perspective (Both are equally important!).
I’m also studying Japanese at a Prague university. I consider myself relatively proficient at the language and I’ve done volunteer translation work in the past.
James: I’ve consulted with a variety of companies, big and small to build (sometimes) cool and (often) interesting things. I’ve done a lot of things – everything from a CMS for a small artisan burger chain to a distributed backend control plane for an investment bank. As much as working on interesting projects, I like to work with interesting people, so I have a lot of stories from the code mines 😉
What do you love about what you do?
Karen: First of all, I simply enjoy programming. The combination of problem solving and creating things just scratches an itch that nothing else really does. Additionally, I’m excited to contribute to the ActivityPub network because I’m a passionate member of it and want to expose more people to it. Decentralised networks harbour unique communities that wouldn’t be able to exist in big, corporation ran silos.
James: I love solving interesting problems. In “the mythical man month”, there’s some lovely phrasing about “building castles of pure thought”. A lake of problems, limited only by my imagination. Cool!
What are your interests outside of work?
Karen: I’m your (maybe not so) typical nerd who enjoys video games, coffee, manga, music and such. I collect retro video games and consoles and also enjoy speedrunning my favorite titles.
I also have a deep appreciation for nature and enjoy taking strolls through forests, valleys and mountains. Tied to that is my interest with spirituality and animist religions, particularly Shinto.
James: I’m a keen cyclist, enthusiastic cook, eager video gamer and drinker of copious quantities of coffee. I listen to music, watch box sets of old TV and lose an afternoon at a time to wikipedia after I’ve made plans to go out.
Where is your favourite place in the world, and why?
Karen: This is a bit of a cheat answer as it’s a place which i haven’t visited yet, but I would love to visit the island of Tashirojima in Japan. It’s notable for its significant feline population, which outnumbers the human population 6 to 1. And I don’t know about you, but being smothered with cats sounds pretty wonderful to me!
James: My bed. I was once told that when you’re not in bed, you’re in
your shoes, so you should buy a comfy bed and comfy shoes.
Alex Castaño, MoodleNet’s first backend developer, is moving on this week. We wanted to take the opportunity to thank Alex, and reflect on what he and the team have achieved since last September.
Some members of the community might not understand the role of a backend developer. Could you explain what your role at Moodle has been over the last eight months?
The main task of a backend developer is to create the business logic of the application. He also stores the data maintaining its integrity at all times. And last, but not least, he ensures the data is delivered correctly and safely to the rest of the systems.
So my work at Moodle has been basically to discover the needs and the goals of the project, to create a computer system to simulate it and to develop a protocol to get the stored information to be presented in the form of a web page.
What would you pick out as some of your highlights of working as part of the MoodleNet team?
I particularly enjoyed the creation of a generic library for ActivityPub. It was a big challenge, and although it’s not 100% finished, I think it’s a very interesting project.
Creating a GraphQL API has been another big challenge for me. I only knew the technology of having read about it, but had never put it into practice. I was able to learn first-hand about its advantages, but also its drawbacks.
Another interesting part of the project has been the research of the different technologies available and how they could be integrated into MoodleNet. This also includes the study of different free software and how they solve the different problems you face. It is an enriching process and you learn a lot from the experience of other developers. It’s the great advantage of free software, and I hope that other developers will find inspiration in my work to achieve their goals.
As you move onto a new opportunity, how can people follow your work and keep in touch?
I don’t write as much as I’d like, but in my blog (https://alexcastano.com) you can follow my next steps and you can also find my contact details.
Thank you very much for everything
Update: we’ve closed the job listing for this role and will be making a decision soon!
With MoodleNet we’re building a resource-centric social network for educators. One key differentiating feature is that MoodleNet will be federated, meaning separate instances can communicate with one another. To enable this to happen, we’re using ActivityPub, an official W3C recommended standard, and to ensure scalability we’re using Elixir, a dynamic, functional programming language.
There’s several parts to MoodleNet’s federation: receiving or fetching activities from other instances, interacting with them, and of course pushing new activities to followers. Alex Castaño, the backend developer who joined us at the end of September 2018, has almost completed the first part of this equation. He’s decided to move on at the end of May, which means we’re looking for a new backend developer to complete the work on federation.
This is a flexible position and can be based remotely, or out of the Moodle office in Barcelona. View the job listing for details, and please pass this along to any developer you know who might be interested.
After some extended testing, we’ve just released MoodleNet v0.9 alpha in preparation for the workshop at this week’s UK & Ireland MoodleMoot.
- Dark mode
- User’s latest activities on profiles
- Timeline (latest activities of user’s followed communities and collections) on home page
- New UI (without sidebar)
- Moodle brand and colour scheme
- Link to code of conduct from user menu
- Various small bug fixes
In addition to the above, we’re still working on search, federation (the ability to have separate instances of MoodleNet that can communicate with one another), and of course Moodle Core integration.
We’ve almost completed our Data Protection Impact Assessment (DPIA) with Moodle’s Privacy Officer and external Data Protection Officer (DPO). We’ll be sharing that with the community for feedback.
The first first release that features federation will be called ‘beta’, so the next scheduled release will be MoodleNet v0.9.1 alpha.
On Tuesday, the European Parliament gave final approval to the Copyright Directive, a controversial piece of legislation affecting online services that either link to news articles or allow uploads.
During the process of this legislation coming into law, the MoodleNet team has been asked about the potential impact on what we are building. Developments are ongoing even now and the Directive has to passed into law by the European member states.
As a result, we have decided to keep a wiki page up-to-date about what the Copyright Directive may mean for MoodleNet. You can access this on the Moodle wiki.
I’m MoodleNet Lead and, since the project’s inception, I’ve had lots of conversations with many different people. Once they’ve grasped that MoodleNet is a federated resource-centric social network for educators, some of them ask a variation of this question: Oh, I assume you’ll be using a star rating system to ensure quality content?
They are often surprised when I explain that no, that’s not the plan at all. I haven’t written down why I’m opposed to star rating systems for educational content, so what follows should hopefully serve as a reference I can point people towards next time the issue crops up!
However, this is not meant as my last word on the subject, but rather a conversation-starter. What do you think about the approach I outline below?
Wikipedia defines a rating system as “any kind of rating applied to a certain application domain”. Examples include:
- Motion Picture Association of America (MPAA) film rating system
- Star rating
- Rating system of the Royal Navy
A rating system therefore explains how relevant something is in a particular context.
Ratings in context
Let’s take the example of film ratings. Thanks to the MPAA film rating system, parents can decide whether to allow their child to watch a particular film. Standardised criteria (e.g. drugs / sex / violence) are applied to a film which is then given a rating such as G (General Audiences), PG (Parental Guidance), and R (Restricted). These ratings are reviewed on a regular basis, sometimes leading to the introduction of new categories (e.g. PG-13).
Despite the MPAA film rating system, many parents seek additional guidance in this area – for example, websites such as Common Sense Media which further contextualise the film.
In other words, the MPAA rating system isn’t enough. Parents also take into account what their child is like, what other parents do, and the recommendations of sites they trust such as Common Sense Media.
Three types of rating systems
As evident in the screenshot above, Common Sense Media includes many data points to help parents make a judgement as to whether they will allow their child to watch a film.
With MoodleNet, we want to help educators find high-quality, relevant resources for use in their particular context. Solving this problem is a subset of the perennial problem around the conservation of attention.
In other words, we want to provide the shortest path to the best resources. Using an adapted project management triangle, educators usually have to make do with two of the three of time, effort, and quality. That is to say they can minimise the time and cost of looking for resources, but this is likely to have a hit on the relevance of resources they discover (which is a proxy for quality).
Likewise, if educators want to minimise the time and maximise the quality of resources, that will cost them more. Finally, if they want to minimise the cost and maximise the quality, they will have to spend a lot more time finding resources.
The ‘holy grail’ would be a system that minimises time and cost at the same time as delivering quality education resources. With MoodleNet, we are attempting to do that in part by providing a system that is part searchable resource repository, and part discovery-based social network.
Simply providing a place for educators to search and discover resources is not enough, however. We need something more granular than a mashup of a search engine and status updates.
What kinds of rating systems are used on the web?
There are many kinds of rating systems used on the web, from informal approaches using emoji, through to formal approaches using very strict rubrics. What we need with MoodleNet is something that allows for some flexibility, an approach that assumes some context.
With that in mind, let’s consider three different kinds of rating systems:
- Star rating systems
- Best answer systems
- Like-based systems
1. Star rating systems
One of the indicators in the previous example of the Common Sense Media website is a five-star rating system. This is a commonly-used approach, with perhaps the best-known example being Amazon product reviews. Here is an example:
Should I buy this laptop? I have the opinion of 12 customers, with a rating of three-and-a-half stars out of five, but I’m not sure. Let’s look at the reviews. Here’s the top one, marked as ‘helpful’ by nine people:
So this reviewer left a one-star review after being sent a faulty unit by a third-party seller. That, of course, is a statement about the seller, not the product.
Averaging the rating of these two reviews obviously does not make sense, as they are not rating the same thing. The first reviewer is using the star rating system to complain, and the second reviewer seems to like the product, but we have no context. Is this their first ever laptop? What are they using it for?
Star rating systems are problematic as they are blunt instruments that attempt to boil down many different factors to a single, objective ‘rating’. They are also too easily gamed through methods such as ‘astroturfing’. This is when individuals or organisations with a vested interested organise for very positive or very negative reviews to be left about particular products, services, and resources.
From the Wikipedia article on the subject:
Data mining expert Bing Liu (University of Illinois) estimated that one-third of all consumer reviews on the Internet are fake. According to The New York Times, this has made it hard to tell the difference between “popular sentiment” and “manufactured public opinion.”
As a result, implementing a star rating system in MoodleNet, a global network for educators, would be fraught with difficulties. It assumes an objective, explicit context when no such context exists.
2. Best answer approach
Some of these question and answer pages on Stack Overflow become quite lengthy, with nested comments. In addition, some responders disagree with one another. As a result, and to save other people time, the original poster of the question can indicate that a particular answer solved their problem. This is then highlighted.
The ‘best answer’ approach works very well for knotty problems that require clarification and/or some collaborative thinking-through of problems. The result is then be easily searched and parsed by someone coming later with the same problem. I can imagine this would work well within MoodleNet community discussion forums (as it already does on the moodle.org forums).
When dealing with educational resources, however, there is often no objective ‘best answer’. There are things that work in a particular context, and things that don’t. Given how different classrooms can be even within the same institution, this is not something that can be easily solved by a ‘best answer’ approach.
3. Like-based systems
Sometimes simple mechanisms can be very powerful. The ‘like’ button has conquered social networks, with the best-known example being Facebook’s implementation.
I don’t use Facebook products on principle, and haven’t done since 2011, so let’s look at other implementations.
Social networks are full of user-generated content. Take YouTube, for example, where 400 hours of video is uploaded every single minute. How can anyone possibly find anything of value with such a deluge of information?
In the above screenshot, you can see a search for one of my favourite topics, The Bolshevik Revolution. YouTube does a good job of surfacing ‘relevant’ content and I can also choose to sort my results by ‘rating’.
Here is the top video from the search result:
I don’t have time to watch every video that might be relevant, so I need a shortcut. YouTube gives me statistics about how many people have viewed this video and how many people subscribe to this user’s channel. I can also see when the video was published. All of this is useful information.
The metric I’m most interested in, however, and which seems to make the biggest impact in terms of YouTube’s algorithm, is the number of upvotes the video has received compared to the number of downvotes. In this example, the video has received 16,000 upvotes and 634 downvotes, meaning that over 95% of people who have expressed an opinion in this way have been positive.
If I want more information, I can dive into the comments section, but I can already see that this video is likely to be something that may be of use to me. I would add this to a shortlist of three to five videos on the topic that I’d watch to discover the one that’s best for my context.
Going one stage further, some social networks like Twitter simply offer the ability for users to ‘like’ something. A full explanation of the ‘retweet’ or ‘boost’ functionality of social networks is outside of the scope of this post, but that too serves as an indicator:
This tweet from the UN about a report their Global Education Monitoring report has been liked 72 times. We don’t know the context of the people who have ‘liked’ this, but we can see that it’s popular. So, if I were searching for something about migrant education, I’d be sure to check out this report.
Although both YouTube and Twitter do not make it clear, their algorithms take into account ‘likes’ and ‘upvotes’ within the context of who you are connected to. So, for example, if a video has a lot of upvotes on YouTube and you’re subscribed to that channel, you’re likely to be recommended that video. Similarly, on Twitter, if a tweet has a lot of likes and a lot of those likes come from people you’re following, then the tweet is likely to be recommended to you.
Interestingly, many Twitter users use the limited space in their bios to point out explicitly that their ‘likes’ are not endorsements, but used to bookmark things to which they’d like to return. In the past year, Twitter has begun to roll out bookmarks functionality, but it is a two-step process and not widely used.
So likes act as both votes and a form of bookmarking system. It’s a neat, elegant, and widely-used indicator.
What does this mean for MoodleNet?
So far, we have discovered that:
- The ‘quality’ of a resource depends upon its (perceived) relevance
- Relevant resources depend upon a user’s context
- We cannot know everything about a user’s context
MoodleNet will implement a system of both taxonomic and folksonomic tagging. Taxonomic tags will include controlled tags relating to (i) language, (ii) broad subject area, and (iii) grade level(s). Folksonomic tags will be open for anyone to enter, and will autocomplete to help prevent typos. We are considering adding suggested tags via machine learning, too.
In addition to this, and based on what we’ve learned from the three rating systems above, MoodleNet users will soon be able to ‘like’ resources within collections.
By adding a ‘like’ button to resources within MoodleNet collections, we potentially solve a number of problems. This is particularly true if we indicate the number of times that resource has been liked by community members.
- Context – every collection is within a community, increasing the amount of context we have for each ‘like’.
- Bookmarking – ‘liking’ a resource within a collection will add it to a list of resources a user has liked across collections and communities.
- Popularity contest – collections are limited to 10 resources so, if we also indicate when a resource was added, we can see whether or not it should be replaced.
As discussions can happen both at the community and collection level, users can discuss collections and use the number of likes as an indicator.
Sometimes the best solutions are the simplest ones, and the ones that people are used to using. In our context, that looks like a simple ‘like’ button next to resources in the context of a collection within a community.
We’re going to test out this approach, and see what kind of behaviours emerge as a result. The plan is to iterate based on the feedback we receive and, of course, continue to tweak the user interface of MoodleNet as it grows!
What are your thoughts on this? Have you seen something that works well that we could use as well / instead of the above?
We want MoodleNet to be useful for educators around the world, so of course we need it to exist in as many languages as possible!
That’s why, as well as launching in English, it’s very important for us to launch with the interface available in other languages, too. We want to encourage the communities, content, and discussions that will come to life on the platform to be representative of the wonderful diversity of this community.
If that sounds like something with which you’d like to help, please head over to this thread on the MoodleNet forum and provide:
- A list of languages you know, including your level in each: Native ; Fluent ; High writing profiency ; High reading proficiency; or Intermediate. (Please don’t forget to include your level in English).
- A few words about your experience (if any) with translation, and a link to some of your work (for example, if you’ve helped translate Moodle Core, include a link to your profile on AMOS)
We will then direct message you if we need any more details, and with information about how to get started when translation into your language(s) is ready to begin. We’re going to start with some of the most common languages among users of Moodle, including Spanish.)
If you’re selected to help translate the pilot version of MoodleNet before it launches, you’ll also be invited to join as one of the first pilot users to try out the platform for yourself.
Photo credit: Slava Bowman
The MoodleNet team is delighted to announce that we have been awarded a Mozilla Open Source Support (MOSS) grant. We pitched for this at the recent Mozilla Festival, and the judges were impressed enough to award us $5,000 to help us perform a privacy and security audit of MoodleNet.
Creating a decentralised platform for MoodleNet is important to our goal of creating an open, safe, connected solution that can be installed and run by any organisation. Doing so, however, increases what security professionals call the ‘attack surface’ of the software environment. We are delighted to not only have a grant from Mozilla to help with this, but also access to their community of talented technologists.
Our plan is to create a series of ‘bounties’ for security testing MoodleNet. This is a proven method for incentivising ethical hackers to disclose privacy and security vulnerabilities in software products and platforms. Using this method, we hope, will not only increase the reliability of our systems, but also help increase trust in open source and federated solutions.
“Thanks to Mozilla for their MOSS initiative, and for their grant towards security testing of MoodleNet. It’s a pleasure to be involved and our team is using it as effectively as we can.” (Martin Dougiamas, Moodle CEO)
We’re still reviewing which platform to use for our security bounty programme, but you can see how organisations and projects such as WordPress, Brave and Discourse use such platforms to improve the quality of their products.
If you’re interested in helping out with this programme and potentially receiving a cash reward for your efforts, there are a number of things you can do:
- Review our code (warning, it’s still under heavy development!)
- Read about our approach in more detail
- Subscribe to the “MoodleNet security and privacy testing” Telegram channel for updates
Finally, if you have any suggestions for how we could set up this privacy and security testing programme for even greater success, we’d like to hear from you. Either add a comment below, or get in touch with us directly via email : firstname.lastname@example.org