C++ Academy
16.5K subscribers
619 photos
127 videos
1 file
583 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥 best it channels

РКН: clck.ru/3FmxJF
Download Telegram
🖥 Clay — библиотека для высокопроизводительного создания макетов 2D-пользовательского интерфейса, написанная на языке C!

🌟 Она предоставляет очень быстрые механизмы для расчёта и размещения элементов интерфейса (время выполнения — в пределах микросекунд), поддерживает модель раскладки, похожую на flexbox, и может работать в WebAssembly (WASM).

🌟 Clay использует минимальное количество памяти благодаря статическому аллокатору, не имеет внешних зависимостей и имеет декларативный синтаксис, схожий с React. Библиотека позволяет создавать сложные UI-компоненты с возможностью работы с элементами, такими как изображения, прямоугольники и другие кастомные элементы. Она также поддерживает прокрутку, взаимодействие с мышью и плавающие элементы. Всё это даёт гибкость для создания сложных интерфейсов с высокими требованиями к производительности.

🔐 Лицензия: Zlib

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍12🥰3
🖥 Большая шпаргалка, которая содержит исчерпывающие руководства по различным инструментам, необходимым для программирования на ассемблере, реверс-инжиниринга и бинарного анализа!

🌟 Каждая шпаргалка содержит инструкции по установке, примеры использования и расширенные советы для различных операционных систем.

🔐 Лицензия: MIT

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍178😨3🥰1🤔1
🌐 level-ip — реализация пользовательского (userspace) TCP/IP-стека для Linux, использующая устройства TUN/TAP!

🌟 Цель проекта — изучение работы TCP/IP, программирования сетей на уровне системы Linux, а также использования сокетного API. Реализация сопровождается обучающими материалами, охватывающими темы, такие как Ethernet и ARP, IPv4 и ICMPv4, TCP и управление потоком данных.

🔐 Лицензия: MIT

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍54🥴1
Media is too big
VIEW IN TELEGRAM
🎮 Запуск Doom (1993) в PDF файле.

Порт исходника Doom, который запускается в PDF-файле.

Оказалось, что старые версии Emscripten могут компилировать C в код asm.js, автор запустится внутри ограниченного времени выполнения JS в движке PDF.

Он использовал форк doomgeneric (https://github.com/ozkl/doomgeneric) оригинального исходного кода Doom, так как это позволило довольно легко написать IO.

Все, что нужно было сделать, это реализовать фреймбуфер и клавиатурные входы.

В отличие от предыдущих интерактивных PDF-демонстраций, вывод в DoomPDF осуществляется путем создания текстового поля для каждого ряда пикселей на экране, а затем установки их содержимого в различные ASCII-символы.

Обратите внимание, что этот PDF может работать только в браузерах на базе Chromium, использующих движок PDFium.

Таким образом, получается 6-цветный монохромный дисплей, который может обновляться достаточно быстро (80 мс на кадр).
Исходный код доступен здесь: https://github.com/ading2210/doompdf
Демо: https://doompdf.pages.dev/doom.pdf

@cpluspluc

#doom #c #gamedev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥10🤣6🤯32
🖥 Botan — это криптографическая библиотека на C++ с открытым исходным кодом!

🌟 Она предоставляет широкий спектр инструментов для реализации криптографических систем, включая протокол TLS, сертификаты X.509, алгоритмы шифрования (AES, ChaCha20), цифровые подписи (RSA, ECDSA) и поддержку оборудования, такого как PKCS#11 и TPM.

🔐 Лицензия: BSD-2-Clause

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥196🥰4😁2👍1🥴1
Редкая фотография, на которой я объясняю стандарты языка Си разработчикам, чтобы объяснить концепцию неопределенного поведения.

@cpluspluc
🤣418👍5🤔2
🖥 Эта статья объясняет, как в языке C возможно переопределение глобальных переменных с разными типами данных, если они определены в разных исходных файлах!

🌟 При этом компилятор не выдаёт ошибку, а вызывает предупреждения. Рассматривается концепция слабых и сильных символов: слабые символы могут иметь несколько определений, и линковщик выбирает одно, обычно на основе приоритета. Это особенно полезно при предоставлении значений по умолчанию для функций или переменных, которые могут быть переопределены.

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍8🔥4
🖥 sceneri-common — C++ библиотека используемая для разработки движка Sceneri, предназначенного для создания 2D и 3D игр и интерактивных медиа!

🌟 Библиотека включает инструменты для работы с файлами, событийной обработкой, математическими вычислениями (с использованием SIMD), сериализацией данных, потоками и многопоточностью на всех платформах, включая WebAssembly.

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

🔐 Лицензия: BSD-3-Clause

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥8👍5
🖥 cppfront — это экспериментальный проект для изучения возможностей эволюции синтаксиса языка C++!

🌟 Проект представляет собой компилятор, который преобразует упрощённый и экспериментальный синтаксис "Cpp2" в текущий стандартный синтаксис "Cpp1".

🌟 Цель проекта — протестировать идеи по упрощению и улучшению языка C++, сохраняя полную совместимость с существующими инструментами и библиотеками. cppfront служит прототипом для исследования потенциальных изменений в языке и демонстрирует, как могут быть реализованы будущие возможности C++, не нарушая экосистему.

🔐 Лицензия: Apache-2.0

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔14👍83👌2🔥1🖕1
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
👍62
🖥 "The Little Book About OS Development" — это книга, посвященная разработке операционных систем!

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

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥275👍5
🖥 Огромная книга: Основы программирования на C++! (766 страниц)

🔗 Читать: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤯52🤣2🔥1
🖥 shadPS4 — это эмулятор PlayStation 4 для Windows, Linux и macOS, написанный на C++!

🌟 Проект находится на ранней стадии разработки и уже может запускать некоторые игры, такие как Bloodborne и Dark Souls Remastered. Целью эмулятора является постепенное улучшение совместимости и производительности. Для сборки на различных платформах предоставлены инструкции, а поддержка геймпадов Xbox и DualShock осуществляется "из коробки".

🔐 Лицензия: GPL-2.0

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍209🔥7
🖥 Курс по GPU-программированию!

🌟 Изучите основы программирования GPU, от понимания архитектуры GPU до оптимизации нейронной сети. Погрузитесь в архитектуру памяти, характеристики производительности и многое другое!

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍214🥰3🤔1
🖥 googletest — это официальный фреймворк для тестирования и мокирования кода на C++, разработанный Google!

💡 Он объединяет два проекта: GoogleTest и GoogleMock, которые теперь поддерживаются в рамках единой экосистемы. GoogleTest реализует подход xUnit для создания и запуска модульных тестов, а GoogleMock добавляет возможности для создания мок-объектов и симуляции зависимостей.

🌟 Фреймворк предлагает множество функций, включая автоматическое обнаружение тестов, широкий набор утверждений (assertions), поддержку параметризованных тестов (value- и type-parameterized), тесты завершения работы (death tests), а также гибкую настройку поведения при сбоях.

🔐 Лицензия: BSD-3-Clause

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍65
🖥 UefiVarMonitor — это пример DXE-драйвера UEFI, реализованного для мониторинга доступа к UEFI-переменным!

🌟 Он перехватывает вызовы GetVariable и SetVariable, фиксируя их использование через последовательный порт. Проект включает реализации как на языке C (менее 300 строк кода), так и на Rust, демонстрируя возможности для изучения UEFI и низкоуровневого программирования.

🌟 Проект также включает расширенную версию драйвера с функцией регистрации обратных вызовов на Windows, что позволяет изменять параметры вызовов или блокировать их. UefiVarMonitor предназначен для обучения и экспериментов с UEFI-драйверами, предоставляя компактный и понятный код.

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍43
🖥 LearnCpp.com — это бесплатный обучающий ресурс, посвящённый изучению C++!

🌟 Сайт предлагает структурированный курс, начиная с самых базовых концепций, таких как настройка среды разработки и написание первых программ, до более сложных тем, включая объектно-ориентированное программирование, управление памятью, шаблоны и многопоточность. Уроки подходят как для новичков, так и для тех, кто хочет углубить свои знания в C++.

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍366🔥6
🖥 Огромный обучающий плейлист по созданию игрового движка на C++!

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
27👍11🔥8
🖥 Awesome C

Коллекция качественных проектов на чистом С.

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥64🥰1
🔥 Эта статья описывает новый функционал индексации пакетов в C++26, который позволяет извлекать элементы из пакетов с помощью оператора подстрочного индекса T...[index]!

🌟 Это упрощает работу с параметрическими пакетами, устраняя необходимость в сложных или неэффективных решениях для извлечения элементов. Также обсуждаются особенности синтаксиса, такие как использование sizeof...(T)-1 для доступа к последнему элементу и возможности для будущих улучшений, например, поддержка отрицательных индексов.

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍53