MyTetra
MyTetra | |
---|---|
Тип | Персональный информационный менеджер |
Написана на | C++ / Qt |
Операционная система | Cross-platform |
Первый выпуск | 2011 |
Последняя версия | 1.44.31 (14 сентября 2018 года) |
Тестовая версия | 1.44.137 (13 октября 2020 года) |
Лицензия | GPL |
MyTetra — кросс-платформенный PIM-менеджер с открытым исходным кодом на основе фреймворка Qt. Не требует наличия иных библиотек[1].
Разработка программы началась в первой половине 2000-х годов, публичный релиз состоялся в 2011 году[2]. В 2016 году, начиная с версии 1.42.x, MyTetra была переведена на Qt 5[3]. Программа имеет релизы для таких платформ, как Windows, Linux, FreeBsd, OsX. Существовали сборки для мобильной платформы MeeGo[1][4]. Текущее состояние кода предоставляет экспериментальную возможность сборки под мобильную платформу Android[5].
Программа MyTetra разрабатывается с использованием принципа полной открытости технологий, свободного чтения и перемещения данных. Данные принципы обеспечивают устойчивое развитие программы, возможность сохранения читаемости хранимых данных на протяжении десятилетий[K 1]; позволяют организовать «бегство с формата» в случае смены персонального менеджера информации, без потери уже накопленной базы данных[6].
Интерфейс
Хранение заметок организовано в виде древовидной структуры, каждый раздел является «веткой» дерева, а сами записи являются «листьями» (то есть, конечными элементами)[1] по аналогии с структурой каталогов и файлов. Графический интерфейс программы предоставляет три основных рабочих области и одну дополнительную[7]:
- область навигации по элементам дерева;
- область списка записей выбранного элемента;
- область текстового редактора;
- дополнительно, в нижней части интерфейса, панель поиска по базе данных.
Разделение интерфейса на область дерева и область списка записей позволяет организовать работу на небольших разрешениях экранов: разделы в дереве, обычно, имеют короткие названия, благодаря чему дерево разделов имеет небольшую ширину, при свободном «росте» в высоту за счет прокрутки. Записи же имеют достаточно длинные названия, и им предоставлена область списка записей, шириной, сравнимой с областью редактирования самого текста записи[8]. Для больших разрешений предусмотрен функционал открепляемых окон[9], позволяющий держать на виду наиболее необходимые записи.
Формат хранения
В MyTetra принят «естественный» формат хранения для каждого элемента данных: дерево разделов хранится в виде XML-файла, форматированный текст каждой записи хранится в виде HTML-файла, картинки хранятся в виде PNG-файлов (формат PNG выбран для сохранения качества), настройки программы хранятся в виде INI-файлов[1][6]. Каждой записи выделяется отдельный каталог, где хранятся все относящиеся к записи файлы: файл с текстом записи, файлы картинок, прикрепляемые к записи файлы (attaches). Для гарантии переносимости между различными файловыми системами, имена всех каталогов и файлов содержат только символы латинского алфавита [a-z] и цифры.
Структура базы данных целенаправленно распределена между большим количеством небольших файлов, содержащих, преимущественно, текстовые данные. Это позволяет организовать эффективную синхронизацию файлового каталога с базой данных между несколькими установками MyTetra на разных компьютерах, с использованием любых сторонних систем контроля версий, таких как SVN, Git, Mercurial, или сервисов облачных дисков[1]. Встроенного механизма синхронизации в MyTetra не реализовано, но сделаны инструменты вызова внешних программ синхронизации.
Встроенный редактор
Для редактирования записей в MyTetra используется WYSIWYG-редактор WyEdit. В качестве основы редактора используется стандартный виджет QTextEdit[10], поддерживающий форматирование и сохранение HTML-документов. HTML-код, генерируемый данным виджетом, соответствует внутренним стандартам фреймверка Qt, и не полностью совместим со стандартом HTML 4[1].
Встроенный редактор MyTetra позволяет форматировать текст: изменение начертания, создание списков, работа с таблицами, вставка картинок, изменение цвета букв и фона, выделение вставок кода, работа с Интернет-ссылками[7].
Шифрование
В программе предусмотрена возможность шифрации записей. Для шифрования записей пользователь должен выделить отдельную ветку, в которой будут находиться зашифрованные записи и подветки. В MyTetra задается только один пароль, которым шифруются зашифрованные ветки, то есть возможности шифровать различные ветки различными паролями не предусмотрено.
Шифрация производится с помощью кастомной реализации алгоритма RC5 в виде библиотеки RC5Simple[11], которая включается в поставку кода MyTetra. Шифрация происходит по алгоритму RC5-32/12/16 c CBC-режимом сцепления блоков шифротекста. Для защиты ключа шифрования, формируемого из пароля, применяется перемешивание битов по алгоритму Pbkdf2[1].
Формат хранения зашифрованных данных в MyTetra поддерживает версионирование[12], в следствие чего возможен мотивированный переход на любой другой алгоритм шифрования данных.
Степень защиты зашифрованных данных в MyTetra целиком и полностью зависит от сложности пароля, используемого пользователем.
Управление через консоль
Предусмотрено управление запущенным экземпляром MyTetra посредством консольной команды[13]. Для работы этой функции необходим запуск бинарника MyTetra в том же каталоге, в котором производился начальный запуск программы с GUI-интерфейсом. С помощью консольных команд можно производить следующие действия:
- активировать и разворачивать окно MyTetra (используется для возможности кроссплатформенной настройки открытия окна программы по горячей клавише)
- скрывать окно MyTetra в системный трей;
- отправлять команду завершения MyTetra (используется для корректного завершения MyTetra при выходе из системы в некоторых DE);
- перечитывать дерево данных;
- открывать в GUI-интерфейсе запись с заданным идентификатором;
- открывать в GUI-интерфейсе диалог создания новой записи;
- переключаться на ветку с заданным идентификатором.
Получить перечень доступных команд можно с помощью опции «--help». Данные команды используются, в частности, при создании альтернативных приложений, редактирующих базу данных MyTetra параллельно с запущенным экземпляром MyTetra[14].
Награды
- Elena Opris. PIM-менеджеру MyTetra присвоена награда «Softpedia 100 % Free» сайта Softpedia[15].
Примечания
Комментарии
- ↑ Исходный код MyTetra помещен в Арктический мировой архив
Сноски
- ↑ 1 2 3 4 5 6 7 Антон Платов. MyTetra: персональный менеджер информации // журнал Компьютерная газета Хард Софт. — 2011. — Сентябрь (№ 10/223). — ISSN 1819-6500.
- ↑ Сергей Степанов. MyTetra - программа накопления осмысленной информации. История изменений . Webhamster.Ru.
- ↑ Сергей Степанов. MyTetra v.1.42 - подробный обзор . Webhamster.Ru (2016-22-12).
- ↑ MyTetra 1.28. Персональный менеджер накопления информации MyTetra обновился до версии 1.28 . PCNEWS.ru (сентябрь 2011).
- ↑ Обзор PIM-менеджера MyTetra v.1.42 - Часть 3 / MyTetra и платформа Android на YouTube, начиная с 41:42
- ↑ 1 2 Webhamster. Самая нужная программа на свете. Поиск идеального помощника . Habr.com (5 декабря 2016).
- ↑ 1 2 Alexander Tolstoy. Personal Information Manager MyTetra (англ.) // журнал Linux Format. — 2018. — Сентябрь (no. 241). — ISSN 1470-4234.
- ↑ Обзор PIM-менеджера MyTetra v.1.42 - Часть 1 / Обзор интерфейса на YouTube, начиная с 2:46
- ↑ Сергей Степанов. Диспетчер открепляемых окон заработал в MyTetra . Webhamster.Ru.
- ↑ QTextEdit Class | Qt Widgets 5.15.1 . doc.qt.io. Дата обращения: 20 октября 2020.
- ↑ Криптографическая библиотека RC5Simple. Репозитарий на GitHub (англ.).
- ↑ Формат данных библиотеки RC5Simple .
- ↑ Сергей Степанов. Опции командной строки в MyTetra . Webhamster.Ru (28 октября 2018).
- ↑ Обзор PIM-менеджера MyTetra v.1.42 - Часть 3 / Управление запущенной MyTetra через командную строку на YouTube, начиная с 37:07
- ↑ MyTetra была включена в модерируемый каталог Softpedia и получила награду "Softpedia 100% Free" . Любопытный хомячок. Дата обращения: 13 октября 2019.
Литература
- Антон Платов. MyTetra: персональный менеджер информации // Компьютерная газета Хард Софт. — 2011. — Сентябрь (№ 10). — С. 32—33. — ISSN 1819-6500.
- Alexander Tolstoy. Personal Information Manager MyTetra (англ.) // Linux Format : журнал. — 2018. — September (no. 241). — ISSN 1470-4234.
Ссылки
- Официальная страница проекта MyTetra на сайте автора (ru, en);
- Репозитарий MyTetra на GitHub;
- Статья «В поисках мифического Memex» Часть 1, Часть 2.
- Видео MyTetra краткий обзор на YouTube
- Видео Обзор PIM-менеджера MyTetra v.1.42 (часть 1) + (часть 2) + (часть 3) на YouTube
Связанные разработки
- MyTetra Share — веб-сервис, позволяющий просматривать записи программы MyTetra через интернет в виде HTML-страничек (ru, en);
- MyTetra Web Client — веб-сервис, открывающий базу данных MyTetra в веб-браузере в специальном GUI-интерфейсе, напоминающем десктопный интерфейс MyTetra (ru, en);
- MyTetroid — клиент для просмотра базы MyTetra под ОС Android;
- MyTetra Integrator (ранее Turbo Tetra) — набор скриптов AutoHotkey, предназначенных для упрощения сохранения в MyTetra просматриваемых страниц веб-браузера (только для Windows).