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

https://dotnet.social/@denisio
Download Telegram
Как известно, Redis под Windows уже давно официально не выпускается. Но если кто-то соскучился - есть реализация Redis-протокола в виде Memurai. Типа коммерческий, но есть Developer Edition, который будет рестартовать через 10 дней.

Ну и чтобы далеко не ходить - open source RedisInsight как клиент для ковыряния в Redis (с поддержкой pub/sub кстати, таких клиентов Redis очень немного - и написанный на Electron). #redis #electron
https://chocolatey.org/ - пакетный менеджер для Windows. Удобная штука, когда одним choco upgrade all весь установленный софт. Пользуюсь давно, весь софт у меня, который используется в работе, установлен с помощью Chocolatey. Нареканий нет - за очень редкими исключениями, например paint.net который недавно был обновлён до платформы .net 7 (и получил некоторый буст перфа в связи с этим) до сих пор не обновлён в choco репозитории. #tools
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Dive - удобный консольный инструмент для исследования собранных образов Docker. Позволяет найти ошибки при сборке и/или вытащить отдельные файлы из образа и заодно посмотреть размеры по слоям. #docker #tools
Давным давно у Microsoft был пакет Windows Workflow Foundation, для организации workflow в проектах. С тех пор минуло много лет, WWF сдох, но концепция осталась. Два пакета для организации workflow в проектах:

workflow-core - in process engine, из фич: возможность организовать паттерн saga, задавать максимальное количество concurrency для джобов.

elsa-core - out of process engine (в т.ч. имеет dashboard и docker образ), который имеет http api для управления и ряд штатных джобов, которые можно реюзить в своих проектах.

#dotnet
Очень часто в прошлом видел, когда люди брались за оптимизацию кода и оптимизировали совершенно не то, не так и не там где это действительно нужно. И отчасти это случалось из-за непонимания о времени работы разных операций.

Неплохая статья на хабре (не очень новая, но по прежнему актуальная) по соотношению стоимости операций процессора. Всегда держать в голове :) И не забывать, что не всегда надо оптимизировать код, если у тебя дисковый IO закрывает 90% времени работы :) #code #optimize
👍1
Ещё один интересный трюк в #css 😊
codepen
This media is not supported in your browser
VIEW IN TELEGRAM
Использование диаграммы Вороного для построения изолиний. Статья на английском в PDF. #algorithms
Интересная статья на 115 страниц на английском по сортировкам и синхронизации данных (в третьем разделе с 49-й страницы описан алгоритм rsync) #algorithms
👍1
Два инструмента для создания mock-API:

💙json-server - максимально простой, имеет много примеров на github и ему достаточно просто накидать json-файлов, которые он будет отдавать по запросу.

💙mockoon - слегка более энтерпрайзный 😊 много штук, в т.ч. для управления роутами, ответами и вобщем требует изучения как и любой хитрый инструмент.

Идеально подходят, когда надо сделать фронт, а бэка ещё нет 😊 #tools #mock
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
https://ravendb.net/ - интересная document db, написанная на C#. Немного довелось поработать с ней. Очень быстрая на дисковый IO и обилием разных фич - включая встроенную веб-dashboard для управления и мониторинга. Community edition (которая допускает коммерческое использование) - максимум 3 узла в кластере и максимум 6 ГБ RAM :( И коммерческий ценник не очень радует. Но, есть timeseries и Graph API, которые внезапно работают :)

А также блог Ayende Rahien, CEO of HIBERNATING RHINOS LTD, which develops RavenDB.
Use .NET from any JavaScript app in .NET 7 - странная идея конечно :)) Но с помощью wasm-tools можно несложно сделать wasm-сборку, которая сможет загрузица в браузер и использоваться в #js. Никак не могу отделаться от мысли, что это всё напоминает почивший Silverlight 😊

#wasm #dotnet
ASP.NET Core API Auth with multiple identity providers - простая статья, как сделать в ASP.NET Core аутентификацию с разными схемами с использованием Policy (надо будет написать статью по этой интересной фиче). #dotnet
Counting the leading zeroes in a binary number - наглядное превосходство инструкций процессора над байтоеблей. Не понимаю, какой ещё результат человек хотел увидеть, интринсик с инструкцией LZCNT из набора SSE4 выполняется за 1 такт на подавляющем большинстве процессоров. #optimize
Frozen collections in .NET 8 - о планирующемся введении FrozenSet<T> (который как следует из названия является иммутабельным generic set'ом), который внезапно быстрее HashSet<T> в 1.5 раза. #dotnet
CSS-TRICKS - хороший коллективный блог с разными интересными и порой очень технически красивыми решениями на #css
Парочка дичайших примеров, возможности на которые даёт C# 😊
да, через методы-расширения. #dotnet
Почему-то мало кто знает про такую полезную штуку как Microsoft.IO.RecyclableMemoryStream - а тем временем он делает много полезных вещей:

💙Eliminate Large Object Heap allocations by using pooled buffers
💙Incur far fewer gen 2 GCs, and spend far less time paused due to GC
💙Avoid memory leaks by having a bounded pool size
💙Avoid memory fragmentation
💙Allow for multiple ways to read and write data that will avoid extraneous allocations

Не очень полезно, но бывает нужно:
💙Provide excellent debuggability and logging
💙Provide metrics for performance tracking

Подробное описание с картинками - на вышеуказанном проекте в github. Если у вас в коде много MemoryStream'ов для разных надобностей - очень рекомендуется посмотреть в эту сторону. #dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
🌲 Канал переходит в предновогодний режим
🎅 Количество постов сокращено до двух в день
Сегодня несколько UI-фреймворков для Vue 3:

💙BalmUI - по стилизации похож на Vuetify и MaterialUI, но внутренности сделаны значительно более человечески и логичнее, чем в Vuetify. Есть всё что полагается нормальному UI-фреймворку (включая валидатор для input'ов) + есть WYSIWYG editor и даже собственный state manager (аналог vuex).

💙Buefy - основанный на Bulma, кастомизируемый, хорошо стилизованный, есть всё что надо, прекрасный фреймворк, который я использовал во множестве проектов, но... Vue 2 only 😳

💙Element Plus (бывший Element для Vue 2) - вот этот фреймворк и выступил заменой Buefy для меня, когда пришла пора портировать или стартовать новые проекты на Vue 3. Из некоторых недостатков - отсутствует fixed-top-bar меню в комплекте (но решается стилями), а также layout el-row/el-col на 24 столбца (а не традиционных 12). Но в отличие от Buefy есть штатный валидатор полей, удобный практически как Vuelidation. В целом отличная штука, рекомендуется :)

💙Oruga - по первому рассмотрению также выглядит интересно и есть всё что надо для любого сайта, кроме валидации полей.

💙Primevue - ещё более интересный фреймворк, который имеет уже два десятка опциональных цветовых тем, которые можно легко подключить и использовать. Из отличительных штук, которые не всегда есть в UI-фреймворках: контекстное меню (которое можно прибиндить к элементу), штук 6 разных меню на любой чих, графики на основе Chartjs, многоуровневые таблицы и виртуальный скроллер и интегрированный Vuelidate. Подозреваю, что это следующий кандидат на использование в новых проектах.

💙Vant - очень маленький по размеру UI-фреймворк, ориентированный на мобильные устройства и имеющий специфичные элементы - pull refresh, swipe cell, sticky elements.

💙View UI Plus - ещё один симпатичный UI-фреймворк от китайских товарищей. Также по первому рассмотрению есть всё что надо для работы, включая date/time-pickerы, uploader'ы и т.д. Сам фреймворк бесплатный, а вот темы к нему стоят денег (как в Primevue). Ну ок, надо же на чём-то зарабатывать :)

#js #ts #vue
Please open Telegram to view this post
VIEW IN TELEGRAM