Обновить
256K+

C++ *

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

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

Изучение физического движка Bullet

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

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

Читать далее

Цена ошибки

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

Продолжим. Наша текущая цель - на примере  аттракторов достичь равенства результатов в SimInTech  и ВКПа.  Делать мы это будем приведением моделей к наиболее универсальной базе - используя языки программирования (ЯП). В ВКПа уже есть реализация на С++. Осталось создать ее в SimInTech. В таком виде они будут соответствовать друг другу. А в идеале, если языки одинаковые, даже просто совпасть. Все это должно способствовать равенству результатов. И на этом пути, кроме освоения внутреннего языка программирования SimInTech,   особых препятствий не предвидится.

Блоки на внутреннем ЯП в SimInTech создаются на базе блока PL  - блок библиотеки Динамические. Напомним реализацию модели аттрактора Лоренца на стандартных библиотечных блоках. Она приведена на рис. 1. Далее мы ее будем называть исходной схемой. Часть ее вместе с соответствующим кодом на языке программирования SimInTech (LangBlock22) представлена на рис. 2.

Читать далее

Меньше, еще меньше! Делаем вольт-ампер-ватт метр на Attiny85

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

Ну вот наконец добрался до Attiny85, все хотел чего-нибудь сделать на них. А тут коллеги решили с гальваническими покрытиями поиграться. Путем нехитрых доработок блок питания для светодиодных дисплеев на 5В 60А стал регулируемым. А вот контролировать такие токи нечем. Шунт на 75мВ при 50А в местных магазинах мы нашли, а вот головку к нему нет, а стоять считать чего там милливольты показывают на мультиметре- такое себе.

Читать далее

std::conditional_variable и std::atomic_flag в С++20

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

С++20 добавил новую функциональность для atomic_flag. Посмотрим как ее можно использовать, сравним с conditional_variable.

Читать далее

Boson — разработка СУБД «с нуля» (часть I)

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

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

Каждый разработчик "кровавого" enterprise в своей работе использует СУБД (SQL/NoSQL) и меня всегда искренне интересовало как они устроены в самом сердце, на самом низком уровне. Почитав документацию и исходный код SQLite и MongoDB, про используемые в индексах и интерпретаторах запросов алгоритмы, осознал, что несмотря на широкую распространенность и некую привычность, системы управления базами данных (СУБД) - это сложные программные продукты, реализация которых не всем под силу. Отлично - как раз то, что мне надо. С мотивацией разобрались, перейдем к делу.

Итак, для начала хорошо бы сформулировать высокоуровневую спецификацию требований. Boson - это легкая, встраиваемая документоориентированная база данных на С/С++

Читать далее

Алгоритмы диапазонов C++20 — сортировка, множества, обновления C++23 и прочее

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


Эта статья — третья и последняя в мини-серии об алгоритмах диапазонов. Мы рассмотрим некоторые алгоритмы сортировки, поиска и другие, а также познакомимся с готовящимися крутыми улучшениями этих алгоритмов в версии C++23. Поехали! Подробности — к старту курса по разработке на С++.

Читать дальше →

Алгоритмы диапазонов C++20 — 11 модифицирующих операций

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


В предыдущей статье серии «Диапазоны» я рассмотрел основы и некоторые немодифицирующие операции. Сегодня пришло время таких алгоритмов, как transform, copy, generate, shuffle и многих других… даже rotate. Подробности — к старту курса по разработке на С++.


Прежде чем мы начнём


Ключевые наблюдения об алгоритмах std::ranges:

Читать дальше →

ReactOS и «новогодняя банка»

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

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

Читать далее

Как написать 2D игру на C++ и чистом STL для терминала в Linux

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

Привет хабр, я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка

Читать далее

Топ-10 ошибок в C++ проектах за 2022 год

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

Дело идёт к Новому году, а значит, самое время традиционно вспомнить десять самых интересных срабатываний, которые нашёл PVS-Studio в 2022 году.


1021_Top_10_CPP_Bugs_2022_ru/image1.png

Читать дальше →

Коллекционирую лучшие C++ практики

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

Коллекционирую лучшие C++ практики


Что-то наши публикации всё больше о плохом, чем о хорошем. Здесь баг, тут код с запахом, это антипаттерн, вот так писать не надо. Помогите увидеть светлую сторону программирования на С++. Оставляйте комментарии.

Читать дальше →

Компиляция карт для Half-Life 1 на ТВ-приставке

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

Я уже не первый год занимаюсь моддингом легендарной Half-Life 1, и как-то совершенно спонтанно мне пришла в голову мысль, дескать, как было бы прикольно иметь возможность компилировать карты на какой-нибудь платформе, отличной от привычных всем x86 и amd64. Затем я вспомнил, что у меня дома есть ТВ-приставка на базе Android, которую в теории можно было бы приспособить для этих дел. Если такая возможность есть, значит обязательно нужно провести эксперимент.

Читать далее

Задача теплопроводности методом продольно-поперечной прогонки средствами MPI

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

Приветствую

Появилась задача моделирования процесса теплопроводности. Для решения необходимо было использовать метод продольно-поперечной прогонки, а для распараллеливания - MPI

Разберем не только теорию, но и подробности решения

Читать далее

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

7-zip — нет времени спешить

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

Данной заметки не должно было быть, но мы живем не в идеальном мире. Есть много пользователей, что предпочли стандартному проводнику Windows альтернативу и наверное еще больше пользователей архиватора 7-zip. Имеет смысл поделиться с ними, подумал я и вот мы здесь.

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

Что делает обычный эникейщик в подобной ситуации? Конечно же берет в руки первый подвернувшийся профайлер.

Читать далее

C++ для Maya

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

Создание кастомного локатора в Autodesk Maya с помощью C++

Здравствуйте. В этой статье я хочу поделиться тем опытом, который приобрел при написании плагина на C++ для Maya.

Читать далее

Алгоритмы диапазонов C++20 — 7 немодифицирующих операций

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


Библиотека Ranges для C++20 предлагает альтернативы для большинства алгоритмов. На этот раз я хочу показать вам десять немодифицирующих операций. Мы сравним их со «старой» стандартной версией и увидим их преимущества и ограничения.


Подробности — к старту нашего курса по разработке на C++.

Читать дальше →

Нестандартный полиморфизм. Паттерн Type Erasure

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

Нестандартный полиморфизм. Паттерн Type Erasure.

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

Читать далее

Инверсия зависимостей (dependency inversion principle)

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

Одним из принципов SOLID является инверсия зависимостей (dip). В литературе по программированию и в интернете масса источников с детальным описанием этого принципа. И большинство кандидатов на собеседовании успешно отвечают заученными фразами на вопрос: "Что такое инверсия зависимости?". Но при практической реализации мгновенно возникает вопрос, а в чем же собственно заключается инверсия и как она программируется? Далее будет рассмотрен данный принцип более подробно.

Читать далее

Помимо Правил Трех, Пяти и Ноля

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

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

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

Читать далее