Обновить
128K+

C++ *

Типизированный язык программирования

219,74
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

После сборки на Tauri затрещал голос и почернел стрим: разбираем три ошибки одного теста

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

После сборки на Tauri голос начал трещать, автокалибровка почти минуту вмешивалась в разговор, а демонстрация экрана через минуту становилась чёрной. Разбираем запись и логи, находим усиление до ×4 без лимитера, резкие разрывы 20-мс аудиопакетов и зависший видеотрек при живом соединении LiveKit — и показываем, как исправили каждый сбой в версии 0.0.26.

Разобраться в причинах

Анатомия HurriCache

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

HurriCache это распределенная key-value база данных с поддерожкой как простых типов ключ значение так и конейнеров, блокировок, работы с atomics и многое другое. HurriCache может работать как standalone так и в кластере. В данной статье не буду сравнивать ее ни с каким либо продуктом, просто расскажу о том что умеет решение а остальные выводы пускай сделают пользователи.

Читать далее

Программисты еще нужны… пока что

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

Как я оптимизировал мультиплеер в Unreal Engine 5 вместе с Claude и Codex, а потом исправлял за ними ошибки.

Читать далее

Как я оптимизировал AlphaZero для Connect4: 1600 симуляций в минуту на GTX 1650 и 95% точности за полчаса обучения

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

Давненько хотел написать бота, который играет в какую‑то сложную игру. Негамакс с альфа‑бета отсечением, конечно, работает неплохо, но на достаточно сложных играх тонет. В связи с этим, хотелось бы как‑то это ограничение обойти, что и привело меня к обучению с подкреплением. Стандартные Q‑Table, опять же, неприменимы для чего‑то сложнее крестиков‑ноликов, так что переходим к нейронным сетям. А точнее, к одному конкретному алгоритму: AlphaZero.

Читать далее

Vulkan API. GPU‑Driven Renderer (Bindless, BDA) на примере моего проекта Shuttle Engine

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

Зачем писать свой 3D-движок в 2026 году? Чтобы заглянуть «под капот» современной графики. В этой публикации делюсь практическим опытом разработки Shuttle Engine: от прямого обращения к VRAM по 64-битным GPU-указателям и оптимизации на Vulkan 1.3 до создания гибкого кастомного окна на Win32 API и систем отладки кадра.

Читать далее

Расширение возможностей моделирования: от диагностики до улучшенного драггинга в C3D Solver

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

Ксения Носулько, старший математик-программист, C3D Labs, рассказывает о новых функциях 3D-моделирования в решателе C3D Solver.

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

В 2D-решателе появилась поддержка нового объекта — вспомогательной оси. Он задается точкой и направляющим вектором. Ось не является кривой, однако, подобно любому линейному объекту, подчиняется наложенным на нее ограничениям.

Пример кода:

Читать далее

Сегодня ночью ShadPS4 присоединится к охоте: проверяем самый популярный эмулятор PS4

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

Добро пожаловать на ПК, добрый охотник. Желаешь проверить на баги эмулятор ShadPS4?

20 августа исполнилось 136 лет Говарду Филлипсу Лавкрафту, мифы которого вдохновили множество игроделов. Одним из самых известным примером стала игра Bloodborne, и сегодня мы проверим долгожданный работоспособный эмулятор ShadPS4, благодаря которому игроки на ПК наконец смогли присоединиться к охоте.

Читать далее

Когда Chisel уже недостаточно: создаем свой фреймворк аппаратного тестирования на Verilator

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

Привет! В этой статье я разберу, почему возможностей Chiseltest может не хватать для сложного аппаратного тестирования и как мы пришли к собственному фреймворку на базе Verilator и C++. Поговорим об архитектуре тестового окружения, BFM-агентах, автогенерации обвязки и интеграции с RTL и программными моделями. А заодно обсудим, какие задачи с таким подходом решаются лучше, чем с Chisel, и где все-таки остаются ограничения.

Читать далее

2,2 МБ против 128 МБ: честный бенчмарк Win32 и Tauri на живом голосовом клиенте

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

После статьи о выборе Tauri нас спросили, сколько памяти будет занимать программа, которая живёт в трее рядом с игрой. Мы запустили старый БОЛТУН на Win32 и новый на Tauri в одинаковом пустом лобби. Получилось 2,2 МБ против 128 МБ. Разбираемся, откуда взялись девять процессов WebView2, что показал замер и почему это не стало автоматическим отказом от нового интерфейса.

Читать бенчмарк

Замерщик под Wayland — экранная линейка, скриншотер и пипетка на C++ и GTK4

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

Переписал с Perl/GTK3 на C++/GTK4 ds-measurer — утилиту для измерений поверх живого экрана, снятия скриншотов (в буфер обмена и/или на диск) и цветов в различных CSS-нотациях (в буфер обмена и/или c выводом на экран).

Есть поддержка цветовых схем с переключением по ним, направляющих с прилипанием к ним, выделение из центра и/или с фиксированным соотношением сторон, настраиваемые сетки и хоткеи.

Читать далее

Разработчики в вашей компании уже тратят много токенов. Как проверить реальную пользу ИИ для бизнеса?

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

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

Число запросов, объём сгенерированного кода и расход токенов показывают активность модели и её стоимость. Для оценки пользы нужны другие данные: сколько времени сэкономил разработчик и прошёл ли результат приёмку.

Для оценки каждой задачи нужны три параметра:

Читать далее

OpenIDE Pro в деле: Java, Spring, базы данных и AI-агенты в одной IDE

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

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

27 августа в 11:00 покажем OpenIDE Pro вживую: от разработки на Java и Spring до работы с базами данных и AI-агентами прямо в IDE.

👉 Зарегистрироваться на вебинар

Читать далее

Двойная точность: в основном «найти и заменить», плюс два настоящих сюрприза

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

В этой части мы используем sgemm как шаблон и проверим, что действительно меняется при переходе к dgemm: сначала пройдём скучную часть с удвоенными ширинами, затем разберём прямоугольный тайл 16×32, после этого — отдельный бит возможностей FEAT_SME_F64F64 и динамическую регистрацию ядра. Следующая часть будет устроена иначе: там меняется не только ширина элемента, но и сама форма данных.

Читать далее

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

Моё представление об идеальном системном языке программирования

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

На пороге 2027 год, и с момента появления языка Си прошло уже более 50 лет… Но, что удивительно, за все эти годы так и не появилось идеальной альтернативы этому языку. Поэтому, ради интереса, я попробовал разработать дизайн своего «идеального» языка. И теперь я хочу рассказать о том, что у меня получилось.

Читать далее

Охотники на призраков: 7 писем о том, как работать с легаси на «плюсах»

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

Заходят как на электронную почту разработчики на C++, а там письма про легаси.

И это не начало анекдота, а начало email-проекта Ghost in the code — серии писем от опытных инженеров о том, какие инструменты и процессы помогают наладить работу с легаси-кодом. Среди авторов — Антон Полухин, Константин Владимиров, Андрей Карпов и другие инженеры из крупных технологических компаний. Первое письмо придет 15 сентября, а пока выясним, о чем расскажут эксперты и что ждет тех, кто решит все задачи от авторов.

Погрузиться в легаси

o2 game engine

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

Привет, хабр! Уже 11 лет я пилю свой игровой движок, и я готов представить его публике. Я все еще дорабатываю его, но он уже вполне стабилен и я делаю игры на нем.

Движок открытый и бесплатный, нацелен преимущественно на мобильные игры, поддерживает пачку платформ — ios, android, web, mac, windows, linux. Он компактный (всего несколько мегабайт), производительный, позволяет писать логику игры как на C++, так и на JavaScript. Внутри есть убер‑редактор для всего — вот он на скриншотике выше

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

Читать далее

Написание ядра ОС с нуля. Часть 3 — Пропуск в высшую лигу

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

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

В этой статье мы перейдем в полноценный, современный C++23, и все еще останемся на голом железе. Настроим страницы, GDT и перейдем в 64-битный режим.

Читать далее

ZeroTier без native: managed ZtSharp и VL1-only ZtLite для ESP32

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

Доброго времени суток.

Интерпретатор ESPB временно пока отложил, интерес к нему оказался скромным. Но подошел к глобальной задаче с другой стороны и на этот раз все крутится вокруг Zerotier. Давно обратил внимание на данную платформу, когда то ковырял libzt - sockets поверх сети Zerotier. Это удобно для приложений, которые находятся вне единой локальной сети и должны общаться сквозь NAT. Думаю, многие хотели бы использовать микроконтроллеры (например, ESP32) для IoT-задач, не заморачиваясь со способами доставки информации на сервер и не завися от того, спрятан ли этот сервер за NAT.

Из этой идеи выросли три связанных проекта:

Читать далее

От героев былых времен

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

Машина Тьюринга (МТ) не сферический конь в вакууме программистского бытия. Она не про «единички-нолики» и елозанье вдоль ленты, а про гимнастику мозгов для программистов. Продолжим тему МТ, начатую в [1]. Ее программирование увлекательная и, без сомнения, серьезная работа по созданию алгоритмов при миним миниморум средств на их реализацию Тем и привлекательна. Особенно на этапах обучения алгоритмическому мышлению.

Продолжим тему нахождения наибольшего общего делителя (НОД) двух чисел для МТ. Только теперь это будет обычное программирование. По счастью ли по совпадению нужный нам алгоритм приведен в книге Н.Вирта [2]. Его блок-схема (БС) приведена на рис. 1. Обычная и ни чем не примечательная БС и совсем простой алгоритм. Особенно в сравнении с рассмотренными для МТ. Привел он его, преследуя другие цели, но сейчас не это главное.

Читать далее

Make STL Cringe Again: Как я динамические строки на C создавал

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

Привет, Хабр! Однажды я подумал, что вот не умеют разработчики жить. В каждом из языков есть свои напасти (от которых, в принципе, спасаются разве что разработчики-полиглоты). Возьмем хотя бы C++ — даже без его шаблонов, исключений, и т.д., там все еще много мраков. Возьмем хотя бы iostream — он, блин, весит 2 МБ в последней версии GCC при компиляции под Windows! Или, вот, std::string — динамическая строка. Звучит интересно на бумаге, учитывая, что язык не из добрейших, но на практике...

Читать далее