WEBVTT

00:00.000 --> 00:13.000
Hello everyone, in this presentation we will talk about the internet open store-out real-time

00:13.000 --> 00:21.000
extensible messaging and presence protocol. We will present the actual ecosystem of the

00:21.000 --> 00:28.000
XMPP as it is today and we'll give a sneak peek about the new features coming soon.

00:28.000 --> 00:37.000
I am Geron, developer on the EJBD server and I am Waze.

00:37.000 --> 00:44.000
Timote or Timor Edelas, I'm a movie developer for client developer and I will show you

00:44.000 --> 00:48.000
a few things in this presentation but I have another one just after if you want to stay,

00:48.000 --> 00:55.000
you will have a bit more information.

00:55.000 --> 01:03.000
So today, XMPP is massively deployed for various use cases ranging from instant

01:03.000 --> 01:10.000
messaging to internet a thing, gaming or social networking and these are just a few examples

01:10.000 --> 01:17.000
of the XMPP deployment that we have currently in production today.

01:17.000 --> 01:28.000
So the XMPP software ecosystem right now, there is five each major XMPP servers

01:28.000 --> 01:36.000
plus smaller ones that can all interpret together because XMPP is a federated protocol

01:36.000 --> 01:43.000
so we have server to server communication. We have more than 20 clients for all of your

01:43.000 --> 01:50.000
mobile desktop web console come online. There is at least one library for your favorite language

01:50.000 --> 01:57.000
and in the heart of that ecosystem, we have the XMPP standard foundation.

01:57.000 --> 02:04.000
But the XMPP is not a central entity that decide the evolution of the protocol

02:04.000 --> 02:08.000
and tell the developers when to implement in a top-down process.

02:08.000 --> 02:14.000
Actually, it is quite the opposite because anyone involved in that ecosystem can propose

02:14.000 --> 02:21.000
a volitional extension of the protocol which are then discussed via the XSF with other actors

02:21.000 --> 02:31.000
and it means that the XSF is more tool to help build the protocol by and for the one

02:31.000 --> 02:38.000
part with it. And this way, the evolution of the protocol will match the needs of the

02:38.000 --> 02:45.000
people who are actually developing or using it.

02:45.000 --> 02:52.000
So a bit more information about the protocol itself. So the XMPP protocol is built on

02:52.000 --> 02:58.000
RFCs. There is a few core RFCs that define the basic feature that you need to connect

02:58.000 --> 03:04.000
to a server and exchange messages. And then we have what we call XAPs. So it is extensions.

03:04.000 --> 03:09.000
It is little document that basically say how to do like one specific thing.

03:09.000 --> 03:17.000
And those are actually the elements that are discussed between the different XMPP projects and

03:17.000 --> 03:24.000
facilitated by the XMPP software foundation. So it is a little preview of the flow.

03:24.000 --> 03:37.000
It is a bit more complex, but as a developer, you can basically present XAP as an experimental

03:37.000 --> 03:42.000
and try to do like some hack in your software and then talk with other developers.

03:42.000 --> 03:48.000
We will show you later how it actually is done. And you can talk also with server developer.

03:48.000 --> 03:55.000
And then your XAP is proposed. And there is a whole process to know how it integrates quite well

03:55.000 --> 04:02.000
or not, which we need to fix things. And then it goes to final for some of them or goes back

04:02.000 --> 04:07.000
if there is more to discuss.

04:07.000 --> 04:13.000
Yeah. So basically the core of XMPP is written by the dev and the contributor of XMPP

04:13.000 --> 04:19.000
like the top down system as Jerome said.

04:19.000 --> 04:27.000
So concretely, so we have two RFC to many RFCs. So XMPP is an ITF official protocol.

04:27.000 --> 04:31.000
The XMPP core and XMPP is not messaging in presence.

04:31.000 --> 04:38.000
Plus 20 each other RFC to interconnect with other internet protocol like XMPP over web

04:38.000 --> 04:44.000
or web socket or XMPP over TLS or stuff like that. And we have the famous XAP, the XToshans

04:44.000 --> 04:49.000
to the protocol. Right now we have more than 500 XAP and still growing.

04:49.000 --> 04:56.000
And of course developers won't have to implement all the XAP.

04:56.000 --> 05:04.000
You can see that like a toolkit of protocol when developers can pick their own sub protocols

05:04.000 --> 05:09.000
and assemble them like Legos to build their own custom protocols.

05:09.000 --> 05:16.000
But what it means is that different clients or different servers won't implement the same extension.

05:16.000 --> 05:19.000
So that arises a question, can it work?

05:19.000 --> 05:24.000
I mean if a client is connecting to a server and the client is implementing an extension

05:24.000 --> 05:28.000
that the server won't understand, it may be a problem.

05:29.000 --> 05:33.000
But actually we have the backward compatibility in mind.

05:33.000 --> 05:40.000
And we ensure that the interpretation that it's interoperable with Legosys software.

05:40.000 --> 05:45.000
And for that we have different mechanisms to do that.

05:45.000 --> 05:51.000
And we will show you a few of them so you can understand always it possible to be a still interoperable

05:51.000 --> 05:55.000
with this variety of software and implementation.

05:55.000 --> 05:59.000
Let's dive into some great details.

05:59.000 --> 06:04.000
So this is an example, what we call as Tanzah in example,

06:04.000 --> 06:08.000
so it's basically a message that has been sent from someone to someone,

06:08.000 --> 06:11.000
so Julia to Romero to Juliet.

06:11.000 --> 06:14.000
And in this example you actually see how it's done.

06:14.000 --> 06:16.000
So it's based on XML.

06:16.000 --> 06:23.000
And if one of those person have only a basic client,

06:23.000 --> 06:26.000
they will actually just see the URL.

06:26.000 --> 06:33.000
But on the updated client, a recent client can actually have the whole card with the thumbnail and the picture.

06:33.000 --> 06:40.000
So you can basically have like an easily like cross-compatible clients that can

06:40.000 --> 06:45.000
system that can actually go between different software easily.

06:45.000 --> 06:51.000
And the other really interesting thing based on the XML is that we are using namespaces.

06:51.000 --> 06:55.000
So basically those blocks, like we said Legos, can actually be reused.

06:55.000 --> 07:02.000
So this block that is doing this little thumbnail is actually reused in many different places.

07:02.000 --> 07:08.000
So when you're developing a client, you basically implement those blocks and then you just combine them together

07:08.000 --> 07:16.000
for like file transfer, for like a block bus, for like stories, for like all those examples.

07:16.000 --> 07:28.000
And it's just, yeah, reuse across the network and perfectly standardize using the namespace system that you have in XML in general.

07:28.000 --> 07:31.000
Still me.

07:31.000 --> 07:38.000
Yeah, we also have like what we call the discovery and capability is a feature that maybe is in many other protocols as well.

07:38.000 --> 07:41.000
But works quite well actually in the example.

07:41.000 --> 07:49.000
So when a client talk with another client or with a server, it can basically ask the server or the other client, like,

07:49.000 --> 07:56.000
can you actually do that? Can you display this information and decide if it is sent or not?

07:56.000 --> 07:58.000
I read the information.

07:58.000 --> 08:06.000
And if not, then you can actually like degrade the UI or degrade the system to actually work quite well with the others.

08:06.000 --> 08:15.000
So I gave you a little screenshot of my own project where normally no most of the server can do it, but we still have some old servers on the network.

08:15.000 --> 08:20.000
And if someone actually connects with movie, that does the whole social network feature on top,

08:20.000 --> 08:27.000
then actually tell the person that, okay, like sorry, but you don't have everything to do social networking correctly,

08:27.000 --> 08:31.000
but you still have the chat and like video conferencing and all those things.

08:31.000 --> 08:44.000
So it's quite easy to detect, like it's just one query or dirty push to you, and you just adapt your UI this way.

08:44.000 --> 08:51.000
So is there is another mechanism to under the different level of implementation?

08:51.000 --> 08:58.000
Here is this message. This is a reply to when you want to reply to a specific message in a group chat.

08:58.000 --> 09:13.000
So with a knife client that doesn't understand the reply to extension, it will just understand the body here, because all the other stuff are in namespaces that it won't understand.

09:13.000 --> 09:27.000
And that body is already formatted in just plain text formats, just display the response in a good enough manner that the user, the young user will understand.

09:27.000 --> 09:38.000
Then for a client that does implement the reply to, it will understand that that reply stands out here with the ID of the message that is reply to.

09:38.000 --> 09:52.000
And also that fallback here, which is basically saying just ignore the 37 first character in the body, which means that it will just consider this one, because what's what's it's before,

09:52.000 --> 10:02.000
it's not for this client, it's for just for knife clients. And so it will be able to run there like on the right, better UI for the end user.

10:02.000 --> 10:13.000
So this is also the kind of mechanism we can use to cope with the different software and different implementations.

10:13.000 --> 10:22.000
So now that we've died in the protocol itself, let's see how it works between all the project and all the implementations.

10:22.000 --> 10:37.000
So when you submit an extension or when you work on an extension or you want to implement an extension, that's where the exemplifies software foundation actually come in and provide tools to actually help you doing this those tasks.

10:38.000 --> 10:49.000
So those exact, they are well categorized and they have like some metadata and the clients developer and several developers actually provide also metadata and there is like some information shared.

10:49.000 --> 11:02.000
And you can actually see that we, you are not alone, like one, I want to implement the materials of chat, I actually know exactly which other clients are compatible or not on which level from which versions.

11:02.000 --> 11:24.000
And that's really help about like knowing, okay, I have this really fresh example, like for example, I will use see later the stories, sorry that you have an Instagram or like all the other platform is quite fresh, but I can actually say, oh, there is this guy that he's working so I can directly contact him and actually work with him to do the interaction.

11:24.000 --> 11:53.000
And we also have what we call the compliance suits, which is a way to say, okay, we do, we did a best off of the exact. So if you are doing I am only the chat, then this is like the actually tank depth that you need to implement to actually have this core feature and we are a couple of them, I think we have things about also mobile and we have yeah web and mobile and so to say, okay, you want to do that.

11:53.000 --> 12:00.000
It's like a starter park, you need to implement at least those apps and you will actually really fit well with all the other clients and servers.

12:01.000 --> 12:15.000
So yeah, that's the list of an extract of the steps from 04 to 050 on the right, you see the client and if you click on that, you actually have this view that he's like, I think it's 24 hour refresh.

12:15.000 --> 12:32.000
So it's a little game, it's quite fun because actually you are like, okay, this client is doing that and I have this amount of steps and so it's like a little checkbox that you like to do when you're implementing example.

12:32.000 --> 12:44.000
So let's see a specific case to do to see the server and the client interacting together for instance in the voice and video course.

12:44.000 --> 13:03.000
So on the server side, the server will be providing a stun turn services, which are not part of the exam pp ecosystem, but via the exam pp, the client can discover with the disco feature we've seen before.

13:03.000 --> 13:14.000
That there is a stun turn service on the server and we have the server can also provide some credentials so the client can use those services.

13:14.000 --> 13:25.000
And then the server may act as a media relay in case the all the client are netted of behind fire wall and cannot establish peer to peer connections.

13:25.000 --> 13:30.000
And of course there is a signaling part will be will be go through through the server.

13:30.000 --> 13:47.000
So in the exam pp ecosystem, all the video core and audio core protocol is called Jingle and so the all the client participating in the in the core can extend the signaling part before establish their their stream.

13:47.000 --> 13:58.000
The binary stream will extend via the server to negotiate the connection.

13:58.000 --> 14:11.000
So let's look at the client side of the video conference feature so that's a little screenshot of the mobile version of moving with some friends of me.

14:11.000 --> 14:26.000
So yeah, in moving like it's a full web client so I'm mostly built on the web RTC that you may know which is like the standard group of feature that you can have in the browser nowadays.

14:26.000 --> 14:35.000
And I'm talking with the exam pp server that actually translate and I'm doing the translation between the web RTC world and the exam pp world.

14:35.000 --> 14:49.000
So the jingle part, which is basically just to go a bit more technical so web RTC is doing sdp and exchanging messenger zp and in jingles basically the sdp but in XML with a few more information on top.

14:49.000 --> 15:02.000
That's sometimes misses so it's quite easy to map one to the others and we actually also create mj which is like so jingle is mostly one to one is how you create a peer to peer connection between two clients.

15:02.000 --> 15:13.000
And mj is basically this but with several persons so you can basically add this nice little chat rooms with some other people and you will see later.

15:14.000 --> 15:24.000
I have I have to be really careful with this cable so you have more to see later and the really nice thing about that is that.

15:24.000 --> 15:39.000
We are actually compatible across clients so that was I think the first time that we like on the internet that we actually are multi call call between a multiple person on two different.

15:40.000 --> 15:57.000
So we had like a web stack and you know it's like full gtk and a good on base and we had like a really totally compatible video conference between like multiple person with that.

15:57.000 --> 16:12.000
The power of example that it's not enclosed in technologies it's actually a real standard protocol that can like move around well connect really different ecosystems.

16:13.000 --> 16:20.000
Yeah there is also social features on example this is something that I'm personally pushing for like more than 10 years.

16:20.000 --> 16:23.000
All the tools were there for 15 years already.

16:23.000 --> 16:32.000
We didn't like I didn't have to really create the whole ecosystem I really just will use the base thing that he's called pubsab.

16:32.000 --> 16:38.000
So pubsab is quite simple it's a system where like on the on the internet so on on the network example in network.

16:38.000 --> 16:46.000
You create nodes where you publish information on those nodes and people subscribe to them and like in real time when you publish something it will be.

16:46.000 --> 16:55.000
Pushed with the others there is two kind of pubsab there is like the pubsab what we call as only if he's there it will call.

16:55.000 --> 17:04.000
But which is like your own personal so as an account you are you have your own personal pubsab servers where you actually are hosting on your own accounts notes.

17:04.000 --> 17:10.000
And you have also a way to like create those nodes on the example in network in general.

17:10.000 --> 17:20.000
So for example if you want to have like what we call in modern communities where you have like a like a place where multiple person are publishing on a common blog.

17:20.000 --> 17:24.000
You can just say okay I want this node on the network and then you everyone is publishing on it.

17:24.000 --> 17:31.000
And each ability is actually implementing quite well the pubsab system and skills crazy.

17:31.000 --> 17:39.000
It's like you can have like 100 of ties on maybe millions of subscriber and you can actually just like do that quite easily.

17:39.000 --> 17:47.000
And one of the little thing that is like so quite fun with a movie is that actually we have a little tool called atom to pubsab where you actually take a recess and atom feed.

17:47.000 --> 17:59.000
Put them on the example in network and then at this scalable system where you can actually like push like articles to like 1000 of person without any like volume issues.

17:59.000 --> 18:08.000
So this is a little example about how it works like for a john on the on the network so you got there those those.

18:08.000 --> 18:15.000
The pubsab node to the blog and the story is now so you can see like the node is actually having a space by itself.

18:15.000 --> 18:22.000
And it just publish new items on those elements and you can create easily like new kind of system.

18:22.000 --> 18:33.000
So I was thinking about like a gallery system you know like Instagram so you can just create a new node define what's in it and then automatically all the other clients that want to do that they just have to follow these tunnels.

18:33.000 --> 18:38.000
Most of the social future published on XMPP are based on atom.

18:38.000 --> 18:46.000
So it's pure XML, it's not XML, the same thing that you can find on the web you just take the XML just put it on XMPP.

18:46.000 --> 18:50.000
I don't typically it works you don't have to do any translation or things like that.

18:50.000 --> 18:53.000
And the other way around moving is actually creating atom nodes.

18:53.000 --> 18:58.000
Atom HT HTTP URL from that.

18:58.000 --> 19:01.000
And it's just cross compatible so it's super easy to say.

19:01.000 --> 19:08.000
Okay, I have my master not accounts. I have this RSS feed, pre-tony XMPP and this also.

19:08.000 --> 19:21.000
Yeah, so fully compatible with lot of XMPP server and yeah, I will show you later in the next conference why it's quite different than activity type actually on this specific case.

19:22.000 --> 19:28.000
So one can we expect in the XMPP ecosystem this year.

19:28.000 --> 19:36.000
So on it's about it, we are currently working on distributed maximum, it's multi user chat, it's basically group chats.

19:36.000 --> 19:41.000
Right now in XMPP a room only exist on one server.

19:41.000 --> 19:49.000
You can access it from any server in the Federation, but if the server hosting the room goes down the room is gone.

19:49.000 --> 19:58.000
So we are developing this room between Mac when you have several instance of the same room on several servers.

19:58.000 --> 20:03.000
So this is something that already exists in some of our protocols, but here it should scale.

20:03.000 --> 20:09.000
Because first we are not sinking in storing the war combination history.

20:10.000 --> 20:16.000
And second, things to an algorithm that were described in a paper published in 2020-24.

20:16.000 --> 20:27.000
So it's quite recent called right-lace in vertebral bloom look-up table, which has the advantage of being CPU efficient and as near bound with a similar usage.

20:27.000 --> 20:37.000
So thanks to that, we should be able to survive next split by thinking the room state and the room history even on huge rooms.

20:37.000 --> 20:44.000
So this way we should be able to get rid of the room being a single point of failure.

20:44.000 --> 20:54.000
And we have some fresh news because the XMPP summit held by the XSF was held here in Brazil just before the first day.

20:54.000 --> 21:02.000
So we have discussed on stuff that should arrive hopefully quite soon. We have the spaces.

21:02.000 --> 21:06.000
Yeah, so we'll tell you just a couple of minutes about that.

21:06.000 --> 21:12.000
So yeah, it's basically what you think a space it is, so we are actually bringing it to an XMPP.

21:12.000 --> 21:17.000
We have the improvement in the group chat encryption.

21:17.000 --> 21:23.000
Yeah, so right now and to an encryption once came in big rooms.

21:23.000 --> 21:36.000
So we are implementing a new mechanism to be able to do a intuitive encryption in big rooms using Thunder keys and later MLS for those who knows.

21:36.000 --> 21:41.000
We have some, yeah, so this is already kind of working, but it's not standardized yet.

21:41.000 --> 21:49.000
So we have like, measured, as we said, as I said, like the multi-user core system, but with I-SFU.

21:49.000 --> 21:57.000
So just to tell you, I said, you send your video stream to a server that actually broadcast the video stream to other people, then you don't have this bandwidth issue.

21:57.000 --> 22:01.000
This is something that works everywhere and I really work on XMPP.

22:01.000 --> 22:08.000
Like JCC is already doing that, but we want to standardize it and actually implement it more in the XMPP clients.

22:09.000 --> 22:12.000
And we want to be able to do XMPP over quick.

22:12.000 --> 22:30.000
So quick is an UDP-based protocol that does faster connections to the server and is better suitable for low bandwidth environments like radio, radio transmission and stuff like that.

22:30.000 --> 22:44.000
And so we want to be able to do XMPP over a quick in addition to other TCP or other web sockets of HTTP and stuff like that.

22:44.000 --> 22:51.000
So with XMPP, we have true decentralization.

22:51.000 --> 23:02.000
We have the only protocol that supports and standardized instant-pissation, social voice in one unique and federated and current network.

23:02.000 --> 23:10.000
And we are massively scaling as you've seen with the example of deployment at the beginning.

23:10.000 --> 23:14.000
So if you are developer, find a library and start coding.

23:14.000 --> 23:23.000
If you are a citizen, you can find your perfect server and if you have a simple user, check for a client that will sit you.

23:23.000 --> 23:32.000
And you control your data, you can host your own server and communicate with other server via Federation.

23:32.000 --> 23:37.000
Thank you for your attention and if you have any questions, you're welcome.

23:37.000 --> 23:47.000
Thank you so much.

23:47.000 --> 23:51.000
There was no one question.

23:51.000 --> 24:00.000
The question was, in what way is XMPP federated and does that mean that XMPP has to deal with state resolution issues?

24:00.000 --> 24:06.000
So it's federated in the sense that let's just repeat the question.

24:06.000 --> 24:11.000
In what sense the XMPP is a federated protocol.

24:11.000 --> 24:17.000
Actually, you have your account on a specific XMPP server.

24:17.000 --> 24:23.000
But all the servers, participating in the Federation are communicating together.

24:23.000 --> 24:26.000
So we have server to server communication.

24:26.000 --> 24:34.000
So it means that even if you have your account on any server, even your own server, you are on hosting at home,

24:34.000 --> 24:42.000
you can communicate with anyone connecting to any server, participating in the Federation.

24:42.000 --> 24:48.000
So it's like a big mesh of servers communicating together.

24:48.000 --> 24:54.000
There wasn't a question. That's all.

24:54.000 --> 25:01.000
About state resolution, I'm not sure I get it, just no.

25:01.000 --> 25:10.000
It's a concept to make sure that you know who is allowed to be where in the different rooms, which I guess doesn't apply in XMPP.

25:10.000 --> 25:12.000
It's specific to room.

25:12.000 --> 25:20.000
Yeah, the room is not working the same way in matrix, because the room is distributed.

25:20.000 --> 25:28.000
And this is why I was talking before, because we are implementing some distributed macromes, but in a different way.

25:28.000 --> 25:35.000
So we don't have to match the worst state of the room right now, and we will implement a different mechanism here.

25:35.000 --> 25:40.000
That is similar to matrix, but should scale better.

25:40.000 --> 25:48.000
Yeah.

25:48.000 --> 26:08.000
Yeah, okay.

26:08.000 --> 26:13.000
So first...

26:13.000 --> 26:22.000
Yeah, what the matrix, why it's quite successful, and does XMPP want to copy or inspire from matrix, right?

26:22.000 --> 26:27.000
And so first, in Italy we have a matrix implementation.

26:27.000 --> 26:33.000
So we can do several protocols, and I think the main stuff is again distributed room,

26:33.000 --> 26:40.000
we can have a several instance of a room across different servers, that we don't have currently in XMPP,

26:40.000 --> 26:43.000
and this is why we are implementing it right now in the Germany.

26:43.000 --> 26:48.000
So I think this is the main stuff that is missing compared to matrix right now in XMPP.

27:03.000 --> 27:06.000
Thank you.

27:33.000 --> 27:43.000
Thank you.

27:43.000 --> 27:53.000
Thanks for watching.

28:13.000 --> 28:23.000
Thanks for watching.

28:43.000 --> 28:53.000
Thanks for watching.

29:13.000 --> 29:23.000
Thanks for watching.

29:43.000 --> 29:53.000
Thanks for watching.

29:53.000 --> 30:00.000
All right, so now that we have seen one of the strength of XMPP and probability on how this type works,

30:00.000 --> 30:06.000
we are going to see a very two-week case of how to build a software network on top of XMPP.

30:06.000 --> 30:22.000
Yeah, yeah, it's a string.

30:22.000 --> 30:25.000
So welcome everyone, so I'm Timote.

30:25.000 --> 30:28.000
I will show you a bit about a movie.

30:28.000 --> 30:33.000
So one first question for the audience, who knows movie, who are the herd of movies there?

30:33.000 --> 30:37.000
Okay, so we do have a few a person that are aware of this thing.

30:37.000 --> 30:42.000
So I'm also introducing the new logo, new design, new mascot, and everything.

30:42.000 --> 30:46.000
I've been working with a good friend, it is doing all the drawing and design about that.

30:46.000 --> 30:55.000
And I will have maybe stickers for the next fall then, because it was a bit upset like this.

30:55.000 --> 30:57.000
So I'm Timote.

30:57.000 --> 31:02.000
We can also know me as Adelaas, and I'm being meeting movie since 2010.

31:02.000 --> 31:05.000
There was a lot of chances and evolutions.

31:05.000 --> 31:15.000
Back then I was just learning PHP and how to do web stuff and then I grew into the XMPP ecosystem.

31:15.000 --> 31:20.000
And now you will see what's the result after all those years.

31:20.000 --> 31:25.000
And I'm also, yeah, cooking, I like to cook like kish.

31:25.000 --> 31:28.000
I think I don't always say in English.

31:28.000 --> 31:30.000
So what is movie?

31:30.000 --> 31:38.000
My movie is actually a social platform that connects between the XMPP world and the web world.

31:38.000 --> 31:44.000
On the XMPP side, it's used to have some, we used to have an XMPP like web socket and HTTP request

31:44.000 --> 31:48.000
to directly do XMPP, but now it works like any XMPP clients.

31:48.000 --> 31:49.000
So you don't even have to configure anything.

31:49.000 --> 31:56.000
You just start movie and then connect with your credential and it will just connect any XMPP clients.

31:56.000 --> 32:04.000
And it provides you a real time interfacing your browser, browser that can also be put on your phone as a progressive web app.

32:04.000 --> 32:09.000
So it's like a really kind of native app that's fully responsive.

32:09.000 --> 32:17.000
The goal of movie is actually to create and expand all the social feature and a bit more you will see later on XMPP.

32:17.000 --> 32:22.000
And no in 2025 and 26 will start to see other clients.

32:22.000 --> 32:28.000
I was able to convince my friends about the fact that social features can also be interesting on XMPP.

32:28.000 --> 32:31.000
So there is three axes about movie.

32:31.000 --> 32:43.000
So the social networking, as I said, the instant messaging, obviously because like I will not prefer also to use although I have some XMPP feature about instant messaging.

32:43.000 --> 32:52.000
And more recently like the video conferencing feature because I saw that there was a lot of nice things to do on this part.

32:52.000 --> 33:00.000
And actually a lot of people that were also looking for alternative than teams or zoom and all those kind of platforms.

33:00.000 --> 33:10.000
So technically it's based on the CPHP, CSS and JavaScript. There is not a lot where like React app is quite light and simple.

33:10.000 --> 33:16.000
Database wise polygraph skill and MariaDB, but please use Postgres works way better.

33:16.000 --> 33:23.000
It's quite lightweight and yeah, I do have about two releases per year.

33:23.000 --> 33:33.000
So one question that comes quite often is like what actual difference between activity and on XMPP and how social networks are working there.

33:33.000 --> 33:39.000
So I made this little graph like two graphs to actually show you the difference.

33:39.000 --> 33:44.000
So from my point of view activity pub is more like a platform first system.

33:44.000 --> 33:49.000
So the activity pub protocol is actually defined between the platform.

33:49.000 --> 33:58.000
So you create an account on the platform and then the platform through activity pub are interconnecting themselves and exchanging messages.

33:58.000 --> 34:02.000
So basically peer tube will have to understand on top of activity pub.

34:02.000 --> 34:10.000
Okay, what must to do is actually doing on those things and same with pixel feeds, so it's like an Instagram light activity pub system.

34:10.000 --> 34:20.000
An example is the other way around actually so you have accounts and you do everything through your clients on your account.

34:20.000 --> 34:28.000
So it's just a view of the XMPP network and then there is an interaction in the XMPP ecosystem.

34:28.000 --> 34:33.000
So it means that all the interaction the XMPP ecosystem are standardized.

34:33.000 --> 34:40.000
So I will show you just after what a story is a story on it's not a modern story is an XMPP story.

34:40.000 --> 34:49.000
So it's quite easy for a new client to just implement the startup and then be fully compatible with all the others.

34:49.000 --> 34:54.000
Yeah, so you see actually for the question that we had just before that we actually have an interaction between the servers.

34:54.000 --> 34:57.000
So this is in January and Prosody, one of the main servers.

34:57.000 --> 35:02.000
So what we call S2S server to server and client to server is what can be the same like email.

35:02.000 --> 35:10.000
You know, you have these email servers and then Thunderbird or Outlook that are connected to your servers and your account on the server.

35:10.000 --> 35:19.000
So yeah, one of the drawback of I think activity pub is that, and I add this issue myself is that you have to create an account on all the platform.

35:19.000 --> 35:25.000
You basically have one account on master normal, it's a bit more difficult to find where actually your data is.

35:25.000 --> 35:34.000
And the XMPP, when you remove your account, you basically destroy all all the information in one unique place.

35:34.000 --> 35:39.000
So what's new in a little story is a thing.

35:39.000 --> 35:43.000
So what's was introduced in 2025?

35:43.000 --> 35:45.000
Pub sub stories.

35:45.000 --> 35:52.000
So as I said, for those of you that were there for the previous presentation, it's just at 1.0 and Pub is subscribed.

35:52.000 --> 35:55.000
So I will just repeat quickly what is very subscribed.

35:55.000 --> 35:58.000
It's like a pub's published subscribe system.

35:58.000 --> 36:01.000
So you create nodes on your accounts or on the network.

36:01.000 --> 36:04.000
And then you publish information there and people subscribe to it.

36:04.000 --> 36:09.000
And you can manage the node, like configure it and put like another tower and all those things.

36:09.000 --> 36:14.000
And then the information is actually spread across the whole network in real time.

36:14.000 --> 36:20.000
And stories where actually came like last year and there is already two clients compatible.

36:20.000 --> 36:25.000
And I've talked with a couple other clients that might be also interested to add stories.

36:25.000 --> 36:29.000
I see someone in the room that is there for that.

36:29.000 --> 36:35.000
So just diving the protocol, that's actually a story.

36:35.000 --> 36:37.000
As you see, it's super simple.

36:37.000 --> 36:41.000
You just connect to your XMPP server and you publish a story.

36:41.000 --> 36:43.000
So I'm publishing a story to myself.

36:43.000 --> 36:47.000
So this is me, oh, by the way, it's the mascot.

36:47.000 --> 36:52.000
So you say it's a pub sub item that you publish on the story node.

36:52.000 --> 36:55.000
So you're an example is actually namespace on the story.

36:55.000 --> 36:57.000
And then inside you have your item.

36:57.000 --> 37:01.000
It's just a simple atom item with a title.

37:01.000 --> 37:04.000
So it's basically the little text that you have on your story.

37:04.000 --> 37:06.000
Some ID, some time.

37:06.000 --> 37:11.000
And obviously the picture of the story that you created on your clients is super simple.

37:11.000 --> 37:15.000
And if you want to make a error set for item.

37:15.000 --> 37:20.000
And a few of that is directly just to take your database and then recreate.

37:20.000 --> 37:23.000
And I'll be in that.

37:23.000 --> 37:31.000
Something that also came in 2025 are the multi-party jingles.

37:31.000 --> 37:36.000
So it's something that I did with the NLNet findings.

37:36.000 --> 37:38.000
I really thanks to them.

37:38.000 --> 37:43.000
I was able to really spend a lot of time on this to really integrate in the web.

37:43.000 --> 37:46.000
You, I, all those features.

37:46.000 --> 37:52.000
So it, as I said, it's fully compatible with already another client or able to call with multiple

37:52.000 --> 37:57.000
person with desktop clients and a web client easily.

37:57.000 --> 38:01.000
And I added also a similar to Webcam and screen sharing.

38:01.000 --> 38:04.000
There is a little example that is coming from to actually tag those things.

38:04.000 --> 38:08.000
So you can actually share your screen and your webcam at the same time.

38:08.000 --> 38:11.000
So for a presentation like this is actually quite useful.

38:11.000 --> 38:14.000
Or if you're doing streaming maybe you will have like a twitch light,

38:14.000 --> 38:17.000
like system on moviem after.

38:17.000 --> 38:19.000
It's where we've already seen this.

38:19.000 --> 38:22.000
So it works like just in all the browsers and other days.

38:22.000 --> 38:25.000
And yeah, as I said, it's found that by NLNet.

38:25.000 --> 38:28.000
So yeah, that's the mobile versions.

38:28.000 --> 38:33.000
And yeah, I will tell you a bit more about that for 2023.

38:33.000 --> 38:40.000
What's actually came in 2025 is the improved social flow.

38:40.000 --> 38:46.000
So yeah, I actually created a new step that was upgrading

38:46.000 --> 38:49.000
a really old one that was called micro blogging.

38:49.000 --> 38:53.000
Because for 15 years in example, the only kind of thing that was about social

38:53.000 --> 38:55.000
feature was micro blogging.

38:55.000 --> 38:57.000
There was a micro blogging example.

38:57.000 --> 38:58.000
So I said, okay, let's take this thing.

38:58.000 --> 39:02.000
Make it more general and call it purpose social feedback.

39:02.000 --> 39:03.000
So it's like a more generic.

39:04.000 --> 39:06.000
Okay, you put a turn on Pubseb.

39:06.000 --> 39:11.000
And stories, the stories are one of the sub thing of this thing.

39:11.000 --> 39:13.000
Of this, perhaps, sub social feedback.

39:13.000 --> 39:14.000
So it's stories basically.

39:14.000 --> 39:15.000
Pets also have field class.

39:15.000 --> 39:20.000
You must publish one picture at least in your item.

39:20.000 --> 39:22.000
Because a stories, obviously one picture.

39:22.000 --> 39:27.000
So it's super easy to make it extensible.

39:27.000 --> 39:31.000
And add new exact on top of that.

39:31.000 --> 39:35.000
And to implement something like you just need like a simple example

39:35.000 --> 39:38.000
parser database and then you're done.

39:38.000 --> 39:42.000
Something that was added in 2025 is to follow everyone.

39:42.000 --> 39:46.000
Because you used to have, we used to have this system where actually you add

39:46.000 --> 39:49.000
a, you need to add the person has a friend to actually follow it.

39:49.000 --> 39:52.000
And now there is just a follow button follow and follow.

39:52.000 --> 39:57.000
And I open a couple of things in a couple of tickets in the example

39:57.000 --> 40:01.000
service to ask them about Pubseb missing feature.

40:01.000 --> 40:03.000
Basically, it's the follow or feature.

40:03.000 --> 40:06.000
For now, you see some of, well, the follower,

40:06.000 --> 40:10.000
but you are not satisfied about it and you don't add the counter of followers.

40:10.000 --> 40:12.000
So if you are an influencer and you want to come to example,

40:12.000 --> 40:15.000
you will be happy to add the follow or counter soon.

40:15.000 --> 40:19.000
Yeah, there are comments and likes will be as being a redesign.

40:19.000 --> 40:24.000
And I introduced the briefs, which is basically like,

40:25.000 --> 40:29.000
an art, because in a movie, you were producing articles with a title in the content

40:29.000 --> 40:34.000
and people that were, like, on the other social network like this.

40:34.000 --> 40:36.000
I wanted, like, just, I want to post one text.

40:36.000 --> 40:42.000
So I brief it like a smaller, like, article that you can just easily publish.

40:43.000 --> 40:44.000
Chats.

40:44.000 --> 40:50.000
Yeah, so I did not only work on the social feature, I also work on the IM feature.

40:50.000 --> 40:53.000
So there is a message, it's a research per content.

40:53.000 --> 40:57.000
So that's thanks to pause your skill that can easily index content.

40:57.000 --> 41:01.000
And you can just type any keyword and search your whole history.

41:01.000 --> 41:04.000
Works with, like, millions of messages is quite impressive.

41:04.000 --> 41:06.000
There is a new navigation bar.

41:06.000 --> 41:11.000
So on the right there, you actually have, like, all the connected person.

41:11.000 --> 41:15.000
You can click on them, like, send them a private message.

41:15.000 --> 41:19.000
Like, things that you see, you see on many other platforms.

41:19.000 --> 41:22.000
I work on our URL resolver.

41:22.000 --> 41:27.000
So that's a little technical thing, because on moviem.

41:27.000 --> 41:33.000
So when you start a moviem instance, a bunch of people can connect on this instance.

41:33.000 --> 41:37.000
So you can have, like, 20 person that are connected on a one-way instance.

41:37.000 --> 41:40.000
And those 20 person can be in the same chatroom, obviously.

41:40.000 --> 41:46.000
So if someone is sending a URL, it's used to have, like, all those person requesting their URL

41:46.000 --> 41:48.000
to have this little card.

41:48.000 --> 41:53.000
So the poor guy that actually have the web server will have, like, 20 requests.

41:53.000 --> 41:57.000
So no, there is a worker for that, that you can, there's some menu URL.

41:57.000 --> 42:02.000
We'll resolve the card and actually give it only once to, like, everyone.

42:02.000 --> 42:03.000
It works really well.

42:03.000 --> 42:06.000
And really, really help, especially when you load a story.

42:06.000 --> 42:10.000
And you have, like, a lot of means that we're share or things like that.

42:10.000 --> 42:14.000
And you have, like, a 50 URL to a result.

42:14.000 --> 42:19.000
There is a negation flow that was quite improved, like, especially on mobile.

42:19.000 --> 42:24.000
It's quite difficult to pack all those social and IM features.

42:24.000 --> 42:32.000
So there was, like, some mostly, like, touch feature that we're introduced to actually make it, like, more easy to work.

42:32.000 --> 42:37.000
And a little thing that I was added at the end of the year is shortcuts.

42:37.000 --> 42:43.000
Something that you have in this code, I think, is basically, like, on the left bar if someone is,

42:43.000 --> 42:58.000
like, you know, or you are quoted in a chat room, you can easily have, like, this quick button that you click to go directly to the, to the conversation.

42:58.000 --> 43:01.000
Yeah, there was also many other things.

43:01.000 --> 43:09.000
So as I said, I'm still using, I'm still supporting my IDB, but I dropped my SQL, because those two of the bases were coming this way.

43:09.000 --> 43:14.000
And I, it was, like, too much work. And I actually, I didn't add a lot of professionals were using my SQL.

43:14.000 --> 43:18.000
So please move to my RDB or, possibly, SQL for that.

43:18.000 --> 43:24.000
It was upgraded to PHP, the two that actually improve a bit the performances.

43:24.000 --> 43:30.000
There was a fully refactor notification system, because a mobile is actually doing web push.

43:30.000 --> 43:33.000
You can have push notification on your phone and your devices.

43:33.000 --> 43:37.000
And yeah, no, it works really well. You have the conversation.

43:37.000 --> 43:44.000
If you actually read on one of your browser, actually clear the notification, because you read it and all these kind of things.

43:44.000 --> 43:46.000
I added the pronouns in the profiles.

43:46.000 --> 43:51.000
I saw that it was a, there was a, a new RFC with new kind of things in the vehicle.

43:51.000 --> 43:56.000
So I said, okay, why not. And I have a friend that is actually doing, well,

43:57.000 --> 44:06.000
slidge, that is actually doing a bridge. And we work quite a lot together the last year with bridging with the telegram,

44:06.000 --> 44:10.000
WhatsApp, discord, and a couple of other networks.

44:10.000 --> 44:12.000
And those are, like, those kind of information.

44:12.000 --> 44:17.000
So actually, why not to actually show it in the mobile UI and fully stand out.

44:17.000 --> 44:21.000
I'm using the material design from Google actually to do the whole implementation.

44:21.000 --> 44:23.000
So I did a great to the latest one.

44:23.000 --> 44:27.000
And I redesigned the mobile to you and joined the mobile to you.

44:27.000 --> 44:31.000
So join mobile to you is a bit like the master, join my student.

44:31.000 --> 44:37.000
I think page for basically if you have a mobile instance, you can easily register your instance on this page.

44:37.000 --> 44:42.000
And then someone that is like want to join the mobile network actually see like many instances.

44:42.000 --> 44:50.000
I can pick one, he wants based on the location or like a specific aspects.

44:50.000 --> 44:56.000
Okay, what news for 26, because I'm will not stop there. I will do more stuff.

44:56.000 --> 44:59.000
This is a technical thing.

44:59.000 --> 45:02.000
The mobile architecture is full real time.

45:02.000 --> 45:07.000
So yeah, I'm actually doing a full real time things in PHP and it works really well.

45:07.000 --> 45:12.000
But I used to have like 10 years ago, like blocking code.

45:12.000 --> 45:18.000
No escalator requests that were like a bit long or like resolving URL and things like that.

45:18.000 --> 45:31.000
And if you put everyone on the same like process with blocking codes, then if one guy is joining is connecting on mobile with a lot of friends and lot of synchronization today will slow down everyone else.

45:31.000 --> 45:39.000
So what I did back then, I was a bit like I had a simple solution to say, okay, everyone is actually adding a PHP process and I have a

45:39.000 --> 45:43.000
A demand that actually roots everything.

45:43.000 --> 45:54.000
That works really well for 10, 15 years, but the thing is like each PHP process is actually copy pasting a lot of information like the whole movie.

45:54.000 --> 45:57.000
The whole movie, a system in memory.

45:57.000 --> 46:09.000
So now I'm actually introducing into the 26 are in between system where actually people are you have worker where you have five to ten people on those worker because the code was optimized.

46:09.000 --> 46:12.000
No, it's not blocking anymore for a lot of things.

46:12.000 --> 46:16.000
So you can actually share a process between other person.

46:16.000 --> 46:23.000
So that's why I say 80% of them are just because there is five percent on each worker or ten and not one only.

46:23.000 --> 46:31.000
And I did some tests and the performance impact was minimal and actually you can never save up a lot of memory this way.

46:31.000 --> 46:40.000
So I'm not having like five kilobytes like on each property like per new perception, but it's actually really helps especially for more server.

46:40.000 --> 46:49.000
And we all know how the RAM price is now, so it's always good to have like a little optimization on this this part.

46:49.000 --> 46:57.000
So what's news is also on the video conference in part is the last step of the MLNet funding that hired.

46:57.000 --> 47:04.000
So I had three steps on this funding. The first one was to just modernize the video calling system.

47:04.000 --> 47:09.000
The seventh one was to bring muji, so multiple, but it was full clear, clear video call.

47:09.000 --> 47:12.000
And the third step is actually to add the ISFU.

47:12.000 --> 47:17.000
So who is who knows about ISFU? Do I need to go have a technical there?

47:17.000 --> 47:23.000
Okay, so ISFU is basically normally on the the current system is like this.

47:23.000 --> 47:29.000
So if you go five friends in a room like you're sending five time your video stream to everyone.

47:29.000 --> 47:35.000
So you see for two three person it works for audio it works well, well quite well up to ten person I think.

47:35.000 --> 47:42.000
But you see that above that it's not possible especially on your mobile you will send like a lot of data for nothing.

47:42.000 --> 47:48.000
So as if you're quite simple is that you actually have like one server that takes the video streams.

47:48.000 --> 47:55.000
And sometimes the company compresses it sometimes makes it sometimes like yeah do some work with it and then send it to the others.

47:55.000 --> 47:58.000
So then you have like a minimal impact on that.

47:58.000 --> 48:10.000
So for this part actually I'm not rewriting it I'm using like I will use a product called Galen that was also funded by NLNet that is a really well made as a few in a go.

48:10.000 --> 48:23.000
And then they will it will be wrapped in a jingle and example and then we will work with movie and the nice thing because there will be a standard about that it means that other clients can easily reuse that.

48:23.000 --> 48:30.000
Plug them to their example user and then do video conferencing massively with with example.

48:30.000 --> 48:38.000
So you have a little screen shot also of the best of you of this video call system.

48:38.000 --> 48:42.000
And the goal also of movie is that it's easy to deploy.

48:42.000 --> 48:49.000
If some of you are deploy like at gc system it works quite well but you have a lot of blocks to connect to each other.

48:49.000 --> 48:59.000
Movie the goal to that is like you just and still the movie projects start the demand and automatically you have all those feature built in.

48:59.000 --> 49:04.000
And the big thing that is coming are the spaces.

49:04.000 --> 49:11.000
So just to introduce spaces I think there is that already on many other things including matrix.

49:11.000 --> 49:23.000
It's basically to group chat room together to have like not only one room but group of rooms where an illustrator can actually play with with them.

49:23.000 --> 49:32.000
So there was already some work done and we are like working as a system and implementation and we just have to know do it.

49:32.000 --> 49:43.000
The good thing is that it's fully retro compatible so for the many example clients that don't do that you can actually join some of the room of the whole space easily.

49:43.000 --> 50:01.000
One of the first goal that I have in moving with this is not read to build the whole discord or matrix system but actually to have those chat room where you have audio and video room below it like you have on a team speak or a member that you can easily have like on your audio of your room.

50:01.000 --> 50:04.000
So it will be a small space and then after that it will expand on it.

50:04.000 --> 50:12.000
So it will basically mix the SFU system and the space system together and yeah lots of other things that are planned after that.

50:14.000 --> 50:17.000
And that's it I think.

50:17.000 --> 50:20.000
So I was quite fast.

50:20.000 --> 50:28.000
So yeah that was a long year with a lot of work done.

50:28.000 --> 50:38.000
And the example is that we are just just before the first time actually brought a lot of new interesting topics to do for this year.

50:38.000 --> 50:53.000
So I hope that moving will be like one of the nice platform that you want to try in 2021 and yeah I'm joined and see if it gives you like nice nice features and also.

50:53.000 --> 50:59.000
And something that I forgot I actually continued to work with the bridging system so we did a.

50:59.000 --> 51:09.000
Yeah we did a lot of a lot of work with the bridging system so actually moving really interesting really well with discord telegram what's up and a few others.

51:09.000 --> 51:17.000
So I didn't show you but like on my accounts basically I have all those platform in one unique UI and fully bridge with the others.

51:17.000 --> 51:24.000
And I think really well integrated you have the reaction you have like the history management, the file management and all those things.

51:24.000 --> 51:35.000
And one of the goal of the spaces are actually to integrate also with those I treat to see the discord spaces inside moving with maybe the matrix spaces and all the others in one UI.

51:35.000 --> 51:36.000
That's it.

51:36.000 --> 51:48.000
So if you thank you for everything there is some good is there and more on the other room.

51:48.000 --> 51:58.000
I will be available if you have any question but if there's already some question in the room I will be happy to answer you.

51:58.000 --> 52:01.000
Wow I was super clear.

52:01.000 --> 52:11.000
So yeah.

52:11.000 --> 52:18.000
So the question was about how the bridges are working so you have different kind of bridges.

52:18.000 --> 52:26.000
In Japanese it's actually implementing sampep and maybe matrix and act as a matrix server.

52:26.000 --> 52:34.000
So that's it's very easy to complete transparency but the sledge project is actually acting as a client to this network.

52:34.000 --> 52:44.000
So basically when you are installing a sledge you are installed on your example server and you provide new what you call services which is like from movie.

52:44.000 --> 52:49.000
But you I have like telegram that movie that you WhatsApp that movie you discord that movie in the queue.

52:49.000 --> 52:57.000
And you provide your credential to that or like like secure authentication system that actually connect for you to the discord.

52:57.000 --> 53:02.000
And then sledge is basically translating this to example.

53:02.000 --> 53:10.000
And your example is series basically showing the clients pure standard example things.

53:10.000 --> 53:20.000
And that's really nice because once you do that when you plug it then the whole clients connected to it actually see the discord like ecosystem.

53:20.000 --> 53:22.000
As an example.

53:22.000 --> 53:24.000
Yeah that's it.

53:24.000 --> 53:33.000
It's quite tricky because I know that my friend have to follow how the discord changes and telegram all the time but it works really well.

53:33.000 --> 53:36.000
So yeah.

53:36.000 --> 53:38.000
Is there more questions?

53:38.000 --> 53:39.000
Yeah.

53:39.000 --> 53:40.000
But yeah.

53:40.000 --> 53:42.000
What's good is about the front end.

53:42.000 --> 53:43.000
Yeah.

53:43.000 --> 53:44.000
Yeah.

53:44.000 --> 53:45.000
Yeah.

53:45.000 --> 53:46.000
Yeah.

53:46.000 --> 53:48.000
So I'm just like.

53:48.000 --> 53:49.000
You will do so many stuff.

53:49.000 --> 53:50.000
Have.

53:50.000 --> 53:51.000
Have.

53:51.000 --> 53:52.000
Have.

53:52.000 --> 53:53.000
Have.

53:53.000 --> 53:54.000
Have.

53:54.000 --> 53:55.000
Have.

53:55.000 --> 53:56.000
Have.

53:56.000 --> 53:57.000
Have.

53:57.000 --> 53:58.000
Yeah.

53:58.000 --> 53:59.000
Perfect.

53:59.000 --> 54:00.000
Actually.

54:00.000 --> 54:01.000
Yeah.

54:01.000 --> 54:03.000
That's a really technical question because I can actually show you how it's done.

54:03.000 --> 54:10.000
It's simple but yeah it's on the front end is pure JavaScript and CSS.

54:10.000 --> 54:15.000
And actually most of the states are built in PHP and pushed in real time to the.

54:15.000 --> 54:21.000
So I think when there was a react at the beginning it's like let's do everything in the browser and at one of the guys say yeah browser I quite slow.

54:21.000 --> 54:25.000
So maybe we can generate a render some of the stuff server sign and push it.

54:25.000 --> 54:26.000
Well that's the thing.

54:26.000 --> 54:30.000
It's like PHP can actually do easily like a lot of HTML.

54:30.000 --> 54:35.000
Like so there is a website and then when you for example receive a message.

54:35.000 --> 54:38.000
Movim is parsing it put it into database.

54:38.000 --> 54:40.000
And then create a little HTML.

54:40.000 --> 54:41.000
Think that's a decade.

54:41.000 --> 54:42.000
This is a new message.

54:42.000 --> 54:46.000
It's roughly said because it's a bit more complex than that but yeah that's it.

54:46.000 --> 54:51.000
So that's how it is that's why it's simple and I made like a little too.

54:51.000 --> 54:57.000
I must not like a couple of weeks ago is showing like difference between this core and moving and we have like a.

54:57.000 --> 55:02.000
In this case like 200 or 400 megabytes and movies like 20 or 30 megabytes in the memory.

55:02.000 --> 55:04.000
So box quite well.

55:04.000 --> 55:05.000
Yeah.

55:05.000 --> 55:09.000
Do we have more time for questions or.

55:09.000 --> 55:11.000
Yeah.

55:11.000 --> 55:12.000
Yeah.

55:12.000 --> 55:15.000
All of the center of the.

55:15.000 --> 55:18.000
Who home.

55:18.000 --> 55:20.000
Oh.

55:20.000 --> 55:22.000
Oh.

55:22.000 --> 55:23.000
Oh.

55:23.000 --> 55:25.000
So it's.

55:26.000 --> 55:28.000
Yeah.

55:28.000 --> 55:33.000
So the question was about who host the SFU server.

55:33.000 --> 55:35.000
So that's your choice actually.

55:35.000 --> 55:43.000
You can normally it's good to host it next to your XMPP server to actually for it like as a service.

55:43.000 --> 55:47.000
But you can actually have it like on another network and then collect to that server.

55:47.000 --> 55:52.000
So each imagine you have like a small example server on your Raspberry Pi.

55:52.000 --> 55:55.000
You cannot easily reencode video on that thing.

55:55.000 --> 55:57.000
Then you want to have something in the cloud.

55:57.000 --> 56:02.000
You can actually say, okay, this is where you should go to actually call the SFU.

56:02.000 --> 56:07.000
And then just do the XMPP routing that is quite lightweight between your Raspberry Pi and the cloud server.

56:07.000 --> 56:09.000
So that's one of the goal.

56:09.000 --> 56:13.000
The long time goal with movie is that maybe to offer some kind of.

56:13.000 --> 56:15.000
You know, video call service like this.

56:15.000 --> 56:19.000
Where actually maybe you paper like a bit to actually.

56:19.000 --> 56:24.000
Make the server runs and then after that, like you have just the XMPP on top.

56:24.000 --> 56:26.000
So you use the clients you want.

56:26.000 --> 56:27.000
Yeah.

56:27.000 --> 56:28.000
Yeah.

56:28.000 --> 56:30.000
I want to use asking.

56:30.000 --> 56:32.000
The SFU feature is pretty cool.

56:32.000 --> 56:34.000
And I hope the development goes well.

56:34.000 --> 56:36.000
Do you think we'll get the next XMPP?

56:36.000 --> 56:38.000
Do you like the frame of the post them talks next year?

56:38.000 --> 56:39.000
Ah.

56:39.000 --> 56:40.000
Yeah, maybe.

56:40.000 --> 56:41.000
Maybe.

56:41.000 --> 56:44.000
We have actually I'm quite confident about the Galen.

56:44.000 --> 56:45.000
Galen works really well.

56:46.000 --> 56:47.000
Yeah.

56:47.000 --> 56:49.000
It's a little goo binary.

56:49.000 --> 56:50.000
It's quite magical.

56:50.000 --> 56:51.000
Like what a format I tested.

56:51.000 --> 56:52.000
So maybe.

56:52.000 --> 56:54.000
Because I think for them is about scalability.

56:54.000 --> 56:57.000
First, like you want to have like everyone connected.

56:57.000 --> 57:01.000
So yeah, maybe it could be done.

57:01.000 --> 57:07.000
One of the goal of movie, as I say, was to bring the old zoom and telegram experience.

57:07.000 --> 57:09.000
Because I'm not far from that.

57:09.000 --> 57:11.000
Because you can actually do that in the browser.

57:11.000 --> 57:14.000
So having like a URL invitation system that you can send your friend.

57:14.000 --> 57:17.000
And then they create an anonymous account.

57:17.000 --> 57:18.000
Just for the call.

57:18.000 --> 57:20.000
It's super useful for that.

57:20.000 --> 57:23.000
And then at the end, you have a little like button to say,

57:23.000 --> 57:25.000
Hey, do you want to create an actual XMPP account,

57:25.000 --> 57:28.000
which already information to actually join next time.

57:28.000 --> 57:32.000
So that will be a really nice thing to have like this little unique URL.

57:32.000 --> 57:33.000
We'll be just enjoying.

57:33.000 --> 57:37.000
And then do a bit of XMPP and have this nice conversation.

57:37.000 --> 57:40.000
And I saw more politically.

57:40.000 --> 57:43.000
I saw like the bit of companies and big government.

57:43.000 --> 57:45.000
Like government interested about that.

57:45.000 --> 57:48.000
Also with the European Union and zoom and all those things.

57:48.000 --> 57:52.000
So maybe it's time to build those kind of solution in Europe as well.

57:52.000 --> 57:54.000
To actually say like look.

57:54.000 --> 57:58.000
We did something similar, but actually better because it's turned out

57:58.000 --> 58:01.000
and fully compatible with a million other clients.

58:01.000 --> 58:02.000
Yeah.

58:02.000 --> 58:08.000
So maybe I would be interested to see with the thousand people if it's doable.

58:08.000 --> 58:11.000
Yeah.

58:11.000 --> 58:12.000
Any other question?

58:12.000 --> 58:15.000
I think we still have a few minutes left.

58:15.000 --> 58:17.000
Okay.

58:17.000 --> 58:22.000
So if you have more technical things or more other questions to ask,

58:22.000 --> 58:25.000
I will be on the XMPP, both the rest of the afternoon.

58:25.000 --> 58:32.000
And you're welcome to actually just go on the movie website and try it out.

58:32.000 --> 58:35.000
There is also a move that I am that is the main instance.

58:35.000 --> 58:39.000
You can just create an account and join and try it out there.

58:39.000 --> 58:40.000
That is quite easy.

58:40.000 --> 58:44.000
And if you have any other XMPP clients, everything is compatible.

58:44.000 --> 58:46.000
So just try it.

