Pull to refresh

Правильная организация файлов или наше спасение в наших руках

Reading time 4 min
Views 44K
imageЯ не открою Америку, если скажу, что способ организации файлов в современных ФС мягко говоря не совсем удобен для конечного пользователя. И действительно: иерархическая модель представления данных на основе файлов и каталогов, не менявшаяся уже несколько десятков лет, просто не способна соответствовать современным потребностям в хранении большого количества разнородного контента. И если с музыкальной информацией все более-менее хорошо, благодаря таким медиа-библиотекам, как iTunes или Amarok, то с файлами остальных форматов ситуация до сих пор остается очень печальной.


Суть проблемы


Я уверен, на компьютере каждого человека, читающего этот топик, наверняка есть хоть один из следующих каталогов: soft, разобрать, временно, всякая всячина, trash, интересное. Обычно в папке софт находится несколько тысяч архивов и экзешников с говорящими названиями «setup.exe» или «589346.zip»; папка «Мои документы» засрана кучей файлов, многие из которых вообще к документам не относятся, а файлы из каталога «Разобрать» так и остаются не разобранными…
При этом, когда у нас возникает потребность отыскать «тот самый дистрибутив visual studio, который я скачивал пару месяцев назад», то гораздо проще за несколько секунд найти ссылку на установщик в гугле, чем долго и тщетно пытаться искать его на своем компьютере. Стандартные утилиты поиска так же не спасают, т.к. для бинарных файлов они могут ориентироваться только на название файла, да жалкую горстку дополнительных атрибутов.

Хочу заметить, что данная проблема в юзабилити файловых систем вовсе не является надуманной: достаточно вглянуть на этот топик, вызвавший достаточно бурное обсуждение.
Также можно ознакомиться с соответствующей главой из книги «Алан Купер об интерфейсе. Основы проектирования взаимодействия».

Варианты решения


Что же с этим делать? К счастью, благодаря вебу, все мы хорошо знакомы с простым, но очень эффективным способом организации информации. Да да, я говорю о тегах.
Delicous.com, digg.com, last.fm, да взять хоть хабрахабр — все эти веб-сервисы научили нас грамотно пользоваться метками. Потратив один раз чуть чуть своего времени на тегирование любого элемента своей коллекции, как мы уже никогда не потеряем его из виду. Такие вещи, как «смежные теги» или «облако тегов» позволят найти нам нужный контент, даже если мы не очень хорошо помним, какими тегами его отметили.

Хорошо, но если такую простую и удобную идею до сих пор не внедрили производители операционных систем, то куда же смотрят разработчики сторонних приложений?!
Я полагал, что существует как минимум несколько альтернатив, позволяющих создавать базу данных, на основе тегирования файлов, ведь это так просто для реализации!
К моему разочарованию я обнаружил, что подсуетились лишь программисты под Mac OS: 7 File Tagging Applications for OS X (разумеется, почти все они платные).
Ни для windows, и, тем более, ни для Linux ничего подобного я не нашел. Хотя, возможно, я просто плохо искал — в таком случае очень прошу указать в комментариях ссылки на такой софт.

Разумеется, это воодушевило меня стать «посланцем добра и света», освободив несчастных пользователей от гнета архаичных ФС. А т.к. основной ОС для меня является Linux Ubuntu, то вопрос на чем писать даже не вставал — конечно это python, тем более что связываться с технологиями Microsoft мне совсем не хотелось.
Базовый список требований получился совсем небольшим, и это мотивировало меня еще больше. Итак, чего же я жду от такой программы:
  1. Добавление/редактирование тегов к файлам и папкам прямо из контекстного меню файлового менеджера (Nautilus)
  2. Интерфейс для поиска и просмотра файлов по указанным тегам
  3. Отслеживание изменений в именах и расположении (что, в общем, одно и то же) файлов

Грубо говоря, наша инновационная и нанотехнологичная программа будет состоять из трех компонентов: системная интеграция, база данных и процесс/демон.

Существующие средства


Решив прощупать почву для первого этапа, т.е. добавление своих элементов в контекстное меню программы Nautilus, я наткнулся на один open-source проект, который частично реализует мою идею — это "tags-tabs extension".
Честно говоря, слово «проект» слабо подходит для одного полуработающего .py исходника на 7 кб, и не имеющего никакой документации.
tags-tabs — это расширение для Nautilus, использующее библиотеку «python-nautilus». Оно добавляет в контекстное меню свой пункт, что позволяет назначать файлам теги и выполнять базовый поиск.
В теории, чтобы все заработало, необходимо поместить этот файл в директории ~/.nautilus/extensions/python и дать ему права на исполнение. На практике, в моей Ubuntu 8.10 этот скрипт вызывает крэш приложения, при вызове меню. Говорят, что в ранних версиях убунты все работает нормально.

Также нельзя не упомянуть замечательный проект dhtfs.
DHTFS также проповедует идеологию ФС, основанной на тегах, написан на python и имеет даже краткую пользовательскую документацию! Но есть один минус — это cli-приложение.

Заключение


Так к чему это все? На самом деле, этим топиком я хочу побудить сообщество python-разработчиков, представители которого несомненно присутствуют на хабре, обратить внимание на эту интересную, но вместе с тем практически незамеченную остальными проблему.
Дело в том, что с python я начал дружить совсем недавно, поэтому вряд ли у меня хватит навыков реализовать эту идею, но с вашей помощью, взяв за основу два приведенных выше проекта, вполне можно в очередной раз доказать, что open source — это большая сила, в особенности когда за ней стоят такие энтузиасты как мы.
Tags:
Hubs:
+31
Comments 136
Comments Comments 136

Articles