Вот еще один полноценный многопоточный 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
This media is not supported in your browser
VIEW IN TELEGRAM
Парень написал осциллограф в реальном времени на C, используя OpenGL (GLUT) для рендера графики и PortAudio для захвата стерео-аудио в реальном времени, с измерениями триггера, RMS и Vpp.
Он отображает сигналы CH1/CH2 на сетке с регулировкой по времени и напряжению, а сглаживание реализовано через min-max линии.
👉 Новости 👉 База вопросов
Он отображает сигналы CH1/CH2 на сетке с регулировкой по времени и напряжению, а сглаживание реализовано через min-max линии.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
😵💫 Как работает указатель в C
Создаётся переменная var со значением 10. Допустим, она лежит по адресу
Мы создаём указатель ptr, который хранит адрес переменной var.
Когда пишем
Теперь у нас есть указатель на указатель — pptr. Он хранит адрес ptr.
Когда пишем
👉 Новости 👉 База вопросов
int var = 10;
Создаётся переменная var со значением 10. Допустим, она лежит по адресу
#2008int *ptr = &var;
*ptr = 20;
Мы создаём указатель ptr, который хранит адрес переменной var.
Когда пишем
*ptr = 20;, мы разыменовываем указатель и записываем в var число 20. Теперь var = 20int **pptr = &ptr;
**pptr = 30;
Теперь у нас есть указатель на указатель — pptr. Он хранит адрес ptr.
Когда пишем
**pptr = 30;, мы дважды разыменовываем и меняем значение переменной var через цепочку указателей. Теперь var = 30Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
#Собес #mongoDB
🤔 Что такое оператор Spush в MongoDB и как он работает?
💬 Кратко:
Оператор
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Оператор
$push в MongoDB используется для добавления элементов в массив в документе. Он добавляет указанное значение или значения в конец массива. Пример использования:db.collectionName.update(f_id: Objectid("documentId") }, { $push: { fieldName: valueToPush } })📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Один разработчик рассказал, что на днях написал токенайзер и парсер для C, чтобы автоматизировать генерацию кода в своём игровом движке.
По его словам, когда работа будет завершена, он сможет автоматически получать type-safe сериализаторы, runtime reflection и многое другое.
Разработчик также отметил, что его подход «в 100 раз мощнее, чем шаблоны в C++»
👉 Новости 👉 База вопросов
По его словам, когда работа будет завершена, он сможет автоматически получать type-safe сериализаторы, runtime reflection и многое другое.
Разработчик также отметил, что его подход «в 100 раз мощнее, чем шаблоны в C++»
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Минималистичный JSON-парсер на C появился в опенсорсе. Автор реализовал его на основе конечного автомата, без зависимостей и рекурсии.
Инструмент позиционируется как учебный проект для тех, кто хочет разобраться, как работают конечные автоматы на практике. Хороший старт для начинающих разработчиков системного софта.
https://github.com/segfaultscribe/systems-repository/tree/main/json-parser
👉 Новости 👉 База вопросов
Инструмент позиционируется как учебный проект для тех, кто хочет разобраться, как работают конечные автоматы на практике. Хороший старт для начинающих разработчиков системного софта.
https://github.com/segfaultscribe/systems-repository/tree/main/json-parser
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес #mongoDB
🤔 Как выполнить поиск без учета регистра в MongoDB?
💬 Кратко:
Для поиска без учета регистра в MongoDB используется оператор
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для поиска без учета регистра в MongoDB используется оператор
$regex в сочетании с опцией $options, установленной в "i". Это позволяет искать значения, игнорируя различия между заглавными и строчными буквами. Пример запроса: db.collectionName.find({ field: { $regex: "searchTerm", $options: "i" } })📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥄 Залетела ностальгия — Gravity Defied вернулся
Культовый мототриал из эпохи кнопочных телефонов теперь портирован на C++. Атмосфера и физика оригинала сохранены, но проект фанатский, к старым разработчикам отношения не имеет.
Можно снова поиграть в легенду, но уже на современном железе.
Github
👉 Новости 👉 База вопросов
Культовый мототриал из эпохи кнопочных телефонов теперь портирован на C++. Атмосфера и физика оригинала сохранены, но проект фанатский, к старым разработчикам отношения не имеет.
Можно снова поиграть в легенду, но уже на современном железе.
Github
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Уникальные указатели в C -- исследование
Изучаем, как реализовать паттерны уникальных указателей в C, чтобы повысить безопасность работы с памятью, эффективно управлять ресурсами и предотвращать утечки памяти в ваших программах.
👉 Новости 👉 База вопросов
Изучаем, как реализовать паттерны уникальных указателей в C, чтобы повысить безопасность работы с памятью, эффективно управлять ресурсами и предотвращать утечки памяти в ваших программах.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
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). Вторичные узлы копируют данные с основного и могут использоваться для чтения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Репликация в 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
👉 Новости 👉 База вопросов
Библиотека сохраняет 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
👉 Новости 👉 База вопросов
Agent-C — это ультралегкий AI-агент, который взаимодействует с OpenRouter API и выполняет команды оболочки. Он оптимизирован для работы на macOS и Linux, обеспечивая минимальный размер бинарников и эффективное управление памятью.
Основные моменты:
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Как выполнить поиск с использованием регулярных выражений в 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
👉 Новости 👉 База вопросов
PEP (Prediction-Encoded Pixels) — это формат, оптимизированный для сжатия изображений с низким количеством цветов (до 16). Он использует алгоритм "Prediction by Partial Matching, Order-2", обеспечивая меньший размер файлов по сравнению с GIF и PNG, хотя и с некоторыми затратами по времени обработки. Идеален для игр и приложений, где важен размер изображения.
Основные моменты:
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 пулями одновременно. И это не просто столкновения «пуля-враг» — система учитывает и разделение врагов между собой, чтобы они не накладывались друг на друга.
Внутри используется пространственная сетка для оптимизации вычислений. При этом автор отмечает, что оптимизации ещё не закончены, даже рендер-каллинг пока не реализован. Похоже, потенциал движка ещё далеко не исчерпан.
👉 Новости 👉 База вопросов
Разработчик поделился своей свежей работой -> движок справляется с 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% более «безопасным».
Проект
👉 Новости 👉 База вопросов
Внутри устройства оказался микроконтроллер 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