 Hello. So first of all, sorry about the timing thingy. We have booked this slot for one hour, but apparently just one student is presenting because one of the other students who wanted to present had his flight delayed. This is Arnau. Arnau worked on the Dolphin and KIO, this Google Summer of Code in this Google Summer of Code program, and he wants to present this project to us. So, yeah. Hi everyone. I am a second year undergraduate student at India, and my mentors for this project were Pinar Kahuja, Budhayan Gupta, and two of Largics and David Ford, even though he wasn't a normal mentor of my project, he helped me out quite a lot with making this. So, as the title says, it's to help making discontinuous file sections easier and explain how that works. So this project, yeah, sorry, this project came out of a problem, and this problem exists in all file managers which I found, be it Dolphin, not this, or even the Windows File Manager. The problem is that it's really difficult to select a small subset of files in your file manager. What I mean to say is if you want to select some files in your file manager, you have a bunch of icons, and to select those icons, you don't have any good tools as such. You can either use Control-A, which will select all the files in your selection, or you can use Control-plus-click to select one file at a time. But neither of those options are good for many reasons. For one thing, if you have to use Control-plus-click to select each file individually, it requires fine motor skills. If you accidentally miss a click or something, you might lose your entire file selection. So, with those problems in mind, I made this project. And the other problem was, as I said over here, is that if you're copying a file between any two devices, you have a hard disk in the middle of it, which is spinning, let's say. Not an SSD, let's just say you have a hard disk which is spinning. So, when you try copying something, your hard disk starts spinning. And then when you try to navigate to another folder to find something else to copy, your hard disk is already spinning. And because it's spinning fast, what I mean to say is copying something. And as a result of that, it's slower. It just becomes very sluggish to copy another file. So, generally just copying files between any two devices is not a very good experience. So, my project was to rectify all these problems by creating something I call a virtual folder. So, in this virtual folder, you can stage files. What I mean to say is that you can copy files from a lot of different locations on any discontinues file tree. They don't have to be in the same hierarchy or anything. You can copy all those files to a virtual folder which will save all your files in the RAM. What I mean to say is that it's not saving the file from the file system or anything. It's just saving the URL of the file in a process. And then you have a selection of files which you can then copy to any other device or any other folder. So, these files are copied. They're not copied as in the sense you're not copying the file itself. You're just copying the URL of the file. And the advantage of that is that it's obviously a lot faster to just copy the URL of the file instead of copying the whole file. And that makes your file sections a lot easier. I'll show you. So, on my right, I have some actual files which are there in my home directory. And this is my project. So, it's called stash. That's the name we've given to it right now. Might change in the future. And all these files which you see over here are not actually in any folder as such. They're just pointers to real files which are somewhere else on the hard disk. And yeah. So, the advantage of this approach is that I can actually curate my file selections on the stash that I will save itself. If I want to, you know, suppose I want only some folders in my music directory. I don't want all the folders. I can delete some of them. And then I can delete some of them on the virtual file system. So, the advantage of that is that it's not actually touching my real file system and deleting files from there. It's all being done virtually. And I can curate a selection of files on my virtual thing and then copy all of the required files at once. There's some implementation. So, this is a KIO save. Like you might have used in other things such as for, like there's a tags KIO save which is made over there. And we have a KIO save for other things as well like FTP, FISH and HTTP as well and concrete might have used. So, this is a KIO save which means it's compatible with any KIO application. You can use it as a plasmoid. You can use it in any other file manager who supports KIO. You can use it in Dolphin as well, obviously. And how this works is that the KIO save is talking to a demon which is running in the KD5 process. So, this demon is just holding the list of files and the URLs, obviously, and the source files. And the KIO save is talking to this process using D-Bus, Q-D-Bus, more specifically. And we're storing all the files in something which we created uniquely for this project. It's written in Qt and it's a kind of custom virtual file system. I can get to that as well. So, this is a small overview. So, you have a KIO application which can be Dolphin or the plasmoid or something. And it's talking to the KIO save for copying, renaming and deleting. And this KIO save is just contacting the stash demon object which is living in the KD5 process. It's not written over there, but it is. So, the slave and the demon object are communicating over D-Bus. And the KIO application is just displaying whatever the KIO save is listing. So, that's it. The source code is, of course, open source. And you can see it if you'd like to. Yeah. Does anyone have any questions? How was your experience in Google Summer of Code this year? It was pretty good. Yeah, it was a really good experience. I learned a lot about project development and Git and, you know, just making my source code a lot more readable and well-documented. So, I would have never done these kind of things if I had not participated in the GSOC. So, that was a very valuable experience. Yeah. Any other question? Can I ask more than one stash? Yeah, sure. I can actually show you how this works. No, you cannot actually have more than one stash as such. There's only one. But you can actually install this right now. But the problem is that we're actually waiting on a patch in Dolphin getting accepted. This is a patch version of Dolphin which is compatible with the slave. Otherwise, there are a few problems which don't quite work with the existing version of Dolphin. So, with your question, you can only have one stash, but you can, of course, have as many files or folders as you want. The performance, this is quite good. Like, each file staged on the stash requires only 300 bytes of RAM, which is mainly just the URL, which is about that much for most files. We're still working on that because, as I said, we're still waiting on Dolphin getting patched for this to work. I submitted a review request and might take some time for that to get accepted. Yeah, please. A virtual folder sounds like an interesting thing, maybe not only for copying files, but also for, like, I don't know, maybe I want to keep a selection of all my music distributed over or of my work documents that are distributed over different or a virtual folder for project. Like, do you plan to, do you have any other plans with this virtual folder concept, sort of? We did, actually. I wasn't able to implement all of it, but one of the plans was that you could save your selection. So, like, if I make a selection here. So, one of the plans was that you could actually save your selection of files to the virtual folder, and then you could load that later on. So, one of the advantages of that is that, like, if you have a certain selection of files which you want to copy in many devices, you can just load that selection at any time and then you can copy it to your new device. It could be like you're getting a new phone and you have some certain songs which you want to copy to it. So, instead of creating a new folder for that kind of purpose, you can have a virtual folder instead. So, that would obviously save some space on your disc because otherwise it would be taking space, just to have duplicates of something which you already have. So, we're working on getting that implemented. Any other questions? So, why didn't you use something like following the low-level UNIX principles, for example, having a hidden folder with sim links somewhere, which might be because you said, like, saving selection and so on, so you would then already have this selection as a folder somewhere, a hidden folder with sim links or something like this. Now it's really abstract, right? And your application, it's now only working with Dolphin. So, if I want to do it on some other tool, then I would have to implement this virtual file system again. That is true. So, this is limited. It's limited to KIO applications. Well, obviously I didn't implement it that way because I didn't think of it. But, at least by implementing it as a KIO slave, we have full compatibility with KIO applications. Yeah. So, if you have a plasmoid, for example, you can use this as well. So, it's mainly for compatibility with KIO applications. One other thing is that if you were to copy something like... So, the other thing which we valued in this was that you should be able to use it like a normal directory. Like, we didn't want to specially modify Dolphin to get it to work. So, with this approach, at least, you can use it like any other directory in Dolphin. You can have two things side-by-side and then copy-paste files or something. Any other questions? How is this presented to the user? Do you have some interface or do you actually have to type stash, colon, slash? As of now, you would have to go through the location bar and type that. We could introduce a button for it as well. Preferably, we have the split button in Dolphin. There could be another stash button as well. So, we'll probably get to that. Any other questions? So, there was already the question about when it's available in mainline distributions. What is the reception generally like in whatever? I'm not involved in KDE or community. So, are they thinking, okay, as you say about this button, so will this be maybe something other people think it's valuable to have in the mainline version? Or do they, like, yeah, okay, this might be a plug-in, but it's probably not something everybody wants. Yeah, so, we don't have actual feedback from users yet because this is just created. But what I did do for the GSOC selection was to run a few services, a few user services with people in the KDE community. This was fairly well received. And that also went a long way in getting my proposal accepted by KDE as well. Yeah. Any other questions? How easily is it portable to Windows or Mac OS X is there anything special to Unix or Linux? There's nothing special to Unix or Linux in this. It's written completely in Qt, so if you have KDE supported on some other platforms such as Mac OS X, I'm not sure if KDE was supported on OS X, but if it is, this would work exactly the same way. Any other questions? Okay. Thank you, Arnaud. Yeah. I have to admit, this was like one of the special projects like for our admin team because apparently Dolphin was kind of semi-unmenting state, so we had to find a mentor for it. And we had to find a mentor for it. And we had to find a mentor for it. And we had to find a mentor for it. And we had to find a mentor for it. And that was like for our admin team that this was like a special project. We work our tails off. Yeah. So yeah, this project was actually supposed to be a Balu project in the beginning. Like the implementation was to use Balu to select virtual files. You can do that using extended attributes. It's a property with files in the file system. But later on, we found that we actually wouldn't need Balu at all. So we changed the approach as well. Yeah. Do you plan to work further on it or would you stop working on it? It would require some more work. So yeah, I would definitely want to do that as well. Okay. So yes, this was one of the Chissok project. We also host our own season of KD program. And we also participate in Google code in Google some of code and outreach program for women. So if you want to mentor or if you have some if you have no some students and who would like to participate and come to KD community, feel free to tell them about those programs. Thank you for coming. Yeah, we will be having a buff on Tuesday. I'm not sure. Sorry.