Mastodon social networking

(Ben McGinnes) #1

So, have we considered running a Mastodon instance?

It looks very much like what Twitter should have been and it’s very piratical in that it’s federated.

(Tim Challis) #2

Oh please tell me this was a random thought! Brendan’s ghost must be giggling himself silly:

(Peter Fulton) #3

We know that he’s used it for some time, but I don’t recall him actively promoting it for our use. I could be wrong, but like I said - I don’t recall.
There’s no mention of it anywhere on our wiki, so this would suggest he never brought it up in any meetings when he was on council.

I think our priority would be to find and develop an alternative to facebook. Shit’s getting real over there, especially given the Cambridge Analytica fiasco.

(Ben McGinnes) #4

It was a little bit random.

(Ben McGinnes) #5

I’m fairly sure that’s what Diaspora tried to do and it pretty much failed.

(Tim Challis) #6

Levity aside I think this is an idea with merit.

(Ben McGinnes) #7

Also, it’s built with the same kind of back-end as Discourse is (i.e. Ruby on Rails, ReactJS, JSON data interchange, the usual hit parade of web protocols); so have an IT crew with enough familiarity to at least equal any other node out there.

Amazingly that does not include me … but I have been looking at the underlying protocols (ActivityStream and ActivityPub) to see about doing other things with it. Which led me to this.

(Tim Challis) #8

Maybe I am too out of date to fully appreciate this but interested on the basis if @Ben is it is likely worthwhile.

Would you mind further expanding on the topic for the ignorant? i.e. is this framework or application?

(Ben McGinnes) #9

The two protocols, ActivityPub and ActivityStreams, while detailed are very simple to actually implement at layers 6 and 7. I’d be very surprised if any implementation decided to reimplement layers 4 and 5 since that’s exactly why people use high level languages with networking libraries or modules in the first place (as Mastodon does with Ruby on Rails).

Anyway, both protocols essentially boil down to using HTTP/S to send and receive JSON in real or near real time in order to do pretty much anything you’d normally see on any kind of social media site.

Mastodon adheres to this standard in order to guarantee the instances can all continue to talk to each other and they won’t break that because that’s the realappeal. Which means anything that can provably implement ActivityPub and ActivityStream, can also speak to a Mastodon instance just as long as it also knows the specific types of data Mastadon sends and receives.

The link in my previous post was to a near complete implementation of ActivityPub and ActivityStreams in the Guile implementation of Scheme. Though I normally play with Python, I’m also normally doing so in [Emacs], which lends itself to any lisp dialect, like Scheme, very well. It’s a fairly natural extension to move from Emacs (and Emacs Lisp) to Scheme (or Common Lisp, but most people don’t do that these days because they don’t think of coding on a PDP-11 in 1975 as “the good old days” … or even remember it at all).

Anyway, the real benefit here is that even though Mastadon does not provide any means of providing truly end-to-end encrypted communications for users of any instance, with the underlying ActivityStreams protocol it would be quite possible to add that at some point.

If I’m feeling particularly masochistic I might even demonstrate it with GPGME and Python at some point.