Блог

Последние статьи и ресурсы

31 May 2026
HyperFrames-Gradle : преобразование AsciiDoc в видео MP4

Плагин `hyperframes-gradle` преобразует AsciiDoc в видео MP4 через HyperFrames. AsciidoctorJ предоставляет DSL конфигурации. Мост Node.js изолирован за ProcessBuilder. Этот плагин заполняет пробел между слайдами и автономными видео. Вот почему он существует, как он взаимодействует с capsule-gradle, и что он добавляет в pipeline производства контента.

18 May 2026
Аудит моего потребления LLM : SQLite, OpenCode, Ollama Cloud, и почему моя подписка Pro взрывает мировой рынок

Я открыл SQLite-базу данных OpenCode для аудита моего фактического использования за 73 дня. 2,6 миллиарда токенов, 1 022 сессии, общая стоимость API – 22 цента. Подробное сравнение с Anthropic Claude (300K+ долларов), OpenAI GPT, Groq, HuggingFace, Together AI и китайскими поставщиками. Результат: моя подписка Ollama Cloud Pro за 20 евро в месяц – лучшее предложение на мировом рынке, включая прямые китайские предложения.

14 May 2026
Архитектура «Независимый плагин + Корневой потребитель»: почему мои Gradle-сборки дублируются

Клон, `./gradlew tasks`, и ваш Gradle-плагин готов к работе. Ноль конфигурации, ноль чтения README. Вот архитектура, которую я развернул в своих 6 плагинах foundry/public/ : минималистичный потребительский корень + автономная папка `{name}-plugin/`. Почему этот паттерн «кажущегося дублирования» является самым продуктивным для разработки Gradle-плагинов — с нативным dogfooding, изоляцией сборок и четким контрактом DAG.

12 May 2026
Le Knowledge Graph comme moteur de recommandation : comment j'ai tué les « articles connexes » chronologiques

Les « articles connexes » actuels sur cheroliv.com sont juste les 4 derniers posts publiés. Une aberration sémantique corrigée par un moteur de recommandation à trois couches : références explicites (xref), ontologie émergente (clusters NLP), et fallback chronologique. Le tout branché sur le Knowledge Graph de graphify, consommé par bakery — sans que engine ne sache rien de tout ça.

11 May 2026
в 27–45 раз эффективнее, чем Claude и GPT: как флот из 23 дообученных экспертов ИИ разгромил рынок

Коэффициент эффективности от 27× до 45× по сравнению с Claude, GPT и им подобными: как флот из 23 ИИ-экспертов, дообученных на моем workspace, разносит рынок. Архитектура, датасет, обучение и полное развертывание.

08 May 2026
Plugin Gradle Maison pour Piloter Deux Instances Ollama Pro en Parallèle

Un build.gradle.kts maison pour contrôler deux instances Ollama Pro depuis des tâches Gradle — démarrage, arrêt, sign-in, pull de modèles, et health check. De l'infra pilotée au build tool.

08 May 2026
Использование двух подписок Ollama Pro на одной машине с помощью Docker

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

07 May 2026
Установка терминала Kitty и настройка Zsh в качестве оболочки по умолчанию в Xubuntu

В этом посте представлен полный процесс установки и настройки терминала `kitty` в Ubuntu.

06 May 2026
DGX Spark против Облака против Подписок LLM — Экономический Бенчмарк который убивает мечту о локальном железе

По цене $4 699 – DGX Spark, $20/мес – Ollama Pro, $1,38/ч – H100 в облаке – подсчёт сделан быстро. Этот бенчмарк сравнивает все доступные варианты в 2026 году для запуска LLM, от инференса до fine‑tuning. Вердикт: Spark — это предмет роскоши, а не прибыльный инструмент. Истинная причина покупки локального оборудования в 2026 году — не экономическая, а политическая.

04 May 2026
Матрица управления LLM — Почему безопасность вашего ИИ начинается с иерархии

А что если безопасность вашего ИИ зависит не от промпта, а от файловой системы? Этот архитектурный манифест определяет матрицу 4×4 — физическая зона × право доступа LLM — которая делает механически невозможным утечку секретов, смешивание открытого и закрытого кода, а также публикацию мнений, замаскированных под факты. Нет необходимости писать промпты. Нет правил, которые нужно запоминать. Только папки.

03 May 2026
Гранулирование OSS/CSS — Почему я разделил `foundry/` на две части

foundry/` смешивал открытый исходный код и закрытый код в одной папке. RAG и knowledge graph не умели различать. Решение ? Разделить эту функциональную зону на две части — OSS/ для публичного использования (Apache 2.0, свободная индексация), CSS/ для закрытого исходного кода (только приватный датасет). Больше не нужно говорить LLM быть осторожным. Файловая система делает это за него. И я воспользовался этим, чтобы разместить cheroliv.com там, где он всегда должен был находиться : в office/sites/

02 May 2026
Автоматизированное эпистемическое разграничение — как LLM защищает мой ментальный сад

Паттерн STIMULUS не просто фиксирует сырые идеи и распределяет их по документам воркспейса. Он добавляет критически важный слой: LLM отвечает за классификацию каждой единицы информации как Vision (пригодно для публикации в блоге), Opinion (ограничено частным кругом) или Stratégie (ограниченное распространение). Эта автоматизированная эпистемическая сегрегация позволяет свободно мыслить в «Круге 0», не опасаясь неуместной публикации.

01 May 2026
Наш первый найм: анонимизатор наборов данных — MVP0 в испытательный период

Прежде чем заниматься RAG, fine-tuning или SaaS, нужны чистые данные. Наш первый сотрудник в испытательный срок — Анонимизатор — обнаруживает и очищает PII в многотехнологических источниках (SQL, pgvector, ONNX, Graphify, JSON, YAML, AsciiDoc). Это MVP0. Без него всё остальное либо незаконно, либо технически ухудшено. Вот как этот блок превращает универсальную проблему в продаваемый продукт.

01 May 2026
Наш первый сотрудник: анонимайзер наборов данных — MVP0 в период испытания

Прежде чем заниматься RAG, fine-tuning или SaaS, нужны чистые данные. Наш первый сотрудник на испытательный срок — Анонимайзер — обнаруживает и очищает PII в многотехнологичных источниках (SQL, pgvector, ONNX, Graphify, JSON, YAML, AsciiDoc). Это MVP0. Без него всё остальное либо незаконно, либо технически ухудшено. Вот как этот блок превращает универсальную проблему в рыночный продукт.

30 April 2026
Секретный сад разработчика: как пространственная онтология выравнивает LLM без промпт-инжиниринга

А что, если лучший способ выравнивания LLM — это не промпт, а файловая система? Мое рабочее пространство структурировано в виде четырех концентрических кругов доверия: от самого интимного до самого публичного. LLM не нужно запоминать правила — она видит их в каждом пути к файлу. Вот как эта пространственная онтология делает управление агентом более надежным, чем блок текстовых правил.

29 April 2026
Миграция Supabase → Firebase: Подключение формы обратной связи к Firestore без бэкенда

Мой контактная форма работала на макете уже несколько месяцев. Изначальный план с использованием Supabase был отвергнут в пользу Firebase. Я рассказываю о создании проекта, настройке Firestore, переписывании JavaScript отправки, очистке мёртвого кода и о том, что эта миграция говорит о менталитете «завершать начатое».

28 April 2026
DeepSeek-V4-Pro, Kimi K2.6, GLM-5.1 : Три LLM в испытании Vibe Coding с длинным контекстом

За три недели я запустил три основные модели в сессиях разработки плагинов Gradle с использованием Opencode. Контекст 30 K токенов, управление Eager/Lazy/Hot/Warm/Cold, задачи рефакторинга, TDD и архитектура. Вот какой из них выжил — и почему остальные провалились.

27 April 2026
Audit de Contexte Agent : Quand Votre Propre Gouvernance Devient le Problème — et Comment la Réparer sans Rien Perdre

Après deux articles sur la structuration et le backup du contexte agent, je découvre que le fichier qui documente la méthode est lui-même devenu le plus gros consommateur de tokens. Audit section par section d'un AGENT_MODUS_OPERANDI de 627 lignes, identification des doublons, et solution de split encyclodéique qui préserve l'ingénierie sans saturer le contexte.

26 April 2026
Скользящее окно и «холодная волна»: когда контекст агента переполняется и возникает необходимость архивирования без потерь

После месяцев сессий Opencode файлы управления раздулись. 5200 строк загружаются автоматически. Я концептуализирую механизм скользящего окна (sliding window) и «идентичной холодной волны», чтобы поддерживать легкий активный контекст, ничего не теряя.

25 April 2026
Quand Gradle 9, Docker 29 et Testcontainers se mettent la rate au court-bouillon : debugging d'un build JHipster

Un `./gradlew build` qui échoue sur onze erreurs successives, depuis une variable `reportsDir` inexistante jusqu'à Docker Engine 29 qui rejette le client docker-java 1.32. Voici le carnet de bord complet du debugging d'un build JHipster sur Gradle 9, Java 21 et Testcontainers 2.0.5.

24 April 2026
Управление ИИ-агентом с помощью AsciiDoc: моя стратегия Eager/Lazy для сессий Opencode без утечки контекста

Чтобы справиться с утечкой контекста между сессиями ИИ-агента, я разработал кустарную стратегию управления на основе файлов AsciiDoc. Принцип заключается в следующем: автоматически загружаемая панель управления Eager, руководство пользователя Lazy по запросу и обязательная процедура завершения сессии.

22 April 2026
Почему `serve` отображал некрасивый сайт, тогда как `publishSite` был идеальным

Задача `serve` моего плагина Gradle JBake отображал прямоугольные кнопки, нечитаемый текст и частично отсутствующий CSS, тогда как `publishSite` производил идеальный сайт. Root cause : аргументы CLI JBake, переданные с неправильным синтаксисом. Вот полная диагностика и как я это исправил.

21 April 2026
OpenCode et le PATH incomplet : pourquoi vos outils n'étaient pas dans le shell de l'agent

OpenCode exécute des shells non-interactifs qui ne sourcent pas .zshrc. Résultat : SDKMAN, NVM, ~/apps et pnpm sont absents du PATH de l'agent. Diagnostic complet du problème, comparaison du comportement SDKMAN vs NVM, et solution définitive via .zshenv + symlink ~/.nvm/current.

19 April 2026
Intégrer Graphify dans un workflow Gradle : du Knowledge Graph au diagramme PlantUML en une commande

Graphify extrait un Knowledge Graph de votre codebase. Le plugin Gradle PlantUML transforme ce graphe en diagrammes PlantUML déterministes. Pipeline complet : pip install graphify → graphify . --no-viz → ./gradlew generateKnowledgeGraphDiagram → diagrammes PNG versionnés dans Git.

19 April 2026
Интегрировать Graphify в рабочий процесс Gradle: от графа знаний к диаграмме PlantUML за одну команду

Graphify извлекает Knowledge Graph из вашей кодовой базы. Плагин Gradle PlantUML преобразует этот граф в детерминированные диаграммы PlantUML. Полный пайплайн: pip install graphify → graphify . --no-viz → ./gradlew generateKnowledgeGraphDiagram → версиянированные PNG-диаграммы в Git

18 April 2026
Супер советы команды fg: когда Ctrl+Z спасает ваш терминальный сеанс

Вы запустили команду, блокирующую терминал? Ctrl+Z приостанавливает её, fg возобновляет. Узнайте, как fg, bg и jobs преобразуют вашу продуктивность в терминале.

17 April 2026
VS Code в Домашней директории : локальная установка и настройка шрифтов без sudo

Установите VS Code в вашу домашнюю директорию Linux, чтобы сохранять полный контроль без sudo. Затем настройте шрифты меню и обозревателя файлов — путь, усеянный препятствиями, который в итоге приводит к читаемому пользовательскому интерфейсу.

16 April 2026
Миграция плагина Asciidoctor RevealJS на buildSrc Kotlin: реверс-инжиниринг Groovy API

Как перенести конфигурацию задачи `AsciidoctorJRevealJSTask` из корневого buildscript в автономный Kotlin-плагин buildSrc, заменив Groovy DSL `ruby { gems() }` соответствующими внутренними механизмами, обнаруженными с помощью интроспекции байт-кода.

15 January 2026
Architecture Portfolio JBake - Vision et Use Cases

Découvrez comment j'ai résolu une série de problèmes complexes de mocking Mockito dans les tests d'un plugin Gradle, de l'erreur "Wanted but not invoked" aux "Unfinished Stubbing" en cascade.

14 January 2026
Architecture Hybride : Le Meilleur des Deux Mondes avec Supabase et Spring Boot

Combinez Supabase pour le CRUD simple et Spring Boot pour la logique complexe. Architecture hybride pragmatique, évolutive et économique.

14 January 2026
Гибридная архитектура: лучшее из двух миров с Supabase и Spring Boot

Используйте Supabase для простого CRUD и Spring Boot для сложной логики. Прагматичная гибридная архитектура: масштабируемая и экономичная.

15 November 2025
L Art du Pré-chargement : Éliminer le "Flash" de Thème avec JavaScript et CSS

07 November 2025
Logging Efficace dans les Tests Fonctionnels de Plugins Gradle

Guide complet pour mettre en place un système de logging robuste et indépendant dans les tests fonctionnels de plugins Gradle avec SLF4J et Logback

01 November 2025
Отображение цветных квадратов в AsciiDoc: практическое руководство

Практическое руководство по интеграции образцов цвета в AsciiDoc с использованием макроса pass:[] с инлайновым HTML и CSS. Совместимо с JBake и всеми процессорами.

20 October 2025
Интернационализация статического сайта JBake с использованием Thymeleaf

05 October 2025
Installer et vérifier Tor Browser sous Ubuntu

Procédure complète pour télécharger, vérifier et lancer Tor Browser sous Ubuntu, avec une réflexion sur la vérification cryptographique et la navigation éthique et éducative dans le réseau Tor.

27 September 2025
Статья 5: Приключение общего libs.versions.toml

Погружение в каталог версий Gradle (libs.versions.toml) и как делиться им в композитном билде, на примере реальной проблемы, возникшей с нашим плагином site-baker.

26 September 2025
Статья 4: Ловушка кэша конфигурации Gradle

Неожиданное приключение по отладке, которое погрузило нас в тонкости кеша конфигурации Gradle. Узнайте, почему наши сборки вели себя странно и как мы решили эту проблему.

25 September 2025
Article 3 : Intégration de Jackson pour le Parsing YAML avec TDD dans un Plugin Gradle

Découvrez comment intégrer la bibliothèque Jackson pour parser des fichiers de configuration YAML en objets Kotlin dans un plugin Gradle, en suivant une approche de Développement Guidé par les Tests (TDD).

24 September 2025
Статья 2: Разработка Gradle-плагина с использованием подхода TDD

В этой статье мы разберем, как создать надежную базу разработки для плагина Gradle, используя подход разработки через тестирование (TDD — Test-Driven Development).

23 September 2025
Статья 1: Создание Gradle-плагина с нуля с помощью команды `gradle init

Пошаговое руководство по инициализации проекта Gradle-плагина с использованием стандартной задачи `init`, разбору созданной структуры и запуску первых команд сборки.

22 September 2025
Статья 0: Настройка среды для создания плагинов Gradle

Перед тем как начать кодировать наш первый плагин, нам нужно подготовить нашу машину. Это руководство покажет, как установить и настроить необходимые инструменты: JDK, IntelliJ IDEA, Gradle и JBake.

19 July 2025
CI/CD Python – Часть 3: идём дальше с Poetry, Docker и продвинутой публикацией

Часть 3 - Полное руководство по созданию надежного CI/CD пайплайна с использованием GitHub Actions, от линтинга и автоматических тестов до автоматического развертывания на PyPI при релизе.

18 July 2025
Часть 2 : Индустриализация и обеспечение безопасности расширенного пайплайна CI/CD на Python

Часть 2 — Полное руководство по настройке надежного пайплайна CI/CD с использованием GitHub Actions, от линтинга и автоматических тестов до автоматического развертывания в PyPI при релизах.

17 July 2025
Часть 1: Создание простого CI/CD конвейера для Python и PyPI

Часть 1 — Полное руководство по настройке надежного CI/CD конвейера с помощью GitHub Actions: от линтинга и автоматизированных тестов до автоматического развертывания в PyPI при релизах.

16 July 2025
Développement d'un Bot Discord Musical : Architecture Fonctionnelle et Log Driven Development

15 July 2025
Refroidir et surveiller la température de son laptop sous Ubuntu

14 July 2025
История отладки: укрощение капризов Firefox с Bootstrap 5

13 July 2025
Résoudre le Défi des Tests Unitaires Gradle avec `gradle.properties`

Découvrez une technique efficace pour tester unitairement des plugins Gradle qui dépendent de `gradle.properties`. Cet article explique comment utiliser `ExtraPropertiesExtension` pour simuler des propriétés, garantissant des tests isolés, fiables et maintenables, illustré par des diagrammes PlantUML.

11 July 2025
Оптимизация управления задачами Gradle с помощью Kotlin DSL и buildSrc

Оптимизируйте Gradle с помощью buildSrc и Kotlin DSL для создания переиспользуемых задач и более чистых сборок.

09 July 2025
TDD настраиваемого плагина Gradle на Kotlin с JBake и JGit

Этот пост описывает полный процесс проектирования и тестирования (TDD) плагина Gradle, написанного на Kotlin DSL. Этот плагин автоматизирует создание статических сайтов с помощью *JBake* и *развёртывание Git* через *JGit*, всё это из одного YAML-файла конфигурации.

20 June 2025
AsciiDoc : Découvrir et maîtriser la syntaxe pour une documentation efficace

Plongez dans la syntaxe d’AsciiDoc et apprenez à écrire des documents clairs, structurés et puissants pour tous vos besoins de documentation et de publication.

28 May 2025
Как вывести локальный сервис в интернет из Ubuntu: полное руководство по пробросу портов (port forwarding)

Как настроить проброс портов (port forwarding), чтобы сделать локальный сервис, запущенный на Ubuntu, доступным извне вашей домашней сети.

17 November 2024
Debugging Mockito: Résoudre l'erreur "Wanted but not invoked" dans les tests de plugins Gradle

Découvrez comment j'ai résolu une série de problèmes complexes de mocking Mockito dans les tests d'un plugin Gradle, de l'erreur "Wanted but not invoked" aux "Unfinished Stubbing" en cascade.

24 September 2024
Kotlin Arrow : Освоение навигации в монаде Either

Узнайте о передовых техниках эффективной навигации по правой и левой сторонам монады Either с использованием библиотеки Kotlin Arrow.

23 September 2024
Практическое руководство: поиск файлов в linux

Научитесь эффективно искать файлы в linux с помощью Zsh, используя `find`, `locate` и `grep`.

23 September 2024
Заметка linux

Простая заметка о unix/linux и терминале bash

01 February 2024
Выставить порт подсистемы Linux для хоста Windows

Открыть порт подсистемы Linux для хоста Windows, используя команду `wsl --install`.

30 January 2024
Установить Pandoc

Установить Pandoc, который является преобразователем документов, на Linux и Windows WSL

25 December 2023
Реализация kotlin.Triple в JavaScript, TypeScript и Python

Предлагаем реализацию kotlin.Triple на JavaScript, TypeScript и Python

22 December 2023
Введение в Google Apps Script

Полное введение в Google Apps Script

20 December 2023
Экспресс-курс по Google Form Script и автоматизации

Экспресс-курс по Google Form Script и автоматизации

19 November 2023
Мемо Python

простая заметка Python

24 August 2023
Веб-разработчик

Обучение веб-разработчик

21 August 2023
Торговые карточные игры (ТКГ)

Обучение коллекционным карточным играм (TCG)

19 August 2023
Заметка Typescript

простая заметка Typescript

14 August 2023
Шпаргалка по CSS

простая памятка по CSS

13 August 2023
Mémo HTML

simple mémo HTML

04 August 2023
Mémo Javascript

simple mémo Javascript

31 December 2022
Мемо Кадрирование

простая заметка о планировании проекта.

29 May 2022
Памятка по Kotlin

простая заметка kotlin

28 May 2022
Памятка по JVM

простая памятка по JVM

23 May 2022
Мемо Gradle

простой мемо gradle

17 May 2022
Обучение - Kotlin: enum, sealed classes

Программирование на kotlin: enum, sealed classes

12 May 2022
Обучение — Kotlin

Программирование на kotlin, план.

09 January 2022
Мемо дизайн-система

Простой мемо полезных ссылок и ссылок в дизайн-системе

03 November 2020
Kubernetes, Microk8s, Docker: первые шаги

Установка, настройка микро-кубернетес, docker и запуск helloworld на linux/unix

28 September 2020
Gradle: Выполнить внешний процесс из задачи Gradle

Как запустить внешний бинарник из задачи Gradle

27 September 2020
Kotlin: NotImplementedException, NotImplementedError

Ещё не реализовано, позволяет поднять правильное исключение.

26 September 2020
распаковать

приложение untar

25 September 2020
Gradle: Перезапускать тесты даже когда они UP-TO-DATE

добавьте аргумент --rerun-tasks к командной строке.

24 September 2020
Docker не устанавливает приложение, а просто скачивает его

оптимизация Docker

23 September 2020
Gherkin на французском:

BDD, cucumber, gherkin на французском

22 September 2020
Gradle cli: переопределить параметр

./gradlew -Pparam_component=CUSTOM

21 September 2020
Мемо git

простое git мемо

20 September 2020
Скачать с URL

wget загрузчик URL

19 September 2020
Создать загрузочный диск

создать свой загрузочный диск

18 September 2020
Разархивировать в CLI в целевой папке

распаковать в командной строке

17 September 2020
Показать сумму размеров файлов в списке каталогов

сумма размеров файлов в папке

16 September 2020
Удалить ветку на GitHub

дополнение к заметке git

15 September 2020
Asciidoc/Markdown Мемо

простая заметка ascidoc/markdown

19 August 2019
Debian: Установка файла .deb из командной строки

установить .deb из командной строки

16 August 2019
Gradle: папка ресурсов видна в IDE

добавить папку в classpath сборки Gradle

14 August 2019
Скрипт Groovy, grab и конфигурация Ivy

gradle groovy ivy

13 August 2019
Groovy: немного алгебры, НОД и НОК

алгебры в Groovy

12 August 2019
Bash: Найти файлы по расширению и вывести в файл с помощью find

немного bash с find

01 August 2019
Управлять цифровым проектом с каскадной методологией

немного методологии цифровых проектов с каскадной методологией

30 July 2019
Список баз данных в экземпляре PostgreSQL

подбор параметров postgres

29 July 2019
Groovy: Переименовать файлы рекурсивно

рекурсия в Groovy

19 July 2019
Groovy: Поиск файлов с критерием, копия выделения

поиск файлов по шаблону в groovy

18 July 2019
Groovy: работа с файлами, поиск и удаление

работа с файлами и поиск символов в Groovy

17 July 2019
Groovy: Заменить последовательность символов в строке String и загрузить Properties из файла

манипуляция Properties и поиск шаблона в Groovy

10 July 2019
Groovy: символы ASCII

groovy, циклы и манипуляции с кодом ascii