Опция strict в csproj файле, которая чуть более закручивает гайки для компилятора на предмет сравнений, is/as и некоторых операций (в пользу улучшения кода) #dotnet
Интересный вектор атаки - через powershell файлы, которые выполняюца при установке nuget пакета. #dotnet
Человек форкнул dotnet runtime, чтобы вырезать инструкции CMOV и SSE - чтобы запустить .net программу под DOS на 486м компе #dotnet #simd #sse
🔥2
Две короткие статьи по работе с #docker
Initialize RabbitMq Docker Container with preconfigured Queues - может быть полезно при разработке/тестировании #rabbitmq
Nginx and Load Balancing - использование scale для поднятия нескольких инстансов контейнера - например, для тестирования балансировки нагрузки
Initialize RabbitMq Docker Container with preconfigured Queues - может быть полезно при разработке/тестировании #rabbitmq
Nginx and Load Balancing - использование scale для поднятия нескольких инстансов контейнера - например, для тестирования балансировки нагрузки
Двоякое впечатление произвела статья. С одной стороны - тема мне близка, т.к. я посвятил 12 лет моей карьеры подобной теме - Let’s say that you’re building Car Fleet Management System. И вроде бы с одной стороны в статье всё логически связано и корректно с точки зрения workflow. С другой стороны - нарочитая простота решения не должна вводить в заблуждение тех, кто собирается делать подобные системы - там под капотом триллион всяких подводных камней, начиная с того что в реляционные СУБД координаты машин не кладут.
Но в целом - для того, чтобы посмотреть что умеет Postgres и TimescaleDB - это неплохая демонстрация, простая и наглядная с точки зрения реализации. Ну и немного #dotnet там тоже есть :)) #postgres
Но в целом - для того, чтобы посмотреть что умеет Postgres и TimescaleDB - это неплохая демонстрация, простая и наглядная с точки зрения реализации. Ну и немного #dotnet там тоже есть :)) #postgres
event-driven.io
Postgres Superpowers in Practice - Event-Driven.io
Event-Driven by Oskar Dudycz
Реализация NonBlocking Dictionary - по API аналог ConcurrentDictionary, но по перфу доступа почти в два раза лучше. #dotnet
Хороший пример того, как надо обустраивать get started для разных инструментов (в частности баз данных и хранилищ).
Например, когда я полез ковырять Tarantool - я был озадачен отсутствием каких-то example datasets, на которых его можно потыкать хотя бы на чтение и посмотреть как оно лежит в хранилище.
Clickhouse в этом отношении мне понравился и зашёл значительно быстрее (и заехал в один из проектов для аналитики) - у них есть большие датасеты и отдельная страничка, где они собраны, а также вагон примеров запросов к этим датасетам (и которые к слову одной командой загружаюца в БД Clickhouse) и которые раскрывают разные интересные фичи движка и позволяют сравнить например объем хранения этих данных в сыром виде и в Clickhouse.
Графовую СУБД memgraph надо посмотреть, выглядит неплохо.
Например, когда я полез ковырять Tarantool - я был озадачен отсутствием каких-то example datasets, на которых его можно потыкать хотя бы на чтение и посмотреть как оно лежит в хранилище.
Clickhouse в этом отношении мне понравился и зашёл значительно быстрее (и заехал в один из проектов для аналитики) - у них есть большие датасеты и отдельная страничка, где они собраны, а также вагон примеров запросов к этим датасетам (и которые к слову одной командой загружаюца в БД Clickhouse) и которые раскрывают разные интересные фичи движка и позволяют сравнить например объем хранения этих данных в сыром виде и в Clickhouse.
Графовую СУБД memgraph надо посмотреть, выглядит неплохо.
Memgraph documentation
Getting started with Memgraph
Just beginning with Memgraph? Access our structured guide to set up your environment, learn basic operations, and start utilizing graph computing to its fullest.
🔥1
Интересная штука для C#, которая практически прозрачно для разработчика позволяет часть функций переложить в CUDA. #dotnet
Silk.net is your one-stop-shop for high-speed .NET multimedia, graphics, and compute; providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX. Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics! Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 6.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.
Интересно... Примеров, правда, не очень много. #dotnet
Интересно... Примеров, правда, не очень много. #dotnet
Сайт с книгами по разным темам - каждая книга по сути краткая выдержка основных и/или популярных команд/алгоритмов с обилием примеров.
Goalkicker
Free Programming Books; HTML5, CSS3, JavaScript, PHP, Python...
Free Programming Books on Android development, C, C#, CSS, HTML5, iOS development, Java, JavaScript, PowerShell, PHP, Python, SQL Sever and more
Странно, что в таком малом количестве проектов я вижу использование прекрасного пакета Polly, который позволяет:
🔸задать политику обработки исключений и повторов выполнения метода/таски - с программируемой задержкой между ними (идеально для доступа к удалённому/ненадежному ресурсу)
🔸реализует CircuitBreaker
🔸позволяет fallbaчить результат - если один метод зафакапился - вызывается другой (для возврата значения по умолчанию например)
а также комбинировать политики через Wrap это всё. Ну и примеров там вагон. Вобщем рекомендуется к использованию - полезно и удобно.
В дополнение 4 небольших статьи как писать расширения политик Polly:
🔸 Introducing custom Polly policies and the Polly.Contrib
🔸 Authoring a non-reactive custom policy
🔸 Authoring a reactive custom policy
🔸 Custom policies for all execution types: sync and async, generic and non-generic
#dotnet
🔸задать политику обработки исключений и повторов выполнения метода/таски - с программируемой задержкой между ними (идеально для доступа к удалённому/ненадежному ресурсу)
🔸реализует CircuitBreaker
🔸позволяет fallbaчить результат - если один метод зафакапился - вызывается другой (для возврата значения по умолчанию например)
а также комбинировать политики через Wrap это всё. Ну и примеров там вагон. Вобщем рекомендуется к использованию - полезно и удобно.
В дополнение 4 небольших статьи как писать расширения политик Polly:
🔸 Introducing custom Polly policies and the Polly.Contrib
🔸 Authoring a non-reactive custom policy
🔸 Authoring a reactive custom policy
🔸 Custom policies for all execution types: sync and async, generic and non-generic
#dotnet
🔥3
Интересный workshop для Dapr. Достаточно подробно описан кейс, нарисованы схемы и есть 7 заданий по очереди для практики разработки микросервисной архитектуры.
Микросервисов всего 3 (четыре, если считать внешний условный Camera simulation который дергает два endpoint'а - их можно подергать и curl'ом), так что несложно.
Особенно интересно то, что нет особой привязки к Dapr - тоесть это всё можно легко реализовать просто как сервисы и запилить их в докер/кубер или реализовать через через akka/orleans (два из трёх сервисов прекрасно лягут на модель акторов). Ну и соответственно необязательно использовать C#, можно на любом языке сделать - как все микросервисы так и какие-то отдельные.
#dotnet
Микросервисов всего 3 (четыре, если считать внешний условный Camera simulation который дергает два endpoint'а - их можно подергать и curl'ом), так что несложно.
Особенно интересно то, что нет особой привязки к Dapr - тоесть это всё можно легко реализовать просто как сервисы и запилить их в докер/кубер или реализовать через через akka/orleans (два из трёх сервисов прекрасно лягут на модель акторов). Ну и соответственно необязательно использовать C#, можно на любом языке сделать - как все микросервисы так и какие-то отдельные.
#dotnet
Потыкал в очередной раз MAUI. Остаюсь при мнении, что это странная и нежизнеспособная хуйня. Прекрасно работает как hello world, но за пределами этого начинаются невероятные костыли и приседания.
Билд и деплой на на симулятор или живой девайс (wifi гигабитный, ноут жырный, телефон - топ по скорости) идёт секунд 30. Просто билд hello world с одной формой под два таргета (windows/android) идёт секунд 20. Билд только под винду - секунд 10.
Приличные компоненты, которые нужны для любого нормального приложения - контролы, гриды, карты - почти все prerelease/beta и работают через жопу.
Mapsui для карт - полный пиздец, такое ощущение что люди вообще не видели никогда других компонентов, которые годами есть на рынке. На топовом андроед телефоне с 120 Гц экраном пан, зум и вращение работают рывками как на вафельнице за $50. Забавно, что карта вращается строго по часовой стрелке, против часовой нельзя если она до этого не повернута. Проекции для координат тоже неясны, но явно не широта/долгота. Ну и документации примерно нихера, даже комментариев для intellisense. Как это использовать - совершенно неясно.
Надо посмотреть как в Avalonia.
Билд и деплой на на симулятор или живой девайс (wifi гигабитный, ноут жырный, телефон - топ по скорости) идёт секунд 30. Просто билд hello world с одной формой под два таргета (windows/android) идёт секунд 20. Билд только под винду - секунд 10.
Приличные компоненты, которые нужны для любого нормального приложения - контролы, гриды, карты - почти все prerelease/beta и работают через жопу.
Mapsui для карт - полный пиздец, такое ощущение что люди вообще не видели никогда других компонентов, которые годами есть на рынке. На топовом андроед телефоне с 120 Гц экраном пан, зум и вращение работают рывками как на вафельнице за $50. Забавно, что карта вращается строго по часовой стрелке, против часовой нельзя если она до этого не повернута. Проекции для координат тоже неясны, но явно не широта/долгота. Ну и документации примерно нихера, даже комментариев для intellisense. Как это использовать - совершенно неясно.
Надо посмотреть как в Avalonia.
🔥3