#полезное
😵💫 Минимальный чат-сервер на C:
🟠 поддержка нескольких клиентов (до 10 пользователей)
🟠 трансляция сообщений в реальном времени
🟠 чистая работа с сокетами через select()
🟠 клиент на потоках для асинхронной отправки сообщений
Отлично подходит для изучения сетевого программирования
Гитхаб
👉 Новости 👉 База вопросов
Отлично подходит для изучения сетевого программирования
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
😴 Собери минималистичный многопоточный FTP-сервер на C
🟠 изучишь основы сокет-программирования
🟠 реализуешь параллельную передачу файлов через
🟠 настроишь базовую отдачу файлов с помощью
Отлично подойдёт, чтобы разобраться, как устроена передача файлов по сети на низком уровне.
👉 Новости 👉 База вопросов
pthreadssendfile()Отлично подойдёт, чтобы разобраться, как устроена передача файлов по сети на низком уровне.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Cplus
🤔 Какие типы данных существуют в С++?
В С++ существуют три основных типа данных: примитивные, производные и пользовательские. Примитивные данные включают целые числа, символы и числа с плавающей точкой.
👉 Новости 👉 База вопросов
В С++ существуют три основных типа данных: примитивные, производные и пользовательские. Примитивные данные включают целые числа, символы и числа с плавающей точкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 std::default_sentinel
👉 Новости 👉 База вопросов
std::default_sentinel (C++20) представляет универсальный конец диапазона и используется с пользовательскими итераторами и ranges. Это полезно для создания "открытых" и ленивых представлений данных.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😇 Динамический JSON в C
Минимальный и понятный API.
Нет внешних зависимостей.
Поддерживает
Гитхаб
👉 Новости 👉 База вопросов
Минимальный и понятный API.
Нет внешних зависимостей.
Поддерживает
object, array, number, string, bool, nullГитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #Cplus
🤔 Какой лучший компилятор для С++?
Лучший компилятор для С++ зависит от конкретных требований проекта, платформы и предпочтений разработчика. Среди популярных компиляторов - Visual C++, Clang, GCC, Intel C++ Compiler и другие.
👉 Новости 👉 База вопросов
Лучший компилятор для С++ зависит от конкретных требований проекта, платформы и предпочтений разработчика. Среди популярных компиляторов - Visual C++, Clang, GCC, Intel C++ Compiler и другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
❤️🔥 Ядра CPU, кэш-линии и ложное разделение
Слышал о "ложном разделении" ? Это проблема производительности, возникающая, когда независимые переменные попадают в одну и ту же кэш-линию и одновременно обновляются разными потоками.
Каждое обновление переменной на одном ядре вызывает принудительный сброс всей кэш-линии для других ядер, даже если переменные фактически не разделяются между потоками
Обрати внимание на документацию ядра — там эта тема тоже хорошо раскрыта.
Есть отличное видео, подробно объясняющее механику,
А также крутая статья от Netflix Engineering, где описан реальный кейс в проде — отличное исследование производственного инцидента.
👉 Новости 👉 База вопросов
Слышал о "ложном разделении" ? Это проблема производительности, возникающая, когда независимые переменные попадают в одну и ту же кэш-линию и одновременно обновляются разными потоками.
Каждое обновление переменной на одном ядре вызывает принудительный сброс всей кэш-линии для других ядер, даже если переменные фактически не разделяются между потоками
Обрати внимание на документацию ядра — там эта тема тоже хорошо раскрыта.
Есть отличное видео, подробно объясняющее механику,
А также крутая статья от Netflix Engineering, где описан реальный кейс в проде — отличное исследование производственного инцидента.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 std::unexpected
👉 Новости 👉 База вопросов
std::unexpected (устаревший в C++17, но интересный исторически) используется для установки обработчика непредусмотренных исключений, выбрасываемых функциями с noexcept(false) или throw()-спецификацией. Полезно для отладки и контроля исключений в старом коде.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Cplus
🤔 Что такое выражение в С++?
В С++ выражение - это единица кода, которая может быть оценена до какого-либо значения. Оно может содержать переменные, константы, операторы и функции, которые в совокупности дают результат.
👉 Новости 👉 База вопросов
В С++ выражение - это единица кода, которая может быть оценена до какого-либо значения. Оно может содержать переменные, константы, операторы и функции, которые в совокупности дают результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 Отслеживание рук в реальном времени с помощью AI на C++ и raylib, используя Google MediaPipe (сборка C API, без Python).
Поддержка обеих рук · Сглаженные ключевые точки · Отклик CPU — 20–25 мс.
👉 Новости 👉 База вопросов
Поддержка обеих рук · Сглаженные ключевые точки · Отклик CPU — 20–25 мс.
Собрать MediaPipe под C/C++ было непросто, но всё работает.
Довольно впечатляет, когда осознаёшь, что весь модуль детекции рук, скомпилированный как C API, весит меньше 8 МБ. Сам модельный файл — около 7 МБ.
Ещё круче то, что всё работает целиком на CPU.
С включённым GPU в игровом движке можно ожидать ещё более высокую производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
#полезное
🤯 Параллелизм в WebAssembly / эксперименты в браузере и за его пределами
Свежий выпуск ACM Queue посвящён текущим ограничениям и будущим направлениям развития параллелизма в WebAssembly. Oбязательное чтиво для всех, кто интересуется многопоточностью и производительностью в браузере.
https://dl.acm.org/doi/pdf/10.1145/3747201.3746173
👉 Новости 👉 База вопросов
Свежий выпуск ACM Queue посвящён текущим ограничениям и будущим направлениям развития параллелизма в WebAssembly. Oбязательное чтиво для всех, кто интересуется многопоточностью и производительностью в браузере.
https://dl.acm.org/doi/pdf/10.1145/3747201.3746173
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1
#полезное
😱 std::ranges::
chunk_view
👉 Новости 👉 База вопросов
chunk_view
std::ranges::chunk_view (C++23) разбивает диапазон на равные части фиксированной длины. Это полезно для обработки данных блоками, например, при пакетной обработке или генерации батчей.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Cplus
🤔 Может ли функция вернуть несколько значений в C+?
Да, функция может вернуть несколько значений, используя ссылки или указатели как параметры, или возвращая кортеж (tuple) или пару (pair).
👉 Новости 👉 База вопросов
Да, функция может вернуть несколько значений, используя ссылки или указатели как параметры, или возвращая кортеж (tuple) или пару (pair).
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Memory Allocators 101 — пишем простой аллокатор памяти
Эта статья посвящена реализации простого аллокатора памяти на C
Ты напишешь свои версии
👉 Новости 👉 База вопросов
Эта статья посвящена реализации простого аллокатора памяти на C
Ты напишешь свои версии
malloc(), calloc(), realloc() и free()Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #Cplus
🤔 Как включить все библиотеки в С++?
В С++ можно использовать директиву #include для включения необходимых библиотек, но не рекомендуется включать все библиотеки, так как это может привести к увеличению размера программы и конфликтам.
👉 Новости 👉 База вопросов
В С++ можно использовать директиву #include для включения необходимых библиотек, но не рекомендуется включать все библиотеки, так как это может привести к увеличению размера программы и конфликтам.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Исходный код самых ранних версий самого первого компилятора C
В коде видно, насколько синтаксис изменился за эти годы, но простота всё так же сохранена.
Репо - https://github.com/mortdeus/legacy-cc
👉 Новости 👉 База вопросов
В коде видно, насколько синтаксис изменился за эти годы, но простота всё так же сохранена.
Репо - https://github.com/mortdeus/legacy-cc
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 std::ssize
👉 Новости 👉 База вопросов
std::ssize возвращает знаковый размер контейнера. Это полезно при итерации, когда нужно безопасно использовать индексы в виде int, а не size_t, особенно в циклах с отрицательными смещениями или сравнением с -1.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1