Please open Telegram to view this post
VIEW IN TELEGRAM
Недавно прошла трансляция «.NET Data Community Standup» , на которой эксперты обсудили ключевые подходы и инструменты для оптимизации работы с данными в .NET.
🔉 Что обсудили?
• Рассказали, как эффективно управлять контекстами данных в .NET.
• Обсуждали оптимизацию ресурсов, улучшение производительности приложений и типичные случаи использования пуллинга.
• Объяснили, как использовать необработанные SQL-запросы в Entity Framework.
• Разобрали, когда FromSql может быть полезен, а когда его лучше избегать.
• Показали, как предварительная компиляция запросов снижает накладные расходы.
• Поделились примерами, где скомпилированные запросы позволяют ускорить повторное выполнение запросов.
Please open Telegram to view this post
VIEW IN TELEGRAM
С Новым годом и Годом Змеи! 🐍 Пусть этот год принесет вам успех, рост и меньше усилий для достижения больших целей. Мы в Proglib Academy пришли с хорошими новостями в начале года.
🌟 Обновления курсов!
Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили:
📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств.
Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики.
🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры.
Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования
Общие обновления:
- Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки.
- Сократили время проверки домашних заданий, ответы теперь приходят быстрее.
- Видео теперь без перекрытий, презентации стали четче, а задания логичнее.
Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас!
💡 С 27.01.25 цены изменятся на 10%.
Пример: Математика для DS (Базовый): 20,990 → 23,090 ₽. Это позволяет нам делать курсы еще круче.
Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀
Выбрать курс
🌟 Обновления курсов!
Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили:
📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств.
Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики.
🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры.
Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования
Общие обновления:
- Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки.
- Сократили время проверки домашних заданий, ответы теперь приходят быстрее.
- Видео теперь без перекрытий, презентации стали четче, а задания логичнее.
Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас!
💡 С 27.01.25 цены изменятся на 10%.
Пример: Математика для DS (Базовый): 20,990 → 23,090 ₽. Это позволяет нам делать курсы еще круче.
Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀
Выбрать курс
⚡️ Автоматическая регистрация зависимостей в C#
Scrutor — это библиотека для упрощения регистрации зависимостей в контейнере инверсии управления (IoC) Microsoft.Extensions.DependencyInjection. Она позволяет автоматически сканировать сборки и регистрировать классы по заданным правилам, избавляя от необходимости вручную прописывать каждую зависимость.
💻 Пример использования
С помощью Scrutor можно зарегистрировать все классы в сборке, реализующие интерфейсы, в несколько строк:
💡 Основные возможности
• Автоматическая регистрация классов.
• Фильтрация классов по правилам (например, по имени или пространству имён).
• Настройка времени жизни (Transient, Scoped, Singleton).
• Регистрация классов с пользовательскими интерфейсами или без них.
📎 GitHub библиотеки
🐸 Библиотека шарписта
Scrutor — это библиотека для упрощения регистрации зависимостей в контейнере инверсии управления (IoC) Microsoft.Extensions.DependencyInjection. Она позволяет автоматически сканировать сборки и регистрировать классы по заданным правилам, избавляя от необходимости вручную прописывать каждую зависимость.
💻 Пример использования
С помощью Scrutor можно зарегистрировать все классы в сборке, реализующие интерфейсы, в несколько строк:
services.Scan(scan => scan
.FromAssemblyOf<Startup>() // Сканирование текущей сборки
.AddClasses() // Добавление всех классов
.AsImplementedInterfaces() // Регистрация их как интерфейсов
.WithScopedLifetime()); // Установка времени жизни
• Автоматическая регистрация классов.
• Фильтрация классов по правилам (например, по имени или пространству имён).
• Настройка времени жизни (Transient, Scoped, Singleton).
• Регистрация классов с пользовательскими интерфейсами или без них.
Please open Telegram to view this post
VIEW IN TELEGRAM
Есть идеи для пет-проектов? А может уже что-то делаете? Поделитесь своими задумками с сообществом! 👇 Ведь это субботний #интерактив!
Не стесняйтесь делиться своими идеями и прогрессом в их реализации. Мы уверены, что среди вас много талантливых разработчиков, которые могут создать что-то уникальное и интересное.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Meadow v2: что изменилось
Команда Wilderness Labs выпустила долгожданную Meadow v2 — крупное обновление платформы для разработки IoT-устройств на базе .NET! 🚀 Если вы занимаетесь созданием умных устройств или встраиваемых систем, этот релиз точно заслуживает вашего внимания. Давайте разберем, что нового:
➡️ Meadow v2 получил серьезные улучшения в работе операционной системы, что повышает стабильность и производительность устройств.
➡️ Добавлены новые API для работы с периферией, сенсорами и другими компонентами, что упрощает разработку сложных IoT-решений.
➡️ Теперь Meadow лучше работает с различными аппаратными компонентами, что расширяет возможности для создания уникальных устройств.
➡️ Множество багов и проблем, обнаруженных в предыдущих версиях, были устранены, что делает платформу более надежной.
➡️ Wilderness Labs постарались улучшить документацию, чтобы разработчикам было проще начать работу с платформой.
📎 Полный список изменений доступен на официальной странице релиза
🐸 Библиотека шарписта #новость
Команда Wilderness Labs выпустила долгожданную Meadow v2 — крупное обновление платформы для разработки IoT-устройств на базе .NET! 🚀 Если вы занимаетесь созданием умных устройств или встраиваемых систем, этот релиз точно заслуживает вашего внимания. Давайте разберем, что нового:
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы работаете с F#, то наверняка слышали о пайпах (pipes). Это инструмент языка, который помогает писать код в стиле "конвейера", делая код читаемым и выразительным. Давайте разберем, как они работают и зачем их использовать.
❓Что такое пайпы?
Пайпы — это операторы, которые передают результат одной функции в качестве входного аргумента другой. В F# есть два оператора:
Пример:
let add x y = x + y
let multiplyBy2 x = x * 2
// Без пайпа
let result1 = multiplyBy2 (add 3 4) // 3 + 4 = 7, затем 7 * 2 = 14
// С пайпом
let result2 = add 3 4 |> multiplyBy2 // То же самое, но более читаемо
Пример:
let result = multiplyBy2 <| add 3 4 // То же, что и multiplyBy2 (add 3 4)
3. Зачем использовать пайпы?
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы собираем данные о том, какие методы биохакинга действительно помогают разрабам улучшить качество жизни и повысить продуктивность. Поделитесь своим опытом — это поможет другим сделать осознанный выбор в мире биохакинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие методы отслеживания здоровья вы используете?
Anonymous Poll
32%
🔄 Фитнес-трекер/умные часы
11%
📱 Приложения для трекинга здоровья
9%
📊 Регулярные анализы крови
6%
🌡 Измерение температуры тела
30%
⚖️ Только вес на весах
44%
🤷♂️ Не отслеживаю показатели
Какие методы улучшения сна вы используете?
Anonymous Poll
16%
😴 Блокировка синего света вечером
17%
🌙 Строгий режим сна
13%
🌡 Оптимальная температура в спальне
9%
💊 Мелатонин
6%
🍵 Травяные чаи для сна
6%
📱 Трекинг фаз сна
58%
🤷♂️ Никакие
Какие нетрадиционные методы оптимизации здоровья вы пробовали?
Anonymous Poll
10%
🧠 Ноотропы
8%
🥗 Интервальное голодание
6%
🦠 Пробиотики/ферментированные продукты
2%
🌿 Микродозинг
1%
🤖 Биохакерские гаджеты
80%
❌ Не пробовал(а) ничего из перечисленного
3%
📈 Другое (уточните в комментариях)
Сколько времени вы уделяете биохакингу ежедневно?
Anonymous Poll
6%
⏰ Менее 30 минут
2%
⏱️ 30-60 минут
1%
⌚️ 1-2 часа
1%
📅 Более 2 часов
91%
🤷♂️ Не уделяю времени специально
Какой эффект вы заметили от практик биохакинга?
Anonymous Poll
6%
💪 Повышение энергии
8%
🧠 Улучшение концентрации
7%
😴 Лучшее качество сна
8%
😊 Улучшение настроения
7%
🏃♂️ Повышение физической формы
75%
🤷♂️ Не заметил(а) эффекта
13%
📈 Другое (уточните в комментариях)
Какую сумму вы тратите на биохакинг ежемесячно?
Anonymous Poll
7%
💰 До 5000 руб.
1%
💸 5000-15000 руб.
0%
🏦 15000-30000 руб.
2%
💎 Более 30000 руб.
89%
0️⃣ Не трачу деньги на это
Please open Telegram to view this post
VIEW IN TELEGRAM
🆚 Microsoft vs JetBrains: Битва гигантов за сердца разработчиков
В мире разработки ПО разгорается война — на этот раз между Microsoft и JetBrains! Обе компании в один день представили обновления с искусственным интеллектом для своих инструментов:
➡️ Microsoft: GitHub Copilot теперь бесплатен в Visual Studio
Бесплатный доступ к GitHub Copilot для всех пользователей Visual Studio. Никаких подписок или кредитных карт — только аккаунт GitHub.
💡 Особенности:
• Продвинутые AI-модели для генерации кода
• Редактирование нескольких файлов за раз
• Умный чат, авто-коммиты и улучшенная отладка.
➡️ JetBrains: Junie — ваш личный AI-агент в IDE
Что умеет Junie?
• Делегируйте рутину: генерация кода, тесты, проверка стиля — всё на авторежиме.
• 53.6% задач решает с первого запуска (данные SWEBench).
• Адаптируется под ваш стиль: анализирует проект и учится у вас.
• Полный контроль: все изменения можно проверить и поправить вручную.
Пока Junie доступен только через лист ожидания для IntelliJ, PyCharm и других IDE.
📌 Подробности в блоге Microsoft и JetBrains
🐸 Библиотека шарписта
В мире разработки ПО разгорается война — на этот раз между Microsoft и JetBrains! Обе компании в один день представили обновления с искусственным интеллектом для своих инструментов:
Бесплатный доступ к GitHub Copilot для всех пользователей Visual Studio. Никаких подписок или кредитных карт — только аккаунт GitHub.
💡 Особенности:
• Продвинутые AI-модели для генерации кода
• Редактирование нескольких файлов за раз
• Умный чат, авто-коммиты и улучшенная отладка.
Что умеет Junie?
• Делегируйте рутину: генерация кода, тесты, проверка стиля — всё на авторежиме.
• 53.6% задач решает с первого запуска (данные SWEBench).
• Адаптируется под ваш стиль: анализирует проект и учится у вас.
• Полный контроль: все изменения можно проверить и поправить вручную.
Пока Junie доступен только через лист ожидания для IntelliJ, PyCharm и других IDE.
Please open Telegram to view this post
VIEW IN TELEGRAM
🛑 10 антипаттернов в C#, которые тормозят ваше приложение (и как их исправить)
Производительность — это не только про оптимизацию сложных алгоритмов. Часто проблемы кроются в мелочах: лишние аллокации, блокировки потоков или неэффективные запросы к базе данных. Эти ошибки могут оставаться незамеченными, пока приложение не начнёт «тормозить» под нагрузкой.
1️⃣ Лишние аллокации объектов
Проблема: частое создание временных объектов нагружает сборщик мусора, что приводит к паузам в работе приложения.
Решение:
• Используйте пулы объектов (ArrayPool, MemoryPool) для переиспользования памяти.
• Для небольших данных применяйте struct вместо class.
2️⃣ Блокировка асинхронного кода
Проблема: Использование .Result или .Wait() блокирует текущий поток, что может привести к дедлокам, особенно в UI-приложениях.
Решение:
• Цепочка async/await должна идти от начала до конца.
• В библиотечных методах используйте .ConfigureAwait(false).
Пример:
3️⃣ Неэффективные запросы к БД
Проблема:
• N+1 запросы в ORM (например, Entity Framework).
• Отсутствие индексов или выборка лишних данных.
Решение:
• Используйте .Include() для жадной загрузки связанных данных.
• Применяйте пагинацию (Skip/Take) и индексы.
➡️ Эти 3 антипаттерна — частые «узкие места». Проверьте их в своём коде, а остальные 7 примеров смотрите в статье
Производительность — это не только про оптимизацию сложных алгоритмов. Часто проблемы кроются в мелочах: лишние аллокации, блокировки потоков или неэффективные запросы к базе данных. Эти ошибки могут оставаться незамеченными, пока приложение не начнёт «тормозить» под нагрузкой.
Проблема: частое создание временных объектов нагружает сборщик мусора, что приводит к паузам в работе приложения.
Решение:
• Используйте пулы объектов (ArrayPool, MemoryPool) для переиспользования памяти.
• Для небольших данных применяйте struct вместо class.
// Плохо: аллокация на каждый вызов
var buffer = new byte[1024];
// Лучше: переиспользуем память
var pool = MemoryPool<byte>.Shared;
using (var owner = pool.Rent(1024))
{
var buffer = owner.Memory;
// Работа с буфером
}
Проблема: Использование .Result или .Wait() блокирует текущий поток, что может привести к дедлокам, особенно в UI-приложениях.
Решение:
• Цепочка async/await должна идти от начала до конца.
• В библиотечных методах используйте .ConfigureAwait(false).
Пример:
// Плохо: блокировка потока
public string GetData() => FetchDataAsync().Result;
// Лучше: полная асинхронность
public async Task<string> GetDataAsync() => await FetchDataAsync();
Проблема:
• N+1 запросы в ORM (например, Entity Framework).
• Отсутствие индексов или выборка лишних данных.
Решение:
• Используйте .Include() для жадной загрузки связанных данных.
• Применяйте пагинацию (Skip/Take) и индексы.
// Плохо: N+1 запросов
var orders = context.Orders.ToList();
foreach (var order in orders)
{
var customer = context.Customers.Find(order.CustomerId);
}
// Лучше: один запрос с JOIN
var orders = context.Orders.Include(o => o.Customer).ToList();
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📔Microsoft открывает исходный код DocumentDB: новый стандарт для NoSQL баз данных на основе PostgreSQL
23 января 2025 года Microsoft объявила о выпуске DocumentDB — открытой платформы для документоориентированных баз данных, которая лежит в основе Azure Cosmos DB для MongoDB на базе vCore.
Этот шаг стал важным моментом в мире open source, предлагая разработчикам новый стандарт для NoSQL баз данных, построенный на мощном движке PostgreSQL.
Основные компоненты DocumentDB
➖ pg_documentdb_core — кастомное расширение PostgreSQL, оптимизированное для работы с BSON (Binary JSON). Оно поддерживает:
• Индексацию полей (включая составные и геопространственные индексы).
• Векторный поиск для задач, связанных с искусственным интеллектом, рекомендательными системами и обработкой естественного языка.
• Аутентификацию SCRAM.
➖ pg_documentdb_api — слой данных, реализующий CRUD-операции, запросы и управление индексами.
🐳 Как начать использовать DocumentDB
1. Установите Docker.
2. Клонируйте репозиторий DocumentDB:
3. Создайте Docker-образ и запустите контейнер:
4. Соберите и установите бинарные файлы:
5. Запустите сервер DocumentDB:
6. Подключитесь к серверу через psql:
📎 Официальный анонс
🐸 Библиотека шарписта #новость
23 января 2025 года Microsoft объявила о выпуске DocumentDB — открытой платформы для документоориентированных баз данных, которая лежит в основе Azure Cosmos DB для MongoDB на базе vCore.
Этот шаг стал важным моментом в мире open source, предлагая разработчикам новый стандарт для NoSQL баз данных, построенный на мощном движке PostgreSQL.
Основные компоненты DocumentDB
• Индексацию полей (включая составные и геопространственные индексы).
• Векторный поиск для задач, связанных с искусственным интеллектом, рекомендательными системами и обработкой естественного языка.
• Аутентификацию SCRAM.
🐳 Как начать использовать DocumentDB
1. Установите Docker.
2. Клонируйте репозиторий DocumentDB:
git clone https://github.com/microsoft/documentdb.git
3. Создайте Docker-образ и запустите контейнер:
docker build . -f .devcontainer/Dockerfile -t documentdb
docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash
4. Соберите и установите бинарные файлы:
cd code
make
sudo make install
5. Запустите сервер DocumentDB:
./scripts/start_oss_server.sh -t documentdb
6. Подключитесь к серверу через psql:
psql -p 9712 -h localhost -d postgres
Please open Telegram to view this post
VIEW IN TELEGRAM
😂 Dev Memes: утренние дилеммы, правки и зарплаты
Третья неделя года позади, а мы всё ещё смеёмся над мемами. Ловите подборку лучших шуток из нашего канала «Библиотека IT-мемов».
🔗 Подборка самых топовых мемов
Третья неделя года позади, а мы всё ещё смеёмся над мемами. Ловите подборку лучших шуток из нашего канала «Библиотека IT-мемов».
🔗 Подборка самых топовых мемов