 Hello, everyone. Thank you for coming and Yeah, today I'm gonna talk about developing for our users This probably doesn't mean much to you. I had to use a title. I never know what but titles to use for my presentations It's a bit mystical and you're probably wondering but as soon as I explain to you what who am I maybe we'll start understanding I am a leash. I have been developing in Katie for over 10 years and Well, my first two projects one was Tiny educational application called he algebra and the second one was K develop an ID K develop wasn't mine, but I started contributing to it as soon as I started doing stuff in Katie And this is related because I have been experiencing both the little application kind of thing where well you're working on your stuff and you want to get it to the users and Well, you're not a big big project. So like big distros and operating systems weren't Caring that much about me actually aware, but I wasn't really aware of that at least at that time and then on the other side I I got to think about what are the developers problems and how does one actually develop an application and What kind of tools would one need to be happy and Well, sometimes I think we managed to deliver them and but not always And in general as being part of the Katie community one thing that you need to think about and you Keep being reminded off is that you need to make it easy to contribute, right? Most of the people who work with us are not because they have a boss who told them you have to work on that because it's very Important for whoever and if you don't do that, you're not going to be paid, right? We need to make it easy and and exciting and one part about making it easy is to well have a straight and meaningful line between I have an idea that I want to implement and I can start implementing it without having to go through hoops technical hoops Regarding, I don't know. You need to install dependencies. You need to Recompile the kernel, right? No, not not so fun stuff. It's something that well the whole community has been working on for four years Katie has been working on it Linux has been working on it and actually like open source is driving on it and well Now I'm gonna talk to you about How I think and we could improve it some somehow in in Katie so today To develop any Katie application basically one usually needs cute Which is the biggest framework we are based on but then we have a ton of frameworks because well over the years We started creating them because we realized that well cute wasn't offering everything we needed so And we had shared needs so we started implementing them and we put them together into frameworks This means that as soon as you start developing for an application You will realize that it's not just about installing the dependencies Well cute as a dependencies, but all of the kitty frameworks, which you since you're developing as well You will need like fairly recent Versions of these frameworks, which are not always part of the distribution This also gets more complex as soon as you start stop thinking about Linux strictly, right? Like if you want to develop let's say key algebra for Android or for Windows you won't have a nice distribution who is doing the work for you You will have to go yourself and fish for all of these dependencies and and well Take whatever action you need to take by yourself, and that's not super fun always But that that's the idea you get started and before you can actually start doing your development You have to look at the weirdly complex dependency tree that you need to sort out Right before you start doing what you actually came to do Also, there are very different Linux's like we like to talk about Linux as if it was just the one thing or the new Linux As if it was the the one thing but like if you think about it There's like a lot of very different things we can think about the normal distros like Ubuntu open Suze and All of that but then the the spectrum is much wider, right? Like there's very like there's Yachto for example There's Android it can also be considered the Linux and it's not always trivial to like cater this with with one Approach at least not so far We're let's see if we can improve it and then as I was saying there's different operating systems one of the things that we tell developers when when when they work with us is that If you create an application that works Properly in a KD setup, and you're not doing crazy things very specific to like plasma For example, you will be able to run these applications on on these Different operating systems which actually makes a lot of sense, right? like there's a lot of our user base that sometimes will be on Windows sometimes will be on OS X sometimes will be on Android and And we cannot disregard this this use case. It's it's part of how this society Behaves and we need to cater to that And we also have a very different form factors We cannot say our application only works on desktop unless it's a very desktop specific use case our users will be Well walking sometimes and just saying to them well You're out of luck because you're not sitting in front of of big screen and in a laptop computer is It's not pretty an option at least I think so so We've had solutions for that like for example We came up with a KD source build tool like many years ago And it's actually something that we have very properly documented on our wikis about and it actually tries to solve all of these issues but Well, it's something that we know about because it's part of our culture, but as an outsider you don't want to Straight away have to learn about the the culture when what you wanted to do It was to fix something or to get something done, right? so Let's see what other people have been doing and thinking about when doing this kind of things The first Solution that came to my mind when I started to think about this was is ducker, which is Well, it's a very widespread technology, and I think it's it's really cool one thing very specific about duckers that usually will build your images on top of another distro are very Which is it's really interesting because You as a linux user already you will have some kind of knowledge on how the technology works And actually all of these knowledge you have can be built on top of of ducker You just need to learn the two or three Specific semantics and how it behaves, but if you're a hardcore devian user you will be able to use your Debian knowledge on top of ducker another really interesting thing about ducker is that Most of us as developers we use just the one operating system because well you don't use two or three operating systems at the same time, right? on a computer and If you need to test something on a different distribution, it's always a possibility to do so on on ducker One thing quite interesting that the neon developers did some some years ago or months at least Was to create already pre-built Images for neon images for ducker So basically you can just pull their image and start executing whatever it has or Create your own ducker images based on top of these just installing whatever application you're looking for These for example as a user if you want to test a new version of let's say Krita or Kate K develop or whatever you like you can just I'd use that ducker image and and put it That said it's not something that we have been exploring at least so far I haven't and I don't know if somebody else has Explored it as a solution for actually distributing software and recommending it to the end user Which is actually where I'm going like when we're developing We want to have our users on on a release that is maintained by us What I want is that if I one of my users finds an issue in my in my software He can tell me I have this issue. I can say I'm sorry I can fix it and then and then say well you're welcome and He needs to be able to get this new this new Version of my software with the fix what it's not really acceptable is that? Since you got he got this old version that is already shipped by somewhere someone else Well, he's out of luck and he has to wait for whatever upgrade he gets because well these harms Actually this harms all of us right like it harms us because we're not able to deliver Then the experience that we want it harms the user because well he has a software that doesn't use and it actually harms the distributor because well, he hasn't happy users because of the The policies that are there for good reasons, but well, they're not flawless as any policy, right? Then during the last few years there's been these two technologies that I sometimes Blob together which are flat back and snap the they're basically based on the same technology that In the second technology that Docker is based, but they're already designed to To distribute software to be used exactly by end users Flatback is more specifically made for desktop applications snap is more of a Do whatever you want with that thing also a very interesting thing is that they have a Specific security model that that allows well since you know that the users will be pulling this kind of These applications into their system without knowing where it's coming from the the systems can actually Give you some kind of information about whether the application is going to well steal your data or not In the end there's going to be always like as soon as an application as for a privilege you get to Give it some credit, right, but well Still making free software and based it on these systems should always make the users as well a bit more more confident Because in the end like what we're coming from is that the security model we always had was The distro knows their shit and they're very good at it, which is it's really cool And it's possibly the reason why we are not full of viruses all over our systems I've personally never had a virus on my system at least that I know of and and the reason is because I've been Well getting my software from from very good distributions over the years who well actually weren't distributing Viruses to me, but as long as as soon as I start pulling things from the internet I can see how this this could could be a thing especially Since we're most of us they're using x11 and well lots of technology that aren't are built based Basically on this premise on that there will actually not be any viruses on your system or malicious software So as soon as I got to the realization that there were some tools that we could be using better for For both distributing our software and to actually develop on I thought well now it's moment. We will Take back my my K develop experience and see how we can actually put this in practice in a way That is actually useful for for our users So here's a couple of videos. I I prepared for from my last blog post Whoa To explain a bit how these Technologies works. This is for example an example for for the Docker integration I did so basically what happened was that I started a Python application that didn't have all of the dependencies because they were not Part of my system so I created that Docker image and then build a system which will have these dependencies and then I Switched my K develop runtime into the docker one and now K develop everything it sees is What's in that docker all of the dependencies that it looks for will be in the docker and Won't be whatever I have on my system, right? If you think about it every software we've been developing so far Unless you were using these technologies for sure or others Is software that was actually meant to use on our computer It was strictly relying on the state of our computer to work But this system is not the system that our users have admittedly. It's a very similar system But it's not always the case and for example docker will give you like the the security that it's it's being Done in a pristine clean system, right? So well, I don't know if you realize but basically the end of the example Well, do you it reruns the application all of the imports are resolved because the the docker script? to care of the Of the revenue dependencies and then when it executed it It worked. It's not just about being able to install the dependencies though. It's about how Me as a new developer I Didn't have to configure my system in very obscure or ways that I didn't really understand. I just Installed Docker image which is something living in my my my file system, but not really compromising it or even making it dirty and Just developing something on it Now here's another example as you see it's three minutes It's much longer, but it's essentially doing exactly the same thing, but with flatback, right? So here It's showing an example of of arc. It's first if executed my local arc it's using my dependencies on my on my system and And since I have already my kd Frameworks everything built. I I already had it running right, but then I created a new runtime using the the flatback one and now it's going to compile the application using the dependencies as Specified as as a flatback application this takes much longer, but it is much longer because the application is being built by Using a c++ compiler and c++ needs to compile all of the files. It's also a much bigger project Right, but it's not nothing really out of the the the normal that it's it's doing It's just recompiling a project from scratch against a different set of libraries This is especially interesting as well because we get to ensure that All of the developers will be using the same dependencies and all of the users will be using the dependencies that we are Choosing right so if a user has a problem, we will be having that problem as well So reproducing an issue is just something that happens straight away Also an interesting thing is that the resulting binary could be potentially created by us so Well, it's something that we can even send to the user and actually have him Well tested I can skip a bit the compilation part, but basically the conclusion of the video is that while the arc also started when it was built on by by flatback and Well life goes on and this is also another example I one of the things I wanted to do when when working on this was that I Fertility that if we start pushing developers to develop for The plasma phone will very soon see that it's it becomes quite complex to do the whole I develop on my app on my on my laptop and I actually executed on my on my phone And actually that's what happened when we started working on it What we did was to actually compile the application on the phone and Actually Just display well executed from there. So what's happened with the video? Oh Does anybody know what happened? Well, let's try again. It's a quick video anyway So what what this video does is that I am developing an application on my laptop. I get to execute it locally But then at some point I want to execute it on another device in this case I was using my slim book, but it could be a plasma phone theoretically. So while it's just Sending over the application to the other system, and then it's executing also on the other system and then thumbs up, right? and But that's just another example So why now? The the it's really important that we start looking into these because it's technologies are blooming now We need to make sure that we can help drive the development of these We also Well, we can start leveraging such technologies, which is brilliant and To do that we need to get project maintainers to realize that this is a problem And it is actually an opportunity, right? We need to start providing recipes to have these applications built at the moment. We have a bunch of Well recipes for night labels, but I am not going to become responsible for making the stable releases for every application If an application is interested they can do so and I'll be happy about it Actually, I will help you guys get on to it, but I need project maintainers to take responsibility there. I also want I Think it's also good that we remind that it's very important because it shortens very much So the feedback loop between the users and in our our state And we also need users to demand supported software. It's not it's not acceptable that a user is using Version of our software that is not being maintained if they have a problem We won't be able to solve it and that's that is a big a big problem It's a big problem that we need to solve and we need to solve it now And I want you guys as users to make it happen. You need to become annoying You need to say I am using this distro and I don't have ways to use your supported software if you don't Listen to me. I will call a less and throw him at you and Distributors well dumb frown, which is something that very often happens. It's something good for the community I I want to go work together with you guys actually Some of this work is very very similar to the work you guys have been doing so far And I think that well we can very much use your help and otherwise We can very much use your collaboration It's something that will help the whole open source and Linux community grow and I want to do it together so That's what I wanted to say if you have any questions You can do it now or later in the hallways or whenever you want to although if you do it now Somebody else might hear your aunt and the answer as well. Just a plus questions There's no questions Thank you very much. Thank you So our next speaker is John Baptist Marzell who is a maintainer of KDN life and the topic is going to talk is KDN live rewriting the timeline. Thank you