Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 59 min ago

Я был уверен, что Service Desk сломан. Потом поговорил с одним человеком

Wed, 07/15/2026 - 00:16

Первая статья из цикла «Аналитик в чужом процессе»

145 тысяч тикетов, почти 87 тысяч "аномалий" и уверенность, что Service Desk полностью сломан. Но один разговор с опытным специалистом первой линии заставил меня выбросить половину критериев, переписать анализатор и полностью изменить выводы. Эта статья — о том, почему большие данные сами по себе ничего не объясняют, если сначала не понять сам процесс.

Читать далее

Contract testing на Pact в 2026: как перестать чинить интеграции по факту падения

Wed, 07/15/2026 - 00:15

В статье разберём, как Pact закрывает этот разрыв между модульными и E2E‑тестами, как устроены consumer‑driven контракты, Pact Broker и can-i-deploy, и что нужно учесть, чтобы contract testing действительно останавливал несовместимые релизы, а не создавал новую точку боли.

Читать далее

[Перевод] Как использовать Kafka на собеседовании по System Design

Wed, 07/15/2026 - 00:06

Kafka часто появляется на System Design интервью, когда нужно асинхронно обрабатывать события и масштабировать систему.

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

Читать далее

Аутентификация через биометрию в Kotlin Multiplatform или Koncierge

Tue, 07/14/2026 - 23:26

Наконец-то неплохо продвинувшись в написании своего мультиплатформенного приложения Modern Money мне понадобилась аутентификация для Kotlin Multiplatform.

Хотелось иметь один API для PIN-кода и биометрии, а под капотом использовать Android Biometric Prompt, Windows Hello, Touch ID.

Так появился Koncierge — набор KMP-модулей biometric, auth и auth-compose

Казалось бы, задача довольно стандартная: объявить expect-класс и написать несколько actual-реализаций. На Android это примерно так и получилось. А вот Windows Hello, JVM-модуль и публикация всех артефактов заставили немного разобраться в том,

как Kotlin работает с нативным кодом

Как GPT-5.6 Sol обошла математиков в задаче о длине пути градиентного спуска

Tue, 07/14/2026 - 23:07

12 июля флагманская GPT-5.6 Sol Pro после восьми часов размышлений побила лучший человеческий результат в задаче о длине пути градиентного спуска — и оформила его полноценной статьей на 14 страниц с доказательствами, таблицей констант и скриптом для их проверки. Прежний рекорд — оценка 2.29^n — принадлежал людям, но о нем мало кто знал: он так и не был опубликован. Историю двухлетнего противостояния людей и моделей исследователь OpenAI Себастьен Бубек рассказал в треде 10 июля, а уже через два дня объявил о падении рекорда.

Читать далее

Как я добавил LLM в чат друзей, и приказал ей отыгрывать терминатора (и открыл портал в мультивселенную безумия)

Tue, 07/14/2026 - 23:06

Забавная история про то, как я решил разбавить актив в своем чате для друзей, добавив самого настоящего Т-800, который мог бы свободно общаться с участниками, не потратив копейки денег на API - чисто бесплатные модели с OpenRouter. Впрочем, впоследствий была попробована и локальная модель.

Подтвердить базу

Персонализация без BigData: как мы ранжируем новости в Telegram с помощью pgvector и пяти сигналов

Tue, 07/14/2026 - 22:38

У меня 23 Telegram-канала. Не потому что я такой организованный — просто постепенно добавлял, пока не понял, что читаю примерно 3% из них, а остальное листаю вниз в поисках чего-то интересного.

Проблема известная. Телеграм устроен как хронологическая лента — свежее сверху, и неважно, интересно это тебе или нет. Алгоритмов нет. Персонализации нет. Только время публикации.

Я решил это починить. Так появился [CleanNews](https://t.me/clean_news_bot) — бот, который парсит твои Telegram-каналы и выдаёт персонализированный дайджест. В этой статье расскажу, как устроен рекомендательный движок: 5 сигналов, pgvector, контрастный вектор и жизнь без обучающего датасета в 10 миллионов записей.

Читать далее

Может ли hh.индекс предсказать безработицу? Я проверил на данных за семь лет

Tue, 07/14/2026 - 22:00

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

Но если открыть данные hh.ru, то там всё достаточно бурно. В июне 2024 года hh.индекс составлял 3,1 резюме на одну вакансию. Через год он вырос до 5,5, а в июне 2026 года достиг 8,3. В марте показатель вообще поднимался до 11,4 - это вообще показатель высокой конкуренции соискателей. 

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

Я решил покопаться в этом вопросе и посмотреть, а может ли hh.индекс действительно показывать охлаждение рынка раньше Росстата?

Читать далее

Промпт-инжиниринг: как написать запрос для генерации изображения

Tue, 07/14/2026 - 21:17

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

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

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

Приятного прочтения)

Read more

Две недели в Школе 21: кузница IT-рабов или выживальщик для программистов?

Tue, 07/14/2026 - 21:13

Обучение в школе 21 в 2026 году — чему учат и можно ли чему-то научиться? Субъективная оценка прохождения бассейна и политики школы.

Читать далее

Манифест программиста, использующего AI-кодинг-агента

Tue, 07/14/2026 - 21:12

Последнее время я все чаще вижу одну и ту же картину.

Появился тикет. Программист копирует ссылку, передает ее AI-кодинг-агенту и через какое-то время получает готовый Pull Request.

Вроде бы красота.

Агент прочитал задачу, нашел нужный код, что-то поменял, запустил тесты и бодро написал, что все готово.

Только потом начинается самое интересное.

В Pull Request приезжает куча лишнего кода. Тесты зеленые, но сама функция не работает. Тикет уходит тестировщику и возвращается обратно. После исправления снова возвращается. А иногда оказывается, что агент вообще понял задачу не так, но программист этого даже не заметил, потому что сам тикет толком не прочитал.

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

Но инструмент, который быстро пишет код, не отменяет необходимость думать.

Читать далее

[Перевод] Rust 1.97.0: манглинг символов, вывод линкера и поддержка запрета предупреждений в Cargo

Tue, 07/14/2026 - 21:04

Команда Rust рада объявить о новом выпуске Rust 1.97.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.97.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску 1.97.0 на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Что вошло в стабильный 1.97.0

От идеи до рабочего приложения: создание ProcessTimeWatcher на C# и WPF

Tue, 07/14/2026 - 21:03

Сколько времени на самом деле мы проводим в разных приложениях? Кажется, что открыл IDE на пару минут, проверил браузер — и вернулся к работе. Но спустя несколько часов становится сложно понять, куда ушло это время.

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

Так появился ProcessTimeWatcher — WPF-приложение на C#, которое отслеживает активное окно пользователя и собирает статистику использования программ.

В статье разберём, как устроен этот инструмент, какие сложности возникли при работе с Windows API и какие решения были приняты во время разработки.

Читать далее

Как из организатора DevOps-сообщества я стал директором ассоциации, которая развивает Cloud-native-технологии

Tue, 07/14/2026 - 21:01

Привет! Меня зовут Александр Титов. Я директор Ассоциации профессионалов индустрии облачно-ориентированных технологий «АОТ», организатор сообщества DevOps Moscow и генеральный директор «Фланта». В этом посте я расскажу, как получилось так, что я не только занимаюсь предпринимательством, но и руковожу некоммерческой ассоциацией, которая развивает облачно-ориентированные технологии в России, и почему, на мой взгляд, сегодня отрасли нужна именно такая форма работы.

Читать далее

ИИ-стартап: как мы пережили блокировку API, 3 переписывания, DDoS атаку и сделали 1M+ авто откликов

Tue, 07/14/2026 - 21:00

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

Так родилась идея Софи - ассистента, который берёт на себя всю рутину: поиск вакансий, написание сопроводительных писем переписку с рекрутером. Человеку остаётся только то, что реально влияет на результат.

С весны 2025 года мы трижды переписали продукт, пережили DDoS, потерю API HH.RU и смену команды. Но мы все еще здесь!

Как так вышло, рассказываю в этой статье.

Читать далее

АЭРОДИСК сократил руководителя техподдержки. А он отсудил больше 7 миллионов и вернулся на работу

Tue, 07/14/2026 - 20:22

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

Речь идет о деле с участием руководителя техподдержки ООО «НИЦ «АЭРОДИСК», того самого производителя систем хранения данных, которого многие знают по поставкам в госсекторе. Спор тянулся почти три года, дважды доходил до кассации и в ноябре 2025 года закончился победой работника.

В итоге работника вернули на работу, а с компании взыскали, 7 113 766 рублей за вынужденный прогул и не только.

Интересно, что работодателя в итоге подвели не хитрые доказательства работника, а его собственные документы. Мы про такое уже писали. В деле с GitLab , когда заказчик сам зарегистрировал спорную программу в Роспатенте, а потом уверял суд, что работа не сделана. Здесь получилось примерно похоже. Компания принесла в суд документы, которые должны были подтвердить ее позицию, а они в итоге сыграли против неё.

Дальше по порядку.

Как всё начиналось

В августе 2020 года наш истец устроился в АЭРОДИСК руководителем направления технической поддержки. По документам все было стандартно: договор с окладом 172 500 рублей, приказ, должностная инструкция. Два с лишним года он спокойно работал и руководил направлением. За это время никто в компании ни разу не усомнился в его квалификации, что в дальнейшем станет важным обстоятельством для дела.

Читать далее

[Перевод] Тестовые фикстуры: управление зависимостями в Gradle

Tue, 07/14/2026 - 20:21

В многомодульных Gradle-проектах рано или поздно появляются вспомогательные классы для тестов: фабрики тестовых данных, билдеры, хелперы. Такие классы не относятся ни к продакшн-коду, ни к обычным тестам. Логично было бы переиспользовать их сразу в нескольких модулях, но классическая модель Gradle этого не позволяет: тестовые артефакты одного проекта нельзя просто так подключить как зависимость в другом. 

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

Плагин java-test-fixtures заводит в модуле отдельный SourceSet, а другие модули подключают эти классы через лаконичный DSL. При публикации Gradle даже собирает отдельный *-test-fixtures.jar для независимых проектов. В статье на примерах показано, как расшарить тестовые хелперы между модулями, избавиться от дублирования и при этом сохранить чистые архитектурные границы. Если вы устали таскать тестовый код из модуля в модуль, то Вам точно пригодится.

Читать далее

Как я уведомления мониторинга в мессенджер национальный переносил

Tue, 07/14/2026 - 20:06

Хабр, привет в очередной раз! Ситуация с работой интернета в стране начинает напоминать какую-то лотерею, в которой невозможно выиграть. Мобильный интернет по "белым спискам", стационарный с блокировкой всех основных мессенджеров "ради нашей с вами безопасности". И даже совсем стандартная задача - оперативный мониторинг серверов, находящихся в RU сегменте Интернета, превращается в лотерею. Придет алерт о недоступности какого либо сервиса или не придет? Главный вопрос многих админов сегодня. Есть разные решения данной проблемы, под катом - как эту проблему решал я и почему выбрал именно такой путь.

Читать далее

Мой карьерный лифт ехал 15 лет. И сломался трижды

Tue, 07/14/2026 - 20:05

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

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

Читать далее

Вы не знаете CSS. Мои вопросы о CSS с ответами. Версия 2026 года

Tue, 07/14/2026 - 20:02

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

В прошлом месяце я опубликовал статью с вопросами о HTML. Неожиданно для меня, она понравилась многим и стала одной из самых популярных за последнее время. Раз так получилось, то почему бы не сделать то же самое про CSS? Вот я и пришёл со своими вопросами и, конечно, ответами.

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

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

Читать далее

Who's online

There are currently 1 user and 10 guests online.