1 00:00:00,000 --> 00:00:10,200 Welcome to the NGI Zero podcast where we talk to the people who are building the next 2 00:00:10,200 --> 00:00:11,680 generation internet. 3 00:00:11,680 --> 00:00:14,120 Hi, I'm Ronny Lam. 4 00:00:14,120 --> 00:00:16,000 And I'm Tessel Renzenbrink. 5 00:00:16,000 --> 00:00:21,360 We both work for NLnet, a foundation which financially supports people working on free 6 00:00:21,360 --> 00:00:23,880 and open source technologies. 7 00:00:23,880 --> 00:00:28,040 Our guest today is Jérôme Poisson, also known as Goffi. 8 00:00:28,040 --> 00:00:33,440 He is a free software developer who has been active in the XMPP community for over 15 years. 9 00:00:33,440 --> 00:00:40,920 He is the initiator and main developer of Libervia, a communication ecosystem based on XMPP. 10 00:00:40,920 --> 00:00:45,920 Libervia has received several NGI Zero grants and we'll be talking about the project today. 11 00:00:45,920 --> 00:00:49,240 Hi Jérôme, it's really nice to have you here. 12 00:00:49,240 --> 00:00:52,400 Hi, Tessel and Ronny, and thank you for the invitation. 13 00:00:52,400 --> 00:00:54,640 It's really nice for me to be here too. 14 00:00:54,640 --> 00:00:56,880 Did we miss anything in our introduction? 15 00:00:57,200 --> 00:00:59,560 No, no, that looks correct to me. 16 00:00:59,560 --> 00:01:05,240 Okay, to get to know you better, we devised a list of three quick questions and hopefully 17 00:01:05,240 --> 00:01:09,240 your answers will give us a little insight into who you are. 18 00:01:09,240 --> 00:01:11,880 So the first one is, tabs or spaces? 19 00:01:13,880 --> 00:01:19,080 The usual question, I'm a Python developer so I'm more into spaces but honestly I don't 20 00:01:19,080 --> 00:01:22,120 care, you can use whatever you want. 21 00:01:22,120 --> 00:01:24,400 That's very generous of you. 22 00:01:24,400 --> 00:01:25,400 Beer or wine? 23 00:01:25,920 --> 00:01:26,920 Beer, definitely. 24 00:01:26,920 --> 00:01:32,600 I'm from North of France and we have a culture similar to Belgium so I like strong 25 00:01:32,600 --> 00:01:33,600 Belgian beers. 26 00:01:33,600 --> 00:01:34,600 Great, yeah. 27 00:01:35,600 --> 00:01:37,600 Asterix or Marsupilami? 28 00:01:37,600 --> 00:01:45,600 Marsupilami, I'm a big fan of Franquin and Marsupilami, Gaston Lagaffe and everything. 29 00:01:45,600 --> 00:01:49,840 Okay, that says all a lot about you. 30 00:01:49,840 --> 00:01:50,840 Thanks for answering those questions. 31 00:01:50,840 --> 00:01:53,840 Thanks for those nice questions. 32 00:01:54,280 --> 00:01:57,080 So then we go to the project. 33 00:01:57,080 --> 00:01:59,880 You work on communication systems. 34 00:01:59,880 --> 00:02:02,080 What key issues do you see in this field? 35 00:02:02,080 --> 00:02:08,080 Well, there are a lot of issues in communication. 36 00:02:08,080 --> 00:02:12,880 Let's start by the most obvious. 37 00:02:12,880 --> 00:02:19,840 Today there are big companies like GAFAM, Google, Apple, Facebook, Amazon, etc. which 38 00:02:19,840 --> 00:02:26,840 have a monopoly on the Internet and that's caused a lot of trouble. 39 00:02:26,840 --> 00:02:37,640 First, I see a lot of high profiles like politicians or influencers, celebrities, even governments 40 00:02:37,640 --> 00:02:45,520 which are using this platform and notably X formerly Twitter for their main communication. 41 00:02:45,520 --> 00:02:48,520 So that means that you need an account on this platform to follow them. 42 00:02:49,200 --> 00:02:53,200 That means also that they have control on the visibility of your publications. 43 00:02:53,200 --> 00:02:55,200 They can do censorship. 44 00:02:55,200 --> 00:02:58,200 They can influence who is visible. 45 00:02:58,200 --> 00:03:05,840 There is also the issue of surveying who you are reading, who you are following, which 46 00:03:05,840 --> 00:03:12,840 can give a lot of information of your political views, sexual orientation, and this kind of 47 00:03:12,840 --> 00:03:13,840 things. 48 00:03:13,840 --> 00:03:17,440 So that can be dangerous. 49 00:03:18,360 --> 00:03:29,560 Another point is I see a lot of companies, schools, NGOs, etc. which are using private 50 00:03:29,560 --> 00:03:35,680 services, online services like Software as a Service to store their data and do their 51 00:03:35,680 --> 00:03:36,680 internal communication. 52 00:03:36,680 --> 00:03:42,400 So I'm thinking about Google Docs, Slack, Dropbox, these kind of things. 53 00:03:43,360 --> 00:03:47,360 That means that we have a lack of control on our data. 54 00:03:47,360 --> 00:03:53,360 That means there can be spying by other companies or by government. 55 00:03:59,360 --> 00:04:01,360 Also, there is an issue. 56 00:04:01,360 --> 00:04:06,360 The company or the server can be in a foreign jurisdiction. 57 00:04:06,360 --> 00:04:11,360 So if you need to go up to a trial, it can be a big trouble. 58 00:04:13,360 --> 00:04:18,640 Also, in general, there are a lot of problems, especially in the last few years, about misinformation 59 00:04:18,640 --> 00:04:25,560 and devaluation of work of journalists, which is a really important job in my eyes, to do 60 00:04:25,560 --> 00:04:28,200 fact-checking and explaining things. 61 00:04:28,200 --> 00:04:33,160 And of course, issues with harassment, bullying, and these kind of things. 62 00:04:33,160 --> 00:04:39,860 How does Libervia contribute to addressing those issues? 63 00:04:40,320 --> 00:04:45,320 We don't address all these issues because some of them are societal issues and there 64 00:04:45,320 --> 00:04:50,320 are also different kinds of projects to address these issues. 65 00:04:50,320 --> 00:04:53,320 But in Libervia, there are many important things. 66 00:04:53,320 --> 00:04:55,320 First, it's decentralized. 67 00:04:55,320 --> 00:04:58,320 That means that it's independent from any corporation. 68 00:04:58,320 --> 00:05:03,320 It's even independent for the developers. 69 00:05:03,320 --> 00:05:09,320 So you can install your own instance and it can communicate with other instances. 70 00:05:09,780 --> 00:05:14,780 Of course, it's free software, so that means that you can verify it, install it, modify 71 00:05:14,780 --> 00:05:21,780 it, install it everywhere and do whatever you want basically with it. 72 00:05:23,780 --> 00:05:30,780 There is state-of-the-art end-to-end encryption, not only for chat but also for file sharing 73 00:05:30,780 --> 00:05:37,780 and for event blogging and events, optionally, if you want calendar events kind of things. 74 00:05:38,240 --> 00:05:44,240 Also, we have strong ethics in the DNA of the project. 75 00:05:44,240 --> 00:05:49,640 We have written a documents that you can check on the official website, libervia.org, 76 00:05:49,640 --> 00:05:56,080 which is called a social contract and where we explain our view that we want to stick 77 00:05:56,080 --> 00:06:03,080 with free software, we want to do decentralization, we take into account a lot of importance on 78 00:06:03,080 --> 00:06:08,080 accessibility and these kind of things. 79 00:06:08,080 --> 00:06:15,080 Of course, we work with standards, so with XMPP notably, a communication standard which 80 00:06:18,080 --> 00:06:24,080 is mainly known for instant messaging but I can actually do a lot more. 81 00:06:24,080 --> 00:06:29,080 So we use it also for blogging, for file sharing and for these kind of things. 82 00:06:29,080 --> 00:06:36,080 I've been working on gateway to other protocols, notably ActivityPub, the protocol behind 83 00:06:36,580 --> 00:06:39,580 Mastodon, Peertube, Mobilizon, etc. 84 00:06:39,580 --> 00:06:46,580 So that's the kind of thing we try to do with Libervia to tackle those issues. 85 00:06:46,580 --> 00:06:52,580 Can you explain what Libervia is and a bit more about what XMPP is? 86 00:06:53,080 --> 00:07:00,080 Alright, so XMPP stands for Extensible Messaging and Presence Protocol. 87 00:07:02,080 --> 00:07:09,080 So protocol is basically the language you use to talk with other software. 88 00:07:10,080 --> 00:07:16,080 So the goal of XMPP is we work on the same protocol so we can have different software 89 00:07:16,580 --> 00:07:23,080 from different people and they work together and we explain how to do everything like how 90 00:07:23,080 --> 00:07:27,580 to send a message to one people, how to send a message to a group of people, how to do 91 00:07:27,580 --> 00:07:31,580 encryption, how to share files, how to publish blogs and these kind of things. 92 00:07:31,580 --> 00:07:38,580 So yeah, basically that's a way to communicate together and stay on the same page. 93 00:07:40,580 --> 00:07:41,580 So about Libervia. 94 00:07:41,580 --> 00:07:44,580 Libervia is an all-in-one communication tool. 95 00:07:45,080 --> 00:07:47,080 So it's doing several things. 96 00:07:47,080 --> 00:07:52,080 So it's doing instant messaging, of course, state of the art end-to-end encryption as 97 00:07:52,080 --> 00:07:56,080 I said before, but it's also doing blog. 98 00:07:56,080 --> 00:07:59,080 My own blog is made with it. 99 00:08:00,080 --> 00:08:03,080 I'm working at the moment on audio/video calls. 100 00:08:04,080 --> 00:08:13,080 So not only one-to-one calls but also multi-party calls and even remote desktop control. 101 00:08:13,580 --> 00:08:24,580 For sharing photo albums, calendar events, there is even a feature of all kinds of lists 102 00:08:24,580 --> 00:08:31,580 you may use like grocery lists, to-do lists, these kind of things because you may want 103 00:08:31,580 --> 00:08:33,580 to share them with your family for instance. 104 00:08:33,580 --> 00:08:36,580 So it's interesting to have them in communication tools. 105 00:08:37,080 --> 00:08:42,080 So it's aimed to be a comprehensive solution for all major communication needs. 106 00:08:43,080 --> 00:08:50,080 And so you have common interface that you have to learn once and the goal is to work 107 00:08:50,080 --> 00:08:57,080 on all platforms, web, desktop, command line, mobile and it can be also used for scripting, 108 00:08:57,080 --> 00:09:01,080 for automating tasks, for these kind of things. 109 00:09:01,580 --> 00:09:11,580 And so to integrate with other protocols and I have also some plan to create a service 110 00:09:11,580 --> 00:09:16,580 that people can subscribe to, to have everything pre-installed and these kind of things. 111 00:09:17,580 --> 00:09:23,580 You mentioned that you also introduced an ActivityPub as a protocol. 112 00:09:24,080 --> 00:09:31,080 Is that as a gateway or how does it work and what does it bring you? 113 00:09:32,080 --> 00:09:40,080 Yes, that's one of the projects which has been financed by NLnet and NGI Zero from the 114 00:09:40,080 --> 00:09:44,080 European Commission, Next Generation Internet. 115 00:09:44,580 --> 00:09:50,580 Yes, so the gateway is basically, we call it a component. 116 00:09:50,580 --> 00:09:57,580 It's a kind of universal plugin you put on your XMPP server and it's doing the translation 117 00:09:57,580 --> 00:10:04,580 basically between XMPP and ActivityPub, the protocol which is used by Mastodon, Pixelfed, etc. 118 00:10:05,080 --> 00:10:14,080 So when you write a blog post on XMPP, there is an actor handle, the one you use on Mastodon 119 00:10:14,080 --> 00:10:20,080 for instance and you can use it and you can see the blog from Mastodon directly. 120 00:10:20,080 --> 00:10:27,080 And it works in both directions, that means that people in XMPP can also check blogs 121 00:10:27,080 --> 00:10:32,080 or events on Mobilizon, it's also working with events from XMPP. 122 00:10:32,580 --> 00:10:38,580 It's quite impressive how much you built on this one platform, Libervia. 123 00:10:38,580 --> 00:10:39,580 Thank you. 124 00:10:40,580 --> 00:10:47,580 Because most people know XMPP for instant messaging, why did you get the idea of how 125 00:10:47,580 --> 00:10:51,580 did you get the idea and why did you want to build so much on XMPP? 126 00:10:51,580 --> 00:10:58,580 Well, the thing is, it's known for instant messaging but even before I started the project 127 00:10:59,080 --> 00:11:06,080 in 2008, so it's more than 15 years, there were already what we call XEP, it's XMPP 128 00:11:09,080 --> 00:11:16,080 extension protocol, they said it's extensible protocol, so there are XEP which are specifications 129 00:11:16,080 --> 00:11:22,080 which explain how to do other things and there were already at the time specifications explaining 130 00:11:22,580 --> 00:11:28,580 how to do blogging or how to share files, so I didn't invent that, it was already there. 131 00:11:28,580 --> 00:11:35,580 The thing is, I wanted to use the full potential of XMPP and I think the way also the protocol 132 00:11:38,580 --> 00:11:43,580 is done because there is an organization around which is called XMPP Software Foundation 133 00:11:43,580 --> 00:11:49,580 and there is a mailing list to discuss things and we have people with different kind of 134 00:11:50,080 --> 00:11:56,080 experiences and we have meetings often, we will have a meeting in Berlin this weekend 135 00:11:56,080 --> 00:11:57,080 by the way. 136 00:11:57,080 --> 00:12:04,080 So these kind of things, it's a good way in my opinion to build specifications and 137 00:12:06,080 --> 00:12:10,080 to do things and I wanted to use the full potential of XMPP. 138 00:12:10,080 --> 00:12:17,080 So, yeah, when I started to do that, I was thinking why just staying on instant messaging 139 00:12:18,080 --> 00:12:25,080 when we can do so much with it and another interesting point is when you have built something, 140 00:12:25,080 --> 00:12:28,080 it can be reused for other features. 141 00:12:28,080 --> 00:12:35,080 For instance, if I create a way to do comments for my blog, I can use also the comments when 142 00:12:39,080 --> 00:12:44,080 I do calendar events, I use the same comment when I'm doing forum, forum is basically a 143 00:12:44,080 --> 00:12:47,080 special specific view of a blog post. 144 00:12:47,080 --> 00:12:54,080 When I do end-to-end encryption, I can reuse this brick for everything, not only for instant 145 00:12:54,080 --> 00:12:55,080 messaging. 146 00:12:55,080 --> 00:12:59,080 So it seems a lot but actually when you do all these features and you do it in a way 147 00:12:59,080 --> 00:13:04,080 you can reuse them, you can do a lot with this. 148 00:13:04,080 --> 00:13:08,080 So, yeah, that's what I wanted to do. 149 00:13:08,080 --> 00:13:15,080 You have also worked on end-to-end encryption for XMPP Pub/Sub. 150 00:13:15,080 --> 00:13:22,080 Can you explain what Pub/Sub is and what and about adding end to end encryption? 151 00:13:22,080 --> 00:13:27,080 Yes, so Pub/Sub stands for Publish/Subscribe. 152 00:13:27,080 --> 00:13:32,080 So for developers, I can say it's observer observable pattern. 153 00:13:32,080 --> 00:13:37,080 So basically it's a way that you have what we call a node. 154 00:13:37,080 --> 00:13:44,080 It's a collection of items actually, and you can subscribe to get updates. 155 00:13:44,080 --> 00:13:46,080 So it looks a bit complicated like that. 156 00:13:46,080 --> 00:13:52,080 But basically it's like a blog feed, a blog feed. 157 00:13:52,080 --> 00:13:54,080 So that can be a Pub/Sub collection. 158 00:13:54,080 --> 00:13:57,080 And when you subscribe, you get updates of the feed. 159 00:13:57,080 --> 00:14:01,080 So that means that when there is a new blog post, you get notification and you know, you 160 00:14:01,080 --> 00:14:04,080 know that there is something new. 161 00:14:04,080 --> 00:14:06,080 So, yeah, that's basically it. 162 00:14:06,080 --> 00:14:13,080 That's showing a list of things and getting updates when something is new or removed or updated. 163 00:14:13,080 --> 00:14:22,080 And by adding end-to-end encryption to it, that means that you can encrypt everything, 164 00:14:22,080 --> 00:14:28,080 basically everything, because so far we can encrypt chats, but sometimes you want to 165 00:14:28,080 --> 00:14:31,080 have a private blog only for a few people. 166 00:14:31,080 --> 00:14:36,080 And you may want to use a blog because it's more adapted to the kind of announcements you want to do, 167 00:14:36,080 --> 00:14:38,080 these kind of things. 168 00:14:38,080 --> 00:14:41,080 And you may not want to have it public. 169 00:14:41,080 --> 00:14:44,080 And in this case, it's good to have end-to-end encryption. 170 00:14:44,080 --> 00:14:48,080 It can be the same thing if you want to organize an event. 171 00:14:48,080 --> 00:14:56,080 If you want to organize a private event, it may be interesting that nobody besides the people, 172 00:14:56,080 --> 00:15:00,080 the guests can see what this event is about. 173 00:15:00,080 --> 00:15:06,080 So by adding end-to-end encryption to Pub/Sub, it's actually adding end-to-end encryption to basically 174 00:15:06,080 --> 00:15:09,080 any feature we can imagine. 175 00:15:09,080 --> 00:15:15,080 And this is also what you talked about earlier, that if you have end-to-end encryption developed once, 176 00:15:15,080 --> 00:15:17,080 you can use it again for the different features. 177 00:15:17,080 --> 00:15:19,080 Exactly. 178 00:15:19,080 --> 00:15:23,080 And you did even more features because you also did email to XMPP. 179 00:15:23,080 --> 00:15:25,080 Can you say something about that? 180 00:15:25,080 --> 00:15:34,080 I have a grant for that, but I haven't started yet because I'm still finishing the one about audio/video calls. 181 00:15:34,080 --> 00:15:39,080 I'm on the last few weeks on audio/video calls implementation. 182 00:15:39,080 --> 00:15:43,080 But the goal is to have a gateway to email. 183 00:15:43,080 --> 00:15:49,080 So not only to have email, to have all your communication in the same place. 184 00:15:49,080 --> 00:15:53,080 So you can have instant messaging, email and everything. 185 00:15:53,080 --> 00:16:06,080 And also to work on the UI and user experience so you can do filtering or show email in a nice way, a readable way. 186 00:16:06,080 --> 00:16:17,080 But the goal is also to work on the newsletter and mailing list so you can have them shown like a forum. 187 00:16:17,080 --> 00:16:25,080 And basically having a kind of discourse that is decentralized and on top of XMPP, 188 00:16:25,080 --> 00:16:37,080 where your mailing list will be with a nice user experience and you could add also automatically tagging or this kind of thing. 189 00:16:37,080 --> 00:16:45,080 So it can be nicer to use the ROS mailing list. 190 00:16:45,080 --> 00:16:50,080 You mentioned blog a couple of times. 191 00:16:50,080 --> 00:17:00,080 In my mind, I connect a blog to something that can be read from a web browser. 192 00:17:00,080 --> 00:17:07,080 But I expect this is not the way it is in Libervia. 193 00:17:07,080 --> 00:17:16,080 The blog is managed with the Pub/Sub system I've talked about before. 194 00:17:16,080 --> 00:17:21,080 So the blog, you can access it by XMPP. 195 00:17:21,080 --> 00:17:29,080 So you do a Pub/Sub request and you get the HTML or text version of the blog you want. 196 00:17:29,080 --> 00:17:35,080 But in the web interface, I have also a rendering of the blog. 197 00:17:35,080 --> 00:17:38,080 So you can check it with a browser like any blog. 198 00:17:38,080 --> 00:17:40,080 There is also Atom feed. 199 00:17:40,080 --> 00:17:48,080 So you can, if you don't want to use XMPP, you can also subscribe to it with an aggregator without problem. 200 00:17:48,080 --> 00:17:59,080 And with the ActivityPub gateway, you can also access the blog from Mastodon or other ActivityPub projects. 201 00:17:59,080 --> 00:18:07,080 So the idea is if you publish your blog and you can access it from basically anywhere. 202 00:18:07,080 --> 00:18:10,080 Wow, I'm really impressed. 203 00:18:10,080 --> 00:18:11,080 Thank you. 204 00:18:11,080 --> 00:18:20,080 Yes, so am I and I wanted to ask you because you said you started in 2008 with this already and you built a lot. 205 00:18:20,080 --> 00:18:22,080 Where do you get this enthusiasm? 206 00:18:22,080 --> 00:18:25,080 How do you stick to it for so long? 207 00:18:25,080 --> 00:18:27,080 Yes, it's a long story. 208 00:18:27,080 --> 00:18:37,080 Initially, I wanted to start a big project at the time to improve my competencies in Python that I was starting to learn at the time. 209 00:18:37,080 --> 00:18:43,080 And I was not fully satisfied with XMPP client I was using. 210 00:18:43,080 --> 00:18:47,080 So I said, OK, let's try to make my own like a lot of people do. 211 00:18:47,080 --> 00:18:51,080 It's a common thing with IRC or XMPP. 212 00:18:51,080 --> 00:18:58,080 And with time, I saw the potential, but I was working. 213 00:18:58,080 --> 00:19:00,080 So it was on my free time. 214 00:19:00,080 --> 00:19:09,080 And so I've continued and I just had ideas and I wanted to improve it. 215 00:19:09,080 --> 00:19:18,080 So little by little, I just added things one after the other. 216 00:19:18,080 --> 00:19:42,080 And at some point, also, I've been working at some point full time on it because I had some some free time because of life, because of life basically, but couldn't find the way to finance it. 217 00:19:42,080 --> 00:19:48,080 So I had to find a job again and et cetera and a long story short 218 00:19:48,080 --> 00:19:51,080 at the end, I've tried with NLnet. 219 00:19:51,080 --> 00:19:58,080 I've heard about NLnet and I tried to propose my project. 220 00:19:58,080 --> 00:20:03,080 So they they accepted one of the projects. 221 00:20:03,080 --> 00:20:09,080 And after another one, I decided to work full time on it. 222 00:20:09,080 --> 00:20:14,080 And now I'm trying to work on the sustainability of that. 223 00:20:14,080 --> 00:20:18,080 And I'm trying to create a company. 224 00:20:18,080 --> 00:20:29,080 And my goal is to build on the medium- to long-term a team of fully, decently paid people to work full time on it. 225 00:20:29,080 --> 00:20:36,080 And do you work alone on it or are there other other developers working with you? 226 00:20:36,080 --> 00:20:39,080 Is there a community behind you? 227 00:20:39,080 --> 00:20:44,080 There is a community. I've been mostly alone. 228 00:20:44,080 --> 00:20:57,080 I have had a really good friend which worked with me for a year in this time where I was working full time on it, but we couldn't find a way to sustain it. 229 00:20:57,080 --> 00:20:59,080 So he had to stop. 230 00:20:59,080 --> 00:21:02,080 I had some contribution. 231 00:21:02,080 --> 00:21:19,080 The end-to-end encryption part with OMEMO was a contribution from somebody who is a really good developer and specialized in end-to-end encryption. 232 00:21:19,080 --> 00:21:26,080 And yes, so but besides that, I've been mostly alone. 233 00:21:26,080 --> 00:21:33,080 I've made some mistake about that. Like I didn't follow the publish early publish often. 234 00:21:33,080 --> 00:21:43,080 I was mostly working like on my own and doing not so often a release because it's a lot of work to do release. 235 00:21:43,080 --> 00:21:46,080 And so I have a lot of stuff packed in the project. 236 00:21:46,080 --> 00:21:55,080 But I need now to work on UI and user experience and notably to make installation easier. 237 00:21:55,080 --> 00:22:07,080 So that's my short-term goal to make this thing nicer and easier to install and to use and hopefully to grow the community. 238 00:22:07,080 --> 00:22:16,080 But there are a few people following the project, doing also the packaging for Arch Linux or Debian and following for years. 239 00:22:16,080 --> 00:22:19,080 So yeah, I can say there is a little community around the project. 240 00:22:19,080 --> 00:22:24,080 That's always good. And are there many users? 241 00:22:24,080 --> 00:22:32,080 Well, the thing is, I think there are users notably of the command line tool because it's packaged in Debian. 242 00:22:32,080 --> 00:22:37,080 So it's easier to install and some people are using it. 243 00:22:37,080 --> 00:22:49,080 But yeah, I have not been working enough on installation and ease of use. 244 00:22:49,080 --> 00:22:52,080 And a lot of people would say: "interesting" and follow from time to time. 245 00:22:52,080 --> 00:22:58,080 But often it's a bit too complicated to install a bit too coarse at the moment. 246 00:22:58,080 --> 00:23:06,080 And the thing is, because I'm working on many things at the same time and notably now on audio/video calls, 247 00:23:06,080 --> 00:23:11,080 it's hard to find time to make things smoother and easier to install. 248 00:23:11,080 --> 00:23:14,080 So yeah, that's really something I need to work. 249 00:23:14,080 --> 00:23:17,080 And so there are not so many users at the moment. 250 00:23:17,080 --> 00:23:30,080 But I expect that it will grow steadily probably after the summer because I have good hope after I will work on installation procedure and UI. 251 00:23:30,080 --> 00:23:32,080 I'm looking forward to it. 252 00:23:32,080 --> 00:23:37,080 You said earlier that you have a social contract for Libervia. 253 00:23:37,080 --> 00:23:39,080 Can you say a little bit more about that? 254 00:23:39,080 --> 00:23:43,080 Why do you think it's important to have something like that? 255 00:23:43,080 --> 00:23:52,080 Yes, I think everything we do is more or less political. 256 00:23:52,080 --> 00:24:05,080 And the way you design a tool will influence a lot the way it will be used. 257 00:24:05,080 --> 00:24:19,080 So from the beginning, the early days, we want to document this social contract where we say to the user what this project is about. 258 00:24:19,080 --> 00:24:26,080 So we want to stick to free software, we want decentralization, we want to avoid censorship. 259 00:24:26,080 --> 00:24:38,080 But this is one point we have modified with time because we saw during the last year that people saying we don't want censorship is often an excuse to do a lot of harassment. 260 00:24:38,080 --> 00:24:52,080 So we have updated the way it's said to say we want to avoid political censorship, but we want also to protect people from harassment and these kind of things. 261 00:24:52,080 --> 00:24:59,080 And also accessibility is one of the major points of the project. 262 00:24:59,080 --> 00:25:06,080 So we thought it was important to write this kind of thing so people know who we are and what we want to do. 263 00:25:06,080 --> 00:25:15,080 So it's influenced both the way we design the project, but also if we have services, the way we run the service. 264 00:25:15,080 --> 00:25:28,080 And also we have made a French association around the project for the governance of it. 265 00:25:28,080 --> 00:25:34,080 And every year we do a meeting and we explain what happened, what we want to do. 266 00:25:34,080 --> 00:25:45,080 And if we want to change the social contract, we need to talk about it and to have a consensus, so we don't change social contract jus like this. 267 00:25:45,080 --> 00:25:52,080 We need to have a consensus between the people in the association to change it. 268 00:25:52,080 --> 00:25:57,080 And so, yeah, we try to be transparent and to explain who we are and what the project is about. 269 00:25:57,080 --> 00:26:03,080 That's why I think it's a really important part of the project, this social contract. 270 00:26:03,080 --> 00:26:08,080 Do the recent election results have an impact on that? 271 00:26:08,080 --> 00:26:11,080 Are you talking about European or French ones? 272 00:26:11,080 --> 00:26:14,080 The French ones. 273 00:26:14,080 --> 00:26:19,080 Yeah, this story is a bit crazy. 274 00:26:19,080 --> 00:26:23,080 Nobody was expecting election after the European, but anyway. 275 00:26:23,080 --> 00:26:26,080 And we can cut it out maybe, by the way. 276 00:26:26,080 --> 00:26:27,080 Sorry? 277 00:26:27,080 --> 00:26:30,080 We can cut it out. 278 00:26:30,080 --> 00:26:33,080 To not make it too political. 279 00:26:33,080 --> 00:26:34,080 Yeah, yeah. 280 00:26:34,080 --> 00:26:43,080 But I think everything is political and of course it's a major issue because it was a big danger. 281 00:26:43,080 --> 00:26:46,080 Actually, I think it was the most important election in France. 282 00:26:46,080 --> 00:26:48,080 Since maybe World War II. 283 00:26:48,080 --> 00:26:50,080 It was really, really important election. 284 00:26:50,080 --> 00:27:00,080 And we were literally scared because the result could have a big impact on, not me directly because I am lucky to be privileged, 285 00:27:00,080 --> 00:27:16,080 but a lot of people with different stories, different sexual orientation, coming from immigration, etc. 286 00:27:16,080 --> 00:27:18,080 Could have been impacted. 287 00:27:18,080 --> 00:27:25,080 And in this case, it's really important to have good end-to-end encryption in your communication tool. 288 00:27:25,080 --> 00:27:34,080 And yeah, so that has a big impact on what we do and that shows why it is important to do that. 289 00:27:34,080 --> 00:27:41,080 Because tomorrow everything can change because there is a new government. 290 00:27:41,080 --> 00:27:47,080 And yeah, that's really something important. 291 00:27:47,080 --> 00:27:49,080 Just one point. 292 00:27:49,080 --> 00:27:51,080 I'm talking about people. 293 00:27:51,080 --> 00:28:01,080 It can be also like people who raise alerts or people which are in countries, 294 00:28:01,080 --> 00:28:07,080 where they're in danger because of political views or sexual orientation or everything. 295 00:28:08,080 --> 00:28:16,080 At the moment, Libervia had a security audit from NLnet, but end-to-end encryption has not been included. 296 00:28:16,080 --> 00:28:23,080 So I would recommend more to use something which has a good audit from third party. 297 00:28:23,080 --> 00:28:30,080 So if you are in danger, just use a tool which has been audited and that's it. 298 00:28:30,080 --> 00:28:40,080 But the goal is to have this in Libervia in the future and to have something which is secure to protect people as much as we can. 299 00:28:40,080 --> 00:28:43,080 Thanks. That's really interesting what you're saying there. 300 00:28:43,080 --> 00:28:55,080 To say, to acknowledge that all technology is inherently political and then to make it explicit what your political views are by making this social contract. 301 00:28:55,080 --> 00:28:59,080 I find that, yeah, I think that's really a good thing. 302 00:28:59,080 --> 00:29:07,080 Yeah, actually, at some point we had a sticker with a motto, technology is not neutral. 303 00:29:07,080 --> 00:29:13,080 Because it's something you often hear like, oh, technology is neutral and blah, blah, blah. 304 00:29:13,080 --> 00:29:16,080 But I think everything is political. 305 00:29:16,080 --> 00:29:24,080 The way you design your tool, it influences a lot the way you use it. 306 00:29:24,080 --> 00:29:33,080 Of course, with a gun you can use it as a tool just like a hammer, but a gun is meant to kill. 307 00:29:33,080 --> 00:29:37,080 So, yeah, that's technology is not neutral. 308 00:29:37,080 --> 00:29:42,080 The way it's designed, it's influenced the way it will be used. 309 00:29:42,080 --> 00:29:46,080 Yeah, and it's good to see that the people who make it acknowledge that. 310 00:29:46,080 --> 00:29:54,080 And then as a second step also just say like, okay, so these are the principles that we built our technology on. 311 00:29:54,080 --> 00:30:01,080 And then people can just say, oh, I agree with that, so I'll use your technology or not and then not use the technology. 312 00:30:01,080 --> 00:30:07,080 So it's really good for the awareness as well of people that technology is political. 313 00:30:07,080 --> 00:30:18,080 And talking about politics, I was wondering recently in March, the European Union's Digital Markets Act came into force. 314 00:30:18,080 --> 00:30:29,080 And one of the rules in it is that at least chat programs that are from big gatekeepers like Facebook or Google, 315 00:30:29,080 --> 00:30:35,080 they have to become interoperable with other chat applications. 316 00:30:35,080 --> 00:30:41,080 And I was wondering, do you see a role there for XMPP or Libervia or both? 317 00:30:41,080 --> 00:30:44,080 Yes, there is a role definitely. 318 00:30:44,080 --> 00:30:49,080 But the thing is, I see also gatekeepers, so-called gatekeepers is a big company. 319 00:30:49,080 --> 00:30:55,080 They are Facebook for WhatsApp and Facebook Messenger, Google, et cetera. 320 00:30:55,080 --> 00:31:03,080 They will do everything they can to work around the legislation and to make the thing complicated. 321 00:31:03,080 --> 00:31:12,080 So I think for WhatsApp, you need to sign something if you want to be compatible with them and they use their own protocol. 322 00:31:12,080 --> 00:31:18,080 So it will be anyway difficult for... if you have a big company and you can afford that. 323 00:31:18,080 --> 00:31:25,080 OK, but like a small project - well not small, I think the product is quite big actually - 324 00:31:25,080 --> 00:31:32,080 but small teams can't really work on that and follow the changes and everything. 325 00:31:32,080 --> 00:31:36,080 So I think it's important to be able to communicate. 326 00:31:36,080 --> 00:31:43,080 And we have a nice project, Slidge, which is a recent project in XMPP, 327 00:31:43,080 --> 00:31:50,080 which does gateway with proprietary protocols like WhatsApp, Slack, et cetera. 328 00:31:50,080 --> 00:31:52,080 So I think it's important to have that. 329 00:31:52,080 --> 00:31:59,080 But in my case, I want to focus on open protocols. First because it's more stable. 330 00:31:59,080 --> 00:32:10,080 You don't have to follow and change and it won't break one day after the other just because the company wants full control. 331 00:32:10,080 --> 00:32:13,080 And yes, so I'm focusing mostly on open protocols. 332 00:32:13,080 --> 00:32:24,080 And I think it's important to communicate with other protocols like Activity Pub, email and other messaging software. 333 00:32:24,080 --> 00:32:27,080 What are the next steps for your project? 334 00:32:27,080 --> 00:32:33,080 Well, right now I'm finishing grants on audio/video. 335 00:32:33,080 --> 00:32:46,080 So thanks to NLnet, there was first one-to-one audio/video calls, then multiparty in what we call a mesh network, then remote desktop control. 336 00:32:46,080 --> 00:32:57,080 And now I'm working on the multiparty call with a lot of participants, something similar to Jitsi, Google Meet, et cetera. 337 00:32:57,080 --> 00:33:04,080 So first that, then I will have another grant to work on email gateway. 338 00:33:04,080 --> 00:33:11,080 But also in parallel, I need to work on the UI on user experience. 339 00:33:11,080 --> 00:33:29,080 I need to stabilize the project and also I'm trying to set up a company. I will in a couple of months launch a service with an abonnement for people. 340 00:33:29,080 --> 00:33:32,080 People can still of course install by themselves. 341 00:33:32,080 --> 00:33:42,080 If people want to use it, I am thinking notably about schools, associations, companies, et cetera, as internal communication tools. 342 00:33:42,080 --> 00:33:56,080 And yeah, trying to make it sustainable so people can... so we can have a paid team and we can go further with the project. 343 00:33:56,080 --> 00:34:17,080 Yeah, it would be really great if you can make your product sustainable because that's also of course something that's that's often hard in open source to find a way to keep the project going without people having to sacrifice their free time forever, you know? 344 00:34:17,080 --> 00:34:26,080 Yeah, it's difficult. I am lucky to have funding from NLnet right now, but even then it's not so stable. 345 00:34:26,080 --> 00:34:35,080 And yeah, I need to find a way to have a stable life. 346 00:34:35,080 --> 00:34:45,080 And at the same time, if I can work on this project and make it useful for a lot of people, I will be happy. 347 00:34:45,080 --> 00:34:48,080 Yes, that would be really nice. 348 00:34:48,080 --> 00:34:58,080 And so maybe, I don't know if you know about this, but so NGI Zero doesn't just give financial support, but also practical support. 349 00:34:58,080 --> 00:35:16,080 And recently we had a lot of new support services which are helping people to set up, for instance, their company or find another sustainable model for their project. 350 00:35:16,080 --> 00:35:25,080 And so for instance, you could get mentoring or advice or first steps or starting up your governance. 351 00:35:25,080 --> 00:35:27,080 Did you know about that? 352 00:35:27,080 --> 00:35:33,080 Yeah, I have I have known about extra services because I have used some of them. 353 00:35:33,080 --> 00:35:44,080 I have heard in a podcast, I think a French podcast with somebody from NLnet about this help to make it sustainable. 354 00:35:44,080 --> 00:35:54,080 So, yeah, I'm definitely interested and I will probably try to contact NLnet to see if I can get some some help on this side. 355 00:35:54,080 --> 00:35:57,080 Yeah, Ronny can help you with that. 356 00:35:57,080 --> 00:35:59,080 Yes, of course. No problem. 357 00:35:59,080 --> 00:36:02,080 Great. 358 00:36:02,080 --> 00:36:11,080 So, well, you did mention how NGI Zero is helping you already a lot. 359 00:36:11,080 --> 00:36:12,080 Yes. 360 00:36:12,080 --> 00:36:20,080 What what advice do you have for other people that want to go this route? 361 00:36:20,080 --> 00:36:23,080 Yeah, for people who want to apply. 362 00:36:23,080 --> 00:36:28,080 So first, don't be discouraged if you have a rejection. 363 00:36:28,080 --> 00:36:33,080 I have had two rejections before my first grant has been accepted. 364 00:36:33,080 --> 00:36:36,080 So don't be discouraged. 365 00:36:36,080 --> 00:36:45,080 Try to present your project clearly and show why it is useful and who it will benefit. 366 00:36:45,080 --> 00:37:01,080 Try to focus on projects which are helpful for other projects and most people. Notably, if you can promote a standard. I know that NLnet love ActivityPub and XMPP. 367 00:37:01,080 --> 00:37:06,080 And also if you work on end-to-end encryption, it will help a lot. 368 00:37:06,080 --> 00:37:12,080 And yeah, in general, try to work on a broad ecosystem. 369 00:37:12,080 --> 00:37:24,080 Be patient because every two months... if you have been rejected once you can try two months after but it takes approximately four months to get an answer. 370 00:37:24,080 --> 00:37:29,080 So be patient. And don't hesitate to contact them. 371 00:37:29,080 --> 00:37:30,080 The team is really nice. 372 00:37:30,080 --> 00:37:40,080 I've met in person several times at FOSDEM or other conferences and they were really, really nice people. 373 00:37:40,080 --> 00:37:59,080 And easy to talk with and they can give advice. And if you are accepted and you start and if you do like me and you want to be full time of it, you have to be really careful of the scheduling. Because you have steps. 374 00:37:59,080 --> 00:38:02,080 But you are paid when a step is done. 375 00:38:02,080 --> 00:38:11,080 So if you under-evaluate the time, which happened to me a lot of the time, the time it takes to do something that means that it will take longer than you expect to get paid. 376 00:38:11,080 --> 00:38:18,080 And after it can take sometimes up to three weeks to get the payments. 377 00:38:18,080 --> 00:38:30,080 So if you are dependent on this, you need to be really careful with your scheduling and try not to do too much because you can still do it out of the grant. 378 00:38:30,080 --> 00:38:35,080 Try to do what is necessary and to organize a not too big a task. 379 00:38:35,080 --> 00:38:44,080 And I know it's difficult in computer science, but try to not underestimate the time it will take to do something. 380 00:38:44,080 --> 00:38:45,080 Thank you. 381 00:38:45,080 --> 00:38:47,080 That's really, really concrete advice. 382 00:38:47,080 --> 00:38:59,080 I think that would really help a lot of people to picture how to make this application and also how to, if they get it, how to organize it internally. 383 00:38:59,080 --> 00:39:00,080 So that's really good advice. 384 00:39:00,080 --> 00:39:02,080 Thanks for that. 385 00:39:02,080 --> 00:39:04,080 Welcome. 386 00:39:04,080 --> 00:39:06,080 I was wondering. 387 00:39:06,080 --> 00:39:12,080 So for me, you made it really clear why XMPP and Libervia are important. 388 00:39:12,080 --> 00:39:23,080 You said at the beginning about Big Tech having a monopoly on our communication systems and gave a lot of reasons as to why we shouldn't want that. 389 00:39:23,080 --> 00:39:39,080 And my question would be, so the people who are listening now, how could they contribute to bringing Libervia further and more generally open communication systems? 390 00:39:39,080 --> 00:39:46,080 For Libervia in general, join. Just join us, notably on the chat. 391 00:39:46,080 --> 00:39:51,080 Libervia, the XMPP address is Libervia at chat.jabberfr.org. 392 00:39:51,080 --> 00:39:57,080 But you can check on the website and you can you can talk, you can contact us if you want to help. 393 00:39:57,080 --> 00:39:59,080 There are many things to do. 394 00:39:59,080 --> 00:40:04,080 There's a project even it's a bit rough still, but it helped to improve. 395 00:40:04,080 --> 00:40:09,080 If you try to install and say what what is difficult and what we can improve. 396 00:40:09,080 --> 00:40:16,080 You can contribute code, of course, but also translation, design, we have a lot of work on the design. 397 00:40:16,080 --> 00:40:19,080 So every design advice is more than welcome. 398 00:40:19,080 --> 00:40:22,080 Or TEM or any other skill. 399 00:40:22,080 --> 00:40:31,080 And when I will start service, if you want to support us, maybe try to subscribe to the service if you can. 400 00:40:31,080 --> 00:40:37,080 And yeah, just send feedback as long as the feedback is nice. 401 00:40:37,080 --> 00:40:48,080 Even if it's a critique, it's always nice to get feedback and to see how people use the project and what they want to do with it. 402 00:40:48,080 --> 00:40:51,080 So yeah, just stay in touch with us. 403 00:40:51,080 --> 00:40:54,080 And in general about communication tools. 404 00:40:54,080 --> 00:41:02,080 Well, maybe try not to create yet another project. Because I see a lot of people doing that, especially in XMPP. 405 00:41:02,080 --> 00:41:04,080 There are already a lot of nice projects. 406 00:41:04,080 --> 00:41:17,080 So choose the one which match yourself better and try to contribute on existing stuff and talk to people. 407 00:41:17,080 --> 00:41:22,080 People often easy to talk to and can be helpful. 408 00:41:22,080 --> 00:41:26,080 So yeah, just just try to talk to people that's the best way. 409 00:41:26,080 --> 00:41:34,080 So what you're saying is not to do what you did and try to learn Python, build your own XMPP project and yeah, for learning. 410 00:41:34,080 --> 00:41:45,080 I would say for learning, it's a special case because if you want to learn, for instance, you see people trying to make another, 411 00:41:45,080 --> 00:41:51,080 let's say, kernel. Of course, you won't make Linux by yourself. 412 00:41:51,080 --> 00:41:55,080 But for learning purposes, it's interesting. 413 00:41:55,080 --> 00:42:00,080 So in this case, it makes sense to start something from scratch. 414 00:42:00,080 --> 00:42:02,080 No, but I really understand what you say. 415 00:42:02,080 --> 00:42:09,080 Like it may be better to start contributing to existing projects than start up yet another one. 416 00:42:09,080 --> 00:42:11,080 Yeah. And just a remark. 417 00:42:11,080 --> 00:42:13,080 I forgot to say about Libervia. 418 00:42:13,080 --> 00:42:16,080 The project is really modular. 419 00:42:16,080 --> 00:42:22,080 It's made with a backend and several frontend and plugins. 420 00:42:22,080 --> 00:42:38,080 So the goal is to make it really flexible. So you can make something absolutely different with a totally different interface or something really original without problem. 421 00:42:38,080 --> 00:42:47,080 Even in something else than Python, because the front end can be in any language and you can build this on top on Libervia and all the hard parts, 422 00:42:47,080 --> 00:42:51,080 the XMPP parts, audio, video, because everything is already made in the backend. 423 00:42:51,080 --> 00:42:58,080 So you won't have to do it and you can just concentrate on your ideas. 424 00:42:58,080 --> 00:43:03,080 So you don't have to be a full stack developer to help with Libervia? 425 00:43:03,080 --> 00:43:05,080 No, definitely not. 426 00:43:05,080 --> 00:43:11,080 And anyway, you can ask questions and I can try as much as my free time allows. 427 00:43:11,080 --> 00:43:14,080 What is left of it, of course. 428 00:43:14,080 --> 00:43:16,080 Yes. 429 00:43:16,080 --> 00:43:19,080 Well, thank you very much for this conversation. 430 00:43:19,080 --> 00:43:23,080 I think you really helped our community. 431 00:43:23,080 --> 00:43:32,080 Is there anything that we missed or that you would like to add to our conversation? 432 00:43:32,080 --> 00:43:36,080 Well, I think, thank you very much for the conversation. 433 00:43:36,080 --> 00:43:40,080 It was nice from my side too. 434 00:43:40,080 --> 00:43:46,080 We were talking, maybe, about what can be done in general. 435 00:43:46,080 --> 00:43:56,080 I think we have about the concentration of media on the Internet and not only on the Internet, by the way. 436 00:43:56,080 --> 00:44:03,080 It would be great also if... I think we need legislation. 437 00:44:03,080 --> 00:44:06,080 I'm looking for my words. 438 00:44:06,080 --> 00:44:15,080 I think we need legislation for that and the ability to tackle the concentration of power. On this side, 439 00:44:15,080 --> 00:44:26,080 Europe, the European Union can be an ally, like we have seen with interoperability, of neutrality of Internet, which has been in a law. 440 00:44:26,080 --> 00:44:30,080 But it can be sometimes a danger. 441 00:44:30,080 --> 00:44:35,080 Like we have seen recently, there was some attack on end-to-end encryption. 442 00:44:35,080 --> 00:44:44,080 They want always for the same excuse, saying it's against terrorism and pornography, et cetera, but pedopornography. 443 00:44:44,080 --> 00:44:50,080 But if people want to do an attack, they will find a way anyway to encrypt their communication. 444 00:44:50,080 --> 00:44:57,080 And so they try to force people to use backdoors, those kind of things in end-to-end encryption. 445 00:44:57,080 --> 00:45:06,080 And if we do that, it's a big danger, especially as we have seen recently with the election, government can change quickly. 446 00:45:06,080 --> 00:45:15,080 So, yeah, we need to maybe try to influence people to do the right legislation. 447 00:45:15,080 --> 00:45:23,080 And yes, and also, yeah, we need also open protocols to communicate together. 448 00:45:23,080 --> 00:45:28,080 XMPP, ActivityPub, Matrix, all the other protocols. 449 00:45:28,080 --> 00:45:45,080 And it's really important to think about the design of projects. To think about accessibility and trying, maybe, not to clone commercial because I see a lot that we're trying to clone commercial platforms. 450 00:45:45,080 --> 00:45:56,080 We need to find our own way and to think by yourself how to do the stuff and the influence it will have on people. 451 00:45:56,080 --> 00:46:02,080 And I think this also shows the power of open source. 452 00:46:02,080 --> 00:46:12,080 I mean, the Big Tech can be forced to to build in backdoors, but within open source. 453 00:46:12,080 --> 00:46:23,080 Well, even if they force us to, I mean, you can see that the backdoors are there and therefore not use it. 454 00:46:23,080 --> 00:46:30,080 Yeah, but it's still a danger because most of people have not the technical knowledge to do it. 455 00:46:30,080 --> 00:46:37,080 So if we are forced by the law to do that, it will be difficult to get rid of it. 456 00:46:37,080 --> 00:46:38,080 True. 457 00:46:38,080 --> 00:46:50,080 That's also what you said about the open standards, what we talked about earlier, this interoperability between different chat applications that even if these big companies are forced to do it, 458 00:46:50,080 --> 00:47:00,080 they will still try to keep as much power over it as possible and try to delay stuff or make it really difficult. 459 00:47:00,080 --> 00:47:11,080 Whereas if everybody just uses open standards and maybe even is just forced to use open standards, then that kind of power is taken away from them. 460 00:47:11,080 --> 00:47:17,080 So there's definitely a lot to say for using open standards. 461 00:47:17,080 --> 00:47:21,080 Yes, and open source community free software. 462 00:47:21,080 --> 00:47:29,080 I like more the term free software than open source by the way. 463 00:47:29,080 --> 00:47:31,080 It's really capable. 464 00:47:31,080 --> 00:47:37,080 We can see like software like Blender, for instance, is even better than commercial alternatives. 465 00:47:37,080 --> 00:47:50,080 And open free software community has achieved a lot and is really capable of doing a lot of nice things. 466 00:47:50,080 --> 00:48:04,080 Also, one practical point, if we use open platforms, we don't need to have like 10, 20 different apps with different accounts and to switch all the time. 467 00:48:04,080 --> 00:48:08,080 So from a practical point of view, it's better to use free software. 468 00:48:08,080 --> 00:48:11,080 There's actually no reason not to use free software. 469 00:48:11,080 --> 00:48:14,080 Yes, exactly. 470 00:48:14,080 --> 00:48:18,080 And on that note, I would like to say thank you very much. 471 00:48:18,080 --> 00:48:26,080 And yeah, this really was an insightful conversation, I think. 472 00:48:26,080 --> 00:48:30,080 Thank you very much. It was really nice for me to. 473 00:48:34,080 --> 00:48:36,080 Thank you.