blunderDB

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

Данная документация структурирована следующим образом:

  • раздел загрузка и установка объясняет, как получить и запустить blunderDB.

  • руководство описывает общее функционирование blunderDB и принципы его использования.

  • руководство пользователя — практическое введение для быстрого освоения blunderDB.

  • список команд и список горячих клавиш обеспечивают эффективное использование blunderDB.

  • раздел интерфейс командной строки (CLI) описывает доступные команды для массового импорта, автоматизации и написания скриптов.

  • FAQ содержит ответы на наиболее часто задаваемые вопросы.

История версий

Версия

Дата

Причина и/или характер изменений

0.1.0

31/12/2024

Создание бета-версии.

0.2.0

06/01/2025

Исправление различных ошибок.

Добавление таблиц матчей/TP/GV.

Добавление фильтров поиска (ходы, решение видо, дата).

Добавление метаданных для позиций.

Функция импорта/экспорта между экземплярами blunderDB.

Добавление функции метаданных для баз данных.

Введение номеров версий (база данных и приложение).

0.3.0

27/01/2025

Исправление различных ошибок.

Автоматическое сохранение размера окна.

Импорт комментариев из XG.

0.4.0

03/02/2025

Исправление различных ошибок.

Добавление иконки для blunderDB.

Исправление фильтров.

Добавление поддержки macOS.

0.5.0

04/02/2025

Добавление новых фильтров (зеркало, нет контакта, блот в яне, блот в аутфилде).

0.6.0

13/02/2025

Добавление библиотеки фильтров.

Отображение версии базы данных в метаданных.

0.7.0

16/02/2025

Поддержка японского и немецкого языков в экспорте XG.

0.8.0

03/05/2025

Новая кнопка для скрытия подсчёта шашек.

Кнопка загрузки случайной позиции.

0.9.0

02/11/2025

Исправление ошибки в библиотеке фильтров.

Импорт/экспорт базы данных.

Отображение стрелок для выбранных ходов.

Горячие клавиши для импорта/экспорта.

0.10.0

25/02/2026

Импорт матчей из eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) и BGBlitz (BGF/TXT).

Навигация по матчам: просмотр ходов импортированного матча с подсветкой сыгранного хода.

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

Рекурсивный импорт из папки и импорт перетаскиванием.

Калькулятор EPC (эффективный подсчёт шашек) со встроенной базой данных bearoff GNUbg.

Коллекции: пользовательская группировка позиций.

Турниры: группировка матчей по событию.

Сохранение и восстановление состояния сессии (последний поиск, текущая позиция).

Автоматическая миграция схемы базы данных.

Отображение нескольких движков в анализе.

Фильтр ошибок/бландеров игрока 1 при поиске.

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

Кнопка навигации по матчам.

Отображение подсчёта шашек (pipcount) в навигации по матчам.

Полный интерфейс командной строки (CLI).

Автоматическое открытие последней базы данных.

Улучшение панели инструментов и иконок.

0.11.0

06/03/2026

Фильтр для поиска среди текущих позиций.

Добавление фильтров по матчу и по турниру.

Автоматическая очистка доски при открытии панели поиска.

0.12.0

19/03/2026

Импорт файлов позиций eXtreme Gammon (XGP) с анализом.

0.13.0

28/03/2026

Упрощение интерфейса: навигация по матчам и коллекциям теперь выполняется непосредственно через панели.

Командная строка, интегрированная в строку состояния.

Панель Консоль переименована в панель Log.

Выделенная панель EPC в нижней панели.

Копирование/вставка позиции в панели поиска.

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

Столбец турнира в панели матчей со встроенным редактированием.

Автоматическое отображение панели анализа после поиска.

0.14.0

30/03/2026

Выделенная панель Anki для изучения методом интервального повторения (алгоритм FSRS).

Импорт комментариев из файлов XG.

0.15.0

31/03/2026

Экспорт позиции в PNG-изображение в буфер обмена (только доска через Ctrl+X, или доска с анализом через Ctrl+X Ctrl+X).

0.16.0

18/04/2026

Схема базы данных v2.0.0: дедупликация позиций через хеш Zobrist, денормализованные столбцы фильтрации, предфильтр шаблонов на битбордах, журналирование WAL. Пакетный импорт >=3x быстрее, фильтрованный поиск <=100 мс на 10k+ позициях. ПРИМЕЧАНИЕ: файлы DB, созданные с v0.16.0, не могут быть открыты более старыми версиями; старые DB автоматически мигрируются на месте (сначала сделайте резервную копию).

0.17.0

20/04/2026

Оптимизация хранения: zlib-сжатие данных анализа (~80% сокращение), компактное кодирование позиций (~90% сокращение размера). Добавлено 5 недостающих индексов для ускорения поиска. Исправлен поиск по ошибке куба. Исправлен режим EDIT после поиска без результатов. Восстановление состояния панели поиска при переключении вкладок. Удалено 62 отладочных вывода из критических путей.

0.18.0

20/04/2026

Масштабный рефакторинг кода: разбивка db.go (10k строк) на 19 специализированных файлов, извлечение 7 модулей сервисов из App.svelte (4888→469 строк), консолидация хранилищ модальных окон/панелей. Полная миграция на Svelte 5 runes. Замена 9 табличных модальных окон универсальным компонентом DataTableModal. Добавление ESLint + Prettier + vitest (125 фронтенд-тестов) с CI. Соответствие WCAG 2.1 AA (видимый фокус, ARIA-роли, клавиатурная навигация). Переход мьютекса Database на RWMutex для лучшего параллелизма при чтении. Полная документация CLI (CLI_USAGE.md + Sphinx FR/EN). Переписан README. Устранены все предупреждения ESLint (46→0) и Vite (6→0).

0.19.0

07/05/2026

Добавление панели Статистика: показатели PR (Performance Rate), Snowie Error Rate и MWC cost (стоимость шанса выиграть матч), панель фильтров (игрок, турнир, даты, тип решения, длина матча), вкладка Dashboard с карточками уровня / скользящий PR / топ бландеров, вкладка Прогресс с кривой по турнирам и диаграммой рассеяния по матчам, вкладка Ошибки с распределением по действиям видо и гистограммой величин. Интерактивный drill-down к позициям / матчам / турнирам из всех показателей. Мгновенное переключение PR / MWC. Команда CLI list –type stats. Согласование показателей PR / Snowie ER / MWC с eXtremeGammon и gnuBG (порог 0.16 эквити для близких кубов). Исправление вычисления cube_error для решений Double/Pass. Документация модели статистики (Приложение: Модель статистики — выравнивание XG / gnuBG / blunderDB). См. Панель Stats.

0.20.0

31/05/2026

Добавление структуры исключения Except в панель поиска: исключает позиции, содержащие любую из нарисованных шашек, с маркером «должно быть пусто» (двойной клик) и неограниченным количеством шашек на точку (команда x). Добавление опции «только первый кубик» к фильтру бросков кубиков (вариант D1, параметр CLI –dice). Панель Комментарии: автоматический фокус поля ввода при открытии и всегда видимые кнопки редактировать / удалить. Исправление фильтра «Search Text», который не находил все теги комментариев.

0.21.0

01/06/2026

Интернационализация интерфейса: весь интерфейс blunderDB (панель инструментов, панели, сообщения, справка) теперь может отображаться по выбору на английском, французском, немецком, итальянском, испанском, финском, японском, греческом или русском языке. Добавлено окно настроек, доступное через кнопку в виде шестерёнки на панели инструментов, для выбора языка. Выбор языка сохраняется между сессиями. См. Конфигурация.

0.22.0

02/06/2026

Добавлен безголовый (серверный) режим, продвинутый и необязательный, дополняющий настольное приложение: демон serve, предоставляющий движок по HTTP + JSON, многопользовательский бэкенд PostgreSQL с разделением по арендаторам (и Row-Level Security по выбору), команда migrate для переноса базы SQLite в PostgreSQL и универсальный диспетчер call, дающий доступ из командной строки ко всем операциям хранения. Импорт отдельных позиций из новых форматов (eXtreme Gammon .xgp, текст BGBlitz, нативная библиотека .db) с обогащением дубликатов между форматами. Исправления: панели больше не вызывают ошибку, когда ни одна база не открыта, а панель Комментарии больше не зацикливается при открытии. См. Безголовый режим (сервер).

0.23.0

05/06/2026

Добавлены обучающие туры по интерфейсу (общий тур, поиск, матчи, турниры), повторяемые с панели инструментов или командой tour, и образец базы данных, загружаемый командой demo для знакомства с инструментом без импорта собственных партий. Настройка цветов доски (фон, граница, пункты, шашки, кости, куб удвоения) из окна настроек. Автодополнение командной строки (клавиша TAB). Панель поиска: явное управление типом решения (Шашки / Куб), с подтипом Дабл / Без дабла или Тейк / Пас для решений по кубу, синхронизированное с доской; предложенный куб отображается в центре доски для решений тейк/пас. Поиск позиции по её идентификатору (фильтр id). Исправлено отнесение ошибки куба игроку 1. См. Обучающие туры и образец базы данных.

0.24.0

06/06/2026

Добавлен образ контейнера (Docker) для headless-режима: выделенная точка входа serve и Dockerfile.serve, создающий статический бинарный файл без графического интерфейса, для развёртывания движка blunderDB как службы за обратным прокси-сервером. См. Безголовый режим (сервер).

0.25.0

07/06/2026

Серверный режим (headless): два новых метода для восстановления позиции без её сохранения — positions.fromXGID декодирует строку XGID в позицию, а positions.fromXGP читает файл одиночной позиции .xgp. См. Безголовый режим (сервер).

0.26.0

09/06/2026

Настройки отображения интерфейса в окне конфигурации: ползунок масштаба для увеличения или уменьшения всего интерфейса и выбор расположения панелей (снизу, сбоку или автоматически), чтобы лучше использовать широкие экраны. Добавлена информационная панель над доской, показывающая игроков и контекст матча (событие, место, раунд, дату, длину). При открытии базы данных панель матчей отображается сразу же, а разбор начинается с первой позиции. Горячие клавиши теперь не зависят от раскладки клавиатуры (AZERTY, QWERTY, QWERTZ…). Исправлено декодирование XGID (индикаторы Jacoby/Beaver и значение куба). См. Конфигурация.

0.27.0

13/06/2026

Панель Anki: новый режим свободной тренировки (cram), доступный по кнопке Cram рядом с Study, который показывает случайные позиции из колоды, не изменяя график интервального повторения — идеально для разминки перед турниром или интенсивного повторения колоды без нарушения её порядка. Поиск: новая команда blunders (псевдоним bl), загружающая худшие ошибки (equity/MWC) прямо в представление анализа, с необязательным числом для выбора количества (bl 50); новый фильтр по игроку pl'имя', находящий все позиции из матча с участием заданного игрока на любой стороне; и всплывающие подсказки, показывающие при наведении на каждый фильтр панели поиска соответствующий командный токен. Серверный (headless) режим: новые методы matches.movesByMatch (все ходы матча за один вызов) и positions.epc (Effective Pip Count для обоих игроков). См. Панель Anki и Список команд.

Содержание

Контакты

Автор: Kévin Unger <blunderdb@proton.me>. Вы также можете найти меня на Heroes под ником postmanpat.

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

Вот несколько способов связи:

  • Присоединиться к серверу Discord blunderDB: https://discord.gg/DA5PpzM9En

  • Написать мне по адресу blunderdb@proton.me.

  • Поговорить со мной, если мы встретимся на турнире.

  • На GitHub.

Сделать пожертвование

Если вам нравится blunderDB и вы хотите поддержать прошлые и будущие разработки, вы можете

  • угостить меня напитком, если мы имеем удовольствие встретиться!

  • сделать небольшое пожертвование через PayPal на адрес blunderdb@proton.me

Благодарности

Я посвящаю эту небольшую программу моей супруге Анн-Клер и нашей дорогой дочери Перрин. Я хотел бы особо поблагодарить нескольких друзей:

  • Tristan Remille — за то, что познакомил меня с нардами с радостью и добротой; за то, что указывает Путь к пониманию этой замечательной игры; за то, что продолжает поддерживать меня, несмотря на мои скромные попытки играть лучше.

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