LINUX.ORG.RU
ФорумTalks

OpenSource-проект MyTetra ищет в свои немногочисленные ряды разработчиков и тестеров

 , ,


1

6

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

Состояние проекта на сегодняшный день вот такое:

Завершен очередной этап подготовки нового релиза MyTetra

Следующий этап - дработка WYSIWYG редактора. Там целый ворох проблем, которые надо методично разгребать. Начиная от функционала редактора, и заканчивая структурой самого кода (недостаточное разбитие на классы и дурная декомпозиция, разные стили форматирования кода, пляшущие принципы именования методов и переменных и т.д).

Положительные моменты в том, что все изменения локализованы в одной подсистеме программы, код классов редактора расположен в отдельном подкаталоге проекта (\src\libraries\wyedit). Никакой высшей математики не предвидится (если не трогать работу с таблицами).

Отрицательные моменты в том, что придется обходить глюки и недоработки Qt, которые обычно решаются только весьма костыльным способом. Большой акцент делается на кроссплатформенность редактора, и у Qt в этом смысле не все гладко (есть глубинные проблемы и особенности под Windows, Linux, Android, о которых мало кто знает).

Вот. Если у кого есть желание помочь, пишите письма на e-mail: xintrea[сцобаккенулыбаккен]gmail.com. Обязательно опишите кратко ваш опыт и навыки.

UPD:

Как будет строиться работа? Вводную лекцию по структуре программы я могу организовать лично через скайп. Дальнейшее общение будет происходить преимущественно по протоколу ICQ и E-Mail + багтрекер GitHub. Предполагается, что разработчик достаточно самостоятелен, чтобы делать свои изменения. Я сейчас подготавливаю задачи, которые размещу в issues на GitHub. Задачи написаны на русском языке. Решать нужно будет только вот такие узконаправленные задачи. Требования к задаче могут меняться в процессе разработки или по результатам решения. Это не правило, но такое возможно. Например, если не предусмотрели всего при постановке задачи. В общем, обычный, но достаточно формализованный процесс разработки.

★★★★★

Последнее исправление: Xintrea (всего исправлений: 4)

Zim на Qt? Возможно, нужно.

OpenSource

Правильно говорить «Free Software».

WYSIWYG редактора

ЗОЧЕМ??? Родина им дала вики-разметку, пользуйся - не хочу, хочу жрать вузивуг и огребать «ворох проблем».

HeipaVai1o
()
Ответ на: комментарий от Stil

Ты не написал, что это за хрень.

Менеджер накопления информации с открытым исходным кодом. Добавил в текст топика.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от winlook38

Это что, убийца эверноута?! Почему я до сих пор не знал?

Потому что я очень редко его рекламирую и еще реже выпускаю релизы. Он просто работает, и мне этого достаточно.

Конкурентом Evernote проект MyTetra сможет стать только тогда, когда MyTetra заполучит собственный сервер, с которым можно соединяться прямо из программы и обретет свой протокол взаимодействия с сервером. Плюс заполучит Web-доступ. И все это бесплатно и секьюрно для пользователя. Пока что я дальше экспериментов с MyTetra Share и MyTetra Web Client никуда не продвинулся. Все эти Web-разработки предоставляют данные MyTetra только в режиме реад-онли (если данные хранятся на github/bitbucket/etc, и их можно считать в RAW формате прямо по http).

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от HeipaVai1o

WYSIWYG редактора

ЗОЧЕМ??? Родина им дала вики-разметку, пользуйся - не хочу, хочу жрать вузивуг и огребать «ворох проблем».

Не все хотят изучать вики-разметку. Скажем так, процентов 99 пользователей не хотят.

Можешь обратить свое внимание на проект Outwiker. У него как раз есть Wiki синтаксис. А ворох проблем у него совсем в другом, из-за неправильного изначального проектирования - весьма условная кроссплатформенность, сложность в инсталляции (ибо нужно доустанавливать всякие дополнительные пакеты типа пистона и каких-то текстовых анализаторов), зависимость от ограничений файловой системы на имена файлов и вложенность каталогов (ибо имена веток и записей - это имена каталогов). Под мобильные проприетарные системы Outwiker видимо не появится никогда. А сейчас без мобильной платформы - никуда. Ну разве что только если проект полностью переписать на другом языке/фреймверке.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)

гы, скришот напоминает regedit из шиндошца.

только туда встроили wordpad в качесте эдитора.

n_play
()
Ответ на: комментарий от n_play

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

Компоновка окна программы больше напоминает классические гуйные email-клиенты. Потому что только так удобно работать и с деревом и с записями внутри веток. (В регедит такой же концепт, только вместо записей параметры, поэтому он тебе и вспомнился).

Xintrea ★★★★★
() автор топика

А поддержка рисования на экране есть? Возможна? А то я что-то подсел на one note и теперь без рисования на экране никуда… а так хочется что-то кроссплатформенное.

vitruss ★★★★★
()

Загнутый угол страницы сайта выглядит омерзительно. Непременно как нибудь уберите.

trueshell ★★★★★
()
Ответ на: комментарий от Xintrea

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

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

aidaho ★★★★★
()
Ответ на: комментарий от Sociopsih

А что вы думаете о CherryTree?

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

Например, мне важна была кроссплатформенность - я должен был иметь возможность одинаково удобно пользоваться прогой как в Linux, так и в Windows. Проблем было много:

1. Я измучился с установкой. Под Linux установить программу нужной версии - это тот еще квест.

2. CherryTree не засовывалось в систрей толи на Linux, то ли на Windows, приходилось работать с простым окном, которое легко было случайно закрыть.

3. В добавок к предыдущему пункту, небыло такой простой фичи, которой лишился в своем развитии и WinAmp - сворачивание в систрей по нажатию кнопки [x]. То есть опять же, постоянно существовал риск закрытия приложения.

4. В CherryTree, так же как и во многих PIM-менеджерах, сделана одна и та же ошибка интерфейса. У нас в европейских языках письмо горизонтальное. Название записи - это, обычно, одно предложение на 5-7 слов. Невозможно адекватно отобразить название ветки (записи) в дереве, ограниченном по горизонтали. Поэтому компоновка «как в e-mail клиентах», когда есть дерево с короткими названиями разделов (папками), и длинными названиями записей (писем) в отдельной широкой по горизонтали области - самая правильная. Но почему-то и современные менеджеры, например Outwiker, делают все ту же ошибку: у них есть дерево, в котором невозможно отобразить название записи, и рядом текст записи.

5. Насколько я помню, в 2010 году, у CherryTree все записи хранились в одном большом XML файле. Я понимал, что если я постоянно будут пользоваться этой программой, база будет очень большой. Сейчас у меня база в MyTetra 250Мб. Не представляю, как бы CherryTree смог работать при своей архитектуре с таким размером своего файла. Если бы там была SQLite я бы еще понял. Но SQLite у CherryTree появилась в 2012 году, когда у меня уже была MyTetra.

6. Однако, даже если бы в CherryTree и была SQLite, такой формат не подходит для инкрементальной синхронизации, например через системы контроля версий (git, svn, etc). Страшно представить, что 250Мб будут каждый раз гоняться по сети при каждой синхронизации. Кроме того, в случае возникновения проблем, наглядно в виде diff не видно как менялось наполнение базы. То есть, формат хранения данных должен быть распределенным, размазанным по файлам, чтобы хорошо работалось синхронизации через системы контроля версий. Этого у CherryTree нет.

7. Ну и глюки GTK-шного интерфейса были во всей красе. Помню, как начинал писать текст в поле ввода, а он отображался вообще в другом поле ввода текста, совершенно в другом окне. Разбирательства тогда привели к тому, что это не проблема CherryTree, а проблема GTK. Типа нужна другая версия. Я измучался, установил другую версию, снес пол-системы, эта GTK вроде встала и в CherryTree глюк пропал, но поплохело всему линуху. В общем, все как обычно в опенсорче происходит.

Поэтому плюнул и написал свое.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от vitruss

А поддержка рисования на экране есть? Возможна?

Я давно уже не парюсь по этому вопросу. Просто под виндой запускаю MsPaint, а под Линухом KolourPaint, и рисую что мне надо и вырезаю куски скриншотов. Потом копирую и пастю в MyTetra, у нее есть вставка изображений из буфера обмена (и из файла тоже есть).

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

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от trueshell

Загнутый угол страницы сайта выглядит омерзительно. Непременно как нибудь уберите.

Вы дизайнер со стажем?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от aidaho

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

Я бы вообще не хотел делать самодельную синхронизацию, но по-видимому, придется.

Во-первых, вы не объясните пользователям, как надо устанавливать git/unison/rsync и настраивать все это дело на разных машинах для синхронизации. Я попытался это сделать: Как в MyTetra настроить синхронизацию через интернет, но таких уротых как я - единицы.Пользователю надо просто установить программу и начать ей пользоваться, зная что для синхронизации никаких усилий не понадобится.

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

В политике безопасности Android каждая программа работает от отдельного пользователя. И программам запрещено писать в каталоги, которые ей не принадлежат. Исключение составляют специальные встроенные файловые менеджеры. То есть, невозможно «скрестить» две программы, например MyTetra и Git в Android, если они установлены как отдельные программы. Либо Git не сможет писать в каталог MyTetra, либо MyTetra не сможет работать в репозитарии Git. И решить эту дилему можно только рутованием. Но что это за программа, которой для синхронизации нужно вначале рутовать коммуникатор?

Xintrea ★★★★★
() автор топика

было бы на cl или с+gtk помог бы с удовольствием, хз как вы можете на c++ это все поддерживать и развивать.

ykroop
()
Ответ на: комментарий от ykroop

было бы на cl или с+gtk помог бы с удовольствием, хз как вы можете на c++ это все поддерживать и развивать.

Встречно не понимаю, как вы можете поддерживать и развивать на c+gtk.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

А почему git, а не просто любое облако типа Dropbox? тогда и на мобильных можно было бы решить проблему, предоставив несколько облачных сервисов на выбор, как мне кажется. Хотя я не разработчик :)

Про рисовалку - у меня достаточно специфичный случай Lenovo Yoga со стилусом, так что отчасти это мобильный сегмент (но таких становится всё больше). Удобно в любой момент рисовать или, например, во время конференции записывать развернув в портретный режим, а потом уже в спокойной обстановке разобраться что к чему было. Тут нужно чуть больше, чем может предоставить MsPaint, например, бесконечный холст.

Кстати, ещё вопрос, а как с возможностью вычислений в таблицах? Сейчас у меня в One Note вставлены таблицы Excel, но это не удобно, потому что приходится открывать отдельное приложение для того, чтобы эти таблицы править. Встроенных функций One Note по вычислению не хватает, потому что он не може даже простые формулы.

И ещё вопрос (в мануале не нашёл). Есть ли какие-либо зачатки cписка дел? (понятно, что можно для этого сделать просто отдельную страницу) Желательно с напоминаниями и датами. Ну или интеграция с чем-то типа Todoist.

vitruss ★★★★★
()
Последнее исправление: vitruss (всего исправлений: 3)
Ответ на: комментарий от Xintrea

Конкурентом Evernote проект MyTetra сможет стать только тогда, когда MyTetra заполучит собственный сервер, с которым можно соединяться прямо из программы и обретет свой протокол взаимодействия с сервером.

Всегда раздражали программы со «своим сервером». Намного ведь лучше синхронизировать через какой-нибудь Dropbox зашифрованные данные. И параноикам спокойнее(можно ведь ownCloud использовать) и не привязан к сервису хранения жестко.

Я бы может присоединился, но у меня нет интереса в таком софте к сожалению, а делать не «для себя» нет мотивации. Сейчас вот пытаюсь к Trojita присоединится, но там я сам активный пользователь и делаю для себя.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от vitruss

А почему git, а не просто любое облако типа Dropbox?

Можно и Dropbox, люди пользуются. В качестве строки синхронизации просто пишут «cd %a», чтобы MyTetra не ругалась что строка синхронизации не задана. В этом случае в момент синхронизации происходит просто перечитывание базы с диска. А изменением занимается DropBox.

Но и с Git и с DropBox существуют одинаковые проблемы. Синхронизация происходит следующим образом:

1. MyTetra сбрасывает данные на диск,
2. выполняет команды синхронизации,
3. считывает данные с диска.

Казалось бы, все просто. Но нет.

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

Для DropBox другая проблема. Если изменения файла прийдут из другого места в момент работы MyTetra, то при выполнении синхронизации они будут просто затерты на шаге 1. Поэтому для DropBox должно выполняться условие: закончил работу - выйди из MyTetra. Начинаешь работу - зайди в MyTetra. И аккаунт DropBox можно использовать только личный (а не групповой) потому что пользователь физически не может находиться одновременно в двух местах.

Из двух таких зол я выбрал наименьшее - синхронизацию через Git.

В любом случае, необходимо для синхронизации городить что-то свое, какой-то свой протокол, как это сделали в TeamLab: http://habrahabr.ru/company/teamlab/blog/169841/.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от vitruss

И ещё вопрос (в мануале не нашёл). Есть ли какие-либо зачатки cписка дел? (понятно, что можно для этого сделать просто отдельную страницу) Желательно с напоминаниями и датами.

Да, есть. Я использую MyTetra для этого. Работу строю так.

Сначала делаю три папки: Сделать, Сделано, Зависшие.

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

Когда дело выполнено, стараюсь не лениться и добавить в конец записи результат (например, номер исходящего письма, приказа, или какие-то полученные данные). После чего через Drag-And-Drop перетаскиваю эту запись в ветку Сделано.

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

Таким образом получается, что у меня ведется еще и архив дел в папке Сделано. Эта папка помогает, когда вылезают какие-то косяки и надо что-то доделать или вспомнить кому звонил и что вообще делал для решения проблемы.

Ну а в папку Зависшие я периодически скидываю дела из папки Сделать, если они вообще никак не решаются, о них забыли или они не нужны.


У меня таких троек папок (Сделать, Сделано, Зависшие) несколько штук: Задачи по MyTetra, Дела по работе, Дела по дому и т. д.

Вот, в принципе, так и организовываю свою работу.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)

Когда на сайте появятся готовые сборки x86_64 под lin дабы каждый раз не надо было руками собирать?

Deleted
()
Ответ на: комментарий от Deleted

Когда будет релиз, и найдется пионер, который сделает сборку под x64 под Linux.

А вообще, пользователи x64 уже давно должны привыкнуть, что свой софт под Linux они собирают сами.

Xintrea ★★★★★
() автор топика

Не слышал про такой проект. А какие есть преимущества перед treeline? ЕМНИП treeline кроссплатформенный, написан на pyqt, я его запускал и под Linux, и под Windows, и вроде бы даже под FreeBSD.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от Xintrea

А вообще

Это 10 лет назад 64-битные системы ещё были чем-то необычным.

i-rinat ★★★★★
()
Ответ на: комментарий от DELIRIUM

Не слышал про такой проект. А какие есть преимущества перед treeline? ЕМНИП treeline кроссплатформенный, написан на pyqt, я его запускал и под Linux, и под Windows, и вроде бы даже под FreeBSD.

А на MacOSx? Использование pyqt означает, что TreeLine никогда не появится на мобильной платформе.

Я щупал пару раз TreeLine, проблемы впринципе те же что и у CherryTree, я описал их задесь: OpenSource-проект MyTetra ищет в свои немногочисленные ряды разработчиков и тестеров (комментарий)

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

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

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

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

trueshell ★★★★★
()
Ответ на: комментарий от Xintrea

Ок, убедил, посмотрю на досуге, вполне вероятно, что полезная вещь. Если буду пользоваться, то при нахождении багов обещаю помогать патчами, но на постоянной основе работать на проекте врядли буду.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от trueshell

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

Я не дизайнер со стажем.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от DELIRIUM

Ок, убедил, посмотрю на досуге, вполне вероятно, что полезная вещь. Если буду пользоваться, то при нахождении багов обещаю помогать патчами, но на постоянной основе работать на проекте врядли буду.

Велком. Я планирую пописать несколько issue по редактору, и их надо будет делать. Наверное, нужно взять за правило, что если кто-то берется за issue, то в комментариях к нему отписывается, что взялся и будет результат.

Это нужно из-за того, что пока не знаю как координировать работу когда идут большие изменения. Чувствую, я скоро начну выделять код в отдельные классы, перемещать туда-сюда, что-то дописывать и сильно менять.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Sociopsih

Благодарю за подробный ответ. Скачал MyTetra, буду пробовать.

Обращаю внимание, что все, что написано, относится к experimental ветке. В последнем стабильном релизе 1.30.1 нет ни drag-and-drop, ни столбцов в списке записей, ни, соответственно , сортировки, ни печати списка.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от FRWHate

Чем оно лучше Mediawiki + SMW, Docuwiki?

Оно другое. Это программа, а не сервер с вебмордой.

Xintrea ★★★★★
() автор топика

У меня был целый список изменений, которые я хотел туда внести. Но у меня старая версия (хз какая, в справке не указана). Надо будет компильнуть новую, посмотреть. Я так понял ты уже на Qt5 перешел. Но у меня сейчас времени мало, так что хз когда смогу помочь.

mamba_namba_karamba
()
Ответ на: комментарий от mamba_namba_karamba

У меня был целый список изменений, которые я хотел туда внести. Но у меня старая версия (хз какая, в справке не указана).

В «Справка» - «О программе MyTetra» обязательно есть версия, как минимум в заголовке окошечка.


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

Дерзай. Собирается и на Qt 4.8.x и на Qt 5.4.2.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от vitruss

Вычисления в таблицах?

Нет и не будет. Считаю, что в записной книжке не должно быть такого функционала. Возможно вам больше подойдет Outwiker, он это вроде как умеет с каким-то плагином.

Единственное что может появиться - это ввод формул. Но это планы дальних релизов.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

И правда, в заголовке есть (v. 1.30.1). У меня dwm заголовков нет, на панель не всегда смотрю :)

mamba_namba_karamba
()
Ответ на: комментарий от vitruss

Собирайте сами или ждите релиза. Я не хотел бы распространять полурабочую версию. Мне нужно допилить редактор.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.