📜 ⬆️ ⬇️

Can I tidy up my computer once and for all?

“It's time to tidy up on your computer ...” I think this thought arose among all users, and more than once. Without tidy, any computer sooner or later turns into a rubbish dump, and finding the right files becomes more difficult. Even if some sort of cataloging and storage system is developed, new interests may require new tools and new hierarchies. And if there are several machines or several users on the same machine, everything becomes even more complicated.

Of course, I tried to use some sorting methods besides the file system - because Often you want to organize files not by one criterion, but by several equivalent ones, which cannot be done in a tree-like hierarchy - a network structure is required. But all my efforts were broken on the interface. Judge for yourself.

PersonalBrain ( www.thebrain.com )

Pretty good utility for organizing files, folders and url links. Disadvantages: paid, rather slow (Java-based), you can't tag a large group of objects with a tag right away. Pros: it is possible to switch views (cloud, tree, table).
')
tag2find ( www.tag2find.com )

A utility for tagging files and searching through them. Cons: only works on Windows, it’s difficult to tag hundreds of files.

dhtfs ( code.google.com/p/dhtfs )

File system based on tags. Cons: only works on Linux, uses the same interface as the tree structure. Pros: the right choice of place where tags should be used - the organization of the virtual file system.

Another problem that complements this is the desire to have file system versioning. I have been using git since 2009, and everything is fine, except that git runs on top of the same tree-like file system. If we introduce a tagged organization, it would be natural to include versioning there.

What would you like

1. When any file hits a computer (including when installing programs, unpacking archives, etc.), it is automatically marked with the following tags:
- where it was downloaded from (url, local path with the name of the computer where it was downloaded from, or the name of this computer if it was created on it from scratch, plus a link to the original file and its version if it is a copy or a version of another file)
- creation date (when downloaded, timestamp)
- update date = creation date
- full file name (in UTF-8 encoding)
- MIME type of file
- the human name is MIME-type (music, program, video)
- file size
This meta information is versioned.
2. The user can at any time add to the file any number of other tags, change and delete them. You cannot manually delete and change automatic tags. When adding-modifying-deleting tags, there are two options for saving, see below.
3. When creating, modifying, and saving any file (and meta information), there are two options for saving:
3.1 Saving file minor edits: the contents, file size and update date are overwritten. Saving small edits of meta-information: add-edit-delete tags without saving history.
3.2 Full save (commit) file: a new version of the file and meta information is created. Full preservation (commit) of meta-information: a new version is created.
The choice of saving option is two hot keys, for example: F2 - Save, Shift + F2 - Commit. When you click any of them, an input line pops up in which you can enter tags separated by commas (in the first case they are just tags (which can, of course, consist of several words), in the case of commit this will be a commit message). The same operations can be performed with a group of files.
4. If there is no search criterion, the default view is a tree in which the files are ordered by the following list of tag criteria: human MIME type name, update date, full file name. This list can be edited: change the order of the tags, add and remove tags from the list of automatic. You can create new tag lists and save them as views. You can use a tree in the same way as a regular file system - go in and out of "folders" -tags, sort files. For example, creating a folder and moving files there will mean creating a custom tag and assigning it to files.
5. The default search is conducted only among the latest versions of meta-information. The search interface consists of two panels: one contains a set of controls for filtering the search by standard attributes (date of creation, update, the human name of the MIME type, size from, size to), to the other - the input line (searches for both standard and user attributes, also searches in parts of tags, there is autocomplete).
6. Search results are shown as a table of files with columns: metadata version-file version-name-size-human name MIME-type-creation date-update date-where the custom / commit-message tags were downloaded. The order of the columns can be changed, by clicking on the column header, you can sort the output by this column. The total number of files and the time spent on the search are displayed below. Search queries can be saved and used later.
7. For each file from the context menu, there are commands “see the history of meta-information”, “see the history of the file”, “get the version of the file” (all criteria above apply to the resulting file, which allows you to build a graph of copies and versions of a single file)
8. When leaving a computer (or deleting a file), the meta information and the contents of the file are deleted along with the entire history.

Stages to achieve the perfect

A virtual file system with the implementation of a file manager for it and git-like versioning is not easy. For starters, you can simply try to make a daemon add-on that implements the described functions and works on top of existing file systems (NTFS, ext3 / 4). You must also put git and put the entire hard disk in it. Next, the daemon tracks
- the appearance of all new files, marking them with autotags and adding to git
- transfer, modification and deletion of files, updating information in the database and git
- responds to requests to the database, giving results
Plus, the search interface / file manager, at least in the form of plug-ins to the total commander / FAR / Nautilus / mc (forgive me, Makosi fans for not using their system).

Yes, I forgot to mention Google Desktop [dead September 14, 2011, googledesktop.blogspot.com/2011/09/google-desktop-update.html ], as well as Copernic Desktop Search and others en.wikipedia.org/wiki/Desktop_search ) Why ? First, they also search for files (content inside files), which was not required. Secondly, versioning is absent in these engines. For the sake of fairness, I’ll note that some of the functionality described by me is implemented in them, so reviewing these engines makes sense - perhaps I will do this in later articles.

PS By the way, there is an assumption (of the same Google) that soon everyone will migrate to the web and to the clouds, so give desktop search engines the best. As for this, I do not agree: a person needs to have a private place and control over information without access by outsiders, no matter how Google wants to know everything about everyone. And in the torrents hardly anyone will ever lay out absolutely everything. So desktop search has a future with versioning.

Source: https://habr.com/ru/post/144866/


All Articles