#полезное
😊 level-ip
Это минималистичный стек IPv4/TCP/UDP, написанный на C, который можно разобрать по винтикам и понять, как устроены сети на низком уровне
Раньше, для этого приходилось либо читать гигабайты исходников Linux, либо писать всё с нуля.
Теперь просто берёшь level-ip, и у тебя в руках чистый, компактный стек, который легко модифицировать, изучать и даже встраивать в свои проекты.
👉 Новости 👉 База вопросов
Это минималистичный стек IPv4/TCP/UDP, написанный на C, который можно разобрать по винтикам и понять, как устроены сети на низком уровне
Раньше, для этого приходилось либо читать гигабайты исходников Linux, либо писать всё с нуля.
Теперь просто берёшь level-ip, и у тебя в руках чистый, компактный стек, который легко модифицировать, изучать и даже встраивать в свои проекты.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Нашёл тут курс по Game Engine
🟠 Game Engine hardCORE серии. Promo
🟠 Сборка C++ проектов. Препроцессинг.
🟠 Сборка C++ проектов. Компиляция. Ассемблер. Теория.
🟠 Сборка C++ проектов. Оптимизации компилятора. Inline, constexpr, alignment.
🟠 Сборка C++ проектов. Linker. Forward declaration.
🟠 Сборка C++ проектов. Static/dynamic libraries. PCH. Unity (JUMBO) build.
Источник
👉 Новости 👉 База вопросов
Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Примитивная модель процессора для программиста.
Так я представляю себе архитектуру процессора при написании кода на C или Assembly.
В подавляющем большинстве случаев эта модель оказывается достаточной и практичной.
🟠 Процессор состоит из АЛУ (арифметико-логического устройства), блока управления и файла регистров. Это базовые компоненты, обеспечивающие выполнение команд.
🟠 Я опираюсь на модель Load/Store, согласно которой все операции с памятью происходят через регистры: данные сначала загружаются в регистровый файл, затем модифицируются и только после этого записываются обратно в память.
🟠 Взаимодействие CPU с памятью и периферийными устройствами осуществляется через адресную и шину данных. Доступ к данным или управлению периферией возможен посредством обращения к соответствующим адресам.
👉 Новости 👉 База вопросов
Так я представляю себе архитектуру процессора при написании кода на C или Assembly.
В подавляющем большинстве случаев эта модель оказывается достаточной и практичной.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое перегрузка операторов в C++?
Перегрузка операторов в С++ позволяет операторам, таким как +, -, *, работать с пользовательскими типами данных. Это делает код более выразительным и позволяет применять стандартные операторы к объектам классов.
👉 Новости 👉 Платформа
Перегрузка операторов в С++ позволяет операторам, таким как +, -, *, работать с пользовательскими типами данных. Это делает код более выразительным и позволяет применять стандартные операторы к объектам классов.
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😎 Reverse Engineering x86 & C
Если всегда хотел понять, как работает код под капотом, разбирать бинарники и дизассемблировать программы — это идеальный старт!
Что внутри:
🟠 Как компилятор превращает C-код в ассемблер
🟠 Основы x86: регистры, инструкции, стек, вызовы функций
🟠 Разбор бинарников, дизассемблирование, отладка в GDB
Статья разжёвывает сложные вещи простым языком, так что даже новичкам будет понятно!
👉 Новости 👉 База вопросов
Если всегда хотел понять, как работает код под капотом, разбирать бинарники и дизассемблировать программы — это идеальный старт!
Что внутри:
Статья разжёвывает сложные вещи простым языком, так что даже новичкам будет понятно!
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Ripes — визуальный эмулятор процессора
Если хочешь разобраться, как работает процессор на низком уровне, загляни на Ripes
Это интерактивный эмулятор, который наглядно показывает выполнение инструкций, работу конвейера и кэша.
Можно шаг за шагом отслеживать, как команды проходят через стадии выборки, декодирования, исполнения, доступа к памяти и записи результатов.
👉 Новости 👉 База вопросов
Если хочешь разобраться, как работает процессор на низком уровне, загляни на Ripes
Это интерактивный эмулятор, который наглядно показывает выполнение инструкций, работу конвейера и кэша.
Можно шаг за шагом отслеживать, как команды проходят через стадии выборки, декодирования, исполнения, доступа к памяти и записи результатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
::sample
std::experimental::sample (C++17) позволяет случайным образом выбрать элементы из контейнера без необходимости перемешивания всей последовательности. Это удобно для случайной выборки данных в эффективном режиме.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Что такое шаблон в С++?
Шаблон в С++ позволяет создавать обобщённые функции и классы, которые могут работать с различными типами данных. Шаблоны делают код более универсальным и повторно используемым.
👉 Новости 👉 База вопросов
Шаблон в С++ позволяет создавать обобщённые функции и классы, которые могут работать с различными типами данных. Шаблоны делают код более универсальным и повторно используемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
#полезное
😇 Работать с файлами в C — это основа, без которой не обойтись, если хочешь сохранять данные.
Работа с файлами в C позволяет создавать, открывать, читать, записывать и закрывать файлы с помощью таких функций, как
Тут всё просто:
👉 Новости 👉 База вопросов
Работа с файлами в C позволяет создавать, открывать, читать, записывать и закрывать файлы с помощью таких функций, как
fopen(), fclose(), fread(), fwrite() и fprintf(). Тут всё просто:
fopen() — открытие файла в нужном режимеfwrite() / fprintf() — запись данныхfread() / fscanf() — чтение данныхfclose() — закрытие файлаPlease open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 8 алгоритмов балансировки нагрузки, которые стоит знать
1⃣ Round Robin – запросы распределяются равномерно между серверами по очереди.
2⃣ Least Connections – запрос направляется на сервер с наименьшим числом активных соединений.
3⃣ Weighted Round Robin – серверам присваиваются веса, и запросы распределяются с учетом этих весов.
4⃣ Weighted Least Connections – учитывается как число соединений, так и вес сервера.
5⃣ IP Hash - запрос направляется на сервер в зависимости от хэша IP-адреса клиента.
6⃣ Least Response Time – запрос идет на сервер с наименьшим временем ответа.
7⃣ Random – сервер выбирается случайным образом.
8⃣ Least Bandwidth – запрос идет на сервер с наименьшей текущей загрузкой сети.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
🤓 Самый быстрый способ обнулить память
Перестаньте использовать циклы для очистки массивов —
🟠 Использует низкоуровневые инструкции процессора для массовых операций
🟠 Оптимизируется компиляторами с помощью SIMD и векторизации
🟠 Уменьшает накладные расходы циклов, улучшая производительность
Идеально для инициализации массивов, очистки буферов и оптимизации критически важного кода!
👉 Новости 👉 База вопросов
Перестаньте использовать циклы для очистки массивов —
memset гораздо быстрее!Идеально для инициализации массивов, очистки буферов и оптимизации критически важного кода!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Что такое тип возвращаемого значения функции В С++?
Тип возвращаемого значения функции в С++ указывается перед её именем и определяет, какой тип данных функция будет возвращать. Это может быть любой тип данных, включая встроенные (например,
👉 Новости 👉 База вопросов
Тип возвращаемого значения функции в С++ указывается перед её именем и определяет, какой тип данных функция будет возвращать. Это может быть любой тип данных, включая встроенные (например,
int, float ) и пользовательские типы (например, классы).Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
😊 В языке C вы можете присваивать значение от
Иногда я хочу, чтобы мой код на C компилировался в компиляторе C++, и для этого использую этот макрос, чтобы код работал и там, и там, даже если тип указателя анонимный. В языке C он ничего не делает.
👉 Новости 👉 База вопросов
void* к любому другому указателю, но не в C++.Иногда я хочу, чтобы мой код на C компилировался в компиляторе C++, и для этого использую этот макрос, чтобы код работал и там, и там, даже если тип указателя анонимный. В языке C он ничего не делает.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
#полезное
🤯 std::destroy_at()
👉 Новости 👉 База вопросов
std::destroy_at() (C++17) вручную вызывает деструктор объекта без освобождения памяти. Это полезно при использовании нестандартных аллокаторов или ручном управлении памятью.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
👍 GLIM — это гибкая и расширяемая платформа для 3D картографирования на основе дальномерных данных!
✅ Она обеспечивает высокую точность за счет минимизации ошибок при регистрации нескольких сканов с использованием факторных графов, что позволяет сохранять согласованность результатов картографирования. Поддерживается ускорение с помощью GPU для максимизации скорости и качества построения карт.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Как передаются аргументы функции в С++?
В С++ аргументы могут быть переданы в функцию по значению или по ссылке. При передаче по значению создаются копии значений, и изменения внутри функции не затрагивают оригинальные данные. При передаче по ссылке передается адрес памяти аргумента, что позволяет функции изменять оригинальные значения.
👉 Новости 👉 База вопросов
В С++ аргументы могут быть переданы в функцию по значению или по ссылке. При передаче по значению создаются копии значений, и изменения внутри функции не затрагивают оригинальные данные. При передаче по ссылке передается адрес памяти аргумента, что позволяет функции изменять оригинальные значения.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1👍1
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Проект — написание брандмауэра для Linux на C с нуля
В этом проекте по кибербезопасности вы изучите множество сетевых технологий, узнаете, как работает интернет-трафик, и научитесь использовать это в своем коде на C. Также вы освоите такие вещи, как сырые сокеты, режим прослушивания (promiscuous mode), netlink и UNIX-доменные сокеты.
📱 Источник
👉 Новости 👉 База вопросов
В этом проекте по кибербезопасности вы изучите множество сетевых технологий, узнаете, как работает интернет-трафик, и научитесь использовать это в своем коде на C. Также вы освоите такие вещи, как сырые сокеты, режим прослушивания (promiscuous mode), netlink и UNIX-доменные сокеты.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
😐 Утечки памяти и отладка с помощью Valgrind
Valgrind – это инструмент для отладки и профилирования, который помогает находить:
🟠 Утечки памяти
🟠 Неправильное использование выделенной памяти. Например, выход за границы массива
🟠 Использование неинициализированных переменных
После запуска Valgrind выведет отчёт, в котором укажет, где программа выделила, но не освободила память
Пример утечки и исправления
Утечка:
Освобождение памяти
👉 Новости 👉 База вопросов
Valgrind – это инструмент для отладки и профилирования, который помогает находить:
valgrind --leak-check=full ./my_program
После запуска Valgrind выведет отчёт, в котором укажет, где программа выделила, но не освободила память
Пример утечки и исправления
Утечка:
int *arr = malloc(10 * sizeof(int));
Освобождение памяти
int *arr = malloc(10 * sizeof(int));
free(arr);
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
😐 Книга "Practical Binary Analysis" от Денниса Андрисека — для тех, кто хочет залезть под капот бинарников и разобраться, как реально работает анализ исполняемых файлов на практике.
Это гайд по реверс-инжинирингу, анализу уязвимостей, и low-level хакингу, но через практику. С фокусом на бинарники, дизассемблирование, символьное исполнение, и даже немного эксплойтов. Всё с реальными примерами и кодом.
Ознакомиться
👉 Новости 👉 База вопросов
Это гайд по реверс-инжинирингу, анализу уязвимостей, и low-level хакингу, но через практику. С фокусом на бинарники, дизассемблирование, символьное исполнение, и даже немного эксплойтов. Всё с реальными примерами и кодом.
Ознакомиться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Что такое коллекция в MongoDB?
Коллекция в MongoDB - это группа документов, связанных между собой по смыслу. В отличие от таблиц в реляционных базах данных, коллекции не имеют жесткой схемы, что позволяет хранить документы с разной структурой в одной коллекции.
👉 Новости 👉 База вопросов
Коллекция в MongoDB - это группа документов, связанных между собой по смыслу. В отличие от таблиц в реляционных базах данных, коллекции не имеют жесткой схемы, что позволяет хранить документы с разной структурой в одной коллекции.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1