Собираем
информацию
по крупицам
Проекты / Код

Qt

MyTetra - программа накопления осмысленной информации
12-11-2010
22:21:06

Официальная страница / Official page

 

(Rus / Eng)

 

Программа MyTetra — это несложный кроссплатформенный менеджер накопления информации. Программа предназначена для хранения статей и заметок. Все записи организуются в древовидную структуру (обычно по «основному» признаку), а так же снабжаются ключевыми словами-тегами. Основная задача MyTetra — предоставить естественный, интуитивно-понятный интерфейс для написания заметок, обеспечить возможность быстрой навигации по дереву и удобный поиск.

 

Программа написана на языке C++ по принципу Qt-only, и не требует для своей работы никаких других сторонних библиотек.

 

Поддерживаемые системы: Linux, Windows, Mac Os XFreeBSD, MeeGo
Лицензия: GPL v.3
Последняя актуальная версия: 1.30 (11.07.2011)

 

 

 

Онлайн-клиенты

 

В настоящий момент существует два web-клиента, предоставляющие доступ к данным MyTetra. Для их использования необходимо, чтобы база знаний хранилась на публичных сервисах, таких как GitHub.com, BitBucket.org, etc.

 

Клиенты:

 

  • MyTetra Web Client - клиент для онлайн доступа к данным. Имеет веб-интерфейс, похожий на Qt-интерфейс MyTetra. Работает с 30.09.2012.
  • MyTetra Share - сервис для размещения (публикации) базы записей MyTetra в сети Интернет. Работает с 22.04.2013.

 

 

Скриншот

 

MyTetra screenshot 1

 

 

Скачать

 

v.1.30

 

MyTetra v.1.30 для Linux i386-i686 (7,5 Мб)  - версия со всеми библиотеками, работает без инсталляции

 

MyTetra v.1.30 для Windows (7,9 Мб)

 

MyTetra v.1.30 для FreeBSD 8.2 (1,5 Мб) - для работы установить Qt 4.7.3 через систему портов

 

MyTetra v.1.30.1 для Mac Os X 10.6.8 x86-64 (10,7 Мб)

 

MyTetra v.1.30.1 для MeeGo (5,3 Mb)

 

MyTetra v 1.30.1 SlackBuild для Linux SlackWare 13.37 (2 Кб)

 

Исходники MyTetra v.1.30.1 (411 Кб) - смотрите ниже раздел Разработка, чтобы получить актуальные исходники

 

 

v.1.28


MyTetra v.1.28 для Linux (7,3 Мб) - версия со всеми библиотеками, работает без инсталляции

 

MyTetra v.1.28 для Windows (7,0 Мб)

 

MyTetra v.1.28.3 для MeeGo (4,3 Mb)

 

MyTetra v.1.28 для Mac Os X Snow Leopard 10.6.6 x86-64 (15,6 Mb)

 

Исходники MyTetra v.1.28 (332 Кб)

 

 

v.1.26

 

MyTetra v.1.26 для Linux ( 6,5 Мб ) - версия со всеми библиотеками, работает без инсталляции

 

MyTetra v.1.26 для Windows ( 6,9 Мб )

 

Исходники MyTetra v.1.26 ( 140 Кб )

 

 

 

Разработка

 

Исходники MyTetra доступны на GitHub. Страница проекта:

 

https://github.com/xintrea/mytetra_dev

 

Для получения последних актуальных исходников создайте директорию и выполните в ней команду:

 

git clone https://github.com/xintrea/mytetra_dev.git

 

После скачивания исходников, не забудьте переключиться на нужную ветку:

 

git checkout master

или

git checkout experimental

 

У нас используется две ветки: master и experimental.

 

master - стабильная ветка с последними стабильными исходниками:

 

https://github.com/xintrea/mytetra_dev/tree/master

 

experimental - ветка для разработки:

 

https://github.com/xintrea/mytetra_dev/tree/experimental

 

 

 

Документация

 

Краткое руководство пользователя MyTetra (рус.) (pdf, 125 Кб)

 

Настройка синхронизации через интернет

 

Формат хранения данных

 

 

 

Обсудить

 

Ветка обсуждения на форуме сайта WebHamster.ru: http://webhamster.ru/punbb/viewforum.php?id=3

 

 

 

Для кого предназначена программа MyTetra


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

 

Тот, у кого возникало желание разгрузить память от редко используемой информации, может сделать программу MyTetra своим постоянным спутником.

Бывает так, что поиск нужной информации через интернет-поисковики сложен, и нужные вещи вы находите через пару часов интенсивного поиска. Если вы чувствуете, что второй раз найти эту информацию в интернете будет так же сложно, запишите ее в MyTetra.

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

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

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

 

 

 

Главные особенности программы

  • Всегда запоминается геометрия окна
  • При запуске открывается последняя запись, с которой ранее шла работа
  • Окно прячется в системный лоток
  • Клик на кнопку закрытия не закрывает программу, а сворачивает окно. Для выхода надо явно выбрать пункт меню «Выход» или нажать Ctrl+Q
  • Ветки дерева навигации можно свободно сортировать (перемещать вверх-вниз) в пределах ведущей ветки
  • Для веток доступны операции удаления, копирования, вставки
  • Записи, прикрепленные к ветке, можно свободно сортировать (перемещать вверх-вниз) в пределах списка
  • Для выбранных записей доступны операции удаления, копирования, вставки
  • Записям можно задавать текстовые метки (теги) для быстрого поиска
  • Выбранная запись всегда доступна для редактирования без дополнительных действий (планируется добавить режим защиты от изменений для важных записей)
  • Программа сама сохраняет текст заметки при переключении на другую запись или ветку, при выходе из программы
  • Программа имеет настраиваемую директорию-корзину, куда автоматически складывает предыдущие версии всех записей
  • Для добавления записей используется WYSIWYG редактор
  • В редакторе предусмотрен режим отображения символов разметки текста

 

Подробности реализации


Дерево навигации хранится в одном XML-файле с несложным форматом, кодировка UTF-8.

Записи хранятся в файлах HTML-формата в кодировке UTF-8. Для редактирования используется специально разработанный для MyTetra интегрируемый визуальный редактор WyEdit. Данный редактор в дальнейшем планируется выделить в отдельный проект. Каждая запись хранится в отдельной директории, в которой располагается основной HTML-файл и файлы картинок.

Программа распространяется с исходными кодами под свободной лицензией GPL v.3 и имеет открытый формат хранения данных. При разработке используются только фреймверк Qt и стандартные C++ библиотеки.

 

 

 

Торжественное обещание разработчиков


Разработчики торжественно клянутся, что каждая новая версия программы MyTetra будет совместима с предыдущим форматом хранения данных, либо иметь средства для перекодирования в новый формат без потерь информации.

 

 

 

История изменений


1.25 от 13.11.2010

 

Первая публичная версия

 

1.26 от 15.11.2010

  • Исправлено подключение заголовочных файлов Qt-фреймверка
  • Сделано более точное восстановление геометрии окна
  • Добавлена возможность запуска в системах, в которых отсутствует системный трей

1.27 (beta) от 22.02.2011

 

Пробная версия для проверки возможности запуска MyTetra в операционной системе MeeGo.

 

1.28 от 12.03.2011

  • В globalParameters теперь хранятся ссылки на основные объекты главного окна. Это сделано для того, чтобы не использовать поиск объектов по имени, так как при начальной инициализации MainWindow до выхода из конструктора MainWindow невозможно найти подчиненные объекты MainWindow
  • Метки сделаны кликабельными, при клике на метку происходит поиск
  • При выделении картинки и клике на конопку управления картинками появляется окно настройки размеров картинки
  • Теперь при клике на кнопку просмотра HTML-исходника есть возможность его отредактировать
  • Появилась возможность выделять часть текста для форматирования в код. Ранее для того, чтобы отформатировать в код нужно было выделять полностью параграф. Теперь можно выделить, например, одно слово, и при нажатии на клавишу "{}" начертанию слова будет применено начертание кода
  • Появилась настройка цвета кода
  • Ресурсы (картинки, перевод) из внешних файлов перенесены вовнутрь бинарника и доступ к ним идет через механизм Qt-ресурсов
  • Сделана более правильная очистка форматирования при нажатии клавиши сброса форматирования к стандартному
  • Сделан вызов редактирования свойств картинки по правому клику мыши
  • Исправлен механизм запоминания размеров области поиска по базе
  • Добавлена возможность старта программы из любой директории, то есть, теперь не обязательно давать команду cd <директория> в стартовом скрипте
  • Сделано создание начальных файлов окружения в текущей директории бинарника и в директории пользователя
  • Сделаны диалоги, которые вызываются при первоначальном старте программы, и которые выясняют, где нужно создать начальные файлы программы
  • Добавлена кнопка редактирования цвета текста. Скрыта, так как плохо укладывается в концепцию программы
  • Добавлена кнопка распахивания редактора. Скрыта, так как плохо укладывается в концепцию программы
  • В *.pro файл добавлена секция инсталляции, при команде make install бинарник mytetra копируется в /usr/local/bin
  • Исправление замеченных багов, небольшая реорганизация кода

 

1.30 от 11.07.2011

 

Добавлено: шифрование, синхронизация, навигация по истории.

 

 

 

1.30.1 от 17.07.2011

 

Доработано шифрование на 64-х битных платформах.

 

 

План развития

 

1. Подготовить MyTetra для возможности синхронизации через Internet путем использования публичных бесплатных GIT хранилищ.

  • Сделать криптографическую библиотеку с простым интерфейсом для шифрования байтовых массивов и файлов. Шифрование по алгоритму RC5;
  • Опубликовать криптографическую библиотеку для общественного аудита;
  • Внедрить криптографическую библиотеку в MyTetra, сделать шифрование приватных записей; 
  • Разделить файл конфигурации conf.ini на два файла: conf.ini и database.ini. Убрать из conf.ini счетчики, влияющие на создание новых записей, оставить только уникальные для данного компьютера/пользователя данные (геометрия окна, настройки MyTetra);
  • Изменить механизм создания новых записей, добавив к именам каталогов случайные данные. Это необходимо в дальнейшем для правильной синхронизации;
  • Изменить механизм генерирования идентификатора новой ветки и новой записи, видимо, добавить случайные данные. Это необходимо в дальнейшем для правильной синхронизации;

Сделано.

 

2. Сделать синхронизацию MyTetra через GIT.

  • Добавить настройку Shell/cmd команд в MyTetra;
  • Добавить настройку запуска нужных команд при старте и при завершении MyTetra;
  • Сделать промежуточную версию MyTetra и проверить на страждующих, как работает синхронизация; 
  • Если синхронизация через GIT работает правильно, сделать кнопку Syncro, при нажатии на которую MyTetra должна засинхронизироваться и "перезапуститься" с новыми данными.

Сделано.

 

 

3. Провести работу по улучшению существующих инструментов и расширить функционал.

 

  • Перевести разработку на GitHub.com;
  • Добавить возможность хранения файлов и ссылок на файлы внутри записи;
  • Сделать поиск по названиям веток дерева;
  • При поиске по базе, в случае если поисковая фраза найдена внутри текста записи, сделать прокрутку до данного места и выделение найденного текста;
  • Заменить пункты контекстного меню в дереве "Вырезать" на "Вырезать ветку", "Копировать" на "Копировать ветку","Вставить" на "Вставить ветку", иначе пользователи не догадываются, что над ветками возможно проведение подобных действий.
  • Исправить глюк: если удалить рисунок в записи, а потом сразу попробовать удалить/скопировать/перенести эту запись, то в свойствах записи остается информация о наличие рисунка и при выполнении действия MyTetra пытается учесть этот удаленный рисунок и получается сегфолт;
  • В main.cpp добавить подключение sys/types.h и QTranslator, чтобы шла сборка на Free BSD;
  • В mytetra.pro добавить опцию LIBS += -lcompat чтобы шла линковка на Free BSD;
  • Попробовать реализовать следующий функционал: "Неплохо бы сделать, чтобы поведение форматирования (полужирный, курсив и т.п.) было схоже с поведением в текстовых процессорах в том плане, чтобы можно было, к примеру, нажать ctrl + B и начать писать текст уже полужирным шрифтом, а не сперва писать текст, а лишь потом назначать форматирование";
  • Опционально: cделать просмотр истории измененных записей в каталоге Trash, сделать функционал по восстановлению данных записей;
  • Исправить баг. MyTetra ставится по умолчанию в /usr/local/bin, игнорируя опцию qmake PREFIX=/usr;
  • Исправить кодировку в консоли вывода результата команды синхронизации. Там, где Git русифицирован, наблюдаются кракозябры;
  • В редакторе сделать наконец возможность ввода и редактирования URL-ов;
  • Разобраться, как сделать строку синхронизации Git, в которой будет опция, автоматически разрешающая конфликты слияний в пользу более последних изменений. Конфликт может возникнуть при нерегулярных синхронизациях, в случае если и зменен в двух местах один и тот же параметр записи, например название;
  • Сделать кнопку/команду "Закрыть зашифрованные ветки" чтобы ветки закрылись и далее снова потребовался ввод пароля для доступа к данным;
  • Сделать настройку "Закрыть зашифрованные ветки спустя N минут бездействия";
  • Сделать запоминание текста текущей записи при сворачивании в трей;
  • Сделать возможность помечать записи "Только на чтение" чтобы случайно ничего с ними сделать было нельзя;
  • Опционально: сделать облако меток;
  • Исправить баг http://webhamster.ru/punbb/viewtopic.php?pid=313#p313
  • Некоторые пользователи сообщают, что при инсталляции MyTetra в директории пользователя создается директория с именем ?????. Разобраться почему, исправить. Подробне тут http://webhamster.ru/punbb/viewtopic.php?pid=389#p389;
  • Опционально: попробовать обрабатывать буфер обмена на наличие текста и нескольких картинок, и сделать возможность одновременной вставки и текста и картинок;
  • Сделать более агрессивную очистку форматирования при нажатии кнопки [C]. На текущий момент не очищается формат межстрочных отступов. Получить нестандартные отступы можно путем копирования какого-нибудь текста из веб-браузера.

 

 


К списку проектов


Еще в этом разделе:
   

Интересное на сайте


Классическая анимация » Прыгающая подушка

Оборудование: Pentium-IV, Wacom Graphire3 CTE-630 Среда: Flash 8 Год: 2005   Первая и, видимо, последняя попытка нарисовать мини-мультфильм по т...


Демо на языке C » KSI Demo

Требования: Windows 95/98/XP или Linux Год: 2004   Пробная демка под Linux, сделанная с помощью мультиплатформенной библиотеки SDL. За основу вз...


Mplayer / Mencoder » Как с помощью Mencoder заменить в фильме звуковую дорожку

Рецепт очень простой.   Чтобы заменить в фильме звуковую дорожку и вывести результат в файл out.avi, делаем так:   $ mencoder исходный_файл....

RSS подписка

Подпишитесь на новости сайта по RSS


О, смотри-ка какое хорошее место. Дайте два!

Внимание!

На этом сайте разрабатывается программа MyTetra и её родственные проекты.

Доступны к просмотру следующие базы знаний:

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик