Open Thinkering

Menu

Month: January 2018

Creating the world’s smallest social network (for testing purposes)

Note: I’m writing this post on my personal blog as this isn’t an official Moodle pronouncement, just some experimentation.


I’m leading Project MoodleNet, which will be “a new open social media platform for educators, focused on professional development and open content”. There are decisions I have to make, and these need to be based on criteria, prioritisation, etc.

One of the things I’m keen to do with the professional social networking component of Project MoodleNet is to ensure that it’s decentralised. By this I mean that, unlike Twitter and Facebook and Instagram, it won’t be a ‘silo’ of information.

Instead, Project MoodleNet will be federated in a way which allows information to flow between instances. It’s well explained in this article, which includes the following diagram which outlines the technical protocols on which a number of options are based:

Venn diagram of the Fediverse

As you can see, the ActivityPub protocol is definitely a candidate for the professional social network aspect of Project MoodleNet. Last week it became a W3C recommended standard.

For less technical readers, the upshot of this is that users can send messages, files, and (most importantly) emojis to anyone on any server that uses the ActivityPub protocol. Products and services built upon this protocol may look and feel very different, but all of the data is interoperable.

ActivityPub diagram
The W3C specification, which includes these diagrams, is surprisingly readable!

Mastodon is a social network which was originally built on the OStatus protocol, but which is now also compatible with ActivityPub. I’m a member of the social.coop instance, although there’s no limit on the number of different accounts you can hold on different instances.

Although they have a common basis, you find differences between Mastodon instances. For example, some have a particular focus, meaning that the stream of updates you get from your own instance might be focused on gaming, or education, or LGBT rights. There’s also differences between the kind of languages and content allowed by instances.

No matter which instance you’re on, however, you can follow anyone from any instance. You can see this in the screenshot below.

Mastodon screenshot

From left to right:

  • My ‘Home’ stream is populated with updates from the people and accounts I follow.
  • The ‘Notifications’ stream works the same as Twitter (replies, favourites, boosts)
  • ‘Local timeline’ is everyone on the same instance as me.
  • ‘Federated timeline’ is everyone’s updates in the Fediverse.

In practice, it’s a lot like TweetDeck (I think on purpose).

I wanted to have access to a testing version of Mastodon to look at the administration and moderation functionality. Paul Greidanus was kind enough to spin up an instance which, for obvious reasons, isn’t federated to the rest of the network.

Mastodon - Moodle

I closed self-registration and invited some Moodle staff to create an account via a special link. As you can see, it was pretty quiet. That’s OK, however, as I’m really just interested in the moderation and admin functionality.

To access the additional options available as a moderator and/or admin exist in the same place as user settings. It’s a nice touch, and the way that it’s presented makes it easy to focus on what you want to achieve, rather than getting sidetracked with technical stuff.

Mastodon moderation audit

The audit log shown in the screenshot above is useful, particularly for GDPR compliance, and reporting reasons.

Mastodon moderation - invitations

This is also the place where you can generate invitations, which can have a maximum number of uses and/or expire after a certain time. There’s also functionality around blocking email addresses from certain domains from registering.

On the admin side of things, this is where you can configure the public description of the instance, add contact details, and specify the rules and other guidelines.

Mastodon admin

The thing that interested me most, however, was CUSTOM EMOJIS:

Mastodon - custom emojis

Finally, there’s various technical reports, and queries you can run from a technical point of view.

I have to say that I wasn’t expecting the moderation and admin side of Mastodon to be so… user-friendly. It’s incredibly easy and intuitive to use, although it does mean delving into the code if, say, you want to change the default background colour to orange!

The next thing to do is to experiment with Hubzilla, which is also mentioned on the Venn diagram earlier in this post. It’s important to experiment both technically and with users, and weigh all of these things against the principles that underpin Project MoodleNet.

Exciting times!


Main image by Slava Bowman used under a CC0 license

More on the mechanics of GDPR

Note: I’m writing this post on my personal blog as I’m still learning about GDPR. This is me thinking out loud, rather than making official Moodle pronouncements.


‘Enjoyment’ and ‘compliance-focused courses’ are rarely uttered in the same breath. I have, however, enjoyed my second week of learning from Futurelearn’s course on Understanding the General Data Protection Regulation. This post summarises some of my learning and builds upon my previous post.

This week, the focus was on the rights of data subjects, and started with a discussion about the ‘modalities’ by which communication between the data controller and processor, and the data subject take place:

By modalities, we mean different mechanisms that are used to facilitate the exercise of data subjects’ rights under the GDPR, such as those relating to different forms of information provision (in writing, spoken, electronically) and other actions to be taken when data subjects invoke their rights.

Although the videos could be improved (I just use the transcripts) the mix of real-world examples, quizzes, and reflection is great and suits the way I learn best.

I discovered that the GDPR not only makes provision for what should be communicated by data controllers but how this should be done:

In the first place, measures must be taken by data controllers to provide any information or any communication relating to the processing to these individuals in a concise, transparent, intelligible and easily accessible form, using the language that is clear and plain. For instance, it should be done when personal data are collected from data subjects or when the latter exercise their rights, such as the right of access. This requirement of transparent information and communication is especially important when children are data subjects.

Moreover, unless the data subject is somehow attempting to abuse the GDPR’s provisions, the data controller must provide the requested information free of charge.

The number of times my surname is spelled incorrectly (often ‘Bellshaw’) or companies have other details incorrect, is astounding. It’s good to know, therefore, that the GDPR focuses on rectification of individuals’ personal data:

In addition, the GDPR contains another essential right that cannot be disregarded. This is the right to rectification. If controllers store personal data of individuals, the latter are further entitled to the right to rectify, without any undue delay, inaccurate information concerning them. Considering the purpose of the processing, any data subject has the right to have his or her personal data completed such as, for instance, by providing a supplementary statement.

So far, I’ve focused on me as a user of technologies — and, indeed, the course uses Google’s services as an example. However, as lead for Project MoodleNet, the reason I’m doing this course is as the representative of Moodle, an organisation that would be both data controller and processor.

There are specific things that must be built into any system that collects personal data:

At the time of the first communication with data subjects, the existence of the right to object– as addressed earlier– must be indicated to data subjects in a clear manner and separately from other information. This right can be exercised by data subjects when we deal with the use of information society services by automated means using technical specifications. Importantly, the right to object also exists when individuals’ personal data are processed for scientific or historical research or statistical purposes. This is, however, not the case if the processing is carried out for reasons of public interest.

Project MoodleNet will be a valuable service, but not from a scientific, historical, or statistical point of view. Nor will the data processing be carrierd out for reasons of public interest. As such, the ‘right to object’ should be set out clearly when users sign up for the service.

In addition, users need to be able to move their data out of the service and erase what was previously there:

The right to erasure is sometimes known as the right to be forgotten, though this denomination is not entirely correct. Data subjects have the right to obtain from data controllers the erasure of personal data concerning them without undue delay.

I’m not entirely clear what ‘undue delay’ means in practice, but when building systems, we should build it with these things in mind. Being able to add, modify, and delete information is a key part of a social network. I wonder what happens when blockchain is involved, given it’s immutable?

The thing that concerns most organisations when it comes to GDPR is Article 79, which states that data subjects have legal recourse if they’re not happy with the response they receive:

Furthermore, we should mention the right to an effective judicial remedy against a controller or processor laid down in Article 79. It allows data subjects to initiate proceedings against data controllers or processors before a court of the Member State of the establishment of controllers or processors or in the Member State where they have their habitual residence unless controllers or processors are public authorities of the Member States and exercise their public powers. Thus, data subjects can directly complain before a judicial institution against controllers and processors, such as Google or others.

I’m particularly interested in what effect data subjects having the right “not to be subjected to automated individual decision-making” will have. I can’t help but think that (as Google has already started to do through granular opt-in questions) organisations will find ways to make users feel like it’s in their best interests. They already do that with ‘personalised advertising’.

There’s a certain amount of automation that can be useful, the standard example being Amazon’s recommendations system. However, I think the GDPR focuses more on things like decisions about whether or not to give you insurance based on your social media profile:

There are three additional rights of data subjects laid down in the General Data Protection Regulation, and we will cover them here. These rights are – the right not to be subjected to automated individual decision-making, the right to be represented by organisations and others, and the right to compensation. Given that we live in a technologically advanced society, many decisions can be taken by the systems in an automatic manner. The GDPR grants to all of us a right not to be subjected to a decision that is based only on an automated processing, which includes profiling. This decision must significantly affect an individual, for example, by creating certain legal effects.

Thankfully, when it comes to challenging organisations on the provisions of the GDPR, data subjects can delegate their representation to a non-profit organisation. This is a sensible step, and prevents lawyers become rich from GDPR challenges. Otherwise, I can imagine data sovereignty becoming the next personal injury industry.

If an individual feels that he or she can better give away his or her representation to somebody else, this individual has the right to contact a not-for-profit association– such as European Digital Rights – in order to be represented by it in filing complaints, exercising some of his or her rights, and receiving compensation. This might be useful if an action is to be taken against such a tech giant as Google or any other person or entity. Finally, persons who have suffered material or non-material damage as a result of an infringement of the GDPR have the right to receive compensation from the controller or processor in question.

Finally, and given that the GDPR applies not only across European countries, but to any organisation that processes EU citizen data, the following is interesting:

The European Union and its Member States cannot simply impose restrictions addressed in Article 23 GDPR when they wish to. These restrictions must respect the essence of the fundamental rights and freedoms and be in line with the requirements of the EU Charter of Fundamental Rights and the European Convention for the Protection of Human Rights and Fundamental Freedoms. In addition, they are required to constitute necessary and proportionate measures in a democratic society meaning that there must be a pressing social need to adopt these legal instruments and that they must be proportionate to the pursued legitimate aim. Also, they must be aiming to safeguard certain important interests. So, laws adopted by the EU of its Members States that seek to restrict the scope of data subjects’ rights are required to be necessary and proportionate and must protect various interests discussed below.

I learned a lot this week which will stand me in good stead as we design Project MoodleNet. I’m looking forward to putting all this into practice!


Image by Erol Ahmed available under a CC0 license

Weeknote 04/2018

This week I’ve been:

  • Sending out Issue #288 of my Thought Shrapnel newsletter. This one was called ‘Socially and emotionally unavailable’ and featured curated links from the Thought Shrapnel blog (where you can also sign up if you don’t yet subscribe!)
  • Making a snowman with my seven year-old daughter on the field near our house. It’s never really snowed enough in her lifetime to do so before!
  • Celebrating my son’s eleventh birthday. Time. Flies.
  • Continuing work on Project MoodleNet. This week, whiteboarding and system architecture (not quite ready to show the world yet), meetings, planning for a trip to Moodle HQ in Perth, Australia next month, starting a GDPR course, catching up with Learn Moodle Basics 3.4, and finishing off a series of posts on the project blog.
  • Recording, editing and releasing Episode 95 of the Today In Digital Education (TIDE) podcast with my co-host Dai Barnes. We entitled this episode ‘New Year, same old TIDE’ and discussed what we’ve been up to since the end of last year, family life, book recommendations, using smartphones wisely, GDPR, and more!
  • Renegotiating our mortgage and deciding on which car to go with next, as our current lease expires in March. After a 24-hour test drive of a Toyota C-HR, which is a very cool car, we’ve decided to go with the 2018 version of our current Toyota Auris Touring Sports, as it’s extremely practical for the kind of life my family leads.
  • Curating and scheduling Issue #25 of Badge News, a regular newsletter for the Open Badges community. It’s going to be hitting inboxes on the last Friday of the month from now on.
  • Looking after my family, who all managed to lose their voice due to some kind of cold this week.
  • Participating in the first Mozilla Open Leadership Map community call, led by Chad Sansing. It’s promising work, and I showed up to say hello to former colleagues and connect the work with other initiatives (both previous Mozilla ones and elsewhere).
  • Attending the Bett Show on Friday with Bryan Mathers, whose family also gave me a place to stay on Thursday night. It was good to see, amongst others, Sophie Bessemer, Graham Brown-Martin, Dawn Hallybone, Gavin Henrick, Paul Hutson, Tony Parkin, and Oliver Quinlan there.
  • Writing:

Next week I’m at home, working with Moodle from Monday to Thursday, and then planning with Bryan Mathers for upcoming work we’re doing on behalf of We Are Open Co-op with the Inter-American Development Bank in Washington D.C. next month.

css.php