2 Sept 2026, 13:02 UTC≈1,330 views22 reactionsread 3 September 2026 Photo
Bare Metal C++: как писать прошивки на C++ без ОС и тяжёлого runtime
Practical Guide to Bare Metal C++ - бесплатная практическая книга для разработчиков, которые хотят использовать C++ напрямую на микроконтроллерах и ARM-платформах.
Внутри:
- анализ машинного кода, который генерирует компилятор
- запуск C++ без стандартного runtime
- работа без исключений, RTTI и динамической памяти
- шаблоны и статические структу…
🔥12👍7❤2🤣1
31 Aug 2026, 10:14 UTC≈1,480 views18 reactionsread 3 September 2026 Photo
3D-фрактал Mandelbulb можно отрендерить примерно в 100 строках C++ - вообще без полноценного 3D-движка.
В основе всего несколько идей:
- Mandelbulb строится через сферическую итерацию в степени 8
- distance estimator примерно определяет расстояние до поверхности фрактала
- sphere tracing двигает луч большими шагами через пустое пространство
- когда луч приближается к поверхности, конечные разности вычисляют нормаль…
🔥13❤3👍2
29 Aug 2026, 12:03 UTC≈1,940 views19 reactionsread 3 September 2026 Photo
🔥 Джулиан Сторер - разработчик с более чем 30-летним опытом C++
Он создал сразу несколько заметных проектов в мире аудио-разработки:
- Tracktion DAW
- JUCE C++ Framework
- Cmajor DSP language
Особенно интересно тем, кто работает с:
- C++
- аудио и музыкой
- DSP
- DAW
- real-time приложениями
У него много сильного open-source кода и проектов, которые стоит изучить разработчикам из audio/software engineering.
htt…
👍13❤4❤🔥2
28 Aug 2026, 12:20 UTC≈1,980 views19 reactionsread 3 September 2026 Photo
Как Linux увеличивает счётчик без lock на SMP-системах
В ядре Linux есть трюк, который выглядит почти слишком просто: не заставлять все CPU драться за одну переменную.
Вместо общего счётчика используется per-CPU переменная - у каждого ядра своя копия данных.
На x86 макрос this_cpu_inc(var) превращается в одну инструкцию incl, которая работает с областью данных текущего CPU через GS.
Что это даёт:
* нет общего lo…
🔥11❤🔥3👍3❤2
28 Aug 2026, 09:17 UTC≈1,810 views8 reactionsread 3 September 2026 Advertisementerid 2W5zFJPPctRPhoto
❓Кто этот призрак в вашем коде: изучаем особенности работы с легаси на C++
Легаси — вот что объединяет всех разработчиков на всех языках программирования. Мы учимся уживаться с «наследием», встраиваем его в современную кодовую базу или стараемся не трогать.
Пришло время разобраться с легаси в email-проекте Ghost in the code.
Вы получите семь писем от инженеров, в числе которых представитель России в Международной …
❤5👍3
27 Aug 2026, 13:15 UTC≈1,790 views30 reactionsread 3 September 2026 Photo
✔️ curl - один из самых недооценённых проектов в истории софта.
Первый релиз вышел 20 марта 1998 года. Его запустил один разработчик - Daniel Stenberg.
Прошло больше 27 лет, а он всё ещё поддерживает проект.
Сегодня curl работает на миллиардах устройств и поставляется почти везде:
* macOS
* основные Linux-дистрибутивы
* Windows 10 и новее
* серверы
* контейнеры
* embedded-системы
* CI/CD пайплайны
Ирония в том, …
🔥22❤7🥰1
27 Aug 2026, 09:05 UTC≈1,850 views10 reactionsread 3 September 2026 Photo
✈️🌍 FlightGear: мощный симулятор полетов с открытым исходным кодом.
Созданный для исследователей и энтузиастов авиации, FlightGear предлагает реалистичную симуляцию полетов с поддержкой множества самолетов и ландшафтов. Проект активно развивается сообществом, предоставляя возможность пользователям вносить свой вклад и улучшать опыт.
🚀Основные моменты:
- Поддержка множества типов самолетов и ландшафтов.
- Реалистичн…
👍8❤2
25 Aug 2026, 18:03 UTC≈1,830 views11 reactionsread 3 September 2026 Photo
🖥 Большинство “простых” shuffle-алгоритмов дают кривой рандом
Частая ошибка:
for (int i = 0; i < n; i++) {
int j = rand() % n;
swap(a[i], a[j]);
}
На вид всё нормально: каждый элемент случайно меняется местами с другим.
Но проблема в вероятностях.
Для массива из n элементов существует n! перестановок.
Хороший shuffle должен давать каждой перестановке одинаковый шанс.
Наивный вариант делает n шагов, и …
❤6❤🔥4👍1
23 Aug 2026, 10:54 UTC≈2,700 views38 reactionsread 3 September 2026 Photo
В C есть синтаксис, который выглядит как опечатка:
case '0' ... '9':
Кажется, что такой switch вообще не должен компилироваться.
Но в GCC это работает. Это расширение называется case ranges — можно задавать сразу диапазон значений внутри case.
Например:
case '0' ... '9':
return DIGIT;
case 'a' ... 'z':
case 'A' ... 'Z':
return LETTER;
Вместо десяти отдельных case для цифр и ещё десятков для букв — …
🔥24❤6👍6✍1🥰1
22 Aug 2026, 12:01 UTC≈2,440 views24 reactionsread 3 September 2026 Photo
Одна строка C, которая может сломать вам логику
В C порядок вычисления аргументов функции не определён.
foo(i++, i++);
Из-за этого один и тот же код может дать разный результат:
* gcc: foo(1, 0)
* clang: foo(0, 1)
Причина простая: компиляторы по-разному вычисляют аргументы.
Такие вещи годами становились источником очень неприятных багов.
Хорошая новость: сейчас -Wall обычно умеет это подсветить.
Вывод баналь…
❤16👍6🥰2
22 Aug 2026, 10:10 UTC≈2,130 views10 reactionsread 3 September 2026 Photo
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rus…
❤5👍2🔥2🤔1
20 Aug 2026, 12:00 UTC≈2,520 views21 reactionsread 3 September 2026 Photo
Кто-то под именем Сатоши Накамото в 2008 году опубликовал идею, из которой выросла целая индустрия майнинга с огромным энергопотреблением.
И до сих пор никто достоверно не знает, кто скрывается за этим именем.
При этом сама базовая идея Proof of Work выглядит почти примитивно: берём число nonce, меняем его снова и снова, каждый раз считаем хэш и проверяем, попал ли результат ниже нужного target.
Условно это выгляд…
❤14🔥5👍2
Showing the 12 most recent of 44 posts we hold for @cpluspluc. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.