BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
Forwarded from SecAtor
В первую декаду августа прошла конференция по безопасности Black Hat, на которой была раскрыта уязвимость в ядре Linux под названием Dirty Cred.

Об уязвимости поведали пытливые умы из Университета Нортуэстерн, которые работали над печально известной багой Dirty Pipe и обнаружили ошибку восьмилетней давности, с помощью которой злоумышленник может повысить свои права до максимального уровня.

Как подчеркнули сами исследователи, DirtyCred представляет собой концепцию эксплуатации на уровне ядра, позволяющую повысить права в результате замены непривилегированных учетных данных на привилегированные.

Для повышения привилегий DirtyCred использует ранее неизвестную уязвимость, отслеживаемую как CVE-2022-2588. Недостаток в связан с проблемой использования после освобождения, которая находится в route4_change при реализации фильтра net/sched/cls_route.c в ядре Linux.

Уязвимость позволяет локальному привилегированному злоумышленнику вывести систему из строя, что может привести к повышению локальных привилегий.

Эксперты отмечают, что эксплойты, написанные с помощью DirtyCred, будут работать с разными ядрами и архитектурами, что наглядно продемонстрировали у себя на странице.

Причем специалисты описали подход, который можно применять и для Android.

Кстати, POC доступен на GitHub.
Forwarded from Протестировал (Sergey Bronnikov)
Внезапно pytest не самый крутой раннер для тестов на Питоне. Результаты бенчмарков показывают, что он ощутимо отстает от других раннеров. В том числе от hammett, который частично совместим с pytest. Источник результатов измерений - https://github.com/boxed/test-benchmarks
Обнаружение регрессий производительности

Ангус Кролл из Netflix рассказал о методах, которые используются его командой для обнаружения регрессий производительности — "Fixing Performance Regressions Before they Happen".

Для снижения количества ложноположительных событий вместо статических пороговых значений ребята стали использовать алгоритм обнаружения аномалий. Аномалия — это показание метрики, которое превышает стандартное отклонение в n раз на массиве данных за последние m прогонов. В случае Netflix n=4 и m=40.

Для обнаружения проблем, которые не приводят к возникновению аномалий, ищут точки, которые находятся на границе двух паттернов распределения данных. Такие точки указывают на конкретные сборки, в которые было внесено изменение, деградирующее производительность. Для их обнаружения используется техника e-divisive на результатах ста последних прогонов.

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

Очень полезная статья. Рекомендую почитать всем, кто занимается производительностью и настраивает мониторинги.

#performance

https://netflixtechblog.com/fixing-performance-regressions-before-they-happen-eab2602b86fe
Выбор библиотеки по её размеру

Владимир Клепов рассказал про подводные камни выбора библиотек с использованием размера как основной метрики — "Don't trust JS library size, min+gzip".

В статье Владимир пишет о том, что размер библиотеки в Readme, может не отражать реальный процент бандла, который она будет занимать. Обычно код жмётся лучше, чем больше в приложении используется стороннего кода. Также пайплайн сборки может оказывать негативный эффект на размер из-за транспиляции в старую версию JavaScript. Иногда меньший размер библиотеки означает, что нужно использовать больше кода по сравнению с альтернативной библиотекой с большим размером, поэтому размер в этом случае не имеет значения.

При выборе библиотеки автор рекомендует оценивать скорость инициализации. Меньшая библиотека с плохой скоростью инициализации будет оказывать негативный эффект на всех пользователей без исключения. В то время как большая библиотека с лучшей скоростью инициализации будет оказывать негативный эффект только один раз при загрузке бандла с сервера.

Хорошая статья. Рекомендую почитать.

#js #performance #musings

https://thoughtspile.github.io/2022/02/15/bundle-size-lies/
после февраля почти разгреб завалы по прочитанным/просмотренным каналам по разработке. из 600 осталось до читать 85 каналов). вот что значит на три месяца бросить изучение того что натворили программисты за это время)))
чот даже захотелось поюзать фронт после вот таких вот заявочек на шикарную тулу https://parceljs.org/
да. меня зацепило то что она написана на расте) и да. в ней вполне все есть
из серии "тула, где ты была раньше?" https://jakearchibald.com/2021/cors/playground/
как по нормальному работать CORS
демка для каждого из запроса
удобно и понятно
Forwarded from Вебня (Roman Dvornov)
Monorepo.tools

"Все что вам нужно знать о монорепах и инструментах, чтобы их построить" – с таким слоганом запустился новый сайт про моно-репозитории. На нем собраны основные тезисы и материалы в пользу монореп, а так же разобраны ключевые иструменты для их построения (Bazel, Gradle, Lage, Lerna, Nx, Rush и Turborepo) с разбивкой по фичам и сводной таблицей. Хорошая отправная точка для тех кто задумывается о монорепе или ищет подходящий инструмент.
Forwarded from Хитрый Питон
Возможно, вы слышали о AST — это встроенная в питон библиотека для построения абстрактного синтаксического дерева кода. AST используется, например, при написании линтеров. Минус в том, что он позволяет анализировать код, но при этом выкидывает части кода, которые не важны для компилятора, но важны для нас (например, комментарии).

Некоторое время назад Instagram выложил LibCST - которая гораздо бережнее относится к коду и соответственно может использоваться не только для проверки, но и для модификации кода.

В статье разобран хороший пример, как с помощью LibCST можно написать инструмент для ручного рефакторинга кода, который было бы сложно сделать другими инструментами (и долго и неудобно вручную). Если вам интересна тема разработки инструментария для python - рекомендую https://engineering.instawork.com/refactoring-a-python-codebase-with-libcst-fc645ecc1f09
Тут часть ядра pydantic переписали на Rust и он стал в 17 раз быстрее (код бенчмарка тут) чем обычный Pydantic.

Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
Небольшая подборка flake8 плагинов для тех, кто уже использует 3.10 и хочет писать тайп-хинты красиво:

1. flake8-new-union-types — заставляет переписывать Union[X, Y] на X | Y;

2. flake8-pep585 — заставляет использовать встроенные классы, например, list[dict[str, int]], без импортов из typing.

Знаете ещё полезное? Делитесь в комментариях!

#flake8
📌 Шпаргалка по шаблонам проектирования

Сохраняй себе и делись с друзьями! Версия в исходном качестве снизу.

#cheatsheet
📌 Шпаргалка по алгоритмам и структурам данных

Сохраняй себе и делись с другом!

#cheatsheet