Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 35 min 18 sec ago

Написание консольного симулятора баттл-арены на языке С++ с реализацией «умных» ботов

Sat, 05/23/2026 - 11:31

В этой статье мы на практическом примере разберём создание консольной симулятора файтинга на C++ с двумя персонажами на арене. Вы увидите, как работают основные принципы ООП: инкапсуляция, наследование и полиморфизм. Мы реализуем базовый класс Character и трёх наследников — Warrior, Orc и Magician — каждый со своими уникальными атаками, дальностью обнаружения врага и поведением (преследование / побег). Также покажем простейшую анимацию выстрелов, отрисовку карты 14×14 и игровой цикл с пошаговой логикой боя. Статья будет полезна новичкам, которые уже знакомы с синтаксисом C++ и хотят увидеть, как теория превращается в работающую игру.

Читать далее

Очень много букв… Или кейс по специфической настройке рабочего окружения

Sat, 05/23/2026 - 11:00

Сотни строк кода, страницы документации, корпоративные чаты — и всё это каждый день. Когнитивная нагрузка не снижается. Внутри — система инструментов, которая помогает мне не тонуть: конфиги clang и специфичные настройки VSCode, приложения визуализации и др. С объяснением зачем каждый из них.

Читать далее

Segmentation Fault: как оно устроено?

Sat, 05/23/2026 - 10:26

Segmentation fault - одна из тех ошибок, с которой сталкивался каждый, но мало кто разбирался что за ней стоит. В этой статье копаем глубже обычного: смотрим как ядро Linux понимает что произошло, какие типы ошибки бывают - с реальными примерами и исходниками ядра Linux.

Сегфолтнуться

Python в enterprise: момент, когда пора открыть Java не только ради собеседований

Sat, 05/23/2026 - 09:25

Интернет любит вечные войны: Linux против Windows, Vim против IDE, tabs против spaces. И, конечно, Python против Java. Одни говорят: «Python уже готов для enterprise». Другие считают RPS и стоимость инфраструктуры.

Под катом — история реального выбора для аэропортовой системы AWOS: почему строгая типизация, бинарная переносимость и современный GC перевесили лаконичность — и что стоит попробовать Python-разработчику.

Читать далее

MonoGame — игровой движок для тех, кто любит изобретать велосипеды

Sat, 05/23/2026 - 09:10

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

Основные кандидаты у всех на слуху: Unity, Unreal Engine и Godot.

Но кроме них существует ещё немало движков второго эшелона, про которые мало кто знает.

Собственно, про один из них - под названием MonoGame - я и хочу рассказать.

Читать далее

Спасти рядового Буридана

Sat, 05/23/2026 - 03:08

Как понять смущающую интуицию задачу за секунду - метод экстремальных параметров.

Бывало ли у вас такое - вы смотрите на условие задачи, логику алгоритма или даже жизненную ситуацию, интуиция кричит: «Здесь всё очевидно!», а строгая логика, тесты или реальность упрямо показывают совершенно другой результат?

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

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

Как подкрутить ожидания?

Рефакторинг выпадающих списков: от enum к конфигу-константе

Sat, 05/23/2026 - 02:17

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

Читать далее

Free Porn Storage: передаём мемы в TLS-трафике, не привлекая внимания санитаров

Sat, 05/23/2026 - 01:52

Если нужно спрятать дерево, прячьте его в лесу. Лес интернета состоит из TLS-соединений (>70% трафика, если верить статистике): вкладок браузера, WebSocket-потоков, долгоживущих HTTPS-запросов, клиентов игр, мобильных приложений, телеметрии, видеоплееров, чатов и тысяч спокойных TCP/443-соединений, которые выглядят настолько обычно, что именно это и делает их интересной средой для, кхм, исследования.

Очевидно, единственная и конечная цель существования интернета — быть распределённым хранилищем порно, так почему бы не использовать его по прямому назначению и не хранить смешные картинки прямо в трафике?

Чатить далее

Мониторинг цен на Авито: MikroTik RouterOS Script

Sat, 05/23/2026 - 00:33

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

Посмореть скрипт

Венесуэльская нефть после января 2026

Sat, 05/23/2026 - 00:19

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

Можно считать это дополнением к предыдущему обзору на нефть Венесуэлы.

Если кратко по текущим потребителям: из очевидного США. Из менее очевидного - Индия (для вытеснения российской нефти).

Читать далее

Разговоры с ИИ

Fri, 05/22/2026 - 23:35

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

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

Погнали

Хотел упростить мониторинг проектов и в отпуск — пришлось обучать свой LLM. Часть 4. Тестирование

Fri, 05/22/2026 - 23:16

Продолжаем серию про файнтюнинг и создание DevOps-агента Oni. В первой части я собирался в отпуск и хотел, чтобы локальная моделька через OpenClaw сама мониторила ошибки и переподнимала проекты — пока я отдыхаю. Перебрал много разных моделей через Ollama и понял, что половина либо не умеет tool calling, либо ломаются на multi-step. В отпуск я в итоге не уехал — вместо этого снял VM с RTX 3090, начал учить Qwen3-14B через Unsloth QLoRA, а через неделю купил с авито старенький Dell с 3090, чтобы обучать у себя на локалке — стало интересно победить проблему.

Во второй части я пробовал разные подходы к файнтюнингу Qwen3:14b и понял: incremental delta-merge не работает. Дошёл до oni:v8 с 11/11 на Django scaffold, попытался добавить SSH/docker поверх — и модель забыла Django. Пять регрессий подряд, anchor-примеры не спасают, самый мягкий lr=1e-5 всё равно ломает. Познакомился с catastrophic forgetting, потратив пять ночей и полгигабайта удалённых GGUF-чекпоинтов. Переехал на fresh-from-base: каждая base-N с нуля от чистого Qwen3-14B, эволюционирует только датасет.

В третьей части — про дистилляцию. Hand-crafting упёрся в потолок: каждый трейс — это итерация с Claude, ревью, правки, повторная генерация, и так на каждый из тысяч примеров. Сделал локальную дистилляцию через gemma4:31b на той же 3090: сырые датасеты → фильтр → пере­формат в agent-trace → валидация → датасет. Получил внушительную базу датасетов для моего агента, не вкладывая деньги на сторону.

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

Читать далее

Как вытащить ИТ из кризиса перегрузки, если найм запрещён

Fri, 05/22/2026 - 22:51

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

В статье — разбор ситуации, знакомой многим IT‑командам: дедлайны не двигаются, найм заморожен, техдолг растёт, инциденты множатся, а люди постепенно выгорают. На примере условного «ФинТеха» автор показывает, почему попытка «ускориться ещё сильнее» обычно только усугубляет кризис и как двухнедельный Stop the Line может вернуть управляемость процессам без расширения штата.

Читать далее

Как мы подключили LLM к поддержке, а получили идеального лжеца

Fri, 05/22/2026 - 22:14

Где‑то в начале года мы решили: давайте автоматизируем часть поддержки через LLM. Ну, знаете, идея тогда казалась почти очевидной.

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

Читать далее

Zero — новый agent-first язык программирования от Vercel, который изменит все (нет)

Fri, 05/22/2026 - 21:53

Agent-first язык программирования звучит как хорошая идея, да?

В конце концов, агентам не нужны фигурные скобки. Им не нужна красота if, while, for, match, Result, try, await, naming conventions и вот этого всего, сделанного для нас - кожаных мешков.

Именно поэтому Zero от Vercel Labs на первый взгляд выглядит как интересный эксперимент. Официальный сайт называет его языком для агентов, README говорит про "agent-first programming language", а авторский пост в X обещает systems language, который быстрее, меньше и проще для агентов в использовании и дебаге.

Звучит почти убедительно. До тех пор, пока вы не открываете код.

Читать далее

Запускаем рекламу в дачной нише: какие креативы и форматы работают, на что смотреть в аналитике

Fri, 05/22/2026 - 21:30

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

Привет! На связи Авито Реклама. Сегодня делимся, как начать рекламировать товары и услуги в сезон дач, шашлыков и выходных на природе. 

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

Читать далее

Паттерны организационного дизайна: практическое руководство

Fri, 05/22/2026 - 21:19

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

Игорь Гранщиков, руководитель разработки Авито Недвижимости, делится паттернами организационного дизайна — опытом, накопленным в разных командах и компаниях. Материал вырос из доклада на Saint TeamLead Conf 2025, однако здесь он переосмыслен и дополнен. Там, где речь идёт о книгах, фреймворках или методологиях, приводятся явные ссылки. Всё остальное — личная практика автора: каждый из описанных паттернов он проверял на деле, и у каждого своя история — одни прижились надолго, от других пришлось довольно быстро отказаться.

Читать далее

Почему алгоритмы сливают твой депозит? 3 причины, о которых молчат «успешные» бэктесты

Fri, 05/22/2026 - 21:12

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

Реальный рынок уничтожает такие системы с пугающей регулярностью.

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

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

Читать далее

Как «спят» вкладки в браузере

Fri, 05/22/2026 - 20:09

Привет! Меня зовут Костя, я разработчик интерфейсов в ЮMoney. В этой статье разбираю, почему вкладка после возврата из фона начинает вести себя странно: интерфейс подвисает, таймеры съезжают, события приходят пачкой.

Материал особенно пригодится тем, кто делает сложные SPA с realtime‑обновлениями, WebSocket и насыщенным UI — CRM, дашборды, платёжные сценарии.

В статье разберём:

— как устроены Page Visibility API и Page Lifecycle API,
— зачем браузеры ограничивают фоновые процессы,
— что происходит при заморозке вкладок, системном сне и возврате страницы из BFCache,
— чем отличаются Chrome, Safari и Firefox,
— какие API уже устарели,
— а какие подходы помогают делать интерфейсы стабильнее в реальных пользовательских сценариях.

Читать далее

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

Fri, 05/22/2026 - 19:57

Привет! Я Даша, QA в команде Смартбот. Эта статья будет о том, как мы перестали спорить о срочности обращений и багов.

Начну с краткой исторической справки. Около года назад я начала тонуть в задачах на саппорт и эскалациях. В чат прилетала карточка с названием вроде «Не работает отправка сообщений», и уже по одному заголовку казалось, что нужно бросать все и срочно фиксить. Потом я погружалась в задачу и понимала, что проблема воспроизводится только у двух пользователей, и оба сидят через Explorer.

Бывало и наоборот. Первая линия смотрела на обращение и ставила средний приоритет, а при разборе оказывалось, что кейс действительно критичный и его не стоило откладывать даже на день.

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

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

Читать далее

Who's online

There are currently 0 users and 12 guests online.