#Собес #redis
🤔 Что такое Redis и для чего он используется?
Redis — это высокопроизводительное хранилище данных в оперативной памяти, поддерживающее различные структуры данных: строки, хэши, списки, множества и упорядоченные множества. Его используют для ускорения работы приложений в сценариях, требующих быстрой записи и чтения, таких как кэширование, управление сессиями, системы публикации и подписки, а также для создания рейтингов (leaderboards).
👉 Новости 👉 База вопросов
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
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
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-
👉 Новости 👉 База вопросов
Вот репозиторий на 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 , ВЫполните команду:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для создания индекса в 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 приложений.
👉 Новости 👉 База вопросов
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 можно удалить с помощью метода
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Коллекцию в 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/
👉 Новости 👉 База вопросов
https://mcyoung.xyz/2023/11/27/simd-base64/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🤯 Си без дженериков? Кто это сказал?
С помощью макросов можно сделать type-safe динамические массивы:
- Без
- Только макросы
Достаточно написать
Используй это, чтобы сделать свой собственный STL на C.
👉 Новости 👉 База вопросов
С помощью макросов можно сделать 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 - это коллекция с фиксированным размером. Когда размер коллекции достигает заданного лимита, она начинает перезаписывать старые документы новыми, как кольцевой буфер. Это подходит для ситуаций, где важны только последние данные. например, в логировании или кэшировании.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Коллекция с ограничением размера в MongoDB - это коллекция с фиксированным размером. Когда размер коллекции достигает заданного лимита, она начинает перезаписывать старые документы новыми, как кольцевой буфер. Это подходит для ситуаций, где важны только последние данные. например, в логировании или кэшировании.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😐 Big O
Чувак сделал визуальное введение в нотацию Big O: https://samwho.dev/big-o
С помощью Big O проще понять, как ведут себя алгоритмы, и найти кратные улучшения производительности за счёт очень простых изменений в коде.
👉 Новости 👉 База вопросов
Чувак сделал визуальное введение в нотацию Big O: https://samwho.dev/big-o
С помощью Big O проще понять, как ведут себя алгоритмы, и найти кратные улучшения производительности за счёт очень простых изменений в коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Визуализация 3-осевого движения в реальном времени с помощью Arduino и MPU6050
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #mongoDB
🤔 Объясните концепцию write concern в MongoDB.
💬 Кратко:
Write concern в MongoDB определяет, насколько уверенно клиент хочет быть в том, что операция записи (вставка, обновление, удаление) была выполнена успешно. Это настраиваемая величина, которая может варьироваться от минимальной уверенности до большинства узлов или всей системы.Ч
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Write concern в MongoDB определяет, насколько уверенно клиент хочет быть в том, что операция записи (вставка, обновление, удаление) была выполнена успешно. Это настраиваемая величина, которая может варьироваться от минимальной уверенности до большинства узлов или всей системы.Ч
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот еще один полноценный многопоточный HTTP/1.1 сервер на C с использованием POSIX-сокетов и pthreads. Он обрабатывает параллельные GET и POST запросы, парсит методы/пути/заголовки, отдает статические файлы из корневой директории с определением MIME-типа, имеет базовую защиту от обхода путей, возвращает коды ошибок (200/400/403/404/405/500) и работает на порту 8080.
Собрать можно так:
Тестировать удобно через браузер или curl — это хорошая база, которую можно развивать дальше.
Гитхаб
👉 Новости 👉 База вопросов
Собрать можно так:
gcc http_server.c -o http_server -lpthread
Тестировать удобно через браузер или curl — это хорошая база, которую можно развивать дальше.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1