ClickHouse.Facades - zero-ORM .NET package for managing ClickHouse migrations and organizing raw SQL through structured database contexts. Makes it easy to separate concerns across features, services, or tables. Built on ClickHouse.Driver (ClickHouse.Client for version < 3.0.0) and tested in production.
Кажется полезная штука, потому что сейчас миграции у нас написаны ручками. И по случайному стечению обстоятельств они выглядят почти так как они в этом проекте :)))
#dotnet
Некоторое время назад мне пришлось делать одну штуку, которая скрапила контент с пары сайтов, которые этому активно сопротивлялись (включая как раз анализ JA3). Потому что прошареные сайты не просто детектят ботов, но даже стоит проверка TLS fingerprint (что это браузер, а не условный HttpClient). И вот этот инструмент в своё время мне бы сильно помог :)
#tools
Интересный кейс использования Claude, ради которого я собственно и купил подписку на него - было интересно справиться ли.
Задача - есть бинарный файл закрытого формата, который надо расковырять и понять что там и как. Я просто загрузил кусок этого файла в промпт (оригинальные файлы больше 300 МБ) и написал "у меня есть бинарный файл, который хранит данные с датчика (или нескольких датчиков), можешь поресечить этот формат и попробовать в нём разобраться?"
При этом я практически на 100% уверен, что Claude не мог обучиться ранее на этом файле никак (т.е. его разрабы не делали формат этого файла через нейронку, потому что сама железяка очень очень новая, буквально месяца два ей).
За 10 минуты работы - claude его проанализировал и разложил по полочкам ВЕСЬ формат файла, с определением длины каждой записи, включая примеры графиков по данным из файла и замечания по невыясненным байтам. Он даже нашёл байт с CRC для каждой записи.
После чего ещо мне стало ещё более интересно и я провёл пару итераций с подсказками - потому что я знаю от чего этот файл и какие данные там примерно могут быть - я его для начала просто открыл в Audacity как raw файл, чтобы посмотреть грубым взглядом на него. Осталось ещё выяснить что означают несколько байт в каждой записи, но тут похоже тараканы связанные с железякой, надо смотреть этот файл с оригинальным софтом, который пока недоступен. #ai
Не оч понятно, зачем очередное изобретение в виде либы Temporal, какие-то очередные битвы с мельницами. Уже сколько времени в проектах живёт date-fns (momentjs давным давно выпилен), и никаких проблем с ней не помню. #js #ts
Напоминаю по этому посту, чел пишет Garbage Collector - уже девятая статья - Writing a .NET Garbage Collector in C# - Part 9: Frozen segments and new allocation strategy #dotnet
Надо будет попробовать Localstack. У меня есть несколько проектов, которые живут исключительно в AWS и не сказать чтобы их было как-то сложно отлаживать - но возможно это связано с тем что там достаточно развязанные друг от друга сервисы, которые в принципе вполне себе поддаются отдельной отладке. Но вот попробовать в комбинации с terraform это было бы интересным, возможно это облегчило бы настройку инфры для AWS. #tools
Любопытный сайт для визуализации алгоритмов. И книга по ним - Algorithms by Jeff Erickson. Не Кнут конечно, но в целом интересно (особенно про хэширование и string matching) #books
В продолжение поста про локальную эмуляцию облачных сервисов нашёлся ещё один - Floci и кажеца по фичам он поинтереснее.
Он даже умеет Azure эмулировать. #tools
Волею случая похоже придется скоро потрогать pgEdge, чтобы сделать 2+1 master/master + standby репликацию Postgres. На картинке это всё выглядит неплохо, разве что придётся сделать масс-рефакторинг базе для PK, чтобы либо snowflake либо guid.
Кто использовал, большую ложку для дерьма надо готовить? :) #postgres #tools
success story. В апреле случайно выхлопал google maps api на $700+ во время экспериментов и отладки одной штуковины с геокодингом. Переписывался со знакомыми и они подсказали написать в саппорт, чтобы срезали часть оплаты. Ну я и написал "Дяди, я случайно, я больше не буду, можно вернуть как будто ничо не было".
Ключевой вопрос (на мой взгляд), который был в чятике поддержки - был ли business value от этих запросов? Ну я написал что нет (по факту и не было, потому что это была отладка на фейковых данных на моём локальном компе и на пет-серваке, просто их было чуть больше чем я планировал - а я про это забыл).
Карочи, они откатили платёж целиком. И заодно ещё мартовские $230 (о которых я не просил, но там были тоже эти же запросы по этому же ключу). Правда мне это стоило порядка часа переписки с саппортом и побочно они попросили удалить существующий API-ключ, но вроде бы оно того стоит. Мораль - не стесняйтесь писать в google support, там вроде бы вменяемые. #howto #google
upd деньги на карту вернулись на следующий день
Искал тут максимально эффективную либу для ресайза картинок (да, ImageMagick, Skia, и вот это всё) и нашлась интересная штука. По бенчам прямо рвёт всех.
Жаль конечно, что нативно не умеет HEIC (но кажется есть костыль с libheif), но жипеги ресайзит оч быстро. #dotnet
Видео 161401690-013023ba-1d21-4fb7-8d7f-9953f51c1e5b.mp4 · 6.3 МБ · нажмите — покажем
От создателя библиотеки GGML - забавный проект ggwave (github) передачи данных звуком. Да, ничо особенно для тех кто использовал модемы пшшшш-пшшшш ретрейны пошли. Вплоть до ардуины, скорость конечно байты в секунду, но кто использовал интернет на модеме 14400 - никуда не спешит :))
https://crt.name - скрапер доменов второго+ уровня - и внезапно это открытая инфа, которую можно получить в т.ч. из Certificate Transparency (CT) Logs - Let's Encrypt Sunlight, Cloudflare Raio и т.д. + разные другие источники и active probing #tools
Со времени этого поста плагин перестал работать т.к. в хроме поменяли версию манифеста и убрали ту штуку, через которую работал плагин. Но, есть почти нативная альтернатива в Firefox - расширение Multi-Account Containers. Делает почти всё то же самое - в каждом именованом контейнере свой набор кук. #tools
Забавная штука для того чтобы накидать частично интерактивный мокап.
От этого же автора есть ещё один интересный проект - ProGPU (high-performance, GPU-first UI framework and composition substrate for .NET, built on top of Silk.NET and WebGPU (wgpu-native). It provides a lightweight, low-allocation alternative to traditional heavyweight UI frameworks by routing all vector graphics, text layout, and composition operations directly to the GPU using native WebGPU draw pipelines. #dotnet
Надеюсь что не пригодится, но вдруг...
Creating a memory dump in C# а заодно как его посмотреть.
В дополнение к предыдущим постам про инструменты для трогания разного в контейнере раз и два
#dotnet