Предварительный релиз версии v2.16.0-rc.1

64 views
Skip to first unread message

Сергей Ждановских

unread,
Jun 20, 2019, 2:42:20 PM6/20/19
to gedkee...@googlegroups.com
Друзья и коллеги!

Сегодня я анонсирую предварительный релиз версии 2.16.0-rc1 (1-й кандидат в релизы).

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

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

Эти изменения ядра преследовали следующие цели:
  • максимально повысить гибкость разработки новых функций программы в будущем;
  • получить возможность добавлять другие форматы хранения генеалогических данных (уже добавлена предварительная поддержка формата GedML и начата разработка поддержки формата FamilyShow-файлов - оба формата не очень полезны, но это было нужно для апробирования возможности и исследования эффективности процесса);
  • для обеспечения возможности работы с большими и очень большими базами данных (от 30 до 90 мб, вплоть до 500 тыс. записей в файле) - оптимизировать производительность алгоритмов и добиться максимальной экономии памяти при работе с такими файлами;
  • так на базах данных около 91 мб, с 538 тыс. записей внутри, производительность загрузки файлов увеличена с 3-5 минут до 20-25 секунд, расход памяти при работе программы снижен с 1400 мб до 590 мб;
  • оптимизация алгоритмов преследовала цель увеличить не только скорость загрузки таких файлов, но и производительность программы в целом на всех функциях, во всех блоках и операциях пользователя, включая построение отчетов, генерацию росписей и диаграмм, редактирование данных, обновление всех рабочих таблиц;
  • также изменения требовались для улучшения гибкости поддержки многочисленных подвариантов самого формата GEDCOM, записываемого в различных других программах;
  • на основе всего этого в будущем возможно будут добавлены другие возможности сохранения файлов либо поддержка реляционных баз данных.
При всём этом, ресурс по повышению производительности программы при текущей архитектуре, по моим оценкам, выработан примерно на 75-80%, по улучшению экономии памяти - примерно на 60%. Есть еще масса возможностей улучшать скорость и эффективность работы.

Теперь остановлюсь на последствиях этих изменений для всех нас. Изменения были очень необходимы и коснулись практически всех направлений работы с GEDCOM-файлами. Вся работа ядра была покрыта более чем 200 автоматизированными тестами, которые проверяли корректность работы после каждого изменения (эти тесты позволяют контролировать около 91% ядра в части работы с GEDCOM). Кроме того, всё многократно и тщательно вручную тестировалось на собственных файлах. К слову, вся программа в целом покрыта 532 тестами, которые позволяют автоматизированно проверять около всего 82% функционала. Хотя все эти тесты далеко не панацея.

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

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

Сергей Ждановских

unread,
Jun 20, 2019, 2:43:15 PM6/20/19
to gedkeeper-ru
Общий список изменений в этом выпуске программы:

- Исправлена работа инструмента «Сравнить базы данных».
- Исправлен внешний просмотр файлов PDF (и других, не поддерживаемых встроенным средством просмотра).
- Корректура английского мануала [Kevin D. Sandal].
- Реализована предварительная поддержка формата GedML.
- Исправлена локализация родословных.
- Исправлен плагин Календаря.
- Исправлено перекрытие соседних лиц на древовидных диаграммах.
- Исправлен некорректный разбор интерпретируемых дат из Ahnenblatt.
- Исправлены недостающие субструктуры в медиа-записях из посторонних файлов.
- Исправлено преобразование ссылок на источники в исходных записях.
- Исправлено преобразование медиа-ссылок в медиа-записи и конвертирование нестандартных x-ссылок.
- Исправлено чтение стандартных координат места.
- Незначительное улучшение круговой диаграммы.
- Улучшена поддержка нескольких форматов GEDCOM-файлов.
- Исправлена ошибка сортировки столбцов некоторых таблиц.
- Исправлено дальнее смещение мужских узлов (древовидная диаграмма) при наличии более чем одного брака и большого дерева потомков от первой жены.
- Улучшен ввод даты в диалоге событий с учетом региональных настроек формата.
- Исправления для плагина FlowInput.
- Добавлена возможность создавать и подключать плагины - заменители диалогов редактирования записей.
- Восстановлена загрузка последних файлов.
- Создан новый плагин для управления "папками" в GEDCOM файлах (для разделения рабочих областей в больших файлах).
- Добавлена опция автоматического определения кодировки GEDCOM файлов при загрузке.
- Исправлена ошибка выполнения Lua-скриптов.
- Снижен расход памяти при загрузке больших файлов (от 25 до 42%).
- Оптимизирован ряд функций, позволив значительно увелить скорость загрузки и обработки больших файлов (от 30тыс. записей до сверхбольших файлов - 91mb, 538тыс. записей, время загрузки 25 сек!).

Сергей Ждановских

unread,
Jun 20, 2019, 2:46:55 PM6/20/19
to gedkeeper-ru
Этот релиз доступен для скачивания только с главного портала разработки проекта (GitHub, https://github.com/Serg-Norseman/GEDKeeper/releases/tag/v2.16.0-rc.1)

Алексей Полуб

unread,
Jun 23, 2019, 8:28:22 AM6/23/19
to gedkeeper-ru
Действительно, заметно быстрее стала открываться большая (для меня большая) база из 17 тысяч персон.
За пару дней никаких проблем не по сравнению с предыдущей версией не заметил, только вначале деревья получались не в привычном для меня виде (файл версия16.png), но после применения нужных мне настроек стало выглядеть как я привык (файл версия15.png).

Заодно хочу выяснить вот такой вопрос: при создании новой персоны программа автоматом предлагает варианты написания отчества для конкретного имени отца этой персоны.
Где именно хранится список с отчествами и можно ли каким-либо образом отредактировать некоторые из них на выбор, которые случайно были вписаны и сохранены неправильно?
Благодарю.
версия16.png
версия15.png

Алексей Полуб

unread,
Jun 23, 2019, 9:47:26 AM6/23/19
to gedkeeper-ru
И вдогонку ...
для сохранения изменений кроме нажатия на "Сохранить" есть сочетание клавиш Ctrl+S. Это сочетание работает только при активном Основном окне. Можно ли сделать так, чтобы Ctrl+S работала и при активном окне с построенной диаграммой (деревом), когда Основное окно программы не видно на экране?

Сергей Ждановских

unread,
Jun 23, 2019, 3:20:37 PM6/23/19
to gedkeeper-ru
Отвечу со второго вопроса. Озадачен - раньше это было реализовано и работало. Сейчас, к сожалению, залезть в проект и проверить не могу, но завтра обязательно посмотрю. Никаких особых сложностей с сохранением файла из окна диаграмм нет. Возможно в процессе каких-то изменений я это сам сломал и не заметил.

Насчет имен. Давно хочу сделать визуальный редактор автоматически собираемого справочника имен, да всё другие дела заслоняют. Текстовый файл с именами хранится в папке данных программы (C:\Users\<UserName>\AppData\Roaming\GEDKeeper2), файл "GEDKeeper2.nms". Попробуйте, а я попробую в следующей версии наконец сделать редактор справочника. Давно нужен.

Алексей Полуб

unread,
Jun 23, 2019, 8:59:33 PM6/23/19
to gedkeeper-ru
Еще раз проверил, Ctrl+S срабатывает только  при активном Основном окне.

Подскажите пожалуйста, из того словаря можно ли убрать записи типа следующих:
Человек играющий;;;M
Парантроп;;;M
Дриопитек;;;M
Горилла;;;M
Накалипитек;;;M
Гиббон;;;M
Афропитек;;;M
Грифопитек;;;M
Сивапитек;;;M
Орангутан;;;M
Гигантопитек;;;M
Уранопитек;;;M
┴σδπΦßαΘ;;;M
╤≤πΦ≡°√;;;M
╩Φ≥αΘ;;;M
┼╨├┼═┼╩╥█;;;M
╥┼╨╤╥└╠┴└╦█;;;M
╠└╥└╔;;;M
╠≤≡√φ;;;M
╥╬╨╥╙█╦;;;M
╩└╨└╩┼╨┼╔;;;M
╤εδ≥αφπσδⁿΣ√;;;M
╥εΩαφ;;;M
┴╙╨└;;;M
╩╬╩╞└╨╦█;;;M
┴└├└═└╦█;;;M
┴αδ≥αδ√;;;M
┴σ±Ωσ;;;M
╥σφσΩσ;;;M
╪Φ∞εΘ√φ;;;M

и таких:
Наби-Ульмаш;;;M
Бинкалишарри;;;M
Убиль-Эштар;;;M
Итти-Энлиль;;;M
Шаркалишарри;;;M
Эн-хеду-Ана;;;F
Эпарти;;;M
Шилхаха;;;M
Ширктух_I;;;M
Симутварташ;;;M
Хумпан-Нумена;;;M
Аттар-Киттах_II;;;M
Пахир-Ишшан_I;;;M
Кидин-Хутран_I;;;M
Кидин-Хутран_II;;;M
Напириша-Унташ;;;M
Амитис;;;F
Киаксар_(Увахшатра);;;M
Г1;;;F
Г2;;;F
Г3;;;F
????????;????????;?????;M
???????;???????????;??????;M
?????;?????????;???????;M
?????????;?????????;????????????;M

А то мне они для моих задач как бы и не нужны :-)

И о формате этих записей... Для русского языка одиночная запись выглядит так:
Александр;Александровна;Александрович;M

А, например, в казахском языке сейчас может применяться по два варианта написания отчества (в казахском и русском вариантах).
к примеру для имени Даулет
Даулет;Даулеткызы;Даулетулы;M и
Даулет;Даулетовна;Даулетович;M

Можно ли эти варианты совместить? Или так и записывать двумя строчками?

Сергей Ждановских

unread,
Jun 24, 2019, 2:34:12 AM6/24/19
to gedkeeper-ru
Да уж, сколько там всякого ужаса, в словаре имен )))) Конечно вы можете вычистить абсолютно всё, что вам не нужно. Это никак не повлияет на работу программы.

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

Насчет сохранения я уж сам вспомнил, что могло вырубить этот функционал. Поэтому да, скоро верну его обратно.

Алексей Полуб

unread,
Jun 25, 2019, 2:07:31 PM6/25/19
to gedkeeper-ru
Спасибо, почистил Словарь имен, объём файла уменьшился с 850 Кб. до 150Кб. :-)
Правда времени на этозатратил около часа.

Заметил что в 16 версии при построении диаграммы персоны, у которых есть несколько жен, стали располагаться прямо рядом с первой женой. А то в предыдущих версиях их уводило влево до упора, иногда на расстояние, измеряемое несколькими экранами.
Огромная вам благодарность за это :-)
версия16.png

Алексей Полуб

unread,
Aug 29, 2019, 7:49:53 AM8/29/19
to gedkeeper-ru
Сергей, возвращаясь опять к файлу GEDKeeper2.nms
Он записывает все Имена-Отчества просто поочередно, добавляя их в конец списка.
А можно ли усложнить это дело и сделать так, чтобы все записи делались автоматически по алфавиту?

А именно, сейчас записывает так:
Парантроп;;;M
Дриопитек;;;M
Горилла;;;M
Накалипитек;;;M
Гиббон;;;M
Афропитек;;;M
Грифопитек;;;M
Сивапитек;;;M
Орангутан;;;M

А чтобы записывал так:
Абадулла;;;M
Абай;;;M
Абайдулла;;;M
Абайыл;;;M
Абак;;;M
Абакан;;;M
Абан;;;M
Абат;;;M
Абатбай;;;M
Абау;;;M
Абаш;;;M
Аббаз;;;M
Аббас;;;M

Мне кажется, так будет намного удобнее пользователям :-)

Сергей Ждановских

unread,
Aug 29, 2019, 9:30:42 AM8/29/19
to gedkeeper-ru
Алексей, добрый день!

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

Алексей Полуб

unread,
Sep 17, 2019, 12:10:45 AM9/17/19
to gedkeeper-ru
Сергей, я поместил описание вашей программы у себя на сайте в разделе "Программы для генеалогии" на страницах http://genealogistic.narod.ru/programs/prog-ru.html и http://genealogistic.narod.ru/programs/gedkeeper.html
Если считаете нужным что-либо там отредактировать, напишите мне, я исправлю/дополню тексты там.

Сергей Ждановских

unread,
Sep 17, 2019, 4:58:58 AM9/17/19
to gedkeeper-ru
Здравствуйте, Алексей!

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

Очень правильно, что для моей программы ссылку на домашнюю страницу вы сделали на github.io, а для скачивания - на sourceforge.net. Спасибо, это очень хорошо: потому что последние две версии выходили через публикацию на форуме и были "неофициальными" для тестирования. Я не хотел, чтобы они особо расходились. Очень надеюсь, что у меня осуществится план выпустить новую версию 2.16.2 на этой неделе официально. Время постоянно утекает, поэтому я уже месяца два непрерывно откладываю...

С уважением,
Сергей
Reply all
Reply to author
Forward
0 new messages