Обновить

Все потоки

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

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

Внедрение искусственного интеллекта в рабочие процессы сегодня идет по двум принципиально разным сценариям:

  • Как усиление человека

  • Как замена человека в процессах

1. ИИ как “экзоскелет”

В этой роли ИИ выступает в качестве персонального ассистента или “второго пилота”. Сотрудник выполняет свои функции, но использует нейросети для ускорения рутины, преодоления ограничений или усиления экспертизы. 

Плюсы подхода:

  • Низкий порог входа: Часто это просто подписка на сервис.

  • Гибкость: Сотрудник сам решает, когда и как включить экзоскелет. 

  • Контроль качества: Человек остается в контуре, фильтруя галлюцинации и ошибки ИИ.

  • Удовлетворенность сотрудников: Позволяет сосредоточиться на творческих и сложных задачах.

Ограничения:

  • Привязка к человеку 1:1: Производительность конкретного сотрудника растет, но прямого снижения затрат не происходит.

  • Зависимость от навыков: Эффективность зависит от цифровой грамотности сотрудника.

  • Отсутствие системности: Результат может быть неравномерным по отделам, а знания могут оставаться в головах, а не в регламентах.

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

2. ИИ как “автономные агенты” (Цифровые сотрудники)

Здесь ИИ перестает быть просто инструментом и становится самостоятельной единицей. Вы ставите агенту задачу на входе, и он самостоятельно планирует шаги, использует корпоративные инструменты и выдает готовый результат. Это модель “человек над процессом”.

Плюсы подхода:

  • Масштабируемость: Можно “нанять” тысячи цифровых сотрудников быстрее, чем обучить живых людей.

  • Скорость: Агенты работают 24/7 и обрабатывают информацию в разы быстрее человека.

  • Стандартизация: Исключается человеческий фактор - результат всегда предсказуем и соответствует заданному шаблону.

  • Непрерывность: Цифровые сотрудники не болеют, не уходят в отпуск и не выгорают.

Почему этот подход сложен:

  • Должна быть зрелость процессов: Бизнес-процесс должен быть описан, формализован и оцифрован. Автоматизировать хаос невозможно - ИИ его только приумножит.

  • API и доступ к данным: У агента должен быть легальный и безопасный доступ к информационным системам компании. Критически важно четко разграничить уровни доступа агента.

  • Система валидации: Ошибки должны отлавливаться автоматически, либо процесс должен строиться по принципу Human-in-the-loop (человек проверяет ключевые действия перед финальным одобрением).

Итог

Экзоскелет делает конкретного сотрудника сильнее и быстрее здесь и сейчас. Автономный агент делает бизнес в целом сильнее и независимее от количества человеческих ресурсов.

В идеальной компании будущего сотрудники в “экзоскелетах” будут проектировать, настраивать и контролировать армию автономных цифровых агентов, управляя эффективностью на принципиально новом уровне.

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

Импортозамещение требует не только технологий, но и экономической прозрачности и эффективности

Сергей Симоненко, директор по информационным технологиям ОТП Банка, выступил на сессии "Доверять и проверять: что мы знаем о доверенных ПАК сегодня? группы Rubytech", которая прошла в рамках Уральского форума «Кибербезопасность в финансах». В формате открытого диалога с коллегами и вендорами он поделился практическим опытом импортозамещения критической инфраструктуры и обозначил болевые точки, с которыми сталкивается банк в рамках процесса локализации. В этом посте делимся основными тезисами с вами.

  1. В прошлом году банк завершил знаковый проект по миграции процессинга, а сейчас в активной фазе находится импортозамещение автоматизированной банковской системы (АБС) и хранилища данных. При выборе софта организация ориентируется на уже зарекомендовавшие себя российские стеки, однако в части аппаратного обеспечения пока сохраняет возможность использовать западные решения там, где это допустимо. 

  2. Говоря о текущем состоянии рынка, Сергей Симоненко высоко оценил сложившуюся практику открытого тестирования на отраслевых полигонах. Сегодня свои решения проверяют не только вендоры ПО, но и производители инфраструктуры, причем нередко в конкурентной среде. «Очень важно, что вы соревнуетесь с точки зрения технологической возможности и делаете это качественно. Выражаю вам за это признательность», — обратился он к разработчикам. 

  3. В качестве иллюстрации спикер привел недавний пример тестирования автоматизированных банковских систем (АБС). «Вчера мы видели информацию: все семь АБС успешно прошли проверку на небольших базах данных — у всех стояли зеленые галочки. Но когда речь зашла о серьезном объеме, 50–60 терабайт, пока справился только один — ЦФТ. Мне как потребителю было бы важно понять, что с остальными шестью», — поделился он. По мнению эксперта, такие испытания позволяют объективно оценить готовность продуктов к реальным нагрузкам. Он призвал вендоров активнее участвовать в подобных тестах и публично демонстрировать результаты. «Уважаемые коллеги, это же не ярмарка тщеславия, это реальная возможность показать всему российскому рынку, на что вы способны. Если вы можете помочь с решением этого вопроса, отрасль будет вам благодарна, сейчас отличный момент заявить о себе», — подчеркнул Сергей. При этом он отметил, что пока российские решения в сегменте системного ПО и инфраструктуры только начинают появляться, но первые обнадеживающие примеры видны уже сейчас. 

  4. Отдельно спикер остановился на значении самой практики открытых тестирований для рынка. Он подчеркнул, что для компаний, которые не могут позволить себе развернуть собственные испытательные комплексы, такие полигоны становятся окном в мир новых технологий. «Мы пока не являемся участниками программы тестирований на полигонах, но видим, что для небольших организаций без достаточного ресурса на собственные тестовые стенды, возможность использования результатов тестирования на полигонах - это значимое достижение для всей отрасли, для России. Мы все объединились: регулятор, вендоры, потребители сервиса — в одном порыве все адаптируют, тестируют, проверяют. Такого опыта в мире больше нет», — поделился он. 

  5. Еще одним важным вызовом спикер назвал вопросы эксплуатации и совокупной стоимости владения. Он напомнил, что за периметром пользовательского интерфейса остаются критически важные процессы: резервное копирование, восстановление данных, скорость обслуживания и отказоустойчивость. Без понимания того, как эти механизмы будут работать в долгосрочной перспективе, внедрение новых систем становится затруднительным. «Любая финансовая организация всегда балансирует между требованиями регулятора, функциональными возможностями и стоимостью решения. Там где есть возможность применить дешёвую импортную инфраструктуру — мы её применяем, потому что вопрос цены и совокупной стоимости владения сегодня стоит крайне остро», — констатировал Сергей Симоненко.

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

Ранее Anthropic обвинила китайскую компанию Deepseek в краже своих технологий, а теперь выяснилось, что модель Claude Sonnet 4.6 от Anthropic на вопрос «Ты какая модель?», заданный на китайском (You是什么模型), отвечает: «Я DeepSeek», а на французском — «Я ChatGPT». Вероятно, это подтверждает, что нейросеть обучалась на данных китайских ИИ и моделях конкурентов.

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

Как ускорить прогон с 3 часов до 12 минут?

Когда в Android-проекте ≈800 модулей и 37 000 unit-тестов, полный прогон на CI легко превращается в полдня ожидания. У нас было ровно так: больше 3 часов на полный запуск  — и ощущение, что локально это вообще не вариант. А потом команда нашла настоящие причины тормозов и довела прогон до 12 минут.

В статье «37 000 unit-тестов против Gradle: как мы добились 12-минутного прогона» конкретная инженерная история без магии. Приглашаем к чтению Android-разработчиков, техлидов и тех, кто отвечает за CI/скорость поставки. Тут много идей, которые можно примерить на себя!

Делитесь вашими подходами к решению проблем производительности в комментах)

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

Инди-разработчик Daivuk представил шутер в стиле Quake, размер которого составил всего 64 килобайта (QUOD.exe 64 kB или QUOD_uncompressed.exe 102 kB). Игра получила название QUOD, там есть три уровня, четыре уникальных врага и битва с боссом. Кроме того, на выбор есть несколько видов оружия.

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

Для запуска QUOD потребуется относительно мощный ПК на Windows. Необходимо 8 ГБ оперативной памяти, GTX 770 (или аналог) и Intel i5 (или аналог).

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

Мы психанули и скрестили аналитику маркетплейсов с аналогом MS Office. И пока отдаем это бесплатно.

Знаете, что больше всего бесит в торговле на Ozon и Wildberries? Не штрафы. И даже не платные приемки. Бесит зоопарк вкладок в браузере.

Вот типичный рабочий стол селлера или менеджера маркетплейсов:

  1. В одной вкладке открыт сервис аналитики (за который отдано от 15 до 30 тысяч рублей в месяц).

  2. Во второй — тяжеленный Google Sheets или Excel, куда менеджер руками копирует цифры, чтобы свести юнит-экономику.

  3. В третьей — PowerPoint или Word, потому что инвестору или партнеру нужно красиво показать отчет за квартал.

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

Спойлер: мы не нашли нормального ответа. Поэтому пошли пилить YouStat.

Что мы сделали

Идея была простой до безобразия: взять глубокую аналитику продаж и встроить её прямо в полноценный офисный пакет. В одно окно.

Получилась единая экосистема:

  • Аналитика уровня топов рынка. Сводная аналитики, разбор SKU, abc-анализ, бот для ответов на отзывы.

  • Свои «Таблицы». Аналог Excel, который живет прямо внутри сервиса. Не нужно скачивать CSV-файлы и перекидывать их туда-сюда. Нашли прибыльную нишу — тут же в соседней вкладке раскидали юнит-экономику.

  • Свои «Документы» и «Презентации». Полноценные редакторы. Собрали данные, упаковали в красивый отчет для инвестора, сохранили историю версий.

  • И сервис для ведения бухгалтерии

P.S. Скоро докатим свои ИИ-шечку

По сути, мы сделали российский аналог MS Office, который «из коробки» умеет глубоко анализировать Ozon и WB.

В чем подвох и почему бесплатно?

Если вы завсегдатай VC или Хабра, у вас уже должен был сработать внутренний радар: «Очередной стартап обещает золотые горы бесплатно. Наверняка будут продавать мои данные или через неделю выкатят пейволл на 50к».

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

Но прямо сейчас у нас релиз версии 1.0. Наш маркетинговый бюджет на старт — смешные 100 000 рублей. Если мы пустим их в Яндекс.Директ или будем закупать рекламу у блогеров-миллионников, мы просто сожжем эти деньги за пару дней и получим пшик.

Поэтому мы решили, что наш лучший маркетинг — это бесплатный продукт.

Мы открываем полный доступ к YouStat абсолютно бесплатно для всех ранних пользователей. Нам нужны бета-тестеры. Нам нужны люди, которые придут, начнут собирать свои таблицы, парсить конкурентов и... ломать наш продукт. А потом писать нам в саппорт: «Ребята, вот тут кнопка съехала, а вот тут таблица долго грузится».

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

Что дальше?

Сейчас сервис работает и открыт для регистрации. Никаких привязок карт, никаких скрытых триалов на 3 дня.

Мы будем держать систему бесплатной до тех пор, пока не обкатаем все шероховатости и не поймем, что продукт работает как швейцарские часы при высоких нагрузках. Те, кто зайдет сейчас, помогут нам сформировать roadmap развития продукта.

Ссылка на проект: youstat.tech

Заходите, тестируйте, ломайте. Буду рад ответить на любые вопросы в комментариях, поймать тапки за баги и выслушать конструктивную критику. Мы на связи!

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

Cursor — это не чат в IDE

Я бекенд‑разработчик.
И я с помощью Cursor собрал расширение для браузера: Speech‑to‑Text и Extract Text from Picture.

До этого я честно пытался делать то же самое в чатах OpenAI / Grok / DeepSeek.
Сценарий всегда один: контекст расползается, требования приходится повторять, а иногда чат просто зависает — и я делаю всё заново.

После этого я перестал относиться к LLM как к переписке и начал относиться как к рабочему месту: проект + файлы + правила + Git.

Мой принцип

Мне не нужен «идеальный промпт».
Мне нужен процесс, который не убивает мой день, когда модель поехала не туда.

С чего начать (мой чеклист)

Это реально можно собрать за вечер.

I. Intro

II. Rules: сделай «рамки» работы

Я не могу отдать свои правила (там много личного/проектного), но логика простая: rules — это договор, как Cursor работает в моём репо.​

Мой минимум, который почти всегда даёт буст:

  • Перед ответом смотри /README.md и /docs/.

  • Если не хватает данных — задай до 3 вопросов и только потом действуй.

  • Любые правки кода — маленькими порциями; после шага пиши, какие файлы изменил.

  • Если задача большая — сначала Plan, потом Agent.

Если лень писать с нуля — я иногда беру за основу готовые developer rules и допиливаю под себя:

Хак: rules можно дописывать прямо по ходу работы — я часто прошу агента «сформулируй правило, чтобы мы больше так не делали», и добавляю его в проект.

III. Положи «источники правды» в репу

Тут мой единственный принцип: всё, что я устал повторять — я выношу в файлы.

Пример структуры, которую я делаю для большинства задач:

project/
  README.md
  docs/
    business-requirements.md
    tech-spec.md
    decisions.md
  src/
  research/

README.md — одна страница «что строю и зачем».
docs/ — требования и решения (чтобы не хранить их в голове и в чате).

IV. Режимы: я не жму Agent сразу

Я использую три режима:

  • Ask — когда хочу разобраться/проверить идею и ничего не ломать.​

  • Plan — когда задача больше пары часов: сначала план и вопросы.​

  • Agent — когда план ок: он уже правит файлы и двигает задачу.​

И два хака, которые у меня реально помогают:

  • Хак 1: я спрашиваю у самого агента в Cursor, какую модель лучше взять под мою задачу.

  • Хак 2: я стараюсь не использовать авто-режим — автоматически Cursor часто подбирает модель неудачно.

V. Бизнес‑дока → Tech Spec

Я не начинаю с “какой стек лучше”.

У меня уже есть привычный стек (я писал про него тут), и мой первый вопрос к Cursor другой: могу ли я остаться на нём под эти бизнес‑требования или мне придётся делать иначе (и почему).​

Дальше я делаю так:

  1. Пишу бизнес‑требования простыми буллетами в /docs/business-requirements.md.

  2. Прошу Cursor собрать Tech Spec: API + архитектура + риски + edge cases.

  3. И только потом иду в код.

Пример (упрощённо, мой кейс с промокодами):

  • Пользователь присылает сообщение с промокодом.

  • Промокод валиден, если: сейчас в диапазоне date_from..date_to и пользователь ещё не использовал его.

  • Если валиден — отправляю ответ: текст/фото (если есть) + кнопки с доступными подписками.

  • В момент покупки я обязан ещё раз проверить, что промокод активен.

  • После покупки подписки типа PROMO_CODES помечаю промокод использованным.

Где Cursor меня подставлял (и что я делаю)

Главный минус: LLM плохо исправляют ошибки, если уже “врубились” в неправильную реализацию.

Поэтому у меня репозиторий всегда под Git (или я работаю с включённой системой контроля версий).

  • Каждая фича — отдельный коммит (или ветка, если страшно).

  • Если вижу, что оно поехало не туда и прогресса нет — откат и делаю заново, но с более точными вводными/планом.

На этом всё.
Я показал подход, который у меня прижился: собрать в Cursor нормальное рабочее место, где ИИ работает “по проекту”, а не “по настроению”.

Если тема заходит — я регулярно пишу про инди‑разработку и свои эксперименты в ТГ: https://t.me/debug_leg

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

Как выглядят бесплатные части курсов в Практикуме

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

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

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

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

Почему «оптом дешевле» в маркетинге (лидогенерации) не работает?

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

И потом предприниматель приходит в маркетинг (лидогенерацию) с тем же ожиданием: "Если я увеличу бюджет в 2 раза — лид подешевеет". А он… дорожает. И это многих бесит.

Но маркетинг (каналы привлечения клиентов) — это не склад, а чаще простой аукцион. Ты не покупаешь «товар», а участвуешь за него в торгах.

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

Вот например, рыбалка в пруду. Сидишь, таскаешь самую классную и большую рыбу, всё круто. Но со временем рядом появляется куча других рыбаков. По началу они тоже ловят крупную рыбу, и всех всё устраивает. Но внутри уже какое-то раздражение и чуйка неладного. Так и получается: большая рыба в пруду заканчивается, а рыбаки становятся агрессивнее. И улов уже не крупный, а такой, что еле-еле на уху хватает. Да и тот достается уж очень тяжело: ждать поклёвку часами, использовать прикорм, дорогие удочки, модные блёсны и что там ещё бывает...

У каждого канала привлечения клиентов есть глубина. Есть объём спроса, предел адекватной цены лида. Есть точка, после которой экономика начинает трещать. И вот здесь предприниматели часто совершают типичную ошибку: вместо того чтобы признать потолок канала — они просто «добавляют бюджет».

Но в маркетинге нет корреляции «оптом дешевле». Есть корреляция «больше бюджета — выше средняя цена контакта». Лучший спрос уже выкуплен, конкуренты тоже повышают ставки, ты выходишь на менее тёплую аудиторию, конверсия падает быстрее, чем растёт охват. И в какой-то момент рост бюджета начинает давать (как бы это было не парадоксально) падение эффективности.

Что же тогда делать? Сначала усиливать конверсию. Потом считать юнит-экономику. И только после этого масштабировать. Либо открывать новые каналы.

Важно понимать, что масштабируется не бюджет, а система целиком.

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

Представлен проект HYPERHELL - первый в своём роде четырёхмерный вариант игры в стиле DOOM (тестовый уровень).

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

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

Неделя на курсоре и в конечном итоге, если бы Perplexity вернул доступ к моделям я бы не раздумывая повернулся на Perplexity.

Сейчас Перплексити мне дает делать 20 – 40 запросов, и когда я работаю в Perplexity по сравнению с курсором это просто экстаз. Когда все предсказуемо ожидаемо и без какого-то подлого «Улучшения» у тебя за спиной.
Неоправданные ожидания – причина самых больших разочарований.
В Perplexity я ожидаю чёткий результат и получаю его. В курсоре я получаю мартышку с гранатой

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

Необычные роботы в США теперь убирают снег. В Reflex Robotics показали своего уборщика, который расчистил дорогу в Нью-Йорке после рекордного снегопада.

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

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

С чего и как начинался Apache?

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

Apache Kafka, Apache Spark, Apache Hadoop, Apache Nifi, Apache Iceberg… сколько ещё «Apache-чего-то» мы знаем? Это не бренд-линейка и не одна компания, а следствие того, что в середине 90-х несколько инженеров собрали процесс, который умеет бесконечно выпускать инфраструктурные проекты. 

В начале веба одним из главных серверов был NCSA httpd, написанный при Университете Иллинойса и быстро ставший популярным. Однако в момент поддержка затормозилась из-за банального увольнения сотрудника. Тем временем интернет рос, а с ним нагрузка и требования, поэтому команды выкручивались так, как некоторые живут до сих пор: брали исходники и накладывали поверх свои маленькие исправления, которые инженеры пересылали друг другу по почте. Пришло все к тому, что у всех был один и тот же сервер, но собранный из разных заплаток и никто не был уверен, у кого версия “правильная”. 

В 1995-м несколько людей, которым это надоело, решили начать собирать улучшения вместе, превращая россыпь патчей в единый, поддерживаемый продукт. Так появился ранний Apache HTTP Server. Брайан Белендорф (один из основателей) утверждает, что предложил название Apache из уважения к индейскому племени апачей за их выносливость и тактическое мастерство. Позже кто-то из команды заметил, что это звучит как «a patchy server» с дословным переводом - “сервер из заплаток”. Шутка всем понравилась и она стала частью фольклора. 

Позже основатели поняли, что ценность не только в самом сервере, а в том, как они его делают - открыто, через обсуждения и самое важное, через идею, что комьюнити важнее кода. Когда Apache HTTP Server стал критически важным для отрасли, в 1999 году оформили Apache Software Foundation как некоммерческую организацию, которая даёт проектам юридическую оболочку, инфраструктуру и стандарты управления, чтобы они не зависели от одного автора. Так Apache стала не «серия продуктов», а фабрикой зрелых open-source проектов. 

Фонд НЕ пишет Kafka или Spark “в офисе”, он предоставляет правила и среду, в которой разные команды могут запускать и развивать проекты. Сделано это для того, чтобы ими можно было пользоваться в продакшене десятилетиями, а не пока стартап не продался. В мире Apache считается, что если у проекта крутой код, но нет живого сообщества - значит проект мертв. Именно поэтому у них такая жесткая процедура приема проектов, где проверяют не столько строчки кода, сколько то, умеют ли люди договариваться. На сегодняшний день под крылом Apache находится более 350 проектов.

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

Подписывайтесь на наш Telegram-канал ИнженеркаТех. Там мы публикуем полезные подборки от инженеров и делимся инсайтами.

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

Продуктовая разработка с агентами, замена agile-команд и роль продакт-инженера — эти и другие темы я обсудил с Юрой Агеевым, основателем ProductSense, в новом выпуске подкаста make sense.

Слушайте на удобной платформе: 
> Telegram 
> Mave 
> Apple 
> Яндекс Музыка
> YouTube

Таймкоды:
00:00 — Введение
01:58 — Личный сетап агентов, эксперименты и первые сценарии
03:34 — Почему тема агентов — это про орг. модель, а не про игрушки
06:05 — Откуда взялся Agile: ответ на рост сложности продуктов
09:10 — Идея мини-команд для быстрого тестирования гипотез с агентами
11:10 — Риски одиночки: туннельность, критика, фактор автобуса
12:05 — Платформенная команда: стандарты, «золотой путь» и «ворота качества»
14:05 — Зависимость централизации от культуры компании
16:12 — Продакт-инженер: продукт и инженерия в одном цикле
17:32 — Схлопывание ролей: инженеры учат продукт, продукты учат технику
19:33 — Практика пайплайнов в работе с агентами: сначала документация, потом код
26:03 — Контекст как главная ценность и способ удержания клиентов
29:01 — Один в поле не воин: почему запуск и масштаб важнее кода
30:28 — Можно ли доверять агентам?
33:54 — Конкуренция заставит ускоряться: когда агенты станут нормой?
35:55 — Практика внедрения агентов: выделенные пилоты и команды добровольцев
37:35 — Главные риски: стоимость токенов и деградация навыков
42:09 — Как будут трансформироваться процессы и agile-роли?
50:57 — Как правильно строить эксперимент: задачи, команды, обучение и метрики

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

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

БФТ-Холдинг в рейтингах лучших работодателей

По итогам 2025 года БФТ-Холдинг вошел в топ-20 рейтинга лучших ИТ-работодателей по версии Хабр.Карьеры. Компания заняла 17 место среди организаций с численностью 1000–5000 сотрудников.

Выше всего пользователи оценили БФТ-Холдинг по таким критериям:
- Компания делает мир лучше
- Комфортные условия труда
- Отношения с коллегами
- Интересные задачи

Ранее компания стала участником топ-100 рейтинга лучших IT-брендов работодателей по версии Хабр и ЭКОПСИ. Также компания получила «Серебряный статус» в рейтинге Forbes.

Включение в авторитетные рейтинги работодателей России подтверждает, что БФТ-Холдинг - компания, где создают комфортные условия для работы и развития сотрудников.

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

Запуск USB-сканера отпечатков пальцев Chipsailing CS9711 на Linux.

Эти сканеры продаются на маркетплейсах по цене 1-2 т.р. Команда lsusb опознаёт их как
ID 2541:0236 Chipsailing CS9711Fingprint. Мейнстримный fprintd этот сканер не поддерживает. Как видно из комментариев к MR, разработчики не могут оценить точность нового алгоритма sigfm для сравнения отпечатков, потому не спешат (а дефолтному уже 15 лет, и он довольно плохо работает с низким разрешением сканера).

На Arch драйвер должен ставиться из AUR, рецепт для Fedora тут, далее - рецепт для Ubuntu.

TL;DR: аккуратно подменяем системную библиотеку libfprint-2.so версией из форка.

1. Скачать и скомпилировать форк libfprint-2 с поддержкой сканера

git clone https://github.com/archeYR/libfprint-CS9711
cd libfprint-CS9711
meson setup build

Последняя команда может выдать ошибку, не найдя в системе пакетов с нужными библиотеками (libgusb-dev, libopencv-dev и т.п.). Надо их поставить и выполнить её снова.

Компилируем:

ninja -C build

Для проверки позапускаем примеры:

cd build/examples
sudo ./enroll
sudo ./verify

Установить библиотеку, если всё хорошо (действовать с острожностью! обратите внимание на комментарии к посту)

cd ..              # предполагаю, что из build/examples никуда не уходили
sudo ninja install

В итоге должен появиться файл /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0 (и еще другие, тоже в /usr/local, но они не важны)

2. Установить пакет с демоном распознавания по отпечатку пальца

sudo apt install fprintd

Эта команда установит также пакеты с libfprint-2 из системных репозиториев, без поддержки нашего сканера.

3. Подменить библиотеку libfprint-2

Варианты:

  • указать ld.so читать нужную библиотеку перед запуском fprintd

  • создать в /usr/lib/x86_64-linux-gnu/ симлинк на правильный файл

  • перезаписать библиотеку в /usr/lib/x86_64-linux-gnu

  • PPA

У каждого есть плюсы и минусы, последние два рассмотрены не будут.

3.1. Предзагрузка нужной libfprint-2

sudo systemctl edit fprintd

Откроется окно редактора; добавить две строки (там сказано, куда)

[Service]
Environment="LD_PRELOAD=/usr/local/lib/x86_64-linux-gnu/libfprint-2.so"

сохранить файл, закрыть редактор.

3.2. Установка правильной символической ссылки

sudo update-alternatives --install\
  /usr/lib/x86_64-linux-gnu/libfprint-2.so.2\
  libfprint\
  /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0 100

В комментах под постом написано, что должна выдать команда ls -l, если всё сделано правильно.

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

sudo systemctl restart fprintd
sudo systemctl status fprintd

Ожидаемый вывод:

● fprintd.service - Fingerprint Authentication Daemon
     Loaded: loaded (/usr/lib/systemd/system/fprintd.service; static)
    Drop-In: /etc/systemd/system/fprintd.service.d
             └─override.conf
     Active: active (running) since Tue 2026-02-24 16:02:45 MSK; 1s ago
          ...
фев 24 16:02:45 machine-name systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
фев 24 16:02:45 machine-name systemd[1]: Started fprintd.service - Fingerprint Authentication Daemon.

4. Зарегистрировать пальцы командой fprintd-enroll

По умолчанию регистрируется правый указательный, остальное написано в man fprintd-enroll

5. Включить вход по отпечатку

sudo pam-auth-update

поставить звёздочку на Fingerprint Authentication и нажать Ok.

Это вот так поменяет файл /etc/pam.d/common-auth:

-auth   [success=1 default=ignore]      pam_unix.so nullok
+auth   [success=2 default=ignore]      pam_fprintd.so max-tries=5 timeout=10 # debug
+auth   [success=1 default=ignore]      pam_unix.so nullok try_first_pass

Проверено на Kubuntu 24.04.4 LTS.

Ссылки по теме:
https://man7.org/linux/man-pages/man8/ld.so.8.html
https://manpages.ubuntu.com/manpages/noble/man5/pam.conf.5.html

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

Привет, Хабр! Буду краток: буквально на днях компания Positive Technologies выпустит свой научно-популярный фильм о реверс-инжиниринге «Как получить доступ ко всему». Позже он появится в онлайн-кинотеатрах, но самый шик-блеск — посмотреть допремьерный показ вместе с его создателями в крутейшей локации.

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

Фильм создавался полтора года, из которых 5 месяцев было потрачено на проработку идеи и 11 месяцев на саму съёмку и производство. Причём всё пересобиралось три раза, чтобы сохранить грань между «трушностью» для самих реверсеров и понятностью для широкой аудитории. Съёмки проходили во множестве локаций: в офисах PT (в том числе в исследовательских лабораториях Positive Labs), Лаборатории Касперского, Т-Банка, в Кибердоме, музеях криптографии и военной техники, на производстве компании «Моторика» и в других интересных местах. Команде удалось снять исследование космического спутника, бионических протезов, автомобильных беспилотных систем, специализированные установки для аппаратного реверсинга и многое другое.

В фильме воссоздаётся пять исторических эпох, описывающих историю советского и российского реверс-инжиниринга за последние сто лет:

  • 20–40-е годы, когда упор делался на военную промышленность и было важно знать, как устроены орудия врага, чтобы сделать свои ещё эффективнее.

  • 60–80-е, когда появились первые большие ЭВМ.

  • 90–00-е, когда массовая доступность компьютеров привлекла реверсеров, которые делали ПО бесплатным для всех.

  • 10–20-е, сегодня, когда распространение технологий привело к лавине киберугроз.

  • Будущее, в котором создатели размышляют о том, есть ли место этой профессии в эру ИИ и десятка умных устройств на одного человека.   

Когда: показы пройдут 27 (пятницаи) и 28 (суббота) февраля, в 11, 15 и 19 часов
Место: «Кибердом» — Москва, ул. 2-я Звенигородская, 12с18

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

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

Изучаю механизм проактивного АИ-агента. Часть 2

В первой части я рассказал про концепт проактивного AI-агента и показал примеры сообщений, которые он мог бы присылать. Последние 3 дня я занимался реализацией — и сегодня пришло первое сообщение от него

За основу я взял популярный OpenClaw, но захотел переписать бота по-своему и разобраться с тем, как живёт и думает эта сущность

Архитектура: из чего состоят подобные OpenClaw агенты

Heartbeat — сердце агента

Это цикл, который раз в N минут триггерит основные события, проверки и запускает переписывание файлов, если нужно

«Проснись, посмотри, что изменилось, подумай, что предложить пользователю».

Memory — память агента

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

Краткосрочная — контекст текущей сессии, что происходило сегодня, какие задачи обсуждали, что пользователь ответил. Долгосрочная — в случае OpenClaw это SQLite с механизмом эмбеддингов. Ну можно поставить любую другую векторную бд

Плюс есть еще такие файлы как Soul, Agents, Identity, User, Memory и еще несколько. Все они сразу попадают в Context Window

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

Memory Compaction — сжатие памяти

В OpenClaw агент хранит часть контекста в файлах формата MEMORY_MM_DD_YYYY с историей каждого дня.

По прошествию нескольких дней агент делает Compact этих файлов и удаляет / архзивирует их исходники

Context Routing — маршрутизация контекста

Как и чем нужно заполнять контекст на протяжении времени? Как его сжимать?

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

Context routing решает, какие куски информации попадут в промпт для конкретного цикла работы агента.

Prompt Assembly — сборка промпта

Как структурировать промпт? Какая информация в нём приоритетнее, а что можно поджать? Как выбираются цели на конкретный день?

Это отдельная инженерная задача. Промпт агента — не статичный текст. Он собирается динамически из кусков: текущие цели, релевантная память, задачи из таск-трекера, контекст дня недели и времени.

---------------

Что я добавил к исходному варианту OpenClaw от себя

Reflection — самооценка агента

Экспериментальный блок, где модель оценивает сама себя по 4 шкалам:

  • Actionability — дал ли конкретные шаги?

  • Relevance — был ли совет по теме цели?

  • Novelty — сказал ли что-то новое?

  • Overall quality — общее качество

Зачем это нужно: без обратной связи агент быстро скатывается в банальности типа «Не забудь поработать над своими целями!». Reflection заставляет его критически оценивать свой же output и со временем улучшать качество предложений.

К чему он у меня подключен

  • TickTick — мой таск-трекер, откуда бот смотрит задачи и ставит новые

  • Telegram — сюда он мне пишет и предлагает задачку на сегодня

  • Discord — самый лучший по функционалу на сегодня

----------------

Что я понял в процессе

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

В чат-боте пользователь задаёт вопрос → получает ответ. Всё. Контекст понятен из вопроса.

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

Это, по сути, проектирование UX для системы, у которой нет интерфейса в привычном смысле — только текст в мессенджере.

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

Если где то нашли неточность, то пинганите в комментах

В третей части напишу подробнее про OpenClaw, так как пока решил его потестировать

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

На GitHub сегодня обновил батник для скачивания видео через yt-dlp. Текущую версию попытался продублировать здесь:

@set @x=0 /*
@echo off
chcp 65001 >nul
setlocal
set VideoURL=gaRy9U0yiSA
set head=
set suffix=
set series=%%(series)s. 
call :set_template
set format=b
set enable_format_recommendations=1
set extension=mov
set AppPath=D:\kvk\Utilities\GitHub\yt-dlp\yt-dlp.cmd
if not exist %AppPath% set AppPath=yt-dlp.exe
if not -%1- == -- (set format=%1 & set enable_format_recommendations=0)
set tempFileName=%random%.tmp
call %AppPath% -o "%%template:.!=%%" --windows-filenames --socket-timeout 45 --print-to-file filename %%tempFileName%% --skip-download %%VideoURL%%
if not errorlevel 0 if exist %tempFileName% del /q %tempFileName%
if not exist %tempFileName% exit /b
cscript /nologo /e:javascript "%~dpnx0" %tempFileName%
set /p filename=<%tempFileName%
set processed_series=%filename:!.=!%
if not "%processed_series%" == "%filename%" (setlocal enabledelayedexpansion & set series=!series:~0,-2! & setlocal disabledelayedexpansion & call :set_template & set filename=%processed_series%)
set filename_without_series=%filename:NA. =%
if not "%filename_without_series%" == "%filename%" (set series=& call :set_template & set filename=%filename_without_series%)
setlocal enabledelayedexpansion
set filename=!filename:.mp4=.%extension%!
set filename=!filename:.webm=.%extension%!.txt
setlocal disabledelayedexpansion
echo %VideoURL% > "%filename%" && del /q %tempFileName%
cscript /nologo /e:javascript "%~dpnx0" "%filename%"
echo.>> "%filename%"
call :size "%filename%"
set tempsize=%filesize%
call %AppPath% --socket-timeout 45 --print formats_table %%VideoURL%% >> "%filename%"
if not errorlevel 0 exit /b
call :size "%filename%"
if %tempsize% == %filesize% exit /b
for /f %%i in ('cscript /nologo /e:javascript "%~dpnx0" "%filename%" /FORMATRECOMMENDATIONS:%enable_format_recommendations%') do if defined enable_format_recommendations if "%enable_format_recommendations%" == "1" if not "%%i" == "" set format=%%i
if -%1- == ---- exit /b
start "yt-dlp: %VideoURL%" %AppPath% -o "%template%" --split-chapters --postprocessor-args "SplitChapters+ffmpeg:-map_metadata -1" --video-multistreams --audio-multistreams --windows-filenames --remux-video %extension% --concurrent-fragments 10 --socket-timeout 45 --abort-on-unavailable-fragment --exec "pause " --embed-metadata --format %format% %VideoURL% ^&exit/b
:set_template
set template=%head%%series%%%(title)s [%%(id)s]%suffix%.%%(ext)s
exit /b
:size
set filesize=%~z1
goto:eof */

var fso = new ActiveXObject("Scripting.FileSystemObject"), fName = "", newText = "";
if(WSH.Arguments.Unnamed.Count && fso.FileExists(fName=WSH.Arguments.Unnamed(0))){
	with(new ActiveXObject("ADODB.Stream")){Type=2; Mode=3; Open(); Charset="UTF-8"; LoadFromFile(fName);
		Position=0; var newText=ReadText().replace(/\s*$/, ""); Close();
		newText = ((isTemp=/^\d+\.tmp$/.test(fName)) ? newText.replace(/\(/g, "{").replace(/\)/g, "}") : newText.replace(/\r\n|\n/g, "\r\n"));
		fso.DeleteFile(fName);
		Open(); Charset="UTF-8"; Position=0; WriteText(newText + (isTemp ? "" : "\r\n")); SaveToFile(fName); Close();
	}
}
if(1*WSH.Arguments.Named.Item("FORMATRECOMMENDATIONS") && newText){
	var line, lines = newText.split("\r\n"), recommended_audio_format = "", recommended_video_format = "";
	for(var lineIndex in lines){
		if(/audio only/.test(line=lines[lineIndex])){
			if(/(^hls\S+)\s.+audio only.*$/.test(line))recommended_audio_format = RegExp.$1;
			else if(!/^hls/.test(recommended_audio_format) && /(^\S+)\s+m4a/.test(line))recommended_audio_format = RegExp.$1;
		} else if(/video only/.test(line)){
			if(/(^hls\S+)\s.+video only.*$/.test(line))recommended_video_format = RegExp.$1;
			else if(!/^hls/.test(recommended_video_format) && /(^\S+)\s+mp4\s+1920x1080\s+.*avc1/.test(line))recommended_video_format = RegExp.$1;
		}
	}
	WSH.echo(recommended_audio_format && recommended_video_format ? recommended_audio_format + "+" + recommended_video_format : "");
}
Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии5