WEBVTT

00:00.000 --> 00:16.000
Okay, so, hello everybody, I'm, I'm Geron Poisson, I'm also known as Gophie on

00:16.000 --> 00:23.000
Internet, I'm an example of developer for more than 15 years, I'm a author and a

00:23.000 --> 00:28.000
little developer of the developer, which is all in one communication tool based on

00:28.000 --> 00:34.000
XMPP, I'm a member of the XMPP standard foundation for 10 years and I'm an

00:34.000 --> 00:42.000
electing member of the XMPP standard foundation council for this 2025 term, which is a

00:42.000 --> 00:47.000
team, which is taking the technical decision in the XMPP standard foundation.

00:47.000 --> 00:54.000
So, my goal today is to show you that XMPP is not only a great messaging protocol,

00:54.000 --> 01:00.000
it can also be used as a layer to make other tools, and it can simplify your

01:00.000 --> 01:05.000
life if you want to make a sketch with it. So, really quick, so Maria, for this XMPP,

01:05.000 --> 01:11.000
XMPP stands for extensive messaging and presents protocol, it was, as is

01:11.000 --> 01:18.000
name say, initially sought for a sort messaging, but since, thanks to the XMPP,

01:18.000 --> 01:25.000
it can do a lot of things nowadays. It was introduced in the late 90s, it's 20

01:25.000 --> 01:32.000
six years old this year, it's widely used, many people use it with a lot of

01:32.000 --> 01:38.000
annoying it, because it's, it's a base in zoom, it's original protocol in

01:38.000 --> 01:44.000
what's up, it's shows in a mini application, a mini video games, it's used a lot,

01:44.000 --> 01:50.000
and it has a good story of a lot of compatibility and protection, if you take

01:50.000 --> 01:55.000
XMPP client, which was met 15 years ago, and without being touch, it

01:55.000 --> 02:00.000
should watch, without modern feature, of course, but it should work with

02:00.000 --> 02:05.000
modern server. So, we will start with instant messaging use

02:05.000 --> 02:10.000
case. Let's imagine you want to make a script with a super useful

02:10.000 --> 02:16.000
box, which it's time to see for them in a chat, it had a reaction with a beer

02:16.000 --> 02:21.000
and a fan fries. So, you want this box to work, of course, with the most

02:21.000 --> 02:28.000
popular chat application out there, which is what the box, and to do that, you

02:28.000 --> 02:32.000
go on the website, and you have to check for the API, if you are lucky,

02:32.000 --> 02:37.000
it's a library, that is available for the programming language you want to use,

02:37.000 --> 02:40.000
then you have to learn the library to documentation, to some

02:40.000 --> 02:43.000
experimentation, see all you get the message, all you do

02:43.000 --> 02:47.000
reaction, etc., etc., and you do an application. Okay, now you have

02:47.000 --> 02:51.000
something working with a laptop, and you want to undo the second

02:51.000 --> 02:55.000
most popular application, the chat application there, which is

02:55.000 --> 02:59.000
a small signal. So, small signal, same thing, you go there, you

02:59.000 --> 03:03.000
change the IPI, there is no library, so you have to go with the IPI,

03:03.000 --> 03:07.000
you have to do the authentication, maybe on the hand-to-hand encryption,

03:07.000 --> 03:14.000
and learn experiment, etc., etc. So, when you did your

03:14.000 --> 03:17.000
second implementation, the first one, the pre-cat is

03:17.000 --> 03:21.000
IPI because this proprietary software, so it's bad, and so you have to

03:21.000 --> 03:25.000
start again from scratch and do a new implementation with a new

03:25.000 --> 03:28.000
application on the IPI. Then there is a sort of application, but

03:28.000 --> 03:32.000
I will stop there because more a fantasy is not realistic to

03:32.000 --> 03:35.000
have three major different and incompatible chat

03:35.000 --> 03:40.000
application you use by many people. So, what the solution to

03:40.000 --> 03:45.000
that, if you have guessed, you can use XMPP, with XMPP and

03:45.000 --> 03:48.000
the gateway, which translate to other protocols, you do

03:48.000 --> 03:52.000
the implementation only once, so you just have to do the

03:52.000 --> 03:57.000
execution and ending on incoming message. Once, and the gateway

03:57.000 --> 04:01.000
will handle the different protocols. What is interesting with that is

04:01.000 --> 04:04.000
if there is yet another application, it just needs to be

04:04.000 --> 04:07.000
implementing the gateway and do not have to change anything in

04:07.000 --> 04:10.000
your script, it will still be working. If there is a new version of the

04:10.000 --> 04:15.000
IPI, the gateway will not change that, and when it's on your

04:15.000 --> 04:20.000
example, if we will work out of the box without having to

04:20.000 --> 04:23.000
change anything from your site, and I have two good news. The

04:23.000 --> 04:27.000
first one is a separate gateway exists, it's called

04:27.000 --> 04:32.000
slidge, and it's ending most of the most popular chat

04:32.000 --> 04:36.000
application, and the second thing, it's not only working with

04:36.000 --> 04:40.000
insort messaging, you can do that with any kind of

04:40.000 --> 04:45.000
things. So, why would you use XMPP for building your

04:45.000 --> 04:48.000
two? I put a lot of text in the, I will be quick because

04:48.000 --> 04:51.000
you will see a few minutes, but you can check after

04:51.000 --> 04:54.000
the text if you want the slidge out available online.

04:54.000 --> 04:58.000
So, as we have seen, if you do implementation, you only do

04:58.000 --> 05:01.000
it once. One use XMPP, it's a coherent

05:01.000 --> 05:04.000
system, so you use always the St. mechanism, the

05:04.000 --> 05:08.000
St. Why to use identifior of the St. Why to use

05:08.000 --> 05:13.000
XMPP? You'll use other specification, etc. It's

05:13.000 --> 05:16.000
It's flexible, and example, it does a lot for you.

05:16.000 --> 05:20.840
It's under already authentication, and to an encryption.

05:20.840 --> 05:24.000
The generic tools you can use to my commands,

05:24.000 --> 05:27.480
or to send and get a notification, et cetera, et cetera.

05:27.480 --> 05:31.800
And the gateway takes a burden of two.

05:31.800 --> 05:36.440
So if you have the gateway for the protocol you want to use,

05:36.440 --> 05:39.160
you just have to concentrate on the feature you want to implement

05:39.160 --> 05:40.480
with an example.

05:40.480 --> 05:43.760
And in some case, you can even improve the feature

05:43.760 --> 05:47.600
you have, for instance, with the Atom or RSS.

05:47.600 --> 05:51.280
The feature you have in newspaper, for instance,

05:51.280 --> 05:55.160
you only get you item when you pull the feed.

05:55.160 --> 05:57.120
But if there is an implementation, which

05:57.120 --> 05:58.920
is using the moving for instance,

05:58.920 --> 06:01.320
while using an example, it helps serve.

06:01.320 --> 06:03.240
And in this case, you can get notification,

06:03.240 --> 06:08.840
whereas there is no article without having to pull it by yourself.

06:08.840 --> 06:14.280
A quick call done on the XMPP software foundation is organized.

06:14.280 --> 06:16.120
The XMPP standard, the standard software,

06:16.120 --> 06:17.640
so standard foundation is organized.

06:17.640 --> 06:20.080
So the XMPP standard foundation is what

06:20.080 --> 06:21.520
handled administrative things

06:21.520 --> 06:26.360
and the organization of specification.

06:26.360 --> 06:28.640
So you can, if you involve some moving XMPP,

06:28.640 --> 06:31.080
because you want a client of standard running things,

06:31.080 --> 06:32.520
you cannot play to be a member.

06:32.520 --> 06:34.880
And there is a vote, it's fully aware that somebody

06:34.880 --> 06:38.960
is part accepted, it's fully extremized.

06:38.960 --> 06:40.680
But you don't have to be a member if you want

06:40.680 --> 06:43.640
to work with a proper specification,

06:43.640 --> 06:45.320
and obviously to use it.

06:45.320 --> 06:47.320
There is a standard mailing list where you

06:47.320 --> 06:52.520
we discuss, we have feedback about stuff proposed.

06:52.520 --> 06:54.280
That's really interesting, because we have feedback

06:54.280 --> 06:57.760
from people with values, experience, software developers,

06:57.760 --> 07:02.080
people working on video people working on encryption, et cetera.

07:02.080 --> 07:06.120
And with all these eyes, we can have,

07:06.120 --> 07:10.200
with a time-good solution, which is sustainable.

07:10.200 --> 07:11.760
There is a message, just before the first day,

07:11.760 --> 07:15.520
we have today of XMPP Summit, where we need face-to-face.

07:15.520 --> 07:19.920
And we can discuss many things and see the faces behind the software.

07:19.920 --> 07:23.200
The XSF board is administrative, the team

07:23.200 --> 07:24.720
with attacking administrative decision,

07:24.720 --> 07:28.360
and the XSF Council is a team tackling the technical decision.

07:28.360 --> 07:31.960
So a quick overview, if you have a specific assure,

07:31.960 --> 07:34.480
and you go to the XMPP Summit, just to be accepted,

07:34.480 --> 07:37.720
then there is a secure, wide-go-to-standar mailing list

07:37.720 --> 07:40.000
for a feedback, you have a bit of a specific assure,

07:40.000 --> 07:42.560
and it goes to the console, et cetera,

07:42.560 --> 07:47.920
until you have a stable and good specification.

07:47.920 --> 07:53.440
Wires are shows that it's to see that we're

07:53.440 --> 07:57.280
mixing to avoid duplication, and to keep the sync as long

07:57.280 --> 07:59.240
and sustainable as possible.

07:59.240 --> 08:04.640
If we have a feature, we try to make it work for long,

08:04.640 --> 08:13.160
so if you're on it, you show more that it will work for long.

08:13.160 --> 08:17.560
OK, there is a criticism that I often hear about XMPP.

08:17.560 --> 08:22.000
There is two main examples, XMPP extension protocol.

08:22.000 --> 08:26.480
It's a specific action we do for every feature.

08:26.480 --> 08:30.960
And it may be difficult for software to understand that.

08:30.960 --> 08:34.480
So for that's wrong, because we have a good discovery mechanism,

08:34.480 --> 08:37.920
so we can know which feature is supported by the other entities.

08:37.920 --> 08:40.240
And it works.

08:40.240 --> 08:44.720
And the XMPP are, actually, similar to the Unix philosophy.

08:44.720 --> 08:49.600
So every example we want to see and try to do it well.

08:49.600 --> 08:55.960
And we reuse the XMPP or other protocols,

08:55.960 --> 08:59.720
for instance, we have blogging in our XMPP,

08:59.720 --> 09:03.520
and we use Atom, which is existing specification,

09:03.520 --> 09:05.720
and instead of reinventing the wheel,

09:05.720 --> 09:08.400
we just reuse stuff, which already exists.

09:08.400 --> 09:11.280
And so they play nicely together.

09:11.280 --> 09:14.160
And what is also useful is a specific action.

09:14.160 --> 09:16.560
It's actually a documentation.

09:16.560 --> 09:18.480
So if you want to make something, and you

09:18.480 --> 09:22.360
don't know where to start, you can just check the specification,

09:22.360 --> 09:26.560
and you will see, oh, it works.

09:26.560 --> 09:28.600
And we have precious information.

09:28.600 --> 09:30.680
There's always security consideration for that,

09:30.680 --> 09:33.640
so you can use your phone to control your robot.

09:33.640 --> 09:36.480
PAPSAB is published in subscribe.

09:36.480 --> 09:40.120
It's feature when you can publish information,

09:40.120 --> 09:43.520
in a list, and you can it manage

09:43.520 --> 09:47.120
the subscription notification, it may not

09:47.120 --> 09:48.920
permission management.

09:48.920 --> 09:51.480
And there's a new feature of hierarchy,

09:51.480 --> 09:56.600
where you can have a graph and any kind of things.

09:56.600 --> 10:02.000
And so it's useful for anything, for many, many, many things.

10:02.000 --> 10:04.840
I don't need a notification, I don't understand.

10:04.840 --> 10:08.440
For instance, I've made a ticket system

10:08.440 --> 10:12.720
to manage my blog and feature request for my project

10:12.720 --> 10:15.400
with the PAPSAB implementation.

10:15.400 --> 10:21.160
And if tomorrow, I want to make a gateway to GitHub,

10:21.160 --> 10:26.080
I can have my any script that I use with that, which will automatically

10:26.080 --> 10:32.560
work with issue on any GitHub project.

10:32.560 --> 10:36.160
Jingle is one you want to send a lot of data,

10:36.160 --> 10:37.960
and you want to have a direct connection.

10:37.960 --> 10:41.240
So it does a peer-to-peer connection whenever possible.

10:41.240 --> 10:45.960
If it's not possible, there is assistance for the server.

10:45.960 --> 10:47.720
It's useful when you want a direct connection

10:47.720 --> 10:51.680
and you have all the time network, and you want to open a port

10:51.680 --> 10:54.840
or throw us a fire wall or stuff like that.

10:54.840 --> 10:59.080
And it's good for many things that need a lot of data,

10:59.080 --> 11:00.200
and bonwise, and speed.

11:00.200 --> 11:02.800
And if you want to bypass the server,

11:02.800 --> 11:05.920
because you just need direct connection.

11:05.920 --> 11:09.080
And the gateway, so have we seen with chat example,

11:09.080 --> 11:13.280
it's really useful to communicate to some party protocol.

11:13.280 --> 11:15.200
And it's important to not that get ways

11:15.200 --> 11:17.000
are not only for start messaging.

11:17.000 --> 11:19.560
You can have gateway for FTP, for file sharing,

11:19.560 --> 11:21.680
you can have gateway for web dev,

11:21.680 --> 11:23.880
have method gateway for activity pub,

11:23.880 --> 11:25.320
for blogging, et cetera.

11:25.320 --> 11:29.200
So it's what you're generating.

11:29.200 --> 11:31.800
Some people say that I don't like XMPP,

11:31.800 --> 11:37.080
so the most of you, for answer, is you don't need to know

11:37.080 --> 11:39.920
to make an engine to drive a car.

11:39.920 --> 11:43.280
Actually, only need to make XMPP if you want to write

11:43.280 --> 11:46.960
a specification or to implement them in a way

11:46.960 --> 11:50.840
that you're developing in a library or in a client

11:50.840 --> 11:53.960
in this case, you deal with XMPP, but if you want

11:53.960 --> 11:56.960
to use XMPP as a layer to other things,

11:56.960 --> 12:02.400
you can just use software, which already deals XMPP,

12:02.400 --> 12:04.960
with XMPP for you.

12:04.960 --> 12:07.280
And there are a lot of software you can use.

12:07.280 --> 12:12.600
Flex XMPP, for instance, is a popular Python module

12:12.600 --> 12:15.440
to deal with XMPP.

12:15.440 --> 12:16.920
So if you want to make a comment,

12:16.920 --> 12:21.560
just a few lines of Python, you don't have to deal with XMPP.

12:21.560 --> 12:23.760
I've mentioned cross-soddy, because cross-soddy

12:23.760 --> 12:25.000
is far off some gateways.

12:25.000 --> 12:26.720
I use a gateway to empty-titi.

12:26.720 --> 12:30.040
So if you want to work with IoT,

12:30.040 --> 12:34.080
it's translate empty-titi to PAPSEB.

12:34.080 --> 12:35.920
So you just have to deal with that.

12:35.920 --> 12:38.800
Librarially, it's a common interface

12:38.800 --> 12:40.560
of the software I'm working on.

12:40.560 --> 12:44.720
And it has an internal JSON,

12:44.720 --> 12:47.640
a representation of 12, so if you want to work with Ticket,

12:47.640 --> 12:53.640
for instance, you will get a JSON of the metadata of your Ticket.

12:53.640 --> 12:56.680
So to conclude this talk, XMPP is great.

12:56.680 --> 12:58.200
It's not a lot for you.

12:58.200 --> 13:00.080
It's not only for instant messaging.

13:00.080 --> 13:03.440
There is a good story of the Quart compatibility,

13:03.440 --> 13:04.560
and we try to make that.

13:04.560 --> 13:06.120
And one is incompatibility.

13:06.120 --> 13:09.600
Some time, fix on the server itself,

13:09.600 --> 13:12.480
so you don't have to change anything on your side.

13:12.480 --> 13:15.400
You've already have a really active community.

13:15.400 --> 13:17.640
We were around 30 people at the same age,

13:17.640 --> 13:23.280
and it's only a few people who make the way to Brussels.

13:23.280 --> 13:25.560
So you can check the list of examples

13:25.560 --> 13:27.480
to see the feature that I implemented,

13:27.480 --> 13:29.520
and what you can do.

13:29.520 --> 13:31.480
So it's something you should consider

13:31.480 --> 13:33.160
if you want to express or anything,

13:33.160 --> 13:35.200
not necessarily instant messaging,

13:35.200 --> 13:37.040
but for anything you want, it's something

13:37.040 --> 13:39.720
which is really useful to have.

13:40.680 --> 13:43.280
That's it, Francis Torch.

13:43.280 --> 13:46.920
You can check the project on this XMPP chatroom.

13:46.920 --> 13:50.080
I am on MasterDone, so you can follow me,

13:50.080 --> 13:51.560
and if you have any questions,

13:51.560 --> 13:54.120
this is a website of my project on my blog.

13:54.120 --> 13:56.400
Thank you very much, and see you on the next question.

13:56.400 --> 13:57.400
Thank you.

13:57.400 --> 13:58.400
Thank you.

13:58.400 --> 13:59.400
Thank you.

13:59.400 --> 14:00.400
Thank you.

14:00.400 --> 14:01.400
Thank you.

14:01.400 --> 14:02.400
Thank you.

14:02.400 --> 14:03.400
Thank you.

14:03.400 --> 14:04.400
Thank you.

14:04.400 --> 14:05.400
Thank you.

14:05.800 --> 14:08.640
So I was using XMPP, actually,

14:08.640 --> 14:11.240
each other, the E4 quite a while with friends,

14:11.240 --> 14:12.720
professionally, my professional,

14:12.720 --> 14:13.960
so we all had our animals,

14:13.960 --> 14:16.600
Federation, I was expecting, I loved it.

14:16.600 --> 14:20.800
But with a real business customer's mind,

14:20.800 --> 14:22.840
I had big issues.

14:22.840 --> 14:24.680
Not with the product called Excel,

14:24.680 --> 14:25.920
but with the clients.

14:29.120 --> 14:31.560
It's at the only, really, really good,

14:31.560 --> 14:33.880
three XMPP clients,

14:33.880 --> 14:36.600
I had conversations for Android,

14:36.600 --> 14:39.200
iOS, there wasn't, it was last time,

14:39.200 --> 14:45.840
I put it on the 60s, 17, when I had the evaluate for iOS.

14:45.840 --> 14:47.400
There was not much around,

14:47.400 --> 14:52.640
and the best thing was the Chitzi account.

14:52.640 --> 14:54.960
But then there was one models,

14:54.960 --> 14:57.800
and there was, there was two different standards

14:57.800 --> 15:01.400
for this MasterDone type, the old and the new thing, I guess.

15:02.360 --> 15:04.640
Yes, it's man, man for the arcade.

15:04.640 --> 15:09.240
Yeah, the product called itself is fine.

15:09.240 --> 15:14.240
But it's very hard to implement it as a customer,

15:14.240 --> 15:21.240
because if they want to have mobile, web-based,

15:21.880 --> 15:26.880
kind, and on desktop, your six, yes, the right job.

15:26.880 --> 15:29.840
Oh, that's a different project we tried to,

15:29.840 --> 15:31.800
but you're on the Instantness of InCase.

15:31.800 --> 15:33.880
My talk is to use it in more general case,

15:33.880 --> 15:37.200
but if you, if we stick with the Instantness of InCase,

15:37.200 --> 15:39.080
we have software, like Snicket,

15:39.080 --> 15:44.080
which try to do software for every major platform

15:44.080 --> 15:48.680
with a brand name, Unic, brand name, everywhere.

15:48.680 --> 15:51.160
It's working quite well.

15:51.160 --> 15:53.520
There is moving, which is a web client,

15:53.520 --> 15:59.160
but it's using, I think it's still working on Android,

15:59.160 --> 16:02.480
and iOS 2, but I'm not sure, it's need to be checked.

16:07.480 --> 16:10.440
Yes, yes, it's behind us, make it.

16:10.440 --> 16:14.440
Which is, I guess, sweet, or he writes in server,

16:14.440 --> 16:16.440
they took conversations and branded it,

16:16.440 --> 16:19.000
and I think there's not a client brand, which as well.

16:19.000 --> 16:20.680
So, okay, that's interesting.

16:20.680 --> 16:23.800
It's good to hear, because I had this thing,

16:23.800 --> 16:26.440
to work at the 17th of the variation for pick-up,

16:26.440 --> 16:31.440
and the most dishonest, not XMP screen, it's totally great.

16:31.720 --> 16:33.560
Yeah, yeah, yeah, yeah, yeah, yeah, yeah, yeah.

16:33.560 --> 16:37.680
The process is not able to hire a web developer,

16:37.680 --> 16:38.880
each other is great.

16:40.880 --> 16:45.400
Yeah, I'm seeing, I've improved a lot of stuff on the distance.

16:45.400 --> 16:48.920
There is Dino, there is a gadget, which I've improved the UI.

16:48.920 --> 16:52.240
I'm working also on a new desktop content.

16:52.240 --> 16:56.480
IOS, C-Scene, and Monal, I've improved a lot of stuff.

16:56.480 --> 17:00.000
I'm not using iOS, but I know that it's very difficult

17:00.000 --> 17:02.480
platform to work with, I think,

17:02.480 --> 17:04.800
especially for notification, but Singapore

17:04.800 --> 17:07.240
improved a lot the last few years,

17:07.240 --> 17:10.440
and you'd full check the modern state of XMPP.

17:10.440 --> 17:13.960
It's not like it was 10 years ago, it's really more modern.

17:13.960 --> 17:17.280
That's still for you issue, but everywhere there are issue

17:17.280 --> 17:18.120
anyways.

