What is Emoji ID?

One thing you may have seen in the prototypes and mockups for MoodleNet is something called ‘Emoji ID’. You might be wondering what that is, even if you’ve heard us refer to it in a presentation or at a workshop. In this post, it’s my aim to explain it in the simplest way possible.

Mastodon

The problem

MoodleNet is a decentralised social network. This means that, unlike Twitter, Facebook, Instagram, or other centralised social networks, you can join one of a number of ‘instances’. As it’s possible to join more than one instance, your username isn’t just, for example, @dajbelshaw but @dajbelshaw@mastodon.social or @dajbelshaw@scholar.social.

Think of it like email, which is also a decentralised system. You can’t just type someone’s username to send them a message, you also have to include the relevant domain name. So, for example, you can’t just enter ‘ibrahima’ but have to use ‘ibrahima@moodle.com’.

Back to social networks and let’s imagine that I’m looking for Mayel de Borniol, MoodleNet’s Technical Architect. Here’s what happens on Mastodon, which is kind of a decentralised version of Twitter:

Mastodon searching for 'Mayel'

Mayel’s got at least three accounts of which I’m aware. So which account should I use to start a conversation with him? If I get the wrong one he might not reply because it’s no longer in use, he uses it for other activities, or I’ve got the wrong Mayel.

Going further, what happens if someone deliberately sets up a parody, spoof, or catfishing account on a different instance but with the same username and profile picture? How do I know which one is the ‘real’ Mayel? Sure, I could perhaps try and memorise the longer username (e.g. @mayel@sunbeam.city) but that seems unwieldy.

Surely we can do better?

 

The idea

Earlier this year, on my personal blog, I proposed an idea for using ‘emoji triplets’ as identifiers in decentralised social networks. I’d already started using them to add a bit of personality to my username on both Twitter and Mastodon:

Mastodon: emoji triplets

Other people use them too:

Eylan Ezekiel Twitter profile Maddie Mastodon profile

This can aid with identifying someone, especially if they’ve got many accounts or a particularly common name. Humans are good at recognising patterns, especially with items numbering fewer than seven, so combinations of three emojis work well.

Of course, these examples simply involve people adding emoji to a text field such as their display name. There’s nothing to stop people adding the same emoji to their profile as someone else. However, what if there was a separate field for the three emoji that are unique to that user? What if, once that user chose a particular combination of emoji, no-one else could?

 

The implementation

Every platform, whether it’s an email service, social network, or something else, has to have a way of identifying individual users.

Simplifying things a bit, anything you do on a platform involves linking a particular user with a particular action. In the code this is usually done through numbers, so for example user ‘783’ followed user ‘392’. Meanwhile, in the user interface you see something like ‘@dajbelshaw@mastodon.social’ followed ‘@mayel@sunbeam.city’.

Mastodon profile - labelled

In other words, ‘@dajbelshaw@mastodon.social’ is a fixed alias of user ‘783’. While I can change my Avatar and Display name as often as I like, I can’t usually change my Username. If I decide that I instead want to be @doug@mastodon.social, then I have to register a new account.

So, instead of email-like usernames that are long and difficult to remember, what if there was a separate field for emoji triplets? All of a sudden this become not just a decorative feature but something like an ‘Emoji ID’. There are several advantages to this:

  • Quick and obvious way to recognise a user even if they change their display name and/or avatar
  • Provides a standard, searchable way for users to customise their profile
  • A first step towards ‘nomadic identity’ (i.e. a way to move from one instance of the network to another without losing your followers)?

Here’s how it works:

  • User goes to sign up at a MoodleNet instance which is connected to Moodle HQ’s API
  • MoodleNet instance offers up a random, unique, and currently unused emoji ID to the user as part of the sign-up process. They can accept this, or choose their own so long as it hasn’t already been taken by another user.
  • Once the user has chosen their emoji ID it is registered both at the MoodleNet instance level and by the Moodle HQ API service, which makes it unique across all instances.

 

Additional information

Whether it’s to follow them, find the collections they’ve curated, or get in touch, users can be found by searching either for their display name or Emoji ID.

Using Emoji IDs opens up a whole world of possibilities. For example, one of the advantages for organisations using Moodle’s Branded Moodle Mobile App (BMMA) is that, when logging in, users no longer have to remember and type in the the exact domain name of their Moodle instance. Emoji ID could provide a similar solution for MoodleNet users, who then only have to enter three emoji, not (for example) @username@moodlenet.university.edu.

We could also help indicate which instance a user is on by reserving the first emoji for that purpose. So, for example, 💥👻💪 and 💥🎄🐻 would both be users on the same instance. Perhaps, similar to Sony’s plan for PlayStation users to be able to change their usernames for a fee, you might be able to associate a new Emoji ID to your account at a future time.

 

FAQs

Before publishing this post, I shared several drafts with the team and various networks. Here’s some questions I received. Some of these are technical.

What’s the theoretical limit of unique emoji IDs?

Unicode 11.0 has 1644 unique emoji. So according to my calculations, there are 739,198,844 permutations. However, we may not use all the emoji as some are flags, Japanese symbols, etc. Either way, it’ll be a while before we have to worry about running out of unique Emoji IDs!

Doesn’t Emoji ID (and in particular a Moodle HQ API) break federation?

It doesn’t ‘break’ federation, it’s just a layer on top. Let’s say there’s a MoodleNet instance that isn’t connected to the HQ API. If a user on that instance wants to find a user or community on a different instance, they’d need the Emoji ID and domain name, or simply the URL.

Could I ever change my Emoji ID?

Theoretically, there’s nothing stopping us adding multiple Emoji IDs to a single backend identifier. So user ‘783’ might have several different Emoji IDs associated with it. We’d only ever show one, but the others would be reserved to prevent anyone else using them.


Many thanks to Mayel de Borniol, Emma Cragg, Noel De Martin, Brent Flanders, and Oliver Quinlan for their comments on earlier drafts of this post. Anything that leaves you confused or befuddled remains my fault. (Sorry!)

Provide feedback on our draft Contributor Covenant!

Update: the consultation period is now closed — thanks for your comments!

Community

A ‘Contributor Covenant‘ is a code of conduct for contributors to Open Source projects such as MoodleNet. The original version, adopted by over 40,000 projects, is based on the work of Coraline Ada Ehmke.

We have been inspired by this and other approaches to create a draft Contributor Covenant for MoodleNet. It will be used for:

  • Code contributions and interactions between community members
  • Beta testing (after which there will be a user agreement)
  • Security reviewers

Before we call this ‘version 1.0’ we would like feedback on our draft Contributor Covenant from the Moodle community. Here’s how to do it:

  1. Read the entire document
  2. Think about a traffic light system for giving feedback:
    • What’s good? (green)
    • Do you have any questions? (amber)
    • Does anything concern you? (red)
  3. Select the relevant text and ‘add comment’

This document is open for feedback over a two-week period from Wednesday 21st November to Wednesday 5th December 2018.

Link to draft Contributor Covenant: http://bit.ly/2FvqrM0


Image by rawpixel used under the terms of an open license

An interview with Mary Cooch, Moodle’s Community Educator

We took the opportunity to sit down with Mary Cooch, Moodle’s Community Educator, and ask her questions about MoodleNet. With her deep experience of all things Moodle, we were interested in Mary’s perspective on what’s gone before and what’s coming next…


Mary Cooch1. Moodlers will know you best as Moodle’s Community Educator and your very visible work with the Learn Moodle Basics Moot, on the moodle.org forums, and at MoodleMoots. However, you also do a lot of work behind the scenes, including documentation and the existing moodle.net service. Could you explain a little bit about how you got involved with that and what it currently entails?

Shortly after I started to work full time for Moodle HQ, our CEO and founder, Martin Dougiamas, asked me to curate the content submitted to Moodle.net. This involves regularly checking the Moodle.net site to see which courses and other individual items are awaiting moderation. Every single item is downloaded and manually inspected. I look at the courses to see if they meet our course approval criteria and if they do, I make them publicly available.  (These are courses both which you can download and adapt for your own site, or courses into which you can enrol.) The same applies to individual items –  I add them to a test Moodle site to check that they work correctly and that their content is acceptable. New courses on Moodle.net then show up in the Resources feed on the front page of Moodle.org.

2. Some people might wonder why we’re building a new MoodleNet when Moodlers can already share courses via moodle.net. What are your thoughts on that?

Did you know that actually, the concept behind Moodle.net and the site itself date from before 2010? Things move on, technology moves on, and with people doing so much now from their smartphones, I think it’s a good idea that we have a revamp, and also get teachers sharing from their mobiles.

One issue with the current set up has always been that it’s not so intuitive how to submit your course or your content. We used to have a “Publish” button and people would mistakenly believe that by pressing this button it meant their own private course would be made accessible to their students, rather than share with the world. We’ve changed that now, so that it says “Share”. (See  What does sharing a Moodle course mean?) Unfortunately, many courses are still submitted in error.

We have some useful content uploaded – quiz questions, user tours, theme  and database presets, glossary entries, competency frameworks etc – but it would still be great if we had more educators sharing more content! It doesn’t have to be a whole course – maybe the thought of downloading and having to adapt a whole course is a bit overwhelming. I’d love it if you could simply go to Moodle.net, search for, say, a revision activity in your subject area, quickly find a recommended one, and add it  easily to your Moodle. In time for your class!

3. Social resource sharing via curated collections is only the first stage for MoodleNet. What would you like to see next?

From what I’ve seen it all looks very exciting. I just want it to be a hive of activity, an interesting place to hang out, a treasure trove of Moodle content!


Our thanks to Mary for taking the time to answer our questions. As you can see, MoodleNet is both an evolution from what has gone before and an exciting departure based on new thinking and technologies.

Questions? Add them in the section below, for either Mary or the MoodleNet team!

Introducing Alex Castaño, our new MoodleNet backend developer!

Alex collage

Work on MoodleNet continues at a rapid pace as we draw closer to the first beta release, scheduled for January 2019. As part of those efforts, we’re delighted to welcome Alex Castaño as a backend developer to the team!

Alex is Spanish and grew up in Andalucia, went to university in Seville, and now lives and works from Barcelona. He joins us on an initial six-month contract to work with Mayel de Borniol, MoodleNet’s Technical Architect, to create the infrastructure for a decentralised, federated, resource-centric social network for educators!

We asked Alex a few questions to find out more…

We would love to hear a bit about your work history?

I realised that using computers and programming were my passions when I was very young. Since then, I have been using only free software in my personal and professional life. For this reason, I’m really happy to collaborate in a project so open like MoodleNet on daily basis.

My professional career has been very varied: I created my own business, I’ve helped to “start up” startups, and I’ve fixed scalability problems in very consolidated companies. Now, I’m looking forward to creating an open source project which makes a difference.

What do you love about what you do?

One of the best sensations you can experience is to see how your work makes other people’s lives simpler, more enjoyable or just better. I’m hooked on that feeling.

In addition, I absolutely love learning new things. It is incredible how people are continuously creating and developing new stuff to make computer engineering more interesting.

What are your interests outside of work?

I like doing any kind of sport: football, tennis, gym, hiking, kitesurfing… I’m a regular reader and, of course, life wouldn’t be the same without travelling around the world.

Where is your favourite place in the world, and why?

“Sevilla tiene un color especial”, what means, “Seville has a special colour”. A lovely city with a lot of history. It has a nice river and bridges, absolutely incredible places to have a good meal, beautiful buildings and palaces, people are very open and kind, and last but not least, it has “Ramón Sanchez-Pizjuan” the stadium of Sevilla F.C. my football team!


If you would like to find out more about MoodleNet, and get involved in the project, please check out moodle.com/moodlenet.

Front-end development workshop with Outlandish (19th-21st September 2018)

Update: we’ve now crated a wiki page overview for this workshop!

Whiteboard

This week, the MoodleNet team were in London to work with Outlandish for a workshop on front-end development. Doug Belshaw (MoodleNet Lead) and Mayel de Borniol (Technical Architect) worked with Kayleigh Walsh (project manager), Sam Gluck (developer), and Rob Cornish (designer) on various aspects of how MoodleNet is going to work, look, and feel.

Given that we went into the workshop with a number of assumptions, it was useful to get these out onto the table. Doing so in an open way allowed us to challenge these assumptions in productive ways, leading to some useful decisions.

Everything from the three-day workshop can be found on our GitLab issues board, the highlights of which are perhaps:

We’re planning to continue working with Outlandish around front-end development as we lead up to the beta release, scheduled for January 2019. This will lead to a couple of new front-end development milestones, which we’re currently thrashing out.

Excitingly, next week we’ll be welcoming a new member of our team. More on that soon!

GitLab issue board

GitLab overview

As mentioned previously, we’ve moved away from Trello cards to keep track of the MoodleNet project. The best link to get an overview of all the issues we’re currently working on at the moment can be found at this link or by clicking on the image above.

We’ve also updated the overview slide deck to v0.7, accessible here.

As ever, you can find everything you need relating to MoodleNet at https://moodle.com/moodlenet

Keeping track of and contributing to MoodleNet

MoodleNet architecture of participation v2

Product management is a delicate balancing act between allowing enough ‘wiggle-room’ for innovation while imposing enough discipline to get things done. After all, scope creep applies just as much to the tools we choose to use to complete the project as the output of the project itself.

We’ve been using Trello to keep ourselves organised since the start of the MoodleNet project. While we really like and value that platform, we’ve made the decision to take a different approach for the next stage of the project.

Going forward we’re going to streamline things a little by using the following platforms:

  • Teamwork.com – internal updates, planning, and potentially sensitive information (Moodle HQ members only)
  • Changemap – community-suggested ideas and features
  • Moodle.org – discussions with the Moodle community
  • GitLab – contribute code and find out more about the technical side of MoodleNet

The Trello board we were using remains as an archive of the first five sprints. As ever, the canonical URL for the project (i.e. the one to share) is moodle.com/moodlenet.


Note: we’ve updated the Contributing page on the wiki to reflect these changes.

We’re hiring a Backend Developer for the MoodleNet project!

Now that we’ve made some progress on defining what the first version of MoodleNet will look like and how the ActivityPub-based technical architecture will work (using the Elixir/Erlang stack on the back-end), we have a unique opportunity for a developer to build the federated back-end for MoodleNet.

This is a flexible position and can be based remotely, or out of the new Moodle office in Barcelona. View the job listing for details, and please pass this along to any developer you know who might be interested.