 Hi, I'm Denchi Alex whatever I do a lot of Linux and computer stuff if you know about that on YouTube if you don't that's fine So today I'm gonna be talking about something called XMPP So you may have heard that acronym before I may have not I mean this is the logo up here So this is what it looks like. It's pretty so if you like aesthetics We're already getting started with that But what I'm gonna be talking about today is something which at first sounds a bit like a very developer focused Computer people who write code kind of thing But what i'm actually talking about is really important for day-to-day messaging something which Honestly, I can see in the next few years getting really big and especially regarding privacy Which we'll talk about later in this presentation This is really a game changer and there's a bunch of other stuff I want to talk about with that too, but at its core XMPP stands for extensible messaging presence protocol So I mean really what it really is for a developer is a way of sending messages with xml How many of you are familiar with xml? Have I written anything in xml html that kind of stuff So you're familiar with this kind of way right and stuff XMPP is a standard developed a long time ago in the 90s to write messages with xml And this is what an xml message looks like I'm not going to sit down and break this down because it's not super important for this presentation But at its core you understand that it's a protocol for sending messages with xml Not extremely new nothing groundbreaking and revolutionary So why should I care it's just a way of doing this if just sending messages for developers Why should a developer care about something like this? It's a standard a bunch of people set up in the 90s to send messages Well, here's some examples of companies that use xml right now So what's that not really popular in north america, but it's got two billion users worldwide You know only a quarter of the world population running on xml kick messenger another really big one Zoom uses it for its text messaging features jitsi and video games as well If you've ever had to make a video game with an online text messaging feature It probably used xml you had to implement it with xml because of of how resource Like it is and we'll talk about that as well They're also fantastic these little like xmpp servers for notifications and sending little small snippets So if you remember back when I talked about it before xmpp has presence in it as well So you can share pretty much any kind of information on it Um, and so these companies is to share notifications So if you have an android phone or an apple phone or you're doing firebase analytics or a nintendo switch They actually forward the notifications to those as an xmpp message as an xml message like this. So That's fantastic, right? But this talk is not for developers. I'm not going to sit here and explain how to write your own chat app today We're not going to be talking about creating programs from scratch today. So Why should I care then if we're not talking about that? Well, let's start by talking about the modern Atmosphere of how chat works. So we we're looking at this earlier, right? And we have whatsapp and we have kick How many here have actually ever used whatsapp or kick like are you guys familiar with kick at least? No, okay. Well, it's a bit of a more obscure messenger. I wouldn't recommend going on it Like there's there's some bad stuff on don't don't go to kick but Isn't it weird that if I sign up to whatsapp, right? I can't message anybody on kick even though we just talked about how they both use messages With xmpp like if I was a developer at facebook working on whatsapp The messages that my program is designed to send are in the same format as kick Yet users from kick can't message users from whatsapp even though theoretically that would be possible They're separate servers with separate companies owning them And their their users are kept separate. So keep that in mind as we talk about it because the next thing I want to Talk about is email So how many of you here actually actively send email and I don't mean like to your professors or school I mean like you send it to your friends your girlfriend or something like that anybody here do that No, okay, so you're probably using like Instagram snapchat. What kind of messengers do you guys use for like everyday people family stuff like that right telegram Okay telegram is one of them So If you're using a messenger like telegram or you're using snapchat You probably have a username looks like this. You have like a alex at billy at whatever, right? And we really don't stop to think about this But this is how user names are taught to us in a modern like landscape We're always expected to understand that alex is a username But if we think about email, which i'm sure we all have experience with even though we maybe don't mess As people daily with it Email addresses don't look like that email addresses have the after and they have a domain after it So let's think about why this is. I mean we have this system Why can't we just have the same for email and the reason for that is because email is a system Where you have separate servers owned by separate companies And we were talking about it earlier with whatsapp. Why can't we message from whatsapp to kick? Even though they're separate servers and separate companies This is the missing link So smtp is the protocol and email that allows you to send emails from one server to another It's the send mail protocol basically and We don't really stop to think about this in day-to-day life because it's an exception weirdly enough despite it You know being the internet That if you sign up for yahoo.com and somebody else signs up for gmail You can send an email from yahoo to gmail or gmail. Yeah, I mean think about that We're all running separate email servers. Embry Biddle has its email servers Google has its email servers yahoo has its email servers And they're run by completely separate companies with complete different softer sacks and stuff like that But you can send an email from yahoo to gmail despite being different companies In fact, you can run your own email server if you want to and still send emails between users. So Why is that? Well, this is something in the xmpp world This is called s to s or server to server to as in the number and this is something which modern messaging servers Purposefully disabled. So what's that kick though all those messages from before Purposefully disabled that feature So they can keep users in a locked environment so they can't communicate with each other xmpp though actually supports a standard so this is how email does it they have something called rfc these standards Uh that basically a bunch of documents you can go online and read them And in fact if you read them you can implement your own email server If you want to do that for some reason you can write your own server and stuff like that By reading these documents which explain. This is what an email is. This is how we forward them They basically explain how this system works how we're able to do now This stuff was in use far before google and yahoo and these companies ever thought to capitalize on it So they were forced to Admit the standard to basically adopt this and so that's why nowadays even though google would love to lock you into their service They can't because they know people expect to be able to email each other So An email address looks like this because you need a domain at the end right you need Denshi.org and it tells you what server that person belongs to one server can have many different users Even if servers, you know different servers have users with the same name. They have different domains And you know what's really curious about this Is that xmpp works the exact same way? xmpp addresses look the exact same as email addresses because it's the same underlying philosophy of separate servers But one unified chat system So isn't it weird that we learn how email works at school but not messaging? I mean we have any of you been in computer science classes in high school Or they sat you down and showed you that little diagram of smtp and like users on email There's like pop and iam having stuff like that, but we're never taught how messaging works We're never actually sat down and told hey, this is how I don't know aol iam works well because Nobody knows that messaging works or really more specifically nobody agrees on how messaging should work There's a bunch of different standards a bunch of different companies do it and everybody just decides Oh, i'm going to make my perfect messaging standard and it never you know tags on so here We can have decentralization solve everything by having xmpp as a standard system that different servers use And then intercommunicate now i mentioned earlier that google would love to log you into its chat system They actually used to have an xmpp server They used to have something called google talk and on google talk You could actually message people on other xmpp servers back then it was known as jabber Then google purposefully closed it down to stop people from doing that So just to give you an idea of how much they want control over chat So here's an example of how xmpp works. Here's juliet at the capulet server and here's romeo at the mod tv server and Basically, there's a bunch of different clients signed up to one server like you went on an email and juliet as you can see The xmpp username is the same as an email But instead of sending emails she's sending messages to romeo and the messages go to the server But instead of going to a different client on the server like it would be on whatsapp Where everybody would have to sign up to whatsapp to message each other the server can forward the message to romeo And you can get to it. So with this fantastic innovation now we can talk without our parents knowing thanks xmppp So basically you can pass messages through servers through this thing called s2s And that's what makes xmpp so amazing. It's like email, but for messaging So like i mentioned before with email there's rfcs xmpp is the same thing you have these documents would say Okay, great. This is how we layout the xmpp standard This is how you have to send the messages. We talked about the xml earlier. This explains how that xml actually has to look So Let's backtrack again How do you use your email? So out of everybody in this room? Can y'all name at least like three different email programs you use so you might be using Thunderbird Apple mail the gmail web client. What sort of stuff do you use anybody got any interesting email program that you use? Outlook outlooks another one so you can install outlook But if you go to outlook does it come with an account? You have to sign into an account, right? And what sort of accounts can you sign into on outlook? I think you should have google accounts too. Yeah, you can also sign in with the gmail account You can sign in with any email account because outlook is an email client So you have different apps for email, but you have the same account. So I have that account That's my email and I can use apple mail on it I can use k9 claws mail thunderbird whatever and you can connect and see your inbox see your emails send emails It's great. We're used to this idea of separate clients For the same email inbox. So the same thing happens in xmpp There's a bunch of different clients and this is not like specific servers But these are server software which you can install or other people are already wanting for you So for example, google used to run their own xmpp server. I'm not sure what they use. What's that? I believe uses a variation of ejabbert Fortnut definitely uses this and a few other like game gaming like programs use this one This is very corporate and adopted in those spaces Prosody is the other pocket of one open fire and tai gaze But the clients are just different programs like thunderbird like whatever where you can have the same account But use it on different programs. So gajim over here. This one's for linux and windows computers Uh dino's for linux. This one's for ios monal Conversations for android. So all these different clients, but you can access the same account like you can't with email. So that's great But why should I care like okay? There's this great ecosystem. We can send messages to each other You can sign up to this messaging service and romeo can send messages to juliet without our parents knowing that's great Why should I care? So let's start with the first big reason why xmpb is important in the modern day That's privacy So we mentioned whatsapp before what's that if you ever used it before every time you started messaging as a claim that Oh, hey, all your messages are end to end encrypted The problem with that is not verifiable We can't actually sit down and you know ask facebook for our keys or to generate them ourselves or to change them You can't do that telegram has a bunch of privacy problems as well The server code is not open source. We have no idea how it works Signal has a few problems, although it's generally better than most of them But the problem with all these regardless of how open they are is that you can never really know what they're running on their server Because you're not them like they could just okay one day They don't like you and they could just target you out and say, okay We're gonna collect not that that would happen normally But that's a possibility because it's not a decentralized system it's a single company whatsapp signal whatever running the messaging service and If they decide to do something or change it or they change the way it works So then they change terms and conditions. You can't do anything about it and privacy is part of that So let's go back to that romean juliet example By talking about something called omemos. So this is the fish from omemos If you don't remember anything this talks remember how pretty this fish looks so oh no Lord capulet has been looking at all juliet's messages on the server because juliet has not been encrypted them So he's the administrator of the server He owns capulet.com and he can go and look through all of juliet's messages And all the messages she's been sending to romeo because she's been saving the server So by using omemo encryption Let's exchange omemo keys. Trust me girls say that to me all the time. It's great like Let's exchange omemo keys that you just know you just know right but They exchanged their keys and then thanks omemo all these keys is garble nonsense. It's been encrypted basically So omemo i'm not going to get too much into it But most xmpb clients they could go on it and it's like there's a button that says omemo Just enable it and your messages are encrypted and it's secure and like we're good And the great thing about this is that unlike the encryption on telegram or whatsapp or whatever You can audit the programs. You know the programs are generating keys. You can read your keys You can have your keys like you own your keys It's your encryption and every device you add will generate new keys So you don't have a single key a single point of failure omemo is like really great like this is just this is fantastic So That's great. Another great thing that we can do so as you can see not even the server owner can see your messages Metadata so how many of you are familiar with the nsa quote? We kill people based off metadata. Have any of you heard of that? Yeah, yeah, we kill people based off metadata. It's true. It's true xmpp Has a much better track record with metadata compared to the alternatives like matrix Have you guys ever heard of matrix or yeah, you've heard of matrix? You've used matrix matrix is A metadata disaster. I was going to talk about it more but due to recent events I don't really want to there's a bunch of sensitivities in it because they're tightly linked to like Israeli intelligence. I don't want to talk about that because You know, we know what's going on But matrix is a lot of problems metadata. It used to have a lot more problems. They're fixing it But xmpp is a lot better with metadata. So basically this means stuff like the date your messages are to send at Where they're stored with xmpp? You're sending messages like you send a message that's what's sent over the network and if you delete the messages on the server They're gone and servers can be set up in such a way But they delete messages after a certain amount of days And so you can keep your messages secure by just not storing them Or showing them yourself and having the server delete them matrix is not like that because matrix actually stores a database here servers And synchronizes it across clients and synchronizes it across across servers And it's just awful. Like it's basically spreading your metadata everywhere. Like it's like it's nothing So the other big thing is that it's very lightweight So we mentioned matrix before here's what running a matrix server looks like a bunch of phython Processions used enough. You can't see it because at the top But this is like a lot of ram a lot of this is what it looks like on my server running matrix and then uh-oh This is xmpp Little little guy little little small resource usage So we can see how this isn't just great because he uses lots of resources Let's let's like think this through if this is what xmpp Looks like when it's running on a server that means more people are going to use it on the server Which means the network grows more decentralized. You're more incentivized to run your own So that's great. But we can go deeper. There's more. There's more to this This is movin. So When I say deeper, I mean xmpp has a lot of other features. We mentioned messaging But if you can send messages, what's stopping me from sending other things like apart from the obvious images videos, whatever What about articles and publications stuff like that? So this is something called movin movin is an xmpp client which supports something called published subscribe It's a standard xmpp which it's like rss where you can have a feed But the feed instead of just people Like actively listening to the feed and refreshing their readers every 30 minutes or so When an article comes out on xmpp it gets sent directly. So if you ever, you know If cod willing you ever go work at google google does this with something called google cloud messaging Where they use published subscribe protocols to send messages To devices and stuff like that like you have an android phone It's using that to send messages to it. But if you can send messages to stuff you can also send articles And so movin is a client to do that. I'll show you that at the end that presentation because it's really interesting Uh and now an exercise. So we really thought you just got away with like sitting here and not doing anything I actually have something for you to do So I want every single every single person in here if you have a device and I encourage you not to get your Laptide online that just get your phone any device you can think of and go to xmpp.org Ford slash software and for whatever device you have Download whatever the client which you think is the nicest is So if you go to that page, you'll notice there's this on it All this information and you can go down and scroll down and there's a bunch of software which you can look for You can sort by which platform you want. So here i'm on linux, but if you go to like windows for example And then go down You can see there's a bunch of windows programs if you go to like iOS these are the iOS programs. There's three But you can look through those and basically I want every one of you to Install one of those maybe set up like an account on something and just try sending each other a message Share your address and try sending each other message Yeah, maybe try enabling the o memo encryption before Something like that just see how it works to get an idea for how functional this system is And if anybody wants to try here, I have my address on my phone and my phone supports voice and video calling on it So if anybody wants to try calling my phone from their xmpp account, which they're making I'm hoping you're making it now Then we can do that because I do actually want to make sure that it's working And it's one of the features which people think xmpp doesn't have But it does have calling No, because you can just there's a lot of servers that are open to public registration So there's a bunch of servers which you can just go and ask for an account and it'll like on the client It should recommend a few. Yeah, so you pick a domain from a set of existing ones There's many out there you can go to a website where you can actually find all the ones that are open for registration But really the ones on a client are normally fine They normally include like some really basic servers Which a lot of people use that are open for public registration. So just use one of those and you're fine Oh, yeah, yeah, like I said xmpp is like going back to that thing I said about the email All of these are different apps, right? But they all work the same email system, right? So even though and the same account too if you have that account You can put it on your windows laptop on your linux computer anything because it's like email work It's a standard system even though you have different software for different platforms You can still connect the same account to it and more importantly talk to the same people cross-server So even though you're on ios even though you're on whatever like it'll still work See this used to be terrible like a month ago That's what I mean when I say like this stuff is evolving like a month ago Mono didn't even have calls like you couldn't even call people on that ios app But now it has calls and they're evolving the clients and we're getting to the point where this messaging system will Probably like they get better than it's already faster than matrix, but it'll get like feature parity I just realized I got a bunch of like xmpp messages I haven't read probably read these later What's in your area? Oh, yeah, yeah, so i'm like they're okay. Hey, baby. Can we exchange old memo keys? I keep getting a spam with that Oh, there we go. Oh, wait. No, this is oh, there. We are nine thousand Wait, let's get uh I never thought I'd be adding somebody with this username as a friend. Let's let's go Gator nine thousand at conversations that I am You guys ruin this present day try calling alex at dentistry Because the phone calling is always much better. Movin is broken Uh, let me add you as a oh here we go. I'm getting your call. It worked. Hello Hello, whoa, there you go. So it works. I had my phone silence. That's why you didn't hear it ring, but that's xmpp Usage so as you can see it's just a normal messenger as you would expect I want to show you one more thing. So back to the presentation Um, let's read some Movin. So Movin as I mentioned before is basically this Movin lets you Read articles do something called publish subscribe So if you go to the community servers page here in Movin, uh, this is the one that I was At least one of the ones I was subscribed to and you see there's a bunch of ones over here And here's mine. Mine's super popular because it's on the front page But these these publish subscribe ones as you can see you can give them custom names and mine is named dentshi's propaganda pub sub node because that's what it is, but These sub domains so mine's my server is dentshi.org my publish subscribe node is pub sub dot dentshi.org So your services on xmpp are hosted on these sub domains So if you have like an image upload service, it would be like upload dentshi. Don't look at like the inappropriate ones I've been trying to cover these are this is french. Okay, so it's their fault. They're the ones adding this stuff These are just ones that exist. Oh, yeah, this is the list. You're not subscribed No, no, no, this is not this is my subscription No, but you can go through and like read these are ones which people have historically subscribed to so, I don't know news.movin.eu has a bunch of publications from different like Different news articles so you can like read artist tecnica on it if you want to These are published directly through the pub sub node So when an article like this comes out in the same way that you will get forwarded a message and it immediately gets to you Because you got your client on this does a similar thing for articles So this is why google for example doesn't use rss internally. They use pub sub and the reason for it is because it's instantaneous So for all their like sending data around and like notifications and cloud stuff. They use publish subscribe So, yeah, you could explore different Bob Menendez you can read about the u.s. Senate or vatour illatric Uh, man, my friend just got my friend just fallen off But yeah, their most popular one is news and as you can see it's just a bunch of like things and you can actually What's great about publish subscribe is that is that xmpb user you can actually create your own Note on this and start publishing articles directly from your text client But that's a bit too far out for this kind of talk. I don't want to get too into it. So Thank you for listening. Does anybody have any questions about this anybody have any further inquiries like anything else Do you want to know about xmpp? I've been using it for like Two years like I'm pretty I'd say sort of experienced in it. I think it's a pretty good chat system If you were using matrix before matrix is horrific when it comes to resource usage internet usage Like it uses so much bandwidth it copies over entire chat. It's not a chat protocol It's a chat history synchronizing protocol, which is why it's so slow on older devices It's just awful. So xmpp is really good But as anybody have any questions or anything like that they want to ask anything like any further clarifications anything like that No, well, all right. Well, I've been denchy. I hope you enjoyed this presentation about xmpp um It was fun having a 9000 call me you just like I can't upload this to my channel anymore because of this this is horrific But thank you so much everyone for listening. I've been denchy Goodbye