README.md

Коррелятный навигатор — набор простых скриптов для реализации разнородных картотек, объединённых тематически. Ориентирован на персональное и коммерческое применение.

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

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

Под навигацией понимается определение своего места в смысловом поле: где ты, кто ты, что происходит. В основном, этим занимаются люди, но автоматика может помочь: сортировать, объединять, перепроверять, находить и т.д.

Концептуальный клей набора — растерянность и сомнения пользователя в том, что было и есть.

Общие для всех скриптов зависимости:

  • Python 3.10+

Рекомендуемый способ установки:

$ cd cona/
$ make test
# cp *.py /usr/local/bin/

Ниже описаны компоненты набора.

Catframes

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

Концепция

Вы строите абстрактную систему, которая сталкивается с физическим миром. Вам иногда нужно производить отладку, чтобы определить, что сломано — ваши абстракции или мир.

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

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

Особенности:

  1. можно склеить несколько папок последовательно;
  2. кадры выделяются среди других файлов по расширениям (.jpg, .png);
  3. кадры каждой папки сортируются в естественном порядке (natural order);
  4. подпапки игнорируются;
  5. разрешение выбирается эвристикой, которая старается не ухудшить качество большинства кадров;
  6. кадры пропорционально масштабируются с выравниванием по центру;
  7. можно показать на видео много разных текстовых индикаторов.

Зависимости

  • 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

План разработки:

  1. дизайн нового интерфейса командной строки, возможно с поддержкой веба (как git serve), что актуально для неюникодных консолей;
  2. индексирование mbox-файла, скорее всего в лежащую рядом SQLite-базу;
  3. реализация языка запросов для извлечения цепочек сообщений, присоединённых файлов, взаимосвязей между контактами;
  4. экспорт не только в виде отдельных сообщений и приложенных файлов, но и в агрегированном виде: в HTML, PDF, JSON, DOT (Graphviz).

Продвинутая «телефонная книжка»

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

Описание

Скрипты, помогающие преодолеть растерянность и сомнения в структуре реальности.

Конвейеры
0 успешных
0 с ошибкой