Good morning Academy. Are you ready for the second day of talks? I didn't hear you Are you still sleeping? Okay, I'm excited to Present the first talk of today, which is by Jean-Papiste Virgin Eugen Eugen and Massimo will tell us about how Canadian life became the great and awesome video editor it is today Okay, thanks for your welcome I am Jean-Papiste Mardel. I've been the Canadian life maintainer for the past 18 years And I'm happy to be here with you at Academy Some of you might already know me as I have been on stage a few times already But it's the first time I'm not alone on stage. So I have Some team members with me. So it makes me really happy because Canadian life is really a community and a team project So it's great to not be alone on the stage So I'm just going to quickly introduce you With the team. So we have been mostly having Online meetings in the last years. We hope to be able to make a sprint soon In the team who couldn't make it today Julius Remy and Kami So I just want to say hi to them today So this is the whole team with Massimo again here today So I will now let the other members of the team introduce themselves Good morning, everyone. My name is Eugene Moore. I'm joining the canine life core team in 2018 I may mainly behind the scene the coder is Jean-Papiste Mardel I'm more about documentation and A buck buck tracking and the home home page and all what is behind the scene needed That we can keep canine life alive Hello everybody. I'm Massimo. I'm a video editor a filmmaker and a Consultant of the project is Tania that I'm on the project and I know to say I'm very happy to be here because I'm very fond of this project and of the guy that work with the with us to create what we are doing and As we are video application to me the best way to introduce ourself is by showing you a video Katie and live is a community project Which aims to deliver a free and open video editing software application To allow everybody to produce quality content in order to increase the democratization of the media The application is a graphic interface written in C++ with Qt and KDE libraries for the MLT framework written by Dandenity which relies on FF and peg to decode and encode almost all the video and audio formats that are out today and Which hosts effects libraries like freighter and move it for video and lab spot and socks for audio By following the official documents that we can find on the internet the project was launched by Jason Wood Who released version 0.2.3 in October 2003? Katie and live 0.2.4 followed but the community did not yet exist and the group was very small the project stopped for two years Before the end of 2005 John Baptiste Mardell who heard that the project would be reactivated offered his help and in 2006 he signed the post of the new release 0.3 of the program from this moment on he became the main reference point for the project Version 0.4 and 0.5 are soon distributed, but there is an issue a refactoring of the code is needed to go forward The program has to be moved from KDE 3 which is not compatible with MLT to KDE 4 The rewriting ends in 2008 followed by several new releases But in 2011 a further migration from KDE 4 to KDE 5 was needed to allow the program to grow in 2012 a crowdfunding campaign is launched to fund the operation and before the end of 2014 the goal is reached then finally in 2015 Katie and live becomes an official KDE application John Baptiste was invited to Academy to present 10 years of activity The new perspective is to make the project even bigger Before the end of the year the first Katie and live cafe is announced with the aim of getting more people involved During this virtual meeting it immediately became clear that in order to grow Katie and live needed to be cross-platform The windows version was announced in 2016 began with a sprint meeting followed by the new logo and the new site But as soon as the development of new features started It was evident that the code for the timeline had to be rewritten because it was too old and no longer fit Everybody knew that the refactoring could take several months or years, but the community did not lose enthusiasm In 2018 a new roadmap was written and in 2019 the refactored code was distributed Although some fine-tuning was still needed Then finally since 2020 and continuing up to now The long-awaited new features along with the plethora of new effect and dozens of important improvements Have been continuously added to create the most powerful free and open video editing application ever We have about 100,000 users using cane live Daily or weekly or frequently if you have saw a lot of users You'll get a lot of feedback as well So if the software is running well, you'll get no feedback if we have a release like 23 or 4 The the bell is ringing after 30 seconds. You have issues a lot of parts not usable So have a lot of user feedback very soon if the software is not really running well So how to communicate with this all these users? we have We tried to keep the communication channel as lean or as simple as possible So we have the communication channel for notification of the software is all our home our home page It's Twitter Sorry, it's Twitter and musto and musta done The communication itself with our user we have these channels. It's It's not it's matrix. It's our forum discuss It's the feedback when something happens or for wishes is buck buck tiller and we have quite a big community on a red edit and give us feet feedbacks and It's sometimes really a challenge to feed and check all these channels to have some other quad feedback to the sub to the subnires well So this one keeps about two up to three people really busy behind the scene just to communicate with the users Downloads you see here a curve over over time these are the downloads of Windows and Mac and app image We have a huge peak on the beginning of covid It looks like users like to have some video editing possibilities And as you can see we can keep the amount of downloads or users over over time as well What you what you do not see on this curve is there's a similar curve then for the unit for the unique visits on our our home home page and we just found out The people going on the home page looking for the download link clicking on that and download the application that leads to us that we Refurbished home homepage to make the user easier to find the download page What's really also what is missing on this curves is Flat flatback downloads and the PPA downloads and we do not really know As the distribution is via mirror mirror server. We do not know the download numbers from the mirror servers Who is using life just make a make an actual poll lost last week and found out About 40% is social media. It's YouTube. It's peer to tick tick tock. I Know schools using our software as well So I get asked years ago that we can prepare a download version Which is possible without additional software. So I download the packed Windows version and repack it in a self extraction find So that the schools do not need additional Software installed and do not need Administration rights to install the Application this 10 this gives about 10 10 percent of our our users and Interestingly, we have about 7% professional users. I think it's wedding editing most probably Some TV, we know some movies. We know as well and then them for the majority only for up to 45% this personal use doing their Vacation holidays at editing like this one. What are the the platforms? used with came life mostly half-half windows Linux and the growing Community on Mac OS we have about five thousand Mac OS down downloads On the Mac OS it works only on the Linux CPU at the at the at the moment With such a community you'll give a lot of feedback and You get interesting feedbacks as well from the user when you're listening to it. Remember the YouTube part we have So the community ask about soup soup titles The community asks about markers That you can mark the video to get the chapters in YouTube So we investigate and found out there is a framework for which can Generate text from speech and can generate automatically Subtitles and even you have the possibility then going in the text field Click and a text and the playhead jumps on the exactly same position Yeah subtitle generation and even we improve that one founding another thing lately is whisper. It's really crazy Yeah This founds the notation of a sentence the punctuation and It's really more accurate and false. I would say Translation and even you can make a translation to in English and it's about 1995% echo accurate in the meantime So people coming and asking How to donate to Caden Cain life? There was a lot of asks from the community.  They like to Spend their money directly to Caden Cain life so we go to the Katie headers, I don't know and Katie starts a pilot project with Cain Cain life That we can direct that users can Donate directly to Caden life We started this donation on the 20th of September 20 2022 and Reached our goal within a month Meaning we collect 15,000 euros within a month.  I made I made a forecast by myself and my forecast Say yeah within a month. We should reach the goal in the meantime is about 27,000 yesterday because it runs in the background further on without Some additional needs, let's say This gets us the possibility to implement really bigger features like the nested timeline Which shop artists will talk about we can now work on stability and we will work on on performance as well to make the software even more perform Performance. Yeah documentation first we thought documentation secondary thing It's not so important. It's still just our Our time because it's a huge amount to spend just within documentation And we check the statistics and found out you have three half thousand views per week on the documentation itself And then we can further down analyze the statistics We found out a third. It's only checking out the effect part and another third checks out only out getting started The interesting thing is the people stay one up to one-half minutes on the page itself Which is for internet. Let's say really really long We calculated that roughly 10 up to 15 percent percent of our users users use our new Documentation manual and at the moment we are ongoing with updating the whole effects part that the user has a better overview of effects what they are doing how to implement this effects and With this new possibility here in Sphinx, it's really nice. You can Put in some keywords and have a really a list where these keywords are found in the documentation It's much more easier than with the old system Yeah, I copy copy right. This is a bit of weak part of Kaden life. Let's say Because the more users you have 100,000 maybe even more They start stealing Kaden life meaning Google advertisements links to other software we have such cases or Just take the name and behind is just the money collector something like this one. So we start Protecting Kaden life as good as possible The logo and the name is copyright on the KDE at the moment and We going on and have in the source code each file with a copyright an SPDX copyright and make really sure we Protect our work our 20-year-long work now with with with proper copy copyright, which is really tricky the goal is to keep Kaden life Free without cost for the future. Thank you What makes Kaden life so successful one thing that I That I think is very important for Kaden life success is that we have a vision for the project. This is where Masimo, he will Talk a bit later about it has a very important role because he we have a focused vision of what we want to achieve What we want users to be able to do for Kaden life I think it's an important part to have a vision for the project We also try to listen to our users. So the both the two things are Linked I think it's important to to have an idea of where we want to go But also to listen to user input and to do the best of the two things And also at one point we also realized that doing too much things was not was not good at one point We had a video capture. We had a DVD wizard. We had a stop motion Widget, so we had lots of lots of features, but everything was working Not so good. So we tried at some point a few years ago We really decided to refocus to have less less features, but to try to make them work better. I Think that's one one important thing also in the project evolution Now the things that we don't do so well it was really quite The last really is 23 or 4 was a good demonstration of what we don't do so well So we'll try to improve Automated testing we have some automated testing Since a few years, but we need to improve to increase the testing We also Since a few years really we talk about organizing test days before the release to because we have a large user community To organize test days to gather feedback before the release. It's something that we never really managed to do And another issue that we have is that KD live is a big project with many many dependencies So we depend on MLT as a video engine Which itself depends on ffmpeg open cv fryer and tons of other projects So if one thing changes in our dependency, it can affect the whole application So if for example a default Parameter for an effect changes then when we open KD live this can lead to a change This is something that we cannot detect in our testing So We have plans to improve one thing that we Want to do is continue improving our current test base another thing to prevent this issue with a Dependencies affecting our application is to have a rendering test shoot. That's something that we started to work on It means that we haven't automated the scripts that open a project Render the video file and compare it to a reference rendering And this way we can detect any if anything changes in in our dependencies that affects The rendering this will be detected by this test shoot So this is a project that we want to to definitely implement before the end of the year that will also Bring a better regression testing Because yeah, that's also one thing with Increase of in popularity we have lots of users and also the expectations are a bit higher. So we just can't Keep breaking everything on each release or really trying to go in a more professional way Better testing regression testing another thing that we want to explore is something that is will be talked Academy is a UI testing with selenium. This is something that we don't do at all But I think it's also an interesting approach because this is something that we absolutely don't test on There are some parts of the UI would really Need to be tested too. So now what changed over the years So I already talked about the popularity of the software Another thing is that before 10 years ago? We only had Expersions so packaging was very easy. We just prepared an archive of the file and we let Distributions do and do the work now. We provide packages for many platforms. We have windows mac app image flat pack ppe snaps Few more so it's a huge Huge job to do this this packaging. This is something that really changed over the years I think it has some of course some really nice Advantages it brings our code faster to the users So we can also react faster to the feedback But the problem is that it's it's a lot of work. So we have some We use the KD tools to build these packages with your craft and we have support from KD people and KD infrastructure, but still for a small team like we are it sees a huge work That is not that we can't do As as well as we would like. So this is still an issue But another thing that changed over the year is us as a team and We Decided also a few years ago that we wanted to to to go outside of our bubble Linux users bubbles to grow to have a yeah windows versions macOS versions I think it's important for software if we want to to to grow But the problem is that we are small team life also makes that for example, I'm I have a job now I have a kid or so I have a bit less time So we had to somehow find ways to to make sure that KD live can can keep growing So we launched fundraiser The idea behind the fundraiser was also that I had the opportunity to reduce my my time at my day job Currently I have one day per week that I can spend on KD live so it's not so much to maintain such a huge project and I had the opportunity to lower and the goal is to have two days per week for for KD live. So we launched this fundraiser fantastic fundraiser. It was very successful as Eugene said we collected money and Yes, as it was also mentioned yesterday, we have not yet spent any money. So why why why is this? As I said, I had the opportunity to lower my my day job, but it takes some time So I hope I could just switch like this, but it takes some more time So the idea is really that this money will be used when I have some extra time We also want to to to hire a few people maybe for some dedicated tasks, but that's something also that we're not Very sure how to manage the hiring. All these things take some time and since managing KD live It's also already a big huge thing. So it Things take more time than we planned or than we would like and now it's Demo time so because yeah, I think we talk a lot But I think it's also nice to also demonstrate a few of the other things that we can achieve with KD live So Massimo You can come is going to to demonstrate a few features that were recently implemented So like a nested timeline that caused a lot of regressions, but we are working on it to fix it and it has some nice advantages and also speech to text Thank you for Switching now I can use this one because it will come to release. Okay, so we load here Our video that we just watched before So we can scroll it and we can have and the first time I'm not ready load here in the space So for example, we can decide that we want to Add it in our space. For example this animation. So we start for the first frame. We play it maybe faster. So We go back and we select the in-out point who knows already how to work the program knows what I'm doing So I said what I want to start I want to end my clip I can drag it on the timeline or I can insert straight away with our automatic system So I can select on the point for example could be the conclusion for example of our video Starting from Here and go to the end. Oh Just do it a setting point here and For example, we stop here. So now we have a first timeline With our to clip now I create for example another timeline by in our sequence Folders is is create a new sequence So we can select with the title of the sequence the number of video tracks and number of your tracks Following our needs. We create a new timeline. We can see we have two tabs here We can switch from one to the other week. For example, we load the game our oh, sorry We are the game See we have one and two We load again our clip And no, for example, we can decide and now we need the beginning of the video and so we set the point on the beginning of our image in here, for example up to the The title and then we can for example select I don't know when we speak about academy. Okay, we are academy so I don't speak about the camera So we select the part of first first. I have to insert to the part are selected then I Go here. I Select all the situation about academy Done Now what we have we have to actually to Different time and but I'm not just a different time I also two different clips because if I can load the clip inside our monitor You can see we can scroll and actually trim again in an out point on our new clip And I would just conclude that is as I show you contain exactly the part to we decide to In what can do now we can for example add the sequence one inside the sequence to for example So we now have the ours more the other part or maybe we can even create another third Sequence Where we can of course we decide a title other where we can put For example our sequence all together have another another sequence I don't know why I didn't keep I didn't take the audio to all the sequence one We do it Okay And now we have both the clip of course we can trim it we can sleep for example Can click and Trim that one I can reverse they works exactly. Oh they work exactly like With this keyboard is okay can do I don't know what I did here. Oh Okay, I lost myself anyway, I can Trim and Refine the trimming of the clip and so on So what is need this system this system for example if you have several footage for a project for example that it's the same footage that you can share for different You make to a series of episodes based on the same footage you can load in the same project all the footage You need and then yeah the different version of Episode one episode two and three and then you can export Each timeline differently separately in another video. So and you cannot recycle Edit part from a video another video. For example, you created a timeline with a main title of Something you can reuse the main title in all the series without redoing all the time So by just using the same piece of timeline in the other time another Stuff I want to show you is this a title we speak about before so we create another time free space And we Take a piece of our video for example when we speak about I have no audio here now. Oh, okay, I Go blind so I don't know what we are selecting because we're speaking about some title We should listen a little bit about you but it's okay so Just to make a very Short test we have this clip here So in our point What I'm doing Okay, so we open the subtitle track that is here we Click on our magic wound and stand we can time line zone as you can see There is the boss model or the model we can select here now. We have boss Activated so the selected clip the timeline zone and We can proceed on This subtitle generation. So in this moment Okay We have just this table because is what I selected it will be very short if we have more More time or more the clip bigger clip We have all the synchronized part of this attack that can be moved that can be resized that can be copied and can be also edited in this part also the text could be changes in the Custom text in the font change the position change the color. It depends what you want to do This automatic start up is the same system can work by we use the clip here We have the text editor as though we can say it before and then by using the and for example We have an interview we can extract the text and edit the interview by just using the text and so we can export The edited the final interview based on the day of the section of the text We are lighted and by dumping the rest of the text What we Speak about the vision of the future of the vision of the project the vision of the project comes from the idea that From one side we listen the users because they use as the community that use it maybe have some ideas that Maybe it's very In the idea that we never had in very intelligent So we we collect all the input that come from the community that make the software stronger. I we know I'm sure that Even property software is a spine plus because they saw in some software some features that doesn't exist before that we introduce first so they are watching at us and From the other side we have also the experience that people like me that are working in the field So they are in contact all the time with the software of big corporation software So what editor needs on the field in in in in in in the company that use the software So we try to make like take best practice with the front around to introduce in our software to make it The best possible the best so we this is the idea to have Implement the best practice that we do editing needs is our vision So and for the future we have to finish between the end of the year what we Donate the donators Aim to have the S2 also we are in the in the road to to reach the before the end of the year with a goal with they the the declare we will Will create will do and for the next year. We think that we will go forward with Insert some AI tools and most of the collaborating space online to I finished the cover space to To make a collaborative job between editors around the world. So make it so if you want to to proceed with question Where do you see hidden live and the special video editing in Linux in the future when Most if all major companies that make cameras have proprietary formats that are Not just not supported on Linux. There is just It doesn't work It won't work and there is absolutely no documentation to start building the infrastructure So you can use format such as like Red cinemas digital cameras that take raw footage Sony has in Another format up least famous for the progress There is no support for that and those companies are doing nothing to open source the standard So we can have support. So like where do you see that professionally coming? How can we fix that? There is a problem about that because This company tried to close more possible, but they have also arrangement with other companies that provide software So if you buy sometimes some tools You have to finish to work on some specific platform. This is actually It's not something that professional like to match some some like because I've got more old mentality like you know They don't think about opening most close. So you buy something that works like I buy a fridge Every every is a so yes to work this way But a lot of people doesn't Mostly younger don't think this way anymore So they would like to be open to use what they prefer because it means Well, that means that I change the camera to migrate to another software. No, I want to use my software and It's always Actually a foremost calm because actually at the end of the day The codec are always same. Most are they contain Specificational container that close property stuff But what is inside the content because video file are made by containers so the caps that contain the stream and the stream that is Encoded by the pen and peg or whatever it is or a frame, etc So mostly they use the same way to compress the the stream so that the codec existing codec But maybe they trade to have a different caps with a third container to to close but I See that at the end of the day, for example ffmpeg is able at the end of the day to work around the problem There is some patent Problem of patents of course of copyright around this stuff, but overall so far I was able to manage to use almost every Every stream I found In the words of the option you have to convert but this happened also We have it before in all the software that sometimes you have to make conversion to to match the specific software So nothing is changed for real. So it's a challenge, of course But and we have to be open to new format to change all the time also because new compression new way to broadcast Etc. I asked the man to be so far We are doing pretty well because I'm able to use it on the field with different Devices so is working so far Maybe one thing also that we we should improve and do more is that we have already a small presence in schools But we really should do more Also, we were we had a standard all-american film festival I think this at the beginning of this year So making also students aware of these issues. I think it's something that that will help in this field Thanks, I would also like to point out to the person who asked before there's also the Academy software foundation which depends on the Linux foundation that tries to open source is tries to get industry Companies to open source as much as possible and they are quite successful they've got many formats that are open for video effects and video effects tool chains and For timelines etc. And I think that you are actually implementing the some of these technologies already. Is that correct? We for example incorporate open time is true that There is an attention of open software mostly also in Hollywood for example So they the fact that the company want to customize their needs so they look for and for Pixar or Disney So they BBC so they deliver What they do so because they develop in the open source way they deliver So they create standards this way that Have a return from them because if everybody adopt their standards They they don't control the standard by any way they create an integration that so I hope Personally that direction will be that at the time and also in company like Sony That have all the mentality I quote Sony because of very old mentality in my opinion that try to close or possible They will not stand the for that the impact of this mentality that is becoming the world's more spread around the industry in my opinion There's a question from online Will you use any collected funds to support some of the upstream projects and infrastructure that you depend on? Might you have to be able to get support from video and computer equipment manufacturers? so yes, that's something that we We planned we we had contacts with MLT maintainers or the video framework that we use To propose them to use some of the funds unfortunately, they were not able they didn't have the time or wish Mostly the time of the need for this so but yes, that's something we because yeah some of the core issues in I related to our dependencies. So one of the tasks in the first fundraising was A task that is has to be implemented in MLT is a video framework. So yes, that's something that we will do I think you said that you're working. I think 18 years on Canadian life now. Is it still fun? Can you keep going? Yeah, yes, it's still fun. So that gives me going because yeah, it's Yeah, also the world of video editing really really changed in during this 18 years So there is always new things to try to test. So it's yeah, I really enjoy it Yeah, maybe I can add something most important for him is that he has a team behind who helps him I think years ago. We had almost a burn burn out doing everything by themselves And now he has a team behind who helps him keep him away the Daily tasks like home home page up date stuff like this one so he can really focus on coding We feed him what's needed or what's a buck could be as good as possible that he just can really Hack on the code and always new challenges the face a bunch of inputs This is really important that you have a group behind and not a solo guy Because this doesn't work over over such a long time and just we have thinking about team Of course, we are open. So everybody wants to help us. It's welcome. We never expect with packaging and coding Supporting testing using whatever so so this is an interesting point Without Advertising we have about two or three people's coming from outside and ask Can can I help on this and that and we open them and say yes, you can help because also a good example is the dog The documentation you have a guy now who is heavily reading dog Writing document documentation. We have other guys like Davey on the background on the window side Who checks the forum part? So it's really interesting that you get on on certain stage some help from outside people ask Ask you how can I help and this is something I think keeping Sean shop up this the life No more question, I guess Okay, thank you very much for the great talk Okay, this is next So yeah, good Yeah, I know you're good. I I I wanted to give a speak I talk about something that I've That's been important to me for years So I wanted to present some motivation about why and how you could use speech in your applications If I step on anyone's toes, I'm sorry, but I'm just presenting my my viewpoints. So here we go I'm I'm I'm Jeremy. I've been doing Katie things since 2007. In fact the last time I gave a talk was in 2009 at the Katie 4.0 release event in Google in California. So yeah, don't go look up the video on YouTube It's horrible. I can't stand to watch it, but it's there What I wanted to talk about today was a couple things first Why you should use speech in your application and I mean every application I think we could use it in lots of places and then how and then a couple of caveats For using speech adding speech to your application So first off why should you add speech to your application first? I want to do a little Experiment everyone close your eyes for about 10 seconds. Okay, that's 10 seconds. That's what your application sounds like Without speech So why not speech is what all the collapse do every Every a lot of applications that we use on our phones and in life talk to us Your Alexa talks to you your Google home talks to you your computer talks to you Audio is an often forgotten interface. We have a GUI. That's an interface, right? But we also have our ears that take in information Let me step back a little bit and say one of the reasons that I got in interested in Text-to-speech was when I first started doing Katie things and I was working full-time at a day job And I also wanted to keep track of what was being said on IRC. Yeah, this is back in the IRC days and So I talked to Ike I think who was maintaining conversation and I said hey, how can I make this so I can listen to it? Let's figure this out and he's like, oh, yeah, just use the notification system So I set up notifications from conversation where my headphones while I'm working and listened to Everyone talking in the three channels. I was interested in or whatever and Listen to what they were saying while I was working at the same time. That probably wasn't the best use of my time But it was very Interesting to me and it worked well if someone said something that was interesting to me I could go hop on IRC and respond to them real quick and and Otherwise I could just you know ignore or whatever Anyway, that's that's That's one The other reason to add speech is that you can notify people of things without requiring them to read What you want to notify them about that not just for like key notifications like hey, you've got mail, but like anything you could and and then the other thing is Speech is something that can be used for people who maybe can't read like the obvious example There is educational applications, right small children. They can't read the screen but they can listen to the screen they can listen to your computer speak or Also people who maybe don't know the language that you're presenting in right? So someone who knows German only knows German does not read English you could But they can understand it maybe I don't any just just ideas like that The the let me step back the obvious use case obviously is educational applications, but also Anything where you're getting information I talked with Carl, where are you Carl? Carl and Tobias the other day about hey, why don't we have Can't think of the name Neo chat. Why doesn't Neo chat have Texas speech? Why doesn't token on have Texas speech? These are good use cases You could be listening to what's happening on your feet or listening to what's happening on the chat Other possible uses are anything you can think of one nice thing about Texas speech is that? You don't have to have You don't have to have the audio Figured out in advance what I mean is like there was a big effort spent on Albert what's the the game where you put pieces on a? Yeah, Kate Tuberlin Kate Tuberlin spent a lot of time getting translations of all these audio Translations of all these different parts that you put on the game like pepperoni and whatever on the pizza thing or whatever And that was a huge effort if you use text to speech You don't have to do that huge effort to create all the audio file Audio files audio data. You can just get text from wherever and speak it And the other advantage is you can speak stuff that users enter so from chat or from Tokadon Your feed or whatever Next I want to talk about how so how do you make your application speak? Use the cute speech library. It's a library. It works five minutes. Okay You make a cute text to speech object and then you use it to say things you can say Translations and then using the translation system. It says the translated text, which is really handy And have fun with it do what you want Next I want to quickly talk about some caveats One thing I was going to mention Before I attended Albert's talk yesterday was hey if you're gonna use text to speech You should probably make it an optional dependency because it was missing from qt from qt 6 to 6.0 to 6.3 and then was re-added in 6.4. So maybe some distributions don't ship it yet But you convinced me otherwise I think you should add it as a hard dependency and then have a compile time flag to disable it if you want Other Other caveats. So does it work on the platform? You're interested in it does work on flat packs. It only has the Flight plug-in. It does not have the speech dispatcher plug-in Does it work on snaps? Yes, it does Scarlett told me that yesterday. Does it work on Windows? Yes, it does Does it work on Mac? Yes, it does. Does it work on Android? Yes The next caveat is how can you customize it and also how can you allow your users to customize it for that? I'm about running out of time So I will refer you to the code of ocular because ocular does a good job of saying hey let the user choose which voice which Engine which everything? Except for like pitch and things but you can add that as well It's all very customizable. You can allow your user to change whatever they want Anything to avoid I can't remember why I put that in there Maybe things to avoid would be if if you are if your GUI is Already accessible You need to watch out to not do speech things when someone is using a screen reader Which I'm not sure how you would do that exactly, but that's something to watch out for the other thing is if you You also need to make it you also should make it so that users can stop it or cancel it if You know they accidentally say hey read my email and it starts reading the whole email And that's going to take an hour to read this email from a long mailing list thread You need a way to be able to stop it Or you need to allow your users to stop it So and then I wanted to go over a brief history When I started doing text-to-speech stuff. We had something called case speech Yeah, and I At the time I Looked at some old Academy videos Where Gary Cranblood the old maintainer of case speech said hey, this is what we want to do next year and then he left And what he wanted to do was make it so use speech dispatcher instead of having ten plugins for all the different backends So I took that Montra, I guess from his Academy speech and said okay. Yeah, let's do that and also in At the random conference at that point I said hey look guys. Let's let's rename it Let's give it a name a new name like ocular did did so that it can have some you know More usage or whatnot, so we created Jovi from case speech and then Shortly after cute 5 came out Frederick Gladhorn came up with this cute speech library And I was like, oh, that's awesome. Wait, we don't need Jovi anymore. So we killed Jovi So that's that's the brief history of speech on Linux at least So, that's that's my presentation any questions quickly or nothing On the subject of catch you willing do you know who actually did the German voice over and can you check if the person's okay? Because it's like the most depressing audio ever It's like Fairfax cut off a case. So please make sure that this person's all right. I I Don't know offhand, but guessing I think Anne Marie Reached out to people and said hey will you record stuff for us and someone volunteered? That's my guess Albert may know Good Thank you. Morning everyone. How are you? Good. All right. So how about I was thinking, you know before I say anything about the working group. I wanted to just Give a hand to you all. Okay, so just Thank you Thank you for being part of the community the work that you're doing is amazing and it just think about it that many of you are just doing this and I volunteer basis and That's just so amazing You know, there's a lot a lot that you do That is valuable not just to yourself but to a lot of people and In the community working group We try to make sure that that experience of working with others is kept in great shape And we want you to collaborate. We want you to work with each other to understand each other across many languages, many boundaries And and to have, you know, the best outcome So with that in mind, I just wanted to explain to you a couple of things About this group and Just so you know, I'm gonna explain that what we are The why we're here and how Okay And no, we're not the community police So just so you know I think sometimes we kind of get that stick from people but that's not what we do It's part of it sometimes But not the main thing So just so you know We are A community of community helpers And we provide supporting assistance to all of our members And we try to maintain healthy communications with each other We also address conflicts and issues So as you may know Human interaction is very complex And then on top of that we have layers and layers of you know, other experiences that each of you have So sometimes You know communication channels are not always as healthy as they can be And we try to help maintain those We participate a lot in in community chats We have a mailing list where people can submit concerns And then we have A get lab page where we can we put all of our Complaints at and we try to work them. Of course that spacing get lab is private So all of your information or whatever you are trying to Tell us about is kept secure So we were composed and we were put together in 2008 and of course I was I'm not a founding member of this group. I I came in much later but Now We have three members. So we have neophytos over there. We have david In the back and then myself and We are very committed to keeping our community safe and in a good space for you to do your best work Let me see So I already said this but one of the reasons we're here is because we try to make sure that you know There is no misunderstanding between us. Sometimes, you know, we may have differences of opinion Uh, we talk, you know, again our our common language and on the online is English, but And there's a lot of translation that needs to happen. There's a lot of cultural aspects to our communication that need to be kept safe And uh, not only that there is sometimes intentional You know, there's purpose in some people to actually disrupt our communication and our our our culture So some of those things is what we have to watch out for And not only that but what is sometimes, you know If you think about it, what is the cost of having a bad experience? At the end of the day, we may lose you as a contributor. You may be You know, unhappy about your experience. You may try to know Right So careful, but No, I'm just kidding. They're great But I'm just thinking in general that a bad experience always leaves a bad taste in everyone's mouth And not just for one person but for many others that, you know, may be indirectly affected by a problem and so Our purpose is to try to maintain and work and persuade and it kind of bring people back to to uh, to a healthy contribution level Um, and not only that, I mean just just do whatever you want here and we're happy to help you So How do we do this? This is the part that is a little bit complex and sometimes there's just not a whole lot of What I can say that would satisfy everybody but Over time we have tried to set up some my uh, some procedures in place so that you can actually have A safety net of you know, you can have there's a connection of trust with us So the main thing is we have our mailing list So if there's something that you'd like to tell us about that you're concerned about You're welcome to send us an email there. I'll show you a website at the end of this presentation where you can go And and just tell us what's happening Then after that when you tell us about an issue We try to investigate. We try to give people the benefit of the doubt And we try not to take every complaint of face value. We Believe what you're saying And we also want to you know, put together the rest of the puzzle So we go back to People affected and we try to find out what their take is on a certain situation And tell us more let us let us understand sometimes The issues can be big sometimes Or small in a conversation. It's all we need to just make sure that everybody's back to You know to peace, right? But sometimes there are issues that are just simply too big and we try to Talk about those with the board We try to reason within ourselves and with each other to you know, what is the best to do? and uh The main the main outcome that we have as a group is to Basically talk to the people affected and make sure that they soften Their position and that they can understand each other's position as well and they kind of move forward If if sometimes that doesn't happen It can go all the way unfortunately to removal And that is a situation we want no one to be in Is it's painful for everyone? So As you do your best work, you know, if there's something that is is of concern to you Let us know so that we can catch issues early so that we can correct early so that we can help each other early Uh, the more we wait Is it's just harder for everyone So Now this is not snitching Right what you're actually doing is telling us about something that That is that is of concern to you And that needs to be said Uh, so I encourage you to come over and let us know if there's something that we need to know um And so finally I just wanted to mention we're only three people and our Our group is you know, a kid is huge We don't have all the cycles to be you know in every channel in every conversation And not only that we three people Can may not know everything there is to be done about a situation So if there is any of you who care enough or deeply about keeping the healthier relationships we have At kde you're welcome to join. We don't have stringent Requirements for you to join but definitely we want you to be aware that privacy is a must So we want to keep our our members privacy private And we want to act rationally. So we want to work with each other first before we do anything um But other than that I wanted to thank you again You guys are fantastic. You're doing an amazing work and we want to help you keep that that all healthy. So thank you so much I think that's it right. No Yeah, thank you Andy Thank you and the other members of the community working group for the great work. Thank you Um, now there will be a coffee break half an hour And then you have to decide whether you want to come back to this room or go to room two because we will split in two speech tracks Talk tracks after this coffee break and now enjoy the coffee and the cookies and see you metaphor, uh, literally Um Okay, putting putting kitty and devices fixing bugs Being very persistent. Yeah being translated in all the languages. Yeah. Yeah, any other ideas Reaching outside our bubble. Yeah increasing accessibility aggressively targeting enterprise use cases good These are all these are all great ideas. I'm going to say that there's a another abstraction to all that we need organization Right to achieve all of what we just talked about. We need good organization. This is taking the metaphor of Domination and war which I don't necessarily like to use but I let's let's go with it This is a quote from Sun Tzu from the art of war from you know over 2,000 years ago Where it's written management of many is the same as management of few Right, it is a matter of organization to do all of what we just talked about. We need organization And that's going to be my talk today What is uh, what do we mean by more organization? What does it require? So we need unifying goals. That's one of the ideas behind having goals voted on every couple of years to unify the community To organize them towards certain Objectives need to find processes, right? That's one of the one of the goals. There's a goal of processes In kde right now and clear communication So, yeah, everyone knows that right now Nate is on the path towards world domination with good organization by defining Automated and systematizing internal processes My talk today is going to be on the step just before maybe you get to that point Which is how do you bring people from the external into the internal so that then they're part of these internal processes Right and the focus as you might know from the title is about the infrastructure Um, kde is maybe an unusual community. We're relatively non hierarchical Um, there are sort of mini hierarchies, but it's a very distributed group of people And that makes in my opinion infrastructure particularly important Right, those are the things that then enable communication and enable people to to organize Um, and i'm going to use this Um, uh, visualization This idea of of the process for on ramping for making people go from that external into the internal This is from the art of community Um, and there are four stages that are that are identified here identifying the on ramp That participants or users know where Or that they can contribute developing knowledge that they learn the the the skill set to contribute Figuring out where they can contribute determining contributions and growing kudos. So giving them praise Now unsurprisingly, Nate has already already addressed some of these things This is again from the 2018 talk about improving the new user contribution process where, uh, Nate identifies the problem of not enough resources and Presents the ideas of uh, reducing difficulty of setting up a development environment improving contributor documentation Increasing promotion and outreach efforts and avoid insulting our users be positive Now if we go back to that plot these kind of all map on to that same on ramp Um promo and outreach would be identifying the on ramp reducing development difficulty and documentation developing knowledge Documentation to some extent determining contributions and being positive, you know growing kudos So it's nice to see when things align like this. I'm going to take a slightly different approach here I'm going to think about this in terms of the infrastructure So identifying the on ramp. I'm going to be thinking about it in terms of websites and blogs that is where do users get information that might then Influence their decision to then become a contributor developing knowledge. I'm going to think about wikis What are the the documentation? Platforms that we have so users can develop the skill set Determining contributions communication channels mailing lists matrix rooms, etc And I'm not so much going to focus on the growing kudos I think we're all doing a pretty good job. So keep up with it And if you're if you feel like we're not talk to the community working group And the main Topic is going to be on the communication aspect of of management and organization How do we communicate with uh contributors? There are three types of communication identified again from the book the art of community There's incoming communication That is how katie receives information from the world bug reports surveys, etc outgoing How katie shares information with the world so promo social media and these kinds of things And then you have internal communication how katie contributors exchange information among contributors So question to you that's going to be the focus today Oh, sorry. I got ahead of myself Um, so so the kinds of the who wear what uh why and how of exchanging information This would include things like where um to talk with other contributors What needs to be done who is working on it how to get started where to share share one's work, etc And so then the question to you where do katie contributors exchange information Invent it's a central place Matrix Academy, yeah mailing lists sprints bugzilla wikis Discuss exactly. So I think you guys have hit um all the main ones that I have here Um, so websites and blogs are also a place planet kde is the place where contributors get information about what's happening kde um wikis Community tech based user base forum now. Let's discuss Git lab mailing lists chat and conferences and sprints great so This is a subjective question. So katie's internal communication channels So are they like this? This is an on ramp in malaysia Where you have several on ramps going in one direction Or are they like this where you have several on ramps? Going in many different directions. What do you think there is no right answer here? Is it the first one? Good, and is it the second one who thinks It's on right. Thanks. So even though many people come from from many different If they're going to end up contributing they're going to end up on invent anyway So that's where they're all going to end up. So It may take a long while or some people may leave before going on that But then they wouldn't contribute anyway, but they're going to end up on invent which is where everybody ends up So if you look at the endpoint, then maybe there's something to say that it does look like this But if you look at that whole on ramping process Maybe it's not quite like this and someone else wants to add something. I don't know if can we pass around the mic or yeah, I think it's more like the second picture because there's various points of entries, but there's also various quote-unquote destinations because we're not just all developers and we've worked really hard over the past to get Away from this notion. Oh, you have to write code to contribute to Katie But there's lots of people that do documentation that that do wiki or promo on social media So I think not everyone ends up on invent. So I think the second picture is much more accurate Yeah, so so depending on the perspective you have of of how we should be organized if you if you see all these different things as being different sort of Paths then maybe this is a more accurate description and maybe it's the preferred one It may also be it's not the preferred one and it's just how it is because it made sense at some time And it sort of developed this way and remained That way There is no right answer to this question I'm going to have a perspective that I through the show don't tell approach Maybe you will come to the conclusion similar to me that it looks more like this This more chaotic one and I think we could make it look a little bit more like this at least in terms of the on ramping process So I'm going to try to focus on what I think there's some Pretty low-hanging fruit That might be inaccurate, but I think it's pretty low-hanging and I it's totally fine if you disagree with me That's great. That means we're having a conversation about it Okay, so yeah, my goal here is to get katie contributors on the same path all having the same direction No matter which team they're part of And if there's sort of two keywords Which this is a little bit forced I was trying to find what are the like the overarching themes and how can I reduce it to something that people can really take away And I came up with consistency and discoverability across and within internal communication channels And I think this will lower barriers in on ramping and put katie contributors on a clear path forward So we get to something like this If you have opinions and want to share them Please please come to the two buffs that are related to this internal communications and on ramping on tuesday at 12 And wiki improvements at three Okay, so this one is an easy one. I thought I'd start easy and then it doesn't really get that hard, but but we'll start easy So three parts wiki's international groups and blogs are going to be the topic here and then in the box we can talk about other things So wiki's How many wiki's does katie have? Yeah, so this one's easy. You guys already know three, right? So we have three wiki's user base tech base and community They all have different objectives different demographics that are targeted user bases user documentation tech base is more the Developers and community is more community oriented So one thing I found out recently is that user base is in some sense a workaround at this point because the official documentation process is Quite difficult to contribute to I think it's worth pointing that out Tech base actually most info now is at develop dot katie dot org slash docs from what I've found out And the community one Is is still active So so then again another sort of easy one perhaps given information It has said how many wiki's are planned at least internally to be retired So I heard a couple of ones and one two. That's a confusing sentence, but The correct answer is two So at least internally user base and tech base are planned to be retired As I mentioned user base is kind of a workaround and that's why it's uh, sort of uh, yeah Lingering on tech base is kind of a zombie wiki at this point Um But how many wikis are listed on katie dot org? three Right, so if you go to the bottom panel you get all three Um, this is a sub optimal experience if you're a new user coming into katie And landing on zombie wikis wikis that are just kind of stumbling on. Um, but not really uh, uh, active Um Which of these recent opinions paraphrased um from season to katie contributors about the wikis are real Today I discovered really useful documentation on user base. I had never encountered before User base is an impressive repo. I wonder why it's not seen attention in recent years I find katie wiki websites rather difficult and confusing to use so I just avoid them mostly all of them All of these are recent comments, uh from katie contributors about the wikis Okay, so to sum up um, some of the problems that I think uh, we're facing right now So user base and tech base are in the kind of wiki purgatory Um, you know, they're not quite where they should be Um, both are internally planned to be retired but yet featured on the main website And then the question how many users are informed about this how many contributors Um, I just learned this recently. Um, I wonder how many of you how many of you either just learned it right now Yeah, so that's not a good thing, right? Um, how many of you already knew this but learned it recently Yeah So so yeah, so this is something I think when we think about how when we go back to that image of the Of the on ramping where think about new contributors going from that external category into the internal one What that user experience is like When they encounter this kind of thing, right? They're coming across all this these wikis these Great sources of information but finding out they're not actually active and plan to be retired or maybe Yeah, they're they're they're not up to date There's a lack of attention and outdated information in them And I would say that there's a lack of discoverability in general going to that comment about difficult and confusing to use The pages are all structured at least in community, which is the one I'm most familiar with They're all structured in slightly different ways It's not necessarily easy to orient yourself To know where you are in the wiki and what other related pages might be It's my opinion. Um, perhaps you have a different opinion come to the boff on tuesday Or raise Some points here in the conversation And I would say this leads to an overall sub optimal user experience and confusion and that's that leads to avoidance Right, which means we have these great resources you know, we have Impressive repos and a really useful documentation that maybe people aren't getting And that's going to influence then the on ramping where you get the developing the skill skill sets aspect of contributing to kde Okay How am I doing time wise? So i'm definitely going to be a little early on the on the but that's good then we can talk about it So some of my proposals at least In the short term maybe delink or unlink user base and tech base from the main site if they're if they're internally planned to be Discontinued maybe we should stop driving traffic there from people who don't know that Inform users of of coming retirement Um, when we're at that stage, maybe we're not there yet. Maybe I'm I'm Jumping the shark of it but but but when we're when we are there I think we should do this because I think this is leading to some confusion I think we should add some discoverability features to our wikis Some of it's really easy like if you go to a wikipedia page at the end of the the page you get a very Clear see also and external links, right? We can add this to our wiki pages So it makes it easy for people to follow up on related topics or external information about it Maybe it's worth adding things like High-level wiki categories some of them people can kind of clip through to navigate through the wiki so that the information is discoverable Um, so if you don't know where you want to go you might discover the information that you do want or need Um, another idea is use consistent information structure Um, again wikipedia as an example they have a pretty clear structure of a short summary and then a table of contents and then Um a pretty consistent structure Perhaps we can think about a template to apply to our wiki so that users can quickly and easily find information When they arrive at a page. They don't have to read a wall of text Before they get to what they need from it Um, and then and then yeah, this is easier said than done But maybe we need to make official documentation easier to contribute to um so that we can move away from this sort of yeah lingering wiki that's there as a workaround so we can actually get to what we want which is a documentation process that's easy for contributors to contribute to And again wiki both if you're interested in the topic and want to talk about it Okay, um websites um and focusing here on international sites and local groups So how many languages is the kde.org web page uh translated into? 17 39 or 52 Who thinks it's 17? See a couple of hands. Who thinks it's 39 I see a few more hands. Who thinks it's 52 Uh again a couple of hands So the correct answer is 39 Right, that's impressive. That's that's amazing work done by our translation teams That I don't know. This is a very simple statistic just looking at the number of languages in the drop-down So I could have looked a little bit more deeply, but I didn't at this point Um, but that's a good question Okay, so that's translations right and that's slightly different than local community websites Um, those are websites targeting, uh, local communities related to kde. How many local community websites are listed at kde.org? um eight 17 or 39 Who thinks it's eight? Who thinks it's 17? Who thinks it's 39? Okay, so most hands are at eight Which is the correct answer So at the kde.org website there is on the bottom panel A link to international websites. It looks like this And here you have eight different Yeah, local communities brazil, china, italy, japan, netherlands, russia, spain, and turkey Okay So given that we have these eight local communities websites linked on the website Into the kde.org website How many official ways are there to connect for local international communities at kde? And what I mean by that is how do they communicate with each other? How do they get information about their communities? How many different ways are there for those local communities to be engaged with kde? So we saw websites So that's clearly one How many other ones are there so i'm thinking here like mailing this etc two Who thinks there are two other ways are two ways in total so four four Or five So the correct answer is five And these are websites as just pointed out discourse Which is a new one. So if you said four, maybe you didn't have that in your list of ways for local communities to communicate mailing lists. There are many local community mailing lists Chat rooms there are many on the matrix and probably in telegram. I know is a big one And The kde networks. I included this in there. This is a part of an outreach program in which they're sort of connecting different local communities So yeah websites. We just saw here's the forum Discuss yeah, yeah, Germany Finland Italy France Spain India Brazil And I don't speak the languages, but i'm guessing chinese and china and japan Here are the official mailing lists Listed at the Website I put in here some information about when the last post was And I what I write there at last post I don't mean the mailing the post that I sent around Identifying inactive or low frequency mailing lists. So that's not included in the last post So here we have 16 different mailing lists for different groups Many which have not seen much, you know, low frequency activity, which is fine As was discussed in the discussion about this Sometimes some communities don't need high frequency to be active That totally makes sense and mailing lists are actually a good place to have that kind of low frequency activity They're not very intrusive They don't require much from the user. You just receive information when there is information But anyway, just to point out that there is sort of a low activity in some of them Here's the list of matrix and chat rooms we have Russia, brazil, japan, Netherlands, belgium, iran, portugal, china, italia, germany, greece, argentina, spain And then a spanish-speaking users latin america, france and french-speaking users Chat rooms Yeah Some of those including those on your previous slides some looks slightly different For example, some of them could be Local Organizational tools and others could be like you use the support in language Which At least from the names It is not fully clear if it is a local organization tool Or it is a user support in It's a very good point. I just want to point out. I tried to leave out here the internationalization websites and chat rooms This is all sort of Local or language focus groups and they might have slightly different purposes. Some might be local communities. Some might be language oriented So it's definitely a good point and you see that here with spain and spanish-speaking users, etc So there might be some different use cases I would still say they're all sort of related to these local communities and international groups related to kde And if that's not clear and I don't have off the top of my head information about each one of these websites But I do have some examples. It's not necessarily communicated clearly at the at the information at the mailing list Or the matrix rooms and I'm going to give some examples of that in just a second and then here's the kde networks Which include five different Countries Okay, so one of the things I want to point out here is I just showed all these different international groups and language oriented groups And I just want to one of the questions is are these various ways to connect? Are they aligned? Right do if you land on one, do you know about the others? Um, and I'm just going to give some examples of what I found and this comes across as Critical, but I mean it with love because I think we can improve this right So the kde spania website if you look under the communication it links to the old forum Has its own mailing lists which are not the mailing lists that you find at kde.org Under the mailing lists listed there and there's no mention of the above mailing list chat rooms or discuss that kde.org community If you go to the spanish Local community at discuss. There's no mention of the either the kde spania website or other communication channels So if you're at one, you don't necessarily know the others exist right kde networks brazil page it links to the matrix and telegram Chat rooms and no other communication channels our websites are mentioned The matrix room links to the brazil international site And the brazil website has again the telegram groups and mailing lists And there's no mention of the discuss group or kde networks group So again, you have these this misalignment between information about how to communicate If you go to the brazil forum at the forum, there's no information provided about any of these other groups Okay, and then the greek one. There's no description provided in the mailing list There's no mention of the matrix room and vice versa Right, so if you land on one, you might not know about the other you have a fracturing of the community people communicating Not knowing that there's communication happening elsewhere So information is scattered. You have unmaintained websites outdated information and we look at that in just a second some examples of that Perhaps this is having these international websites separate from the translation of the kde.org website Maybe this is an inefficient use of possible translation teams Right, maybe some of these teams actually that are used in translating the main website and local communities Could be somewhere else Websites are hard to maintain right Some platforms have infrequent or no activity And I think this inconsistency and lack of discoverability make for confusion and a sub optimal experience Um, and I think one thing we could think about and this is something to talk about at the boss We can define consistent processes to funnel contributors into kde I use the example here of these international groups How do we want people to go from that landing page into kde and can we align it across the different channels? Right, so we end up with those different on ramps all going in the same direction Let's make information consistent right. Let's communicate which platforms are used for which purposes at all platforms And perhaps indicate the frequency of activity to manage expectations If you know that a mailing list is low frequency and you sign up for it You're not going to then be disappointed if you don't get much information And it might help to know that perhaps the the forum is more active and that's where you actually want to engage Um for local groups, maybe use low barrier platforms, you know mailing lists are uh websites are hard to maintain Perhaps things like a mailing list or a forum is more appropriate instead of having a dedicated website That's an opinion people might disagree Um, and again, maybe internationalization can be taken care of at kde.org with the translation teams If you have opinions about this join the internal communications box Um, and I just wanted to point out that I came across the kde.in website doesn't seem to work So maybe this is can be retired if it's not being maintained Um, and the peru group seems to be offline as well. So maybe just two things I came across in my Um, yeah, I'm searching through the different websites and then finally and I hope this takes just a couple of minutes um the blogs How many blogs official kde blogs are linked to at kde.org One two Or three Okay, most hands were at two Which is the correct answer at least as far as I can tell we have two. Um dot and planet Um dot as referred to as kde news. Um, which is not actually a link Um Just to point out so those are the ones linked to at the main website Planet is actually an aggregator as you all know it has 762 when I checked Feed url url links. Um, and there are many sub groups that are targeted in different blogs Some of which are part of planet Or I think all of them are part of planet. Um, there's a develop developer specific legacy aggregate at blogs dot kde.org Which is no longer used as far as I understand. There are project specific blogs You have blog dot neon dot kde.org as well as eco dot kde.org slash blog as well as g compri Has their own blog and then you have language specific blogs kde blog.com. I believe is spanish if I'm remembering correctly So some problems that I'm identifying when thinking about this I think there's not a problem having different blogs for different purposes One thing I think is confusing is having one reference but two names So you have something called dot and you have as well something linked to called kde.news Um, which is inconsistent and perhaps confusing. I know it was confusing for me. Um And apparently I'm not the only one because we sent around a survey recently And this is one of the comments was let's rename dot to kde.news or something similar Which I have to say I agree with that makes it much more transparent about what the content is Dot is not a very transparent name Especially if you're coming from that outsider to the insider Um, uh category Group specific blogs. I didn't find any sort of clear list where you can say, okay If I'm interested in this one subset of blogs, this is where I can go Um, and the community wiki only had sparse information about the different sort of blog groups Um, this was me sort of searching for blogs. I had to really actively find them Um, this was not necessarily an easy process So some proposals use transparent names and be consistent to help with recognizingizability Um contributors should easily know where to find info about the activity at kde. There should be one of the like Basic really most basic things. We should all know what's happening In the most easy way possible. It's not necessarily easy, but we can make it easier Um, and I think we should support more blog discoverability If we have all these sub blogs or if we have sub blogs We should maybe make it so that it's linked to somewhere so people know I'm interested in this particular subset of activity And it can be like a blog role at planet, right that just says if you're interested in these click here And that takes you to a maybe a specific subset of blogs Again, if you have any opinions about this join the boss And I'm just going to show as the last thing just an example of what I think this is imaginary But what what could be three different on ramping paths if you're um in Landing on one of these international websites I'm going to pick on kde italia a little bit because I kind of kind of belong to that group. So I feel okay doing that So the kde italia they actually have their own dedicated website separate from the kde.org called kde italia.it I believe This is uh where you land if you go to that website And You see here Immediately that the website is last updated in 2016 according to the website It does seem that they have automated Updates coming in in one section of it, but the actual official website update So if you're a user and this is where you first land Maybe it's not so great that it's you know now Nine years ago that it was last officially updated Um, and also you have some links to different communities that you can get involved with The thing is if you click on it, um This is where you land for the first one the forum You can search around and find the forum, but it's the old forum and first Yeah, your first impression is going to be okay. This isn't taking me anywhere If you look around you'll then land on the kde italia forum at the old forum, which has been archived Okay, so that's one one path if you land on the kde italia website If you go to the kde.org website and select italian as your language, you're going to get more up-to-date information And you might click on that top panel Um, uh participa so you're going to participate in the community and now you land at the wiki Which is great. This is a lot of really good information Um with a nice table of contents And if you go there you're going to find out that there is a matrix and a mailing list which is great So this is this looks actually Pretty up-to-date. The only problem is here. There's also now a community in Discourse, which is not listed here. This is something we can change low hanging fruit. Not a big deal Um, so path three as you land in discourse and you say, oh, there's a community of kde contributors related to italy However, if you go there, um, it doesn't tell you any of the information About any other the communication channels which includes the mailing list and the matrix term So these are just again, I'm reiterating the same point from before we can align this information Maybe we can archive things that are no longer useful to us and maybe sub making a sub optimal user experience For going from that stage from I want to contribute to I'm now contributing Um, so yeah, so unwrapping paths are inconsistent information is out of date are incomplete And there's a lack of discoverability of the other channels Um, and if you have proposals we can discuss in the remaining time or join the proposal I wanted to leave it as an open question and I just want to point out. There's one other Related very related topic right now being discussed in fabricator Just the idea of formalizing a process for adding or removing services and platforms to kde's infrastructure I think one of the things that I my sense is when looking at the sort of big picture is there is a proliferation Of uh platform services, etc, which may all make sense at a certain point in time. Um, they might not And we should have a process for evaluating that Do we want to add more to what we already have and then how do we archive and remove it when it's no longer needed So it doesn't remain there as sort of a zombie site where it's um, creating Uh, a sub optimal experience for people who want to get involved with kde So there is this proposal. I don't know now if it's open to the public, but um be in touch if you're interested in discussing that more And I want to I so my feeling as I said at the beginning is um I think right now we're more like this and I would like to see it end up more like this Well, we're all sort of on ramping and then going in the same direction And I'm going to leave it at that join the box and we have plenty of time for conversation And I want to point out the conversation now I'm happy to answer questions that maybe I can answer But actually I think you all probably have more information than I do So this should be a community conversation. It shouldn't be oriented to me. So thank you Yeah, thanks Joseph. Um, so we have one minute for questions. Otherwise there are the box of course go there Thank you for talking about this topic I want to ask you about what you think will be the result of getting to that model over there Um, I one thing that I personally notice in the community is that a lot of long-standing contributors seem to suffer from an extreme form of email overload where it becomes impossible to To keep track of everything. So my observation there is that Email often ends up as the single endpoint of information. So if we succeeded centralizing all these things in some form Maybe it's email. Maybe it's something else Do you think that there's a risk that the result is just a huge form of information overload and nobody can keep track of everything Just because there's too much um, so My position here is actually not that we need to centralize all services to one like we all need to end up an email my my Main point here is we need Alignment across the platforms so that if you are active on email, you know that those other channels are active So you can be engaged in different places And um, there needs to be a way to discover that information And we need some consistency. So so it's not so much saying we need to centralize all into one um That said I do think Sometimes less is more. Um, so maybe if we need to find Um, uh places where we uh centralize or at least De-proliferate maybe another way to put it so we're all sort of more into certain channels Um information overload certainly can be a problem. I mean, I know I experienced that already at times in the kde mailing list um, and that's where Yeah, I think having the right platform for the right group with information about Like frequency of activity what kind of information is supposed to be posted there? So you are in the place that you should be and not getting information. That's not relevant for what you want Um, and then you know that there are other channels if you want other types of information I think can help um reduce that as long as is it's clear Where to go to get which information So yeah, I don't want to say we all need to end up on email or we all need to be on discuss That's really not what I want to say here If we have these different which they might serve different purposes have these different platforms We need to be able to know Where the other platforms are what kinds of conversations are happening there so that we can then be where we need to be to get the information that we need So it's kind of a half answer here Do we have time? Sorry. Maybe I went surprised that it took that long I guess we don't have so many times then please come to the boss Thank you Okay next, uh, alash will tell us all about the evolution of kde's apps ecosystem Yeah, okay Go ahead All right So as promised Is this working am I wearing the microphone wrong? As promised, I'm gonna make fun of my title By putting an emoji on it because it's the most keywordy and long title I've ever seen At least on one of my presentations also just kind of wrong This happens because they ask you to do the academy presentation somewhere in February or something When you're thinking about something else in life It was called like man, and it was I was living in another country and everything Um Well the point is that I'm not gonna talk that much about apps I'm gonna talk about uh deployment strategies though and apps are part of it but not but yeah My big fat title is wrong and understandable. So I'm sorry about that I'm sure that's why everyone else is on the other room listening to something much more interesting anyway In any case before I delve into it for those of you who don't know me That's my name. That's my email if you want to shout at me Virtually if you want to shout at me non virtually here. I am Um, I've been a kitty contributor for quite a while now I've been working on uh several both apps and uh while in plasma and uh many of our upstream projects Since may I'm working for a car company called the mission doing um Well car things I guess you might find it interesting because I'm doing kitty related things on the car So that's kind of fun at least for me and I guess for you too Um, if you were around yesterday, you will have seen me talking about board things because I am the KTV president I have been for the last few years and I'm running again. So if you're a KTV member vote for me You don't have an alternative but still vote for me and like I was saying I uh I I recently moved I am from Barcelona was living in Barcelona, but I'm living in Berlin as of recently Now what I wanted to talk today about and that's what I kind of had in mind when I was Uh, well creating that very weird and our title is uh, how do we create thriving kitty products as kitty? We've been creating like things things forever um And I think that we all can agree that we're uh somehow failed at Like delivering the whole thing, right? Uh, software is a very complex topic and one of the big topics Of why is it so hard is because we're depending on so many things you have all of the electronics you have Big hardware manufacturers that get the things that run our stuff We've had the distros in the middle as well where like they kind of orchestrated everything and then We were there we were there Well doing our best at providing something that That could be useful for our users Big part of why we've been doing this is also like it informs why we've picked up with all of this complexity We we create we believe in creating an operating system that is good for our users. That is uh useful for for people, uh, but uh Well, have we been able to provide our users with all the freedom we wanted? um Well, the first point is that If you don't get to the users the users don't get to enjoy that freedom You can always say yeah, sure They could have like installed devion on their computer that came with windows and then they would have been freed from the heckles of society, but That's kind of a long shot um, in any case, um If I think about besides trying product What do I think about well first of all it needs to be useful, right? Like And almost of our products or if not all of them Are really useful. They they cover a very clear use case But also they need to be like safe and resilient in that like this is something that you need to be able to embrace and rely on like you're not gonna be writing well your Letter to the left one if you don't believe that if you believe that it's gonna explode or that it's gonna leak somewhere or whatever But also from our uh, but software creator perspective it needs to like Uh be easy to fix like somebody needs to be able to come and say There is this problem and we all know that every software has problems They need to be able to address it to add new features to add new whatever that needs adding and Well ship that to the other users that we're um We're gonna be getting but it also needs to be able to uh be uh Collaboratable right? It's it's it's much much easier to create a project where it's just you working There as soon as we start like saying let's create it as a group as a as a small society Well problems increase. Obviously. This is not our problem. Uh, luckily This is a problem for every software developer around the world and there's plenty of people who have Uh, well address that we use skates for example nowadays And it wasn't even our idea But uh, I think that it's it's useful to reflect on why that's important because When when we think about how others create products we It can be tempting to say let's uh, embrace their limitations because they can be freeing But I think that if we like forget about any of these four, uh bottom lines What we are kind of lost this doesn't mean that these are the only ingredients that Can be there much like a lot of the recipes in the world you can tweak them to your liking, but I think that these are very four very important pillars um And I want to contrast the four of these with a little bit our our history our our context to be able to uh Well to be able to explain why I think that we maybe haven't been able to deliver entirely Uh on on that premise Um, we're coming from uh, what we've been talking about the distro world if if uh If you agree that this is a the correct word In that world, um, we're somewhat of a byproduct like As I was presenting it like five minutes ago, uh Katie uh our software and Katie being uh plasma But also all of our apps were like a byproduct of someone else's products, right? There's something that has been kind of unique in a moment in the history of of linux and actually the Software world where like there was this moment between maybe the year 95 and 2010 where it made sense to create an operating system and try to sell it. Um This is not the case anymore. I guess that we all somewhat agree that like software is uh Not something that you try to sell in exchange for a license that much anymore. Some people try to Even some of our partners But uh, I also know that they struggle at doing that because uh, well software is is very special that way But in any case, there's been like all of these distributions that have been, uh Well taking what what we create putting it into their products and driving it to their their users some sometimes Collaborating with us to to improve Katie. So that's not to say that It has not worked at all. It definitely has had uh, uh very good impact in some parts of Katie, but It also has made it somewhat hard for us to innovate because we have lost that handle on How our our products end up delivered into those those users um Luckily though, like a lot of these distros they are also like very open community not unlike ours so, uh, there's the possibility of a lot of us to like Collaborate with these distros and make sure that that things work And this is something that has happened. It's happened happening today and it was happening 20 years ago So again, I'm not trying to pile on the that model. Just trying to Explain my my mindset here um And those are somewhat complex to navigate in that, uh, if you take the The perspective that our end user end-ups having is quite complex to end up reaching us So if you are a consumer of of devian if you're a consumer of of susan to which extent can you Can you like walk the the path that goes from whatever cdu gods from that? Magazine into uh, well the dolphin maintainer who has a bug that is bothering you and In addition to which extent are we able to deliver the fix that this person had on the CD from that magazine To deliver a fix that is going to solve their problem. This is Probably the problem of linux in the last 20 years and maybe there's something that We need to think about and actually like this last point Is what I wanted to talk about with this pushes us to think about the future we have always this or we We're put in this position where we need to think Not about how to serve our current users because our current users are Already in the past somehow and we need to always be thinking like maybe six to 20 months into the future when our users will be getting our new Or our stable versions of the software and the kind of thing that we'll be getting and I mean this is good because uh, Well, it gives us the the speed and power to like be over there But if we're always thinking about over there, we're never thinking about over here Which is where reality is in in a way Um I like to think that you all understood what I was trying to say here. Um I'm gonna make a small exception and say does anybody have a question or wants to insult me in any way right now I I I will take that as a no, so Uh, if we You would say, okay, let's see how we move that forward or how we have been moving that forward as an industry because We as kd we have not like invented anything super new at all, uh We need to think about the apps, uh, and it's actually very important that we think about the apps first because um, one of my earlier points, uh, I was making is that These projects need to be able to extend and when we think about extending an operating system the obvious thing to think about is is the apps the apps are these things that Um, don't come from the operating system. They come from, uh, well, normally third parties. They can come from you as well, but Uh, they are designed to be able to come from third parties and Extend the functionalities that your your your system is already Providing like that would be by definition, but an app is right uh And this is something that well we as the linux desktop if you wish have been thinking about uh for The very least the last five years it's it's been uh a big push obviously that there's been efforts in the past But they they don't really go kind of anywhere um, this is something that also, uh, for example, the Web linux has been thinking about as well when they well designed docker. Why was docker designed? Well, I wasn't on that room, but I'm pretty sure that the idea was I don't want to make my company's software Something part of devian because that's not what I do. I want to be able to like put my software in any linux Device and be able to run it Uh properly Uh, and that's not unlike what Probably the conversation happened when they decided to start working on snap when they decided to start working on app image and when they started to work on Android apk's flat bugs whichever so as soon as we have this, uh the separation of um Not everything needs to be coming from the operating system We can start thinking about creating an operating system and we can start thinking about Uh, well different based solution and um I think that uh treating the the apps as as end products It's it can be freeing if you were Listening to the keynote from the kdn life people. I think that it's very interesting how like they can afford themselves to Just be thinking about kdn life and and video and the things they care about They don't need to be thinking about, uh, I don't know the rest of the operating system Which is something that ends up happening Especially on those cases where the line between what is operating system and what is uh your product is a bit blurry, but on the other hand if we Find or if we can afford ourselves to find In a place where you can say I know that this is my problem. I want to solve and Just mine Then you can start working on well Not only the product itself, but actually explaining the product explain the product for different platforms as well often Uh explaining, uh, well trying to fundraise for the product Fundraised for the product in different venues, etc And actually telling that your product is great like you need you don't need to be selling the linux test of all always Uh, only because you were working on a small calculator or something. You can just be saying my app is is useful Um, why am I saying all of this? Well, um, this is uh the vision statement we have right now Which uh reads I mean it's much more explained on the on the wiki and I completely recommend you all to be reading what we say, but Well, the title the slogan is a word in which everyone has control over their digital life and enjoys freedom and privacy and obviously I mean this is great and I completely subscribe to it But we cannot really say that these can be achieved only with apps we need to have Um An understanding that is more vertical to the solutions that we provide and actually it's much more vertical than All of our products because for example, we're never going to be providing I don't know microchip right like there's always going to be um Other parts of the ecosystem that that escape us Especially if we remember that we think and work on software, which is not something that we that cannot change Maybe kd in 50 years has a small a big factory in in taiwan producing processors Would be surprised, but no in any case what I wanted to say is um, if we want to fulfill the full the the kd vision we need to be able to think about about The environment that we are offering to our users and what so far we've been doing this through Uh through plasma. So, uh, I think that it's important then if we allow ourselves to for plasma to be that part of Of the of the picture. How do we how do we envision plasma like? um something that has kind of uh I want to say what I mean the past is that uh We can see plasma as the different components into our desktop, right? It can be Like these windows. It can be that menu over there. It can be, uh, I don't know the stopper center, but um It's very hard to um to marry the going back to the vision like controlling all of your um Digital life to uh by using these menus and everything Uh You're gonna you're gonna do that. We need to be thinking about plasma. I think from like the ground up uh thinking about like the hardware how the how we integrate into the hardware through the operating system to some extent and to um And up to the the ux because otherwise plasma becomes something theoretical Uh, if you are in these, uh, I don't know ideal hardware everything will be under control But that's well kind of the assumption, right? Uh, otherwise, uh, you can never be sure that That you're being true What I want to say then is that it's the hardware that makes it real And the only way to prove that is that nobody has run plasma in the past without hardware because That's not possible What that's what I was talking about earlier no no need to go through it again So what I uh, why am I talking about this right now? Well, first I'm not just talking about this right now I have been talking about this for a while. I think that I was talking for example about our um relationship with kitty slim book back in uh, vn. I want to say or maybe albinia And it's been uh quite on this uh discussion. Uh, so far, uh, we had, um Maybe a different approach. We had been collaborating for example with uh, kitty neon on on that front But also like kitty neon itself. We've uh seen it. Uh, maybe not be everything that we would always want to be Uh, it has a lot of uh legacy for good reasons. Like we were standing on very strong legacy, but it doesn't stop being a big legacy and Like it's sitting on some legacy that is also kind of uh expensive for us As to afford because it's not designed for us, right? um But right now we're in this position where we have a good number of hardware partners who Claim to care about us and who collaborate with us in in many ways um And on the other hand ourselves, we're invested in hardware products. We've been uh working on for example the pine phone With pine 64 with slim book on the on the kitty slim book and what we've been doing there is is saying, okay Uh, let's make what we create not theoretical anymore. Uh, let's take this piece of hardware and make it work And I would say that it has worked quite well. Um, the The laptop here is one of these. Uh, it works great. Uh, and uh I can only see us like being able to do better by uh Furthering this uh relationship. It is still hard though to be flexible So if you wanted to say today, let's make I don't know a tablet product We would need to do a lot of well non-actual plasma work to um To to to get there and actually that is probably maybe uh something that we should be thinking about Like we should be able to say if we care about this new platform, uh, let's try to embrace it Uh, also right now, uh, there's a new technical solutions and what I mean by that is that, uh The linux operating system uh ecosystem has been evolving for the last few years And uh, there's a lot of new solutions that we can well start looking at right now and see if they can be probably Maybe to put in in financial terms like cheaper to uh use these new technologies and see If we can serve our users like we want rather than taking the big complex ones from from the past And I think that there's a good chance there So what I want to do now is go back to the ingredients the recipe I came up with a few minutes ago and say, uh Whether we can create something that um That is fitting that that definition and if I think about it, uh in terms of hardware and kd I think that we have a very good shot like we can have plasma with all these thousand whistles. Um Plasma is already flexible enough to target a lot of the different hardware platforms that that we have around that We're seeing we have a lot of the flexibility to create new platforms that the world hasn't seen if that's something that we need of one So, uh, I think that we are on a on a good track there Making it safer and resilient is something that Well for our software we have all of the tools that are necessary, but we're also sitting on a massive platform like, uh the linux platform is As in the kernel and all of the middleware that we have available We have a lot of partners that are making sure that everything works as it should and obviously it's also available to all of us to To use and extend and and fix and improve, right? Actually all of them fitting all of these, uh, this requirement So I again think about, uh, that that is something That we can do Speaking the third point. I think that we can agree that Ask ad we can collaborate on things Ask ad basically what we've been doing so far is, uh, becoming good at collaborating on software projects Um, actually the earlier presentation was a good, uh, example for that Like we've had people from around the world working together on on different projects and, um I'm being excellent at it. So actually that's kind of what we're doing kd So here I think the question is how do we create the product? Actually, maybe we can narrow it down a bit and say, uh Somewhat simple, uh, solution for an operating system that it's still easy to fix and extend if, uh, you look at the different or if I look at the different, um solutions that are coming together, um As soon as you start making it a bit simpler, um thinking about the this whole concept of read only operating systems thinking about, um Well removing all of the like dependency trees that uh become available to the to the user it becomes a slightly complex to like tweak certain parts and we need to find the good, uh I don't want to say compromise it when I go We need to find a good Solution where we can still do everything we want to do We we can still allow our users to be able to do what what they want to do without having to Have something that is far too complex for all of us to support and actually too complex for us to Promise that we can deliver the experience that that that kd wants to to deliver And actually it's not even us just doing it. Um There's a whole hardware industry that has been Working and thinking about this this program for for quite a while And I think that reflecting on how they've been doing May be a little bit useful. So I listed here some Some, um Approaches that maybe have worked to some extent or not, uh, the first of all The first I thought that could be useful to think about was the steam deck Um, so the steam deck what they did, uh to put together an operating system and I found it kind of interesting was um And that's from my perspective. It's not what they say or how they explain it Well, mostly because they don't say or explain many things but, um What I've seen is, uh, well, I've seen those binaries.  Everything goes away and and you replace it You replace it with something that is, um Well, whatever they gave you so if you made it like Non-read only and and you'd modified that obviously everything gets lost. It's not the worst solution in in history It works and actually it could uh Fix a lot of the boxes that that we need Uh A lot also of the of the discussion here is where do you, uh, draw the line between what is the Part of the operating system and whatnot and here is where like we see that this app concept is very important Like as soon as you consider well an app something that is not part of the operating system then you can start seeing um Well that uh, if something needs to be an app then it will be uh, it should remain after after these wipes or not Um in kd. Actually, I think that we have a little bit of a problem there We have a lot of things that we consider apps that aren't really part of the operating system If we start for example seeing at how the different, um Well app subsystems uh work we see that that there's a lot of things that for example our apps in kd I am mainly thinking about dolphin right now that uh, like they couldn't possibly work properly as Uh as as an app itself because we need well to have a lot of information of our user Information that we probably wouldn't wouldn't want to be giving to every app. Obviously, there's ways to um code corners on any security measure, but um There's something that that needs to be discussed That's good to be discussed by whoever ends up designing that operating system that we might be creating um Something that the industry has been using for quite a while as well is is yokto Um, and I found it quite interesting. This is something that I've been experiencing much more since my since I changed employers um, and I find it interesting that the industry decided to put that together because it On the first look it doesn't look that great If you start digging a little bit you will see or I started seeing Why they did it like this and there's definitely good points on that If you saw uh, Andreas's presentation yesterday. I think that uh, he did cover a lot of that advantages those advantages and um I think that there's uh much we can learn there I'm not sure if this is the tool we would want to use but for example being able To have the industry caring about certain aspects of the super lower level of our stack and allowing us to focus on what we like is something that uh yokto would be able to offer us and A lot of the other approaches don't like for example the steam deck They have the super advantage that they decided to sit on the Intel platform, uh through amd, but still the inter platform And through that they have a lot of standard that you can find that as soon as you leave that somewhat safe space you lose automatically with Arm and lately with risk five But on the other hand like there's a lot of very interesting hardware that we want probably to to target at some point that That's over there. There's been people caring about those those areas It would be interesting to see if for example our plasma mobile team would have had a better Life if they'd been looking at this kind of tooling or not I don't know actually like talk to them. I'm sure that they will have a more more interesting answer than than I have right now Something I want also to reflect on a little bit is android because android is Effectively a linux a linux that has been put together by one of the biggest companies in the world And even them they're struggling into like producing like new versions for for the different pieces of hardware that that they provide And actually a lot of the problems that they see are similar to ours, right like How is it that you buy an android phone from two years ago and you cannot update it anymore? Makes you think that something deeply rotten is in in the hardware industry over there But on the other hand they do have like the reach to target tons and tons of millions of But I don't know if it's millions of devices, but it's certainly thousands of millions of users and I'm sure that there's things we can we can learn there My impression is that the what we can learn is more on the very lower level of the stack rather on the very top So I I think that Looking there it would be interesting then I included others here because I know that lots of the Well legacy linux distros are moving into like none or less legacy kind of approaches Uh, open suze has their own fedora has their own and they're all like Doing a lot of the things that we want to do I think that looking at what they're putting together and seeing how useful that would be to want to Our intentions and our products would be interesting On the other hand they have not been as successful as doing that as the three of these I would say especially because I don't think that they're being Delivered to end users, which is actually what i'm talking about I am not talking about the ability to put us an operating system together Because like there there's many crazy ways of doing that I think that the important part here is the ability to be to put together a great software solution that that well Goes in line with how the hardware industry works in Nowadays So if I think about what we really need is a lot of things that we already have right like for example Building infrastructure we we do have we have a continuous delivery. We have a ci and we have some Qa systems that's not to say that They're enough they're clearly not enough and actually I can only imagine all of these exploding much more over the next few months and years because Well, if we want to serve users we need to be producing things that our users are able to do We've been doing a lot more of that for applications for example, but so far less so for Well hardware specific things other than dion, which is a Good thing don't don't get me wrong We need supported hardware that's also very interesting Like you cannot be saying we want to work on a set of bugs, but don't have a set of bugs in mind that you want to target It can also be a bad thing because you might be doing work around for that set of bugs to to be supported But on the other hand you will end up with a set of bugs that works that that you can Interate and you can you can improve and and deliver to users eventually if you don't have Something that you can provide to your users or you hope that they will have a theoretical piece of hardware I'm sure that we're going to be losing a lot of users and a lot of opportunities there We need to have great solutions which we do and we need to have a great Ecosystem which we are so I think that we can call those We know ready, but in in case we're going to be having Increased workloads because there's more tasks that we need to do as a community. There's more programs that we need to execute on rci We're going to be needing to do a lot more things if we go on that route I think it's worth it, but it needs to be all of us who want to do it to to be there Something that I think that is important that we think about is a clear developer story I don't think that the developer story is something easy to tackle specifically when you think about the operating system but Also, it's something that interestingly Andrea started on yesterday. He was talking about how you normally do it on your on your desktop and then you You deliver it to the to the hardware. Well, we will see how how we can do that But I think that it's an interesting endeavor something worth of us Thinking about If you're interested, I would like to say come talk to me, but I don't really have a good answer for you I would say go talk to all of the people in the community who are thinking about this problem You can talk to me if you want and I'll tell you who you can talk to if that's where you're stuck But I think that that it's important that we collaborate in there and actually like right now It's the moment to be thinking about this. It's not something that we should be thinking about in a couple of years Or we cannot even think like we should have been doing that like five years ago Right now it's the moment to be thinking about this topic because We have the right momentum. We have the right partners and the the industry the our partners Software partners are also thinking about these solutions. So I think that right now It's a good moment to be working on it and collaborating to be able to put something like that together Now if you have some questions, you can ask right now or somewhere around Thank you, Alex Seems there are no questions. So good. Thank you very much for listening to me Next up is will be the group photo. So don't Run away. Just follow. I don't know. Somebody will tell you where to go to Be taken and we're here. Yeah, so excellent. So everybody stay where you are If everyone could come down to the seats here in the middle facing the station We'll be taking the photo from the stage like Well, what is what? Okay Everything so first what's this person? This is me Yeah, that's some things about me. You can send me an email or not. Also, I'm not the kdv president yet, but I'm also not running So that's probably not gonna change yet So what's the vision behind this entire endeavor? Well Quality is important. Obviously. I've been telling you this for years now Um and quality Of our GUI applications in particular important since we primarily write GUI applications So naturally we should have GUI tests Except we don't and it becomes ever more important as we're moving into a world with qml where we cannot rely on the compiler anymore To tell us that things are obviously wrong. So obviously wrong things like accessing an object that is null suddenly Doesn't become so easy as it was And at the same time unit tests do not really capture the entire picture, right? They test the individual unit and what happens in the big picture when the entire application is assembled kind of falls by the wayside And I mean that's not their purpose, right? so Obviously such a GUI test would need to be easy to use And what I mean by that is needs to be easy to write the code for the test, right? If it's annoying to the developer to write the test and they are not going to write the test And at the same time it needs to be a reproducible test. So Obviously, uh, I would like to be able to run it on my system Not just the ci or worse yet some random server somewhere on the internet That you can't even specifically inspect the results in So that was the vision and then comes the problem So we don't really want to build everything ourselves, right? Um, we want to stay This kind of what we want kind of in the way that we wanted. We just need to tweak it a bit So let's look at the building blocks Because obviously not everyone here knows what selenium is selenium is A tech stack is very much the key of this tech stack. Um, that does UI automation What do I mean by that? Well, if you tell your computer press this button, then it presses the button without you having to click the button Simple, right? Everyone gets that Yes good Selenium features a server client architecture Um, it supports many languages. It has cross platform support. So all the things that we need which is interesting and exciting So selenium definitely needs to be part of our stack on top of selenium I've discovered there's another thing called apium apium takes selenium and makes it very much app specific So something about selenium one of the great disadvantages perhaps is that it's very web centric So it's meant for you to test your websites But as it turns out a website isn't so different from a modern application anyway So you can apply much of the same concepts To desktop or mobile applications and that's what apium does. It's basically sitting on top of selenium Then behind selenium, it's a thing called the web driver It's essentially the server part of the client server architecture of selenium The web driver executes whatever action it's being told to execute So when you tell your computer press that button, it's not selenium doing it. It's the web driver doing it The web driver is w3c spec It's super well defined awkwardly well defined. I might say Goes into great detail about all the api things But it defines an api for automation Which is important because now we have something that we can write against, right? And so the last building block that we need is at spi Now who here does not know what at spi is Okay, so at spi is kind of the core technology for assistive Stuff on linux. So all the accessibility stuff essentially runs through at spi at spi is Mostly a divorce protocol that establishes how this communication has to happen and what apis need to be provided but The toolkits are the ones implementing that and so through the toolkits area application on the linux desktop more or less anyway Already gets at spi support. Does that is everyone on board with that? Yeah, cool But wait, wait, wait, so I've added accessibility to this picture now, which is Interesting. It's also very important So Accessibility has an overlap with automation in that it wants to do much the same things It needs to inspect what is on the screen. It needs to interact with what is on the screen needs to click a button from our example So it's about having the computer manipulate its own state Very much like we need for testing and so by building on top of the accessibility stack We get all this automation capability And at the same time we use our accessibility features Implicitly So now suddenly we realize that there are accessibility problems that sometimes things are not annotated that they are not correctly Named that they do not have a name at all perhaps that they are not interactable All these things that accessibility asks of us as sort of extra Curricular work from the developer We usually don't notice it because we don't use accessibility But if we do testing through accessibility now it becomes a different story because we're using it So we can put all these building blocks all the trees together and form a lovely forest.  Why do why do you not have an icon? Big question mark there something is missing the web driver the web driver bit So the actual thing that does the work right that is missing because there's no such thing for atspi We need a web driver that is capable of receiving selenium requests and then translating that to atspi requests And that's the thing I did So if you check it out on invent that would be cool um It essentially handles the communication between selenium and the actual entity under tests So if you start kcalc and test kcalc Then the web driver will be talking to kcalc through atspi So now all the protocols are well defined And we're super independent of one another because if selenium should fall by the wayside We can just write our own selenium or pick something else up and we maintain the web driver So that's lovely and atspi can be switched out for another technology and now that is interesting Because now you couldn't technically write the test that runs on windows and on linux Isn't that exciting? Ah It's not it's not there yet.  First of all, it does this translation between selenium and atspi and all that um It also comes with a start wrapper So you don't have to manually set up your your execution environment because we need to spin up a bunch of stuff You know your atspi demon your deepest demon We are what Whatever other demon you might possibly want And the web driver takes care of that um It's also Able to create video recordings and that's because of a design decision that we've made So ordinarily you would run the application on your actual system, right? But we wanted a bit of confinement but not too much confinement We essentially wanted to be able to manipulate the input of the application without impacting the input that you are actually doing So what we're doing is we're spinning up a nested queen wailin session Within your existing session. So you can be running x11, but it will be spinning up an a wailin window And Inside that window we can do whatever input manipulation we want without affecting anything on the outside Which is pretty cool, but it also forces the opportunity to Do screen recording super easily thanks to work that allege has done in the past year So that's pretty cool. Um, we can also do of course screenshots for example Obviously if we can do a video we can do screenshots Oh life demo time This is gonna it's gonna be exciting Also, because I don't actually see it. So here we go. Uh, uh, it's obviously not life because I'm not I've been burned before my friends But we're using a very experimental video player Well Well, it is I'm I'm live right here, right? So, yeah, so this is a video of a test queen wailin started up came for center starting up It's typing in stuff and then it's a certain stuff and then it goes away again That was obviously a bit quick. So maybe let's do a little bit Slower So what it's doing now is it's looking for a search field And it goes do it find a search field. Hello search field. Well if search will goes, uh, here I am And so it selects the search wheel. It's hard to see but it's not selected And now it starts typing. So that's input synthesis Through queen wailin so no actual typing is occurring there And uh, now it's loaded the CPU module and it's a certain is it actually the CPU module is it selected in the list Do you want to know that? And that's the end of the test let's look another one All right, the big surprise. What is what's test? Oh, it's the media album fingertips from plasma This is a super involved test actually on the back end side because we are provisioning an entire fake Debus Empress service just to test this thing It's pretty amazing on the back end even if it doesn't look it but I need to show you something And then here we have a test in discover I think And don't get distracted by all the debug messages. This is an experimental version of dragon player and I forgot to remove the debug messages So, um, it again search for the search field. It's typed in calcium It opened calcium. It's gonna click on the install button any minute now Now it's installing calcium It should only take a couple seconds hopefully Well, of course it does it's recorded So right. So now it's installed it can be launched And now it's uninstalling it again. It's a very simple test But a very important test because this is a core workflow if this breaks then What's the point of discover? Alrighty, let's look at some code. What kind of code do you want to see? test code or driver code Very good Very good selection my friends. Okay Is it large enough? Okay, so here's some simple setup for the test Setting up the repositories for flat pack and whatnot blah blah blah standard test setup stuff then it's creating A web driver it's here On the local host it's a service that is spun up or run wrapper that is part of the driver So that's like boilerplate stuff that just goes into area test Indeed most of the stuff core is boilerplate. So this Terran stuff is also boilerplate. It's taking a screenshot And quitting the driver Nothing particularly interesting. So this is actually where the logic happens, right? So first of all, we have a wait condition for 30 seconds We're going to wait for the loading label to disappear Here it says label loading. That's like a special type of string a descriptive string From 80 SPI that basically defines the type of what you're looking for and the current label that it carries There are various lookup methods. This is one of them and by far the simplest Actually, you know the simplest is just using the name. I think So in this case, we're being a bit more explicit. We're saying it needs to be a label and it needs to have the A string loading Next we are looking for a search field. So we're doing a simple find element call and looking for the search field We're making sure that the search field gets focused And the search that state Now that we have the search field focused we can input the keys calcium And hit enter And then again, we have a wait condition for 30 seconds for the data to actually load blah blah the same thing repeats We wait until the list item calcium appears And then we click on it At this point, we're doing a bunch of assertions. So we're looking for the application description and making the very Useful assertion that the description is actually not empty So the length would be greater than 64 Next we're looking for a push button and the push button should say install from flattop user And then we're going to click on it And then we're going to wait for 120 seconds. That's always the maximum amount of time that we're waiting. It's not a regular sleep, right? We're looking for a push button. It's going to remove blah blah blah Same dance again. We're again waiting until the install button appears again Exciting code, right? super boring But I mean it's a test, right? What did you expect? Come on Let's maybe look at another one. Which one? There are really no exciting tests unfortunately Um, oh, we can look at this one. So this is the the super exciting one that I was talking about Because it has its own empress player implementation as part of the test So i'm not going to go through this but it's like A lot of work fusion did the work. It's super super awesome So it's using jio to set up an entire server as part of the test and then Somewhere hopefully there would be the test case Yeah, so all that stuff was just a setup, right? So here's the actual test case And I think if you've read a couple of lines, you already have a feel for how simple this is It's really not magic. So again, we're looking we're finding an element This time we're just looking for it to say play. We're not asserting that it has any specific type in this case Then we're looking for the previous button the next button the shuffle button the repeat button And then we're gonna gonna do some Matching and probably some assertions at some point. We're gonna do a click on a button so you can also Look for a button in the ui then hold it as a variable in your test and Later reference it again. So this previous button here Well play button has been defined all the way at the top and now it's being used again And you can use it as long as its lifetime Is valid, right? Yeah, that's about it What else can we look at? Oh, that one is also interesting because it's actually implements a system tray Okay An x embed tray icon. So essentially, I think the use case for this was The x embed icons broke in one of the recent plasma releases and so fusion added this test Which adds an x embed tray icon and then asserts that it's actually there Let's have a look see Right So here he's starting the x embed as an i proxy Blah blah test waiting for a bit So this is actually the only important line in this entire exercise Is the presence of an element Located by its title Right, that's the only thing that we want to assert if The plasma system tray is loaded and an x embed application is also running. We should see an icon And at the end of the day ideally this should be the only thing you need to write But of course being x embed it needs more setup logic Okay Anything else any wishes? I have a calculator test that is fascinatingly boring Let's have a look Okay, so it clears it clears the clears everything it puts seven in it checks that the result column says seven Then it does calculations Amazingly simple And so what are some of the gotchas? Or actually, let's look at something else first Let's go to my slidey slides We've been here in here in here in here Oh, ah, yes, so the 80 SPI ecosystem Um, so there's 80 SPI which is like the protocol and the finger magics that defines how applications can Be manipulated from the outside There's one super important tool that's called exercise. It basically allows you to introspect what's going on inside 80 SPI and It's super important because we need to be able to find out what 80 SPI actually sees of the application I will show you in a minute what that looks like And of course we have the application the application Needs to implement 80 SPI which de facto means that Every application has it because it's in the toolkit Easy peasy limbs squeezy. So let's look at an exercise Stand on the slide. Oh, there's another slide exercise Let's hope nothing crashes You don't see it but something crashed No, no, no Okay, so this is exercise It's essentially a debugging tool for all intents and purposes And we can look actually let's open k-cult because k-cult is kind of simple So we have k-cult open It almost appeared automatically So now we can look at what 80 SPI sees of k-cult So there's like a super frame of the entire window apparently then we have a filler a status bar A manual bar a tool bar and another filler Um, I'm gonna guess that the main tool bar is gonna be interesting No, it's not it has under redo cut and copy But like we could execute these actions right now. I'm gonna look for something more exciting So one of the problems is with our current Accessibility structures is we have lots of noise items, right? Like you can see that there are items that say nothing until they have no actual function They're just there because automatically they are injected and we as developers Really should remove items that we do not need So they don't clutter up The 80 SPI bus they don't clutter up exercise that they don't consume resources Um, so yeah, let's take a look So this thing here is probably the result display. Let's have a look No Yes, so these are the properties of the thing that we are looking at And apparently we are looking at the hex display So this is like an id that is auto generated inside cute of like every q object that we have And it's based on the q object name. I think also the classes are mixed in it's A bit magic what's going on, but it doesn't really matter because usually You set your object