Наступило время когда меня начала бесить моя же клавиатура Vortex Race 3. Хочется чего-то без проводов и тише… и может что-то с меньшим ходом клавиш. Ей уже лет 5 как минимум, я даже с ней в офис ходил(простите).


Выключил снег в блоге. Нам сказали его не будет этой зимой(и сейчас нет).


Это я хотел посмотреть что там происходит в Slack Report Portal. В прошлой жизни я кое-чего там спрашивал про миграцию на новые версии и теперь не могу прочитать свои же сообщения из лички. slack rp screenshot Скоро так же в дискорде будет.


Посмотрел видео, и да, даже я уже почувствовал это, что чтобы собрать зависимости в кучу чтобы они собрались и слинковались слишком много путей и нужен огромный мозг чтобы это сделать. Какие-то умные пакадж манагеры есть, но это все еще зоопарк, после такого приятно возвращаться в C#.

А вот коммент под видео Cherno про то как человек делает новый проект. youtube comment

Это то почему я не могу пока опубликовать тут рисовалку пиксель арта, про которую писал - хз пока как ее собрать для веба.


Оказывается очень сложно писать текст чтобы можно было его потом читать нормально, и еще я постоянно все в скобки беру, нужно сюда допилить какие-то ссылки удобные, будет блог как Бесконечная шутка(ха-ха). Только в шутке там специально ссылки сделаны чтобы тебя задолбать за 900 страниц листать в конец книги.


Еще о автоматизации. Я заметил, что существует такая лакуна в понимании тестового покрытия: юнит тесты считаются автоматизацией и фигурируют в этой пирамиде тестирования, но чаще всего являются ответственностью разработчиков. Тестовая елка Более того, часто юнит тесты живут с кодом приложения(ну это понятно), а код автоматизации лежит где-то в другом репозитории, так что он даже физически где-то в другом месте(это не плохо само по себе, просто пример). А в отчетах и метриках автофреймворка(у вас же они есть, да?) о юнит тестах и покрытии в общем-то ничего нет.


Оказывается в спанах в C# нужно еще разбираться и разбираться. Мне в повседневной работе это вообще не нужно, но интересно как это работает. Вообще, в оптимизации тестов по скорости выполнения(это одна часть моей работы) самые большие гейны в скорости прогона тестов приходят из параллелизации(тут ясно) и следования тестовой пирамиде. Если вы оптимизируете тесты по скорости выполнения как-то иначе, то скорее всего это трата времени и смотрите вы не туда. Тут стоить заметить, я говорю о довольно больших фреймворках автоматизации с количеством тестов >100(но это цифра из головы, зависит от типа тестов) и это не о юнит тестах(с ними уже больше смысла биться за скорость выполнения). А причин почему тестовая пирамида может быть сломана уйма, но вот одна. У вас есть множество автоматизированных тестовых сценариев, которые тестируют функциональность внахлест(происходит тестирование одной функциональности по нескольку раз), это очень частый случай, но предпосылки могут быть разными. Случиться это может, например, из-за непонимания домена или архитектуры приложения. Человек может не понимать, что проверяя функциональность(или часть системы) А он еще проверяет функциональность Б, которая может использоваться неявно или использоваться в каких-то эдж кейсах и тестировать явно ее не нужно, но на нее тоже написаны тесты. Или функциональности А сначала не было, а была только Б и тесты на неё. Или несколько команд использующих один фреймворк автоматизации, но работающих над разными частями системы могут создавать тесты для того, что возможно уже покрыто другой командой, и это уже проблема коммуникации и трейсабилити(блять, смотря какой фабрик, traceability, как это по-русски?), которая решается не оптимизациями в коде и может быть предотвращена сбором и оценкой соответствующих метрик.

Вообще тут очень много оговорок и нужно писать статью.

А про спаны интересно, да, я просто видео хотел запостить.


Visual Studio обновилась и теперь там показывается плашка если есть уязвимости в пакетах(транзитивные тоже), круто. visual studio notification


Никто меня не понимает =(( Шучу, почему-то меня никто не понимает когда я говорю, что спотифай работает хуево на всех платформах. Но я как инженер по качеству с почти 9ю годами опыта это говорю, может я деформирован. Ютуб музыка и яндекс музыка работают лучше. Ну, допустим, вас устраивает как он работает, вот как платформа относится к артистам. Вот что говорит глава спотифай “стоимость создания музыки близка к нулю”(сурс), а еще он “богаче всех когда-либо существовавших музыкантов”(сурс, сурс), а выплаты музыкантам упали с на 68% с 2011 года(информация из видео), еще очень много негативных инфоповодв, но я не хочу оформлять ссылки больше. Не платите за это говно. Закинуть 5 долларов артисту напрямую это как если бы послушать ~1500 раз песню на спотифай.


Это равка, но я ее не обрабатывал, только проявил. Все равно только хуже сделаю =) Winter walk


Я делаю рисовалку пиксельарта простую чтобы встроить сюда в блог(потому что это круто). Вот тест. Одну нарисовал я, а другую Галима. Не скажу чья моя. pixel art Прикол в том, что эта штука написана на C++… Cmake одновременно и круто\магия и пипец, он автоматически ищет установленные компиляторы для тебя, понимает какой язык программирования нужно собирать, еще может забирать КОД с гита и даже его распаковывать, я подразумеваю все просто один раз что-то настраивают, а потом копипастят в новые проекты, но это я может новичок, но запомнить это нереально будто бы.


Спросил у Gemini как погромировать. А он мне вот: google ai ✨✨✨ Я потом Why? и он напечатал ответ = )


Гулял. Пока не понял как обрабатывать изображения красиво и в голову не приходит переключиться на равку пока ходишь, так что это жпег кропнутый через виндовую тулу(она ужасная). Просто оправдываюсь почему она так зажарено выглядит. tennis field


Недавно писал, что slicing не работает на стрингах в C#, я был не прав и это не дает мне покоя. Я перепутал слайсинг и спаны. Если использовать Span, то это будет выглядеть так с стрингами и арреями:

Span<char> subText = stringText.AsSpan(0, 5); // Span с индекса 0 to 4
Span<int> subArray = numbersArray.AsSpan(2, 3); // Span с индекса 2 to 4

Span существует чтобы не был лишних аллокаций.

Слайсингом называют вообще другое. Это выглядит как что-то такое:

array[^3..] // мы берем рендж(как в питоне), это называется слайсинг
array[^3] // Тут берем 1 элемент с такимж синтаксисом примерно, это, как я понял, называется индексинг

Еще на тему слайсинга можно много чего сказать, но вот тут уже сказано.


Я до сих пор скачиваю всю музыку которая мне нравится. В том числе с Soulseek. Это как торренты, только ты качаешь от одного человека за раз. Есть множество клиентов под разные платформы, я скачивал очередной альбом вот и наткнулся на кусок крутого интернета. Когда скачиваешь что-то от кого-то через Soluseek можно настроить автоматическое сообщение, я получил такое cock.institute invatation Я поржал с названия и открыл, вот урл И увидел там такую красоту cock.institute site Скачивал я, кстати, вот это

Это вселенная или как, но там даже эффект снега сейчас как в этом блоге! И поскольку это кусок старого интернета с чатом без регистрации пришлось проскроллить чат чтобы на скрин не попали плохие сообщения)