Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Статья

Russian Spelling Dictionary 1.0.5: Экспансия

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

Когда я выпускал Russian Spelling Dictionary 1.0.1, задача была довольно узкой: собрать пригодный для повседневной работы русский орфографический словарь и доставить его пользователю. В предыдущей статье я рассказывал, как появился первый выпуск. Повторять тот рассказ не буду.

Сейчас интереснее посмотреть на весь путь от 1.0.1 до 1.0.5. За четыре выпуска словарь вырос с 179 956 до 550 291 записи. Для CSpell теперь подготовлено 2 342 788 словоформ. Появились отдельные пакеты для Mozilla, LibreOffice и других программ с поддержкой Hunspell. Наконец, в 1.0.5 удалось заметно улучшить подсказки, не изменив распознавание слов.

Поэтому «экспансия» в заголовке — не только про размер. Словарь расширился сразу в трёх направлениях: по составу, по качеству проверки и по числу программ, в которых его можно использовать.

Читать далее

Новости

Пост

Облако для продакшена. Что показывают steal, await и реальная полоса?
Два провайдера, одинаковая строка в тарифе: 4 vCPU, 8 ГБ, 100 ГБ SSD, гигабит. Цена расходится на 15 процентов, и непонятно почему. Через неделю тестов выясняется, что p99 отличается в разы. Тариф описывает то, что выделено виртуально. Что происходит в железе, туда не попадает.

Почему синтетика не отвечает на вопрос? Geekbench и sysbench меряют потолок за короткий тест. Продакшен работает иначе: нагрузка неровная, соседи по ноде непредсказуемы. Провайдеры делают оверкоммит, и пока суммарная нагрузка умеренная, все хорошо. Стоит нескольким машинам дать всплеск разом, растет steal, удлиняется дисковая очередь, канал упирается в шейпер. Короткий тест может не попасть в это окно. Нужно от получаса нагрузки, а на суточные паттерны от 24 часов.

CPU steal. Steal это доля времени, когда vCPU готов работать, но гипервизор не дает ему физическое ядро. Приложение получает задержку без видимой причины: процессор загружен, работа не идет.

vmstat 1 30
procs -----------memory---------- ---cpu---
 r  b   swpd   free   buff  cache  us sy id wa st
 2  0      0 512344  81920 210488  31  4 58  1  6

Колонка st справа. Шесть процентов несколько строк подряд это не шум. Разбивку по ядрам дает mpstat -P ALL 1 10, длинный срез пишут в файл через sar -u 1 3600 и сравнивают часы между собой.

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

Для транскодирования и компиляции steal переводится во время выполнения почти линейно. Для API и запросов к базе иначе: медиана держится, а p99 растет, потому что в моменты steal запросы копятся в очереди. Отдельная история это всплески до 20 процентов на пару секунд при спокойном фоне. Такой скачок опаснее ровного высокого steal, он тянет каскад таймаутов.

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

iostat -xz 1 10

В выводе важны два числа: await это время запроса вместе с ожиданием в очереди, avgqu-sz это глубина очереди. Растет второе, следом первое. Профиль OLTP проверяют так:

fio --name=rand4k --rw=randrw --rwmixread=70 --bs=4k --direct=1 \
    --numjobs=4 --iodepth=32 --size=4G --runtime=60 \
    --time_based --ioengine=libaio --group_reporting

Флаг direct обязателен, без него тест уедет в страничный кеш и покажет память вместо диска. В отчете смотрите iops и clat p99, именно второе объясняет хвосты запросов. Ориентир для средней базы это 5000 IOPS на чтении 4К при await ниже 2 мс, для нагруженной 20000 при await ниже миллисекунды.

Очередь выше восьми под OLTP это первый признак насыщения. Загрузка под 100 процентов для SSD не приговор, тревожно когда вместе с ней растет await. У дисков с лимитом IOPS порог срабатывает раньше насыщения железа, и покажет это именно await.

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

iperf3 -c 10.0.0.5 -t 60 -P 4
mtr --report --report-cycles 100 10.0.0.5

Четыре потока нужны потому, что один упирается в размер окна и RTT, а не в канал. Минута нужна, чтобы поймать burst лимит: полная полоса первые пятнадцать секунд и просадка дальше это он. Потери на одном промежуточном хопе при чистом трафике дальше это деприоритизация ICMP роутером. Потери подряд на нескольких хопах уже другое.

Проверьте MTU. Overlay сети добавляют заголовок к каждому пакету, 1500 превращаются в 1450, а пакеты с флагом DF молча теряются.

ping -M do -s 1472 10.0.0.5

Порядок проверки. Срез в покое сразу после деплоя, он же точка отсчета. Затем steal под боевой нагрузкой. Дальше fio с профилем приложения и iostat в соседнем терминале. Потом сеть. И наблюдение сутки или трое, иначе суточный паттерн конкуренции пройдет мимо.

Одинаковые характеристики не означают одинаковую производительность. Steal, await и реальная полоса измеряются за несколько часов.

Теги:
+1
Комментарии0
Статья

О чём писать в книге о браузере, если ChatGPT уже знает все Web API?

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

Здравствуйте, уважаемые читатели.

Рады предложить вам одну из самых долгожданных новинок на тему современной веб-разработки - книгу уважаемого Александра Гусева @flancer "Браузер как операционная система для разработки современных приложений". Ниже предлагаем обзорный материал, в котором автор рассказывает о концепции книги, роли больших языковых моделей в современной веб-разработке, об истинных возможностях браузера как рабочего инструмента и о системном понимании Интернета.

Читать далее
Статья

(Не) безопасный дайджест: школьники-хакеры, продажные переговорщики и один удачный звонок

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

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

Читать далее
Статья

Убрали Story points и бизнес ослеп. Прозрачность доставки без театра оценок

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

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

Если убрать эмоции, это самый частый вопрос, который я слышу после «какой фреймворк выбрать»: чем доказывать, что разработка работает, когда привычную витрину (оценки, графики сгорания, демо) разобрали? Я тогда пообещал в комментариях, что следующая статья будет об этом. Выполняю.

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

Прошлая статья была про структуру (как собрать несколько команд вокруг одного продукта), чтобы они не мешали друг другу. Эта — про видимость: что показывать бизнесу вместо театра оценок, чтобы вашему слову верили. Потому что оно сбывается. Всё из практики: департаменты до восьми команд, квартальные обещания, свои шишки. Цифры в примерах иллюстративные: честность мне дороже красивого графика.

Читать далее
Новость

В Escape from Tarkov стартовал первый сезон Kord Breach

Время на прочтение1 мин
Охват и читатели792

Battlestate Games 3 августа 2026 года выпустила патч 1.1.0.0 для Escape from Tarkov и запустила первый PvP-сезон — Kord Breach. Для участия создаётся отдельный сезонный персонаж, прогресс которого не влияет на обычные профили в PvP- и PvE-режимах.

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

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

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

Напомним, что Escape from Tarkov прошла довольно долгий путь развития: с 2017 года игра находилась на стадии бета-тестирования, полноценный релиз состоялся в ноябре 2025 года, а к традиционной для MMO-шутеров системе сезонов разработчики пришли только сейчас.

Читать далее
Статья

Введение в виртуальные сетевые интерфейсы Linux

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

Linux предоставляет широкие возможности виртуализации сети — на них строится работа виртуальных машин (ВМ), контейнеров и облачных сред. В этом руководстве разберем распространенные типы виртуальных сетевых интерфейсов: чем они отличаются и как их создать. Сосредоточимся на практике, без глубокого разбора кода. Статья рассчитана на читателей с базовыми знаниями сетей. Отдельно разберем интерфейсы, которые часто путают между собой.

Читать далее
Статья

Частые ошибки в вёрстке, которые встречаются даже на крупных проектах

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

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

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

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

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

Давайте посмотрим, что я вам подготовил.

Читать далее
Статья

Книга: «Метрики программной архитектуры.Кейсы, повышающие качество ПО»

Время на прочтение2 мин
Охват и читатели913

Привет, Хаброжители! Сегодня мы хотим рассказать вам побольше о нашем новинке: «Метрики программной архитектуры. Кейсы, повышающие качество ПО».

Это не монография, а сборник из десяти самостоятельных глав от десяти архитекторов (Форд, Фарли, Лилиенталь, Вудс, Роза и другие), объединённых темой измерения качества архитектуры. Единой теории в книге нет, но есть рабочий код, формулы и параметры оценки, которые можно перенести в проект сразу — от DORA-метрик и фитнес-функций до GQM-подхода.

Читать далее
Новость

После увольнения некоторые бывшие сотрудники Apple годами сохраняли доступ к секретным документам компании через iCloud

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

Синхронизация рабочих и личных аккаунтов в iCloud позволила некоторым бывшим сотрудникам Apple годами сохранять доступ к конфиденциальным документам компании. Об этом сообщило издание Information со ссылкой на разговор с шестью экс‑работниками американской корпорации, которые сами не подозревали, что имели доступ к секретным документам.

Читать далее
Статья

Архитектура под замену: чему нас научил переход с OIDC на Kerberos

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

Нужно было заменить OIDC на Kerberos при внедрении платформы в облако заказчика. Простая замена не сработала: пользовательский контекст и межсервисные вызовы оказались плотно завязаны на OIDC.

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

Что пошло не так
Новость

«Яндекс» создал компанию для развития медицинского ИИ‑ассистента

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

«Яндекс» зарегистрировал отдельное юридическое лицо для развития технологий искусственного интеллекта в медицине. ООО «Яндекс мед» создали 31 июля 2026 года, обнаружили «Ведомости» в ЕГРЮЛе. Представитель компании подтвердил изданию регистрацию нового юридического лица, однако не раскрыл взаиморасчёты с партнёрами и планы по дальнейшему развитию сервиса.

Читать далее
Статья

Фасетный поиск с активными фильтрами

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

Фасеты в интернет-магазине кажутся простыми до первого выбранного фильтра.

В каталоге это часть навигации. Выбранный цвет не должен исчезать из списка. Соседние цвета лучше оставить доступными: пользователь может переключиться на них или расширить выбор. А варианты без товаров полезнее сразу показать как недоступные. Внутри одного фасета обычно работает OR: красный или синий. Между разными фасетами - AND: бренд, цвет и размер одновременно.

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

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

В Manticore Search 25.12.0 появился facet_filter_mode, который переносит это поведение в API фасетов. Теперь в запросе можно описать, как ведёт себя панель фильтров магазина, а приложению не нужно вручную собирать почти одинаковые запросы для каждого фасета.

Читать далее

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

Статья

В фокусе RVD: дайджест трендовых уязвимостей июля

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

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

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

В новом выпуске разберём уязвимости в Linux KVM, Adobe ColdFusion и Microsoft SharePoint Server. Некоторые из них уже используются в реальных атаках, для других опубликованы демонстрационные эксплойты, а последствия эксплуатации варьируются от аварийной остановки физического сервера до удалённого выполнения кода, кражи криптографических ключей и закрепления во внутренней инфраструктуре.

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

Читать далее
Статья

Почему нельзя измерять разработчика строками кода — и что мы делаем вместо этого

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

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

Читать далее
Пост
Сложность пути может заключаться как в создании нового, так и в сохранении и развитии того, что уже есть
Сложность пути может заключаться как в создании нового, так и в сохранении и развитии того, что уже есть

Варианты старта: тимлид в новой или существующей команде

Продолжаем серию постов о переходе из роли старшего инженера в трек начинающего технического менеджера — тимлида.

Как это случается

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

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

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

Стартовые позиции

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

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

Тимлид в новой команде

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

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

Тимлид в существующей команде

Второй сценарий — приход на замену прежнему руководителю (например, после его повышения или ухода). Чистого листа здесь нет: новому тимлиду достаются незакрытые «хвосты», настрой команды, уровень развития людей, процессы и метрики. Всё это нужно быстро оценить.

Ключевой показатель — зрелость команды или Team Maturity Model (TMM): развитая, базового уровня или незрелая. С развитой можно работать на длинную дистанцию, с незрелой — сначала закрывать базовые пробелы.

Акцент смещается на быстрые победы, укрепляющие доверие, и «north stars» для долгосрочного развития.

Сложности вступления в роль

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

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

Онбординг тимлида длится около полугода. За это время необходимо: 

  • показать профессиональный авторитет; 

  • сделать прозрачными границы роли; 

  • быстро погрузиться в боли команды и продукта; 

  • обеспечить быстрые победы и план работы со сложными проблемами; 

  • системно развивать все три направления: метрики, процессы и людей.

Выводы

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

Что дальше?

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

Теги:
+1
Комментарии0
Статья

Две дыры в приёме платежей, которые ИИ-ассистент оставляет по умолчанию

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

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

Дальше кто-то открывает devtools и платит доллар вместо ста.

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

Читать далее
Статья

Как я собрал навигацию в Obsidian без единого плагина

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

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

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

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

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

Читать далее
Статья

Доверие корневому сертификату с ограниченным списком хостов в Chrome

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

В Сhrome (и практически всех chrome-подобных браузерах) достаточно давно есть политика CACertificatesWithConstraints, которая, в том числе, позволяет доверять конкретному корневому сертификату только для фиксированного списка доменов. Сам сертификат при этом не требуется размещать в системном корневом хранилище. Это актуально для текущих проблем с отзывами сертификатов и переходом банков на корневой Минцифры https://habr.com/en/news/1066284/

Читать далее
Статья

А что по скорости печати?

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

Клавиатуре около 150 лет. Это один из самых старых интерфейсов, которым люди пользуются каждый день. При этом большинство людей не задумываются о том, насколько хорошо владеют этим интерфейсом. Все обсуждают новые IDE, фреймворки, AI-инструменты — но базовый навык взаимодействия с компьютером остаётся на уровне «как-то печатаю и ладно».

Читать далее
1
23 ...