Библиотека С# С++
10.2K subscribers
186 photos
13 videos
179 files
191 links
https://t.me/+WgGTjeH0p1NjMDFi - ссылка на канал
По всем вопросам- @workakkk

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci- C# академия

@pythonlbooks- python книги📚

РКН: clck.ru/3Fmvsw
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
DOOM запустили… в наушниках. И да - на них реально можно играть 😱

Один энтузиаст портировал легендарный Doom на PineBuds Pro. Почему именно они?

Потому что это одни из немногих наушников с open-source прошивкой, плюс внутри стоит достаточно бодрый чип, чтобы после пары хардкорных модификаций вытянуть игру аж на 18 FPS.

Но самое безумное даже не это.

У наушников, внезапно, нет экрана. Поэтому разработчик пошёл ещё дальше и сделал сайт Doombuds, через который можно удалённо подключиться к наушникам и играть в Doom прямо из браузера.

Да, ты буквально играешь в шутер, который крутится внутри гарнитуры у тебя в ушах.
Понедельник для продуктивности явно отменяется.

Если уровень безумия у тебя достаточный и хочется повторить этот подвиг - весь код открыт и лежит на GitHub : https://github.com/arin-s/DOOMBuds
5👍5🔥4
⚡️ Масштабирование до 1 000 000 пользователей - практичный подход с PostgreSQL

Автор работал над системой, которая выросла с нуля до более чем миллиона пользователей. Без сложных модных архитектур на старте и без преждевременного оверинжиниринга. Только последовательная эволюция под реальные нагрузки.

В начале всё было максимально просто:

Одно приложение - одна база данных.
И этого было достаточно.

Проблемы появились не в коде. Узким местом стала база данных. Архитектура развивалась шаг за шагом, решая конкретные проблемы по мере их появления.

1️⃣ Старт - один основной инстанс
Использовался один primary-инстанс PostgreSQL. Минимум инфраструктуры, низкие расходы и полный фокус на продукте.

Главная мысль этого этапа - не строить "архитектуру уровня Netflix" для проекта с десятками пользователей.

2️⃣ Разделение чтений - Read Replicas
Когда резко вырос read-трафик:

- Primary обрабатывал только записи
- Реплики обрабатывали SELECT-запросы
- Балансировщик распределял чтения

Кодовая база почти не менялась - менялась маршрутизация трафика.

Результат - база перестала быть узким местом из-за чтений.

3️⃣ Проблема соединений - добавление pgBouncer
При росте числа пользователей упёрлись не в CPU, а в количество соединений.

Каждое соединение к базе - это память и ресурсы. Тысячи коннектов начали "душить" систему.

Решение - connection pooling через pgBouncer:

- Меньше реальных соединений к БД
- Выше пропускная способность
- Меньше сбоев под нагрузкой

4️⃣ Масштабирование через кэш
Чтобы выдержать 1M+ пользователей, стало критично не обращаться к базе за каждым запросом.

Добавили Redis как слой кэширования:

- Часто используемые данные отдавались из кэша
- База перестала быть единственной точкой нагрузки
- Задержки заметно снизились

Именно на этом этапе начинается настоящее масштабирование.

Главный урок

На каждом этапе решалась текущая проблема, а не гипотетическая задача будущего.

| Проблема | Решение |
|---------|---------|
| Много чтений | Read Replicas |
| Слишком много соединений | Пул соединений |
| База перегружена запросами | Кэш |
| Сложная инфраструктура | Не добавлялась без реальной необходимости
|

Приложение существует, чтобы поддерживать бизнес.
Если бизнес-модель не работает, никакое масштабирование не спасёт.

Масштабирование - это не про технологии ради технологий.
Это про внедрение решений в тот момент, когда они действительно нужны.

milanjovanovic.tech/blog/scaling-monoliths-a-practical-guide-for-growing-systems
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4🥰1
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇

🖥 ИИ: t.me/ai_machinelearning_big_data

🖥 Python: t.me/pythonl

🖥 Linux: t.me/linuxacademiya

🖥 C++ t.me/cpluspluc

🖥 Docker: t.me/DevopsDocker

🖥 Хакинг: t.me/linuxkalii

🖥 Devops: t.me/DevOPSitsec

👣 Golang: t.me/Golang_google

🖥 Аналитика: t.me/data_analysis_ml

🖥 Javascript: t.me/javascriptv

🖥 C#: t.me/csharp_ci

🖥 Java: t.me/javatg

🖥 Базы данных: t.me/sqlhub

👣 Rust: t.me/rust_code

🤖 Технологии: t.me/machineint

💰 Экономика и инвестиции в ИИ t.me/financeStable

💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi

🖥 Chatgpt бот в тг: t.me/Chatgpturbobot

📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy

🖥Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi

⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy

Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Как сделать defer в C через cleanup-паттерн

В Go есть `defer`. В C - нет. Но это не значит, что нельзя получить тот же эффект.

Главная проблема в C - ресурсы:
- забыли закрыть файл
- не освободили память
- не закрыли сокет
- утечки и баги в error-path

Хитрый приём - использовать единый блок очистки через `goto cleanup`. Это самый надёжный способ имитировать defer в C.

Идея:
- ресурсы выделяются по шагам
- при ошибке — переход в cleanup
- в конце — освобождаем всё в одном месте

Так код становится безопаснее и проще для поддержки.

Пример:


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

int process_file(const char* path) {
FILE* file = NULL;
char* buffer = NULL;
int result = -1;

file = fopen(path, "r");
if (!file) goto cleanup;

buffer = malloc(1024);
if (!buffer) goto cleanup;

// работа с файлом
fread(buffer, 1, 1024, file);

result = 0; // успех

cleanup:
if (buffer) free(buffer);
if (file) fclose(file);
return result;
}

Почему это хороший паттерн:
- нет дублирования освобождения ресурсов
- все error-path’ы безопасны
- легко добавлять новые ресурсы
- стандартная практика в системном C (ядро Linux использует тот же подход)

Главная идея: в C «defer» — это дисциплина структуры кода.

https://antonz.org/defer-in-c/
4👍3
🛠️ Утилита вывода для C++ на Windows

WCout предлагает простой и последовательный способ форматирования текста и чисел в C++ с использованием единого синтаксиса. Он поддерживает вывод в буфер обмена, мемо и строки, а также использует стандартные Win32 API для работы в любых Windows IDE. Удобный синтаксис позволяет легко различать команды и пользовательские данные.

🚀 Основные моменты:
- Единый синтаксис << / >> для форматирования и вывода
- Поддержка диалоговых функций с несколькими параметрами
- Нет необходимости в сторонних библиотеках
- Легко интегрируется в проекты через .cpp и .h файлы
- Полная документация с примерами доступна в PDF

📌 GitHub: https://github.com/pinardmichel14-sudo/WCoutSrc

#cpp
6
🧩 Эффективная реализация строк в C++20

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

🚀 Основные моменты:
- Поддержка SSO и COW для оптимизации памяти.
- Настраиваемый размер для малых строк.
- Совместимость с различными кодировками.
- Планы по добавлению поддержки Unicode.
- Оптимизирован для 64-битных платформ.

📌 GitHub: https://github.com/Mjz86/String

#cpp
4👍3
😁115❤‍🔥1😢1
Языки программирования и их инструкции импорта

🐍 Python - import module
Java - import package.Class;
C - #include <stdio.h>
🛠️ C++ - #include <iostream>
🌐 JavaScript - import module from "module"
🛠️ C# - using Namespace;
🐹 Go - import "package"
🦀 Rust - use crate::module;
🐘 PHP - require "file.php";
💎 Ruby - require "library"
🐪 Kotlin - import package.Class
🍎 Swift - import Module
🔷 TypeScript - import {x} from "module"
🧮 R - library(package)
🐚 Bash - source file.sh
🧱 Dart - import 'package:lib/lib.dart';
🎯 Scala - import package.Class
🐼 Groovy - import package.Class
🧠 Julia - using Module
🔧 Assembly (x86 Linux) - %include "file.inc"

🐍 Python полезные ресурсы 🚀Max

@pythonl
8👍1
🚀 Высокопроизводительный парсер FastParseX

FastParseX — это мощный C++ парсер для CSV, логов и бинарных данных, оптимизированный для высокой пропускной способности и минимальных затрат. Идеально подходит для интеграции в ресурсоемкие пайплайны данных.

🚀 Основные моменты:
- Поддержка параллельного парсинга и многопоточности
- Модули для CSV, логов и бинарных данных
- Поддержка экспорта в Arrow и Parquet
- Высокая производительность до 8 ГБ/с для параллельного парсинга
- Встроенные инструменты профилирования и статистики

📌 GitHub: https://github.com/FastParseX-dev/FastParseX

#cpp
6
This media is not supported in your browser
VIEW IN TELEGRAM
FTXUI

Простая кроссплатформенная библиотека C++ для пользовательских интерфейсов на базе терминала!

• Функциональный стиль
• Простой и элегантный синтаксис
• Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши
• Поддержка UTF8
• Поддержка анимации
• Поддержка рисования
• Нет зависимостей
• Кроссплатформенность: Linux/MacOS, WebAssembly, Windows


https://github.com/ArthurSonzogni/FTXUI
6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀

В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀

Идея казалась безумной, но спортивный интерес взял верх. 💪

https://github.com/VadimBoev/FlappyBird

#cpp #programming
3👏3🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
QML и Widgets в одном проекте: решение без костылей

Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор между Qt Widgets и Qt Quick для создания интерфейса. У каждого подхода свои плюсы и минусы. Qt как гибкий фреймворк позволяет комбинировать их разными способами, а выбор способа интеграции этих API зависит от того, чего вы хотите добиться. В этой статье я покажу, как отображать окна Qt Widgets в приложении, написанном преимущественно на Qt Quick.

https://www.kdab.com/display-widget-windows-in-qt-quick-applications/
🧩 Коллекция пользовательских аллокаторов на C++

oo-alloc предлагает набор специализированных аллокаторов для C++, оптимизированных под разные сценарии использования. Каждый аллокатор имеет свои особенности, влияющие на производительность, такие как временные сложности и накладные расходы. Выбор правильного аллокатора может значительно улучшить эффективность работы с памятью.

🚀Основные моменты:
- Поддержка различных типов аллокаторов: Arena, Stack, Pool и др.
- Оптимизация под разные паттерны доступа и жизненные циклы объектов.
- Простота использования с минимальными накладными расходами.

📌 GitHub: https://github.com/nihiL7331/oo-alloc

#cpp
3👍1
🖥 На Stepik обновили курс «C# с нуля до профи»

Представьте: через четыре месяца вы открываете чужой .NET-проект и читаете его как книгу.

IServiceCollection не вызывает ступора. async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.

Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.

ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.

Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1
Media is too big
VIEW IN TELEGRAM
Сборка C++ проектов. CMAKE. Game Engine серии

0:00:00 - Введение
0:01:32 - Пишем мини игру. FightClub
0:17:03 - MSBUILD
0:19:20 - Собственный build скрипт
0:26:52 - Build системы. Теория
0:34:17 - CMAKE
1:28:00 - Автоматизация CMAKE команд

источник
🔥32👍2
Как в MIT учат операционным системам

В MIT студентам дают готовое маленькое ядро xv6 и просят его дорабатывать.
Что такое xv6
:

Учебная версия Unix, всего ~6000 строк на C
Создана по мотивам Unix 1975 года, но переписана под современные процессоры
Внутри есть всё настоящее: процессы, системные вызовы, память, файловая система
Настолько компактна, что её можно прочитать целиком за выходные

Вместо чтения теории про ОС ты разбираешь и меняешь живой код ядра — и только так понимаешь, как операционные системы устроены на самом деле.

pdos.csail.mit.edu/6.828/2025/
🔥105👍4
📊 Минималистичная графовая база данных на C++17

TGDB — это простая графовая база данных, реализованная как статическая библиотека. Она поддерживает фиксированные узлы и индексные указатели, обеспечивая схему без схемы и работу с базовыми типами данных. База данных позволяет эффективно создавать и извлекать объекты с свойствами.

🚀Основные моменты:
- Унифицированный тип узла размером 56 байт.
- Поддержка встроенных типов: int, double, std::string.
- Двусторонние ссылки между узлами.
- Дисковая устойчивость через mmap.
- Быстрый локальный обход и глобальный поиск.

📌 GitHub: https://github.com/LincolnCox29/TrueGraphDataBase

#cpp
🔥32👍1
🖥 C# Roadmap: с нуля до профи

Практическое руководство по росту в C#-разработке. Материал собран для тех, кто хочет получить инженерную глубину, а не просто накликать CRUD по туториалам.

Здесь последовательность изучения, лучшие практики, ресурсы и трезвый разбор того, как работать с ИИ-инструментами и оставаться востребованным.

https://github.com/Develp10/Csharp_Roadmap/
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥1
C++ разработчики в 2ГИС

Сейчас открыто две вакансии в разные команды:
— Middle C++ Developer в команду Transport Core
Делаем транспортный движок 2ГИС: маршруты, графы, расчёты и highload-обработку данных.

Team Lead C++ в команду 3D Карты
Ищем сильного C++ разработчика на роль играющего тренера: часть времени — разработка, остальное — управление небольшой командой, техрешения и развитие процессов.
Важно: опыт именно в графике не обязателен. Если ты сильный плюсовик и хочешь попробовать себя в 3D-направлении — откликайся!

Что общего:
— современный C++
— сложные инженерные задачи
— большие объёмы данных
— сильные команды без лишней бюрократии
Можно удалённо

Вакансии:
Middle C++ Developer — Transport Core
Team Lead C++ — 3D Карты

Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
2👍1
⚡️ Machine Learning Roadmap 2025: большая карта входа в ML без сказок про “нейросети за месяц

Большой русскоязычный roadmap по машинному обучению: от первого import numpy до LLM, RAG, fine-tuning, AI-агентов и MLOps и даже вабкодинга.

Внутри нормальная структура: что учить, в каком порядке, зачем это нужно и что должно получиться на практике после каждого этапа.

Roadmap разбит на 7 треков:

1. Фундамент: Python, математика, статистика, инструменты
2. Классический ML: scikit-learn, табличные данные, метрики, валидация
3. Deep Learning: PyTorch, CNN, RNN, training loop
4. LLM и трансформеры: attention, KV-cache, RAG, LoRA, агенты
5. Generative AI: изображения, видео, аудио, мультимодальность
6. MLOps и прод: Docker, Kubernetes, CI/CD, monitoring, serving
7. Специализация: CV, NLP, RecSys, RL, Safety

Roadmap не продаёт иллюзию “обучил модель - стал ML-инженером”.

В реальной работе много времени уходит на данные, метрики, деплой, мониторинг, воспроизводимость и разбор ошибок. Модель - только часть системы.

Хорошая мысль из roadmap: LLM не делает джуна сеньором. Она ускоряет того, кто уже понимает базу. Без базы человек просто становится оператором Copilot, который не может объяснить, почему всё сломалось.

По времени тоже без сказок:

1. 0-3 месяца: Python, математика, классический ML
2. 3-6 месяцев: Deep Learning и PyTorch
3. 6-12 месяцев: LLM, RAG, fine-tuning, AI-агенты
4. 12+ месяцев: MLOps, прод, масштабирование, специализация

Тут же собрано 7 болших бесплатных курсов по машинному обучению, математике и вайбкодингу!

Если давно хотели зайти в ML системно, а не прыгать между роликами про ChatGPT, Stable Diffusion и “топ-10 библиотек”, это хороший ориентир.

https://github.com/justxor/MachineLearningRoadmap
Please open Telegram to view this post
VIEW IN TELEGRAM
1