English:
Compiled distr with autoupdate available at https://amba.cloud/becqmoni
Youtube channel for feature view available at https://www.youtube.com/@Am6er
User config files stored at %AppData%\BecqMoni
Russian:
Дистрибутив с инсталлятором доступен на https://amba.cloud/becqmoni
Youtube канал, где можно посмотреть нововведения https://www.youtube.com/@Am6er
Конфигурационные файлы сохраняются в пользовательском профиле %AppData%\BecqMoni
Using SpecUtils binding for C# For original SpecUtils big thanks SandiaLabs!
Каждая строка ниже уже стоила потерянной работы минимум однажды; даты и разборы — в завещаниях. Проверять ДО того, как наступить.
| где | грабля | что делать |
|---|---|---|
| rtk и обёртки чтения | могут отдать снимок дерева МНОГОЧАСОВОЙ давности: 13.08 rtk git status/git log и чтение TODO.md показали вершину a1c5e4e вместо реальной 17e3af4, закрытые в тот же день задачи выглядели несделанными |
начинать сессию с ПРЯМЫХ git log --oneline -5 и git status --porcelain без обёрток и сверять с тем, что показывают инструменты чтения |
| сборка → рабочие каталоги | tools/CORPUS/scripts/wd_* держат СВОЮ копию приложения: проба, собранная против свежего кода, исполняет старый exe, и правка «не проявляется» |
пересобрал приложение — пересобери каталоги (mk_appwd.ps1); свежесть проверять по дате exe в каталоге прогона |
| одиночные csc-сборки | файлы-довески без Main (ResidualScan.cs, GadrasDetector.cs) знает только build_all.ps1; mk_appwd.ps1 собирал пробу одиночным csc и молча сломался при появлении довеска (не собирался с 13.08 по 14.08) |
новый довесок вносить в ОБА списка; «у проб нет проекта» — удалив «мёртвый» код, собрать ВСЕ tools/effmaker/**/*.cs, обрезанный поиск вызовов уже дважды ломал молча |
| MSBuild | правка файла со старым LastWriteTime (копирование, откат) не пересобирается — исполняется прежний код при чистом логе сборки |
коснуться файла или собирать /t:Rebuild; при сомнении сверить дату сборки с датой правки |
sqlite3.connect |
промах по пути МОЛЧА СОЗДАЁТ пустой файл: отказ выглядит как «в базе нет таблицы», а в дереве остаётся файл-мусор (database/nucdb.sqlite 13.08, matdb.sqlite в корне 16.08 — дважды одно и то же) |
открывать ТОЛЬКО через file:…?mode=ro с uri=True — тогда неверный путь даёт ошибку, а не новый файл; пути брать из таблицы ниже, а не по памяти |
WebFetch и pdftotext -layout |
оба портят числовые таблицы: пересказчик выбрасывает строки, -layout сдвигает колонки на строку |
извлекать двумя способами и сверять с якорем из текста |
| анти-боты (HAL, ScienceDirect) | Invoke-WebRequest получает страницу-заглушку/403 вместо PDF — и это видно только по размеру файла |
проверять сигнатуру %PDF и размер; путь в обход — браузер с JS и fetch из контекста страницы (добыча Xu-2022, 14.08) |
| параллельные сессии | два агента в одном дереве: git add . уносит чужие правки, номера строк TODO сталкиваются (T27, N17 — дважды за день) |
git add только поимённо; свободный номер строки — python tools/check_registry.py, не глазами |
| конфиг Amber | %AppData%\BecqMoni — живой конфиг: читать можно, писать НЕЛЬЗЯ (правки только руками Amber); спектры корпуса read-only |
прогонам собирать свой каталог (mk_appwd.ps1) — приложение standalone всегда, кроме ClickOnce, и конфиг берёт от рабочего каталога |
| счёт по корпусу | числа только ПО ЧАСТЯМ (понятная/непонятная); score.py без ключа --members разворачивает цепочки в фантомы (recall 100 % → 46 % на ровном месте, наступлено повторно 14.08); стоимость кода мерить ЦП-временем, не часами |
--part=… --members всегда; в отчёте называть часть; сравнивать прогоны по cpu_ms |
Трижды агент открывал базу не по тому пути и получал пустышку вместо отказа
(database/nucdb.sqlite 13.08.2026, matdb.sqlite в корне 16.08.2026). Пути —
здесь, и других нет.
| база | о чём | путь-ИСТОЧНИК (в коммите) |
|---|---|---|
matdb.sqlite |
вещество и перенос: NIST XCOM, ESTAR/STAR, составы, сечения | BecquerelMonitor/matdb.sqlite |
schemedb.sqlite |
схемы уровней Geant4 (G4EMLOW, EADL/EPICS/EPDL) | BecquerelMonitor/schemedb.sqlite |
nucdb.sqlite |
нуклиды, линии, выходы, каскадные совпадения | BecquerelMonitor/nucdb.sqlite |
Раскладка таблиц — в database/scheme.md; каталог database/
держит ОПИСАНИЕ, самих баз в нём нет.
Рядом со сборками и прогонами лежат копии, которые кладёт сборка и
mk_appwd.ps1; править и читать «на постоянно» их не надо:
BecquerelMonitor/bin/<Configuration>/, tools/effmaker/probes/build/,
tools/CORPUS/scripts/wd_*/.
⛔ Читать питоном только так — иначе промах по пути создаёт файл, а не ошибку:
con = sqlite3.connect('file:%s?mode=ro' % path.replace('?', '%3f'), uri=True)⛔ Писать в базы — только с прямого разрешения Amber на САМУ ЗАПИСЬ (правило 09.08.2026). Разрешение на метод им не является.