Библиотека С# С++
10.5K subscribers
155 photos
8 videos
179 files
151 links
https://t.iss.one/+WgGTjeH0p1NjMDFi - ссылка на канал
По всем вопросам- @workakkk

@ai_machinelearning_big_data - Machine learning

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

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

@pythonlbooks- python книги📚

РКН: clck.ru/3Fmvsw
Download Telegram
🖥 В этой статье обсуждается использование библиотеки FakeLogger для упрощения тестирования логирования в .NET-приложениях!

🌟 Автор подробно описывает процесс установки FakeLogger и FluentAssertions, а также демонстрирует, как с их помощью можно эффективно тестировать функциональность логирования в приложениях на платформе .NET.

🔗 Ссылка: *клик*
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥1
🖥 В этой статье автор рассматривает использование делегирующих обработчиков для расширения функциональности HttpClient в ASP.NET Core!

🌟 Делегирующие обработчики позволяют внедрять дополнительное поведение при отправке HTTP-запросов, аналогично тому, как middleware обрабатывают входящие запросы.

🔗 Ссылка: *клик*

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3
🔥 ERD Lab — это бесплатный онлайн-инструмент, предназначенный для профессионального проектирования и визуализации баз данных с использованием диаграмм "сущность-связь" (ERD)! Он позволяет импортировать существующие SQL-скрипты или создавать новые базы данных без необходимости писать код, что упрощает процесс разработки и документирования структур данных.

🔗 Ссылка: *клик*

@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
🖥 ggwave — это компактная библиотека с открытым исходным кодом, позволяющая передавать небольшие объемы данных между устройствами через звуковые сигналы!

🌟 Она реализует протокол передачи данных, основанный на частотной манипуляции (FSK), что обеспечивает скорость передачи от 8 до 16 байт в секунду. Библиотека используется в различных приложениях, включая обмен файлами без сервера, взаимодействие с устройствами Интернета вещей и создание аудио QR-кодов.

🔐 Лицензия: MIT

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
C Sharp Succinctly

🔗 Ссылка: *клик*
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52
🖥 «C Modules and Forward Declarations» - статья о новейших возможностях модульной системы в языке C и в которой описано, как правильное использование forward declarations и улучшить организацию кода.

Модули в C:
  • Статья подробно описывает, как модули заменяют традиционные заголовочные файлы, уменьшая зависимость и ускоряя компиляцию.

Роль forward declarations:
  • Объясняется, зачем нужны предварительные объявления в C, и как их использование меняется с появлением модулей.

Переход к модульности:
  • Обсуждаются методы интеграции модулей в существующие проекты и способы решения возникающих проблем.

Практические рекомендации:
  • Приводятся конкретные примеры и советы по оптимизации кода с помощью модулей и forward declarations, что делает статью полезным ресурсом для разработчиков.

Статья помогает понять, как современные технологии модульности могут повысить качество и производительность программ на C.

📌 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡4👍32🤮2🔥1
🚀 "PagingTagHelper" на mostlylucid.net рассказывает о создании и использовании собственного PagingTagHelper для ASP.NET Core.

Цель статьи: объяснить, как реализовать механизм пагинации в веб-приложениях с помощью tag helper-ов.
Ключевые моменты:
  • Разбор принципов работы tag helper-ов в ASP.NET Core.
  • Пошаговое создание кастомного PagingTagHelper, который генерирует HTML-разметку для навигации по страницам.
  • Примеры кода и объяснения параметров, позволяющих настраивать внешний вид и функциональность пагинации.
Полезность:
  • Помогает разработчикам быстро интегрировать удобную пагинацию в свои проекты.
  • Обеспечивает более гибкое и кастомное управление навигацией по большим наборам данных.

Статья будет полезна всем, кто хочет улучшить пользовательский интерфейс своего ASP.NET Core приложения с помощью собственных решений для пагинации.

📌 Читать
👍32
Forwarded from Machinelearning
✔️ ttt-rl (Tic-Tac-Toe Reinforcement Learning)

🎯 Суть проекта
Это эксперимент по обучению с подкреплением (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
Thesis-Fedit.pdf
7.7 MB
Advanced Image Editor
2👍2
🖥 Эта статья объясняет, как использовать команду scp для передачи файлов между локальной и удаленной системами через SSH!

🌟 Автор предоставляет пошаговые инструкции по копированию файлов с локального компьютера на удаленный сервер и наоборот, а также рассматривает копирование нескольких файлов и каталогов. Кроме того, обсуждается использование команды rsync для тех же целей, подчеркивая ее преимущества в определенных сценариях.

🔗 Ссылка: *клик*
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
👍53
ЛУЧШАЯ шпаргалка по директориям Linux — всё четко разложено для новичков.

Здесь собраны основные папки файловой системы с простыми объяснениями.

Сохраните и не потеряйте.
👍143🔥2
🔥 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
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
👍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
6👍3
📖 asmbook — мягкое введение в программирование на ассемблере для ARM. Для разработчиков, пишущих на C/C++, но желающих разобраться в низкоуровневых особенностях процессоров, проект предлагает практическое руководство по ассемблеру ARMv8.

В руководстве есть множество практических примеров: от работы с базовыми командами до анимации частиц в терминале. Проект подойдёт как для самостоятельного изучения, так и для академических курсов по компьютерной архитектуре.

🔗 GitHub

@cpluspluc
3👍1🔥1
🖥 В этой статье обсуждается ситуация, когда применение оптимизаций компилятора приводит к изменению поведения программы! Автор подчеркивает, что если поведение программы меняется при использовании определенного уровня оптимизации, это часто указывает на наличие неопределенного поведения в коде.

💡 Автор объясняет, что компиляторы, следуя правилу "as-if" (как если бы), могут применять любые преобразования кода, при условии, что они не изменяют его наблюдаемое поведение. Однако, если в программе присутствует неопределенное поведение, компилятор может производить оптимизации, которые изменяют поведение программы, поскольку исходное поведение не было строго определено

🔗 Ссылка: *клик*

@cpluscsharp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🖥 Эта статья рассказывает о подходах к бенчмаркингу при тестировании C++ кода!

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

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
1