The Changelog: Software Development, Open Source - Join the federation?! Mastodon awaits... (Interview)
Episode Date: September 19, 2018We talked with Eugen Rochko, the creator of Mastodon, about where Mastodon came from the problem it aimed to solve. How it’s not exactly Twitter alternative, although that's its known claim to fame.... Why it's probably not going anywhere. The ins-and-outs of federation, getting started, running an instance, why you would want to — cool stuff you’ve never considered could be built on top of Mastodon. And finally, the story behind naming posted content a “toot”.
Transcript
Discussion (0)
Bandwidth for Changelog is provided by Fastly. Learn more at fastly.com. We move fast and fix
things here at Changelog because of Rollbar. Check them out at rollbar.com and we're hosted
on Linode servers. Head to linode.com slash changelog. This episode of the Changelog is
brought to you by Hired. One thing people hate doing is searching for a new job. It's so painful
to search through open positions on every job board under the sun. The process searching for a new job it's so painful to search through open positions on every
job board under the sun the process to find a new job is such a mess if only there was an easier way
well i'm here to tell you that there is our friends at hired have made it so companies send
you offers with salary benefits and even equity up front all you have to do is answer a few questions
to showcase who you are and what type of job you're looking for. They work with more than 6,000 companies,
from startups to large publicly traded companies in 14 major tech hubs in North America and Europe.
You get to see all of your interview requests. You can accept, reject, or make changes to their
offer even before you talk with anyone.
And here's the kicker, it's totally free.
This isn't going to cost you a thing.
It's not like you have to go there and spend money to get this opportunity.
And if you get a job through Hired, they're even going to give you a bonus.
It's normally $300, but since you're a listener of the changelog, they're going to give you $600 instead.
Even if you're not looking for a job, you can refer a friend and Hired will send you a check for a thousand three hundred and thirty seven dollars when they accept the job. As you can see, Hired makes it way too easy. Get started at Hired.com slash changelog.
All right. Welcome back, everyone.
This is the ChangeLog, a podcast featuring the hackers, the leaders, and the innovators of software development.
I'm Adam Stachowiak, editor-in-chief of ChangeLog.
On today's show, Jerry and I are talking to Eugene Rochko, the creator of Mastodon.
We cover where Mastodon came from, the problem it aimed to solve, how it's not exactly a Twitter alternative, although that
is its known claim to fame,
why it's probably not going anywhere,
the ins and outs of Federation,
getting started, running
an instance, why you'd want to,
cool stuff you've never considered could be built
on top of Mastodon, and finally
the story behind naming posted
content a toot.
So Eugene, let's start with the start of Mastodon. Where did this come from and when did it happen
and what problems were you trying to solve? I started developing Mastodon when I was studying
computer science at uni. It was around March 2016 and it was a sort of throwaway project for me at
the start because I was just curious to play around with the technology and I
wasn't really sure that it would go anywhere. I mean the situation around
Twitter was a little bit different at the time, it wasn't so obvious where things were
gonna go, to put it that way, so it was less about how bad Twitter was and more about principles
and interesting technology.
So I've been aware of the existence of federated social networks for a few years.
Back in 2010 I think was the first I heard of them from a friend
and they were used to discuss that technology and we used to even post on
Identica and which was the federated network at the time that's what it was
called. I mean back in 2010 it was kind of a promising technology, actually, because they had support from Google.
Google was developing their own social network, which was the predecessor of Google+, and it was a thing called Google Buzz.
And they actually had a hand in developing some of the protocols that were later used in Identica,
which was later renamed to StatusNet, which would later become GNU Social.
And so in March 2016, I just wanted to check, well, how is that GNU Social thing doing right now?
And I saw that it was still alive, but it obviously looked kind of awful visually.
So I was like, yeah, I like using TweetDeck, I kind of want to make an interface for it
that works like TweetDeck and that looks good and maybe people will switch.
But I didn't have any big ambitions about that.
I just thought I'd make something that people who are really used to new social would just
switch to. I wasn't expecting anyone from outside that circle to make a jump.
But I soon found that NoSocial had a rather arcane code base,
very old-style PHP, and I just shuddered of decided to try starting from scratch.
And so I started.
The UI became kind of like a secondary thought.
I started developing in Ruby and I started with an API first approach.
The first few months that Mastermind existed, I was using it from the terminal using curl.
Well, that's quite a long story about just March, isn't it? When I graduated from university, I had the opportunity to just
sort of have a break and do whatever I wanted for a while before I needed to start searching for a
new job. So, because I actually had like a freelance gig at the time.
So I decided to make an interface for Mastodon
and finish it and see where it goes and start a Patreon for it.
In the first few months of that, the Patreon was really low,
but it was more than I expected.
It was like, I don't know, 20 bucks.
And then in November 2016 is when the interface was ready enough that I posted a link to it
on Hacker News. And that was the first time Mastodon actually got users.
To be fair, there were users before that, just because Mastodon was part of the
Ostetos network, which was also part of Gnosocial, Frandica, etc. It's that
protocol that unites all those platforms.
But Mastermind itself had, I think, one or two users at the time.
Probably my friend, Trav, who just made an account.
He didn't think it would go anywhere.
He just wanted to, what do you call it?
Just play along with me.
Yeah, but in November was the first taste of the fact
that there was actually a niche for this kind of thing
and that there was a zeitgeist for a Twitter alternative.
And the first wave of users was very technical.
So, you know, obviously people from Hacker News.
And that was when I got the first feedback
and started developing according to feedback.
And then, I don't know, the rest is history.
Well, it's a bit interesting to me that it started not as an answer to Twitter,
but as really you, based on principles that you learned,
really kind of messing around with federated technologies
more than anything else.
Because it seems very much like an answer to Twitter,
and it's definitely pitched that way now. But it sounds like you kind of backed into that a
little bit yeah uh i mean the ambitions grew with more success i've put it that way um when i noticed
that it was actually getting popular you know i wasn't satisfied with just being a niche thing anymore. So, you know, if you have
the opportunity to make a real alternative to a big platform and for it to become the future of
social networking, well, you don't really want to pass up the opportunity. So yeah, nowadays,
it really is a Twitter alternative, but not in the way that it's specifically made as a, how would I put it,
a faux Twitter, like a Twitter clone. It's not that. It's never been that. It works this way
just because it's how it felt natural to me as the Twitter user, you know? So like from years of using Twitter before,
this is what I would have expected from a social media platform.
Right.
I think what's interesting about Twitter is that like it's become utility, right?
Like they originally opened up the question,
which was how Twitter began similar in nature to yours,
like just kind of accidental.
Like I'm sure that they didn't think they would build the business they built today.
Their ambitions grew over time as success grew.
It originally began because it wanted to answer the question of what's happening right now
for you.
Like, what are you doing right now?
And that was either delivering a pizza for delivery drivers or whatever in a messaging
system.
But now it's become so popular that it's become utility.
And I think once you get to utility status, that's when we have to start breaking down the walls of corporate interests in that.
And that's where I think maybe your angle is with Mastodon.
Is that correct or somewhat accurate?
I'm not sure.
Could you elaborate what you mean by corporate interests?
Well, Twitter's owned and operated by one entity.
It's not federated.
Whereas Mastodon is a protocol.
It's a framework. There's a lot of opportunity. It's one entity. It's not federated. Whereas Mastodon is a protocol. It's a framework.
It's, you know, there's a lot of opportunity.
It's open source.
It's free.
You know, it has freedoms that Twitter does not have.
But the point I'm trying to make is it's become a utility.
And so it's become something that pretty much a good majority of the world relies upon to share real-time information.
You know, it's a network. It's a social network. But above that, it's to share real-time information you know it's a network
it's a social network but above that it's also just real-time communication i don't think those
things are mutually exclusive in fact i'd say it's exactly the same thing i think that social
networks are a utility i mean they're indispensable nowadays um you need them for work you need them for friendships and the fact that
one company uh owns most of them or that's not how i meant that that one company controls each
one of them or in in in the case of facebook controls two of them and a chat service always
kind of bothered me and certainly i had that that angle from before I even started Mastron.
I think for a few years before that,
I was thinking,
oh, Twitter should be public utility,
except obviously my idea hasn't formed back then.
And I was just thinking in terms of
some kind of government control over,
you know, the fact that, you know,
it just sort of becomes a public utility, kind of like water pipes are.
But then obviously that idea evolved, and I no longer think that's a very good idea,
because governments owning large amounts of private data about citizens isn't really a good idea anymore.
Certainly not after... which year was it
when we got the Snowden revelations?
In any case, I think the idea that...
2014 maybe.
Yeah, I was thinking about that time.
I think the idea of multiple organizations
and individuals owning in equal parts
their independent servers that sort of
Intercommunicate with the tier is a lot better. Anyway, uh, it scales a lot better it it
works a lot a lot better for uh
Self-determination like if there's a service in germany
There's service in france and they can operate according to their own customs and values and laws. I think that's just a lot better than if just Twitter was owned by the
US government, God forbid. Right. There's a lot of nuance and things at play here. You have,
you know, Adam saying it is a utility. Well, not in a governmental, political sense. It's not a
utility. We're saying that it's very, I think, Eugene, your word was indispensable, which I think is a strong word. There's people who want it to be
a utility, right? These things should be taken over. They shouldn't be, you know, there's lots
of different ins and outs and what have you about really the politics around these things. And
definitely, I think we can all agree, at least us three here on the call, that having a large amount of data and really
broadcast ability in the hands of a few entities, whether those are public or private, right?
Like you said, the US government owning these things, maybe not any better than Twitter
Inc. owning these things.
Who knows?
But this federated model that you're doing with Mastodon definitely is a response, or
maybe not a response to that, but it answers a lot of the problems that singular control
introduces.
Now, it probably has its own problems, but let's get back into that federation and let's
talk a little bit about how Mastodon works, and we'll go from there.
Okay. Federation will be familiar to those who use email, even though they might not know it by name. Um, it's the principle where a server hosts users and works internally,
completely independently. So, you know, if you are on Gmail, you can send emails to other Gmail users.
But it also works with other servers.
So if your friend is on Hotmail, your Hotmail friend can send you email and you can send them email.
And it just works.
And that's what federation is.
And that's also how Masternode operates.
Each server is in itself independent and self-contained.
It could be the only server in the universe and it would work fine.
Users sign up just like on any other website
and they can send each other messages.
But if there are more than one Mastron servers,
they can address each other, follow each other
and talk to each other as if they were on the same website. So you're localized to a server or to a host,
which could be multiple computers, but a single entity running an instance. But then you're able
to cross boundaries because those instances are federated, just like email servers are federated,
and they have their own protocols to intercommunicate. Exactly. The protocol it uses is called ActivityPop.
And it's been accepted as a W3C recommended standard last year or this year.
I don't remember exactly.
Last year, it was a draft.
That I can tell you for sure.
And we were the first platform to implement it.
We switched from most status, which I mentioned before,
because it was a bit antiquated and had a lot of missing links and flaws.
And it was actually quite a massive undertaking, switching an entire federated platform from one protocol to another.
And it certainly involved supporting the Ostatus protocol as a sort of a legacy thing, which we still do.
So currently Mastodon supports two protocols.
They're not 100% compatible with each other.
Well, that's a weird thing to say.
I should say it like this.
A message that comes from Ostatus is not strictly compliant with ActivityPop, but it still works just because we made it work.
That's how I would put it. but people really shouldn't care about that anymore i guess it's a very
niche thing to care about well somewhat interesting so about a year ago adam you'll remember this we
had evan and i can never remember how to say his last name prodromu on the change podromo thank you
yeah yeah i know back in uh you know i'm you do, because he's kind of one of the pioneers
of a lot of these protocols.
Ostatus involved in the W3Cs.
What's that working group on social web
or something like this?
Social working group.
Yeah, the social working group.
This was episode 257 for those interested.
Very interesting guy.
Very fun conversation.
And one of the things that I said back then,
we were talking about,
even part of the title of that show is the problem with said back then, we were talking about, even part of the title of that show
is The Problem with Social Networks,
and we were talking about how a lot of alternatives
to existing networks pop up, they come and they go.
You know, we mentioned, well, you mentioned Google Buzz,
which I had actually forgotten existed.
I'd forgotten that too.
What about Wave?
Wave, yeah.
So Google's had a few bad cracks at it.
Although Wave had tons of inertia for like three weeks and then just never got any better. App.net, the diaspora, if you recall that one. And on that show, I mentioned Mastodon. And I said Mastodon had its day in the sun or something along those lines. And then I said, and then it kind of disappeared. And one thing that I would say about Mastodon, and this is what Adam and I were kind of talking about leading up to this show, was it just keeps bubbling up again.
Like it hasn't disappeared. It just kind of gets some press and then it goes back into
doing its thing and then it gets some more press. And it seems like the more, I don't know,
belligerent Twitter management is with their network or their product,
Mastodon gets more and more traction.
So have you, maybe tell us about the adoption.
You mentioned the Hacker News post and that was your first users,
but have you sensed like waves of interest and then it kind of waxes and wanes?
Yes, it's actually interesting to hear about the impression that it leaves on people outside
mastodon circle because obviously from our perspective we're not really going anywhere
we keep existing and then people are like oh mastodon is bubbling up again right um i think
it's more to do with how the press works and how attention on the internet works in general, because something is only in the public view as long as it's new.
So a new release of a podcast episode would maybe top Reddit on some day,
but once it's a few weeks old, it's not going to appear again, right?
People always want something new.
And the same thing is for news.
They only publish an article if there is something newsworthy to talk about,
like a new version of Mastodon is released or it's launched or stuff like that.
But it really doesn't go anywhere.
The attention goes, but it stays there.
Mastodon has currently, I think, 1,500,000 registered users.
And it's had over a million for a while.
And within our network, we're quite happy with that.
I mean, we're quite satisfied.
It's not like we have a driving force behind us
to force us to bigger and bigger numbers.
It's not like we have any investors to impress.
So we're just happy when we have a network
where we have friends
and we can talk about things with each other
and find interesting content.
And that already happens
and you don't really need a lot of people for that.
You just need, at best,
some way to find them,
to find the good people.
So it's really not about winning.
Yeah, it's really not about winning.
I mean, we've already won just by being here, right?
That's sort of the attitude that a lot of people in Macedon have.
Well, I think you inherit some expectations or anticipations because you will sit in the shadow of Twitter to most people's eyes and they will naturally compare you.
So by nature, they will assume you're trying to win.
But, you know, you coming on a show like this and saying, hey're not trying to win we're just trying to achieve success it's not even
just that it's not even just that it's people's criteria for winning is just not it's not adjusted
for for what master on is it's a new concept because i mean email is old but nobody thinks
of it as a social network and nobody really talks about the success of email.
I mean, it's pretty clearly used by everyone.
So I guess, you know, it's already successful, but nobody really talks about it.
That's because there's no press releases for email, right?
There's no flippery entities saying, look how successful we are.
Because it's just, it's like a public good or it's a concept.
People judge a new social network using the criteria they have from other social networks like Twitter or Facebook that report on active user numbers.
They report on quarterly revenue.
They talk about monetization.
How do you put ads into it?
And all that stuff is kind of irrelevant to Mastodon.
Even the question of celebrities, like people say, oh, oh, there's not enough irrelevant to Mastodon. Even the question of celebrities,
like people say,
oh, oh, there's not enough celebrities in Mastodon.
Like, do we really care about that?
I mean, we kind of have local celebrities,
just people who are talented,
who collect a following.
But do we really need a random person who was in a Hollywood movie on Mastodon?
What would it really give us?
Like, there's certainly a demographic that cares about that sort of thing,
that follows celebrities on Twitter.
But I don't know.
It's just, it never appealed to me.
So yeah, I'd say that the expectations that people have for Mastodon's success
are just not adjusted.
And in its own way, Mastodon is already
massively successful. Kind of reminds me of a quote that I saw, and I think I saw it ironically
on Twitter, but it was about humility. And it was saying something along the lines of,
you can't beat me if I'm not competing with you. And so kind of these comparisons,
because as outsiders, we're trying to get a gauge
on something.
And of course,
in the tech industry,
even in open source,
you know,
there's vanity metrics
and there's things
that we think,
you know,
growth is like a common thing
that everybody just thinks about.
And it's like,
what's your numbers like?
Where's your growth?
Where's it coming from?
Blah, blah, blah.
What are you trying to do?
And it's like,
well, we compare it.
We're like,
well, how many people
are using Mastodon?
It's like, maybe that's not even the,
maybe the people that are using it,
that's not even like a thing that they care about necessarily. As long as there's, it doesn't feel like a, a, what do you call it?
When there's nobody in town, a goat, a ghost town, a ghost town. Thank you.
I thought I was close to that.
So as long as you're there and your friends are there and you're doing your
social networking, like that's kind of success. If you if you're not trying to build a big business, right?
That's the point.
I mean, that's what Slacks are basically too.
I mean, Slack communities are not extremely different, really.
They're kind of like instances, right?
Yeah, there's a lot of overlap in concept with Slack groups, Discord servers, or even
subreddits.
It's not exactly one-to-one conceptually because you don't really think about,
oh, can I follow a user from a different subreddit?
But thematically, the way that communities tend to form
around a single server,
and so you have a server dedicated to technology
or a server dedicated to like cyberpunk,
it sort of tends to veer towards
being like a subreddit thematically.
That's not to say that user graph is not important at all.
I mean, I think there's that old proverb that a social network is only as useful as the
amount of people you can reach through it, right?
And then there's that formula uh where it's useful
this is like the square of the number of users or something like that right i have a value of it
yeah the value of a network yeah there's a statistician who put his name on that one
metcalfe's law obviously i am interested in appealing to new users in uh appealing to to
to the mainstream um in growing the platform,
because with every new user,
it becomes more useful to everyone else.
And certainly as it's becoming more active,
it's becoming more interesting
and you find more cool cat pictures.
But yeah, it's just,
I guess it's just not an existential thing.
Like there is no time pressure and that sort of thing.
This episode is brought to you by Linode, our cloud server of choice.
It's so easy to get started.
Head to linode.com slash changelog.
Pick a plan, pick a distro, and pick a location, and in minutes, deploy your Linode cloud server.
They have drool-worthy hardware, native SSD cloud storage, 40 gigabit network, Intel E5 processors, simple, easy control panel, 99.9% uptime guarantee we are never down 24 7 customer support 10 data centers 3 regions anywhere in the world they got
you covered at the leno.com slash change a lot to get $20 in hosting credit that's So let's talk about that new user experience. One of the things that definitely differentiates it from a centralized platform is the first
thing you have to do is pick an instance, which seems like a bit of a barrier because,
you know, where do I belong?
Tell us about instances, how you join and kind of how a regular person interfaces with
Mastodon, both in a local instance and then kind of the federated network.
It's true. It's a little bit of a barrier because obviously centralized social networks that people
are used to don't even put that kind of question in front of people. Like, you know, you don't
need to think about where do I sign up on Twitter because it's right there. There is the sign up
button. Right. On Mastodon, it's just a little extra step. I mean, it's a big step, but it's right there. There's the sign up button. On Mastodon, it's just a little extra step. I mean,
it's a big step, but it's just one step.
And you have to pick a server.
But it's not so
new to people. I mean,
coming back to email, you had to
pick an email server at some point.
And, you know, most people
join Gmail nowadays.
I personally use Fastmail.
And some choose Live or or yahoo or something but
so picking a server right a server is operated independently by either an individual or
organization it has its own rules kind of like uh an old style forum or in fact a discord community or or a slack chat whatever it has its own terms
of service um so when you're picking one you kind of need to pick something that you'll be happy with
um so if you want to be in in kind of a space safe space environment you're gonna go and get
one with a strict code of conduct that that forbids uh certain behaviors and and, you're gonna go and get one with a strict code of conduct that
forbids certain behaviors.
And if you just want something different, you go and you check the code of conduct and
you see, oh, this and this is allowed, this and this is forbidden, etc.
This is a bit of a tall order, so I understand that not a lot of people go through that sort
of thing, and most of them just end up on master.social, which I run.
I'm okay with that. Because I believe that as long as they do sign up on Mastodon, they always have the opportunity to learn about how it works more and to move to a different
server later. But obviously, if we lose them before sign up, they'll probably never check it
out. That's that's my view on that. Just like lots of people sign up for Gmail. It's not a big deal.
Lots of people sign up for Massad on the social,
which is the instance that you run.
There's a slight disconnect there though,
because when I'm picking my email provider,
I'm not thinking of it like as a community
or as there's no locality to it.
It doesn't mean I can mostly speak with Gmail people
or there's a little bit of a social,
like if you're on Aol.com you're old you
know you're you're an old school or i don't know what the exact connotation there is adam you're
not cool okay so there's some of that with like what is your email address kind of it kind of
signals to people what kind of person you are but not so much as like i hang out on this
forum or this bbs right that? That's a stronger association.
And so probably a bigger decision.
I mean, in fact, you know, I have some friends who've joined Macedon and I'm a very technical
person and I've definitely stopped and looked at it and thought, yeah, I'm just not sure
which instance I would pick.
And so I just go back to email and Twitter.
But you're saying if you don't know, you know, pick maths.social and then can you migrate later on?
Can I switch instances?
Kind of.
Currently, it's a bit of a manual process.
I mean, you do have to tell your followers to follow the new account and the content doesn't move.
But there is at least a helper in terms of displaying on your profile that you have, in fact, moved.
So it's
it's it's halfway there we're working on something better but it's a tall order i mean not a lot of
federated networks have solved this kind of problem yeah you can't really migrate an email
address either you have to tell all of your contacts to update your address books and xmpp
kind of had a similar problem as well, which was the federated chat service
that Gtalk used to use and WhatsApp used to use, and they removed federation from those.
But yeah, it had the same problem that it was based on contacts and you had to kind
of let people know to friend you on a new account if you wanted to move.
So definitely not a new problem and definitely not
a solved problem anywhere so it's taking a while yeah is there a resistance to sort of a maybe this
goes against the whole entire idea of like a central directory and then like the concept of
planting your roots somewhere so that i can easily pick up my roots and replant myself somewhere else
should i choose to that kind of concept.
It seems like that would make sense.
There is definitely a resistance in the community
towards any kind of centralization.
I mean, people critique Mastodon.social for being so big
and accepting new users.
And I think people are right to worry a little bit.
I mean, I know that I wouldn't do anything nasty with that sort of power.
And I don't even consider that that much of power is more like a huge burden and responsibility to host that many people.
But I guess the question is, how often would somebody need to jump ship to a new instance?
What would be does it happen often?
And is it I'm sure it's a needed feature for example how we've outlined it for
getting started say easy first step move wherever you want later but you know aside from that is it
truly useful is it really a need to be able to go someplace and then leave an instance and go
somewhere else especially if it's federated and you can message across places like do you have
to belong somewhere people do move their accounts like all
the time uh i often see on my hometown learn hey i got a new account please follow me there
um it can get even a little bit annoying yeah um now the the annoying thing about it not being
automatic is obviously that once you move you rely on people having seen your message that you've
moved to a refollow you um and if somebody's inactive they're not going to do that um so you
kind of lose inactive followers as you're moving but i think that's not a big loss except in in
terms of just having big numbers that you like you know yeah seems like this is a technical problem
that can be
solved in time and not necessarily a fundamental flaw or anything like that right yeah it's it's
not really i mean the thing is you could really solve everything if you just use brute force like
okay so i've got 40 000 posts on my account and i've got 139,000 followers. Let me move to a different server.
If I wanted to, okay, go through every one of those 40,000 posts,
re-download them on the new server,
and go through 140,000 people
and re-subscribe them to the new account.
I mean, it's possible.
The only problem is, yeah,
that's a bit of a computationally expensive operation isn't it um right that's that's the only real uh
obstacle on the uh on the path there yeah where it gets a little bit confusing for me so like
i it makes sense as a new user just sign up for massadon.social i definitely understand where
there would be people saying okay now we're basically centralizing on this single instance.
Potentially bad, especially if Eugene
goes power hungry
and changes everything or something.
But then it's like, okay,
maybe I don't want to do that. Maybe I want to pick one. So here's another one.
Mastodon.technology.
So this is just one that I found.
There's a little picker where you can go through some of the instances.
This Mastodon instance is for people
interested in technology. Discussions
aren't limited to technology, but because tech folks
shouldn't be limited to technology either.
So it's not like I have to talk about technology
if I join that instance, but
it's for people who
associate with technology. It seems like a
pretty broad brush.
It just feels like such a big decision.
Am I a tech folk?
There's an absolute freedom in how people can run their servers.
And so there's different types of, of, of ways that people
define what their servers for.
So there's general purpose like mastron.social or octagon.social,
where it's just like, you know, there's no theme, there's no topic.
It's just, you sign up, you have an account, you talk to your friends.
But then there's ones that are like, oh, this is for LGBT people
or this is for cyberpunk enthusiasts or this is for Star Trek fans, you know.
But most of them actually don't say, oh, you can only talk about Star Trek here.
It's more like, oh, you just want to hang out with Star Trek fans,
but talk about your life.
You're fine to do that.
And in your specific case of MassDome technology,
I'm pretty sure that's the case.
Right.
But that being said, so let's take the analogy back to our Slack team,
which you haven't seen, but all Slacks are like this, right?
We have different channels for people who like JS Party,
which is another show that we have.
Or there's one for Elixir, for people who like Elixir. another show that we have or there's one for elixir for people who like elixir and then there's one for like general conversation but you can just
join all these different channels because i happen to like technology and i like star trek
and so is there a cross can you can you join multiple instances maybe just have a separate
i get this question a lot and i find it's a bit of a conceptual misunderstanding.
It's because these servers are created with topics in mind that people start asking,
well, can I join multiple topics?
But that's not really how it works.
I mean, you have an account and you follow anyone anywhere, right?
So if you just want to follow everyone who's a Star Trek fan,
you can sign up on master.social and follow everyone who's a Star Trek fan you can sign up on master.social
and follow everyone who's a Star Trek fan you know you're not limited to that sort of thing
right um just like so going back to email like if I'm on like if I'm on hotmail I can talk about
to anybody on gmail like there's you know there's no topic specific email server so I guess the
question becomes why are these instances topic? Like,
why do they associate themselves with topics? Why aren't they just like Jared's instance,
Eugene's instance? It's an interesting phenomenon that comes from one particular feature.
Mastodon still has a firehose. I don't know if people would be familiar with the term, but
Twitter used to have a public timeline where every public post would appear and they called it the firehose. They still call it the firehose,
but it's a closed API nowadays. So Mastodon does have that. So there is a timeline of
every public post and you can filter that by posts from everyone or posts by people on your server and that's where the whole topic
thing comes into it because you can look at posts just from your server and so you get this kind of
feeling of community with with your neighbors and that's why the whole you know the the potential
for hanging out with people with the same interests comes into it. Because you can talk, you can see posts from people you're not following yet.
Gotcha.
It's kind of like a big chat room.
But it's funny because it's kind of an incidental feature.
It wasn't like really made for this.
It was more like, here is a timeline of everyone,
just so you can find somebody to follow.
And, you know, here's a way to filter it.
And, you know, suddenly there's this whole thing
where instances are created around specific topics kind of reminds me jared like if we did one because
i saw that there's a feature for organizations which i'm sure we can go into a little deeper
but just thinking like okay so typically you might be a community but then you might be an
organization and if we had a mastodon, we would essentially be topical too,
just by nature,
right?
Like we would laser focus on like,
say software developers life,
you know,
for example.
So if you care about that,
essentially what our Slack represents or Slack community represents,
if that became a Mastodon,
we're essentially putting up a flag saying,
Hey,
if this type of topic or community is of interest to you,
here's your invitation.
This is the kind of people you could expect to see here.
Not, you can only talk about this.
And you can follow anybody on that instance
without having to be on the instance.
That's where it feels like there's barriers
between these instances which aren't actually there.
Right, unneeded, really.
Yeah.
And the instances is mainly just to probably give
the federated part of it which
seems to be leading into potentially security and safety which is like hey you can go somewhere and
be just there and not feel like somebody else can cut your your social off because they've
changed the rules on you and that seems to be what it's driving towards but in effect it's also caused some sort of unneeded hurdle and some confusion points
i mean yeah exactly i mean that's kind of the selling point for organizations in my opinion
because there were those stories from facebook changing their algorithms around fan pages and
essentially killing people's businesses because suddenly the people who mark themselves as your fan
don't actually see most of your posts unless you pay up.
You know, the rules of the game are being changed
without anyone's real input, you know?
You know, on the developer side too, you've got API changes.
Like, think about the recent Twitter API changes
that basically fractured the user experience.
I feel like that's a whole separate
topic that we can talk about but as i was saying so for organizations it's uh it's a big plus to
run their own master on this is because nobody except them can actually shut them out right
they own their space they own their social media megaphone um it's kind of an opportunity for a bit of branding as well,
because if you host other people,
they have your brand in their username,
which can be an advantage.
Yeah, that's true.
Obviously, it's the ultimate verification as well.
On Twitter, you're relying on Twitter giving you the checkmark.
On Mastodon, there are no checkmarks,
and how would there be if there's like 4,000 different admins
and somebody could fake one?
But if you run your own server under your own domain name,
then everyone knows that you're the real Jared from the changelog
and not just any Jared.
Not the other Jared from the subway commercials.
Not that guy.
So can the Federation then ban an instance let's
say the klu klux klan gets their own macedon instance and they can do whatever they want
on their little island because it's a free world and all that but can you can the federation then
ban them you can't sing the island unless you go to their domain name register and like request them to
be taken down like that that route works like with any other website um however you i as a
developer do not have power over other servers just to be clear like i develop the software
it's open source that you did this whole time so somebody installs the software on the server
it's theirs i have no control over that. Right.
But because it's a very, very practical case that does occur, there are ways in Mastodon to shut out servers that you don't like.
Like a firewall, essentially.
Yeah, essentially.
Like in concept.
Conceptually.
Conceptually.
Pretty much.
So from the user side, you can decide,
oh, I don't want to see anything from this domain
as a personal decision.
That's step one.
And on the administrational level,
you have the ability to shut out posts
from a specific server
or completely remove it from your database
so that there is zero interaction between them.
And that's what you would do if such a Kogok Slot server would spring up.
So that's pretty cool. That all makes sense.
How about the moderation?
You said each instance has its individually owned and operated,
and so they have their own codes of conduct, their own moderators,
their own rules of the game
with regard to what kind of content you can be posting on that instance.
But what about subscriptions?
So if I'm on Adam's changelog instance as just a user
and I subscribe to the ClueClub's clan member,
does Adam need to moderate that because it's on his instance or is it only
me that sees it anyways and so it's kind of a moot point how does that work uh there's different
levels of moderation that are available here so on one hand you could completely shut down
as i said the kooks land server from your side so that you wouldn't be able to follow them
on the other hand there is the other level.
For something perhaps a bit less extreme,
you could sandbox it so people can still follow users from that server,
but they just don't appear in the firehose view,
and they cannot appear in notifications of people who don't follow them.
So, for example, if they tend to send harassing messages to strangers,
you sandbox them and voila,
they no longer appear in those strangers' mentions and cannot harass them.
So that's that.
Now, the leading question into this was,
how does moderation work when the servers have different rules?
And the point is that each server enforces their rules locally.
So you have your moderators, you have your rules,
and we have the ability to essentially modify the user records
of people from other servers as they are seen from your server
because they're essentially a local copy. So you receive messages from the other servers, as they are seen from your server, because they're essentially
a local copy.
So you receive messages from the other server, they're saved in your database, and so you
can work with them and moderate them.
And so you have the ability to suspend, to sandbox people, just like you can suspend
and sandbox your local users.
And that's what we usually do if there is a problematic user in another instance.
There are also ways to forward reports from people from one server to another.
So for example, if I see some kind of mean message from a different server, I report
it to my admins and have the option to forward that report
to the admins of the other server
if I think that they might also not be okay
with that being on their server.
So that's more or less how it works.
That makes sense, I mean,
because you essentially have some hierarchy,
and you get your local copies,
you got the leaders of that local copy,
and you got rules you all decide upon,
and I'm sure that's ran however those individuals feel so,
like forums were.
But then you can also cross, have concerns and like-minded instances
come to some sort of agreement saying,
hey, you reported this person on my instance doing behavior that wasn't right.
Thank you.
I'll act accordingly or not.
And that's a good community.
Those are good community effects.
People aren't forced to agree with you or do what you say.
They have the option to hear you, receive that, and then do what they feel.
But at your local level, you can still make your choices for them.
Exactly.
Sounds pretty cool.
So you get past that initial road bump of which instance to pick.
And let's just say I pick mass.on.technology because I'm a tech folk.
I get going.
It probably feels a lot like
any other social network.
There's some differences, of course, in the content you can post.
Give us the rundown. 500 characters.
You can do video.
What are some of the features that makes this
a really valuable and useful
social network?
You can have animated avatars.
Nice. You can put spoiler warnings on text um that's cool in case you're talking about the latest show
and don't want to annoy your followers you can mark individual pictures or rather you can mark
individual posts with pictures as not safe for work rather than marking your entire account as not safe for work as it is on Twitter.
Let me think.
I haven't compiled such a list in my head for quite a while.
One thing that always comes up in my mind is how do I use this for my phone?
Because that's usually where I'm socializing.
Yeah, for some reason I get a lot of questions like why isn't Mastodon on the App Store?
And it's really weird because there are like a million apps for Mastodon on every app store.
They're just not called Mastodon because they're developed by third party developers.
So Mastodon has a principle, API first.
And yeah, that's essentially it, API first.
I like that.
I do too.
The web interface uses the same API as any other app can use.
And so it's completely replaceable by the user.
If you want a different look, you go and you can have a web client or you can have a mobile app and it can do all the same things
that the web interface can do.
And so we don't even try to do an official mobile app
because that sort of tends to allow
you to create some kind of proprietary behavior that's
only available in one app.
And so by always having third party apps,
we're like, we're working together
with independent developers.
And sort of a thing that's available to one
is available to others.
And so there's competition as possible.
So yeah, there's Toski for Android.
There is Amarok for iOS.
There is apps in development for iOS.
One is called Toot app by Dak Akron.
And I think the guy who developed Twitcherific is developing an app for Mastodon.
But I don't know what the name of that is yet.
So that's in the works.
There's more.
There's Subway Tutor.
There is TootDawn.
And probably more.
Why do you think that the, you know, the inner, i guess maybe the apps available to access maybe i
haven't investigated far enough but why do you feel like there's so many why why isn't there
you know you know sort of more collected effort is it by design obviously you're not doing it
because maybe it's easier to spread the developer load across you know a similar model a federated
model like many of the people you know doing and uniting and that kind of thing why do you feel
like there's so many do you feel like eventually there'll be one or two and there'll
be a winner as tech likes to always make a winner i think that would be a loss if there was only one
i mean having choice is is good i mean it means that that there is room for innovation for you
know trying to get an edge on your competitors, it's better for the users.
Why there are so many right now?
I don't know, because my Assetto is young
and there isn't a status quo yet.
I mean, most of these apps are...
Really new.
Yeah, they're really new.
And many of them have been started at the same time
or close to the same time.
So it's kind of natural for them to be multiple rather than one app.
Aside from platform, you know, like Android, iOS, you know, I can see having the need for many.
And I'm not saying only one is needed, but I wonder what the differentiators are.
Like, what are they adding to?
Sure, innovation, opportunities for innovation, that makes sense.
Mostly I think it's visuals.
The things that I've seen is just the way the user interface is designed.
They mostly implement the same features just because those features are available
through the API. There's not a lot of room for
just doing weird stuff. But I don't know,
some innovations that I'm not sure if they're implementing them yet, but that are possible,
is like, how does the phone's camera interact with MassTone? Like, maybe you could build a way
to record video into the app. I always wished that there would be some app
that just took the video recorder from Vine and just, you know,
because Mastodon supports video uploads,
so it could just work as Vine with a different interface.
But obviously, it only depends on the app supporting video recording.
That's all that's needed.
That makes more sense, where you can actually where this
application that gives you access
to Mastodon instances
is more favored on the general user experience
and maybe this one is focused on
a Vine-like user experience.
That to me makes far more sense and
makes more sense why there's
different instances.
That's super cool. It makes me think
now
as a moderator,
but as an instance host,
can I set up limits and stuff
on how much bandwidth my instance is hosting and serving?
Because if all of a sudden
everybody starts doing videos on my instance,
maybe it gets expensive for me.
Right.
Currently, all limits are hard-coded
and the same for everyone
because we want to have
sort of a standard user experience.
So, you know, picking an instance is hard enough just from the rules and the topic.
You don't want to have people thinking, oh, does this server support 10 megabyte images
or two megabyte images?
You know, that sort of thing.
We don't want people to have to think about that.
So it's the same for everyone. It's 8 megabytes for image uploads and 40 megabytes for video uploads at the time,
at this time. And it downsizes the images if possible, if they're too big for the web. And so the storage is, we're trying to use the storage as efficiently as possible.
This episode is brought to you
by our friends at GoCD.
GoCD is an open source
continuous delivery server
built by ThoughtWorks. Check them out at GoCD. GoCD is an open source continuous delivery server built by ThoughtWorks.
Check them out at gocd.org or on GitHub at github.com slash gocd. GoCD provides continuous
delivery out of the box with its built-in pipelines, advanced traceability, and value
stream visualization. With GoCD, you can easily model, orchestrate, and visualize complex workflows
from end to end with no problem.
They support Kubernetes and modern infrastructure with Elastic on-demand agents and cloud deployments.
To learn more about GoCD, visit gocd.org slash changelog.
It's free to use, and they have professional support and enterprise add-ons available from
ThoughtWorks.
Once again, gocd.org slash changelog.
So continuing the conversation on just differentiation, obviously you've got one API, one way things work.
You've got standards in which bandwidth can be used, all that good stuff.
So everyone's playing by the same rules theoretically.
But yet you have many different types of applications that could be done for different experiences. What else differentiates Mastodon?
One thing about Mastodon is what I have mentioned before.
The way the Federation works is based on a protocol
that is recommended by the W3C.
Now, what that really means is that when you're using Mastodon,
you're not using just Mastodon.
Or rather, Mastodon isn't the whole thing.
Mastodon implements ActivityPub, but literally any other software could also implement the same protocol and be immediately compatible
with Mastodon. As long as you have the concept of users and the concept of subscriptions between
users, there's essentially no limits how these platforms can interact.
What this means in practice,
there's at least five, maybe more,
different software projects that implement ActivityPop
that provide a completely different experience.
For example, for people who want something like YouTube,
where you upload videos and you subscribe to channels,
there is a project called Peertube. And what really blows the minds of some people who learn
about this is that you can follow a Peertube account from your Mastodon account and new videos
just appear in your home feed, like as if they were on the same platform. And there is a project that focuses on image sharing, kind of like Instagram.
It's called PixelFat and it's going to work the same way.
You follow a PixelFat user from your Mastodon account
and the photos just appear in your feed.
And if you reply to them, your reply appears as a comment on that photo.
And again, with the videos, you comment on the video and
the comment appears under the video on PeerTube. And so when you decide to use
Mastodon, you're not really just gambling on the success of Mastodon by itself,
you're gambling on this interoperable network that implements this protocol.
We actually call it the Fediverse, like Federated Universe.
So you would likely hear that term used commonly.
Essentially, it's part of the design that eventually, years later, maybe some developer comes along and develops something that
is a thousand times better than Mastodon. But as long as it uses the same protocol,
people can just switch smoothly. And rather than losing all of their social graph, their connections,
their friends, they're still in the same network. It's just like switching to a different account.
And I think that's the strength of Mastodon and its main
ideological differentiator. That's pretty important too.
If you take what Mastodon is and you want to create your...
The question earlier was why fracture and have so many apps? And it sounds like
that's an advantage because while I can make
a Mastodon instance, I can create an application that gives my users or whatever Mastodon at large access to it.
But I can also say, hey, I intend to have a Vine-like experience for those Vine lovers out there.
Like, we want it back.
We need it.
We want it.
It gives you a chance to make your own, essentially, aside from maybe several technical hurdles,'m sure to you know to for bandwidth
reasons and whatnot around video and that kind of stuff essentially you're you give them the
ability to do that and they can have their own instance it's federated all that good stuff they
have their own application but somebody else could use the same application and connect to their own
vine like masted on instance lots of opportunities. Maybe I'm just an old,
maybe I've hosted
too many servers in my day,
but I just go back
to the instances
and the providers
of the instances.
And that's why
Eugene, I was asking
about bandwidth costs
and the settings and stuff
because I start thinking like,
I see the incentive
and it sounds like
a really great network
for users.
And I wonder what
the incentives are
for hosting,
the costs of hosting, the costs
of hosting, like what it takes to set up an instance
because ultimately, for a federation
to work, you need to have enough
instances. You can't have
three or four. You're going to end up with a
similar situation.
So you need those options,
but over time and the success of the network
is going to cause the hosting costs
to go up.
You know, I'm just thinking of hosting the Vine instance.
And maybe I have that limit of 40 megabytes per upload.
But people are doing thousands of Vines a day all of a sudden.
And I'm just running this as my little, you know, side hobby.
So what are some of the incentives for people to host instances?
And what are the costs?
And what does that look like?
The incentives are usually ideological like owning
your own space owning your own data not being dependent on anyone um is a pretty good motivator
certainly for for communities and families maybe um for organizations it it's, again, as I mentioned before,
verification, the fact that if it's on your own domain,
it pretty much proves that you're who you say you are.
There are no financial motivators for hosting an instance, really.
We're really more about crowdfunding for sustainability so
most servers would have like a patreon or some other form of accepting donations and you know
most people donate if they are happy with the service i think about like dues almost like
there's a base cost to run things and the concept of dues versus like donations might be an application there
because like if i'm part of a community and it costs 300 bucks to run the server and there's
300 users well everybody pays a buck and that's cool i don't mind paying the due and you could
you could actually do that i mean uh i know at least one server that implements a paywall for
signing up and it's fair enough you mean you're allowed to do that i was just gonna ask why that's not a motivator it sounds like i mean for instance going back to
the goal we're going back to the email scenario you know a lot of people use gmail and yahoo and
stuff because they're free and of course google and yahoo and microsoft have their reasons why
they want people using their email but then also you you said yourself use fastmail right isn't that
is that a service that you pay for right yeah pay for it yeah because they provide you a solid hosting scenario and features that you like
and they give you access to email so now that i'm thinking about i'm pretty sure i've seen some
servers that have closed registrations but they have a message that says if you donate to our
patreon you can get a sign up straight away so that sort of thing already exists maybe it's not
quite as um implemented as cleanly as just having a button or something yeah thing already exists maybe it's not quite as um implemented
as cleanly as just having a button or something yeah because it's just it's not part of the
software that come that is delivered but it's certainly possible it's and it's certainly a
valid tactic i mean it's you can't argue that's not sustainable yeah there's no rules against it
it's not like nope you can't take you know you can't take payment to host an instance there's no there's no greater mastodon uh board of directors that's going to stop you
hosting mastodon isn't as expensive as you would think um it's certainly it's it's somewhere in
between uh and it depends a lot on how smart you want to be about how you host it, because if you just use Heroku, well, you're going to be buried under a mountain
of bills. And if you use Amazon Web Services, it's probably not going to end well either.
However, if you use a dedicated box to put it on, it can be quite cheap. And if you're
smart about where to store the user uploaded files it can be
cheaper too. I mean Amazon S3 is like the most popular choice but the problem is
it's quite expensive to store data and it's very expensive to get the data out through bandwidth
as you said. But there is a trick you can do to reduce the storage. So first of all,
why would you even use S3 in the first place? Well, if you have more than one
machine serving Mastodon, as you would if you're scaling up, or if you just have
limited disk-based storage on your box, then you would need something like
object storage. But at the same time, there's no reason why your load balancer
or your Nginx couldn't just serve those files or store a copy of them.
So the way I do it and the way a few people who also use object storage
do it to reduce the costs between S3 and the end user
is by having an Nginx proxy in between them, the costs between S3 and the end user
is by having an Nginx proxy in between them
with proxy caching.
So your load balancer fetches the data from S3
and then saves it for a while.
And maybe it's 50 gigabytes of cache on the load balancer,
but that's okay because those are the
only ones are being accessed through the interface and every
server that runs your Mazeron code can upload to the S3 and so it's
sort of it's the perfect way to manage it And then if you put Cloudflare on top of that,
which provides free bandwidth,
then, well, your bandwidth costs for S3 are almost close to zero.
Is there a best practice out there that breaks this down anywhere?
Or is this just said here for the first time?
No, it's certainly not said for the first time,
but I'm actually not sure if that's written down in the documentation.
It'd be interesting to point that down for the listeners.
Yeah, that'd be great.
Yeah, it'd also be a good way to get involved as a contributor.
Mastodon open source, a lot of people running instances.
There's a lot of probably, I don't think there's any low-hanging fruit,
but there's at least fruit hanging out there
wherein optimizations could yield huge gains
for all these people who are hosting and who are
bearing real costs month by month
and reducing those fees and you basically make the network
a lot better, it'd be a good way
to get involved.
If you want to know, MassLand.Social
has, let me check
just to be sure,
currently has
232,000 users,
of which 30,000 were active last week.
So total number of registrations doesn't really matter as much
in terms of hosting costs,
because it's just a little bit of database space.
But if they're not active,
they don't affect your server.
Right, peak activity is what really matters.
Yeah, so 30,000 users.
That costs me 470 euros on Hetzner.
Hetzner is a German hosting provider.
That is, I think, six or seven dedicated servers.
Not virtual servers, but actual boxes.
I mean, they're really beefy.
And most of the RAM is not used.
Mestodon is really more CPU-bound than RAM-bound.
Except for a baseline of RAM
requirements just because it's using Ruby, but it's not as bad as people always talk
about Ruby.
What's a good CPU count for it?
The servers I'm using each has eight cores.
It's, it's an I seven something, something with hyper threading threading.
So, I mean, that, that's pretty good.
And, uh, currently i'm under
capacity i think is the right word like um there was a wave of new users uh a few weeks ago and
yeah if i look at it that was like 43 000 users and so that's when i acquired the last three new machines to handle the load.
But right now I'm like overpaying, I would say, maybe.
So in reality, you would pay less, perhaps.
So you also are hosting one of the larger instances out there.
Yes, it's one of the biggest ones out there.
So while we're talking about money, let's mention the fact that oftentimes on the ChangeLog,
we talk about sustainability and how this is going to work and all that.
But it seems like you have a pretty good hold on it at this point.
So you accept sponsorships via Patreon and you're bringing in what your goal is, $5,000 per month you've reached.
And so you're now working full time on Mastodon.
Tell us about that success and how that's given you,
what freedom you have to build this thing.
I wasn't expecting to reach that goal.
I've said it.
A lot of people don't reach that goal.
So yeah, I've said it and I thought,
okay, that'd just be something that,
you know, people see that,
you know, it's there,
but, you know, I was fine with less money.
I've lived on less.
Let's put it that way.
One point about the last question that I feel like maybe left out is what I was talking
about is the raw cost of hosting a server.
So the technology, the hardware.
But there is obviously a cost to moderating it.
Like your own time obviously is a cost.
And if it's a big server, you'll need moderators.
And some people are okay with having volunteer moderators and, you know, people are maybe
willing to work for free, but if you want to be fair and I want to be fair,
you want to pay your moderators.
And so that's a bit of extra costs on top of that.
Interesting.
I think I have five.
Yeah, I have five moderators on payroll.
Is that part of like, would you consider the gig economy or is it,
it's not full-time jobs for these people?
It's not, it's not, it's not really full-time job.
No, it's more like a small contract.
Gotcha.
I mean, I don't really require them to have set hours or an hourly requirement.
I'm just like, well, here's privileges to access the moderation UI,
and you're going to get emails about new reports.
And when you have time to deal with this, please do.
But otherwise, just be on standby you
know just whenever you're available so back to patreon is is this is this uh this unattended
goal like you put the goal out there you didn't expect to hit it obviously you have it is you
know building and maintaining and all this good stuff around massive on your full-time thing do you it is it
is it's been my full-time thing for two years um is that because of patreon well um or like you
yeah independently wealthy somehow like what i mean is the community supporting you somehow
yes it is all thanks to patreon yeah no i'm not independently wealthy. You never know. You never know. I'm an immigrant.
I moved to Germany from Russia when I was 11.
And my family started here from scratch.
So it's kind of like, you know, from zero to this.
Yeah.
That's awesome.
But at the same time, I started working at full time even before Patreon reached any kind of big number.
Like, as I said, I had a
freelancing gig at the time when Mastern just started. I eventually quit that, but it provided
me with some supplementary income while the Patreon was getting started. And then, you know,
when it was hitting like $600 a month, it was already enough to at least cover the rent and the food.
And then, you know, as it grew,
it sort of became an actual competitive job
where I no longer get sad looks from other engineers, you know.
Any plans to make this some sort of business thinking like Mastodon as a service?
Like you've asked various questions about running a server, like that i have had that thought uh certainly um at the same time
at least right now i don't want to spread myself too thin uh because managing a business uh of
hosting other people's websites is a big responsibility and it is pretty much a 24
7 thing because anytime
something could go wrong and I'm already hosting my own server where that's the case so I mean you
know you don't don't want to just have too many responsibilities at once but it's certainly an
avenue for extra income if I ever decide to do that service start a software as a service where I just offer hosting
but right now while I'm not doing it um there are others who fill that niche and on the join
master on project website I uh link to somebody who who does that sort of thing master on hosting
under masto.host and yeah while I'm not doing it somebody else is doing it so that's my next
question was like okay so if you're not doing it is anybody or could somebody is there anything
that says you can't no you can absolutely do it there's no problem with it fully managed
mastodon hosting this is at masto.host interesting so that's right on your home page for join
mastodon.org let's get to maybe a more colorful side, which is naming, right? Like the naming scheme of things is always kind of fun.
Toot is what you call the object, the thing that you put out there.
Twitter has tweets.
Mastodon has toots.
How do you say that with a straight face?
That's my question.
I do not.
Never with a straight face.
The history of toots is such that Mastodon did not start with it.
In fact, at the beginning Mastodon did not have any special words for posts.
They were just statuses or posts, and the button for posting one just used to say publish.
But then a certain demographic came and at first it was like
one of the first waves of people were dutch and my memory is already vague on this but i remember
some form of dutch word for tooting which was something like tetera or something like that
i'm probably mispronouncing it but it it was a suggested term for Mastodon posts.
And then as about the third or fourth wave,
I don't remember how exactly it started in the community,
but I remember that a specific person requested me,
or rather dared me, to change the button to say toot.
They dared you? Yeah, they were like, if you change the button to say toot. They dared you?
Yeah, they were like, if you change this button to say toot,
I will pledge to your Patreon at $5 forever.
Wow.
So I took it up and I did it.
I didn't really realize that in some parts of America,
toot is slang for farting.
So that really didn't play a role. I mean, it's more like
the sound that an elephant makes, or the sound that a trumpet makes.
And I still think that it's innocent enough.
And it's really lighthearted, so I don't really mind it.
I mean, even so much that the Mastodon source code is
under the OrgotSuite.
Yeah, exactly.
It's because the organization named Mastodon was taken,
so I had to improvise, and I was like, TootSuit.
Gotcha. TootSuit. Okay, TootSuit.
Well, I'll tell you one thing, Eugene,
is that Adam and I both live in that area of America
wherein Toot is definitely a vernacular for farting.
That's why we particularly
both said, what's with Toot?
I'm sure you get that a lot.
I mean, it's just
going to be the case.
Every so often somebody joins and posts that picture
from the Doctor Doom comic where it says
Doctor Doom toots as he pleases.
So, I mean, it's
unending fuel for those kind of jokes.
And fair enough.
Well, let's talk about the future of Mastodon.
We've talked about how we've gotten here
and it's the fortuitous path
and some of the things that sets it apart,
as well as how awesome it is
that you have a community
and people that support you and sponsors
and are able to work on this full time,
even pay some moderators.
What's the future look like?
Do you have big plans?
Is the idea formulated and now it's maintenance mode?
Do you have huge growth opportunities?
You know, are you taking VC funding?
Tell us what's going to happen.
There's not going to be any VC funding.
I mean, I've built a lot of protections against this sort of thing from get from the get
go like the code is licensed our agpl so what this essentially means is that if you make any
modifications to it you have to publish those modifications um that means the company cannot
take the code and just put something extra in it, make it closed source, and then remove the decentralization parts from it
to sort of conquer the market.
That's the sort of thing we wanted to guard against.
And what this means is that, well,
Mastodon code is kind of worthless.
You can't buy it.
You can't acquire it.
And you certainly shouldn't invest VC money into it.
So that's not happening.
Unless you were in the business of managed hosting.
That's true.
Yes.
If I wanted to build a business about that, but that would be distinctly different to
Mastodon itself.
As for features, recently Mastodon 2.5 came out.
I think it was a week ago or maybe two weeks ago.
And there were a lot of good features in that that I've been planning for a long time.
And that means that there's only a few big things that are still left to be implemented in the future. And other than that, it indeed is entering a sort of
maintenance slash polishing mode where we care about improving the user experience
and polishing things that are rough or that are not good enough,
but at the same time, no big new things.
Not really.
I'm not really interested in going too far away from the focus of the project, because
I don't want it to become sort of like a Swiss knife where it's jack-of-all-trades but master
of none.
I want it to be focused on the things that it's good at.
But certainly, if there are good suggestions
from the community for new features or for changes,
I'm always open to listening to those
and evaluating whether that's something
that we want to engage with
or maybe if it's not a very good fit
for the upstream project,
maybe a better fit for some kind of fork.
One feature that we released in this 2.5 episode,
I said episode because I'm thinking of podcast,
release is what I'm thinking of.
In the release is the federation relay functionality.
So this ties back to the way my ass works with user subscriptions.
Service don't generally subscribe to each other entirely. It's more about, I follow my friend.
And so my server receives posts from that friend.
And what this means is that if you have a brand new server, it can feel quite
empty and perhaps like a ghost town.
So what does the relay do?
The relay, as the name suggests,
is kind of like a semi-centralized plumbing system, I would say,
where servers can subscribe to it
and they start exchanging all public posts,
regardless of who subscribes to whom.
And so this means that the new server could join a relay
and immediately receive lots
of fresh content all the time. So that's a solution to a problem that we've been hearing
about for a while. The other big thing is account migration. As we've been talking about, it's kind
of annoying at the time, but we want to make it more smooth and more natively supported so that
you don't have to rely on people seeing your I have moved message so that you keep your followers.
And yeah, I think that's it. Other than that, it's really just improving the user interface and
maintaining, solving bugs, etc. As for growth opportunities,
well, I can never really predict that sort of thing.
It's kind of weird,
because I work on a new release for a very long time,
I add some exciting new features,
then it comes out and it doesn't make a big splash.
But then randomly,
a few months later, nothing of note happens. But then there is a huge wave where, you know,
500,000 people join, and it has nothing to do with anything I've been doing. So, you know,
I can't really predict that. But let's hope for the best. What about getting started for developers,
like anybody who's, you know, listen to this, they're like, you know what? I've got a community. I got a Slack channel I've been kind of PO'd about that has limited search or it's not my data or it could be anything else,
whatever. And someone's like, I think I should start an instance. What's the, is there a getting
started document or a guide that does this? I noticed that in your GitHub profile, you have
a vagrant instance. I'm assuming that's probably for some local vm development or something like that what's a good way to someone
to get started on the hack in front of this to start developing well um if you're familiar with
ruby on rails then you'll have a really easy time because macedon is just a ruby on rails
application and it follows the conventions as much as possible. Perhaps the service pattern that we're using
is maybe a bit unconventional, but at the same time,
also not really new to Ruby developers.
And I think it quite elegantly encapsulates complex logic
into classes that can be reasonably found
if you're looking for them.
If you're not familiar with Rails, then it's perhaps a little bit more complicated because
people say, well, Rails, there's a lot of magic.
It's not really magic, it's more like just convention.
You have to know where something is.
How to get started?
You just check out the code from the GitHub repository,
install the dependencies from Yarn or NPM and Bundler and you're pretty much good to go for
development. There is a four-man command for just starting up all the services. There's the web process. There's the Sidekick process, which
is the background processing
unit. There is
the streaming API written in Node.js.
And there is
Webpack for compiling
assets. So in development,
you'd have those four running.
And you have your
local
running server
and you can start hacking on the code with live reload.
As for running it in production,
there is a bit more involvement there.
There's a guide.
There's a lot of guides for it, actually.
But if you're running on Ubuntu that's really easy because
all the guides are oriented towards that system, just because it's easier for us to focus the
instructions on something that's pinned down rather than be like, oh if you're on CentOS
then you need this, then if you're on fedora you need something different you know which is
like if you use ubuntu here are the commands you can practically just execute all of them in the
right order and you're good to go so in production it involves you get the code just like in
development you install the dependencies just like in development. The extra steps are you need systemd service files
for the processes instead of using formen. So you'd have a systemd unit for the web process,
a unit for Sidekiq, and a unit for the streaming API. You will need to install a PostgreSQL server,
sorry database. It could be a different server. It doesn't matter.
You need Redis, and you need Nginx or Apache as a load balancer slash reverse processing font.
And you need to get an SSL certificate from Let's Encrypt.
And that's it.
You're good to go.
Sounds pretty straightforward for most Rails developers out there.
And if you're not, I'm sure you heard of Rails.
Get familiar and hack on this.
Well, it's been fun kind of catching up with you.
Jared, you know, it's kind of interesting because I feel like we're often earlier to a game or to a topic than we have with this topic.
I kind of feel like we're delayed, but I almost feel like we're perfect on time because, you know, there's just been so much progress. I feel like if we were a little earlier, it would have been a similar conversation, but just not enough for Eugene to walk us through in terms of where the community is at.
Like the direction they have now is, I feel like, gives us a better conversation here today.
I thought you were going to say we're slacking, but now you're saying we're doing perfect.
We're doing, we are doing, I thought, I felt like we were slacking a little bit, but I kind of feel like it's a perfectness.
I like it. I'm excited about that. Well, I just think that were slacking a little bit, but I kind of feel like it's a, it's a perfectness. I like it.
I'm excited about that.
That, that, well, I just think that this conversation now doesn't feel late to me.
At first I was like, geez, we kind of missed the boat talking about Mastodon forever ago.
Like we, we really did.
But I feel like the runway you have, you and the community have Eugene has just been great.
So good timing in my opinion.
So any, any closing thoughts for those listening, thinking about anything we may have gone through?
Any closing thoughts for you before we let you go?
Join Mastodon.
Join Mastodon.
There you go.
Join Mastodon.
Joinmastodon.org.
Go there.
Check it out.
Eugene, thank you.
Thanks for having me.
It was great being here.
Thank you for tuning in this week.
If you enjoy the show, do us a favor.
Tell someone about it. The easiest way is to go
into Overcast, if that's what you use,
and favorite it. Or go into
iTunes and give us a rating.
And even leave us a review. Or go
on Twitter and link to the episode.
People ask us all the time how they can help.
And that's the easiest way you can impact the show
today. And thank you to our sponsors, Hode and go cd also thanks to fastly our bandwidth partner
head to fastly.com to learn more and we move fast and fix things here at changelog because of rollbar
check them out at rollbar.com and we're hosted on linode cloud servers head to linode.com slash
changelog this episode is hosted by me adam stachowiak and jared
santo the mix and masters by tim smith music is by breakmaster cylinder find all of our shows
at changelog.com slash podcasts subscribe to the master feed changelog.com slash master
get every single show in one feed thank you tuning in, and we'll see you next week.