 Hi, I'm Akhil. I'm a student doing my undergrad in computer science in Amrita University, India. And I'd like to start off by saying thank you, like, thank you to each one of you for making what KD community, what it is, for giving me this fine opportunity to be standing here, giving a talk about my project. So a big round of applause for you guys. Come on. Yeah. Thank you. And yeah. So back to the topic revamping the title too. That was the project that I did over the summer for Google Summer of Code. And it was with KDNLive. And the project involved revamping, for those who are not aware what KDNLive is, it is one of the most popular open source non-linear professional video editors out there. So my project mainly involved revamping one of the major features in the tool. It's called the tidal tool. And what the tidal tool does is it makes tidal clips. So what tidal clips are, it's basically like, you have these, like, at the end of, say, a movie, you have, you know, credits or something like that. You have text, right? So if you want to, like, composite these clips which contain text or images, or you want to animate this in some sort, and you want to composite this over your video, you use the tidal tool. So the problem is in KDNLive, the tidal tool uses the deprecated QGraphicsView since Qtify. And this has had many problems. Like, we had to drop many effects, many popular effects like typewriter effect. And the whole code base is obviously prone to upstream bugs. And, yeah, it's a mess. So what I proposed to do was to, like, yeah, let me tell you an old user's deprecated QGraphicsView. So my solution was to redesign the backend right from, like, it uses XML. Currently, what I proposed to do was to use QML and render it using a new Qt class called QQuickRenderControl, which allows you to, you know, carefully select and render, control the rendering, you know, processes in a very efficient manner. So, yeah, that's that. And I'll just have this, yeah. So before you have the tidal tool, MLT, yeah, that's another term. MLT is basically the media framework on top of which KDLive is built on. So basically to do anything you need an MLT module, you need a producer or a consumer depending on what you're doing. So with the tidal tool, what you need is a producer. So for QML frames, I needed an entirely new producer. So that was part of the work that I did for the summer. I couldn't complete it. Unfortunately, I'm still working on it. And, yeah, so I hope to see the tidal tool live in the coming months. And, yeah, so about 80% of the work is done, really. And, yeah, I hope to continue being part of this great community. Currently, I'm asking for anything more. The experience has been great. The learning curve has been steep. And this community has been great. Thank you. Thank you. Hi, everyone. I'm Aman. And I've been a season of KD 2018 GSOC 18, mentor in GCI 18 and 19 GSOC mentor. So since we have a very small time, so I'll just briefly start with GSOC 2018. Well, in SOKI, I made a block programming language for the Project GCompre. And in GSOC, how do I move the slides forward? So here, the GCompre had a GTK plus version. And in that, there were a lot of piano simulating activities. These were one of the major activities which needed to be ported to the cute version to move to the version 1.0. So I ported all the four activities which were a piano music composer, in which the user will be able to compose a music, a piano music, using various components like he can control the rhythm of his composed music. Here is 152 BPM. It beats per minute. So he can control the play back speed of his music. And then there's play or either clear the entire stuff. It's also kind of sheet music. So it's mainly inspired with the software called Musecore. And itself a great KD application in the minute. So there are also many features like it has treble clefs and bass clefs. It also has rests. It also has different kind of notes. Let's say quarter note, full note, half notes and so on. So on the right, we have some predefined lyrics. These musics are already composed and we have stored it as a form of a JSON object. So these are directly imported. So the lyrics are shown as well as the music are also played. So the user can also modify it and then practice on his own. So these are the melodies that we had preloaded. And it was the file manager that I made to handle the creation. So like the user creates some music and he wants to save it. So he can save, he can load, he can delete, he can edit, and he can do anything with his file manager. So I've also integrated with all the other activities which needed its use. So it was another activity named play rhythm. So here you can see the metronome over the help button. So this metronome was oscillated. So it oscillates as you said the BPM, which is 90 BPM here. But you can change it according to the playback speed that you want. And the user had to click the metronome. So with this, the user can train his accuracy while playing his piano. And now last thing here is, it is an activity called name that note. So in this, the user gets to learn about all the various, you know, like keyboard keys and all the tones that he'll be playing. So it extends from C3 in the third octave to C6 in the sixth octave. So it has around 18 to 20 levels. And there are algorithms that I had implemented to, you know, make some focused keys that you can see in red and some normal keys that you can see in black and then the user can learn accordingly. So now, so that was my GSOC 2018 project. And so what's ahead of it? I got my project merged in the master branch and it got released right in the next month or two with the help of my mentors, obviously. And the next, I continued contributions and I did mentorship in Google Code in 2018 where I mentored 75 participants which resulted in completion of around 80 tasks, including coding tasks and community outreach tasks. So the next thing, like, and then I did my mentorship in Google Summer of Code this year for the project company for the project title one step closer to version 1.0. And we, along with my three other mentors, we let the student and he successfully completed all three evaluations within the perfect time. And, you know, like what's ahead for me and Katie after all the contributions. So my aim is to still remain active in the community and continue contributing code-wise as well as doing mentorship. And I hope to come here again and give a talk next year also. Thank you. Hi, so this is more or less aligned with our next goal that is Katie is the app, all for the app, basically. I'm going to talk about Laplot more on it. So before that, I'll start with who am I? So I started contributing in Katie in 2014. My first mentor was Alex Paul. He guided me throughout. So I picked up Calgem, that is Katie EDU project. And in that, during that time, we were voting from Qt 4 to Qt 5. So he guided me throughout the process. And in 2016, I did my GSoc in which I worked on the Laplot. And in 2019, I mentored in GCI where I created a few tasks related to Katie EDU projects. So a little about Laplot. Laplot is a Katie application where you can... It has a very interactive UI where you can plot scientific data. And it's very easy to manipulate and edit and figure out different analytics and the graph that you plot. So this is the UI of the application. On the left side, you have the project explorer where you can see all the worksheets that you have created. The center line is the main area where you see all the plots. You can mark with different colors, denoting different analytics or measurement, whatever you want to show. On the right is the properties of each plot that you select. You'll be able to see what are the X and Y values you are selecting and stuff. And on the status bar, you can just drag and draw all the color changes and everything like that. So Laplot, as I said, it's a scientific data plotter. So you can give inputs in the form of spreadsheets such that it has a X column and a row. You can give in the form of metrics, metrics like data, like X, Y sort of form. Or you can import some files. For example, if you get data from another third party source or something, you can import the file and directly play around with the data on the plots. So when you combine multiple spreadsheets or metrics, that forms your workbook. And when you start plotting your labels and everything, it is called spreadsheet. So there are different types of curves that you can create using Laplot. One is XY, which is normal, like using a spreadsheet, using X values and Y values. It can be like a normal equation where you get the straight graph. The second is you can use a mathematical expression. For example, a graph for sine, cos, or any other mathematical expression. And third is for data analytics functions, which is again your third party tool that you want to somehow manipulate your data and show the graph of that. So during my GSOG, my task was to extend the functionality of plotting by using Histogram. Histogram is a discrete data plotter. So here we added a lot of different bindings and all. So my mentor was Alexander and Garvid Khatri from India. And also I created some few small tasks on GCI, like for example, improving the Laplot websites and seeing around and writing documentation on Laplots and all. So what was the major things that we did? It was for extending the plotting capabilities. And Histogram is a continuous data. For example, it shows from X-axis to Y-axis how the data values are changing and the advanced features, as I told you. And the external file that I used was a JSL Histogram for that. We have the complete source code and the GitHub, so you can just fork it and look around if you want to contribute more to it. That's it. Thank you. Hi, everyone. My name is Alex. I study at UCL in London. Study mass and computer science. And I worked on polishing KIO fuse. So there's not many slides to this because I wrote this in five minutes on the plane. But you can see if there's more details, especially in the status report, for whatever I haven't said in the next three minutes. So a bit about KIO fuse. So there's a bug report 75324. It's been around for 15 years. And basically the feature request is that for apps that don't use KIO, so aren't KIO enabled, when we send URLs, for example, SAMBI URLs, FISH URLs, et cetera, to other apps, what we basically do is we use KIO exec, which basically downloads that URL into a kind of temporary file and allows you to do edits, but it's kind of really clunky. And so KIO fuses a kind of solution around that. And there's been many attempts in those 15 years, but there's been one this winter developed by Fabian Watt. And he worked on it that winter and over the due stock period, I tried to improve it. So in particular, basically, there's KIO, obviously, that we know, that allows obviously no more local file IO, but also kind of network-based IO that's kind of transparent, especially if you use Dolphin, it's quite clear. And there's also Fuse, which is kind of like a Linux module that allows creation of file system in user space. Obviously, most of them are in kernel space, and obviously they don't really accept patches for KIO. So Fuse basically kind of allows other applications to kind of see transparently what KIO is doing. And so it kind of merges together to allow it to take advantage of it. So I should go back a bit. So there are some limitations. So KIO doesn't always map well with semantics of what Fuse would expect. So there's a bit of hacking around, a lot of hacking around. And then Fuse itself has its own issues. So there's obviously different layers of cache shared away. KIO, if Fuse is implemented, is that every file in KIO is, or when you open a file via KIO, Fuse, what we do is we download it via KIO in a temporary file as a kind of cache. So we don't have to send requests all the way up and down to the actual remote system. And we kind of take advantage of the kernel caching. So they have write-back caching, which is very complex that I won't go into, but we can't use it. So we can then use write-through caching. That's kind of like a small performance issue. It's not really a big issue, in my opinion, because you have network IO, which is a lot more important. And so KIO Fuse kind of has a lot of hacks around currently. And it's currently all in one class. There's about 2,000 something lines, soon 3,000 once everything goes into master. To be honest, I don't know how to go around that cleverly. You can kind of use polymorphism, but that just makes the stuff really hard to read. So I think that's kind of a problem for later. In terms of getting it into kind of use and everyday use, merge and remaining merge requests. So there's obviously some stuff in KIO Fuse that we need to get in. So for example, there's file jobs. So we have different types of jobs, like transfer jobs, et cetera. But file jobs allow kind of like seeking. So say for example, you want to open or read the first few bytes or a large file, currently you'd have to download the whole file and then read the first five bytes. And you can pretty much endorse your system if the file's big enough. With file jobs for certain slaves, which is SFTP and SMB and IO slave, you can actually do seek-based kind of reading and writing. The problem was that it was kind of very poorly documented. So there was some stuff that was upstreamed and it's actually upstream now, so all good. And so what's left is to just get the remaining MRs in and we're good to go. Thank you. Good evening, everyone. I'm Ritu Kapatwal and I would like to thank KD Community Plasma Mobile Team and my mentor Bhushan Shah for helping me throughout the project. So my project was Next Cloud Integration on Plasma Mobile. Plasma Mobile is an open-source interface for the phones. Basically the idea is to bring the Linux distro to your mobile phones. And to make a device mobile phone handy, we all know how useful clouds are. So the Next Cloud Integration because Next Cloud is open-source and we support open-source and it supports security and privacy. So I'll break down my project in three steps like what I did. Mainly the work was done for the contact synchronization. First is the Next Cloud login plugin. These are some screenshots. What happens is in settings apps, you can add the Next Cloud account and you can add the Next Cloud account. And I used Webflow for login because in Webflow, the password is not saved. Random password is generated for the system. In that way, the user's password is secured and real password is not saved in the application. Next is K-Accounts Contact Sync plugin. What K-Accounts is? K-Accounts is a system to add the accounts and to manage accounts basically, to manage accounts on the plasma mobile. And Sync is a data access layer that manages synchronization, caching and indexing. So I use Sync plugin to synchronize the contacts, to save the contacts of the accounts to manage by K-Accounts in Sync data source. Then is the Next plugin, K-People Sync. So K-People provides the access to contacts, provides the access to contacts, phone book, etc. And the Plasma phone book app uses K-People to access the contacts. So what I did was to transfer the contacts from the Sync data source, these contacts that were synchronized by Sync plugin to the K-People data source. That's it. There's a demo video if the time permits. So right now the work has been done for the accounts, sorry, contacts. You can add your Next Cloud account. Now the contacts are synchronizing for the account added. And in the Plasma phone book app, those contacts are visible. Now I'm adding the new account on my cloud server. The Sync will happen automatically after five minutes, but for the demo I synchronized it manually. And that was visible on the... The changes were visible on the phone book app. So for the work, similar work I will do for the calendars and then for the files and photograph system. Thank you. You can read more about all the plugins at orepaula.home.blog and my GSOC status report. You can continue. Thank you. So my project was to port KD Connect to Windows. So for those who do not know what is KD Connect, KD Connect is an application for end users to sync their mobile phone, like the usual tasks that they do on the mobile phone through their laptop and vice versa. You can sync the notifications from your desktop to your phone and you can also sync the clipboard. And there are a lot more plugins like inhibiting screensaver and a lot more things. So the main issues that KD Connect had, like initially it was being built just fine on Windows, at least it was building and connecting, but it still had to do some work on notifications, the SFTP plugin and many other plugins because mostly they were still focused on Linux and they didn't have their Windows counterparts. So the main part of my project was to develop the plugins and ultimately publishing the port to the Windows Store. So most of the improvements that I did for KD Connect for Windows. So the first one was the notifications plugin. So for notifications I developed a SNOTOS backend for Windows so that we can use the existing K notification API calls so that we can use the existing code that we use in our end applications and still get the notifications on Windows like we do on Linux. So I have uploaded a video for that on YouTube so we can check that later. And the next was SFTP plugin. So for SFTP plugin, a technical limitation was that we do not actually have any implementation of SSHFS on Windows right now. So instead I developed the KIO extras SFTP plugin so that it works on Windows as well. So some of that work has been integrated but currently the limitation is that I can make a connection through KIO extras but still I cannot actually like browse all the file system because many parts in the KIO extras is still Linux specific like the permissions and stuff and we hope to make that more cross-platform at the KF6 release. Most of the other plugins were ported as well like the screensaver plugin and a lot more plugins. So I have a playlist for all the plugins uploaded on YouTube as well so you can check that out as well. So the final deliverables for my project were two installation modes so like Windows has two types of installations available one of them is the .exe setup that is a desktop application like the conventional ones that we have been seeing on Windows and the new one is the windows so wrap that is a .abpx package so for that we don't have as much freedom like we do for the desktop applications so we are still working on getting the more developed desktop application features on the windows application as well but the basic functionality of the project still works on both of these so if you want to try out the final deliverables that I have made I have some blog post on my blog as well the link will be at the end and otherwise both of the installation modes are available on CI thanks to Ben. So the current status of the project is that most features have been ported but there is still more documentation required for the project it still needs most testing because sometimes the K notifications back and causes the current port to crash so we still need to look into that some minor challenges like the one I told like the windows store build doesn't have the system integrations yet so that is one thing to work on but we are hoping that the deadline for the next release date will be the one for our release as well because we cannot actually release a project before like we cannot release a project that uses the master branch like most of my work has been on the master branch of frameworks and I cannot actually make an official release on windows store before the next release of KD frameworks that actually I am using so that was all so my blog and contact details are on journal.use.tech most of my blogs are first posted on the KD specific blog because somehow my RSS feed doesn't work for the original blog the GSOC final status report is available on this link and my project details for the GSOC are this link. Thank you.