
I will not discover America if I say that, to put it mildly, the way files are organized in modern filesystems is not very convenient for the end user. And indeed: a hierarchical model for presenting data based on files and directories, which has not changed for several decades, is simply not capable of meeting modern needs for storing large amounts of heterogeneous content. And if everything is more or less good with music information, thanks to media libraries such as iTunes or Amarok, the situation with files of other formats is still very sad.
The essence of the problem
I am sure that every person who reads this topic has at least one of the following directories on the computer: soft, parse, temporarily, all sorts of things, trash, interesting. Usually in the software folder there are several thousand archives and executables with the speaking names "setup.exe" or "589346.zip"; the folder “My Documents” is spoiled with a bunch of files, many of which do not belong to documents at all, and the files from the “Disassemble” directory remain unassembled ...
At the same time, when we have a need to find “the same visual studio distribution that I downloaded a couple of months ago,” it’s much easier to find a link to the installer in Google in a few seconds than trying to search for it on my computer for a long time. Standard search utilities also do not save, because for binary files, they can be guided only by the name of the file, and a miserable handful of additional attributes.
I want to note that this problem in file system usability is not at all contrived: just look at
this topic , which caused quite a heated discussion.
You can also read the relevant chapter from the book “Alan Cooper on the interface. Basics of interaction design.
')
Solution options
What to do with it? Fortunately, thanks to the web, we are all familiar with the simple but very effective way of organizing information. Yes, yes, I'm talking about
tags .
Delicous.com, digg.com, last.fm, but take at least habrakhabr - all these web services taught us to use tags correctly. Having spent a little bit of my time once on tagging any element of our collection, as we will never lose sight of it. Things like "adjacent tags" or "tag cloud" will allow us to find the desired content, even if we do not remember very well what tags it marked.
Well, but if the manufacturers of operating systems have not yet introduced such a simple and convenient idea, then where are the developers of third-party applications looking ?!
I thought that there are at least several alternatives that allow you to create a database based on file tagging, because
it is so easy to implement!
To my disappointment, I discovered that only programmers on Mac OS:
7 were tagged up with
File Tagging Applications for OS X (of course, almost all of them are paid).
Neither for windows, and, moreover, not for Linux, I did not find anything like this. Although, perhaps, I was just looking bad - in this case, I ask you to indicate in the comments links to such software.
Of course, it inspired me to become a “messenger of goodness and light”, freeing unhappy users from the oppression of archaic FS. And since The main OS for me is Linux Ubuntu, the question on which to write did not even get up - of course it is python, especially since I did not want to get involved with Microsoft technologies.
The basic list of requirements turned out to be quite small, and this motivated me even more. So, what am I expecting from such a program:
- Adding / editing tags to files and folders directly from the context menu of the file manager (Nautilus)
- Interface for searching and viewing files by the specified tags
- Tracking changes in names and locations (which is basically the same) of files
Roughly speaking, our innovative and nanotechnology program will consist of three components: system integration, a database, and a process / daemon.
Existing funds
Deciding to test the ground for the first stage, i.e. Adding my own elements to the context menu of the Nautilus program, I came across one open-source project that partially implements my idea - this is the "
tags-tabs extension ".
Honestly, the word “project” is poorly suited for one half-working .py source for 7 kb, and not having any documentation.
Tags-tabs is an extension for Nautilus that uses the python-nautilus library. It adds its item to the context menu, which allows you to assign tags to files and perform a basic search.
In theory, for everything to work, you need to put this file in the ~ / .nautilus / extensions / python directory and give it the right to execute. In practice, in my Ubuntu 8.10, this script causes the application to crash when calling the menu. They say that in earlier versions of ubunt everything works fine.
Also not to mention the wonderful project
dhtfs .
DHTFS also preaches an ideology based on tags, written in python and even has short user documentation! But there is one drawback - this is a cli-application.
Conclusion
So what is this all about? In fact, with this topic I want to encourage the python-developers community, whose representatives are undoubtedly present at Habré, to pay attention to this interesting, but at the same time almost unnoticed by the rest of the problem.
The fact is that I started making friends with python quite recently, so I hardly have the skills to implement this idea, but with your help, taking the two projects above, it is quite possible to prove once again that open source is a big strength, especially when there are enthusiasts like us behind it.