Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль
Добавить софт
Мой софт

В поисках мифического Memex. Часть 2

Автор: Игорь Савчук
Опубликовано: 14.09.2011
Источник: SoftKey.info

Продолжим рассмотрение нашего тегового органайзера Personal Knowbase, который мы начали внимательно исследовать вчера в первой части этой статьи.

Обычно "плохие органайзеры" сразу можно легко определить по одному критерию: они не уважают святое право - свободы выбора - своих пользователей. Это проявляется, как правило, в том, что программа имеет ОГРОМНОЕ количество форматов для импорта в родной формат органайзера и не имеет вообще или имеет крайне урезанную возможность - выгрузить данные из этой базы, чтобы мигрировать в некий другой PIM, тем самым предполагая намертво и до последнего вздоха держать пользователя в своих крепких и от того не всегда приятных объятиях. Безусловно, это слабость, и, если эта слабость имеет место быть, это должно настораживать, потому что, как правило, для этого есть все основания (в самой "поделке-органайзере"). Как обстоят дела с этим в Personal Knowbase?

Сначала разберемся с импортом. Тут все выглядит очень пристойно.

Поддерживаются: текстовый формат, формат документов в RTF, нераспространенные у нас Card Files (*.crd), *.tab- и *.csv-файлы, .doc-файлы (при установленном соответствующем плагине), а также реально очень интересная фишка под названием "Менеджер произвольного формата", который позволяет настроить импорт текстового файла с произвольным форматом, позволяя худо-бедно разметить его для загрузки (что позволило мне корректно загрузить свои .XML- и .ini-файлы, правда, потратив на это 3 часа). Также обратите внимание на копку Options в главном диалоге мастера Import, которая позволяет дополнительно более точно настроить импорт, если автоматический вариант вас по какой-либо причине не устроит.

Настройка формата импортируемого в базу файла

Теперь посмотрим на противоположный мастер - Export, который должен обеспечить нам пути отхода, если вдруг после, например, года работы на этом органайзере вы обнаружите, что он не очень-то и подходит вам (а такое, к сожалению, сплошь и рядом встречается со многими продуктами в наше время и даже с людьми, их создающими, - статистика разводов в последнее время красноречиво иллюстрирует этот факт). Хитро сощурив глаз, открываем меню Export и видим там поддержку следующего списка форматов: html, txt, crd, rtf, csv. Предварительное окно экспорта заботливо уточнит, что именно и в каком объеме вы хотите выгрузить, позволив вам выбрать из всех полей птичками то, что вы собираетесь унести отсюда с собой навсегда. Что ж, должен признать со всей откровенностью - паритет возможностей импорта и экспорта полностью соблюден, что лично у меня вызывает только симпатии.

И, как всегда, не лишним будет заранее провентилировать нештатные ситуации, когда с основной базой что-то случится (при этом не исключено, что от вашего системника вообще ничего не останется); варианты: раздел с базой будет случайно переформатирован вами после затяжной вечеринки или даже совсем неслучайно - злобным вирусом (вечеринки, соответственно, в этом варианте не будет, что несколько огорчает).

Открытая заметка на фоне главного окна программы Personal Knowbase

Для бэкапа базы нужно всего лишь скопировать в безопасное место файлы "*.kn*" из вашей рабочей папки программы (обычно там они находятся по умолчанию). А вот для добавления содержимого одной базы в другую (объединения двух баз в единую) нужно просто открыть первую базу (которая будет принимать новое содержимое), а затем через меню File->Import указать другой файл базы (выберите тип файла для отображения *.kno), из которого будут перекачиваться данные. В появившемся при открытии окне с выбором индексов нужно просто нажать "OК" для переноса всего содержимого (или выбрать только определенные ключи-теги для переноса только помеченных или отобранных записей).

Приятные дополнения

В заключение хотелось бы рассмотреть две примочки, которые были бы очень кстати, если вы решились на покупку этой, все всяких сомнений, очень интересной программы. Во-первых, это бесплатный вьювер (называемый PK Reader) к базе данных, созданной вами в основной программе. Теоретически теперь вы можете переслать любому человеку вашу базу, дав ему ссылку на бесплатный её вьювер, - и теперь ему доступны абсолютно все возможности программы (в том числе поиск, экспорт и печать данных), кроме возможностей по изменению и любому редактированию базы. Кроме того, этот вьювер изначально сделан в виде портабельного приложения, что позволяет носить свою базу, например, на флешке или разместить её на общем сетевом диске вашего предприятия.

Вторая приятная особенность - это наличие плагинной архитектуры и, как пример её реализации, с сайта производителя можно скачать бесплатный плагин для MS Word, который позволяет прозрачно импортировать содержимое ваших doc-файлов (при установке плагина программа автоматически добавит новый тип доступных файлов в меню File -> Import File Dialog).

Универсальная упаковка для информации - MyTetra

В качестве противовеса столь сильно центрированной на тегах программе хочется для контраста также рассмотреть в этом обзоре и программу-органайзер MyTetra, которая является также очень интересным экземпляром для исследований. Почему именно MyTetra?

Дело в том, что она представляет собой очень удачное сочетание иерархического, линейного и тегового принципов организации информации, что в сумме дает чрезвычайные возможности по упорядочиванию вашей информации, естественно, при условии "прямых рук" и наличии более-менее развитой фантазии и свойств абстрактного мышления.

Главное окно программы MyTetra

Давайте опять же традиционно перечислим её основные возможности.

  • В программе имеется три измерения учета записей: иерархически-древовидная, линейная в виде последовательных записей, а также теговая системы. Такая очень богатая навигационная свобода в представлении и упорядочивании своей информации - один из самых сильных плюсов именно этого органайзера.
  • Текстовые метки (теги) выполнены кликабельными, то есть при клике по ним происходит автоматический поиск записей с аналогичным тегом.
  • Развитая система полнотекстового и тегового поиска, а также поиска по отдельным категориям.
  • Полная поддержка русского языка, как на уровне интерфейса, так и при поиске.
  • Низкая ресурсоёмкость. Несмотря на то что GUI (визуальный интерфейс) органайзера построен на базе внешней графической библиотеки Qt4, программа работает шустро, потребление ресурсов достаточно умеренное.
  • Кросс-платформенность: программа без проблем работает с Linux, Windows, Mac OS X, MeeGo, FreeBSD. При этом программа написана не на каком-то Java, который будет, как обычно, тормозить, прогибая весь компьютер, и который уж точно не пригоден для резидентной программы со своей монстрообразной виртуальной машиной, а на быстром C++.
  • Имеется возможность синхронизации данных через Интернет: причем, что особенно интересно, для синхронизации данных можно использовать любые системы облачного хранения данных или системы контроля версий, например бесплатный хостинг narod.ru, Git или CVS. Главное, чтобы эти системы поддерживали атомарность. Отмечу, что это очень интересный ход, так как он позволяет наращивать за счёт внешних репозиториев/хостинг-решений сколь угодно сложные и экзотические модели синхронизации и совместной работы.
  • Собственный развитый визуальный редактор (WYSIWYG), специально созданный для этого проекта, - WyEdit. Дает все стандартные функции редактирования, если кому-то и этого мало - есть возможность редактирования html-исходника заметки.
  • Возможность мгновенного внешнего экспорта любой заметки в PDF-формат с полным сохранением форматирования и текущей разметки. Также, что вполне естественно, есть возможность распечатать любую заметку.
  • Доступна быстрая навигация по истории: с помощью специальных кнопок можно довольно удобно перемещаться назад и вперед по истории просматриваемых записей.
  • Развитое контекстное меню, в котором всегда под рукой набор всех необходимых штатных операций над записями (вырезать, вставить, копировать, различные перемещения в ветках и т. д.).
  • Несмотря на наличие всех основных базовых возможностей для такого рода программ, MyTetra, конечно, - это проект пока ещё в стадии своего начального развития: с одной стороны, здесь не стоит рассчитывать сразу на что-то уж совсем навороченное, но с другой - проект активно развивается и регулярно обрастает новыми полезностями.
  • Ну и наконец, я думаю для многих, как и для меня, это возможно особенно важно: программа полностью бесплатная и с открытым исходным кодом, распространяется по лицензии GNU GPL v.3. Также доступна документация к проекту.

База на html-файлах?!

Отдельно хочется подчеркнуть, что все записи в органайзере физически хранятся в форме отдельных html-файлов в кодировке UTF-8. Каждая запись хранится в отдельной директории, в которой располагаются основной html-файл и файлы внедрённых картинок. Само дерево навигации, через которое программа собирает все эти разрозненные записи воедино, хранятся в одном-единственном xml-файле с несложным форматом, кодировка которого, кстати, также выполнена в UTF-8. Такой отчасти простоватый на первый взгляд подход имеет множество плюсов: во-первых, это простота бэкапа - для этого просто скопируйте всю рабочую папку программы в безопасное место (например, на флешку). Во-вторых, такой открытый и атомарный дизайн хранилища даёт просто невероятные возможности для синхронизации (которые частично были описаны выше) - программа умышленно спроектирована так, что дает возможность использовать известные сторонние, промышленного уровня специализированные решения для управления своими файлами-заметками вместо очередной ущербной попытки сварганить что-то своё собственное на базе закрытого наглухо проприетарного формата (как это сделано в рассмотренной ранее Perconal Knowbase). Открывающийся здесь простор для коллективной работы и поддержания любого уровня версионности своей базы, думаю, описывать не надо. И в-третьих, варианты экспорта и бегства в другую программу: здесь вы вольны в случае чего самостоятельными силами выгрузить все открытые html-форматы в какой-то альтернативный продукт, что в любом случае очень даже не плохо (учитывая простоту и стандартность html-разметки) на какой-то совсем уж крайний случай.

Функциональное назначение разных частей интерфейса MyTetra

Интерфейс органайзера

Описав основные возможности и немного углубившись в формат базы, давайте теперь посмотрим графические свойства программы, которые достались нам на десерт. Итак:

  • программа автоматически запоминает последнюю геометрию окна;
  • при запуске любезно открывается последняя запись, с которой ранее шла работа;
  • главное окно программы сворачивается в трей (системный лоток);
  • клик на кнопку закрытия не закрывает программу, а сворачивает окно в трей. Для выхода надо выбрать пункт меню "Выход" или нажать Ctrl+Q. Такое устройство как бы сразу предполагает, что программа у вас постоянно открыта для удобства доступа, то есть это программа для повседневного использования;
  • "ветки" дерева навигации можно свободно сортировать (перемещать вверх-вниз), как в пределах ведущей "ветки", так и линейного списка;
  • для "веток" доступны операции удаления, копирования, вставки;
  • существуют груповые операции: для выбранных записей доступны операции удаления, копирования, вставки;
  • выбранная запись всегда доступна для редактирования без дополнительных действий;
  • программа сама (лишний раз не отвлекая пользователя) автоматически сохраняет текст заметки при переключении на другую запись или ветку, а также при выходе из программы;
  • программа имеет настраиваемую временную папку-корзину, куда автоматически складывает предыдущие версии всех записей (то есть в случае чего можно попытаться вручную найти и вернуться к старой версии заметки);
  • в редакторе предусмотрен режим отображения символов разметки текста.

И в заключение рассмотрения этой программы хотелось бы кратко коснуться её свойств по шифровке вверенных ей данных - всё-таки если ещё при локальном хранении необходимость этого не так остро чувствуется, то уже при использовании публичных сервисов хранения данных или репозиториев возможность надежно скрыть от посторонних глаз ваши данные стоит достаточно остро.

Пример главного окна программы на экзотической мобильной платформе MeeGo

Шифрование

Вот что пишет сам автор про свою методику шифрования:

"Все данные шифруются по алгоритму RC5-32/12/16 c CBC-режимом сцепления, ключ генерируется на основе пароля с солью, пропущенного через алгоритм PBKDF2 на 1000 раундов с длиной ключа 160 бит, после чего от результата берется MD5 сумма, чтобы получить ключ в 128 бит. Каждая запись шифруется с уникальным инициализирующим вектором". Переводя на русский язык, это значит, что взломать ваши шифрокоды вряд ли кому удастся, а если переводить этот меседж чуть более вольно, но более доступно для нетехнической публики, то вся суть сведётся к одной фразе: "Даже и не думай об этом".

Далее. Если с прочностью самого алгоритма более-менее всё ясно, то теперь хотелось бы немного поговорить о способах его применения. Следует сразу понять, что шифрование применяется к "веткам". Поэтому все записи, находящиеся в такой "зашифрованной ветке", также являются зашифрованными. Чтобы зашифровать саму "ветку", нужно после правого клика по выбранной "ветке" выбрать во всплывшем после этого контекстном меню пункт "Зашифровать ветку".

В настройках программы (Настройки->Шифрование) есть опция "Хранить пароль локально". Эта опция специально сделана для тех пользователей, которых пока не беспокоит своя локальная безопасность, то есть в пределах своего физического рабочего места скрывать им что-то просто не от кого. С учетом этих обстоятельств их вполне справедливо раздражает необходимость каждый раз заново вводить пароль - и на этот случай здесь предусмотрено поле, куда можно вбить его навечно. Но тут возникает вопрос: "А зачем вообще включать пароль в такой ситуации?" Ответ прост, и ключевое слово здесь - безопасность синхронизаций. Как только речь заходит о синхронизациях через Интернет с помощью публичных репозиториев и хостингов (а как показано выше, программа запросто позволяет использовать в качестве внешнего сервиса хоть narod.ru или github для этого), включение этой опции будет приводить к обмену с сервисом только зашифрованными данными, используя для шифровки/дешифровки тот самый пароль (точнее, хеш пароля), который ранее был предусмотрительно введен и сохранен локально.

Ещё один вариант, если же в настройках ранее не был сохранён пароль для шифрования, MyTetra сама вежливо запросит пароль, как только произойдет первое обращение к зашифрованной "ветке". В этом случае важно понимать специфику именно этой программы: этот пароль - один для всех "веток" (возможности задавать разные пароли для разных "веток" пока не предусмотрено).

Заканчивая наш обзор этих двух необычных и очень интересных органайзеров, Personal KnowBase и MyTetra, хочется напомнить, что совсем недавно в SoftKey я подробно рассматривал другой замечательный конструктор баз данных и органайзеров - Bento (часть 1, часть 2), который, безусловно, является самым лучшим и гибким выбором для подобных задач для всех обладателей Mac OS X.



Статистика
Всего программ 28602
Скачиваний сегодня 331
Скачиваний вчера 1560