Обновить

Автогенерация документов в Битрикс24: как перестать вручную набивать счета, договоры и КП

В каждой компании есть человек, который вручную набивает счета, договоры и КП — по 20–40 минут на комплект, с опечатками в БИН и суммах. В Битрикс24 это закрывает «Генератор документов»: шаблоны DOCX с плейсхолдерами, табличные блоки для товарных позиций и генерация через REST API. Разбираю механику шаблонов, синтаксис плейсхолдеров, генерацию роботом и пять подводных камней, о которых узнаёшь только на боевом проекте.

Читать далее

RAG без политики доверия: как мы развели rules и materials

Уровень сложностиСредний

Спросили в чате: «сколько мне спать», «сколько белка в день», «сколько раз в неделю бегать». Модель ответила ровно и быстро. Пользователь закрыл вкладку довольный. Через несколько дней та же цифра всплыла в разговоре с врачом – или в строке таблицы с расходами, потому что ассистент у нас не болтает в вакууме: голос превращается в задачи, события, записи, а записи потом живут в календаре и отчётах

Вопрос перестал быть про удобный интерфейс. Кто в этой цепочке сказал «да, мы это утверждаем»?

Внутри: правила и доверие

README — это данные, а не разрешение: гейт между источником и навыком ИИ-агента

Из 25 репозиториев, попавших в тренды GitHub за пять дней, навыком в честном смысле оказались три. А у самых близких к моей задаче нашлась общая дыра: недоверенный README слишком дёшево становится инструкцией, которой агент подчиняется. Разбираю, как устроен гейт промоушена, и почему первая версия детектора дала 320 находок, среди которых не было ни одной настоящей.

Читать далее

Одна лишняя строка в @@unique подарила пользователям два установщика вместо одного

Уровень сложностиСредний

Одна лишняя строка в @@unique подарила пользователям два установщика вместо одного

На платформе разработчики загружают билды под разные платформы, мы храним их в S3 и раздаём на сайте. Один из самых скучных, казалось бы, кусков системы — таблица «установщик игры»: платформа, версия, путь к файлу. Целый месяц эта таблица тихо портила данные, и никто не замечал, пока модертор при проверке не заметил, что у одной и той же игры предлагается скачать два инсталлятора под Windows.

Читать далее

Как сократить время выявления расхождений в сделках более чем в 120 раз: кейс внедрения AI‑агента

Уровень сложностиПростой

Последние два года я руководил отделом проектной разработки в финансово-экономической дирекции крупного сине-белого индустриального холдинга. Один из проектов, о котором меня чаще всего спрашивают коллеги — ИИ-агент для контроля сделок.

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

Читать далее

Strict JSON Schema не спасает от галлюцинаций: 187 из 320 ответов LLM пришлось отклонить

Уровень сложностиСредний

За десять дней я прогнал через LLM 315 вакансий и получил 320 структурированных ответов. 187 из них были корректны по JSON Schema, но не прошли смысловую проверку: модель придумывала факты и цитаты, расширяла реальный опыт и даже ошибалась в арифметике score.

В статье показываю архитектуру, где LLM — недоверенный компонент: факты имеют стабильные ID, цитаты сверяются с источником, score пересчитывается кодом, а финальное действие подтверждает человек. С цифрами, кодами ошибок и разбором защитных слоёв.

Читать разбор

Как я перенёс Zapret Hub на Kali Linux: systemd, nftables и минимальные привилегии

Уровень сложностиСредний

Практический разбор портирования Windows-ориентированной панели управления сетевыми компонентами на Kali Linux. Рассказываю, почему для Zapret2 недостаточно запустить процесс, как связал React-интерфейс с Python/PySide6, ограничил привилегии через PolicyKit, сделал установщик с dry-run и сохранил Happ независимым компонентом. В конце — границы проекта, тесты и честное объяснение того, почему включённый Happ ещё не гарантирует смену внешнего IP.

Читать далее

«Подожди… Кажется, я всё удалила». Как AI помог мне собрать безопасный инструмент восстановления данных с SD-карты

Уровень сложностиСредний

Несколько дней назад мне позвонила девушка. По голосу сразу было понятно — что-то случилось.

— Кажется... я всё удалила.

Оказалось, она случайно удалила с SD-карты старого фотоаппарата Canon все видео и несколько фотографий.

К счастью, после этого она больше ничего не снимала и не записывала на карту памяти. Именно это, как выяснилось позже, и дало шанс вернуть данные.

Я начал думать, как можно помочь.

Дальше стало понятно, что есть два пути.

Первый — скачать одну из многочисленных программ для восстановления данных, нажать пару кнопок и надеяться, что она сделает всё правильно.

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

Я выбрал второй.

Спойлер: примерно через час мы уже смотрели восстановленные видео.

Но эта статья не о том, как AI заменяет разработчиков.

А о том, как AI помог мне за один вечер разобраться в совершенно новой для себя области, быстро собрать рабочий инструмент и при этом несколько раз не совершить ошибки, которые могли окончательно уничтожить данные.

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

Про это и поговорим дальше.

Читать далее

200 таблиц, лишний ноль в закупке и 50 идей для ИИ: почему нельзя автоматизировать исходный запрос

Уровень сложностиПростой

Меня зовут Екатерина Кулавина. Я занимаюсь автоматизацией и развитием внутренних продуктов в Ви.Tech - это IT-дочка ВсеИнструменты.ру. Это мой личный опыт, поэтому названия компании и систем я здесь не использую.

Моя команда работает с внутренними продуктами, и часто кажется, что нам просто живется. Пользователи уже внутри компании, конкурентов можно не бояться, заказчик рядом, понятно что делать. Собрали требования, поставили задачи разработчикам - и через несколько месяцев все счастливо перешли в новую систему.

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

Еще внутренний продукт сложно защитить. Альтернатива почти всегда есть - оставить людей делать процесс руками. Поэтому недостаточно сказать, что заказчику неудобно. Нужно показать эффект, риски и доказать, почему ресурс разработки должен достаться именно этой инициативе, а не другой.

Расскажу про два случая. В первом запрос на автоматизацию ВЭД превратился в сервис для всей цепочки работы с товаром, а подготовка закупки сократилась с двух часов до десяти минут. Во втором мы собрали 50 идей для ИИ, отдали их одному человеку и получили расфокус с выгоранием. Истории разные, а ошибка в них одна - слишком легко принять исходный запрос за настоящую задачу.

Читать далее

Один VPN-сервер, два устройства и две страны: как IPv6 обходит туннель

Уровень сложностиСредний

Пользователь подключается к одному и тому же VPN-серверу с телефона и компьютера. На телефоне Gemini работает, а на компьютере продолжает считать, что пользователь находится в России. При этом обычная проверка IP на обоих устройствах показывает Германию.

Разбираемся, как компьютер смог одновременно оказаться в двух странах, почему зелёная надпись «Подключено» ещё ничего не гарантирует и при чём здесь IPv6, TUN-режим и системный прокси.

Читать далее

Эволюция генерации видео с 2024 по 2026 год. Разобрал, чего ожидать в ближайшем будущем

Уровень сложностиПростой

Два года назад несколько секунд мыльной генерации считались прорывом. Сегодня нейросети выдают кинематографичные ролики в 4K качестве, держат консистентность персонажей и работают с референсами — и это активно применяется в работе.

В статье разобрал, какие технологические скачки произошли с 2024 по 2026 год, как они повлияли на рынок и какие направления будут определять развитие рынка дальше.

Читать далее

Что общего между ADSR-огибающей и пользовательским опытом?

Уровень сложностиСредний

Сегодня в продуктовом дизайне мы имеем множество методов для проектирования пространственной композиции и временных сценариев, которые помогают подвести пользователя к цели и/или удержать его внимание. Но ни один из существующих методов не содержит в себе явную структуру, которая помогает определять как изменяется интенсивность человеческого восприятия во времени независимо от того, что именно человек переживает.

Для этого нам необходимо разработать модель темпоральной композиции опыта, в чём, как ни странно, нам поможет звуковой синтез. А именно ADSR-огибающая.

Читать далее

Мультиплатформенная разработка: гипотезы, реальность и продуктовая история

Как перестать писать каждую фичу дважды: переход приложения EXANTE на Kotlin Multiplatform. В статье я расскажу, как наши команды его прошли, чего нам это стоило и что это дало продукту.

Читать далее

Операционная эффективность в кризис: почему ручное управление становится слишком дорогим

Уровень сложностиСредний

Когда экономика сжимается, хаос в системе управления съедает прибыль

— Мы уже даже не спорим между собой, — сказал в какой‑то момент Олег. — Всё равно в итоге идём к тебе, Михаил.

Михаил — собственник компании по производству умной промышленной упаковки, 180 человек, три филиала — всё держалось на нём. Формально у него была команда руководителей. По факту почти все важные решения всё равно сводились к нему. 

Согласовать спорный заказ — к Михаилу.

Развести конфликт между филиалами — к Михаилу.

Понять, можно ли дать клиенту отсрочку, — тоже к нему. 

Решения, которые, казалось бы, руководители могли принять сами, ждали Михаила — по каждому вопросу звонили и шли к нему. 

Он пришёл на стратегическую сессию с телефоном в руке и не выпускал его весь день. Не потому что ему было неинтересно или он хотел отвлечься, а потому что боялся пропустить что‑то важное.

В какой‑то момент я спросила:

— Михаил, а когда ты последний раз просто наблюдал со стороны за тем, как работает твоя компания? Не тушил пожары. Не решал вопросы. Просто — наблюдал и получал удовольствие от того, как команда действует сама?

Он посмотрел в окно.

— Не помню, — сказал он. — Наверное, года три назад.

Читать далее

От школьного проекта до BirdCLEF: как я прошла через НТО, бессонные ночи на Kaggle и погоню за медалями

Уровень сложностиСредний

Всё началось с 10 класса школы. Тогда у меня не было никаких медалей, дипломов и призовых мест. Был только проект, научный руководитель и идея, которую хотелось превратить во что‑то интересное. Я не представляла, что в будущем смогу сама создавать технологии, ведь всегда думала, что это подвластно только опытным инженерам, прошедшим длинный карьерный путь. Но я сильно ошибалась, пока не попала в сферу искусственного интеллекта.

Читать далее

Как я пришёл к созданию проекта V2Hub

Уровень сложностиПростой

Что делать, если одной подписки VPN уже недостаточно? V2Hub появился из простой проблемы: невозможно удобно объединить конфигурации из разных источников в единый сервис. История о том, как небольшой костыль для личного использования превратился в полноценную экосистему с API, библиотеками, CLI, Telegram-ботом и веб-панелью.

Читать далее

Качество работы тестировщика = количество найденных багов?

Уровень сложностиПростой

До сих пор встречается подход, при котором эффективность тестировщика оценивают по количеству заведённых дефектов.

Нашёл 50 багов = > молодец.
Нашёл 10 = > работал недостаточно хорошо.

На мой взгляд, это не просто спорная, а ошибочная модель оценки.

Количество багов почти ничего не говорит о качестве работы тестировщика без контекста. Более того, если превратить этот показатель в цель, он начинает вредить продукту и команде.

Читать далее

KAN: Kolmogorov‑Arnold Networks. Собственная языковая модель

Уровень сложностиСложный

====================================================

Модель: y = f(x, a, b) = a*x + b

Истинная зависимость (модель её НЕ знает): y = 2.5*x + -1.0

====================================================

Сгенерировано 50 точек (x, y) + шум.

Начальные параметры (случайные): a=-4.883 b=-4.380

Шаг 0 подробно:

loss=1765.1551 (насколько промахнулись)

градиенты: dL/da=-468.700, dL/db=-23.337

обновление: a -= 0.010*(-468.700) -> a=-0.196

b -= 0.010*(-23.337) -> b=-4.147

шаг 20 a=+2.556 b=-3.063 loss=4.5147

шаг 40 a=+2.531 b=-2.397 loss=2.1987

шаг 60 a=+2.515 b=-1.944 loss=1.1308

шаг 80 a=+2.503 b=-1.637 loss=0.6384

шаг 100 a=+2.496 b=-1.428 loss=0.4114

шаг 120 a=+2.490 b=-1.287 loss=0.3067

шаг 140 a=+2.487 b=-1.191 loss=0.2584

шаг 160 a=+2.484 b=-1.125 loss=0.2361

шаг 180 a=+2.483 b=-1.081 loss=0.2259

Подобрано градиентным спуском: a=2.482 b=-1.052

Было на самом деле: a=2.500 b=-1.000

Читать далее

V2Hub — экосистема сервисов для управления VPN‑подписками (V2Ray/Xray/VLESS/VMess/Trojan/Hysteria2)

Уровень сложностиПростой

Если вы когда‑нибудь раздавали друзьям или клиентам ссылки на VPN‑конфиги или мелкие VPN‑подписки вручную — знаете боль: один провайдер отвалился, у другого поменялся адрес, третий нужно временно скрыть, а у пользователя должна остаться одна‑единственная «подписка» (URL), которая всегда отдаёт актуальный список серверов. V2Hub — это попытка закрыть эту задачу целиком: не просто прокси‑агрегатор, а полноценная экосистема из API, вебки, CLI, Telegram‑бота и админки.

Уточню сразу: сервис не создаёт VPN‑конфигурации. Про то, как поднять VPN‑сервер вручную, можно почитать на vless.wiki. V2Hub лишь позволяет управлять готовыми подписками и конфигурациями — агрегировать, скрывать, комментировать, резолвить и раздавать их одной ссылкой.

Читать далее

FreeConnect: как я сделал однокнопочный инструмент для доступа к Discord, YouTube и Telegram

Уровень сложностиСредний

FreeConnect — это опен‑сорс инструмент для Windows, который модификацией сетевых пакетов возвращает доступ к Discord (вместе с голосом), YouTube и Telegram, пряча всю низкоуровневую возню за одной кнопкой. Внутри у него знакомый многим движок zapret (winws), но я нарастил вокруг него то, чего мне самому не хватало в «батниках»: приложение само генерирует СВОЮ(!) рабочую стратегию под конкретную сеть, следит за отваливающимся голосом в Discord, отдельно поднимает Telegram, умеет шифровать DNS и не только.

Сразу оговорюсь: это инженерный пет‑проект про доступ к легальным сервисам, которые деградировали из‑за DPI‑фильтрации. Никакого «ускорения интернета», только работа с пакетами на сетевом уровне.

Если коротко, оно умеет: подобрать или синтезировать рабочую стратегию обхода под ваш конкретный провайдер, отслеживать и чинить умирающий голос Discord, поднять Telegram через локальный прокси без VPN, шифровать DNS, когда провайдер подменяет ответы, и завернуть весь Discord в отдельный VPN, если голос душат совсем жёстко. Всё это на Python с веб‑интерфейсом в нативном окне, ядро — winws (WinDivert плюс десинхронизация из zapret), VPN‑часть на sing‑box.

Читать далее