Tags4info
Tags4info
Вот уже 4 года, в свободное время, я пишу программу для организации доступа к файлам на компьютере при помощи иерархических тегов. Программа получилась настолько удобная и лаконичная, что я бы скорее назвал ее системой управления знаниями. Чтобы этого добиться пришлось перепробовать разные подходы, создавать и переделывать уникальные элементы интерфейса. Все это время я тестировал ее на себе, используя как основной способ доступа ко всем сохраненным данным. Сейчас в программу добавлено более 2400 файлов и закладок, и я редко ищу нужную мне информацию больше чем в 3 клика мышки.
Основные идеи:
- Одинаковый подход к файлам, закладкам и приложениям. Мне никогда не нравилась идея хранить закладки в браузере. Там приходилось организовывать структуру папок аналогичную структуре папок для файлов. Поэтому в Tags4info закладки и файлы, а также и приложения являются объектами одной природы и отображаются в одном списке. Например если вы занимаетесь обработкой видео и у вас есть тег "видео" - то выбрав его вы увидите все файлы, закладки и приложения которые им протегированы.
- Только теги и никаких папок. Файлы при добавлении в Tags4info перемещаются из того места где они находились в специальную папку. Они остаются на том же диске и не переименовываются. Это избавляет от необходимости думать о том куда положить файл, а только о том какие теги добавить. В "аварийном" случае найти файл достаточно просто. Про структуру хранилища файлов - ниже. И да, кроме возможности добавить файл есть возможность добавить папку. Для Tags4info папка это файл.
- Папки в традиционных ОС непрозрачны - чтобы понять что находится в папке нужно в нее войти. У меня же при выборе тега отображаются все объекты которые протегированы как этим тегом так и его подтегами, а выбор подтега сужает выборку.
Красота раскрывается когда протегировано много объектов:
Как начать использовать:
Про тегирование
За все время использования Tags4info я протегировал больше 2400 объектов. Это в среднем составляет 1.5 объекта в день. Один или два объекта в день протегировать займет минуту. Чаще всего я добавляю закладки. Ссылку можно просто перетащить в окно приложения. Для браузера Google Chrome написано расширение позволяющее добавить закладку в Tags4info в один клик. Что касается файлов, то их я тегирую не сразу. Обычно новые файлы какое то время лежат в папке Downloads, пока я не решу оставить их или удалить.
Советы по тегированию
За годы использования Tags4info я выработал несколько правил тегирования, которыми хотел поделиться. Я считаю что идеально, когда объект имеет 2-3 тега. Один тег подходит для простых узко специализированных объектов. 4 тега использую крайне редко, 5 - никогда.
Очень удобен тег "избранное" для самых популярных объектов. Тег "заметка" для заметок, которые могут быть не только тестовыми файлами, а также например изображениями. Очень люблю тег "место" для объектов имеющих связь с географическим положением. Бывает читаешь статью с названием "Коворкинги в ЮАР" - сейчас не надо, а потом может пригодиться - создаю тег "ЮАР" в теге "место" и добавляю ссылку с этим тегом.
Почему нельзя чтобы тегирование происходило автоматически?
Потому что это невозможно. Названия тегов и их структура является следствием субъективного набор знаний, интересов, приоритетов, итд. Я не страюсь предугадать, что человека например, значит слово "видео". Может он видеомонтажер и для него это слово значит совсем другое, чем для обычного человека.
В Tags4info автоматически происходит определение типа объекта - потому что это возможно. И типы можно легко кастомизировать: удалять ненужные и добалять свои.
У меня документы разложены по папкам. Почему я не могу их сразу импортировать?
Потому что структура тегов будет отличаться от структуры папок. Иначе какой в них смысл. Я считаю что этой программой нужно начинать пользоваться постепенно. Лучше всего сначала использовать ее для новых данных. И постепенно построить свою структуру тегов. По своему опыту могу сказать что иерархические теги требуют некоторой перестройки сознания. Зато потом открывается сила и красота иерархических тегов.
Где мои файлы?
При добавлении файла в программу на том же диске где находится файл создается (если еще не существует) структура папок:
D:\Tags4info\Default\Files\1
На системном диске - C:\Users\User\Tags4info...
Файл перемещается в папку "1". Файл не переименовывается чтобы в "аварийном" случае его было проще найти. Если возникает конфликт имен создается папка "2" ("3", итд...) и файл перемещается туда. Также следующая папка создается если файлов в папке больше 300 - непринципиальное ограничение, опять же для удобства поиска в "аварийном" случае.
Как делать бекап в облако?
У меня бекап организован следующим образом. Команда robocopy копирует изменения из папки D:\Tags4info\Default\ в папку дропбокса. При этом копируются как база данных, так и файлы лежащие на этом диске. На нем я храню самые важные и не слишком тяжелые файлы. На другом диске лежат менее важные и более тяжелые файлы которые в облако не влезут. Потеря их восполнима особенно если учесть что имя файла в любом случае сохраняется. Полный бекап я тоже делаю - на внешний HDD и существенно реже.
База данных
Для того чтобы иметь возможность делать бэкапы в облако несколько раз в день, я остановился на следующей реализации базы данных. На том же диске откуда запускается программа создается структура папок:
D:\Tags4info\Default\Model\Tags
D:\Tags4info\Default\Model\Items
Если диск системный то C:\Users\User\Tags4info...
В папке Tags находятся json файлы каждый из которых описывает один тег, а в папке Items каждый json файл описывает один объект. Формат обоих файлов интуитивно понятный. При запуске Tags4info файлы считываются и все манипуляции с данными происходит в памяти. При появлении изменений они сразу же записываются на диск. Формат файлов таков, что большинство изменений (добавление, удаление, переименование) изменяют лишь один json файл - что эффективно для создания дифференциального бекапа. При этом программа требует немного памяти. Более 4000 объектов - 30Мб оперативной памяти.
Tags4info написана на языке Java, GUI фреймворк SWT - тот же что и средa разработки Eclipse. Могу сказать что не жалею о выборе технологий. Все работает адекватно - не хуже большинства нейтивных оконных приложений. Из плюсов легкая реализация версий для трех основных десктопных платформ.
В программе не хватает очень большого числа функций. Например она плохо подходит для хранения фотографий: только один режим превью изображений. Заметки я храню в обычных текстовых файлах, что конечно тоже не слишком удобно. Вообще список будущих улучшений очень длинный.