LINUX.ORG.RU

Релиз персонального менеджера для накопления информации MyTetra v.1.43

 , , ,


7

4

Опубликован новый релиз кроссплатформенного PIM-менеджера MyTetra v.1.43. Это багфикс-релиз, выпущенный спустя два года после основного релиза. Список изменений состоит из 24 пунктов, среди которых не только исправление выявленных при эксплуатации проблем, но и добавление нового функционала.

В данном релизе сделано много мелких правок для встроенного WYSIWYG редактора, улучшено редактирование ссылок и доработано поведение редактора на граничных местах текста - в начале и конце области редакторования. Исправлена работа с различными нестандартными именами прикрепляемых файлов (dot-файлы, файлы без расширений и т.п.), исправлено взаимодействие программы с различными оконными средами (DE) в плане правильного восстановления геометрии окна и назначении кнопок по-умолчанию.

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

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

Автор благодарит русскоязычных комиттеров с GitHub.com: dsbabkov, ExIngus, retmas, EXL, которые помогали сделать этот релиз, а так же благодарит тестеров с linux.org.ru, которые помогли проверить и подготовить новую версию программы: athost, Singularity, deep-purple, hobbit, fmrlex, imul, Quasar, sigurd, Beewek.

Примечание 1:
Параллельно с разработкой MyTetra развивался и бесплатный Интернет-сервис MyTetra Share, который добрался до версии v.0.46. В нем появилась поддержка перекрестных ссылок между записями, стали отображаться иконки веток, появились социальные кнопки, появилась поддержка отображения ссылок на прикрепляемые файлы. Данный сервис не только бесплатен, но и не требует регистрации. Если пользователь настроил синхронизацию через систему контроля версий на GitHub, Bitbucket, self-хостинге и т. п., то имеется возможность сформировать специальную Интернет-ссылку на свой репозитарий с данными, и с помощью этой ссылки можно просматривать открытые (т. е. незашифрованные) записи своей базы.

Примечание 2:
В 2017 году проводилось нагрузочное тестирование MyTetra с базой из 100 000 заметок. Тестировались различные аспекты работы программы, в результате чего бало выяснено, что в проекте заложена хорошая производительность, обеспечиваемая даже на сильно устаревшем оборудовании.

Примечание 3:
Для новых пользователей MyTetra автор записал подробные видеоролики с рассказом обо всех возможностях программы. Так же существует несколько видеороликов, записанных самими пользователями MyTetra.


Автор поздравляет всех пользователей MyTetra с новым релизом!

>>> Подробности

★★★★★

Проверено: jollheef ()
Ответ на: комментарий от RazrFalcon

При том что бекенд.

У меня гуй и кли версии (два бинаря), которые используют один «бекенд», который живет в отдельном треде (в каждом бинаре своя копия). И легко можно будет прикрутить еще один «гуй» в виде сетевого апи.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

если про svgcleaner-gui, то там хотя бы не C++03

Пару дней назад впервые за, блин 7 лет в большой город съездил, в Питер, с возможностью добежать до книжного магазина. И, плача от хренеть каких цен, таки позволил себе купить одну книгу по плюсам: Питер Готтшлинг, Современный C++, 2300 руб. Там как раз про C++11...C++14 более-менее последовательно рассказывается. Перевод, правда, говёненький, вильямс-пресс им всегда хвалится, ну хоть так чем совсем никак:

«Было бы хорошо, если бы все численные программы могли быть написаны на C++ без потери эффективности, но если только вы не найдете чего-то, что позволяет достичь этой цели без ущерба для системы типов C++, то лучше уж воспользоваться языком Fortran, ассемблером или архитектурно-зависимыми расширениями»
Бъярне Страуструп
(переводчик этой белиберды И. В. Красикова, редактор С. Н. Тригуб - знайте этих героев)


Хотел еще купить по C++17, по современному STL, по Java и по JNI (мне нужно для Андроида), но позвонил жене и отказался от затеи десятку рупий за одни только книги отдать, я столько не зарабатываю.

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

166 метров (хтоп) на 5 окон с кучей доков, различных вьюх, кнопок и менюшек — это много?

Вот ардор там же (сейчас в нем работаю): 696 метров, кденлайв супруга не выключила: чуть больше 2 гигов.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от Napilnik

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

Прекрасно наверно у программы с зависимостями. В оффтопике.

И в оффтопике все прекрасно с зависимостями, и в Linux тоже все по минимому.

Хотя винда тут таки выигрывает: сборка со всеми либами под Windows занимает 15 Mb, а под Linux 25 Mb.

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

И в оффтопике все прекрасно с зависимостями

Там кутя не системная и гцц тоже, потому и прекрасно...

и в Linux тоже все по минимому.

Если в системе пятые кути только самых первых версий, то не всё так однозначно. Потому к ним такая и «любовь».

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

Ты мне так и про мою говорил. Мол, зойчем тебе треды.

Что в его проге выносить в «бекенд»? Загружалку, сохранялку, обработку, валидацию. Т.е. все, что выполняет какие-то действия. А в гуе оставить только сигналы-слоты для общения с «бекендом».

deep-purple ★★★★★ ()
Ответ на: комментарий от anonymous

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

Ты готов потратить время на изучение и практику всяких там CocoaAPI, WinAPI и GTK+ только ради того, чтобы сделать программу с достаточно простым интерфейсом?

Большинству разработчиков трудно тянуть и поддерживать подобное и они используют уже готовые решения.

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

Справедливо. Вот только редкому приложению нужны какие-то определённые возможности, реализованные только в системных графических тулкитах. Куча специализированного софта, тот же Blender или IDEA вообще собственные библиотеки для UI используют и никто не жужжит, ну и примеры сложного софта с точки зрения UI, которые вполне успешно используют Qt, например, Autodesk Maya или IDA Pro тоже имеются.

https://www.hex-rays.com/products/ida/pix/idalarge.gif

Подобным программам как эта и прочие от одного-двух разработчиков — выбор Qt'а будет наилучшим решением за счёт приемлемой кросс-платформенности. Да, кросс-платформа не идеальна. И никогда не будет идеальной. Но пусть разработчик сам решает на что тратить своё время: на реализацию UI один раз или на реализацию того же самого UI три раза с учётом всех особенностей различных платформ.

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

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

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

Люди, вы серьезно обсуждаете персональный менеджер на веб-технологиях?

Github/gitlab-pages работают с репозиториями git, если инет отключат, останется локальная копия со всеми данными.

При правильном построении репозитория эти данные будут нормально структурированы.

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

Приеду домой, обязательно заценю. Но, конечно же, киллер фичей было бы стягивание контактов из разных аккаунтов gmail и outlook.com с редактированием и загрузкой обратно. Хотя, это наверное можно через экспорт импорт файлов решить?

beck ()
Ответ на: комментарий от deep-purple

Ты мне так и про мою говорил. Мол, зойчем тебе треды.

Пиши по-русски.

Что в его проге выносить в «бекенд»?

Я не об этом спрашивал.

А в гуе оставить только сигналы-слоты для общения с «бекендом».

У ТС основная часть проги - это текстовый редактор? Что там выносить?

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

CocoaAPI, WinAPI и GTK+

Я бы уточнил, что реальный список выглядит как-то так:

  • win: MFC, WPF, UWP
  • mac: Cocoa + ObjC/Swift
  • linux: GTK+, Qt

И это только то, что я знаю. Поэтому и приходится возится с Qt.

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

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

Речь шла не о реализации того же самого UI три раза, а о возможности реализации.

Ты готов потратить время на изучение и практику всяких там CocoaAPI, WinAPI и GTK+

Например, автор написал бэкенд и Qt-фронтенд. Я зная CocoaAPI могды реализовать Cocoa-фронтенд...

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

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

основная часть проги - это текстовый редактор? Что там выносить?

Все что не относится к текстовому редактору.

Когда писали Qt 4, std был слишком убог. И продолжает таким быть, что характерно.

Тут плюсану.

deep-purple ★★★★★ ()
Ответ на: комментарий от anonymous

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

Коль уж пользуешься Qt, так пользуй его возможности по максимому. А не так что «а вдруг когда-нибудь я захочу чистого плюса, поэтому GUI буду с классами Qt, а остальное буду писать на плюсах». Пусть будет неудобно, вместо волшебного QString буду пользовать string, которое не может в кодировки, вместо QMap буду пользовать std::map, потрачу кучу времени и напишу еще слой совместимости Qt<->pure C++ по типам... Вот оно счастье!

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

На самом деле можно было бы вынести в отдельный проект все методы управления деревом и текстом, с поддержкой команд типа:

- Считать список подветок для ветки с ID=...
- Считать список записей из ветки с ID=...
- Добавить подветку к ветке с ID=...
- Удалить ветку с ID=...
- Добавить запись в ветку с ID=...-
- Добавить запись в ветку с ID=... опосля записи с ID=...
- Добавить запись в ветку с ID=... перед записью с ID=...
- Получить текст заметки для записи с ID=...
- Установить текст заметки для записи с ID=...
- Добавить аттач-файл к записи с ID=...

ну и т. д. (Я даже находил готовый консольный менеджер заметок с таким подходом и командами, которые в консоли надо набирать).

И такое построение помогло бы, чтобы прикручивать разные GUI. Но тогда возникает вопрос: а нафига вообще нужны эти разные GUI? Вот есть редактор AviDemux с GUI на Qt и на GTK. И что толку от этого? Оба гуя кривые, сама программа кривая с марсианским интерфейсом. Возможностей у программы по-минимому, пользоваться ей можно в крайних случаях, уж лучше изучить Блендер. И ради чего так бодались, непонятно.

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

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

deep-purple ★★★★★ ()
Ответ на: комментарий от anonymous

Я зная CocoaAPI могды реализовать Cocoa-фронтенд...

Но, например, ты бы не стал этого делать и вместо хоть какой-то версии для macOS пользователи этой программы получили бы тыкву, если бы автор сделал только версии под какой-нибудь WinAPI и GTK+

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

Таки это фреймворк, а не просто графический тулкит, как GTK+. На роль тулкита может сгодиться связка QtGui + QtWidgets и никто не заставляет завязываться на Qt полностью. Большинство часто используемых классов вроде QString или QVector конвертируются во всякие там std::string, c_str или std::vector.

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

Со шрифтами-то всё нормально, Qt всё нормально скейлит в зависимости от системных настроек. QT_SCALE_FACTOR влияет только на них, а кнопки остаются того же размера. Поправил стиль, как посоветовал ниже автор, всё стало норм. Но всё равно спасибо за помощь.

env ★★ ()
Ответ на: комментарий от system-root

Поддерживаю. Функциональность радует, но вот интерфейс с наваленными кнопками редактирования выглядит как UI от программиста (в худшем смысле слова).

Я бы сделал пару скетчей, но что-то мне подсказывает, что авторам и коммиттерам с таким интерфейсом норм.

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

Кстати, на некоторых экранах вылез баг bold/unbold. На одних экранах (или DE средах?) он виден, на других нет.

https://github.com/xintrea/mytetra_dev/issues/76

На официальной странице уже лежит новая версия v.1.43.27, в которой он пофикшен.

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

Ещё раз: в проге ТС нечего выносить в «бекенд».

Появится, как только он дозреет, например, до импорта из других программ ведения заметок.

Я вот тоже сомневался, стоит ли у себя в программе заводить гуенезависимое ядро, но поскольку я старался всё чётко делить по классам, ядро сформировалось само собой. К моему удивлению, оказалось что-то около половины всего кода программы, причём в основном это как раз определения основных структур, классы экспорта-импорта в разные форматы и др. Я думал, будет меньше. Но да, я без особых угрызений совести использовал в ядре QtCore и QtXml (а в последних версиях ещё и QtNetwork), поэтому это не совсем то, о чём мечтают пишущие про «бекенд».

hobbit ★★★★★ ()