Ребалансинг в Kafka — не самая популярная и местами не самая понятная тема. Обычно о нём вспоминают только тогда, когда consumer начинает отставать, обработка останавливается, а группа уходит в бесконечные ребалансы.
В этой статье попробую простым языком разобраться, почему это происходит, какие проблемы могут к этому привести и что можно сделать, чтобы минимизировать частые ребалансировки.
Узнать большеПривет! На связи Дмитрий Чепайкин, старший Angular-разработчик в команде Klecks — платформы для разметки данных AI Центра Т-Банка.
Долгое время unit-тесты фронтенда у нас крутились на Karma + Jasmine. Схема работала, пайплайн зеленый, переписывать «ради моды» не хотелось. Но в какой-то момент Karma официально признали deprecated, а корректная отгрузка отчетов в Allure перестала быть чем-то, на что можно положиться. Расскажу, как мы выбирали замену, почему сначала смотрели на Jest, а в итоге приняли Vitest — и как устроен итоговый сетап.
Читать далееПосле встречи остаются новая дата, несколько обещаний и фамилия, которую никто не записал. Носимые ИИ-гаджеты предлагают сохранять такие детали автоматически: микрофон собирает речь, приложение превращает её в текст, а модель выделяет договорённости и задачи. Другие устройства предназначены для коротких голосовых заметок или общения с виртуальным собеседником.
Читать далееВыполните curl -I https://example.com прямо сейчас. В ответе вы увидите server: cloudflare и cf-ray — домен, который мы все используем для примеров кода, работает за одним из крупнейших CDN в мире.
Но так было не всегда. В 2002 году example.com отдавался с Apache 1.3.22 на Red Hat Linux, а в 2013-м переехал на EdgeCast CDN. За последние 25 лет домен сменил несколько инфраструктурных провайдеров и пережил множество оптимизаций.
Давайте посмотрим, как менялась архитектура example.com и какие технические решения стоят за этими изменениями.
Читать далееВ разработке большую часть функционала оценивают бинарно — либо кнопка работает, либо нет. А вот в алгоритмах с нейросетями результат всегда остается вероятностным и зависит от n-го числа параметров.
Я Евгений Макутин, ML-инженер Далее. В статье расскажу, как договориться о способах измерения качества и условиях, при которых результат AI/ML-решения считается принятым.
Читать далееКажется, у вайб-кодинга обнаружился довольно неожиданный побочный эффект. Он может лишить программиста удовольствия от программирования.
Причём самое обидное, что для этого AI-агенту даже не нужно писать плохой код. Наоборот, чем лучше он справляется, тем интереснее становится проблема.
Представьте: раньше вы открывали редактор, придумывали архитектуру, писали какой-нибудь модуль, несколько раз его переделывали, обнаруживали красивое решение и испытывали вполне понятное удовольствие от результата.
Теперь вы открываете редактор, объясняете агенту, что нужно сделать, и получаете готовую реализацию.
Если всё прошло хорошо, остаётся посмотреть diff, запустить тесты, оценить результат и принять изменения.
Прекрасно. Производительность выросла, рутинной работы стало меньше. Только куда-то исчез довольно существенный кусок самого программирования.
И вот у меня вопрос: а если человеку нравился именно этот процесс?
Я, конечно, говорю о депрессии в бытовом смысле. Меня интересует потеря удовольствия от привычной деятельности. Причём деятельности, которой многие из нас добровольно занимались и после работы.
Мне кажется, мы довольно много обсуждаем, насколько AI-агенты увеличивают производительность программистов, и гораздо меньше говорим о том, как они меняют само удовольствие от разработки.
А ведь программисту, вообще-то, должно нравиться программировать.
Чтобы вылечить депрессию нужен простой...Камера и стиль в нейросетях для видео держатся на четырёх элементах описания: формат кадра, камера с объективом, источник света и дефект картинки. Ниже 20 стилей, проверенных на Kling 4.0, Hailuo 3.0 и Veo Omni Flash 1.1: 17 вышли полностью, 3 частично.
Читать далееВ первые минуты инцидента важнее всего не скорость, а порядок. Когда сыплются алерты, руки сами тянутся перезапустить сервис или что-нибудь удалить. А причину быстрее находит тот, кто проходит одни и те же шаги в одном и том же порядке.
Ниже мой чек-лист для Linux-сервера: пять шагов, по нескольку команд на каждый. Я собрал его, пока делал 13 кейсов для тренажёра дежурств (о нём была первая статья). Поэтому у каждого шага есть пример из кейса, где именно он находит причину.
За пять минут чинить не обязательно. Задача этих минут — понять, в каком слое проблема, и ничего не сделать хуже.
Читать далееЯ делаю «Балконный сад» — пиксельный симулятор растений в реальном времени на Godot 4.3. Игра задумана как фоновая: сад растёт, пока вы заняты своими делами. Сначала она вышла только под Windows, а игроки сразу попросили Linux. Потом я задумался, где ещё может спокойно жить такая игра, и ответ нашёлся быстро: в кармане, на карманной консоли.
В статье расскажу про оба порта. Сначала про Linux-сборку: что нужно настроить в Godot, почему я отдаю архив .tar.gz и какие баги нашёл первые же игроки. Потом про R36S и PortMaster: как игра понимает, что запущена на консоли, как кнопки превращаются в клавиши, как сделать интерфейс, рассчитанный на мышь, управляемым крестовиной, и как упаковать всё для PortMaster. Кода немного, но проблем хватает.
Читать далееИнтеграционный тест стабильно проходит локально, но в CI падает примерно раз в 30 прогонов. Перезапуск сборки возвращает зелёный статус, а причина сбоя остаётся неизвестной. На примере Java, Spring Boot и JUnit 5 разберём, как случайный порядок запуска тестов и общее состояние базы данных приводят к таким падениям и как найти настоящую причину, прежде чем пытаться её исправить.
Разобрать падениеТипичная картина: в одном проекте Backend на Java, вспомогательные сервисы на Python, интерфейс на TypeScript, а один микросервис — на C#. Знакомо? Последний компонент часто означает вторую IDE, другие горячие клавиши, отдельные настройки и постоянные переключения между средами. В GigaIDE появилась поддержка C# и .NET. C# больше не требует отдельной IDE: разработка ведётся в единой среде, без переключений и потери контекста. Функция доступна бесплатно в Community-режиме.
Читать далееЧто делать, когда по телевизору 2–3 центральных программы, в кино интересную картину привозят нечасто, до появления ПЭВМ еще долго, а журналы по типу «Юности» выходят раз в месяц?
Читать далееС каждым новым кластером начинается одна и та же рутина: пароль от реестра нужно скопировать в каждый namespace, где будут загружать приватные образы, и повторить это при ротации. Кластеры создаются динамически, так что рутина не кончается, а в каждой копии пароль может протухнуть или утечь.
В Kubernetes 1.34+ есть выход: kubelet может передать плагину токен ServiceAccount пода, для которого загружают образ, а плагин обменяет его в реестре на короткоживущие учётные данные только на чтение. Токен ServiceAccount выпускается для конкретного пода на ограниченное время и не лежит ни в одном манифесте. Реестр сам решает, каким токенам верить. Это ближе к zero trust: у пода нет долгоживущего секрета, который можно украсть и использовать из другого места.
Схема работает, но при отказе причину трудно найти. Под переходит в ImagePullBackOff, а в events виден лишь общий ответ реестра: failed to resolve reference ... unexpected status from HEAD request. Настоящую причину пишет kubelet, и она есть только в его журнале на ноде:
ak-kubelet-provider: https://ak.test: 401 CI JWT did not match any identity mapping
Эта строка появляется не сразу: сначала нужно настроить kubelet, права нод и сам реестр. Плагин написал я для реестра Artifact Keeper, и все примеры взяты с моего тестового кластера.
Читать далееПроблемы подготовки отчетности на основе данных, собранных от разных сотрудников, хорошо известны: длительные сроки, ошибки, высокая стоимость процессов и влияние человеческого фактора. Однако переход на новую систему часто вызывает сопротивление персонала: сложившиеся за годы схемы работы никто не хочет менять. А что, если сохранить привычный формат работы, но отказаться от ручной обработки файлов, сверок и бесконечных согласований? Именно такой подход мы реализовали в Smart Forms Pro. В этой статье вас ждет базовый разбор нашего нового решения: я расскажу об основных возможностях и покажу его интерфейс.
Читать далееМ.Видео запустила пять пилотных магазинов в Подольске, Казани, Ростове-на-Дону, Москве и Сызрани, добавив в них зоны с товарами маркетплейса. Новый формат розницы предполагает расширение традиционного ассортимента техники и электроники за счет товарных категорий, которые широко представлена на маркетплейсе М.Видео, а именно одежды, мебели, товаров для красоты, детства, дома и досуга, инструментов, FMCG-товаров и других. В случае успешности пилотирования до конца 2026 года М.Видео планирует открыть еще шесть таких магазинов в Санкт-Петербурге, Волгограде, Екатеринбурге, Томске, Тамбове и Уфе.
Читать далееВступление
Привет, Хабр!
Меня зовут Михаил Поливаха, я Tech Lead проекта Axelix. Если Вы раньше про нас не слышали, то Axelix это платформа для управления и диагностики Spring Boot приложений. Ядро проекта доступно в Open Source, поэтому исходный код, история изменений и, как выяснилось, наши ошибки тоже открыты всем желающим
В BigData МТС я занималась направлением сеть - а это базовые станции (БС, вышки) и всё, что с ними связано. Моя задача была увеличивать прибыль применяя ML. Я сама определяла на какие метрики и как она раскладывается. И вот, пришла идея посчитать сколько абонентов приводит с собой новый абонент в зависимости от разных факторов.
Привет! Меня зовут Маша, я Senior Product Manager и разбираю только те продукты, над которыми сама хотела бы поработать, так как ими пользуюсь, люблю и вижу, где есть потенциал роста. Мне драйвово искать для них решения, которые выводят продукт на новый уровень не только по деньгам, но и по UX и любви пользователей. Мои разборы: Салют mini vs Маруся Neo. Кто из них полезнее? и Пять звёзд, ноль доверия: отзывы на Яндекс.Картах.
Читать далееЭта камера появилась у меня почти случайно. Сидел на известной всем онлайн-барахолке и увидел лот за невысокую цену от продавца с хорошей репутацией. Я начинал свой путь в серьёзные камеры с Nikon и люблю его, поэтому ни секунды не колебался и написал продавцу. Оказалось, что он живёт в соседнем доме. Сделка состоялась молниеносно. Камера была в очень хорошем состоянии и, с его слов, почти всё время с момента покупки лежала на полке как резервная.
Это происходило довольно давно, ещё до ренессанса старой цифровой фототехники, и у меня камера тоже большую часть времени просто стояла на полке как артефакт. Но в этом году я довольно много снимал и хочу поделиться опытом и впечатлениями.
Читать далееКак я рассказывал в первой части, реализация работы с памятью - довольно непростое занятие, и в первой части я рассказывал про сравнительно лёгкую область этой работы.
Пока процесс однопоточный, сборщик мусора имеет дело с одним стеком, одним набором регистров и одной точкой выполнения. Как только появляется второй поток, он уже может одновременно менять кучу на другом процессорном ядре. А после появления горутин выполнение Go-кода вообще перестаёт быть жёстко связано с одним стеком нативного потока.
В релизе GoOS 0.2.8 сначала появились нативные потоки пользовательского пространства, а затем поверх них — собственный M:N runtime для горутин. После этого задача сборщика мусора стала заметно неприятнее: перед освобождением объекта нужно быть уверенным, что ссылка на него не осталась в стеке другого потока, в сохранённом контексте горутины, в XMM-регистре или в промежуточном состоянии переключения контекста.
Это уже не только задача GC. Здесь пересекаются планировщик, аллокатор, ABI, TLS, виртуальная память и код сохранения регистров.
Читать далее21 октября 2026 года на PyPI вышел litellm==1.107.0 со стилером учётных данных, а образы Docker с тем же тегом оказались заражены. LiteLLM — один из самых популярных open-source LLM-шлюзов: он хранит ключи ко всем вендорам моделей, которыми пользуется команда. Для LiteLLM это второй такой случай за год: в марте 2026 были скомпрометированы версии 1.82.7 и 1.82.8.
Читать далее