Обновить
231.03

C++ *

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

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

Языки программирования на все случаи жизни. Часть 1

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров13K

В программировании существует десятки разных направлений, языков ещё больше, около 9000. Эта статья будет интересна для тех, кто только-только начинает свой путь разработчика или же для тех, кому просто интересно. К языку будут прилагаться библиотеки и фреймворки, которые нужны для обсуждаемых направлений (например, django для python в бэкэнде).

Читать далее

Тезисы о std::set и std::multiset в C++

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.8K

Приветствую всех читателей! Меня зовут Максим, и я хочу поделиться с вами своими знаниями о программировании. Я не являюсь профессиональным разработчиком, и программирование для меня — это хобби и способ автоматизации рутинных задач на работе. В этой статье я расскажу вам об ассоциативном контейнере std::set и std::multiset в C++. Надеюсь, что эта информация будет полезной и интересной для всех, кто хочет узнать что-то новое о программировании.

Ну давай, удиви меня

Интеграция Flutter Mobile SDK в ОС Аврора

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров2.4K

Аврора — это отечественная мобильная ОС, развиваемая компанией «Открытая мобильная платформа». Она построена на базе Linux и унаследовала часть решений от Sailfish OS, но за последние годы превратилась в самостоятельную, зрелую платформу. Пятая версия, вышедшая в 2024 году, ориентирована не только на корпоративный сектор, но и на массового пользователя. В ней — переработанный интерфейс, поддержка планшетов, 64-битная архитектура, повышенная устойчивость и растущая экосистема приложений.

И вот в эту экосистему мы решили встроить наш Flutter Mobile SDK. В этой статье мы — тимлид Mobile SDK в 2ГИС Александр Максимовский и Flutter-разработчик @Sameri11 Михаил Новосельцев — расскажем про технические детали адаптации.

Читать далее

Оптимизация языковой модели Mamba для выполнения на CPU

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров3.5K

Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации.

Читать далее

Как мой формат может решить проблему совместимости инновационным способом

Время на прочтение3 мин
Количество просмотров926

Всем привет, это снова тот разработчик который разработал формат.pi

Сегодня расскажу, как формат может решить проблему совместимости с внешними программами.

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

Ранее обсуждал два потенциальных пути интеграции с такими инструментами, как Adobe Photoshop:

«Имитация формата» Генерация псевдо‑PSD файлов, которые хранят PIX‑данные в метаданных

Недостаток: Этот подход фундаментально ненадежен, хрупок и зависит от недокументированного поведения стороннего ПО. Он не подходит для профессионального использования.

«Традиционный плагин» (The Standard): Создание панели с кастомным интерфейсом для редактирования параметров PIX.

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

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

Концепция: Гибридная модель взаимодействия (Hybrid Interaction Model)

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

Читать далее

Асинхронная обработка ошибок – это сложно. Пример на CUDA

Время на прочтение10 мин
Количество просмотров1.2K

Или как я научился не беспокоиться из-за cudaGetLastError() и просто признал её нежелательной


Любому, кто сталкивался с проектированием API, приходилось мучиться над вопросом, как лучше всего распространять ошибки к вызывателям функций. Эта проблема появилась ещё раньше, чем термин «API». Даже несколько десятилетий назад (скажем, 30+) проектировщики интерфейсов умели отделять возвращаемые ошибки от прочей полезной нагрузки в рамках тех функций, которые доставляют эту информацию вызвавшему их узлу.
Читать дальше →

Профайл-виджет для игр

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров909

Привет! Хочу рассказать о небольшом виджете профилирования на ImGUI для игр. Под катом можно узнать о функционале и реализации. А так же заполучить сорцы!

Читать далее

Книга: «Сетевое программирование. От основ до приложений»

Время на прочтение16 мин
Количество просмотров12K
Привет, Хаброжители!

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

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

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров8.6K

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.

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

Читать далее

C++ Event System от идеи до реализации

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

Event System на C++: реализация без макросов, сложной обвязки и непонятного синтаксиса. Только чёткий и управляемый код.

Читать далее

Встреча ISO C++ в Софии: С++26 и рефлексия

Время на прочтение9 мин
Количество просмотров28K

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса, и сейчас я расскажу о софийской встрече Международного комитета по стандартизации языка программирования C++, в которой принимал активное участие. Это была последняя встреча, на которой новые фичи языка, с предодобренным на прошлых встречах дизайном, ещё могли попасть в C++26.


И результат превзошёл все ожидания:


  • compile-time-рефлексия
  • рефлексия параметров функций
  • аннотации
  • `std::optional<T&‍>`
  • параллельные алгоритмы
Об этих и других новинках расскажу в посте

CLL в ISPA: Семантические действия просто и мощно

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров556

CLL в ISPA — переносимый язык семантических действий для генераторов парсеров. Объявление переменных, условий и циклов, генерация AST и кода на C++ без привязки к языку парсера. Пример, разбор и сравнение с ANTLR, Bison.

Читать далее

О векторном вычислении экспоненциальной функции

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

Как вычислить экспоненциальную функцию быстро и с минимальной погрешностью? Пишем векторизованный код.

Читать далее

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

Программа для человекоподобного робота

Время на прочтение7 мин
Количество просмотров3.2K

В январе 2025 года я решил попробовать создать человекоподобного робота. Пока готова только одна рука без датчиков (рецепторов).

Читать далее

Преобразование JSON в объекты C++ на этапе компиляции: демонстрация возможностей принятой в C++26 рефлексии

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

На прошлой неделе в Софии, столице Болгарии, закончилась работа над стандартом C++26, который помимо контрактов, std::execution и всего прочего теперь включает и рефлексию.

В этой статье будет продемонстрирован один из примеров её использования: преобразование строк в формате JSON в объекты C++ на этапе компиляции.

Читать далее

Портирование фреймворка ROOT на архитектуру e2k

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.6K

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

Собственная архитектура e2k с очень длинной машинной командой VLIW не позволяет отечественным процессорам Эльбрус без портирования нативно запускать программное обеспечение, в том числе и ROOT.

В статье рассмотрим "айсберг" проблем, с которыми пришлось столкнуться в ходе портирования ROOT, а такжк сферу и примеры его применения.

О портировании и тестах ROOT читайте далее

Как в 19 лет я начал путь разработчика встраиваемого ПО

Время на прочтение4 мин
Количество просмотров23K

Привет, Хабр! Меня зовут Данила, мне 21 год, и за последние 2,5 года я успел поработать в роли разработчика программного обеспечения для встраиваемых систем — в основном на базе STM32. В этой статье я хочу поделиться тем, как я вообще пришёл в эту сферу, с чего начинал, какие грабли собрал и какие выводы сделал по пути.

Читать далее

Создаем плагин с генеративным ИИ для Unreal Engine на C++ (офлайн и онлайн версии)

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров3.1K

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

Читать далее

СТЦ продолжает открывать мир с орбиты

Время на прочтение1 мин
Количество просмотров1.4K

Любителям космического контента посвящается – делимся новой порцией фотографий, сделанными нашими кубсатами III пусковой кампании. В этот раз в фокусе 12-юнитового МКА оказались такие мировые столицы, как Нью-Йорк, Париж и Брюссель.

Читать далее

Простой и эффективный супервизор на С++ с универсальным Makefile

Время на прочтение6 мин
Количество просмотров3.5K

Несмотря на развитие лингвистических моделей, я подумал, что моя версия супервизора может быть достаточно интересна для размещения в статье. Назначение супервизора - поднять повторно программу, которая по каким-то причинам упала с ошибкой. Причём если программа завершила работу без ошибки, то она перезапущена не будет, как и не будут создаваться логи. В логах пишется время падения и тип ошибки. Универсальный Makefile может быть интересен тем, что его достаточно закинуть в папку с исходниками, добавить необходимые пути вида:
LDFLAGS = -I/usr/include/boost
LIBS = -lboost_serialization

Читать далее

Вклад авторов