История о том, как стремление человека управлять сложностью меняло сами основы программирования.
Перед тем как перейти непосредственно к языкам программирования, мне очень хочется осветить одно событие.
История о том, как стремление человека управлять сложностью меняло сами основы программирования.
Перед тем как перейти непосредственно к языкам программирования, мне очень хочется осветить одно событие.
Сегодня Rust активно используется не только как язык для написания приложений, в том числе системных, но и как язык для написания библиотек, которые подключают к существующим проектам на C и C++.
Это удобно: новую функциональность можно писать на Rust, но при этом не переписывать весь код на нём.
В этой статье я покажу, как:
написать библиотеку на Rust;
выставить для неё C API через FFI;
собрать всё одной командой через CMake;
использовать её из C++ кода;
реализовать обратные вызовы (callback), которые Rust будет вызывать в C++.
Весь код, части которого приведены в статье, доступен в репозитории:
Читать полностью »
Привет!
Данная статья посвящена описанию реализации учебного проекта. Проект является С++ реализацией сервиса по распределению позиций заказов внутри партий. Исходная реализация данного сервиса представлена на Python в книге «Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура».
Читателю рекомендуется ознакомиться с оригиналом проекта и книгой «Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура».
Недавно сообщество фанатов классической RPG Arcanum: Of Steamworks and Magick Obscura потрясла новость: разработчик по имени Alex завершил титанический труд по реверс-инжинирингу оригинального движка игры. Теперь у нас есть его полнофункциональные исходные коды, которые можно компилировать под Windows, Linux и macOS с использованием современной библиотеки SDL3.
Думаю никого не нужно вводить в курс дела - в С++ всегда было сложно с подключением зависимостей. Было. Первым из пучины баш и питон скриптов естественным отбором появился и повсеместно распространился cmake - на этом этапе хотя бы проекты без зависимостей стало можно собрать как-то одинаково (здесь я намеренно не упоминаю прочие инструменты того же толка, они просто гораздо менее популярны)
Я много работаю с CMake. И периодически сталкиваюсь с довольно сложными и запутанными CMake-скриптами. Долгое время я использовал логи, чтобы разобраться в их работе и выполнить отладку. Позже обнаружил, что в CMake есть встроенный отладчик и профилировщик, которые сильно упрощают процесс отладки. Кажется, не все знают об их существовании и о том, как с ними работать, поэтому я решил написать эту статью.
Я работаю в одном крупном российском банке, где занимаюсь разработкой распределённых систем. За последние несколько лет наша архитектура заметно усложнилась — часть сервисов работает в OpenShift, часть на виртуалках, а кое-что до сих пор крутится на «железе».
OpenCV — популярная библиотека, включающая множество алгоритмов компьютерного зрения и функций для них. Оптимизация их под RISC-V — большая и интересная задача, которой в рамках Зимней школы RISC-V YADRO сезона 2024–2025 занимались студенты Университета Лобачевского (ННГУ). В этой статье они подробно расскажут о своей работе.

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