After spending a long time researching various options for MoodleNet last year, I recently revisited the Fediverse with fresh eyes. I enjoy using Mastodon regularly, and have written about it here before, so didn’t include it in this roundup.
Here’s some of the social networks I played around with recently, in no particular order. It’s not meant to be a comprehensive overview, just what grabbed my attention given the context in which I’m currently working. That’s why I’ve called it a ‘field trip’ 😉
Weird name but pretty awesome social network that’s very popular in Japan. Like MoodleNet and Mastodon, it’s based on the ActivityPub protocol. In fact, if you’re a Mastodon user, it will feel somewhat familiar.
Things I like:
Drive (2TB storage!)
Lots of options for customisation, including ‘dark mode’
Inspired by what3words, I want to share an idea that solves some problems I’ve been thinking about in the context of MoodleNet:
With services that allow users to change usernames and avatars an infinite number of times, how do you know who you’re really talking to?
On decentralised social networks such as Mastodon, users on different instances can have the same username. This is confusing when trying to @ mention someone.
If what3words can describe everywhere on the globe using three words, then we can describe all users of a social network using three emojis.
As I’ve explained before, LessPass (a deterministic password generator) uses emoji triplets to simultaneously obfuscate your password while providing a check that you’ve entered it correctly.
In addition, as my colleague Mayel pointed out when I shared the idea with him, the first emoji of the triplet could indicate which instance you’re on.
As you can see above, I’ve actually already added three emojis next to my username on both Twitter and Mastodon. I think it serves as a really nice, quick, visual indication that you’re dealing with the person you expect.
ActivtyPub is a protocol that allows for decentralised, federated social networks. We’re experimenting with it as potentially the base on which we can build Project MoodleNet, “a new open social media platform for educators, focused on professional development and open content”.
Mastodon is great, but purposely limited in features to keep things easy for users, moderators, and administrators. Hubzilla, on the other hand, gives users plenty of options.
Hubzilla is a free and open source set of web applications and services running on a special kind of web server, called a “hub”, that can connect to other hubs in a decentralised network we like to call “the grid”, providing sophisticated communications, identity, and access control services which work together seamlessly across domains and independent websites. It allows anybody to publicly or privately publish content via “channels”, which are the fundamental, cryptographically secured identities that provide authentication independently of the hubs which host them. This revolutionary liberation of online identity from individual servers and domains is called “nomadic identity”, and it is powered by the Zot protocol, a new framework for decentralised access control with fine-grained, extensible permissions.
What does that mean in practice?
From the practical perspective of hub members who use the software, Hubzilla offers a variety of familiar, integrated web apps and services, including:
social networking discussion threads
cloud file storage
calendar and contacts (with CalDAV and CardDAV support)
webpage hosting with a content management system
While all of these apps and services can be found in other software packages, only Hubzilla allows you to set permissions for groups and individuals who may not even have accounts on your hub! In typical web apps, if you want to share things privately on the internet, the people you share with must have accounts on the server hosting your data; otherwise, there is no robust way for your server to authenticate visitors to the site to know whether to grant them access. Hubzilla solves this problem with an advanced system of remote authentication that validates the identity of visitors by employing techniques that include public key cryptography.
In this post, I want to outline some of Hubzilla’s features and discuss how they may be useful to Project MoodleNet. This is not meant to be comprehensive, by any means, just my first impressions.
1. Configurable UX depending on user technical knowledge
When you set up your account in Hubzilla, you’re presented with this drop-down menu asking you to indicate your technical skill level. The lower you set this, the simpler the user interface becomes. I like this because, as with any kind of community, there are more and less technical educators who will be using Project MoodleNet.
2. WebDAV integration
Although not strictly accurate, I set my technical skill level as ‘Wizard’ to see all of the options available in Hubzilla. This box appeared informing me of my WebDAV address:
Web Distributed Authoring and Versioning (WebDAV) is an extension of the Hypertext Transfer Protocol (HTTP) that allows clients to perform remote Web content authoring operations.
The WebDAV protocol provides a framework for users to create, change and move documents on a server. The most important features of the WebDAV protocol include the maintenance of properties about an author or modification date, namespace management, collections, and overwrite protection. Maintenance of properties includes such things as the creation, removal, and querying of file information. Namespace management deals with the ability to copy and move web pages within a server’s namespace. Collections deal with the creation, removal, and listing of various resources. Lastly, overwrite protection handles aspects related to locking of files.
Many modern operating systems provide built-in client-side support for WebDAV.
This is handy stuff, especially given that NextCloud, which is a great service for files, calendars, contacts, and other applications, also supports ActivityPub and WebDAV!
3. Inbuilt calendar
Talking of calendars, Hubzilla has one built-in under ‘Events’. It’s pretty basic, but it’s easy to create entries and import/export existing calendars. I assume that there’s a way to link this up with WebDAV, but it wasn’t obvious in the time I spent tinkering.
4. Other apps
Other apps can be added and removed by users in a range of categories. All the basic things you’d want are there, and new apps can be developed and added in a straightforward way.
5. Multiple profiles
One thing I immediately liked about Hubzilla was the ability to create multiple profiles, should the channel owner allow. This permits users to create profiles that demonstrate different facets of their personality, and perhaps share information with certain groups that they wouldn’t share publicly.
The only current downside to this was that I couldn’t find a way to have different images for different profiles. I guess these are sub-profiles, but it would be nice with Project MoodleNet to have different avatars for different facets of your identity within the system. Something to test out, for sure.
Hubzilla is built around ‘channels’ that you can discover and add via any compatible instance. So, just as with Mastodon, people can find and add you no matter which server they’re using.
7. Adding content
I tested out adding content into a channel by posting a link to a resource I found on OER Commons. There’s no visual editor, but the channel owner does get to choose between wiki markup or Markdown. There are buttons which generate the necessary code for users, as Mediawiki does by default.
8. Responding to posts
As you’d expect, because it’s 2018, you can respond to posts not only with a Facebook-inspired ‘thumbs up’ but also with a range of emojis. In addition, there are a range of options, including ‘Poke’, ‘Share This’ and starring the post to come back to.
9. Mastodon vs. Hubzilla?
I asked people, ironically enough on Mastodon, what they thought about Hubzilla. I some quick responses, and you can see the thread here. It seems like Hubzilla is a lot more flexible than Mastodon, but it’s by default relatively complex, which can put less technical people off a bit.
We’d obviously do a deeper dive if and when we decide to experiment further, but Hubzilla’s code is on GitHub and the repository seems to be pretty active. They’re on v3.0 and, according to some quick digging, the first release was in August 2015. There’s only 47 nodes with 847 users at present, however, compared with over 1 million users of Mastodon across almost 1,500 instances (source).
Hubzilla has some very nice features which we would definitely want to implement with Project MoodleNet. Whether or not it’s the best base to start from is a decision we’ll have to make as a team, but I’ve enjoyed experimenting!
One of the great things about the internet, and one of the things I think we’re losing is the ability to experiment. I like to experiment with my technologies, my identity, and my belief systems. This flies in the face of services like Facebook that insist on a single ‘real’ identity while slowly deskill their users.
I’ve been messing about with ZeroNet, which is something I’ve mentioned before, and which gets close to something I’ve wanted now for quite some time: an ‘untakedownable’ website. Whether it’s DDoS attacks, DNS censorship, or malicious code injection, I want a platform that, no matter what I choose to say, will stay up.
To access sites via ZeroNet, you have to be running the ZeroNet service. By default, you view a clone of the site you want to visit on your own machine, accessed in the web browser. That means it’s fast. When the site creator updates the site/blog/wiki/whatever, that’s then sent to peers to distribute. It’s all lightning-quick, and built on Bittorrent technlogy and Bitcoin cryptography.
The trouble, of course, comes when someone who isn’t yet running ZeroNet wants to visit a site. Thankfully, there’s a way around that using a ‘proxy’ or bridge. This is ZeroNet running on a public server for everyone to use. There’s several of these, but I’ve set up my own using this guide.
Finally, if you’re thinking, “What is this?! It’ll never catch on…” then I’d like to remind you about technologies that people didn’t ‘get’ at first (e.g. Twitter in 2007) as well as that famous Wayne Gretszky quotation, “I skate to where the puck is going to be, not where it has been”.
As I write this, I’m in an apartment in Barcelona, after speaking and running a workshop at an event.
On Sunday, there was a vote for Catalonian independence. It went ahead due to the determination of teachers (who kept schools open as voting centres), the bravery of firemen and Catalan police (who resisted Spanish police), and… technology.
As I mentioned in the first section of my presentation on Wednesday, I’m no expert on Spanish politics, but I am very interested in the Catalonian referendum from a technological point of view. Not only did the Spanish government take a heavy-handed approach by sending in masked police to remove ballot boxes, but they applied this to the digital domain, raiding internet service providers, blocking websites, and seizing control of referendum-related websites.
Yet, people still accessed websites that helped them vote. In fact, around 42% managed to do so, despite all of the problems and potential danger in doing so. By way of contrast, no more than 43% of the population has ever voted in a US Presidential election(see comments section). There have been claims of voting irregularities (which can be expected when Spanish police were using batons and rubber bullets), but of those who voted, 90% voted in favour of independence.
People managed to find out the information they required through word of mouth and via websites that were censorship-resistant. The technologists responsible for keeping the websites up despite interference from Madrid used IPFS, which stands for Inter Planetary File System. IPFS is a decentralised system which manages to remove the reliance on a single point of failure (or censorship) while simultaneously solving problems around inefficiencies caused by unecessary file duplication.
The problem with IPFS, despite its success in this situation is that it’s mainly used via the command line. As much as I’d like everyone to have some skills around using terminal windows, realistically that isn’t likely to happen anytime soon in a world of Instagram and Candy Crush.
Instead, I’ve been spending time investigating ZeroNet, which is specifically positioned as providing “open, free and uncensorable websites, using bitcoin cryptography and bitorrent network”. Instead of there being ‘gateways’ through which you can access ZeroNet sites through the open web, you have to install it and then run it locally in a web browser. It’s a lot easier than it sounds, and the cross-platform functionality has an extremely good-looking user interface.
I’ve created a ‘Doug, uncensored’ blog using ZeroNet. This can be accessed via anyone who is running the service and knows the (long) address. When you access the site you’re accessing it on your own machine and then serving it up to — just like with bittorrent. It’s the realisation of the People’s Cloud idea that Vinay Gupta came up with back in 2013. The great thing about that is the websites work even when you’re offline, and sync when you re-connect.
As with constant exhortations for people to be more careful about their privacy and security, so decentralised technologies might seem ‘unnecessary’ by most people when everything is going fine. However, just as we put curtains on our windows and locks on our doors, and sign contracts ‘just in case’ something goes wrong, so I think decentralised technologies should be our default.
Why do we accept increased centralisation and surveillance as the price of being part of the digital society? Why don’t we take back control?
Again, as I mentioned in my presentation on Wednesday, we look backwards too much when we’re talking about digital skills, competencies, and literacies. Instead, let’s look forward and ensure that the next generation of technologies don’t sell us down the river for advertising dollars.
Have a play with ZeroNet and, if you want to really think through where we might be headed with all of this, check out Bitnation.
Back in 2011, when I’d just discovered Open Badges, I led a semester of learning on the concept. Sometimes it’s not enough to play around the edges; you have to jump in with two feet to understand what something’s about. That immersion confirmed my initial thoughts, and I’ve spent the last six years evangelising and advocating for digital credentials based on that particular open standard.
The same was true back in 2007 when I joined Twitter. I thought that this was something revolutionary, something that could not only change the way that professional development was done in schools (I was a classroom teacher at the time) but literally change the world. Unlike Open Badges, of course, Twitter is backed by a for-profit company that floated on the stock exchange a few years ago. It’s a ‘free’ service that requires on advertising to provide shareholder value.
It was easy to forget all that in the early days, as we were giddy with excitement, connecting with like-minded people around the world. Pre-IPO, Twitter seemed like the good guys, being seen as a key tool in people organising to overthrow repressive regimes. In those days, it was easy to use one of a number of Twitter clients, and to route your traffic around the world to avoid censorship. Now, not so much.
While I’m aware that this isn’t the most rigorous of ‘tests’, it did set me off on an interesting path. As you can see at the top right of my results, I came out as favouring Libertarian Socialism. I was surprised, as libertarianism is something I usually explicitly argue against.
I decided to do some digging.
The Wikipedia article for Libertarian Socialism is pretty fascinating and, as you’d expect from that site, sends you off on all kinds of tangents via the numerous links in the text. Given that I had an upcoming transatlantic flight coming up, I decided to make use of Wikipedia’s Book Creator. Within five minutes, I had a 500-page PDF on everything from anarcho-syndicalism to the Zapatista Army of National Liberation.
To cut a long story short, my current thinking is that Mutualism seems to best describe my thinking. I’m re-reading Proudhon’s What is Property?. He’s a little naive in places, I think, but I like his style.
Anyway, this is all to say that we need to re-decentralise the Web. I wrote a few years ago about the dangers of newsfeeds that are algorithmically-curated by advertising-fuelled multinational tech companies. What we need to do is quickly replace our reliance on the likes of Facebook and Twitter before politicians think that direct digital democracy through these platforms would be a good idea.
So I’m experimenting with Mastodon. It’s not radically different from Twitter in terms of look and feel, but it’s what’s under the hood that’s important. The above image from Aral Balkan outlines his approach to ‘ethical design’ — an approach ensures things look good, but also respects us as human beings.
Decentralised systems based on open standards are really our only hope against Venture Capital-backed ‘software with shareholders’. After all, any promising new startups that aren’t decentralised tend to get gobbled-up by the supermassive incumbents (see WhatsApp, Instagram). But to get to scale — which is important in this case, not for shareholder value, but for viability and network effects — people have to use these new platforms.
So that’s what I’m doing. During May, a month when my Twitter timeline will be full of UK General Election nonesense, I’m using Mastodon. The only things I’ll be posting to Twitter are links to things I’ve written. If you’d like to join me, head here, choose an ‘instance’ (I’m on mastodon.cloud) and sign up. You can then add me: mastodon.cloud/@dajbelshaw. As in the early days of Twitter, one of the easiest ways to find good people to follow is to find ‘nodes’. I’ve found Anil Dash (@anildash) to a good starting point.
I look forward to seeing you there. It’s a learning experience for me, but I’m happy to answer any questions below!