Блог
Последние статьи и ресурсы
HyperFrames-Gradle : преобразование AsciiDoc в видео MP4
Плагин `hyperframes-gradle` преобразует AsciiDoc в видео MP4 через HyperFrames. AsciidoctorJ предоставляет DSL конфигурации. Мост Node.js изолирован за ProcessBuilder. Этот плагин заполняет пробел между слайдами и автономными видео. Вот почему он существует, как он взаимодействует с capsule-gradle, и что он добавляет в pipeline производства контента.
Аудит моего потребления 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 евро в месяц – лучшее предложение на мировом рынке, включая прямые китайские предложения.
Архитектура «Независимый плагин + Корневой потребитель»: почему мои Gradle-сборки дублируются
Клон, `./gradlew tasks`, и ваш Gradle-плагин готов к работе. Ноль конфигурации, ноль чтения README. Вот архитектура, которую я развернул в своих 6 плагинах foundry/public/ : минималистичный потребительский корень + автономная папка `{name}-plugin/`. Почему этот паттерн «кажущегося дублирования» является самым продуктивным для разработки Gradle-плагинов — с нативным dogfooding, изоляцией сборок и четким контрактом DAG.
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.
в 27–45 раз эффективнее, чем Claude и GPT: как флот из 23 дообученных экспертов ИИ разгромил рынок
Коэффициент эффективности от 27× до 45× по сравнению с Claude, GPT и им подобными: как флот из 23 ИИ-экспертов, дообученных на моем workspace, разносит рынок. Архитектура, датасет, обучение и полное развертывание.
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.
Использование двух подписок Ollama Pro на одной машине с помощью Docker
Docker позволяет дублировать подписку Ollama Pro на одной и той же машине, изолируя ключи идентификации и сетевые порты. Вот пошаговая инструкция, как это сделать.
Установка терминала Kitty и настройка Zsh в качестве оболочки по умолчанию в Xubuntu
В этом посте представлен полный процесс установки и настройки терминала `kitty` в Ubuntu.
DGX Spark против Облака против Подписок LLM — Экономический Бенчмарк который убивает мечту о локальном железе
По цене $4 699 – DGX Spark, $20/мес – Ollama Pro, $1,38/ч – H100 в облаке – подсчёт сделан быстро. Этот бенчмарк сравнивает все доступные варианты в 2026 году для запуска LLM, от инференса до fine‑tuning. Вердикт: Spark — это предмет роскоши, а не прибыльный инструмент. Истинная причина покупки локального оборудования в 2026 году — не экономическая, а политическая.
Матрица управления LLM — Почему безопасность вашего ИИ начинается с иерархии
А что если безопасность вашего ИИ зависит не от промпта, а от файловой системы? Этот архитектурный манифест определяет матрицу 4×4 — физическая зона × право доступа LLM — которая делает механически невозможным утечку секретов, смешивание открытого и закрытого кода, а также публикацию мнений, замаскированных под факты. Нет необходимости писать промпты. Нет правил, которые нужно запоминать. Только папки.
Гранулирование OSS/CSS — Почему я разделил `foundry/` на две части
foundry/` смешивал открытый исходный код и закрытый код в одной папке. RAG и knowledge graph не умели различать. Решение ? Разделить эту функциональную зону на две части — OSS/ для публичного использования (Apache 2.0, свободная индексация), CSS/ для закрытого исходного кода (только приватный датасет). Больше не нужно говорить LLM быть осторожным. Файловая система делает это за него. И я воспользовался этим, чтобы разместить cheroliv.com там, где он всегда должен был находиться : в office/sites/
Автоматизированное эпистемическое разграничение — как LLM защищает мой ментальный сад
Паттерн STIMULUS не просто фиксирует сырые идеи и распределяет их по документам воркспейса. Он добавляет критически важный слой: LLM отвечает за классификацию каждой единицы информации как Vision (пригодно для публикации в блоге), Opinion (ограничено частным кругом) или Stratégie (ограниченное распространение). Эта автоматизированная эпистемическая сегрегация позволяет свободно мыслить в «Круге 0», не опасаясь неуместной публикации.
Наш первый найм: анонимизатор наборов данных — MVP0 в испытательный период
Прежде чем заниматься RAG, fine-tuning или SaaS, нужны чистые данные. Наш первый сотрудник в испытательный срок — Анонимизатор — обнаруживает и очищает PII в многотехнологических источниках (SQL, pgvector, ONNX, Graphify, JSON, YAML, AsciiDoc). Это MVP0. Без него всё остальное либо незаконно, либо технически ухудшено. Вот как этот блок превращает универсальную проблему в продаваемый продукт.
Наш первый сотрудник: анонимайзер наборов данных — MVP0 в период испытания
Прежде чем заниматься RAG, fine-tuning или SaaS, нужны чистые данные. Наш первый сотрудник на испытательный срок — Анонимайзер — обнаруживает и очищает PII в многотехнологичных источниках (SQL, pgvector, ONNX, Graphify, JSON, YAML, AsciiDoc). Это MVP0. Без него всё остальное либо незаконно, либо технически ухудшено. Вот как этот блок превращает универсальную проблему в рыночный продукт.
Секретный сад разработчика: как пространственная онтология выравнивает LLM без промпт-инжиниринга
А что, если лучший способ выравнивания LLM — это не промпт, а файловая система? Мое рабочее пространство структурировано в виде четырех концентрических кругов доверия: от самого интимного до самого публичного. LLM не нужно запоминать правила — она видит их в каждом пути к файлу. Вот как эта пространственная онтология делает управление агентом более надежным, чем блок текстовых правил.
Миграция Supabase → Firebase: Подключение формы обратной связи к Firestore без бэкенда
Мой контактная форма работала на макете уже несколько месяцев. Изначальный план с использованием Supabase был отвергнут в пользу Firebase. Я рассказываю о создании проекта, настройке Firestore, переписывании JavaScript отправки, очистке мёртвого кода и о том, что эта миграция говорит о менталитете «завершать начатое».
DeepSeek-V4-Pro, Kimi K2.6, GLM-5.1 : Три LLM в испытании Vibe Coding с длинным контекстом
За три недели я запустил три основные модели в сессиях разработки плагинов Gradle с использованием Opencode. Контекст 30 K токенов, управление Eager/Lazy/Hot/Warm/Cold, задачи рефакторинга, TDD и архитектура. Вот какой из них выжил — и почему остальные провалились.
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.
Скользящее окно и «холодная волна»: когда контекст агента переполняется и возникает необходимость архивирования без потерь
После месяцев сессий Opencode файлы управления раздулись. 5200 строк загружаются автоматически. Я концептуализирую механизм скользящего окна (sliding window) и «идентичной холодной волны», чтобы поддерживать легкий активный контекст, ничего не теряя.
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.
Управление ИИ-агентом с помощью AsciiDoc: моя стратегия Eager/Lazy для сессий Opencode без утечки контекста
Чтобы справиться с утечкой контекста между сессиями ИИ-агента, я разработал кустарную стратегию управления на основе файлов AsciiDoc. Принцип заключается в следующем: автоматически загружаемая панель управления Eager, руководство пользователя Lazy по запросу и обязательная процедура завершения сессии.
Почему `serve` отображал некрасивый сайт, тогда как `publishSite` был идеальным
Задача `serve` моего плагина Gradle JBake отображал прямоугольные кнопки, нечитаемый текст и частично отсутствующий CSS, тогда как `publishSite` производил идеальный сайт. Root cause : аргументы CLI JBake, переданные с неправильным синтаксисом. Вот полная диагностика и как я это исправил.
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.
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.
Интегрировать Graphify в рабочий процесс Gradle: от графа знаний к диаграмме PlantUML за одну команду
Graphify извлекает Knowledge Graph из вашей кодовой базы. Плагин Gradle PlantUML преобразует этот граф в детерминированные диаграммы PlantUML. Полный пайплайн: pip install graphify → graphify . --no-viz → ./gradlew generateKnowledgeGraphDiagram → версиянированные PNG-диаграммы в Git
Супер советы команды fg: когда Ctrl+Z спасает ваш терминальный сеанс
Вы запустили команду, блокирующую терминал? Ctrl+Z приостанавливает её, fg возобновляет. Узнайте, как fg, bg и jobs преобразуют вашу продуктивность в терминале.
VS Code в Домашней директории : локальная установка и настройка шрифтов без sudo
Установите VS Code в вашу домашнюю директорию Linux, чтобы сохранять полный контроль без sudo. Затем настройте шрифты меню и обозревателя файлов — путь, усеянный препятствиями, который в итоге приводит к читаемому пользовательскому интерфейсу.
Миграция плагина Asciidoctor RevealJS на buildSrc Kotlin: реверс-инжиниринг Groovy API
Как перенести конфигурацию задачи `AsciidoctorJRevealJSTask` из корневого buildscript в автономный Kotlin-плагин buildSrc, заменив Groovy DSL `ruby { gems() }` соответствующими внутренними механизмами, обнаруженными с помощью интроспекции байт-кода.
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.
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.
Гибридная архитектура: лучшее из двух миров с Supabase и Spring Boot
Используйте Supabase для простого CRUD и Spring Boot для сложной логики. Прагматичная гибридная архитектура: масштабируемая и экономичная.
L Art du Pré-chargement : Éliminer le "Flash" de Thème avec JavaScript et CSS
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
Отображение цветных квадратов в AsciiDoc: практическое руководство
Практическое руководство по интеграции образцов цвета в AsciiDoc с использованием макроса pass:[] с инлайновым HTML и CSS. Совместимо с JBake и всеми процессорами.
Интернационализация статического сайта JBake с использованием Thymeleaf
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.
Статья 5: Приключение общего libs.versions.toml
Погружение в каталог версий Gradle (libs.versions.toml) и как делиться им в композитном билде, на примере реальной проблемы, возникшей с нашим плагином site-baker.
Статья 4: Ловушка кэша конфигурации Gradle
Неожиданное приключение по отладке, которое погрузило нас в тонкости кеша конфигурации Gradle. Узнайте, почему наши сборки вели себя странно и как мы решили эту проблему.
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).
Статья 2: Разработка Gradle-плагина с использованием подхода TDD
В этой статье мы разберем, как создать надежную базу разработки для плагина Gradle, используя подход разработки через тестирование (TDD — Test-Driven Development).
Статья 1: Создание Gradle-плагина с нуля с помощью команды `gradle init
Пошаговое руководство по инициализации проекта Gradle-плагина с использованием стандартной задачи `init`, разбору созданной структуры и запуску первых команд сборки.
Статья 0: Настройка среды для создания плагинов Gradle
Перед тем как начать кодировать наш первый плагин, нам нужно подготовить нашу машину. Это руководство покажет, как установить и настроить необходимые инструменты: JDK, IntelliJ IDEA, Gradle и JBake.
CI/CD Python – Часть 3: идём дальше с Poetry, Docker и продвинутой публикацией
Часть 3 - Полное руководство по созданию надежного CI/CD пайплайна с использованием GitHub Actions, от линтинга и автоматических тестов до автоматического развертывания на PyPI при релизе.
Часть 2 : Индустриализация и обеспечение безопасности расширенного пайплайна CI/CD на Python
Часть 2 — Полное руководство по настройке надежного пайплайна CI/CD с использованием GitHub Actions, от линтинга и автоматических тестов до автоматического развертывания в PyPI при релизах.
Часть 1: Создание простого CI/CD конвейера для Python и PyPI
Часть 1 — Полное руководство по настройке надежного CI/CD конвейера с помощью GitHub Actions: от линтинга и автоматизированных тестов до автоматического развертывания в PyPI при релизах.
Développement d'un Bot Discord Musical : Architecture Fonctionnelle et Log Driven Development
Refroidir et surveiller la température de son laptop sous Ubuntu
История отладки: укрощение капризов Firefox с Bootstrap 5
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.
Оптимизация управления задачами Gradle с помощью Kotlin DSL и buildSrc
Оптимизируйте Gradle с помощью buildSrc и Kotlin DSL для создания переиспользуемых задач и более чистых сборок.
TDD настраиваемого плагина Gradle на Kotlin с JBake и JGit
Этот пост описывает полный процесс проектирования и тестирования (TDD) плагина Gradle, написанного на Kotlin DSL. Этот плагин автоматизирует создание статических сайтов с помощью *JBake* и *развёртывание Git* через *JGit*, всё это из одного YAML-файла конфигурации.
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.
Как вывести локальный сервис в интернет из Ubuntu: полное руководство по пробросу портов (port forwarding)
Как настроить проброс портов (port forwarding), чтобы сделать локальный сервис, запущенный на Ubuntu, доступным извне вашей домашней сети.
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.
Kotlin Arrow : Освоение навигации в монаде Either
Узнайте о передовых техниках эффективной навигации по правой и левой сторонам монады Either с использованием библиотеки Kotlin Arrow.
Практическое руководство: поиск файлов в linux
Научитесь эффективно искать файлы в linux с помощью Zsh, используя `find`, `locate` и `grep`.
Заметка linux
Простая заметка о unix/linux и терминале bash
Выставить порт подсистемы Linux для хоста Windows
Открыть порт подсистемы Linux для хоста Windows, используя команду `wsl --install`.
Установить Pandoc
Установить Pandoc, который является преобразователем документов, на Linux и Windows WSL
Реализация kotlin.Triple в JavaScript, TypeScript и Python
Предлагаем реализацию kotlin.Triple на JavaScript, TypeScript и Python
Введение в Google Apps Script
Полное введение в Google Apps Script
Экспресс-курс по Google Form Script и автоматизации
Экспресс-курс по Google Form Script и автоматизации
Мемо Python
простая заметка Python
Веб-разработчик
Обучение веб-разработчик
Торговые карточные игры (ТКГ)
Обучение коллекционным карточным играм (TCG)
Заметка Typescript
простая заметка Typescript
Шпаргалка по CSS
простая памятка по CSS
Mémo HTML
simple mémo HTML
Mémo Javascript
simple mémo Javascript
Мемо Кадрирование
простая заметка о планировании проекта.
Памятка по Kotlin
простая заметка kotlin
Памятка по JVM
простая памятка по JVM
Мемо Gradle
простой мемо gradle
Обучение - Kotlin: enum, sealed classes
Программирование на kotlin: enum, sealed classes
Обучение — Kotlin
Программирование на kotlin, план.
Мемо дизайн-система
Простой мемо полезных ссылок и ссылок в дизайн-системе
Kubernetes, Microk8s, Docker: первые шаги
Установка, настройка микро-кубернетес, docker и запуск helloworld на linux/unix
Gradle: Выполнить внешний процесс из задачи Gradle
Как запустить внешний бинарник из задачи Gradle
Kotlin: NotImplementedException, NotImplementedError
Ещё не реализовано, позволяет поднять правильное исключение.
распаковать
приложение untar
Gradle: Перезапускать тесты даже когда они UP-TO-DATE
добавьте аргумент --rerun-tasks к командной строке.
Docker не устанавливает приложение, а просто скачивает его
оптимизация Docker
Gherkin на французском:
BDD, cucumber, gherkin на французском
Gradle cli: переопределить параметр
./gradlew -Pparam_component=CUSTOM
Мемо git
простое git мемо
Скачать с URL
wget загрузчик URL
Создать загрузочный диск
создать свой загрузочный диск
Разархивировать в CLI в целевой папке
распаковать в командной строке
Показать сумму размеров файлов в списке каталогов
сумма размеров файлов в папке
Удалить ветку на GitHub
дополнение к заметке git
Asciidoc/Markdown Мемо
простая заметка ascidoc/markdown
Debian: Установка файла .deb из командной строки
установить .deb из командной строки
Gradle: папка ресурсов видна в IDE
добавить папку в classpath сборки Gradle
Скрипт Groovy, grab и конфигурация Ivy
gradle groovy ivy
Groovy: немного алгебры, НОД и НОК
алгебры в Groovy
Bash: Найти файлы по расширению и вывести в файл с помощью find
немного bash с find
Управлять цифровым проектом с каскадной методологией
немного методологии цифровых проектов с каскадной методологией
Список баз данных в экземпляре PostgreSQL
подбор параметров postgres
Groovy: Переименовать файлы рекурсивно
рекурсия в Groovy
Groovy: Поиск файлов с критерием, копия выделения
поиск файлов по шаблону в groovy
Groovy: работа с файлами, поиск и удаление
работа с файлами и поиск символов в Groovy
Groovy: Заменить последовательность символов в строке String и загрузить Properties из файла
манипуляция Properties и поиск шаблона в Groovy
Groovy: символы ASCII
groovy, циклы и манипуляции с кодом ascii