Отпуск начинается с того что ты удаляешь тимс и аутлук нахер !
👍1
Forwarded from Just code IT
Рохус Келлер (Rochus Keller) — программист, создающий свои собственные среды разработки для олдскульных языков программирования. У него много проектов на GitHub, большинство из которых имеют три общие черты:
1. Они используют байт-код LuaJIT в качестве целевого языка
2. Они включают в себя не только компиляторы, но и полнофункциональные IDE с отладчиками
3. Они написаны на C++ с использованием Qt.
Рохус создал такие среды разработки для Smalltalk-80, Simula, Som, Algol-60 и Oberon+. Последний представляет собой язык программирования, подобный Oberon, совместимый с Oberon, Oberon II, Oberon 07, и расширенный некоторыми новыми возможностями, такими как UTF-8, generics и FFI.
Также, в компиляторе Oberon+ Рохус реализовал бэкенд для Mono и рекомендует использовать его по умолчанию вместо LuaJIT.
#digest
1. Они используют байт-код LuaJIT в качестве целевого языка
2. Они включают в себя не только компиляторы, но и полнофункциональные IDE с отладчиками
3. Они написаны на C++ с использованием Qt.
Рохус создал такие среды разработки для Smalltalk-80, Simula, Som, Algol-60 и Oberon+. Последний представляет собой язык программирования, подобный Oberon, совместимый с Oberon, Oberon II, Oberon 07, и расширенный некоторыми новыми возможностями, такими как UTF-8, generics и FFI.
Также, в компиляторе Oberon+ Рохус реализовал бэкенд для Mono и рекомендует использовать его по умолчанию вместо LuaJIT.
#digest
GitHub
rochus-keller - Overview
see http://rochus-keller.ch. rochus-keller has 76 repositories available. Follow their code on GitHub.
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.
Об уязвимости поведали пытливые умы из Университета Нортуэстерн, которые работали над печально известной багой Dirty Pipe и обнаружили ошибку восьмилетней давности, с помощью которой злоумышленник может повысить свои права до максимального уровня.
Как подчеркнули сами исследователи, DirtyCred представляет собой концепцию эксплуатации на уровне ядра, позволяющую повысить права в результате замены непривилегированных учетных данных на привилегированные.
Для повышения привилегий DirtyCred использует ранее неизвестную уязвимость, отслеживаемую как CVE-2022-2588. Недостаток в связан с проблемой использования после освобождения, которая находится в route4_change при реализации фильтра net/sched/cls_route.c в ядре Linux.
Уязвимость позволяет локальному привилегированному злоумышленнику вывести систему из строя, что может привести к повышению локальных привилегий.
Эксперты отмечают, что эксплойты, написанные с помощью DirtyCred, будут работать с разными ядрами и архитектурами, что наглядно продемонстрировали у себя на странице.
Причем специалисты описали подход, который можно применять и для Android.
Кстати, POC доступен на GitHub.
YouTube
"DirtyCred" Gives Hackers Full Control of Linux and Android Systems
In this video I discuss the dirty cred vulnerability that allows for an unprivileged user to escalate privileges to root on the Linux kernel (all architectures) the bug is also believe to present in the android kernel and docker images using the Linux kernel.…
Forwarded from Протестировал (Sergey Bronnikov)
Внезапно
pytest не самый крутой раннер для тестов на Питоне. Результаты бенчмарков показывают, что он ощутимо отстает от других раннеров. В том числе от hammett, который частично совместим с pytest. Источник результатов измерений - https://github.com/boxed/test-benchmarksForwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Обнаружение регрессий производительности
Ангус Кролл из 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
Ангус Кролл из 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
Medium
Fixing Performance Regressions Before they Happen
How the Netflix TVUI team implemented a robust strategy to quickly and easily detect performance anomalies before they a
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Выбор библиотеки по её размеру
Владимир Клепов рассказал про подводные камни выбора библиотек с использованием размера как основной метрики — "Don't trust JS library size, min+gzip".
В статье Владимир пишет о том, что размер библиотеки в Readme, может не отражать реальный процент бандла, который она будет занимать. Обычно код жмётся лучше, чем больше в приложении используется стороннего кода. Также пайплайн сборки может оказывать негативный эффект на размер из-за транспиляции в старую версию JavaScript. Иногда меньший размер библиотеки означает, что нужно использовать больше кода по сравнению с альтернативной библиотекой с большим размером, поэтому размер в этом случае не имеет значения.
При выборе библиотеки автор рекомендует оценивать скорость инициализации. Меньшая библиотека с плохой скоростью инициализации будет оказывать негативный эффект на всех пользователей без исключения. В то время как большая библиотека с лучшей скоростью инициализации будет оказывать негативный эффект только один раз при загрузке бандла с сервера.
Хорошая статья. Рекомендую почитать.
#js #performance #musings
https://thoughtspile.github.io/2022/02/15/bundle-size-lies/
Владимир Клепов рассказал про подводные камни выбора библиотек с использованием размера как основной метрики — "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/
да. меня зацепило то что она написана на расте) и да. в ней вполне все есть
да. меня зацепило то что она написана на расте) и да. в ней вполне все есть
parceljs.org
Parcel – The zero configuration build tool for the web.
Parcel combines a great out-of-the-box development experience with a scalable architecture that can take your project from just getting started to massive production application.
из серии "тула, где ты была раньше?" https://jakearchibald.com/2021/cors/playground/
как по нормальному работать CORS
демка для каждого из запроса
удобно и понятно
как по нормальному работать CORS
демка для каждого из запроса
удобно и понятно
Forwarded from Вебня (Roman Dvornov)
Monorepo.tools
"Все что вам нужно знать о монорепах и инструментах, чтобы их построить" – с таким слоганом запустился новый сайт про моно-репозитории. На нем собраны основные тезисы и материалы в пользу монореп, а так же разобраны ключевые иструменты для их построения (Bazel, Gradle, Lage, Lerna, Nx, Rush и Turborepo) с разбивкой по фичам и сводной таблицей. Хорошая отправная точка для тех кто задумывается о монорепе или ищет подходящий инструмент.
"Все что вам нужно знать о монорепах и инструментах, чтобы их построить" – с таким слоганом запустился новый сайт про моно-репозитории. На нем собраны основные тезисы и материалы в пользу монореп, а так же разобраны ключевые иструменты для их построения (Bazel, Gradle, Lage, Lerna, Nx, Rush и Turborepo) с разбивкой по фичам и сводной таблицей. Хорошая отправная точка для тех кто задумывается о монорепе или ищет подходящий инструмент.
Toxiproxy
https://github.com/Shopify/toxiproxy
проксисерв для того что бы сэмитировать плохую сеть.
рандомно рвет провода, кидается говном... все как в жизни короч
https://github.com/Shopify/toxiproxy
проксисерв для того что бы сэмитировать плохую сеть.
рандомно рвет провода, кидается говном... все как в жизни короч
GitHub
GitHub - Shopify/toxiproxy: :alarm_clock: A TCP proxy to simulate network and system conditions for chaos and resiliency testing
:alarm_clock: :fire: A TCP proxy to simulate network and system conditions for chaos and resiliency testing - GitHub - Shopify/toxiproxy: :alarm_clock: A TCP proxy to simulate network and system co...
Forwarded from Хитрый Питон
Возможно, вы слышали о AST — это встроенная в питон библиотека для построения абстрактного синтаксического дерева кода. AST используется, например, при написании линтеров. Минус в том, что он позволяет анализировать код, но при этом выкидывает части кода, которые не важны для компилятора, но важны для нас (например, комментарии).
Некоторое время назад Instagram выложил LibCST - которая гораздо бережнее относится к коду и соответственно может использоваться не только для проверки, но и для модификации кода.
В статье разобран хороший пример, как с помощью LibCST можно написать инструмент для ручного рефакторинга кода, который было бы сложно сделать другими инструментами (и долго и неудобно вручную). Если вам интересна тема разработки инструментария для python - рекомендую https://engineering.instawork.com/refactoring-a-python-codebase-with-libcst-fc645ecc1f09
Некоторое время назад Instagram выложил LibCST - которая гораздо бережнее относится к коду и соответственно может использоваться не только для проверки, но и для модификации кода.
В статье разобран хороший пример, как с помощью LibCST можно написать инструмент для ручного рефакторинга кода, который было бы сложно сделать другими инструментами (и долго и неудобно вручную). Если вам интересна тема разработки инструментария для python - рекомендую https://engineering.instawork.com/refactoring-a-python-codebase-with-libcst-fc645ecc1f09
Medium
Refactoring a Python Codebase with LibCST
How can an engineering team maintain consistent conventions in a growing codebase? When working on new code, engineers add new patterns to…
Forwarded from Коробка с питоном
Тут часть ядра pydantic переписали на Rust и он стал в 17 раз быстрее (код бенчмарка тут) чем обычный Pydantic.
Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
GitHub
GitHub - pydantic/pydantic-core: Core validation logic for pydantic written in rust
Core validation logic for pydantic written in rust - pydantic/pydantic-core
Forwarded from Питонические атаки
Небольшая подборка flake8 плагинов для тех, кто уже использует 3.10 и хочет писать тайп-хинты красиво:
1. flake8-new-union-types — заставляет переписывать
2. flake8-pep585 — заставляет использовать встроенные классы, например,
Знаете ещё полезное? Делитесь в комментариях!
#flake8
1. flake8-new-union-types — заставляет переписывать
Union[X, Y] на X | Y;2. flake8-pep585 — заставляет использовать встроенные классы, например,
list[dict[str, int]], без импортов из typing.Знаете ещё полезное? Делитесь в комментариях!
#flake8
GitHub
GitHub - xome4ok/flake8-new-union-types: Flake8 plugin to enforce the new Union and Optional annotation syntax defined in PEP 604
Flake8 plugin to enforce the new Union and Optional annotation syntax defined in PEP 604 - GitHub - xome4ok/flake8-new-union-types: Flake8 plugin to enforce the new Union and Optional annotation sy...
Forwarded from Заметки программиста
📌 Шпаргалка по шаблонам проектирования
Сохраняй себе и делись с друзьями! Версия в исходном качестве снизу.
#cheatsheet
Сохраняй себе и делись с друзьями! Версия в исходном качестве снизу.
#cheatsheet