Forwarded from C++ библиотека
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥1
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Forwarded from C++ Academy
This media is not supported in your browser
VIEW IN TELEGRAM
@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2
Модули в C:
• Статья подробно описывает, как модули заменяют традиционные заголовочные файлы, уменьшая зависимость и ускоряя компиляцию.
Роль forward declarations:
• Объясняется, зачем нужны предварительные объявления в C, и как их использование меняется с появлением модулей.
Переход к модульности:
• Обсуждаются методы интеграции модулей в существующие проекты и способы решения возникающих проблем.
Практические рекомендации:
• Приводятся конкретные примеры и советы по оптимизации кода с помощью модулей и forward declarations, что делает статью полезным ресурсом для разработчиков.
Статья помогает понять, как современные технологии модульности могут повысить качество и производительность программ на C.
📌 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡4👍3❤2🤮2🔥1
🚀 "PagingTagHelper" на mostlylucid.net рассказывает о создании и использовании собственного PagingTagHelper для ASP.NET Core.
▪ Цель статьи: объяснить, как реализовать механизм пагинации в веб-приложениях с помощью tag helper-ов.
▪ Ключевые моменты:
• Разбор принципов работы tag helper-ов в ASP.NET Core.
• Пошаговое создание кастомного PagingTagHelper, который генерирует HTML-разметку для навигации по страницам.
• Примеры кода и объяснения параметров, позволяющих настраивать внешний вид и функциональность пагинации.
▪ Полезность:
• Помогает разработчикам быстро интегрировать удобную пагинацию в свои проекты.
• Обеспечивает более гибкое и кастомное управление навигацией по большим наборам данных.
Статья будет полезна всем, кто хочет улучшить пользовательский интерфейс своего ASP.NET Core приложения с помощью собственных решений для пагинации.
📌 Читать
▪ Цель статьи: объяснить, как реализовать механизм пагинации в веб-приложениях с помощью tag helper-ов.
▪ Ключевые моменты:
• Разбор принципов работы tag helper-ов в ASP.NET Core.
• Пошаговое создание кастомного PagingTagHelper, который генерирует HTML-разметку для навигации по страницам.
• Примеры кода и объяснения параметров, позволяющих настраивать внешний вид и функциональность пагинации.
▪ Полезность:
• Помогает разработчикам быстро интегрировать удобную пагинацию в свои проекты.
• Обеспечивает более гибкое и кастомное управление навигацией по большим наборам данных.
Статья будет полезна всем, кто хочет улучшить пользовательский интерфейс своего ASP.NET Core приложения с помощью собственных решений для пагинации.
📌 Читать
👍3❤2
Forwarded from Machinelearning
🎯 Суть проекта
Это эксперимент по обучению с подкреплением (Reinforcement Learning, RL), где агент учится играть в крестики-нолики (Tic-Tac-Toe) без использования сложных алгоритмов на чистом С.
Основная цель — продемонстрировать, как классические методы RL справляются с простыми играми.
🔥 Чем интересен?
Минимализм и простота
▪ Весь код написан на чистом C (~400 строк).
▪ Нет зависимостей — только стандартная библиотека.
▪ Идеален для изучения основ RL «с нуля».
Классический подход к RL
▪ Используется метод Temporal Difference (TD) Learnin
▪ Агент обучается через игру (self-play) и обновляет стратегию на основе наград.
Образовательная ценность
▪ Понятная визуализация процесса обучения (таблицы Q-значений).
▪ Пример того, как простая задача помогает понять фундамент RL.
Эффективность
▪ После обучения агент играет почти оптимально, избегая поражений.
▪ Код легко модифицировать для экспериментов (например, изменить размер доски).
📊 Как это работает?
Q-таблица хранит «ценность» каждого действия в конкретном состоянии.
Агент выбирает ход на основе текущих Q-значений (с добавлением случайности для исследования).
P.S. Если вы думаете, что RL — это только про AlphaGo и Dota 2, этот проект покажет, что даже в простых задачах есть глубина! 🧠
▪ Github
@ai_machinelearning_big_data
#rl #ml #ai #tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥1👌1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡3🤔2
⚡️ «Stop Conflating CQRS and MediatR» от Milan Jovanovic Tech развеивает миф о том, что CQRS и MediatR — одно и то же.
Вот основные моменты:
▪ CQRS – архитектурный паттерн: Разделяет операции чтения и записи, позволяя оптимизировать модели для разных задач.
▪ MediatR – инструмент посредника: Обеспечивает централизованное взаимодействие компонентов, но не заменяет принципы CQRS.
▪ Часто вместе, но не всегда: Совмещение MediatR с CQRS может добавить лишнюю сложность там, где достаточно простого решения.
▪ Главное: Выбирайте инструменты, исходя из потребностей проекта, а не следуйте модным шаблонам.
Подробнее: Stop Conflating CQRS and MediatR
@cpluscsharp
Вот основные моменты:
▪ CQRS – архитектурный паттерн: Разделяет операции чтения и записи, позволяя оптимизировать модели для разных задач.
▪ MediatR – инструмент посредника: Обеспечивает централизованное взаимодействие компонентов, но не заменяет принципы CQRS.
▪ Часто вместе, но не всегда: Совмещение MediatR с CQRS может добавить лишнюю сложность там, где достаточно простого решения.
▪ Главное: Выбирайте инструменты, исходя из потребностей проекта, а не следуйте модным шаблонам.
Подробнее: Stop Conflating CQRS and MediatR
@cpluscsharp
👍5❤3
🔥 Awesome на GitHub
Это курируемые подборки ресурсов (книг, статей, инструментов, библиотек и многое другое) по конкретным темам, созданные сообществом разработчиков и энтузиастов.
Собрали подборку лучших из них. Сохраняйте, чтобы не потерять
• C: awesome-c
• C++: awesome-cpp
• C#: awesome-dotnet
• Хакинг: https://github.com/Hack-with-Github/Awesome-Hacking
• Информационная безопасность: awesome-security
• Базы данных: awesome-database-learning
• JavaScript: awesome-javascript
• React: awesome-react
• Vue: awesome-vue
• Angular: awesome-angular
• Node.js: awesome-nodes
• Typescript: awesome-typescript
• Java: awesome-java
• Go: awesome-go
• Ruby: awesome-ruby
• PHP: awesome-php
• Kotlin: awesome-kotlin
• Rust: awesome-rust
• Swift: awesome-swift
• iOS-разработка: awesome-ios
• Android-разработка: awesome-android
• Unreal Engine: awesome-unreal
• Unity: awesome-unity3d
• Python: awesome-python
• Django: awesome-django
• Data Science: awesome-datascience
• TensorFlow: awesome-tensorflow
• Linux: Awesome-Linux-Software
• DevOps: awesome-devops
• SysAdmins: awesome-sysadmin
• Nginx: awesome-nginx
• Kubernetes: awesome-kubernetes
• Docker: awesome-docker
• Автоматизация сетевой инфраструктуры: awesome-network-automation
• QA: awesome-testing
@cpluscsharp
Это курируемые подборки ресурсов (книг, статей, инструментов, библиотек и многое другое) по конкретным темам, созданные сообществом разработчиков и энтузиастов.
Собрали подборку лучших из них. Сохраняйте, чтобы не потерять
• C: awesome-c
• C++: awesome-cpp
• C#: awesome-dotnet
• Хакинг: https://github.com/Hack-with-Github/Awesome-Hacking
• Информационная безопасность: awesome-security
• Базы данных: awesome-database-learning
• JavaScript: awesome-javascript
• React: awesome-react
• Vue: awesome-vue
• Angular: awesome-angular
• Node.js: awesome-nodes
• Typescript: awesome-typescript
• Java: awesome-java
• Go: awesome-go
• Ruby: awesome-ruby
• PHP: awesome-php
• Kotlin: awesome-kotlin
• Rust: awesome-rust
• Swift: awesome-swift
• iOS-разработка: awesome-ios
• Android-разработка: awesome-android
• Unreal Engine: awesome-unreal
• Unity: awesome-unity3d
• Python: awesome-python
• Django: awesome-django
• Data Science: awesome-datascience
• TensorFlow: awesome-tensorflow
• Linux: Awesome-Linux-Software
• DevOps: awesome-devops
• SysAdmins: awesome-sysadmin
• Nginx: awesome-nginx
• Kubernetes: awesome-kubernetes
• Docker: awesome-docker
• Автоматизация сетевой инфраструктуры: awesome-network-automation
• QA: awesome-testing
@cpluscsharp
❤5👍3🔥3
⚡️ Статья Джоша Карателли "The forgotten art of Struct Packing in C/C++" посвящена оптимизации структуры данных в языках программирования C и C++ путём правильного упорядочивания членов структур для минимизации их размера.
Josh Caratelli - Game Programmer
Основные моменты статьи:
Проблема выравнивания и паддинга: Компьютеры читают и записывают данные из памяти блоками определённого размера (например, 16 байт). Чтобы обеспечить корректный доступ к данным, компиляторы автоматически добавляют дополнительные байты (паддинг) для выравнивания данных. Это может привести к тому, что структуры занимают больше памяти, чем необходимо.
Josh Caratelli - Game Programmer
Оптимизация порядка членов структуры: Располагая члены структуры от наибольшего к наименьшему по размеру, можно уменьшить или устранить паддинг. Поскольку структура выравнивается по размеру её самого большого члена, такое упорядочивание помогает минимизировать общий размер структуры.
Josh Caratelli - Game Programmer
Практический пример: Два примера структур с одинаковыми членами, но разным порядком их расположения, демонстрируют, что правильное упорядочивание может уменьшить размер структуры на 8 байт.
Josh Caratelli - Game Programmer
Инструменты для анализа паддинга: Для просмотра добавленного компилятором паддинга можно использовать опцию командной строки /d1reportSingleClassLayoutXXX в Visual Studio, где XXX — имя вашей структуры.
Josh Caratelli - Game Programmer
Предостережения: Хотя упаковка структур может сэкономить память, иногда небольшое увеличение размера структуры оправдано, если это улучшает производительность во время выполнения программы. Например, часто используемые члены структуры можно разместить в начале для ускорения доступа к ним.
Josh Caratelli - Game Programmer
Джош подчёркивает, что, хотя такие микрооптимизации полезны, приоритет следует отдавать разработке эффективных алгоритмов. Он также отмечает, что данная тема часто упускается из виду в курсах компьютерных наук, и призывает разработчиков учитывать её в своей практике.
🔗 Читать
@cpluscsharp
Josh Caratelli - Game Programmer
Основные моменты статьи:
Проблема выравнивания и паддинга: Компьютеры читают и записывают данные из памяти блоками определённого размера (например, 16 байт). Чтобы обеспечить корректный доступ к данным, компиляторы автоматически добавляют дополнительные байты (паддинг) для выравнивания данных. Это может привести к тому, что структуры занимают больше памяти, чем необходимо.
Josh Caratelli - Game Programmer
Оптимизация порядка членов структуры: Располагая члены структуры от наибольшего к наименьшему по размеру, можно уменьшить или устранить паддинг. Поскольку структура выравнивается по размеру её самого большого члена, такое упорядочивание помогает минимизировать общий размер структуры.
Josh Caratelli - Game Programmer
Практический пример: Два примера структур с одинаковыми членами, но разным порядком их расположения, демонстрируют, что правильное упорядочивание может уменьшить размер структуры на 8 байт.
Josh Caratelli - Game Programmer
Инструменты для анализа паддинга: Для просмотра добавленного компилятором паддинга можно использовать опцию командной строки /d1reportSingleClassLayoutXXX в Visual Studio, где XXX — имя вашей структуры.
Josh Caratelli - Game Programmer
Предостережения: Хотя упаковка структур может сэкономить память, иногда небольшое увеличение размера структуры оправдано, если это улучшает производительность во время выполнения программы. Например, часто используемые члены структуры можно разместить в начале для ускорения доступа к ним.
Josh Caratelli - Game Programmer
Джош подчёркивает, что, хотя такие микрооптимизации полезны, приоритет следует отдавать разработке эффективных алгоритмов. Он также отмечает, что данная тема часто упускается из виду в курсах компьютерных наук, и призывает разработчиков учитывать её в своей практике.
🔗 Читать
@cpluscsharp
👍4🔥4
🚀 .NET 10 Preview 3 уже доступен!
Новая версия приносит мощное обновление для C# — Extension Members:
💡 Теперь можно добавлять в static class расширения не только методов, но и:
▪ 🔹 Статические методы
▪ 🔹 Инстанс-свойства
▪ 🔹 Статические свойства
📦 Это значит, что вы можете "расширять" поведение типов не только логикой, но и дополнительными данными и даже стейтфул-логикой (через свойства).
И всё это — без изменения исходного класса.
🔗 Подробнее:
https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview3/csharp.md#extension-members
#dotnet #csharp #dotnet10 #devtools #preview
@csharp_ci
Новая версия приносит мощное обновление для C# — Extension Members:
💡 Теперь можно добавлять в static class расширения не только методов, но и:
▪ 🔹 Статические методы
▪ 🔹 Инстанс-свойства
▪ 🔹 Статические свойства
📦 Это значит, что вы можете "расширять" поведение типов не только логикой, но и дополнительными данными и даже стейтфул-логикой (через свойства).
И всё это — без изменения исходного класса.
🔗 Подробнее:
https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview3/csharp.md#extension-members
#dotnet #csharp #dotnet10 #devtools #preview
@csharp_ci
❤6👍3
📖 asmbook — мягкое введение в программирование на ассемблере для ARM. Для разработчиков, пишущих на C/C++, но желающих разобраться в низкоуровневых особенностях процессоров, проект предлагает практическое руководство по ассемблеру ARMv8.
В руководстве есть множество практических примеров: от работы с базовыми командами до анимации частиц в терминале. Проект подойдёт как для самостоятельного изучения, так и для академических курсов по компьютерной архитектуре.
🔗 GitHub
@cpluspluc
В руководстве есть множество практических примеров: от работы с базовыми командами до анимации частиц в терминале. Проект подойдёт как для самостоятельного изучения, так и для академических курсов по компьютерной архитектуре.
🔗 GitHub
@cpluspluc
❤3👍1🔥1
@cpluscsharp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1