Обновить

Все потоки

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

Внутри ИИ‑Напарника: как работает оркестр агентов в ритейле

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

Всем привет! Это Алексей из GlowByte. В прошлой статье я говорил о том, почему категорийный менеджер в большой сети часто чувствует себя одиноким среди сотен дашбордов: систем у него избыток, а компетентного собеседника, который был бы в его контексте и без своей повестки, рядом нет. Решение, которое мы GlowByte называем мультиагентной платформой, закрывает именно эту потребность. В новой статье разберём, что под капотом у такого решения и почему ИИ‑напарник ближе к партнёру по бизнесу, чем к очередному чат‑боту.

Читать далее

Пришел, увидел, разобрался: как я возглавил отдел в 5G Core, не различая SMF и AMF

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

Привет! Меня зовут Сергей, я руководитель отдела разработки компонентов опорной сети 5G в YADRO. Когда меня пригласили на эту роль, я не знал, как работают протоколы управления сессиями и чем конкретно LTE отличается от 5G, но точно знал, как выстроить процессы в команде, где каждый второй — инженер с десятилетним стажем. 

Как вы уже поняли, стать руководителем в телеком-команде без опыта в телекоме можно. Навыки здесь нужны те же, что и руководителю в любой IT-компании: выстраивать процессы, работать с людьми, принимать решения, управлять сроками и рисками. Предметная область подтягивается по ходу, а вот к масштабу задач придется привыкать. Сложно ли было не «поплыть» и пришлось ли зубрить спецификации 3GPP на ночь, я расскажу в статье.

Читать далее

Как плохой UX в B2B-продукте приводит к потере денег

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

Раньше часто сталкивался с мнением, что дизайн в B2B вообще не нужен. Мол, Figma можно исключить из процессов и всё делать в коде.

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

Читать далее

Я попытался расшифровать манускрипт Войнича. Спойлер: не расшифровал — но выяснил, почему это не удалось и АНБ

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

Слотовая марковская модель из ~200 строк Python воспроизводит статистику манускрипта Войнича с точностью до сотой бита. Разбор четырёх экспериментов: как я нашёл «признак смысла» в тексте, а потом сам же его опроверг контрольным тестом — и почему без внешнего ключа манускрипт не расшифрует никакая статистика. Код и данные открыты.

Читать далее

Pheme: как пет-проект «отправить пуш с сайта» дорос до федеративного E2E-мессенджера с голосом

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

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

Так родилась идея: сервис, куда сайт стучится одним HTTP-запросом, а на всех твоих устройствах через секунду загорается уведомление. Я назвал его Pheme.

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

Читать далее

Пять неправильных токенов и 245 картинок: как Krea 2 заработала на Swift и MLX

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

На обложке — команда, которой не было. В реальности Twisterminigen создавался за одним столом: я, Mac mini M4 с 32 ГБ объединённой памяти и Codex.

Получилось нативное приложение для Krea 2 Turbo на Swift и MLX: без Python внутри и без облачного inference, но с очередью, LoRA, Regional Prompts, Presets и воспроизводимыми рецептами генерации.

Самый опасный баг при этом не падал и не рисовал шум. Пять токенов из 512 получали неправильные RoPE-позиции, старый тест проходил, а картинки выглядели нормально. После исправления тот же prompt и seed изменили 99,32% пикселей.

В статье — как набор из 31,18 ГиБ весов заработал на 32-гигабайтном Mac, почему одинаковый seed не является паспортом персонажа и где заканчивается красивая картинка и начинается проверяемый продукт.

Читать далее

Как заменить Helm на Helmwave в большом проекте и получить массу новых возможностей

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

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

Меня зовут Владимир Фидунин, я работаю в команде мессенджера VK WorkSpace. В статье расскажу, как мы прошли путь от Puppet + Helm до Helmwave и почему в итоге он стал для нас универсальным инструментом управления Helm-релизами. 

Читать далее

Агент OpenAI не сошёл с ума. Что мы знаем о взломе Hugging Face спустя неделю

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

Первая новость об этой истории уже успела состариться. Сначала Hugging Face сообщила о сложной автоматизированной атаке, потом OpenAI признала, что за ней стояли её модели, а ещё через несколько дней Reuters описал неприятную задержку с обнаружением. Каждое новое объяснение делало исходный заголовок спокойнее на вид и неприятнее по существу.

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

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

Читать далее

Я написал SSH‑клиент для Windows

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

Со временем у меня появилось несколько серверов: VPS, домашний NAS и ещё пара машин под разные задачи. Для подключения я использовал PuTTY. Он работает, но управлять несколькими серверами в нём неудобно. Сессии хранятся в реестре Windows, список хостов плоский, вкладок нет. Чтобы открыть два сервера, нужны два отдельных окна.

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

Мне не хотелось регистрироваться и загружать список своих серверов в облако ради обычного SSH‑подключения. Поэтому я начал делать собственный клиент - LucidSSH. Это не попытка собрать ещё один комбайн для системных администраторов. Мне нужен был простой локальный SSH‑клиент с несколькими дополнительными функциями: защитой от опасных команд и понятными объяснениями ошибок.

Я не занимаюсь администрированием каждый день. Поэтому делал программу прежде всего для таких же пользователей, как я: тех, кто впервые настраивает VPS, NAS, Raspberry Pi или небольшой домашний сервер. Разрабатываю LucidSSH в свободное от основной работы время.

Читать далее

Основы NFC и интеграция с PC/SC

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

Сегодня расскажу, что такое NFC с техническими подробностями, чтобы это могло быть полезным всем, кто сталкивается с этим в разработке прикладного ПО, а также затрону тему интеграции доступа к NFC меткам через PC/SC считыватели. Последний пункт относится это к десктопным системам. На мобильных платформах всё сложней, потому что, как правило, нет общей реализации PC/SC, а доступ реализован через специфичный для данной платформы API.

Читать далее

Что такое дифференциал первого и второго порядка (Продвинутый уровень)

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

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

Читать далее

Как я сделал AiRevit: от обычного текста до BIM-модели в Revit б без LLM

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

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

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

Я решил собрать свой вариант и назвал его AiRevit. Это не чатик с LLM поверх Revit. Тут вообще не предполагается использования такой архитектуры, которая бы основывалась на угадывании токена (нам не нужно ничего угадывать, нужно соблюдать строгие строительные правила). Это детерминированный pipeline, где текст сначала превращается в структурированный program_graph, потом в layout_solution, а уже потом в реальные элементы Revit через Dynamo и Python-скрипты. В репозитории это разложено на Node 3, Node 4 и Node 5, чтобы не было каши и чтобы каждый кусок отвечал за свою часть работы. (https://github.com/Rearks/AiRevit)

Читать далее

От учёта прошлого к экономике будущих решений: что я взяла из CIMA

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

От учёта прошлого к экономике будущих решений: что я взяла из CIMA

Я была уверена, что хорошо разбираюсь в финансах: практический опыт в учёте, МСФО, бюджетировании, автоматизации затрат. Экзамен CIMA Dip PM я сдала с 71% с первой попытки — но главным открытием оказался не балл. Я поняла, что весь прошлый опыт научил меня хорошо считать прошлое, а не принимать решения о будущем.

А теперь по порядку...

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

Запись экрана и ссылка на календарь. Как из двух элементарных функций выросли миллиардные Calendly и Loom

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

Что лучше: ультрамногофункциональный швейцарский нож или скальпель?

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

Истории Calendly и Loom показывают совершенно другой путь.

Читать далее

Как мы перестали выдавать dev-VM вручную и собрали self-service на KubeVirt

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

Разработчикам регулярно требовались виртуальные машины, но self-service не существовал. Образ, ресурсы, сеть и доступы настраивала инфраструктурная команда. По отдельности операции были несложными, но в сумме пользователи ждали, а инженерное время уходило на повторяемую ручную работу.

Так появился внутренний dev cloud на KubeVirt. Разработчик сам создаёт VM из поддерживаемого шаблона, управляет lifecycle и портами, меняет ресурсы, смотрит Events, метрики и serial-консоль. Платформа сохраняет контроль над доступами, шаблонами, бюджетами команд и ёмкостью нод.

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

Читать далее

Эксплуатация уязвимости Stack Overflow в драйверах Windows

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

С вами на связи команда Red Team из Angara Security. Сегодня мы немного погрузимся в основы одной из дисциплин, которая является фундаментом любого Malware и Exploit Development. Эти два направления критично важны для проведения ассессментов, если ты хочешь имитировать действительно скилловых злоумышленников, обходить средства защиты и получать необходимый результат, оставаясь незамеченным для служб реагирования на инциденты.

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

Читать далее

За полчаса и 10 рублей — полноценный сайт для загрузки и редактирования скриншотов на вайбкоде. Пошаговая инструкция

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

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

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

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

Читать далее

Трилемма Святого Грааля типизации: почему нельзя всё сразу

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

Все мы знаем, что языки делятся на динамические и статические: Python или JS позволяют молниеносно прототипировать, но расплачиваться нестабильностью в продакшене приходится потом, тогда как C++, Java или C# требуют прописывать типы сразу, оплачивая монументальную надежность замедлением разработки.

В 2006 году Джереми Сиек предложил разрешить этот конфликт концепцией постепенной типизации в работе «Gradual Typing for Functional Languages»: язык остается динамическим по умолчанию, однако разработчик может аннотировать типами отдельные модули или функции, не покрывая ими всю кодовую базу, а типизированный и нетипизированный код взаимодействуют через специальный динамический тип Dyn. Звучит как сказка — быстрое прототипирование с постепенным наращиванием стабильности. Однако при детальной проработке вскрылись фундаментальные нюансы: в серии последующих работ Сиек, Таха, Вадлер и другие показали, что стыковка типизированного и нетипизированного кода требует операции приведения типа (cast), а дизайн этого каста упирается в противоречие между тремя желаемыми свойствами — надёжностью системы типов (soundness), собственно постепенностью (gradual typing) и отсутствием рантайм-обёрток на границах (no wrappers).

Позднее сообщество, и я в том числе, переосмыслило третью вершину: no wrappers — это забота о производительности и прозрачности рантайма, безусловно важная, но с позиции программиста, а не математика-оптимизатора, правильнее говорить о удобстве разработчика (developer-friendly). Это свойство вбирает в себя no wrappers как частный случай, добавляя понятные сообщения об ошибках, низкий порог входа и отсутствие многослойных типовых аннотаций, ведь если ради производительности приходится городить бесконечные теоремы типов, такая система едва ли приживётся на суровом рынке опенсорса.

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

Читать далее

Как интернет ушёл от hosts.txt и почему это было неизбежно

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

Откройте терминал и выполните cat /etc/hosts. Скорее всего, там лежит пара строк про localhost и, может быть, несколько ваших локальных записей… А когда‑то этот файл содержал адреса всех компьютеров интернета и обновлялся по телефонному звонку. Под катом расскажу, как весь интернет работал через один текстовый файл, кто его обновлял и куда он в итоге делся. 

Читать

Микрофронтенды в экосистеме Vue 3: практическое руководство для разработчика в 2026 году

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

Привет, друзья! Меня зовут Наталья и я frontend‑разработчик в компании SimbirSoft. 

Когда‑то в 2020 году микрофронтенды были модой. Чуть ли ни каждый хотел почувствовать себя всемогущим и попробовать разделить монолит на части, а также получить от шефа премию или эмоциональное поглаживание и картонку с надписью «Спасибо» (если повезет, то отдадут прямо с рамкой). Затем забыли про них и, но недавно в компанию пришла потребность разработки сайта с архитектурным паттерном «Микрофронтенды». Всех обязали вспомнить или узнать что же такое микрофронтенды? Чушь или все‑таки необходимость? Давайте разбираться.

По мере роста проектов мне как Vue‑разработчику уже неоднократно приходилось сталкиваться с вопросом: как разделить фронтенд между несколькими командами так, чтобы они меньше зависели друг от друга? 

Одним из вариантов остаются микрофронтенды. В статье я разберу Module Federation 2.0 для Vue 3 + Vite, изоляцию стилей и состояния, способы коммуникации между remotes и то, что происходит с этой архитектурой, когда в проекте появляется SSR и Nuxt 4.

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

Сначала разберём Module Federation для Vue 3 + Vite, затем — изоляцию стилей и состояния, коммуникацию между приложениями, SSR в Nuxt 4 и роль host‑приложения в маршрутизации.

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

Читать далее