Posts

Taking out the trash, or just sweeping it under the rug? A story of leftovers after removing files

Image
 There are many things that we take for granted in this world, and one of them is undoubtedly the ability to clean up your files - imagine a world where you can't just throw all those disk space hungry things that you no longer find useful. Though that might sound impossible, turns out some people have encountered a particularly interesting bug, that resulted in silent sweeping the Trash under the rug instead of emptying it in Nautilus. Since I was blessed to run into that issue myself, I decided to fix it and shed some light on the fun. Trash after emptying in Nautilus, are the files really gone? It all started with a 2009 Ubuntu launchpad ticket , reported against Nautilus. The user found 70 GB worth of files using disk analyzer in the ~/.local/share/Trash/expunged directory, even though they had emptied it with graphical interface. They did realize the offending files belonged to another user, however, they couldn't reproduce it easily at first. After all, when you try to m...

Using Portals with unsandboxed apps

Image
Nowadays XDG Desktop Portal  plays an important part in interaction between apps and the system, providing much needed security and unifying the experience, regardless of the desktop environment or toolkit you're using. While one could say it was created for sandboxed Flatpak apps, portals could bring major advantages to unsandboxed, host apps as well: - Writing universal code: you don't need to care about writing desktop-specific code, as different desktops and toolkits will provide their own implementations - Respecting the privacy of the user: portals use a permission system, which can be granted, revoked and controlled by the user. While host apps could bypass them, user can still be presented with dialogs, which will ask for permission to perform certain actions or obtain information. Okay, so they seem like a good idea after all. Now, how do we use them? More often than not, you don't actually have to manually call the D-Bus API  - for many of the portals, toolkits an...

The Bargain-Finder-inator 5000: One programmer's quest for a new flat

Image
 The Bargain-Finder-inator 5000: One programmer's quest for a new flat Or how I managed to get a reasonably priced apartment offer despite estate agencies I think every one of us had to go through the hell that's searching for a new place to live. The reasons may be of all kinds, starting with moving between jobs or random life events, ending with your landlord wanting to raise your rent for fixing his couch despite your 3 years of begging for him to do so. You can guess my reasoning from that totally not suspiciously specific example, one thing's for certain - many of us, not lucky enough to be on their own yet, have to go through that not very delightful experience. One major problem when scraping those online market websites, is that you're not the only one desperately doing so. And if it was only for the fellow lost souls who are trying to make ends meet, oh no - many real estate agencies say hello there as well. So when a very good offer finally comes up, one that ...

GSoC 2022: Overview

Image
Introduction Throughout this summer I've been working on making the New Documents feature discoverable in Nautilus, a file manager for GNOME as part of the GSoC project . This post is an overview with links of the work I did together with my mentor Antonio Fernandes. Results For the project I was supposed to resolve the discoverability problem of this feature - when there are no templates in the Templates directory, the new document menu is not shown, and many users don't know about its existence. Below is a list of steps I've taken to fulfill that quest: Planning - first we had to establish a schedule for our work Research - then we had to do some research about how others implement this feature Design - afterwards we had to design a mockup for the improved feature Code - at last a prototype was made, and after several design iterations, a final MR was submitted and merged to a feature branch (not master yet), during that phase I also presented at GUADEC Future While t...

GSoC 2022: Fourth update - Code

Image
Introduction I published my last blog post about the design phase of my GSoC project on 17 July. It's been a month, and it's been far from uneventful. I'm going to talk about the first prototype and my short presentation at GUADEC, as well as the review from designers and the result of it - the new mockup and the second prototype. First prototype and GUADEC Following the old mockup from my last update, I prepared the first prototype of the revamped New File menu; it wasn't really functional but served its main purpose as something that the designers at mini-GUADEC could test and review. Speaking of GUADEC, I took part in the Intern Lightning Talks where I presented the old mockup - you can watch my presentation on YouTube . Me presenting the old mockup at GUADEC Intern Lightning Talks Review at mini-GUADEC Equipped with the old mockup and the first prototype, my mentor Antonio Fernandes presented the work at mini-GUADEC satelite event to the designers, and we got fol...

GSoC 2022: Third update - Design

Image
Introduction It’s been a while since my last update , in which I’ve shared my research about the underlying problem and use cases of the “New Document” feature, regarding its discoverability and ease of use, as part of my Nautilus GSoC Project . Since then I’ve been focusing on the following phase of the project: “Design a mockup based on aforementioned research”, and I’m here today to share the results with you. Use cases Figuring out hypothetical user profiles and their use cases could prove really helpful in designing and refining prototypes, so together with my mentor Antonio Fernandes we’ve come up with the following examples: User profile #1 - Programmer A programmer or system administrator with a repertoire of many pre-made code snippets/basic scripts for a variety of needs.  Use case: has to create source/script files at specific locations with the premade content. User profile #2 - Computer science student An aspiring programmer, who attends classes where they learn about ...

GSoC 2022: Second update - Research

Image
Introduction Two weeks have passed since I started the first phase of my “Make New Documents feature discoverable” Nautilus GSoC project. It’s called “Researching the underlying problem and use cases'', and according to the timeline that was set up in my last planning post, I’m here to share our findings and results. Why do the research Before we start revamping/fixing issues with our implementation of the “New Document” feature, it’s essential that we look into other operating systems, file managers, and web apps, to see how they approach allowing the user to create files. Do not be mistaken - the intention is not to blindly copy them, but to take inspiration from them, identify potential problems with specific solutions, and find out what users may expect from us. If there’s a clear trend in some approach, there may be a valid reason to implement it. We don’t exist in a vacuum, and we are definitely able to learn from the accomplishments or mistakes of others.. Everybody, in ...