The Changelog: Software Development, Open Source - Join the federation?! Mastodon awaits... (Interview)

Episode Date: September 19, 2018

We 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)
Starting point is 00:00:00 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
Starting point is 00:00:43 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.
Starting point is 00:01:21 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,
Starting point is 00:02:08 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.
Starting point is 00:02:28 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.
Starting point is 00:03:15 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.
Starting point is 00:04:08 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,
Starting point is 00:04:55 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.
Starting point is 00:05:45 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
Starting point is 00:06:16 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
Starting point is 00:06:46 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,
Starting point is 00:07:13 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
Starting point is 00:07:52 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,
Starting point is 00:08:37 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
Starting point is 00:08:58 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.
Starting point is 00:09:22 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.
Starting point is 00:09:36 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.
Starting point is 00:10:28 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.
Starting point is 00:10:49 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
Starting point is 00:11:22 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
Starting point is 00:12:02 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?
Starting point is 00:12:40 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.
Starting point is 00:13:35 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.
Starting point is 00:13:58 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.
Starting point is 00:14:34 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.
Starting point is 00:15:09 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
Starting point is 00:15:45 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.
Starting point is 00:16:00 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,
Starting point is 00:16:16 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,
Starting point is 00:17:00 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
Starting point is 00:17:37 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.
Starting point is 00:18:16 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.
Starting point is 00:18:44 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,
Starting point is 00:18:59 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
Starting point is 00:19:29 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.
Starting point is 00:20:02 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.
Starting point is 00:20:31 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.
Starting point is 00:20:53 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,
Starting point is 00:21:22 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
Starting point is 00:21:32 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?
Starting point is 00:21:39 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,
Starting point is 00:21:48 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.
Starting point is 00:22:10 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,
Starting point is 00:22:34 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
Starting point is 00:23:05 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
Starting point is 00:23:34 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.
Starting point is 00:24:28 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
Starting point is 00:25:36 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.
Starting point is 00:25:58 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
Starting point is 00:26:43 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
Starting point is 00:27:21 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
Starting point is 00:27:40 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
Starting point is 00:28:14 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.
Starting point is 00:28:38 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
Starting point is 00:29:18 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
Starting point is 00:29:50 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?
Starting point is 00:30:21 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
Starting point is 00:31:06 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,
Starting point is 00:31:52 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
Starting point is 00:32:22 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.
Starting point is 00:32:39 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
Starting point is 00:32:55 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,
Starting point is 00:33:19 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.
Starting point is 00:33:48 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
Starting point is 00:34:09 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,
Starting point is 00:34:44 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
Starting point is 00:35:21 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.
Starting point is 00:36:11 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
Starting point is 00:36:36 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.
Starting point is 00:36:52 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.
Starting point is 00:37:07 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
Starting point is 00:37:24 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.
Starting point is 00:38:08 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
Starting point is 00:38:38 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,
Starting point is 00:39:04 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
Starting point is 00:39:27 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.
Starting point is 00:40:15 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
Starting point is 00:40:28 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.
Starting point is 00:40:52 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
Starting point is 00:41:18 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,
Starting point is 00:41:55 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?
Starting point is 00:42:27 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.
Starting point is 00:42:56 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
Starting point is 00:43:30 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,
Starting point is 00:43:44 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.
Starting point is 00:44:04 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.
Starting point is 00:44:27 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?
Starting point is 00:44:43 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.
Starting point is 00:45:20 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.
Starting point is 00:45:52 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,
Starting point is 00:46:18 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.
Starting point is 00:46:37 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.
Starting point is 00:46:59 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
Starting point is 00:47:40 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
Starting point is 00:48:04 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.
Starting point is 00:48:36 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,
Starting point is 00:49:11 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
Starting point is 00:49:34 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,
Starting point is 00:49:49 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
Starting point is 00:50:02 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,
Starting point is 00:50:31 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
Starting point is 00:51:18 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.
Starting point is 00:52:11 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.
Starting point is 00:52:41 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.
Starting point is 00:53:18 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.
Starting point is 00:53:56 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
Starting point is 00:54:46 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
Starting point is 00:55:23 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
Starting point is 00:55:56 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.
Starting point is 00:56:11 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
Starting point is 00:56:20 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
Starting point is 00:56:32 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.
Starting point is 00:56:48 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
Starting point is 00:57:16 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
Starting point is 00:58:06 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
Starting point is 00:58:48 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
Starting point is 00:59:29 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,
Starting point is 01:00:27 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
Starting point is 01:01:05 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
Starting point is 01:01:39 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.
Starting point is 01:02:09 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
Starting point is 01:02:29 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,
Starting point is 01:02:49 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.
Starting point is 01:03:15 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
Starting point is 01:03:47 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
Starting point is 01:04:14 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.
Starting point is 01:04:51 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,
Starting point is 01:05:17 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.
Starting point is 01:05:40 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.
Starting point is 01:06:11 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.
Starting point is 01:06:26 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
Starting point is 01:07:05 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.
Starting point is 01:07:37 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.
Starting point is 01:08:17 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
Starting point is 01:09:05 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.
Starting point is 01:09:51 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.
Starting point is 01:10:15 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,
Starting point is 01:11:00 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.
Starting point is 01:11:24 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,
Starting point is 01:11:50 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.
Starting point is 01:12:12 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.
Starting point is 01:12:29 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,
Starting point is 01:12:44 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.
Starting point is 01:13:00 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.
Starting point is 01:13:37 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
Starting point is 01:13:58 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.
Starting point is 01:14:43 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
Starting point is 01:15:11 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.
Starting point is 01:15:33 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,
Starting point is 01:16:07 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
Starting point is 01:16:40 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,
Starting point is 01:17:20 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
Starting point is 01:18:02 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
Starting point is 01:18:42 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
Starting point is 01:19:15 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.
Starting point is 01:19:40 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.
Starting point is 01:20:02 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,
Starting point is 01:20:52 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.
Starting point is 01:21:25 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.
Starting point is 01:22:05 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?
Starting point is 01:22:29 Join Mastodon. Join Mastodon. There you go. Join Mastodon. Joinmastodon.org. Go there. Check it out. Eugene, thank you.
Starting point is 01:22:37 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.
Starting point is 01:22:55 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
Starting point is 01:23:26 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.