BorisovAI

Блог

Публикации о процессе разработки, решённых задачах и изученных технологиях

Найдено 6 заметокСбросить фильтры
Общееtrend-analisis

Как научить AI различать реальную архитектуру от Photoshop'а

# Как мы учили AI видеть архитектуру без фотошопа Вот такая задача свалилась на нас в проект **trend-analisis**: нужно было понять, как архитекторы демонстрируют свои проекты и выяснить — что в их показах реальное, а что просто красивая визуализация. Потому что когда видишь блестящий рендер небоскреба с идеальным освещением и отражениями в стекле, неясно — это гениальный дизайн или просто хороший художник в 3D Studio Max? Первым делом я понял суть проблемы: архитектурные рендеры — это как фотошопленые портреты моделей, только дороже и серьёзнее. Нужен **инструмент де-глоссификации**, который бы снимал этот слой искусственного совершенства. Назвали мы его **Antirender**. Идея была простая, но реализация — жёсткая. На JavaScript с помощью **Claude AI** я начал строить систему, которая анализирует рендеры архитектуры и вычисляет фактический уровень фотореалистичности. Система должна была определять: где искусственное освещение, где добавлены блики на стекло, где материалы искусственно затемнены или осветлены для эффекта. По сути — выявлять слои постобработки в CGI. Рядом с этой задачей встала ещё одна техническая проблема. Когда обрабатываешь много архитектурных изображений — это тяжело для памяти. Тогда я реализовал **Sparse File-Based LRU Cache** — систему кэширования на диске, которая не нагружает оперативную память. Это как холодильник с внешним накопителем: часто используемые данные держим в быстрой памяти, редко обращаемся — сбрасываем на диск. LRU-алгоритм следит за тем, какие данные используются, и автоматически вытеснял «холодные» записи на disk storage. Оказалось, это значительно ускорило обработку больших батчей изображений. **Интересный факт**: первые системы де-глоссификации в архитектурной визуализации появились в начале 2010-х, когда заказчики начали требовать «реалистичные» рендеры. Но тогда это были ручные процессы — художники вручную удаляли блики. Мы же решили автоматизировать это через нейросетевой анализ. В итоге получилась система, которая не просто обнажает архитектурный замысел, но и помогает аналитикам трендов видеть, как на самом деле выглядит современное зодчество — без маркетингового глянца. Проект вырос в полноценный инструмент для исследований, и команда уже начала думать о том, как масштабировать кэширование для петабайтных объёмов данных. Главное, что я понял: **Claude AI** отлично справляется с такими комплексными задачами, когда нужна не просто обработка, а понимание контекста. Система сама начала предлагать оптимизации, которые я бы не сразу придумал. 😄 Почему архитекторы не любят De-glossification Tool? Потому что это инструмент, который показывает правду — а правда, как известно, никогда не была красивой на рендере!

#claude#ai#javascript
11 февр. 2026 г.
Общееtrend-analisis

Четыре теста, одна ночь отладки: как спасти CI/CD

# Когда четыре теста разваливаются в один день: история отладки trend-analisis Понедельник, утро. Проект **trend-analisis** решил напомнить мне, что идеально работающий код — это миф. Четыре тестовых файла сразу выплюнули красные ошибки, и нужно было их чинить. Ситуация была классическая: код выглядел нормально, но CI/CD не согласен. Как оказалось, причин было несколько, и каждая скрывалась в разных углах проекта. Первым делом я запустил тесты локально, чтобы воспроизвести проблемы в контролируемой среде. Это был правильный ход — иногда баги исчезают при локальном запуске, но не в этот раз. Началось с проверки зависимостей. Оказалось, что некоторые модули были загружены с неправильными версиями — классическая ситуация, когда разработчик забывает обновить package.json. Второй проблемой стали асинхронные операции: тесты ожидали завершения промисов, но таймауты были установлены слишком жёстко. Пришлось балансировать между скоростью выполнения и надёжностью. Третий вызов был психологический. Между тестами оказалось «грязное» состояние — один тест оставлял данные, которые ломали следующий. Пришлось добавить правильную очистку состояния в каждом `beforeEach` и `afterEach` блоке. Четвёртая ошибка была совсем коварной: неправильный путь для импорта одного модуля на Windows-машине соседа по команде. Интересный факт о **JavaScript тестировании**: долгое время разработчики игнорировали изоляцию тестов, думая, что это усложнит код. Но история показала, что тесты, которые зависят друг от друга, — это бомба замедленного действия. Один изменённый тест может сломать пять других, и потом начинается детективная работа. После трёх часов кропотливой работы все четыре файла прошли проверку. Я запустил полный набор тестов на CI/CD, и зелёная галочка наконец появилась. Главное, что я выучил: при работе с AI-помощниками вроде Claude в проекте важно тестировать не только конечный результат, но и процесс, по которому код был сгенерирован. Часто боты пишут рабочий код, но забывают про edge cases. Теперь каждый коммит проходит через эту строгую схему проверок, и я спокойно сплю 😄

#claude#ai#javascript
11 февр. 2026 г.
Общееtrend-analisis

Четыре теста, одна ночь отладки: как спасти CI/CD

# Когда четыре теста разваливаются в один день: история отладки trend-analisis Понедельник, утро. Проект **trend-analisis** решил напомнить мне, что идеально работающий код — это миф. Четыре тестовых файла сразу выплюнули красные ошибки, и нужно было их чинить. Ситуация была классическая: код выглядел нормально, но CI/CD не согласен. Как оказалось, причин было несколько, и каждая скрывалась в разных углах проекта. Первым делом я запустил тесты локально, чтобы воспроизвести проблемы в контролируемой среде. Это был правильный ход — иногда баги исчезают при локальном запуске, но не в этот раз. Началось с проверки зависимостей. Оказалось, что некоторые модули были загружены с неправильными версиями — классическая ситуация, когда разработчик забывает обновить package.json. Второй проблемой стали асинхронные операции: тесты ожидали завершения промисов, но таймауты были установлены слишком жёстко. Пришлось балансировать между скоростью выполнения и надёжностью. Третий вызов был психологический. Между тестами оказалось «грязное» состояние — один тест оставлял данные, которые ломали следующий. Пришлось добавить правильную очистку состояния в каждом `beforeEach` и `afterEach` блоке. Четвёртая ошибка была совсем коварной: неправильный путь для импорта одного модуля на Windows-машине соседа по команде. Интересный факт о **JavaScript тестировании**: долгое время разработчики игнорировали изоляцию тестов, думая, что это усложнит код. Но история показала, что тесты, которые зависят друг от друга, — это бомба замедленного действия. Один изменённый тест может сломать пять других, и потом начинается детективная работа. После трёх часов кропотливой работы все четыре файла прошли проверку. Я запустил полный набор тестов на CI/CD, и зелёная галочка наконец появилась. Главное, что я выучил: при работе с AI-помощниками вроде Claude в проекте важно тестировать не только конечный результат, но и процесс, по которому код был сгенерирован. Часто боты пишут рабочий код, но забывают про edge cases. Теперь каждый коммит проходит через эту строгую схему проверок, и я спокойно сплю 😄

#claude#ai#javascript
11 февр. 2026 г.
Общееborisovai-admin

2FA в Authelia: спасение админ-панели за 5 минут

# Authelia: когда админу нужна двухфакторная аутентификация прямо сейчас Проект `borisovai-admin` дошёл до критической точки. Система аутентификации Authelia уже поднята, админ успешно залогинился... но дальше — стена. Нужна двухфакторная аутентификация, и нужна *сейчас*, потому что без 2FA ключи админ-панели будут висеть в открытом доступе. Первым делом разобрались, что Authelia уже готова работать с TOTP (Time-based One-Time Password). Это удачнее всего — не нужны внешние SMS-сервисы, которые стоят денег и работают как хотят. Просто приложение на телефоне, которое генерирует коды каждые 30 секунд. Google Authenticator, Authy, Bitwarden — все поддерживают этот стандарт. Система работает просто: админ кликает на красную кнопку **METHODS** в интерфейсе Authelia, выбирает **One-Time Password**, получает QR-код и сканирует его своим аутентификатором. Потом вводит первый код для проверки — и готово, 2FA активирована. Ничего сложнее, чем настроить Wi-Fi на новом телефоне. Но тут всплыл забавный момент. У нас используется `notifier: filesystem` вместо полноценного SMTP-сервера. Это значит, что все уведомления летят не по почте, а в файл `/var/lib/authelia/notifications.txt` на сервере. Казалось бы, неудобно, но на самом деле удобнее для локальной разработки — не нужно иметь рабочий почтовый сервис, не нужно ждать письма в спаме. Просто залезь по SSH на машину и прочитай файл. Правда, для production это так не прокатит, но сейчас это даже плюс. **Вот интересный факт про TOTP:** стандарт RFC 6238, на котором это работает, разработан в 2011 году и по сути не менялся. Во всех приложениях для аутентификации используется один и тот же алгоритм HMAC-SHA1 — поэтому коды из Authenticator работают и в Authy, и в 1Password, и в Bitwarden. Один стандарт на всех. Это редкость в IT — обычно каждый сервис хочет своё решение. TOTP же стал поистине универсальным языком двухфакторной аутентификации. Итог: админ просканировал QR-код, ввёл код подтверждения, и теперь каждый вход на `admin.borisovai.tech` или `admin.borisovai.ru` требует второго фактора. Брутфорс админ-панели стал значительно сложнее. Следующий шаг — поднять SMTP для нормальных уведомлений и может быть добавить backup-коды на случай, если админ потеряет доступ к аутентификатору. Но это уже совсем другая история. Разработчик: «У нас есть Authelia, у нас есть TOTP, у нас есть двухфакторная аутентификация». HR: «На каком уровне безопасности?». Разработчик: «На уровне, когда даже я сам не смогу залезть в админ-панель, если потеряю телефон». 😄

#claude#ai#security
Разработка: borisovai-admin
8 февр. 2026 г.
ОбщееC--projects-ai-agents-voice-agent

Если хотите обсудить техническую сторону задачи — уточните детали, и я помогу найти решение.

# Если хотите обсудить техническую сторону задачи — уточните детали, и я помогу найти решение. ## Что было сделано ## Assistant: Понимаю, что речь о какой-то организационной проблеме с софтом, связанной с прокси и подбором людей. Если это не связано с вашим проектом voice-agent, то я готов помочь с кодом или архитектурой, когда потребуется. Если хотите обсудить техническую сторону задачи — уточните детали, и я помогу найти решение. ## Технологии claude, ai --- > 😄 **Шутка дня:** I have a joke about Stack Overflow, but you would say it's a duplicate.

#claude#ai
30 янв. 2026 г.
ОбщееC--projects-ai-agents-voice-agent

Ищу актуальные тренды...

# Ищу актуальные тренды... ## Что было сделано ## Assistant: Ищу актуальные тренды... Для поиска трендов мне нужен доступ к веб-поиску. Вы можете: 1. **Разрешить WebSearch** — я найду актуальные тренды 2026 года 2. **Уточнить запрос** — какие именно тренды интересуют (технологии, мода, социальные сети, AI, бизнес)? Дать разрешение на поиск? ## Технологии claude, ai --- > 😄 **Шутка дня:** What is the best prefix for global variables? //

#claude#ai
30 янв. 2026 г.