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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
2😈1
#полезное
👋 Релиз Sakura v1.0

Высокопроизводительная минималистичная (~1k строк кода) мультимедийная библиотека для терминала на C++, которая рендерит изображения, GIF-анимации и видео с использованием sixel-графики с синхронизированным воспроизведением аудио.

Sakura поддерживает все современные форматы: jpg, png, bmp, анимированные gif, mp4, avi, mov, mkv, с адаптивным масштабированием, продвинутой синхронизацией кадров и пропуском кадров для плавного воспроизведения.

Также поддерживается кастомная обработка изображений и пакетная обработка с читаемым лог-выводом.

Репозиторий: https://github.com/Sarthak2143/sakura

Добавлена подробная документация по архитектуре обработки видео и API-документация.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #redis
🤔 Что такое Redis и для чего он используется?

Redis — это высокопроизводительное хранилище данных в оперативной памяти, поддерживающее различные структуры данных: строки, хэши, списки, множества и упорядоченные множества. Его используют для ускорения работы приложений в сценариях, требующих быстрой записи и чтения, таких как кэширование, управление сессиями, системы публикации и подписки, а также для создания рейтингов (leaderboards).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🤯 Отлавливайте сегфолты во время выполнения на C

#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>

static void handle_sigsegv(int sig, siginfo_t *info, void *ucontext) {
(void)ucontext; // используем это, если нужно, иначе отключаем предупреждение компилятора

// Обрабатываем сегфолт здесь
// записываем несохраненные данные, логируем ошибки и т.д.
fprintf(stderr, "Сегфолт пойман по адресу %p, ваши данные сохранены!\n", info->si_addr);
exit(EXIT_FAILURE);
}

int main(void) {
struct sigaction sig_a = {
.sa_sigaction = handle_sigsegv, // указатель на функцию обработки нашего сегфолта
.sa_flags = SA_SIGINFO,
};

sigemptyset(&sig_a.sa_mask);

if (sigaction(SIGSEGV, &sig_a, NULL) == -1) {
perror("sigaction не удалась");
return 1;
}

printf("Этот код выполняется перед сегфолтом!\n");

// намеренно вызываем сегфолт
int *p = NULL;
*p = 1;

printf("Это не выполнится из-за сегфолта!\n");

return 0;
}


На фото ошибка: в условии sigaction надо сравнивать с «-1», а не с «1»

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Визуальное объяснение того, как работают LLM

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🏕 LSTM заставляли ИИ запоминать ещё до того, как трансформеры захватили сцену — вот 15-шаговое руководство для ручного разбора, которое можно прочитать по ссылке - https://byhand.ai/p/26-lstm

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #mongoDB
🤔 Что такое оператор SaddToSet в MongoDB и чем он отличается от Spush?

💬 Кратко:
Оператор $addToSet добавляет значение в массив, только если его нет в этом массиве, предотвращая дубли. В отличие от него, оператор $push добавляет элемент в массив без проверки на дубли.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Media is too big
VIEW IN TELEGRAM
GUI на C++ затягивает как ничто другое

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
1 миллиард итераций вложенного цикла

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😱 Реализация команды ping на C

🟠 Отправляет и принимает ICMP-пакеты
🟠 Считает RTT для каждого пакета в микросекундах
🟠 Считает потерю пакетов и другую статистику, как в оригинальной команде

Вот репозиторий на GitHub, если хочешь попробовать - https://github.com/EpicNerdGuy/Ping-in-C-

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #mongoDB
🤔 Как создать индекс в MongoDB?

💬 Кратко:
Для создания индекса в MongoDB используется метод createIndex() . Например, чтобы создать индекс дЛя поля myField в КОЛЛеКЦИИ mycollection , ВЫполните команду:
db.myCollection.createIndex({ myField: 1 }) 


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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
👋 Lock-Free Ring Buffer

Lock-free ring buffer позволяет организовать обмен данными с низкой задержкой и безопасный для потоков в многопоточных приложениях (например, в аудио или сетевых задачах). Эта реализация single-producer single-consumer (SPSC) использует атомики из C11 для конкурентного доступа без блокировок.

Такие lock-free структуры данных редко встречаются в туториалах по C, хотя они дают высокую производительность и низкую задержку, что особенно важно для real-time приложений.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #mongoDB
🤔 Как удалить коллекцию в MongoDB?

💬 Кратко:
Коллекцию в MongoDB можно удалить с помощью метода drop() . Например: db. collectionName.drop() удалит коллекцию с именем collectionName .

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Статья Мигеля «Проектирование SIMD-алгоритма с нуля» реально стоящая к прочтению

https://mcyoung.xyz/2023/11/27/simd-base64/

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🤯 Си без дженериков? Кто это сказал?

С помощью макросов можно сделать type-safe динамические массивы:

- Без void*, без кастов

- Только макросы

Достаточно написать #define vector(type)

Используй это, чтобы сделать свой собственный STL на C.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Бьярн Страуструп: «В C есть только типы данных, функции и всё».
C-программист: «Да».


Ограничения часто воспринимаются как сила.
Но где та граница, когда они уже начинают мешать?

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Что такое коллекция с ограничением размера (capped collection) в MongoDB и когда ее следует использовать?Что такое коллекция с ограничением размера (capped collection) в MongoDB и когда ее следует использовать?

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

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

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