📓 Записки программера
1.02K subscribers
304 photos
1 video
6 files
599 links
Канал с регулярными постами о разных интересных материалах (статьи, видео, фреймворки и полезные инструменты).

https://dotnet.social/@denisio
Download Telegram
Наконец-то в Orleans завезли resource optimized placement strategy - можно написать кастомный strategy placement провайдер и orleans будет знать/раскидывать в правильном объеме грейны по silo.

upd: мда, нормально проект с redis clustering/membership с предыдущей 8.0.0 не апдейтица - всё развалилось из-за keyed services в Redis membership провайдере. Ладна, подождём пока починят.

upd2: localhost clustering работает (проверил IAsyncEnumerable - работает годно :)
#dotnet
This media is not supported in your browser
VIEW IN TELEGRAM
Какая интересная штука, которую я прямо таки щас трогаю на предмет использования в бизнес-целях - https://www.danswer.ai - self-hosted (бесплатно) или cloud (платно), подключается OpenAI или Azure/AWS - но самое главное - целый вагон разных коннекторов, которые могут забирать данные начиная "из текстовых файлов" до Slack/Confluence/Google Drive/Github/Gitlab/... (их там больше 15 штук).

Содержит встроенный токенизатор и full-text поиск (под капотом есть Postgres, возможно используется его FTS, но это неточно - я ещё не лазил в базу)

Без каких либо проблем поднимается локально в докере одной командой (12-16 ГБ RAM), имеет свою вебморду с поиском и чятом по твоим документам. Единственное, что меня насторожило - это долгая индексация документов. Я загрузил два текстовых файла, суммарно 2 МБ plain text и индексация заняла 20 МИНУТ и 2-3 ядра. Но надо поиграться с настройками, возможно там где-то какая-то дичь стоит.

Также пока не очень понятно насколько эта штука хорошо умеет суммировать/агрегировать юзерские данные. Ну тоесть конкретно мой кейс - это дать дамп базы в каких-то вариантах, чтобы юзеры могли писать "топ 10 кастомеров 2023 года по суммам ордеров" и получить список или типа того.
#ai
🔥6
Попался тут на глаза System Design for Interviews and Beyond и ютуб автора курса - чел явно не натив (подумал я), а потом нашёл его linkedin и твиттер в свойствах ютуб канала. Посмотрел несколько видео фрагментарно - хорошо объясняет и картинки норм #howto
Прикольная штука с демкой для съема метрик. Надо попробовать. #tools
🔥4
Статья про IAsyncEnumerable, но на очень неудачном примере - использование IQueryable. На мой взгляд сочетание IAsyncEnumerable и IQueryable - это категорический антипаттерн, благодаря которому по коду непредсказуемо расползается lifetime коннекшена и db datareader, который потребляет открытое соединение. Плюс сайд-эффекты, когда например у тебя в контексте http request используется scoped db context, и при обработке твоего результата async enumerable в итераторе снаружи какой-то потребитель захочет сделать запрос в БД (для чего-нибудь) - и будет удивлён, потому что ридер в коннекшене ещё открыт и занят вычитыванием данных. #dotnet
👍6
А вот другой пример, который вполне подходит для демонстрации IAsyncEnumerable, потому что с Channel<T> это работает норм и никаких сайд-эффектов не вызывает #dotnet
🔥6👍4
Статья 2022го года, но интересная до сих пор:
Optimizing TCP for high WAN throughput while preserving low latency
Не уверен, что это применимо прямо таки к каждому собственному хосту, но интересен процесс тестирования и графики зависимости latency и размера tcp window.
Простой мануал NGINX Ingress with the .NET Core Microservices and Kubernetes - с примером простого приложения, докерфайлами и вот этим всем. #howto #kubernetes
1👍1🤯1
Наконец-то релизнули Aspire, можно пробовать.
Выглядит интересно, но до сих пор даже не трогал потому что все пакеты были prerelease. #dotnet
👍2🔥2
TurboMqtt is a high-speed Message Queue Telemetry Transport (MQTT) client designed to support large-scale IOT workloads, handling over 100k msg/s from any MQTT 3.1.1+ broker.

Что интересно написан поверх akka.net и akka.streams. #dotnet
👍1
Ещё одна замена Postman и Insomnia - опенсурсный Bruno (github)

Тоже кроссплатформ и даже через choco ставица может, выглядит традиционно для таких инструментов. Имеет возможность писать тесты и что самое главное - можно руками написать запрос(ы) / хидеры и остальное (а не только через UI). #tools
👍10
Вы знали, что в Windows 11 есть sandbox'овая винда? Я как-то видел в program & components пункт Windows Sandbox, но не придал особого значения, а тут наткнулся и решил попробовать.

И да, после shutdown этой sandbox винды - всё внутри сносица и новый старт = новая винда. В принципе удобно что-то может быть подозрительное проверить :) #tools
👍15🔥2
Чел сделал очередной инструмент - dotnet-fullgc, который может триггернуть сборку мусора в процессе. В статье вкратце написано как этот инструмент работает. Зачем - пока неясно, но инструмент есть :)) #dotnet #tools
🤔3
Ещё одна штука, которая позволяет делать примерно то, что было в посте выше. Требуется рассмотрение и тесты. Жаль конечно, что примеры в основном на питоне. #llm #ai
👍3
Наблюдаю как растёт и ширица раздел samples/demos на github в Microsoft Semantic kernel репозитории.

Вспомнил об этом, когда наткнулся на статью Use Semantic Kernel to create a Restaurant Bookings Sample with Python. После быстрого поиска нашлась аналогичная статья Use Semantic Kernel to create a Restaurant Bookings Sample with .NET (примеров пока нет, но думаю это временно).

Ну и must read статья How to Get Started using Semantic Kernel .NET - в которой много чего интересного - функции, плагины, фильтрация и т.д.

В ближайшее время буду тщательно изучать на предмет завернуть AI уже в бизнес-целях. #ai #dotnet
👍2
Docker profiles - удобная фича, которая позволяет более гибко использовать один и тот же docker-compose файл, но с разными комплектами сервисов (например).

Если на пальцах - каждый сервис может содержать список профилей, в которые он включается. Потом делаешь

docker compose --profile with-db build


и оно билдит (или стартует если up) только те сервисы, в которых упомянут профиль with-db или не упомянуто профилей вообще. #docker #tools
👍7
Mastering Caching in Distributed Applications - статья про кэширование в распределенных приложениях (Write-through, write-around, write-back, read-through), за и против каждого метода #howto #architecture
🔥2
c# Message queue with Redis - message queue на минималках :) Хз правда для чего это может понадобица в проде (не стал бы делать такое), но знать про эту фичу Redis неплохо (да, у него есть pub/sub очередь) #redis
🔥2