Этим летом я проходила собеседование на продакта в компанию, у которой есть свой мессенджер. Среди этапов был System Design, и к нему надо было подготовиться.
Просто изучать архитектуру мессенджера мне было скучно. Ну и я решила заодно забацать себе курс. Чтобы были объяснения, схема, вопросы, можно было потыкать и проверить, что запомнила. В общем, подготовка к собесу немного разрослась. Ахахах.
Получился базовый курс с интерактивным тренажёром по архитектуре мессенджера. Может, кому-то, кто тоже готовится к собеседованиям, пригодится, конечно же бесплатно.
Читать далееАгент завершил запуск, вернул корректный формат и прошёл автоматическую проверку. Почему этого всё ещё недостаточно для приёмки — и какие отдельные гейты нужны между completion и решением человека.
Читать далееПривет, Хабр! Моя кастомная самоделка понравилась одному из коллег по электрогитарному увлечению. И он не только попросил изготовить для него экземпляр ультралёгкой «стрелы» с забавным оформлением, но и предложил заманчивые улучшения, которые мы скоро увидим и услышим.
Прежде чем приступать к постройке нового инструмента, мне захотелось опробовать часть новых идей на своём. Тем более, что заказчик пока что не определился с некоторыми нюансами, и результаты сегодняшних доработок призваны ему в этом помочь.
Читать далееНо нет, в этот раз не про то, как их обойти.
Посмотрим, что из себя представляют блокировки: как на них влияет и участвует в них оператор связи.
Что же там внутри?Задача звучала просто: посчитать, у скольких товаров в базе есть в составе хоть одна Е-добавка. Я думал, это работа на полчаса. Работа заняла вечер, и большая часть вечера ушла на одну букву.
Читать далееДелаем монохромный видеоадаптер для RISC‑V процессора YRV, используем атомики для установки пикселя. Исправляем детскую травму, добавляем цвет, превращаем адаптер в фреймбуфер а‑ля ZX‑Spectrum, но разрешением 640×480 и с 12 битным цветом.
Читать далее«Катти Сарк» (Cutty Sark) — один из тех редких кораблей, которых можно назвать блистательными неудачниками. Построенный в 1869 году ради одной очень конкретной задачи — как можно быстрее доставлять свежий чай из Китая в Лондон, — он появился почти ровно в тот самый момент, когда технический прогресс сделал эту задачу для парусников экономически нецелесообразной. Но вместо короткой и неудачной карьеры корабль «Катти Сарк» прожил несколько совершенно разных жизней: был чайным клипером, рекордсменом австралийской шерстяной линии, португальским грузовым судном, учебным кораблём и, наконец, музейным памятником эпохе парусного торгового флота.
Сегодня это единственный в мире целиком сохранившийся трехмачтовый чайный клипер. Значительная часть его конструкции (несмотря на сложности консервации и поддержания в порядке судна такого масштаба) сохранилась до наших дней в неизменном виде с 1869 года.
Читать далееКомпания может расти по выручке, запускать новые продукты, нанимать людей и одновременно всё хуже понимать, куда именно движется бизнес. У собственника есть несколько идей, у продаж — свой взгляд на рынок, у маркетинга — свои точки роста, у операционной команды — ограничения по ресурсам. В результате инициатив становится больше, а ясности — меньше.
Проблема обычно не в отсутствии идей. Проблема в том, что компании нужно сделать выбор: какие рынки, продукты и клиентские сегменты действительно развивать, куда направлять инвестиции, от каких проектов отказаться и какие изменения должны дать результат в ближайшие 1–3 года.
Для этого и нужна разработка бизнес-стратегии.
Читать далееПереписать проект на Rust — звучит как короткий путь к скорости и безопасной работе с памятью. Но реальные миграции дают куда менее однозначную картину: одни ускоряют код в разы, другие годами буксуют и приносят новые баги. На примерах реальных проектов разбираемся, где RIIR оправдывает вложения, а где превращается в дорогой инженерный эксперимент.
Разобраться в RIIRОдну минуту, господа, позвольте мне сменить фильтры и проверить, не отключат ли мне энергию, пока я пишу эти строки. За окном идиллическая картинка серого до горизонта неба, через которое не пробивается ни луча, а улица заполнена скопившейся черной грязью, которую никто не убирал весь сезон. Хотелось бы добавить что‑нибудь про импланты, но я едва ли не единственный из друзей, у которого их пока нет.
Как показывает практика, этого достаточно, чтобы многие из нас окрестили нашу ветку реальности киберпанком во плоти и удовлетворенно пошли панковать, сидя в телефоне или на диване. Правда, на практике это совсем не так. С вами @MorGott, и я изучил почти все, что есть в интернете, чтобы разобраться, что такое киберпанк на самом деле, почему аниме не создало и уж точно не убило его и что с ним стало в итоге. Заварите себе чаю, это будет долго, возможно даже немного сложно, но безусловно — интересно.
Читать целикомПользователь нажал кнопку, сеть пропала, а браузер не знает, дошёл ли запрос до сервера. Повторите запрос — можно получить дубль. Не повторяйте — потеряете действие.
Показываю схему, которая решает обе проблемы: API без toggle, ключ идемпотентности в PostgreSQL, очередь в IndexedDB, Service Worker и проверка офлайна в Playwright. Это не полный offline-first — только защита действий в момент обрыва связи.
Разобраться с повторамиШестая часть про локальный ассистент для созвонов. Встреча 15 сентября: канал собеседников умирал четыре раза, в стенограмме 33 минуты дыр из 65, а протокол вышел на шесть разделов и ни слова об этом. Почему тишина пропавшего канала для модели неотличима от согласия, что такое факт о записи против речи, куда девалась строка о неполной записи на пути к модели, как паспорт производной узнаёт об оговорке, и почему два внешних ревьюера нашли один и тот же дефект, который две тысячи тестов не видели.
Читать далееНа одном из проектов нам потребовалось развернуть систему централизованной аутентификации и авторизации для 25 000 – 30 000 активных пользователей, территориально распределенных по всей стране. Такая специфика диктует жесткие требования к масштабируемости и надежности системы. Наш выбор пал на Keycloak как на популярное open-source решение.
Но одиночный сервер Keycloak физически не способен обеспечить необходимую пропускную способность и гарантировать SLA при таком объеме трафика. Кластеризация стала единственным жизнеспособным вариантом, так как она позволяет горизонтально масштабировать вычислительную мощность и обеспечивает отказоустойчивость.
В этой статье рассказываем про наш опыт развертывания кластера Keycloak на трех изолированных виртуальных машинах с Embedded Infinispan и JGroups. Расскажем, почему выбрали именно такую архитектуру, как настраивали, что сломалось при тестировании отказоустойчивости и как мы это чинили (включая баг, который нашли и исправили вместе с командой Keycloak).
Читать далееЯ отрендерил трёхминутный ролик из одной статичной картинки и получил файл на 472 МБ. Виновным оказалось плёночное зерно: шум амплитудой меньше 2 % шкалы, который почти не видно, умножает размер видео на тринадцать, а попиксельный — на тридцать три.
Разбираюсь, почему межкадровое сжатие ломается именно о шум, чиню это тремя способами (зерно блоками, другой кодек, синтез зерна в AV1) и меряю результат по VMAF: при одинаковом качестве x264 просит 15.2 Мбит/с, а AV1 — 4.4. Заодно ловлю собственный визуализатор спектра на вранье — на цифровой тишине он бодро плясал на 0.885 от полной высоты — и разбираю три грабли, включая пустую строку в argparse, которая вписала слово «использование» внутрь prog.
Читать далееВ одном из проектов мы развернули рабочую версию управленческой аналитики на сервере. Данные приходили из нескольких внутренних систем, часть доступа была организована через API смежной команды, а сверху уже строились витрины и дашборды. Первую версию показали руководству, получили согласование и перешли к дальнейшему развитию.
На этом месте легко поставить мысленную галочку напротив пункта «BI внедрён». Сервер работает, отчёт открывается, цифры можно фильтровать, пользователи получили ссылку. Формально результат есть.
Но через некоторое время платформа обновилась, и часть уже созданных дашбордов потребовала восстановления и переработки. Параллельно продолжали меняться источники, уточнялись показатели, появлялись новые запросы. Отчёт, который вчера был правильным, сегодня мог не обновиться, потерять связь с источником или просто перестать соответствовать процессу.
Я не считаю эту ситуацию особенностью конкретной BI-системы. В нашем случае использовалась Visiology, но похожий сценарий возможен с Power BI, DataLens, Metabase и практически любым другим продуктом. Причина обычно находится не в одной кнопке и даже не в самой платформе. Проблема в том, что дашборд воспринимают как итог внедрения, хотя на самом деле это только пользовательский интерфейс большого контура.
После публикации начинается не завершение проекта, а эксплуатация. И именно в этот момент становится видно, построили мы BI как организационный продукт или просто положили на сервер несколько красивых отчётов.
Читать далее16 сентября 2026 года проект RustFS объявил о выпуске версии 1.0.0 GA — стабильного релиза распределённого объектного хранилища с совместимостью с API Amazon S3. По словам разработчиков, выпуск 1.0.0 знаменует переход проекта от активной разработки к использованию в производственных средах.
RustFS — распределённая система объектного хранения, полностью написанная на языке Rust. Разработка проекта началась в феврале 2024 года, а в июле 2025 года его исходный код был опубликован под лицензией Apache 2.0. RustFS ориентирован на хранение больших объёмов данных и использование в облачных, корпоративных и инфраструктурах искусственного интеллекта.
( Читать дальше )
Считаю что по настоящему первое впечатление команда и кандидат формируют друг о друге не только на собеседовании, а в течение первых недель (иногда месяцев, или даже лет) после того как новый сотрудник вышел на работу. Верю, что взаимовыгодно для обеих сторон интегрировать нового коллегу в процессы и в реальную работу как можно быстрее. Однако вижу, что реализовано это плохо в большом количестве IT компаний. Несмотря на изрядное количество материалов про важность онбординга… И потому предлагаю обсудить как это можно улучшить еще раз под катом. Технический онбординг - это не "сам разберешься"
ПогружаемсяВ работе инженера данных хватает повторяющихся задач: забрать данные из API, проверить структуру, преобразовать поля, записать результат в хранилище. Вокруг этого — настройки, тесты, сообщения об ошибках и документация.
Такую работу удобно поручать Агенту.
Опять агентыВ предыдущем материале про Орбис я обещал разобрать игровые механики, которые делают эту игру неповторимой в своем разнообразии. Уникальными расами, юнитами и скиллами тоже можно удивить — с точки зрения атмосферы и креативности тут все в порядке. Но принципиально игровая техника «тактического звена» похожа на другие игры. Тут я хотел сделать акцент на глобальные процессы, которые влияют на сюжет и делают его динамичным, а порой и непредсказуемым. Я не встречал стратегий AAA-класса с похожим многовариантным сюжетом. Обычно в играх сюжетная линия идет по плану, максимум слегка разветвляется, а динамика есть следствие относительно линейной ветки развития технологий.
В большинстве 4X-стратегий игровой мир представляет собой статичную доску. Игрок может вырубить лес под ферму или прорыть канал, но в целом мир остается безучастным декоративным фоном для сражения различных фракций.
В модификации Orbis (на базе Civilization IV: Beyond the Sword) разработчик Ahwaric и команда Fall from Heaven II превратили саму карту и физику мира в нестабильную, разрушаемую систему. Здесь планета Эребус (Erebus) может заболеть, покрыться адом или вымерзнуть до экватора — и за этой экологической катастрофой стоит прозрачная математическая модель.
Разбираем, как три системных механики Orbis — Счетчик Армагеддона, климатическое оружие и магическая логистика — создают уникальную военную драму.
Читать далееНесмотря на огромную численность населения Китая и Индии, наибольшая часть населения Земли ныне пользуется системами письма на основе латинского алфавита. Это и большая часть Европы, и обе Америки, за исключением нескольких экзотичных систем письма коренных народов, и Транссахарская Африка, и заметная часть Юго-Восточной Азии — меньше половины человечества, но не намного. Да и вторым языком Индии является английский — если приплюсовать его, то ежедневными пользователями алфавитов на латинской основе окажутся уже точно больше половины землян. История латинского алфавита начиналась более двух с половиной тысяч лет назад очень скромно, и первые его формы не слишком напоминали то, что мы знаем по чеканным классическим образцам. Однако письмо поначалу незаметного города на холмах по мере разрастания республики и империи распространилось с легионами до самых отдалённых рубежей античной Ойкумены, всё больше принимая знакомый нам облик и в процессе то теряя, то приобретая знаки. Последние из них добавились к стандартному ныне латинскому алфавиту очень поздно, когда о Римской империи уже лишь думали как о величественной древности. Попробуем разобраться, как латинское письмо появилось на свет и понемногу приняло современные формы.
Читать далее