 I am the Fedora project leader and this is a Fedora council video meeting Fedora council is the top-level leadership governance body for the Fedora project We try to not conduct our business via meetings because meetings are terrible But it turned out that not having any meetings meant we were getting a lot of things piling up and not getting done And then we also wanted to have some high bandwidths kind of things where we use You know video to actually communicate rather than doing a lot of typing back and forth Which actually typing back and forth is what this particular call is about because we have Matthew Hodgson here from element Matrix new vector. I maybe he can actually explain what all that is all about And we are in the process of setting up a thing chat that Fedora project org which is based on matrix They are hosting it for us. It's an all-open source thing and It is basically a next-generation alternative to IRC I would say and this is partly a work that some work that We've been working on the Fedora council in Fedora for a while where There's a huge amount of work that goes on in the Fedora project every day every year on there's something like 11,000 I haven't done the accurate at number now, but a thousand video or chat meeting text chat meetings every year in Fedora that happened in IRC We have a lot of email going back and forth but these days IRC especially but even email are kind of Arcane ancient internet protocols to a lot of people and It seems so all that activity is you know basically happening underground in the project and IRC has a lot of things that make it Not not just that it's an old protocol But just some of the way it works are barriers to entry for new users So we've been looking at providing a newer chat platform to people And so that thing that we've selected and will be launching soon is matrix-based So I guess I'll turn it over to Matthew here a little bit to talk about Matrix and element and all of those things Awesome, thanks Matthew and some thanks for inviting me to come and talk to everybody and Please button with any questions at any point I should also apologize first of all for any background noise because I am in what looks like a kind of Victorian Tardis interior, but actually is the role. Let me get this right. It's the Royal Society of Chemistry where I know I've been here for a Thing for element during the day and they're going to keep me out at half past. I apologize, but they gave me a room which is It's really amazing. It looks like you've got some sort of super elaborate fake background, but it's actually the genuine Yeah, wow Very silly if way and thanks for giving me the opportunity to explain matrix and elements and you're right that the Names are confusing Nowadays, you only need to worry about sort of two names to get up and running One is matrix, which is the open source project and the protocol that we've defined and I quite like the Characterization of it as being a modern IRC because that is completely shamelessly what we were aiming for when we created it back in 2014 because we were and still are massive IRC geeks I've been IRC opping a Tolkien network since 1999 Which gives you an idea of just how geeky I am and also how entrenched IRC is in our culture And in fact the company that Ended up emitting matrix started off at university as a student college IRC server Which we continue to run for five years after everybody on the server had left the university because we left it built into a wall eventually they did To do some building works, but it gives me an idea of how serious IRC was for us and It's kind of frustrating because we were running Our little startup at the time doing communication stuff lots of sip lots of VoIP lots of kind of SS7 and PSTN stuff And we did it entirely of IRC and we were very very smug because it felt like a huge Advantage to get stuff done and obviously in the open source community. It's an o-brain of the back in the early 2000s Everything happens over IRC and yet here we were doing both a bunch of open source stuff I was hacking on video land and deaf and fan-peg and stuff at the time and also just for the day job Everything happened over IRC and then when Slack came along and people started to say wow You can actually use chat rooms to get the job done This was not exactly news to us and it was a bit frustrating because you know if somebody had done a IRC as a business start-up 15 years earlier than perhaps lack Would not have got quite the momentum that it does today Either way what we did was to create matrix as a protocol based on years of geeking out on IRC and other communication protocols and it was really a thought experiment of Why isn't there a standard API for doing instant messaging like? If you want to send any kind of text message on the internet you've At the time you have a choice of X and PP where you're having to kind of custom TCP line protocol And you go and chuck blobs of XML over it and the XML doesn't really demarcate the tool There isn't actually a kind of knowledge. It seemed it seemed like a good idea at the time I think is the summary of that one Yeah, and I mean we we ran X and PP servers before matrix We had a bunch of each other D is a bunch of open fires And we wrote lots of X and PP clients But we felt that we were fighting an awful lot against the protocol to add on things like message history or push notifications And no, this was seven eight years ago. Obviously X and PP has moved on a lot since then has got a lot better But at the time we kind of thought if you were creating a new protocol from scratch in 2014 what would it look like? Well, first of all, it's obviously going to have an HTTP API because everybody understands web service APIs and you know sending a message should be an HTTP put to some endpoint probably called send message And you give it to Bob adjacent with the contents of the message and then you've sent it and then to receive a message You're probably gonna know the simplest thing in the world The most stupid solution possible would be to just get a sync API and it will block until there's a message And then it returns the message and that is all the matrix is it's just a standard HTTP API for sending and receiving gloves adjacent in real time Now it does have a slightly interesting additional facet Which is that it's not just message passing by email or X and PP Instead, you're actually replicating a conversation history for a chat room between the various different users in the service So the full story Is that if I'm sitting here on matrix org I might do an HTTP put to my server It might say that you're in the room on fedora.i am or Fedora's org or whatever the main Ends up being and it my server will then do an HTTP put to your server Um, and then you will receive it by doing a get request on your side So it's a classic trapezium style Put put get kind of model, but the trapezoid in america Oh really you don't do trapeziums. Yeah. Yeah, right. It's totally different shape. I mean the same different name for the same shape so, but As long as I mean Trapezium trapezoid is I know it's scaling rhombus or something. I'd be completely freaked out at this point Okay, so it's trapezoids reaching Mechanism, but the fun thing is that you're not just passing that message What you're actually doing is replicating and synchronizing the copy of the room on my server with the one on yours And tech speak what we're technically speaking It's much much more like git than anything else that our servers are building up a direct today's circulate graph They've signed messages just like a git repository is a bunch of signed commits in a graph It's literally the same data structure as git frankly every time I send a message I'm effectively pushing a commit onto my version of the room And it then goes and pushes it to your version of the same clone of that same room and this is Surprisingly subtly important just like the first time you use git rather than subversional CVS or whatever Everybody has that sudden. Oh my god. I've got the entire repository on my sort of local machine here Everybody's got a clone. There isn't one to truth. GitHub isn't the truth It's just to pay it to my one on my computer and people have that epiphany So people have the same epiphany with matrix But there is no longer any single point of control or failure that the copy of the conversation on my server is Just as equally valid as the one on yours is as valid on the one on element.io or any other server, which is participating Let me ask you a question about that. How does moderation work in that model? Is there I mean, so if I do a git revert or whatever on my git thing I can't very well push that to all of your repositories How does that work for matrix moderation? Yeah, so we kind of approached this really pragmatically and thought okay How do I make sure that when somebody kicks somebody or they ban them or they try to speak That everybody else participating in that room gets the message and acts on it correctly We kind of approached it as an engineering problem and thought well, how would I do that? I should probably prove to you that I'm allowed to kick you and so every operation you do in matrix contains a little proof Which is literally a Jason array of Events which have happened in the past which demonstrates to your server why my server thinks I'm allowed to do that operation So if literally we were having this conversation though for a sophisticated open source technology like matrix rather than blue jeans Then I might go and kick you from it and I will say hey, I'm kicking Matthew And the justification is that I am I set up this conference. I created it. I'm an admin And you can see that because I joined at this point. I created it and I got given this power at this point What you will do on your server is to execute the proof against your version of reality And you literally use the same algorithm on your server implementation to say well, okay Did Matthew Hodgson create the conference? Is he allowed to kick me? No, he is completely lying He's a bad actor. He is coming up with fictions and I'm not going to Accept his kick event and so as long as everybody in the room Is executing the same proofs every time they receive a message Which is pretty quick because it's literally just running it through a series of rules to say whether you're allowed to do The things or not Then you get effectively decentralized access control Now the interesting thing is what happens if there are net splits and you have partitions and what do you get if for instance, somebody Maliciously sculpts a message that they fork from the very beginning of time so imagine that you like check out the Linux kernel on git and you go and Push a commit against the initial commit and it's got some badness in it And then somehow that gets merged back in later on that's quite a No fiddly malicious thing to do but in the matrix. Well, that could be pretty catastrophic if you say well I actually didn't you get the message that I did get power levels right there on day one And you were just net split at the time you didn't get the message Then there is scope to try to manipulate it to do nasty things So we have this thing called state resolution and it's the most sophisticated bit of all of matrix And I apologize for people that we have gone straight into the end I I feel like you've been talking to politicians and you're like oh now finally I can let the geek speak flow, right? Yeah, oh, yeah, so I might have overstayed a bit I promise everybody I'll come back up to like The surface in a minute. But if you're interested in the decentralized sort of Architecture of it. This is the crown jewels because you basically need to define a merge resolution algorithm So the if my server has out of sync with your server and your one No says that I was given ups and my one says that I banned you How do you resolve these two things together in a consistent way? And interestingly when we first implemented this we got it wrong and we didn't really realize how wrong it was for a few Years until weirdly enough somebody noticed it and exploited it and started taking over rooms and Breaking rooms and it was all very embarrassing and we had a far drill to Redo the merge algorithm and this time get the rules right and this time prove mathematically formally that we got the rules right So that it wasn't Subjects of abuse like this now the interesting side effects of this is that according to Karlsruhe Institute of technology and the decentralized systems research group This is a new field of maths or at least computer science called Congratulations access controls without finality where the first people apparently to have figured out how to do decentralized access control without basically taking out a lock like sealing a block on a blockchain Or an afs or something you would literally have a global lock to try to make sure that the file system is AFS awesome The flashbacks, yeah, basically trauma flashbacks right there I have actually have a question from the comments here is If it's like a get repo is basically is a home server like the repo or is it on a per room basis? Or is it what what is the repo? Yep, the repo is done per room and the server Holds a copy of the node and the client itself is very thin and very stupid So we don't expose any of the funky um graph data structure to the client at all. It's a bit like a um I described it. I mean Yeah, if you were using a git web interface like git here or something or even the git lab or github Webfront and that's more like the matrix client and it's just talking a really simple htp interface to the server Which is then actually where the repo lives and is doing the funky stuff for keeping that I'm saying One of the interesting things I learned as we were setting this up is that Messages like someone so and so joined the room and so on that show up in the chat are actually Protocol messages happening that are being exposed in the client Or in well, yes and no, so okay What I've learned is that if you delete those messages it could actually cause the thing that happened to be deleted not just the The Right, like if somebody if you if you change the room avatar and you delete the message that the room avatar was changed You revert the change to the room avatar, which is surprising So complicated Other than the bugs it should be absolutely It's quite a nice solution I think so basically the primitives you get in the matrix room are the timeline which is just a series of messages Which can fork and it can reform if they're in that splits, but it's just like the git repository idea You also though get key values in that room. So for instance, who is in the room? What are their avatars? What's the room avatar? What's the room name? And if I any key value you like It's completely freeform and we use kind of java style reverse dns namespacing so that You can go wild and you could have a org dot fedora dot Coffee pot event or something which would track how much coffee there is in the pot And it'll be specific to you or whatever It's basically allowing you to replicate around the decentralized hash From key values. I won't use the word decentralized hash table because that comes us up completely different mental images but the end result is basically you're replicating key values around the place and These appear when they get updated like normal messages in the timeline It's just that they also happen to be updating a key value thing. So when you change your avatar It literally is in some way a normal message But on the other hand it also updates this table which is then used by clients to track what people look like Now if you redact that which is the term we use for deleting the message how it actually works is to Delete the human visible information So you're right that if there was semantic information like Matthew joined a room or Matthew kicked somebody the the actual kind of skeleton of the semantics would still be there But if you redact it then it ends up deleting Anything human visible like the name of the person when they did it or the display name or the avatar of the person when they did it Which is what I think you're seeing there So it and one level it has removed the human visible stuff So it it did revert the name change and it's kind of a moderation function to stop people If they turn out with an abusive name you want to be able to as moderated delete it But you also it would be horrible if you Took an immutable thing because matrix isn't a mutable data structure And you could actually go and somehow delete the fact they entered the room and that kicks them out of the room It gets really icky so one of the One of the things I somewhat related to this that we want that doesn't exist So we have a room that is supposed to be for announcements And I found that that room is not a room for announcements It is a room for five days worth of people who don't have permission to post in the room joining and part leaving the room So would it be Possible to make it so that Those join and part messages aren't shown to clients when the person doesn't have the permission to post Is or is that is that like an implementation detail? Or is there something deep that's hard in that? Bit of column A bit of column B So you can fix it on the client by just hiding joins and parts and you can do that an element today I think you can do it on a per room basis Yeah, there's a bunch of stuff that cannot be hidden. It's frustrating. Um, but that's details. Um, interesting I I reckon that there should be a join and part thing, but it might be global in the you want All settings an element and um with what we call granular settings, which are a bit like your good old GTK configuration files where you can drill into any level of granularity you like in order to override a setting Um, we can expose that in the ui an element to make it easier to hide them But it's still a bit of a waste of bandwidth because it's not going to be downloading all of these random joins and parts all the time So a much better approach would be what so we call auditorium mode Where the client just is never told about the members of the room apart from the moderators And I filed a bug for that about five years ago and I'm afraid it has not yet hit the top of the to-do list All right I'll look for that now that I know auditorium mode because that's definitely a thing thing we're looking for. Thank you That was a sidetrack. I forget what we were actually talking about but that came to mind Three levels deep in the stack We were talking about decentralized access control, but I think we bottomed that one out before that it was names And what is matrix? And I never quite got to say that matrix is a vertical but element is an app And oh, yeah, that's where we were going. It was all right. Yeah, all right So the kind of it should be a pretty familiar model because matrix is to Linux as I know red hat is to element If I've got that the right way around or basically elements is a red hat equivalent But for the matrix ecosystem in that it's a random text data Which is the profit that is employs a lot of people who hack on matrix just like red hat Has employed lots of people who have on the Linux kernel and it's slightly different in the I founded element I also founded matrix with my co-founder amondine And it's more as if what if linus had gone and done the Linux startup If I think he briefly did once possibly but That's more the analogy But the point of element is basically to pay for the matrix core team to keep hacking on matrix full time And also To be a flagship client because a lot of the open source and open protocols that precedes failed We think because there was never a good app like what what was the killer app for x and pp? iMessage possibly like Google message. Yeah. Yeah, and then they decided to not do it so that That just made my phone ask how it could help me. So, uh, yeah You can't have this at dystopia All right, you seriously Yeah pigeon pigeon is the killer app One one comment Alexander made a long time ago is I'd said this is going to what I forget what I said about IRC An alternative IRC. I think it more of an enhancement to IRC in a lot of ways We are actually bridging all of this to Libra chat and all of our official rooms at this point or most of them are bridged Um, I don't honestly that people ask me about this I don't want to scare the IRC folks away. I know we love IRC, but um I really think we need to be matrix first for a lot of our decisions when when there are things because our The bridge is always going to have some mismatch and trying to Decide to things that always work perfectly on IRC I mean we're held back to things that work perfectly on IRC Um, so IRC is always going to be the other side of the bridge. I think um, and you know if If you disagree come talk to me I'll be happy to take your criticism on that point But um, I think that's the way we've got to go if we want to make if we want to move forward And I think we need to move forward I mean as I said, we are and still massive IRC fans on the matrix side from the first bridge that we wrote back in 2014 was the IRC bridge and I think as of the last couple of months particularly after Libra came online Um, we have hit the kind of platonic ideal of IRC bridging in that we have We bridge absolutely everything that we can as faithfully as we can Um, which is not the case until Libra frankly And what can how can I put it they? Encouraged us very strongly to improve the bridging semantics to be the optimal solution before they would let us turn on the bridge between Matrix good for them Yeah, no, I mean, it's fine. It's fair enough. I get it if I was throwing now See now all these annoying matrix people turn up and they keep editing messages and doing reactions and things I feel pretty upset. Um, so they use the opportunity to reset things and we did so and they now have an official Matrix server so you you can join rooms or channels on Libra by going to hash Whatever cologne Libra dot chat on matrix. So it's very very transparent and the improvements that we did were to improve So I can I can join an arbitrary Libra chat channel. I had no idea That's I'm going to go join some right after this meeting. Uh, yeah, thanks. Nick says it's what uh Basically channel at Libra chat. So they've got okay. Well, that's that's cool. Um, and super useful So we could actually double join our channels for Um, oh, please please don't double bridge Yeah, um, I sorry, I just went to the horrible horrible approach right away. Um, yeah, so um in fedora. We're basically offering Um, two things here. So we have well if we have three home through two home servers and a client basically so The main thing from a End user point of view we're offering is chat dot fedora project org, which is basically a hosted instance of the element web client So you can log into that Matthew, you know, this is for the for the audience at home, right? So you can log into that and and that basically access the fedora chat thing and a lot of ways that is the Preferred experience because that will automatically connect you to some of our spaces and rooms And so you'll kind of get things set up the way we're planning to have them set up for you But we're also Since since it is this distributed protocol You can actually connect to those spaces and rooms from any other anywhere else on the matrix basically and so We have two different home servers. One is the fedora project org home server and all of our official rooms our channel name fedora project org and then We have we may have like a bot account running with the fedora project org matrix address as well Then all of the user accounts are fedora dot im Accounts and so you'll get username fedora username fedora iam account And then you can also set up informal rooms and spaces and things using that that namespace if you're a fedora project member and you know Basically our rule is and we're still working on our policies, but as long as it's fedora related in some way You can use that space for that, but you know, please keep it fedora related because we do not have an infinite number of resources here that's basically it um Yeah, anything else you wanted to share with us So much so much So on the rc version side of things the fixes that we did were to improve how replies look So that they actually look idiomatic for rc Something that we haven't landed but will land soon on the bridges Is also the ability for the bridge to disable features on the matrix side So that if you happen to have some existing rc channel And people want to communicate with the subset of matrix which doesn't have reactions or edits or typing notifications or any of the stuff which Where a matrix exceeds rc you would actually be able to negotiate it to turn it off So I imagine for the fedora once you want it on because you actually want to have the emoji and the No reactions and all the other richer stuff But if you are going into I know hash hash linux or somewhere which hasn't changed since the nineties then Yeah, it basically will try to give the most faithful bridge impossible. It's basically an important mismatch in engineering Right. Yeah, and so we'll have to see how this goes But actually one idea I actually have is that if we find out that that's causing more frustration than good We can keep our bridge rooms, but put them in a irc bridge space and have that be the irc Bridge section and then have those. Yeah, I didn't know about that possibility But that would be perfect and basically have all those just be this is the these are the bridge rooms And then these are Have, you know separate rooms that are not there and that may be For you know for like the pound fedora channel that's been around forever and has a lot of irc culture Behind it. Maybe that's the way. We'll we'll see what happens when we eternal september that channel with our new server that that's I think the biggest risk is if people are using reactions for semantic purposes like To agree with somebody or to vote on something And we don't bridge those to irc because seriously how would you it would be horrible if every time somebody sends a thumbs up He got literally a random thumbs up turning up with the message posted again Then I think that might be the point where either you decide so matrix is primary or irc is primary Yeah, that's like like twitter dm notifications do that. It's terrible Um, right. Yeah, so that is a bad thing. I'm glad you don't do it. Um, yeah So the question is matrix compatible with like meat bot for logging meetings. Um, I think I can answer that. Yes It basically works over the bridge Although sometimes some of those rich things get a little bit confusing I think one of our bot things that we have for irc we use we do username plus plus gives you cookies And in matrix when you complete somebody's name it puts a colon after it and our bot doesn't recognize username colon space Plus plus as they cookie granting thing. So yeah, so yeah, I mean, you know, it's fine. I think probably fix the bot there is The thing to do I think eventually we probably want to make our meeting bots matrix native. Um, which is uh That way we can have the bots do things like keep track of the reactions. For example, I think that in particular is a useful thing right there We we could actually even use the you could use the reactions for semantic things where you could actually use the reaction to tag something in the meeting as Oh, yeah, we need to put this in the meeting minutes rather than actually Basically use the the reactions to annotate. I think that would actually be really useful Um, we'd have to then have the bot regenerate. Anyways, the work work to do there, but I think that would be cool That's precisely how we did it actually for fosden. Um, the big European open source conference which ran on matrix this year And every single talk that they had and had like 666 talks, not really scary Um, and each one had a green room where the presenter and the kind of moderator Would hang out whilst people watched the talk and then you'd have a live q&a session afterwards And what the bot did was to count the thumbs up on the questions Which were presented for the audience whilst they were watching the recording of the video And then summarized them and presented them actually as a widget Which is a concept we have in matrix where you can basically iframe arbitrary web content and embed it in a chat room So you basically almost Almost all content because a lot of it does not like to be iframed these days I Yeah, this is true. This is true. We you get to know banana graphic if i remember correctly if you try to iframe something Which has a x no frame header on it or a cause having to stop you from getting at it A lot of the stuff I wanted to put as widgets in a fedora infrastructure is protected in that way already unfortunately So I need to figure out some workarounds for some things Just go and buy the sre's a beer or two and Yeah Get them to special case the headers for your Yeah, um, well, I'll just figure that out. Um See yeah, one of the other neat things I saw with matrix reacts. There's a um This weekend matrix or something. There's a matrix weekly news So it's just a a channel where every week the bot goes back and scrapes and looks at the different reactions He actually use a different emoji for what category of the newsletter this is to go into So, um, I think that's kind of fun and we could use that for we could also You know Use that for things that get a certain number of votes get put up as highlights. That seems really cool I'm very interested in setting something up like that once we get time to do that because I saw one of the most um hilarious and that hackerish uses of reactions ever yesterday Which is that we've got some a moderation bot called me on it Which is open source and it's Is designed to let big communities go and like enforce bans. It's a bit like an egg drop bot back in ioc days And um historically its user interface has been completely playing commands. They'd like playing ban Whoever or playing kick or redact or whatever and it's a pain particularly where if you're under attack and People are brigading a room or something and you're sitting there on a mobile device typing exclamation mark redact and a matrix idea. It's a huge pain and as of yesterday They merged on this user interface. They call it rather comically where rather than having plink commands You just have lots of reactions every time something happens And so you basically start off giving a menu of like eight different reactions It's like one plus one redact plus one ban plus one kick etc And then you just have to go to click on the reaction button. I'll have to see what that looks like And it's basically diy forms in a really simple sense hacks using reactions So it's literally just one clicks if you increase any of them beyond one then it will do the action for you If that makes sense, it's a stupid stupid hack a bit like people on facebook or whatever saying Hey vote with a different emoji depending on whether you believe in hacks or not Yeah, it's well, that's Pan pandering for likes is what that one is but um I had another thought but it's come entirely escaped my mind. I'm here Um No, what what interesting things do you think are coming in the next couple years in matrix So spaces was this big feature that just launched and it's pretty important to how we're using it in fedora We really because we have so many different channels organizing them with bases was basically mandatory for us Um, what what else is exciting that's coming up other than the auditorium feature obviously So there's um the kind of second phase of spaces is synchronizing access control based on space membership Also hierarchies of spaces. So you have that today, but the ux isn't fully um finished But that's what I'm most excited about because it allows anybody to curate a hierarchy of spaces a hierarchy of rooms and This thing can be public or it can be private And if you combine that with the decentralized ACLs that I was banging on about earlier You actually end up with a global hierarchical namespace where you can delegate control to anybody you like And joking aside, it's a little bit by a fs or coder or one of these Distributed global file systems except it anybody can join it. It's by some time for tolerant and You actually have strong ACLs So if you think that's a use net and all the drama about getting a new news group added and You know, we're going to have spinters in the namespace and we're going to have the alt dot namespace and all that sort of thing Of different moderation policies You could do the same thing with matrix and basically carve up every single chat room there into a great big taxonomy It's like the sort of quintessential On the ontological problem of going and trying to categorize everything and say a kind of have animal vegetable mineral or whatever Criteria you have and everybody can do their own one if they want or they can pile on Pick a root and start curating and it's a bit like demars or one of these Kind of ground and classification projects and I cannot wait to see people using spaces for that And unlike those things, um, I don't know if any of them had links But a space can belong or a room can belong to multiple spaces rooms in the same hierarchy as well So if you have a categorization problem, you can put things into two spaces and be like here It's both places Which I have a terrible terrible thought based on something you said earlier about distributed hashes Can't can't we just use matrix for nfts instead of burning up the planet using blockchain for it? Oh Yeah, I mean if you want to start using matrix as a kind of immutable Chain you could but what the character the properties we don't have are double spanned and The global lock there is never one single truth in matrix that I don't know if you're on the fedora project server And I'm on matrix.org and the two net split and we just keep randomly talking on our respective servers to ourselves And I might mince an nft on the matrix server Which is all very well, but it's not a globally unique thing because there is never a global lock if we never Heal that net split all I've done is to create some signed data on a data structure on my desk That's just I can get you could you can't nft get commit because if you don't push it anywhere then Big what what does it mean? Oh the big what what does it mean actually also applies to the other ones as well, but I'm getting trouble saying this on youtube, I don't know I know the brilliant thing about nfts is that the It only works because of the scarcity of it being a novelty thing that it has value because people don't know what they are And they have to tell their mate, but I Square patch you yeah On the moon or whatever right it sounds very it is very much the square mile on the moon. Absolutely. Yeah, or the names of stars and the scarcity Immediately banishes I can't wait to see what happens to the price of the things. Yeah, right. We should probably not crash the We'll get this the most popular most downvoted fedora council video ever Um So other things coming up. Um, we've got a native matrix video conferencing coming up in a few weeks. Hopefully we're aiming So does that um, how does that fit with what we're paying for in fedora already? Is that an add-on thing or is it? Um, you would so at the moment, uh, you get jitzy integrated, which is great and we love the jitzy guys Um, but it doesn't um tool matrix. It's not integrated with the access control model It doesn't directly use matrixes end to end encryption and it's not decentralized So if your jitzy server goes down then it's curtains for everybody on that call Whereas matrix, of course can just be used for native proper video calling and we've always had it for one-to-one calls But we've just finished adding in msc 3401 written by yours truly if you're interested um that adds it In adding group video and voice calling and it just extends the one-to-one stuff to work with groups And it's kind of fun because it's a meta protocol. It's not Saying they'll shout do conferencing a matrix in this manner It's basically giving you the building blocks with which to build a conferencing Approach so it could be a stream forwarding unit like jitzy or it could be a An mcu a multi-point conferencing unit Polygonals, but from a pragmatic point of view, are you also building an implementation of that in the element web client? Yep, and we have it on a branch of element. Um, we actually realize that it's By baking it in specifically to element It would slightly limit its appeal. So we're actually going to launch it at first as a standalone web app very similar to jitzy Um, it has a name, but um, I'm not going to announce it yet But um, it will be talking on matrix and so once element itself does have it natively built in And or any other matrix client, um, then you could just hop on And it's designed to be really easy for the clients to implement if your client can talk web rtc Like I think um, neco can as a native matrix client Obviously anything in the web browser has it automatically. I think caternion might have it by qt six or 5.6 or whatever. Um, then you would be able to pretty easily Make give jitzy style capability Within the client, but the really fun thing is that it's decentralized so that if You have I know The conference like this one and people doing it literally over matrix rather than blue jeans We might have 10 people on the matrix.org server and we might have 50 people on the fedora project server And if something did go horribly wrong on one of the servers or there was a net split All that would happen is that the people on the local server would still quite happily keep chatting to themselves so if you're thinking of it in a Geo distributed office context and I know you're in australia in australia's bat bones go down But everybody locally in the office can still keep chatting to one another or in the same country can keep chatting That's super powerful and like you normally have to pay loads of money from some funky Cascaded conference inventors like blue jeans to try to provide something like that and in practice. I don't think anybody does so does that Just one of the things with the jitzy thing that we're missing The permissions in the jitzy thing are not linked to the the matrix rooms at all will with this will that be solved? Can I make a call that? Well then good. That's a straightforward answer. Yeah, so it'd be nice to have a room a chat a you know Linked to a room and then people who can speak in that room can speak in the thing And if somebody gets moderated in the chat or they automatically get kicked off the conference Perfect So it's literally using the same well the the web rtc signaling effectively goes over The same thing that you would use for sending messages So all the same normal rules apply and all of the end to end encryption you basically get for free So then the second question is Streaming and recording options. What are those basically? So for jitzy what you do is to have a headless x server That you run chromium in and you pipe the virtual frame buffer into ffmpeg and put it to disk That is all what gibri does which is the tool that jitzy shared in order to record jits And we would do precisely the same thing with the catch that we're going to make very sure That the little web app client Is predictable in terms of what it shows on the server because i'm sure anybody who's ever tried to record and jitzy is familiar with a slight pain Where you have no idea what the server is going to be recording and you discover you've recorded an hour if somebody's ear or like Yeah Yes, that's very frustrating. Um Or yeah, no video from the speaker for some reason on the recording Oops just decided to pin to somebody because the active speaker detection wasn't working all that stuff So it's just got a lot of moving parts. It's a great product We love the team and they use matrix for the end to end encryption But it would be even better if it natively taught matrix. They're not going to do that So kind of mohammed had to come to the mountain as it was Okay, so with with that will it be able to just do like the jitzy.org thing Or jit dot whatever it is You can basically stream it to youtube It doesn't have a like a thing that will generate a downloadable file for you Can will this do that or do you can you do that? So we can actually do that today with jitzy. It can chuck out hls um, http live streaming It can also stream our rtmp the last relics of flash over to youtube, right um, but so yeah We would swap it out. So you get the same thing for the new generate next generation The the thing that I like about blue jeans that we're using right now is after this call I will get a mail that says your video is ready and there's a web interface with a link to it where I can Download it or share it. That would be a nice feature You know that jitzy doesn't have as it is Something I should warn is that we probably won't be hosted in fact We definitely won't be hosting that for free because yeah mentioned Fair that's dps for anybody who's recording one of these and yeah, most obviously will be open source And you can run it yourself if you want to do it yourself To do it at scale it will be a paid element Thing yeah, if you want us to host it for you that makes sense and we'll look at the options for that when that comes out Yeah, how many should we see about Does anybody else have any questions Either high level or deeply technical We clearly have room for both here Mo says logging what's the question about logging are there clients that enable local logging? Yeah, I guess this is some of our irc folks like to have a local log And are surprised that the log is a thing that belongs to the server. Yeah, she says crepping my irc logs is a gold mine So the good news is that as of Monday, we shipped element web 1.9.1 And that has the first time ever conversation export in it And this was contributed via a google summer of code student called jwamp who did an incredibly good job Let's sing way by himself over the summer and single handedly implemented this huge logging capability Where you can basically take any given room And you can export it as html or irc style utf 8 or As jason for structured logging and you can say hey, I want them that the last six months last 20 000 messages I don't want attachments. I do want attachments or whatever So this is a huge step in the right direction But it doesn't give you real-time logging of the way that mo or myself would love to have Because and I've still got all my xchat logs dating back to the liners and I really miss that So we also want to improve the server side search a lot And there's the perverse thing that we do support client side search For um end-to-end encryption because you obviously can't do that server side because the server can't see the messages So in element desktop, you actually have a encrypted SQLite database Encrypted with sql cipher, which contains all of your end-to-end encrypted histories so that you can search it locally So we're tantalizingly close to actually having greppable logs. They're just encrypted logged in the sqlite database And specifically for the encrypted rooms. So long story short, we've got all the infrastructure in place Lots of people would love it and I miss scripting my irc logs too All right, another question is some clients don't respect the message callback operation So the deletion event is not replicated and all the connected clients any plans on somehow making that uniform across all the clients No, it is a um causality paradox. Unfortunately We can't force the humans or their computers to delete messages Even if we awesome very very much the any way we could do something like that would be via drm at which point We all go to hell so I mean honestly, um It's a feature that if I try to delete my message, there is no way to reliably force anybody else to do it Um, I have yet to see any server go and disable redactions You could obviously write in your own server to disable it On the clients all of the normal ones should and it tends to be such a socially important thing in matrix That if somebody posts a password into a room and then wants to redact it and they accidentally go and send a Selfie that they thought they were sending to their other half and actually goes out into 25,000 person chat room you kind of want to be able to remove it And so I haven't seen a native matrix client that ignores redactions for a long time But kashdeep, do you know what client you were talking about? I bet it's an irc bridge because obviously message goes out over the irc bridge and irc bless it doesn't have redaction semantics you're screwed and Yeah, what does what does matrix do does it post like it whoops, please ignore It's like send an emoji of an eagle or something Yeah, right, so this was an irc this was an irc bridge chat And so actually honestly this might be another reason for that thing I was talking about earlier which is to separate out the bridge channels and the matrix channels So people know what to expect on the other side But I don't intend for us to do that now But if we end up coming up with a lot of problems and this becomes difficult we have that option Yeah, nick really wants the main rooms bridge and nick is one of our tireless irc and matrix admins. So I think that's a last resort thing I guess the rough impedance mismatch is to the I know frankly IRC is effectively a public media particularly in a public chat room obviously and Just as you can't force people to delete messages if people do pay something stupid Then the worst case people are going to start taking screenshots of it before it gets Redacted so the analog gap is always so it's a bit of a fool's errand to try to Make the deletion successful there But if you actually want more privacy And you want a private chat room event went encryption and obviously in the fedora context This is going to be a lot rarer a bit imagine that you got the security team coordinating on some release And it's a really sensitive disastrous issue. Some of these being printing ssh Private keys with the same You know how we're going to do that we're going to be doing that on the phone actually so Well, I hope not given how insecure the phone is Yeah, well Yeah, obviously we're a lot lot lot better than gsm in terms of security but basically That kind of breaks a bridging scenario because if you are relying on the signal style end to end encryption that you get In the private chat rooms and matrix and then somebody wants to be dm'd Obviously is obviously not end to end encrypted. It's very often not even transport layer encrypted So You would have to compromise the end to end encryption of matrix to go for the bridge terminate the encryption at the bridge and then send it out plain text as rlc So that's obviously not ideal from a privacy or a security perspective And that's another point where you might want to say actually bridges aren't the right tool for this because we want matrix for the security But for a very no domain specific thing like a security response Okay um, yeah Nick you've been doing a lot of work on all of this. Thank you very much by the way You've been doing a huge amount and really appreciate that Do you have any questions or comments or observations you've come up with as you've been doing all that? Not to put you on the spot too much, but maybe a little bit I've figured most of it out and thanks to um The matrix people that are in our channel. We've been using to discuss all of that um The comment which I don't know that there's really a way to solve it because I know they explained to me that it's because of limited connections, but um the thing about how Um, if you're idle in a channel, it will kick you Ha I can explain that one. Um, so that is part of the contract with Libra and before them three nodes where they don't want a situation where random people Passed by some channel on IRC via matrix and then they close the matrix client And because matrix is a persistent chat idiom And that doesn't kick you out of the room like it would if it was an IRC Client where obviously if you close the connection you leave the server and you leave the channels on that server So it would be very easy for some random flyby person to go and experiment with matrix join hash fedora pound fedora and then Close their client and never come back at which point the bridge would otherwise be keeping that connection open um to the IRC network for the rest of time And that is like literally just going to keep um Stacking up resources and they're going to keep randomly replicating the messages down the tcp socket to the bridge And it will just be stacking up patiently in case bob ever comes back So, um, I think it's very relatively reasonable that the Libra and the three node guys before them Said look bridge is fine. But if somebody's gone completely absent from matrix for 30 days Can you please get rid of their ghost on the IRC? That brings up. So is it they're absent from any channel or they're absent? Oh, okay, okay I didn't I didn't realize that I thought it was in a particular channel like I'm in some bridge channels that I don't rarely talk in but I talk in others So then I wouldn't I wouldn't get kicked from the other channels And also, um, I don't think it's even That you are you don't even need to be active on the network. You just need to be active on matrix So the logic that we use is that if we haven't seen any Traffic of any kind like presence or type of notifications or a login from that user on matrix for 30 days Then we add them to the send bin and get them off the IRC network. So they really need to be a goner It's happened to me once because I actually went on holiday For ages and one of my accounts pinged out and honestly, it does feel a bit violating But then again It's a lot better than an IRC model where you obviously get kicked out of the second that you close your window Oh, yeah Okay, well that that reason I mean that resolves my concern I didn't realize it wasn't per I didn't realize it wasn't per channel So that that's good because I think that's awful on people should be on Matrix doing something at least unless they're totally gone Why I think so, but yeah, it's a you know The error isn't as clear as it should be We can get that fixed or shall follow up And one last thing here any request to the fedora community from you know from the matrix side What what can we what can we do to help you? Well, um, honestly, I haven't heard any Like problems from the food from my flight as the project lead to matrix where I'm the people working with a fedora community are turning up and say god Those fedora people don't understand anything And so it's been the opposite that oh, it's so nice to work with people who really understand what matrix can do And it's so nice to see people From IRC to matrix rather than discord or slack or some proprietary closed and unencrypted privacy Destroying solution like that. So, um, honestly, I don't think they've got any asks at all other than if it works Please tell your friends and tell your other projects and spread the word and help grow the network because Um, you know, if we build it they will come as it were So we're still in the bootstrapping phase Yeah, I'm glad you added. I'm glad you added the What's it called allow unconnected matrix users? Um setting because we were running into With the um before we really started this whole project. I mean before we really started moving to matrix We had some bridges and we were running into Where I guess someone didn't show up on Matrix or on IRC from matrix. So then the bridge wouldn't pass any messages, but Since but lately I've been setting that in all of our rooms Um, and that's made that go a lot smoother Cool. Yeah. No, I mean, I know that some of the feedback we've had from you guys has gone straight into Um, our kind of immediate roadmap to make things um successful So if there's been stuff like that, please keep it coming because even though we have a lot of Issues coming in, uh, we do also try to prioritize them for particularly impactful folks And yeah, and the classic example of an open source community We want to be overjoyed for the experience of using matrix And yeah, that that having that setting now has made it A lot better and I mean, I've I've really been pleased Um when I've been setting it up. I've um It seems easy to work with and everything Cool, I'm glad And I have to drop I'm afraid because I was meant to be kicked out of here half an hour ago And nobody's kicked me out, which presumably means I'm now locked in the royal society for chemistry and was I hope this is the beginning of an amazing story. I thought I would like to hear later Look, I hope that that's here. I guess you're probably many in seeing your reflection Matthew But that some of these books are incredible. I feel like a library and Hogwarts here If anybody has any questions about alchemy, it's all here It's like books written by Boyle written physically by Boyle by the looks of it Very exciting That that is that's amazing. All right. Yeah, I hope you're locked in there overnight. I want to hear the story later Thank you everybody. Um, thank you very much Matthew. This was a really fun session and we'll get this up and publicized I had hopefully Have our thing launched soon. We're still waiting on a few things where we need Some documentation and there's a legal thing I need to deal with but Hopefully very soon. We will be launching all of this And again, thank you very much. It's a help things along in terms of legal stuff Oh, it's it's it's a it's a gdpr something something thing. Um, yeah Should be good I'll tell you later what the deal is. Um, okay the um Yeah, anyways that should be coming soon for fedora council business. Um next week we have our next week next month We have the fedora release party instead of our normal video meeting. So please come join us at the fedora 35 release party that will be fun. I'll be doing my 35 releases of fedora in 30 minutes talk there and there'll be a bunch of other fun stuff as well And then I don't think we have anything planned for december yet, but we'll see and again. Thank you everybody. Bye