TGViewer
Channel Public Channel
📓 Записки программера

📓 Записки программера

@notes_of_programmer

Канал с регулярными постами о разных интересных материалах (статьи, видео, фреймворки и полезные инструменты).
Subscribers
1.1K
Photos
344
Videos
2
Links
656

Showing posts older than #475 · Back to latest

Older Posts 20 shown
Post #474 842
Т.к. я не дизайнер ниразу (а иногда UI делать надо :) - нахожу интересным посмотреть на готовые UI например на layers.to.

Там есть конечно весьма спорные решения (с точки зрения юзабельности, например это што) - но в целом большое собрание, чтобы можно было посмотреть на сочетание цветов и некоторые подходы. #ui
  • 👍 8
Post #473 916
Как-то прошло мимо и я заметил только щас, что недавно был анонсирован pl/dotnet (там есть ссылка на github), который позволяет писать функции и процедуры на C# для Postgres.

В прод конечно же я бы это затаскивать не стал, потому что версия 0.99beta (что как бы намекает), ну и помня историю с появлением аналогичного в MSSQL - где в первых версиях (ну как в первых, в mssql 2005 что ли) на каждый вызов создавался app domain, а после вызова удалялся. В эпоху .net 4.0 это было небыстро и било по перфомансу запросов прилично, а также регулярно отрывало башку оптимизатору, который не знал как оценить план выполнения такой функции. Так что в первых версиях это можно было использовать только для каких-нибудь единичных штук (отправить емайл, распарсить файл, дёрнуть урл, ...). Потом это конечно же починили, но я никогда так и решился использовать .net внутри mssql.

Но времена нынче другие, .net стал сильно побыстрее и думаю там это вполне пригодно. Не могу пока придумать зачем, но интересно.

#dotnet #postgres
  • 😁 2
  • 🤔 2
  • 👍 1
Post #471 851
Parlot is a fast, lightweight and simple to use .NET parser combinator - билдер парсеров на Expression'ах (и не только).

Бенчмарки выглядят вполне ок, надо будет попробовать что-нибудь попарсить им. Написано, что используется в OrchardCore.

#dotnet
  • ❤ 1
Post #469 731
inject/provide в Vuejs - да... это не Рио-де-Жанейро, конечно назвать это DI сложно, но помогает разгрузить код от кросс-ссылок на файлы. Ну и офиц документация да, она правда нищевата на примеры.
#vuejs
  • 👍 1
Post #468 713
Я и не знал, что современные браузеры умеют нативно разметкой рисовать формулы #css #html
  • 🤯 7
Post #467 848
LongQueryInterceptor.cs (gist) - автоматически логирует в штатный лог запросы EntityFramework, которые выполняются дольше чем указанное время. #dotnet #ef
  • 👍 7
  • 🔥 3
Post #466 2.38K
Чуть более десятка полезных запросов для Postgres собрал и оформил с примерами. Для одного поста в телегу - это слишком много (особенно с разметкой примеров вывода). Так что положил в виде gist на github:
🔸Текущие выполняемые запросы
🔸Запросы, выполняемые более 1 секунды
🔸Таблицы с % попадания в кэш при их использовании
🔸Размеры таблиц (включая индексы)
🔸Размеры индексов
🔸Размер текущей БД
🔸Размеры и наличие временных файлов
🔸Статистика по чтению индексов
🔸Статистика использования индексов
🔸Топ 5 самых активных таблиц
🔸Топ 5 самых активных индексов
🔸Никогда не использованные индексы
#postgres
  • 👍 8
  • 🔥 6
  • 🤓 1
Post #465 880
Некоторое количество советов при логировании с помощью Serilog (в основном связано с обогащением контекста разными штуками, чтобы потом легче было искать в логах нужное) #dotnet
Code Maze Best Practices for Logging With Serilog In this article, we'll take a closer look at some best practices when it comes to logging in .NET with Serilog.
  • 🔥 2
Post #463 796
4️⃣0️⃣0️⃣😁
  • 🔥 20
  • 👍 5
Post #462 828
Monoliths have been problematic, then micro-services turned out to be differently problematic. So let’s swing the pendulum back partway but focus more on making our monoliths modular for easier, more maintainable long term development.

Ещё один взгляд на модульные монолиты.

Вторая часть статьи, более подробная. #architecture
  • ❤ 3
Post #460 630
Ещё одна статья по поводу использования ArrayPool<T>. Это и правда помогает, когда надо много аллоцировать на короткое время. Особенно помогает если надо аллоцировать буферы примерно одинакового размера. #dotnet
www.sharpgis.net dotMorten | Removing Memory Allocations in HTTP Requests Using ArrayPool<T> dotMorten - .NET Ramblings, XAML hacking and some GIS endeavors - This post will describe how you can make network requests in .NET without constantly allocating large amounts of memory and reduce your allocations to almost zero.
  • 👍 3
Post #459 656
Столкнулся тут с необходимости поснифать на DEV среде трафик между контейнерами докера... Некоторое количество командных строк на память.

Для начала с помощью docker network ls надо выяснить id нужного интерфейса (далее этот id написан как INTERFACE), 8000 - это exposed port моего контейнера.

Дампы пакетов в ASCII ( -A ):
tcpdump -i INTERFACE 'tcp dst port 8000' -A


Тоже самое + поиск по подстроке 'Sec-WebSocket-Key':
tcpdump -i INTERFACE 'tcp dst port 8000' -A | grep 'Sec-WebSocket-Key:'


Фильтрация только с флагом SYN (например для того чтобы посмотреть установку входящих соединений):
tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] & (tcp-syn) != 0)' -A

Мониторинг keep-alive пакетов

tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] == tcp-ack and less 1)' -A


Отображение заголовков http-пакетов GET/POST/HEAD

tcpdump -i INTERFACE 'tcp dst port 8000' -A | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |HEAD )/\n\1/g'


Ну а потом я вспомнил, что есть такой инструмент как nast, который позволяет дампить более простой строкой как заголовки так и тело входящего запроса:
nast -i INTERFACE -d -f 'tcp dst port 8000'


#tools #docker #tcpdump
  • 👍 8
Post #458 693
vue-webrtc - компонент для WebRTC коммуникации. За 5 минут можно сделать p2p-видеосвязь #vuejs
  • 🤯 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →