Обновить
512K+

Программирование *

Искусство создания компьютерных программ

1 150,9
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как вы вообще живёте без POWERLINK…

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели11K

Промавтоматика B&R после санкций, без шаманства и плясок с бубнами: как заменить умерший контроллер мини-ПК, оставить родные стойки и не переписывать проект. Драйвер под сетевые карты Intel I226, шлюз реального времени, ядро под задачу и проверка на настоящем железе.

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

Сначала контекст, чтобы было понятно, откуда что взялось. Проект автоматизации мойки у нас написан в Automation Studio, это среда разработки B&R, и исполняется он на контроллере B&R. Когда стало ясно, что контроллеры и модули больше не купить, мы начали переносить проекты на обычные ПК. Для новых моек это отлажено с 2022 года: около сотни объектов работают на мини-ПК, а вместо стоек B&R там стоят стойки другого производителя, на Modbus TCP. Проект при этом остаётся тем же, только переконфигурируется под новые модули.

А вот со старыми мойками так не выйдет. У них стойки родные, B&R, и общаются они с контроллером по POWERLINK. Это протокол жёсткого реального времени с циклом в две миллисекунды, и стоял он там не ради красоты: ПЛК на нём считал фронты расходомеров и формировал импульсы дозаторов. Умирает на таких объектах, как правило, именно контроллер, а стойки живут и готовы служить ещё лет десять. Менять их жалко и дорого, покупать контроллер тоже дорого, подержанный через серый импорт стоит от полумиллиона до трёх с половиной миллионов рублей, и это на каждый отказ. Вот про этот случай статья: как поставить вместо контроллера мини-ПК и не тронуть ни стойки, ни сам проект.

Читать далее

Доверить сервер ИИ-агенту и не пожалеть: как спать спокойно без SSH

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели11K

Мы всё быстрее движемся к самовосстанавливающейся инфраструктуре. Но когда инцидент всё-таки случается, у инженеров может уйти много времени на сбор информации о состоянии серверов. При SLA 99,99% на простой остаётся около 4 минут в месяц, каждая минута на счету, и не автоматизировать эту часть разбора инцидента — непозволительная роскошь. Технически это можно сделать и сейчас: дать ИИ-агенту SSH и sudo.

Я решил пойти другим путём и собрал Linux MCP daemon (mcpd): сервер, изначально рассчитанный на ИИ-агентов. Вместо обёрток над стандартными утилитами он сам читает состояние системы из ядра и отдаёт его агенту через инструменты — сейчас их 38, и список растёт. Когда нужен root, агент может его запросить, но получит только там, где вы разрешили, и в заданных границах. Отдельным интересным решением получилась утилита linuxctl в стиле kubectl. Под катом устройство, установка, подключение ИИ-агента и права, которые только выглядят безопасными.

Читать далее

ИИ-агенты в инвестициях: собираем Telegram-ассистента и торгового робота на MCP Т-Инвестиций

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели8K

Привет, Хабр! Я Алексей Кабанов, разработчик в команде публичного API Т-Инвестиций. Недавно мы запустили MCP-сервер, позволяющий AI-агентам взаимодействовать с Т-Инвестициями: искать подходящие бумаги, анализировать рынок и портфель клиента. Расскажу, как можно построить автоматизацию на основе ИИ-агентов с использованием нашего MCP-сервера.

Еще недавно, чтобы автоматизировать даже несложный торговый алгоритм, приходилось писать собственный скрипт: Python, API брокера, cron и обработка ошибок на все случаи жизни. Профессиональные торговые системы существовали и раньше, но для частного инвестора порог входа оставался высоким. Сейчас между LLM и брокерским API появился стандартный слой — MCP, Model Context Protocol: модель может сама получить состояние портфеля, посмотреть стакан, выставить или отменить заявку, а вам достаточно описать задачу человеческим языком.

У Т-Инвестиций есть публичный MCP-сервер, и эта статья о том, как его использовать. Клиентом может быть что угодно: AI-агент вроде Hermes Agent, платформа автоматизации вроде n8n, десктопный ассистент, IDE. Разберем, чем эти подходы различаются и как они работают с MCP, что умеет сервер, а затем соберем два работающих примера.

Читать далее

Модульная надстройка для JasperReports: подключение и что делает процессор при сборке. Часть 3

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели10K

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

Субрепорт — это класс, отчёт — тоже класс, а поля класса и есть содержимое отчёта. Имена параметров шаблона берутся из имён полей, поэтому один и тот же модуль можно поставить в отчёт дважды и получить два независимых субрепорта со своими данными. Аннотационный процессор при компиляции находит существующий JRXML, дописывает в него недостающие параметры, датасеты и банды субрепортов и кладёт результат в target/generated-sources. Шаблон в src он не трогает никогда.

Отдельно — про то, кто владеет шаблоном, когда в один файл пишут и кодогенератор, и человек в Jaspersoft Studio, и где у этой схемы слабое место.

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

Читать далее

Переход на 1С 8.5 за выходные: найдёте 3 причины сбоя?

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели11K

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

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

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

Python Tkinter: как перестать бояться Canvas и начать рисовать интерфейсы

Время на прочтение8 мин
Охват и читатели11K

Обычно такие статьи начинаются с банальных вопросов по типу «Что такое интерфейс», «Что такое разработка», «Что такое проектирование». Суть в том, что это не так важно в рамках данной статьи, и к тому же без того интуитивно понятно. Интуитивно понятно также, как и должен быть понятен хороший пользовательский интерфейс!

Из экономики можно подчерпнуть то, что существует три типа реализации продукта/модели взаимодействия на рынке: от бизнеса к бизнесу, от бизнеса к потребителю и от потребителя к потребителю (последнее – допустим, доски объявлений, тот же Авито). По части ПО мы имеем нечто похожее: от программиста к программисту, от программиста к пользователю, от пользователя к пользователю. Например, когда одни программисты создают библиотеку или новый усовершенствованный ЯП – они нацелены прежде всего на аудиторию программистов. А если идёт разработка ПО для создания и редактирования графических объектов (тот же Photoshop) – то главной аудиторией является пользователь в самом широком смысле этого слова. От пользователя к пользователю же – это когда один юзер отправляет другому программу на Visual Basic для анализа чего бы то ни было в Excel (либо других таблицах).

Проблема какая, прежде всего: мы любим, когда всё видно, существует логика, последовательность, в общем – когда ПО напоминает больше музыкальный инструмент, а не набор функций (последнее примемлемо только для библиотек Python – но даже они соревнуются в понятности между собой). В общем, никому не нужен инструмент, которым непонятно, как пользоваться. И если в связке программист-программисту это не так страшно (хотя неприятно, те же IDE штука полезная), то создание ПО для массового пользователя без интерфейса – это означает создание ПО, которое не откроют никогда. Ваш автомобиль может быть шикарен в большинстве своём, но если человек не понимает, как открыть дверь и где там вообще руль – это провал. А если вы вдобавок выдадите ему вместо объяснений 200-ти страничный документ – провал вдвойне, опять же, если речь про классического потребителя.

Читать далее

Модульная надстройка для JasperReports: один стандарт и три идеи. Часть 2

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.5K

Во второй части серии — чего ждёт от инструмента отчётов современный Java-разработчик и на каких идеях я собрал свою надстройку над JasperReports — не переписывая движок и не отказываясь от Jaspersoft Studio.

Один стандарт вместо нескольких способов передать данные: в отчёт едут обычные Java-объекты. Дерево вместо плоской сетки банд: отчёт собирается из модулей, вложенных друг в друга, включая повторяющиеся. Слои: данные добывает Java, вёрстка остаётся в JRXML и в Studio. И объект как единый носитель структуры, данных и имён — вместо одного и того же смысла, продублированного и в XML, и в коде.

Отдельно — ответ на возражение из комментариев к первой статье: зачем вообще выносить выборку данных из шаблона, если Jasper умеет ходить в базу сам.

Первая часть серии — откуда взялся Jasper и почему он так устроен.

Читать далее

1700 строк JS и ни одного видеофайла: как ИИ-агент снимает кино на Canvas и рендерит его в MP4

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.7K

В этом минутном фильме нет ни одной картинки, видеофайла или сэмпла. Огонь, гравюру, 3D-сферу, пиксельную игру и музыку рисует и синтезирует один HTML-файл на 1700 строк, и написал его ИИ-агент. Без правил тот же агент выдаёт унылую заставку: синий фон, неон, всё ползёт линейно. Разбираю, что это меняет: кадр как чистая функция draw(ctx, t), рендер в MP4 без единого рывка и агент, который сам проверяет фильм по таймкодам.

Читать далее

Модульная надстройка для JasperReports: откуда взялся Jasper и почему он так устроен. Часть 1

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.8K

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

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

Это не критика. Ядро у Jasper мощное, просто он наследник другой традиции — той, где отчёт является самостоятельным приложением, а не частью вашего.

Читать далее

Google дала AI-агентам лицо. Gemini 3.8 Live создаёт говорящих аватаров в реальном времени

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.7K

Google представила Gemini 3.8 Live with Live Avatar. Модель принимает голос, изображение, видео и текст, а отвечает через анимированного персонажа с синхронизацией губ, мимикой и голосом.

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

Читать далее

После Copilot: как «Диасофт» строит AI-Native SDLC вместо ИИ-ассистентов

Время на прочтение19 мин
Охват и читатели6K

Привет, Хабр!

Я Дмитрий Старов, директор департамента «Инструменты и технологии разработки» компании «Диасофт».

Еще относительно недавно вопрос звучал так: сможет ли искусственный интеллект писать код?

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

Все это действительно меняет роль разработчика. Но если посмотреть на крупные enterprise-системы, становится понятно, что скорость написания кода – уже давно не главный фактор.

Гораздо сложнее понять, что именно нужно изменить, как это изменение впишется в существующую архитектуру, не нарушит ли оно работу других компонентов системы и пройдет ли все обязательные проверки. Речь идет о том, что можно назвать AI SDLC – подходом к жизненному циклу разработки, в котором AI изначально встроен как полноценный участник, а не подключается сбоку. В корпоративной разработке путь от требования до рабочего решения гораздо длиннее, чем кажется, если смотреть только на код. 

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

7 октября я вместе со своими коллегами в прямом эфире покажу как устроена наша AI SDLC архитектура (ссылка - в конце статьи).

Читать далее

Как разработчики реагируют на статьи с привкусом ИИ

Время на прочтение9 мин
Охват и читатели7.1K

98% читателей предпочитают несовершенные, но аутентичные тексты, написанные человеком. При подозрении на ИИ‑составляющую в вашем тексте вас, как правило, перестанут читать, заблокируют и дизлайкнут

Читать далее

Я не боюсь, что меня заменит ИИ. Я боюсь работать с ИИ

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели21K

Я не боюсь, что ИИ заберёт мою работу. Боюсь, что именно это и станет моей работой: читать чужой diff, строить вокруг агента harness и отчитываться токенами.

Читать далее

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

Что внутри ИИ-ассистента BILLmanager: LLM, SSE через POST и инкрементальный Markdown

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.8K

Всем привет! Меня зовут Денис, я фронтенд-разработчик в ISPsystem. В этой статье расскажу, как мы разработали и встроили модуль ИИ-ассистента в BILLmanager.

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

Читать далее

Агенты в Claude Code: как они устроены и как настроить своих

Время на прочтение6 мин
Охват и читатели6.2K

Разбираем механику агентов в Claude Code: изоляция контекста, параллельный запуск, настройка постоянных агентов через файлы в ~/.claude/agents/. Дальше — пример на живой задаче: четыре агента параллельно разобрали 13 статей, пока мы занимались другим.

Читать далее

Гибридный RAG на Налоговом кодексе: восемь находок, семь потерь

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели12K

守 (Сю) — это про то, как, сохранив себя, достичь своей лучшей версии. При чём здесь RAG? Да при том, что, прежде чем рваться к агентным RAG и GraphRAG, надо разобраться с базой — довести до ума уже имеющиеся формы, чтобы получить качественную систему.

Привет, меня зовут Бромбин Андрей. Сегодня на примере Налогового кодекса я покажу путь от базового RAG к гибридному поиску и реранкингу: где каждый следующий шаг действительно повышает качество, а где лишь усложняет систему. Все выводы я проверил на воспроизводимом стенде: 240 вопросов из FAQ ФНС, три способа поиска и отдельный прогон реранкера.

Читать далее

23 урока для тех, кто отвечает за бэкенд: архитектура, производительность и надёжность сервисов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

По мере роста продукта backend-системы требуют всё больше инженерных решений: появляются новые сервисы, растёт нагрузка, усложняется работа с данными и архитектурой.

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

Смотреть подборку

Я удалил классы, но оставил объекты с методами

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели18K

HydraScript — мой интерпретатор на C#. В нём есть объекты, статическая типизация и вызовы методов. А class, interface и constructor я вообще не добавлял.

Точке на плоскости нужны две координаты, для вычисления расстояния до другой точки нужна функция. Хотелось, чтобы эти вещи работали без обязательной упаковки в класс.

Тут я вдохновлялся сразу двумя языками: структурной типизацией TypeScript и методами с явным получателем из Go. Подход Go заодно сильно упрощал жизнь мне самому — автору языка. Функции у меня уже работали, и методы можно было построить на их основе, не вдаваясь в реализацию классов.

Читать далее

Помните исследование про «ИИ замедляет на 19%»? Его повторили — и оно сломалось

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.1K

Июль 2025: METR показал, что с ИИ опытные разработчики работают на 19% медленнее, хотя уверены, что быстрее на 20%. Февраль 2026: эксперимент повторили на 57 разработчиках — и METR сам написал, почему цифрам нельзя верить: всё больше участников не хотят работать без ИИ даже за деньги, а 30–50% прячут задачи, где ИИ особенно хорош. Май 2026: опрос, ускорение «в 3 раза» — и снова оговорки. Разбираю три поста и что из них следует для спора «заменит или нет».

Читать далее

AI пишет код быстрее, но ревью становится тяжелее: откуда берётся когнитивный долг

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.6K

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

Разобрать подход