Обновить

Моя лента

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

От ядра Linux до дообучения языковых моделей: открытые вебинары недели

Как устроить обмен сообщениями между сервисами, найти причины сбоев в распределённой системе, превратить бизнес‑требования в понятные задачи или подготовить модель к работе в реальной среде?

С 3 по 6 августа эксперты OTUS проведут 24 бесплатных демо-урока по разработке, инфраструктуре, архитектуре, аналитике, машинному обучению и другим направлениям. Выбирайте интересующую область и присоединяйтесь.

Системное администрирование, сети и безопасность

  • 3 августа, 20:00. «Что такое модуль ядра. Как его написать, собрать, запустить». Записаться

  • 3 августа, 20:00. «MPLS для корпоративных сетей: мифы, реальность и практика». Записаться

  • 3 августа, 20:00. «Какие результаты должен давать DevSecOps‑проект бизнесу и команде». Записаться

  • 4 августа, 20:00. «OpenTelemetry — наблюдаемость на блюдечке». Записаться

Разработка и программирование

  • 3 августа, 20:00. «Использование брокера сообщений Apache Kafka в распределённых очередях». Записаться

  • 3 августа, 20:00. «Оживляем код: первые шаги в ООП на Python». Записаться

  • 3 августа, 20:00. «Go: управляем памятью как профи. Массивы, слайсы и мапы». Записаться

  • 4 августа, 20:00. «Многозадачность в Python: асинхронность, процессы, потоки». Записаться

  • 4 августа, 20:00. «Секреты межсервисных запросов: как сделать приложение быстрым и надёжным». Записаться

  • 5 августа, 20:00. «Битва нативных платформ: Spring Boot 4, Quarkus, Micronaut, KMP, Go и Rust». Записаться

  • 5 августа, 20:00. «Как AI меняет работу C#‑разработчика». Записаться

Архитектура, системный и бизнес‑анализ

  • 4 августа, 19:00. «Будущее корпоративного архитектора: навыки, тренды, технологии». Записаться

  • 4 августа, 20:00. «Как аналитику работать с рисками». Записаться

  • 5 августа, 20:00. «Влияние нефункциональных требований на архитектуру». Записаться

  • 5 августа, 20:00. «MVP глазами бизнес‑аналитика: от идеи до первых функций». Записаться

  • 6 августа, 20:00. «Пользовательские сценарии на реальном примере: от бизнес‑требования заказчика до формулирования задачи для разработчика». Записаться

Машинное обучение и работа с данными

  • 4 августа, 20:00. «PostgreSQL как память ИИ‑агентов: MVCC, очереди и партиции под нагрузкой». Записаться

  • 5 августа, 20:00. «Сделайте модель своей: дообучение LLM методом QLoRA без кода». Записаться

  • 6 августа, 18:00. «Практика работы с Docker — ввод модели в эксплуатацию». Записаться

  • 6 августа, 20:00. «Базовая структура ML: задачи, pipeline, метрики и функции потерь». Записаться

Битрикс24

  • 3 августа, 20:00. «Кастомизация компонентов в Битрикс24». Записаться

  • 4 августа, 19:00. «Эффективная работа с диском Битрикс24». Записаться

Управление проектами

  • 5 августа, 20:00. «Оценка проекта: от интуитивных догадок к системному подходу». Записаться

Тестирование игр

  • 4 августа, 20:00. «Как стать тестировщиком игр: первый шаг в GameDev». Записаться

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

Теги:
+1
Комментарии0
Новость

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

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

Мы запускаем новый цикл вебинаров "Надёжность, качество, безопасность ПО: методология и инструменты" ⚡️

В предыдущем цикле вебинаров "Вокруг РБПО" мы рассмотрели 25 процессов из ГОСТ Р 56939—2024, направленных на создание безопасных программных решений. Теперь поговорим не только о безопасности, но и в целом о создании качественного и надёжного ПО.

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

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

Apache Iceberg: Индиана Джонс и Каталог судьбы

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

parquet - данные лежат в открытом формате - казалось бы, бери кто хочешь. Но есть неприметный артефакт, от которого зависит, увидите вы таблицы или мусор из файлов и кого вообще к ним подпустят. Это каталог. Разбираю просто, что такое Apache Iceberg, зачем ему каталог - и почему новость про Polaris важнее, чем кажется. В продолжение анонса новостей…

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

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

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

Правительство РФ утвердило перечень приложений, обязательных для предустановки в 2027 году на смартфоны, компьютеры и смарт‑ТВ. Документ опубликовали на официальном портале правовой информации. Среди прочих в списке числятся RuStore, «Госуслуги», «ВКонтакте», «Дзен», разные приложения «Яндекса» и мессенджер «Макс».

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

Customer Success в сервис деске: как обслуживать, удерживать и развивать клиентов в единой системе

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

Хотите ли вы, чтобы ваш кастомер был доволен своим саксесом? Мы — очень, поэтому собирались купить систему, чтобы отслеживать использование наших продуктов и услуг, улучшать опыт клиентов и предупреждать их отток. 

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

Рассказываем, что и как настроили и какие получили результаты — со скринами и цифрами.

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

Стоит ли внедрять базы знаний в банках. Считаем ROI

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

В банке всё, что не даёт измеримый эффект, рано или поздно называют «лишним ИТ‑решением» и выносят на оптимизацию. База знаний попадает в эту категорию особенно часто: сначала её делают «на энтузиазме», потом годами дорабатывают, а сменившийся операционный директор «внезапно» выясняет, что никто толком не знает, сколько она приносит денег и что будет, если её отключить.

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

От стажёра до Head of DS: что я узнал, изучив почти 700 карьер в Data Science

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

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

В анализ были взяты анкеты из 29 вопросов дата-сайентистов всех уровней, от стажёров до Head of DS. Я посмотрел, как связаны их опыт, грейд, доход и условия работы. В опросе я спрашивал об образовании и способе входа в профессию, навыках и типах данных, с которыми работают специалисты, времени на встречах, переработках, бэкграунде руководителя, удовлетворённости работой, готовности сменить компанию и ожидаемой прибавке к зарплате.

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

? выглядит как try/catch. Внутри — полная противоположность

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

Привет.

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

Давайте посмотрим, что компилятор на самом деле пишет вместо вашего вопросика, что такое residual в нынешнем дизайне, почему ошибке нужен отдельный тип, и как прикрутить ? к своему типу. И сразу скажу: пользоваться ? на Result и Option можно давно и на стабильном Rust, а вот реализовать поддержку ? для своего типа — это до сих пор nightly. Дальше будет видно почему.

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

Кайтен не для людей

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

Мы очень активно используем Кайтен — и почти не заходим в него руками. Туда ходят наши боты.

У нас на основной доске 19 этапов, в работе одновременно десятки текстов, и реальная жизнь команды идёт в чатах, а не в трекере. Вот как мы научились почти не заходить в трекер руками — и при этом ничего не терять.

Привет, я Катя Берестовая из агентства Loft. С 2008 года мы делаем контент-маркетинг для компаний. За каждым текстом — интервью с инженером, который «на встрече всё расскажет», фактчекинг, согласования с юристами клиента и редактура. Кайтен попросил рассказать, что мы про них думаем. История получилась нетривиальная: мы очень активно используем сервис управления процессами Кайтен — и почти не заходим в него руками. Туда ходят наши боты, а боты уже разговаривают с редакторами там, где им удобнее — в привычных чатах в Телеграме. Расскажу, как мы к этому пришли.

Читать далее
Пост

Один оператор сравнения чуть не удалил тысячу пользователей 

На днях наводил порядок в логике автопродления подписок Telegram-бота.
Казалось, задача на полчаса.

Если кратко: у пользователя заканчивается подписка, и бот проверяет дату планируемой оплаты.
Если срок подписки истёк и продления нет, то пользователь попадает в очередь на удаление. Всё просто.


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

Сначала я подумал, что платёж не успел записаться в базу. Проверил – платёж записался.

Потом начал искать проблему в часовом поясе. Тоже нет.

Дальше полез смотреть SQL-запросы, логи, время выполнения задач. Потратил на это больше часа и уже начал подозревать, что где-то появилась гонка между обработчиком платежей и задачей проверки подписок. Стал разбираться…

Причина оказалась намного проще: в фундаменте не стоял тот оператор сравнения.

Вместо subscription_end < now
я написал subscription_end <= now.


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

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

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

В тот момент у меня была тестовая база, поэтому последствия не были бы критичными.  Максимум, произошло бы несколько некорректных удалений.
Но я сразу представил, что было бы в продакшене. Если бы ошибка попала в релиз, задача удаления прошлась бы по всем пользователям, которые удовлетворяли этому условию.

И если совпали бы время запуска задачи и обновление подписок, ошибочно удаленных пользователей было бы несколько сотен или тысяч.



Что изменил:

1. Перенастроил удаление: теперь оно происходит не сразу.

Пользователь сначала получает статус "ожидает удаления", а сама операция выполняется отдельной задачей через некоторое время.

2. Настроил перепроверку актуального состояния подписки через x часов, чтобы отсечь ложные срабатывания.

Если пользователь оплатил доступ или подписка продлилась, удаление отменяется.

3. Добавил тест на этот сценарий, чтобы избежать повторения <=ошибки.

Раньше я проверял только обычные случаи.
Теперь отдельно проверяются пограничные значения времени.



Мораль:
даже очевидные условия нужно проверять на границах. 

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

Всегда нужно помнить о границе условий. Именно там чаще всего и живут самые неприятные ошибки.

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

Теги:
0
Комментарии0
Пост

Открытый проект .MD this page позволяет преобразовать веб-страницу в чистый Markdown, готовый для ChatGPT, Claude, Gemini и других нейросетей. Решение очищает код сайта от рекламы, баннеров и другого мусора для отправки на обработку в ИИ. Есть предпросмотр, экспорт в .md и опция для мгновенного копирования сайта.

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

Система триггеров на событиях Change Stream в MongoDB

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

Почти любая распределенная платформа рано или поздно сталкивается с необходимостью синхронизировать данные между своими системами. И чем выше требования к надежности и скорости доставки изменений, тем меньше остается простых решений. Бизнес-пользователям при работе с интерфейсом одной из платформ нужно знать о сущностях, заведённых во второй. Первая хранит их в реляционной СУБД (неважно, какой именно), а вторая - в документоориентированной MongoDB. До кучи, обе платформы разнесены по сети. Можно, конечно, предложить открыть оба интерфейса бок о бок и сверять данные глазами. Но это справедливо негативно скажется на финансовом обеспечении команды разработки, да и как-то не по-человечески так относиться к своим коллегам. Поэтому приходится зарабатывать доверие в коллективе честным трудом.

Встаёт вопрос: как в условиях распределённой структуры наладить транспортировку данных для взаимодействия независимых систем? Прикручивать ко всем продуктам кастомные интеграции дорого и непродуктивно. 

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

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

Недельный геймдев: #289 — 2 августа, 2026

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

Из новостей: ждём сиквел Pragmata, Double Fine уволила 23 сотрудника, продажи Subnautica 2 достигли 5 миллионов копий, NVIDIA и AMD повышают цены на GPU для партнёров.

Из интересностей: перевод King’s Bounty 1990 для DOS на русский язык, техники рендеринга воксельного мира на мобильном устройстве в Unity, как левел-дизайнеру играть в игры.

Читать далее

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

Статья

ТОП-4 строительных уровня. Какой уровень лучше подходит для бытовых и профессиональных задач

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

Конструкция строительного уровня проста и совершенна — казалось бы, больше и писать-то не о чем. Но не все так однозначно. Сегодня мы взглянем на тему под другим углом: разберем, какой уровень лучше и почему — уверен, вы узнаете кое-что новое из сегодняшнего поста.

Читать далее
Пост

Как Kubernetes, Jira и Keycloak не помогли выпустить продукт

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

Первый кейс сразу интересный. Есть команда из трёх разработчиков, больше 30 репозиториев, Kubernetes, Helm, Argo CD, Keycloak, Jira и куча другой инфраструктуры. Нет только новой версии приложения, которую заказчик может нормально открыть в браузере.

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

Заказчик решил обновить приложение и нанял отдельную команду. Прошло довольно много времени, но внятного результата он так и не увидел.

Разработчики говорят, что проблема в непонятном ТЗ. Заказчик говорит, что команда не отвечает на вопросы, не доводит решения до конца, а то, что показывает, регулярно не работает.

Меня позвали разобраться.

Первым делом я попросил доступ к коду. Код лежит в собственном GitLab. Правда, сам GitLab периодически тоже лежит, поэтому попасть туда получилось не сразу.

Когда доступ появился, меня встретила авторизация через Keycloak.

Напомню: разработчиков трое.

Спрашиваю, как деплоят. Kubernetes, Helm, Argo CD. Открываю список репозиториев, а их больше 30. Часть занята общими библиотеками и Docker images, но большая часть приходится на отдельные сервисы.

Потом выяснилось, что у команды есть собственные registry, Jira, Grafana, VictoriaMetrics и ещё пачка инфраструктурных компонентов.

Всё это работает на мощностях заказчика. Точнее, периодически работает. То GitLab недоступен, то проблемы с кластером, то ломается ещё что-нибудь. А отдельных людей, которые могли бы постоянно следить за этим зоопарком, нет.

Старая версия приложения продолжает обслуживать пользователей. У новой тоже есть production-контур, но он сильно отстаёт от dev и пока не соответствует требованиям.

Frontend вроде бы существует. Но вживую я его до сих пор не видел, только на скриншоте.

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

Получается странная картина. Инфраструктура уже сложная. Репозиториев много. Инструментов ещё больше. А общего понимания, что считается готовым продуктом, до сих пор нет.

Дело не в том, что Kubernetes, Jira или Keycloak плохие. Вопрос в том, зачем всё это понадобилось именно сейчас и кто должен это обслуживать.

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

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

Забавно, что это полная противоположность истории с The Signal.

Там ребята быстро выкатились на Vercel, но забыли настроить RLS в Supabase. А когда я поднял логи и метрики, мне сказали, что это уже какой-то очень серьёзный подход.

Тут всё наоборот. Логи есть. Метрики есть. Kubernetes есть. Даже Argo CD есть. А работающий frontend пока существует для меня только на скриншоте.

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

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

А вы в какой крайности?

Дебаж 🐞с ноги 🦶

Теги:
+1
Комментарии1
Пост

Друзья, я просто обязан сказать огромное спасибо всему сообществу Хабра за вашу поддержку и активность под статьей о моем проекте Kakehashi!

Вдохновившись вашими отзывами, вчера вечером я опубликовал проект на Hacker News. Результат превзошел все ожидания: прямо сейчас тред держит 204 поинта, а репозиторий набрал более 220 звезд на GitHub.

Проект попал в радар к хардкорным системщикам со всего мира. Среди тех, кто дал звезду, оказались инженеры из команд Cursor, Fly.io, Astro, создатель пакетного менеджера Pixi, разработчик Redox OS и в дискуссии на HN был легендарный автор утилиты Cydia @saurik.

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

Огромное вам спасибо! 

P.S. Хотел опубликовать в хаб «Я пиарюсь», но интерфейс не пропустил из-за нехватки кармы (нужно 30). Поэтому публикую в профильные хабы как апдейт к прошлой статье. Надеюсь на понимание!

Спасибо всем!
Спасибо всем!

Проект: https://github.com/wie-project/kakehashi

Статья на Хабре: https://habr.com/ru/articles/1065502/

Пост на Hacker News: https://news.ycombinator.com/item?id=49145937

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

SOFROS AI Секретарь: как мы построили локальную систему для автоматического ведения протоколов

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

Знакомая ситуация: созвон закончился, все обсудили, о чём-то договорились и разошлись работать дальше. А через пару дней начинается: «Подождите, а кто вообще должен был этим заниматься?» В лучшем случае у кого-то сохранились хаотичные заметки, в худшем — всё держится на человеческой памяти. А ведь встречи бывают не только онлайн, но и очные, с десятком участников и часами обсуждений.

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

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

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

Как за вами следит Яндекс: часть 1/3

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

Полный реверс-инжиниринг APK Яндекса: разбираем механизмы сбора аудио, геолокации, платежных данных и списков установленного ПО

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

Microsoft с 1 августа подняла цены на Xbox по всему миру

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

С 1 августа 2026 года Microsoft повысила цены на Xbox по всему миру. Цена консолей увеличится на $100 для моделей с 512 ГБ памяти и на $150 для моделей с 1 ТБ. Кроме того, прекратится выпуск модели с 2 ТБ памяти.

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

Alibaba выпустили Qwen3.8-Max: стоит в четыре раза дешевле Opus 5, но уступает в сложном кодинге

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

Команда Qwen выпустила Qwen3.8-Max, новую флагманскую MoE-модель на 2,4 трлн параметров. На каждом токене активируются 95 млрд параметров, размер контекста составляет 1 млн токенов.

В API модель стоит $2 за миллион входных и $6 за миллион выходных токенов. Это в 2,5 раза дешевле Kimi K3 по генерации и больше чем в четыре раза дешевле Claude Opus 5.

Веса Qwen3.8-Max обещают опубликовать на Hugging Face и ModelScope на следующей неделе. Это будет первая модель Max-класса от Qwen с открытыми весами. Вместе с ней команда пообещала открыть веса Qwen3.8-27B.

Читать далее