Коррелятный навигатор — набор простых скриптов для реализации разнородных картотек, объединённых тематически. Ориентирован на персональное и коммерческое применение.
Под коррелятами здесь подразумеваются информационные записи, неизвестным образом соотносящияся с действительным положением вещей. Феноменом или объектом это называть нельзя, т.к. они определяются субъектом. Пока субъекта нет, данные — это просто данные, но у них есть причины, и эти данные есть корелляты своих причин.
Я избегаю слова «данные», т.к. данные могут быть случайными, бессмысленными, нерелевантными. Здесь же подразумеваются записи, обязательно отражающие что-то небезразличное пользователю. Также, они либо были чьим-то записанным опытом, либо им предстоит опытом стать. Они хранятся не в целях автоматической обработки, подобно тому как книги пишутся, чтобы быть прочитанными, а не для того, чтобы быть просканированными поисковыми движками.
Под навигацией понимается определение своего места в смысловом поле: где ты, кто ты, что происходит. В основном, этим занимаются люди, но автоматика может помочь: сортировать, объединять, перепроверять, находить и т.д.
Концептуальный клей набора — растерянность и сомнения пользователя в том, что было и есть.
Общие для всех скриптов зависимости:
- Python 3.10+
Рекомендуемый способ установки:
$ cd cona/
$ make test
# cp *.py /usr/local/bin/
Ниже описаны компоненты набора.
Catframes
Склеивает видео из серий кадров, требуя минимум конфигурации. Цель разработки — сжатие хронологии событий для длительного хранения. Можно еще использовать для таймлапсов, кукольной анимации и т.п.
Концепция
Вы строите абстрактную систему, которая сталкивается с физическим миром. Вам иногда нужно производить отладку, чтобы определить, что сломано — ваши абстракции или мир.
Важные физические события, особенно связанные с людьми, обычно происходят медленно. Видеозапись в реальном времени для медленных событий может быть расточительна по ресурсам, особенно месту на диске.
Предлагается сохранять кадры как фотографии с частотой ниже единицы в директории, названные как отрезки времени (см. slow_capture.sh
), и по расписанию пережимать их в ускоренные видеозаписи.
Особенности:
- можно склеить несколько папок последовательно;
- кадры выделяются среди других файлов по расширениям (.jpg, .png);
- кадры каждой папки сортируются в естественном порядке (natural order);
- подпапки игнорируются;
- разрешение выбирается эвристикой, которая старается не ухудшить качество большинства кадров;
- кадры пропорционально масштабируются с выравниванием по центру;
- можно показать на видео много разных текстовых индикаторов.
Зависимости
- Pillow (тестировалось на версии 9.2.0)
- FFmpeg (тестировалось на версии 4.4.2)
- TrueType-шрифты
Библиотеку Pillow можно установить через pip, но в некоторых Linux-дистрибутивах есть также свои пакеты:
- в Debian и Ubuntu:
python3-pil
; - в Gentoo и Calculate Linux:
dev-python/pillow
; - в ALT Linux:
python3-module-Pillow
.
Использование
У скрипта хорошие стандартные настройки:
- качество — среднее (весьма хорошее),
- цвет полей — чёрный,
- частота кадров — 30.
Примеры команд смотрите в документации.
С помощью опции --limit=СЕКУНДЫ
вы можете быстро создать, например, десятисекундные пробники разных настроек и визуально сравнить их.
Для просмотра ускоренных видео рекомендуется использовать плеер с возможностью точной перемотки. Иногда эта возможность отключена по-умолчанию для улучшения производительности. Например, в SMPlayer флажок находится в меню Настройки → Интерфейс → Перемотка → Точное позиционирование.
В плеерах также иногда есть горячие клавиши для перелистывания по одному кадру. В SMPlayer это запятая и точка в английской раскладке.
Распаковщик mbox
На основе этого скрипта: https://gist.github.com/georgy7/3a80bce2cd8bf2f9985c
План разработки:
- дизайн нового интерфейса командной строки, возможно с поддержкой веба (как git serve), что актуально для неюникодных консолей;
- индексирование mbox-файла, скорее всего в лежащую рядом SQLite-базу;
- реализация языка запросов для извлечения цепочек сообщений, присоединённых файлов, взаимосвязей между контактами;
- экспорт не только в виде отдельных сообщений и приложенных файлов, но и в агрегированном виде: в HTML, PDF, JSON, DOT (Graphviz).
Продвинутая «телефонная книжка»
Еще даже дизайн не прорабатывался. Хотел сделать замену Mediawiki для локального хранения родословной, людей вообще, а также событий. Идея в том, чтобы хранить что-то похожее на граф с разными видами связей, только в виде файлов, и рядом складировать фотографии.
Описание
Скрипты, помогающие преодолеть растерянность и сомнения в структуре реальности.