C/C++ Development | YeaHub – Telegram
C/C++ Development | YeaHub
828 subscribers
228 photos
56 videos
1 file
378 links
Теория, подготовка к интервью и курсы для C/C++ разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Парень создал стильное решение уравнения Лапласа в 2D на C для отображения электрического потенциала

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Объясните концепцию репликации в MongoDB.

💬 Кратко:
Репликация в MongoDB позволяет создавать несколько копий данных на разных серверах, обеспечивая отказоустойчивость и повышенную доступность. Это достигается через использование репликационного набора (replica set), где один сервер выполняет роль основного (primary), а другие - вторичных (secondary). Вторичные узлы копируют данные с основного и могут использоваться для чтения.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Magic Enum — элегантная C++17 библиотека для работы с перечислениями, которая добавляет в них магию рефлексии. Без макросов и boilerplate-кода она позволяет легко преобразовывать enum в строки, проверять наличие значений и даже работать с битовыми флагами.

Библиотека сохраняет constexpr-контекст и поддерживает даже такие экзотические операции, как склейку enum-ов для многоуровневых switch-блоков. Хотя проект заточен под компактные перечисления, его уже используют в продакшене, например, для сериализации или валидации конфигов.
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
На картинке показана упрощённая карта памяти Win32-процесса. Если коротко, у каждого процесса в Windows есть своё виртуальное адресное пространство, и в нём всё чётко разложено по полочкам

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Легковесный AI-агент на C для командной строки

Agent-C — это ультралегкий AI-агент, который взаимодействует с OpenRouter API и выполняет команды оболочки. Он оптимизирован для работы на macOS и Linux, обеспечивая минимальный размер бинарников и эффективное управление памятью.

Основные моменты:
🔵 Выполнение команд оболочки через AI-ответы
🔵 Минимальный размер: 4.4KB для macOS, ~16KB для Linux
🔵 Эффективное управление памятью с помощью скользящего окна
🔵 Кроссплатформенная поддержка
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Как выполнить поиск с использованием регулярных выражений в MongoDB?

💬 Кратко:
Для выполнения поиска с использованием регулярных выражений в MongoDB используется оператор $regex . Он позволяет искать документы, соответствующие определенному паттерну.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
Джерри Кейн из Стэнфорда объясняет указатели и структуры в C, показывая хитрый способ доступа к полям структуры. Эта серия — один из лучших ресурсов по программированию на C в интернете.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
😘 Эффективная компрессия для пиксельного искусства

PEP (Prediction-Encoded Pixels) — это формат, оптимизированный для сжатия изображений с низким количеством цветов (до 16). Он использует алгоритм "Prediction by Partial Matching, Order-2", обеспечивая меньший размер файлов по сравнению с GIF и PNG, хотя и с некоторыми затратами по времени обработки. Идеален для игр и приложений, где важен размер изображения.

Основные моменты:
🟠 Сжатие до 50% меньше, чем у GIF/PNG.
🟠 Поддержка до 256 цветов.
🟠 Быстрая декомпрессия для использования в играх.
🟠 Экспериментальная версия, активно развивается.
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😜 Серия обучающих материалов по C, где разбираются ключевые концепции, используемые в языке программирования C
Источник: тык

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Объясните разницу между репликациями и шардингом в MongoDB

💬 Кратко:
Репликация используется для повышения доступности и резервного копирования данных. Она создает несколько копий данных на разных узлах, где один узел является основным, а остальные - вторичными. Шардинг же используется для горизонтального разделения данных на несколько серверов или шардов, что помогает увеличить масштабируемость и производительность системы.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 Новая демка на C и raylib впечатляет масштабом

Разработчик поделился своей свежей работой -> движок справляется с 100 000 врагами и 5 000 пулями одновременно. И это не просто столкновения «пуля-враг» — система учитывает и разделение врагов между собой, чтобы они не накладывались друг на друга.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
👨‍💻 Новый уровень хардкорных самоделок: энтузиаст запустил веб-сервер на… одноразовом вейпе.

Внутри устройства оказался микроконтроллер PUYA Cortex-M0+ с 24 КБ флеша и 3 КБ RAM. Автор подключил SLIP через semihosting, прикрутил uIP-стек и поднял минимальный HTTP-сервер.

Первые тесты выглядели как издевательство: пинг 1.5 секунды, страницы загружались по 20 секунд. Но после оптимизаций результаты впечатлили: около 20 мс на пинг и загрузка страницы за 160 мс.

Памяти хватает, чтобы держать небольшой блог и даже JSON-эндпоинт для статистики.

Получается, что одноразовый вейп может быть не только вредной привычкой, но и хостинг-решением — пусть и на 95% более «безопасным».
Проект

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Умный текстовый анализатор для обработки данных

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

Основные моменты:
🔵 Извлечение ключевых слов из текста
🔵 Анализ частоты слов и фраз
🔵 Поддержка различных форматов входных данных
🔵 Легкий в использовании интерфейс
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Что такое команды git reset -mixed и git merge - abort?

💬 Кратко:
git reset --mixed : отменяет изменения, которые были добавлены в индекс, но сохраняет изменения в рабочем каталоге.
git merge --abort : отменяет слияние, которое в данный момент находится в процессе, и возвращает репозиторий в состояние до начала слияния.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵‍💫 Web-сервер на микроконтроллере через SWD

Проект позволяет запускать веб-сервер на микроконтроллере, используя semihosting и TCP/IP. Он демонстрирует, как передавать данные через SWD, используя SLIP для сетевого взаимодействия, что делает его интересным решением для встраиваемых систем.

🚀Основные моменты:
- Запуск веб-сервера на ARM микроконтроллере через SWD.
- Использование SLIP для передачи данных по TCP/IP.
- Оптимизация производительности с минимальными затратами памяти.
- Поддержка различных ARM микроконтроллеров с pyOCD.
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Интерактивный 3D-инструмент Бенджамина Байкрофта визуализирует слои, веса и матричные операции LLM.

https://bbycroft.net/llm

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Что делает GPU быстрее, чем CPU?

Я только что дочитал главу 4 книги Programming Massively Parallel Processors. В ней пытаются ответить на этот вопрос. Вот мои заметки.

Подход к вычислениям в GPU принципиально отличается от CPU. GPU не состоит из одного процессора. Это массив высокопоточных процессоров, которые называются streaming multiprocessors (SM). Каждый SM имеет свои ядра, память, логику и так далее.

Наименьшая единица работы это thread. Потоки объединяются в block, а блоки в grid. Все потоки внутри блока выполняются на одном SM. Все блоки в SM должны синхронизироваться друг с другом чтобы избежать race conditions.

32 потока внутри блока образуют warp. Они работают по модели SIMD. Чтобы справляться с ситуацией control divergence, GPU выполняет разные пути исполнения по очереди. Например, если есть условие if-else, сначала активируются только те потоки, для которых условие истинно, затем потоки для ложного условия. Стоимость этого подхода в том, что на каждом проходе часть warps остаётся неактивной.

Вывод это то что высококачественный код для GPU это минимальная control divergence

Latency tolerance возникает, когда текущий warp ждёт операцию с большой задержкой. Планировщик не ждёт его, а может переключиться на другой warp, готовый к выполнению.

Это значит что Occupancy = активные warps на SM / общее количество warps, которое SM может поддерживать.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес #git
🤔 Как вы находите коммит, который что-то нарушил после операции слияния?

💬 Кратко:
Для поиска коммита, который нарушил код после слияния, можно использовать команду git bisect . Этот инструмент помогает найти коммит, который вызывает проблему, путем бинарного поиска.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 StructToTuple — библиотека C++ 20 для преобразования структур в кортежи и наоборот!
Github

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🏕 DOOM внутри базы данных SQL это реально

Разработчик запустил DOOM прямо в CedarDB, и игра полностью написана на SQL

Многопользовательский режим работает, а графика выполнена в ASCII, каждая деталь от рендеринга до синхронизации игроков реализована в базе данных

Для тех, кто ценит необычные проекты и готов погрузиться в SQL-экстрим: https://github.com/cedardb/DOOMQL

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🏠 Прикольный тренажёр по Linux

Это TUI-приложение содержит более 70 задачек для обучения основам работы в терминале
Забираем с GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1