Нас часто спрашивают, где же можно почитать квинтэссенцию State of the Art (да-да, та самая SOTA) по теме Data-Driven Software Engineering.
И мы ответим, конечно же материалы с конференций, публикации с которых мы также будем освещать на нашем скормненьком канале в ближайшем будущем.
1. Mining Software Repositories
http://www.msrconf.org/
2. Source Code Analysis and Manipulation
http://www.ieee-scam.org/2020/
3. The International Conference on Software Maintenance and Evolution (ICSME)
https://icsme2020.github.io/ и https://conferences.computer.org/icsm
4. Machine Learning (ML) for Systems
http://mlforsystems.org/
5. Workshop on Computer-Assisted Programming (NeurIPS)
https://capworkshop.github.io/
И мы ответим, конечно же материалы с конференций, публикации с которых мы также будем освещать на нашем скормненьком канале в ближайшем будущем.
1. Mining Software Repositories
http://www.msrconf.org/
2. Source Code Analysis and Manipulation
http://www.ieee-scam.org/2020/
3. The International Conference on Software Maintenance and Evolution (ICSME)
https://icsme2020.github.io/ и https://conferences.computer.org/icsm
4. Machine Learning (ML) for Systems
http://mlforsystems.org/
5. Workshop on Computer-Assisted Programming (NeurIPS)
https://capworkshop.github.io/
Copilot может внести до 40% ошибок и уязвимостей в ваш код
Мы запустили канал несколько позже чем это задумывалось и не пишем уже анонсы про такие вещи как Tabnine или Github Copilot. А вот про их обновления или особенности, — с удовольствием!
Тема внесения ошибок и уязвимостей через автогенерацию старая, но не избитая. И сейчас только набирает тренды. Многие в последнее время задаются вопросом о том, как бы так подпортить наборы данных, чтобы работа модели была небезопасной.
Так вот, группа исследователей поисследовала, написала (https://arxiv.org/abs/2108.09293) и выяснила, что можно ничего и не портить, а просто использовать инструменты обученные на Open Source (внезапно ;).
Было сформировано 89 различных сценариев в которых использовались предложения кода из Copilot, в рамках которых написано 1600 программ. По результату проведения ревью, исследователи выяснили, что почти 40% программ получились уязвимыми тем или иным путем (подробнее в статье).
В заключение процитируем:
Ждем существенных обновлений в Copilot по качеству и очередных срывов покровов ;).
Мы запустили канал несколько позже чем это задумывалось и не пишем уже анонсы про такие вещи как Tabnine или Github Copilot. А вот про их обновления или особенности, — с удовольствием!
Тема внесения ошибок и уязвимостей через автогенерацию старая, но не избитая. И сейчас только набирает тренды. Многие в последнее время задаются вопросом о том, как бы так подпортить наборы данных, чтобы работа модели была небезопасной.
Так вот, группа исследователей поисследовала, написала (https://arxiv.org/abs/2108.09293) и выяснила, что можно ничего и не портить, а просто использовать инструменты обученные на Open Source (внезапно ;).
Было сформировано 89 различных сценариев в которых использовались предложения кода из Copilot, в рамках которых написано 1600 программ. По результату проведения ревью, исследователи выяснили, что почти 40% программ получились уязвимыми тем или иным путем (подробнее в статье).
В заключение процитируем:
Overall, Copilot’s response to our scenarios is mixed from a security standpoint, given the large number of generated vulnerabilities (across all axes and languages, 39.33 % of the top and 40.48 % of the total options were vulnerable).
Ждем существенных обновлений в Copilot по качеству и очередных срывов покровов ;).
ODS Open Source Licensing Course
Всё-таки не зря мы писали новость про лицензии ;)
Завтра наш трек CodeMining участвует в линейке курсов в рамках ODS Course Fest #1.
Мы анонсируем коротенький курс про лицензирование свободного программного обеспечения, объясним зачем это всё затевается и как жить дальше с полученными знаниями.
Следить за расписанием анонсов можно тут: https://ods.ai/events/course_fest_1/Timing.
А вживую будет стрим на канале ODS. Подключайтесь!
Всё-таки не зря мы писали новость про лицензии ;)
Завтра наш трек CodeMining участвует в линейке курсов в рамках ODS Course Fest #1.
Мы анонсируем коротенький курс про лицензирование свободного программного обеспечения, объясним зачем это всё затевается и как жить дальше с полученными знаниями.
Следить за расписанием анонсов можно тут: https://ods.ai/events/course_fest_1/Timing.
А вживую будет стрим на канале ODS. Подключайтесь!
Open Data Science (ODS.ai)
ODS Course Fest #1, сезон курсов 2021 — Open Data Science
Code Mining
ODS Open Source Licensing Course Всё-таки не зря мы писали новость про лицензии ;) Завтра наш трек CodeMining участвует в линейке курсов в рамках ODS Course Fest #1. Мы анонсируем коротенький курс про лицензирование свободного программного обеспечения…
Таки да, случился анонс курса по лицензированию на ODS Course Fest #1.
Да, он будет с Data Science уклоном, но я обещал своему адвокату, что материал будет понятен всем ;).
Посмотреть анонс можно здесь.
Обратную связь и пожелания буду рад принять лично — @alsmirn.
Делитесь информацией с коллегами, кому может быть полезным.
Да, он будет с Data Science уклоном, но я обещал своему адвокату, что материал будет понятен всем ;).
Посмотреть анонс можно здесь.
Обратную связь и пожелания буду рад принять лично — @alsmirn.
Делитесь информацией с коллегами, кому может быть полезным.
The Matrix Resurrections
Мы всё понимаем, но не написать об этом не можем ;)
Вышел первый трейлер грядущей Матрицы.
Пумц: https://www.youtube.com/watch?v=9ix7TUGVYIo.
Мы всё понимаем, но не написать об этом не можем ;)
Вышел первый трейлер грядущей Матрицы.
Пумц: https://www.youtube.com/watch?v=9ix7TUGVYIo.
YouTube
The Matrix Resurrections – Official Trailer 1
The Matrix Resurrections in theaters and on HBO Max December 22 #TheMatrixMovie
-----------------
https://www.facebook.com/TheMatrixMovie/
https://twitter.com/TheMatrixMovie
https://www.instagram.com/thematrixmovie/
-----------------
From visionary filmmaker…
-----------------
https://www.facebook.com/TheMatrixMovie/
https://twitter.com/TheMatrixMovie
https://www.instagram.com/thematrixmovie/
-----------------
From visionary filmmaker…
Fast Inverse Square Root (Q_rsqrt)
Увы, но немногие современные разработчики знают, что вычисление корней медленнее чем возведение в степень. И уж совсем отдельные 🤓 знают трюки, как ускорить эти процессы, пусть и приблизительно 😉.
Алгоритм быстрого обратного квадратного корня стал известен, когда небезызвестная компания id Software открыла исходники движка Quake 3 Arena.
Делимся потрясающим и 🔥 видео, которое проливает свет на этот вопрос: https://www.youtube.com/watch?v=p8u_k2LIZyo.
Приятного просмотра!
Увы, но немногие современные разработчики знают, что вычисление корней медленнее чем возведение в степень. И уж совсем отдельные 🤓 знают трюки, как ускорить эти процессы, пусть и приблизительно 😉.
Алгоритм быстрого обратного квадратного корня стал известен, когда небезызвестная компания id Software открыла исходники движка Quake 3 Arena.
Делимся потрясающим и 🔥 видео, которое проливает свет на этот вопрос: https://www.youtube.com/watch?v=p8u_k2LIZyo.
Приятного просмотра!
YouTube
Fast Inverse Square Root — A Quake III Algorithm
In this video we will take an in depth look at the fast inverse square root and see where the mysterious number 0x5f3759df comes from. This algorithm became famous after id Software open sourced the engine for Quake III. On the way we will also learn about…
JetBrains DataSpell (EAP)
Ну что, кто-то дождался. JetBrains анонсировали выход новой IDE для Data Science. Фичи можно посмотреть тут.
Пока только EAP, т. е. программа раннего доступа. Если всё пройдет хорошо, то появится и платная версия.
Поживем-увидим.
Ну что, кто-то дождался. JetBrains анонсировали выход новой IDE для Data Science. Фичи можно посмотреть тут.
Пока только EAP, т. е. программа раннего доступа. Если всё пройдет хорошо, то появится и платная версия.
Поживем-увидим.
Хабр
Программа раннего доступа к JetBrains DataSpell открыта для всех
С тех пор, как мы анонсировали JetBrains DataSpell в марте, наша новая IDE для Data Science была доступна для ограниченного числа пользователей, которые помогали нам с тестированием IDE и...
nbdime - человеческие дифы для Jupiter Notebooks
А вот и как бы в догонку :P.
Одной из самых приличных заноз в мягких местах дата-саентистов является версионирование Юпитер-ноутбуков.
Да-да, есть мнение, что им даже не место в гите, не говоря о продакшене :)
Тем не менее, тул nbdime дает возможность не только вести версионирование удобно, но и проводить мержи.
Подробнее в официальной документации.
А вот и как бы в догонку :P.
Одной из самых приличных заноз в мягких местах дата-саентистов является версионирование Юпитер-ноутбуков.
Да-да, есть мнение, что им даже не место в гите, не говоря о продакшене :)
Тем не менее, тул nbdime дает возможность не только вести версионирование удобно, но и проводить мержи.
Подробнее в официальной документации.
Улучшение Kotlin через поиск аномалий
Ура, мы открываем рубрику #видоснавыходные. И начать хотелось бы с доклада Владимира Коваленко (@vovak) на треке CodeMining @Data Fest Online 2020.
Тот случай, когда анализ кода может быть применен для улучшения как дизайна языка так и его компилятора.
Процитируем тезисы:
Приятного просмотра!
Ура, мы открываем рубрику #видоснавыходные. И начать хотелось бы с доклада Владимира Коваленко (@vovak) на треке CodeMining @Data Fest Online 2020.
Тот случай, когда анализ кода может быть применен для улучшения как дизайна языка так и его компилятора.
Процитируем тезисы:
В этой работе мы применяем обнаружение аномалий к исходному коду и байткоду для облегчения разработки языка программирования и его компилятора. Мы определяем аномалию как фрагмент кода, отличающийся от типичного кода, написанного на определенном языке программирования. Выявление таких фрагментов выгодно как разработчикам языка, так и конечным пользователям, так как аномалии могут указывать на потенциальные проблемы с компилятором или с производительностью во время выполнения. Более того, аномалии могут соответствовать проблемам в проектировании языка.
Приятного просмотра!
YouTube
Владимир Коваленко | Using Large-Scale Anomaly Detection on Code to Improve Kotlin Compiler
Data Fest Online 2020
Code Mining track https://ods.ai/tracks/code-mining-df2020
Спикер: Владимир Коваленко, Senior researcher @JetBrains Research.
В этой работе мы применяем обнаружение аномалий к исходному коду и байткоду для облегчения разработки языка…
Code Mining track https://ods.ai/tracks/code-mining-df2020
Спикер: Владимир Коваленко, Senior researcher @JetBrains Research.
В этой работе мы применяем обнаружение аномалий к исходному коду и байткоду для облегчения разработки языка…
Одна из самых крупных конференций про анализ кода MSR объявила очередной хакатон.
В этом году, как обычно, четких тем нет, но организаторы предложили, как вариант, несколько направлений: анализ проблем в онбординге новых инженеров, нахождение проблем в коммуникациях и другие.
Полный список и описание тут
При этом для исследований предлагается использовать GrimoirLab, о нем мы когда-нибудь напишем поподробнее.
Регистрация до 18 октября.
В этом году, как обычно, четких тем нет, но организаторы предложили, как вариант, несколько направлений: анализ проблем в онбординге новых инженеров, нахождение проблем в коммуникациях и другие.
Полный список и описание тут
При этом для исследований предлагается использовать GrimoirLab, о нем мы когда-нибудь напишем поподробнее.
Регистрация до 18 октября.
conf.researchr.org
MSR 2022
Welcome to the website of the Mining Software Repositories 2022 conference!
The Mining Software Repositories (MSR) conference is the premier conference for data science, machine learning, and artificial intelligence in software engineering. The goal of the…
The Mining Software Repositories (MSR) conference is the premier conference for data science, machine learning, and artificial intelligence in software engineering. The goal of the…
Вышла JDK 17 LTS
Поздравляем Java-мир с выходом новой версии JDK 17!
Релиз тут.
Свежий обзор фич по-английски тут.
Комментарии по-русски здесь.
Если коротко:
- строгая инкапсуляция внутренних элементов JDK во имя обратной совместимости;
- поправлена семантика с плавающей запятой;
- новый интерфейс и реализация генераторов псевдослучайных чисел;
- нативное исполнение Java кода на AArch64;
- апплеты депрекейтед!
- паттерн матчинг, зарождение ;)
- ahead-of-time (AoT) compilation, удаление;
- колдовня с десериализацией.
Поздравляем Java-мир с выходом новой версии JDK 17!
Релиз тут.
Свежий обзор фич по-английски тут.
Комментарии по-русски здесь.
Если коротко:
- строгая инкапсуляция внутренних элементов JDK во имя обратной совместимости;
- поправлена семантика с плавающей запятой;
- новый интерфейс и реализация генераторов псевдослучайных чисел;
- нативное исполнение Java кода на AArch64;
- апплеты депрекейтед!
- паттерн матчинг, зарождение ;)
- ahead-of-time (AoT) compilation, удаление;
- колдовня с десериализацией.
Цикломатическая сложность
Мы продолжаем знакомить читателя с базовыми понятиями программной инженерии. Сегодня поговорим про цикломатическую сложность (cyclomatic complexity).
Если коротко, то это метрика оценки сложности программы разработанная в 1976 году Томасом МакКейбом (Thomas J. McCabe).
По сути, цикломатическая сложность (ЦС) части программного кода — количество линейно независимых маршрутов через программный код. Если выражать формулой, то параметр может быть представлен следующим образом:
где:
А чем же это всё может быть полезно?
1. Избыточные значения ЦС указывают на переусложненные участки вашего кода.
2. Комплексное отслеживание ЦС спасает вас от влетания на рефакторинг (внезапно!). 📈
3. Излишне высокие значения ЦС намекают на сложности сопровождения программы.
О пороговых значениях Цикломатической сложности и её отличиях от Когнитивной будем писать в следующих постах. А пока простая задачка, как вы думаете, какая ЦС у кода ниже?
Мы продолжаем знакомить читателя с базовыми понятиями программной инженерии. Сегодня поговорим про цикломатическую сложность (cyclomatic complexity).
Если коротко, то это метрика оценки сложности программы разработанная в 1976 году Томасом МакКейбом (Thomas J. McCabe).
По сути, цикломатическая сложность (ЦС) части программного кода — количество линейно независимых маршрутов через программный код. Если выражать формулой, то параметр может быть представлен следующим образом:
M = E − N + 2P
,где:
M
— цикломатическая сложность (ЦС),E
— количество рёбер в графе,N
— количество узлов в графе,P
— количество компонент связности.А чем же это всё может быть полезно?
1. Избыточные значения ЦС указывают на переусложненные участки вашего кода.
2. Комплексное отслеживание ЦС спасает вас от влетания на рефакторинг (внезапно!). 📈
3. Излишне высокие значения ЦС намекают на сложности сопровождения программы.
О пороговых значениях Цикломатической сложности и её отличиях от Когнитивной будем писать в следующих постах. А пока простая задачка, как вы думаете, какая ЦС у кода ниже?
void foo(void)
{
if (a)
if (b)
x=1;
else
x=2;
}
Moscow Python Conf++ 2021 и автоматически анализ цикломатической сложности
Вчера рассказали вам про цикломатическую сложность, а сегодня предлагаем поучаствовать в нашей совместной активности с Moscow Python Conf++ 2021 по ревью исходного кода тех участников, которые покажут самые сложные авторские решения.
Специально для этого мы совместно с организаторами разработали небольшой сервис, в который можно передать свой репозиторий на автоматический анализ цикломатической сложности. По итогам анализа выводится средняя цикломатическая сложность по проекту и топ-5 самых «сложных» файлов.
Ревью кода рекордсменов сложности будет проведено 27 сентября в лайв-режиме. Участник ПК конференции и сооснователь MoscowPython Михаил Корнеев разберет самые веселые кейсы, и покажет, как делать не нужно совсем, или как делать не нужно, если на то нет острой необходимости ;).
Сайт конференции: https://conf.python.ru/moscow/2021
Отправить свой репозиторий на анализ цикломатической сложности можно по ссылке: https://mpccomplexity.codescoring.com/
Вчера рассказали вам про цикломатическую сложность, а сегодня предлагаем поучаствовать в нашей совместной активности с Moscow Python Conf++ 2021 по ревью исходного кода тех участников, которые покажут самые сложные авторские решения.
Специально для этого мы совместно с организаторами разработали небольшой сервис, в который можно передать свой репозиторий на автоматический анализ цикломатической сложности. По итогам анализа выводится средняя цикломатическая сложность по проекту и топ-5 самых «сложных» файлов.
Ревью кода рекордсменов сложности будет проведено 27 сентября в лайв-режиме. Участник ПК конференции и сооснователь MoscowPython Михаил Корнеев разберет самые веселые кейсы, и покажет, как делать не нужно совсем, или как делать не нужно, если на то нет острой необходимости ;).
Сайт конференции: https://conf.python.ru/moscow/2021
Отправить свой репозиторий на анализ цикломатической сложности можно по ссылке: https://mpccomplexity.codescoring.com/
Что такое Software Composition Analysis (SCA)
Мы уже неоднократно упоминали в этом канале про open source, лицензии и разное вокруг них. Сегодня хотим дать максимально ёмкое и по возможности коротко определение термину, который это всё объединяет — SCA, он же Software Composition Analysis, он же композиционный/компоненты анализ программ/кода/софта/ПО.
SCA — это процесс, где:
1. на вход подаётся код в произвольной форме (репозиторий, директория с файлами, Docker-образ, бинарник и т.п.);
2. этот код сканируется на наличие и зависимость от всех возможных open source компонентов через поиск файлов манифестов (типа package.json, poetry.lock, Dockerfile и т.п.) и через умное сравнение файлов с компонентными базами с примесью всякой магии типа нечётких хэшей;
3. по списку этих компонентов проверяются лицензии и их совместимость с заявленной лицензией самого продукта и между собой;
4. и вишенкой на торте по списку этих компонентов ищутся известные уязвимости по открытым и полуоткрытым базам (например, National Vulnerability Database, Github Advisory и другим).
На вид просто, но по факту внутри множество особенностей и нюансов. Например, на выходе второго шага формируется ещё одна аббревиатура — SBoM, Software Bill of Materials, про его суть, форматы и при чём тут недавний приказ Байдена о кибербезопасности мы расскажем отдельно. Также отдельно расскажем, почему поиск уязвимостей по уже известной компонентной базе (сюрприз-сюрприз) совсем нетривиальная задача.
SCA не так известен среди русскоязычных разработчиков как SAST (статический анализ кода) или DAST (динамический анализ кода), но набирает очки с каждой новой историей найденной уязвимости в распространённой open source библиотеке.
Хорошая новость в том, что множество SCA-like инструментов в той или иной степени присутствуют в экосистемах менеджеров пакетов, IDE, систем контроля версий или в виде отдельных инструментов. К сожалению, не все они удобны, точны или просты в использовании. But we're getting there.
Ну и если короткое описание только разожгло ваше любопытство, посмотрите обзорный доклад про эволюцию подходов SCA с прошедшего Data Fest Online v2: https://www.youtube.com/watch?v=9fydREfnKb4. Красочные слайды и висящая голова на белом фоне в комплекте.
#видоснавыходные #словарькодмайнера
Мы уже неоднократно упоминали в этом канале про open source, лицензии и разное вокруг них. Сегодня хотим дать максимально ёмкое и по возможности коротко определение термину, который это всё объединяет — SCA, он же Software Composition Analysis, он же композиционный/компоненты анализ программ/кода/софта/ПО.
SCA — это процесс, где:
1. на вход подаётся код в произвольной форме (репозиторий, директория с файлами, Docker-образ, бинарник и т.п.);
2. этот код сканируется на наличие и зависимость от всех возможных open source компонентов через поиск файлов манифестов (типа package.json, poetry.lock, Dockerfile и т.п.) и через умное сравнение файлов с компонентными базами с примесью всякой магии типа нечётких хэшей;
3. по списку этих компонентов проверяются лицензии и их совместимость с заявленной лицензией самого продукта и между собой;
4. и вишенкой на торте по списку этих компонентов ищутся известные уязвимости по открытым и полуоткрытым базам (например, National Vulnerability Database, Github Advisory и другим).
На вид просто, но по факту внутри множество особенностей и нюансов. Например, на выходе второго шага формируется ещё одна аббревиатура — SBoM, Software Bill of Materials, про его суть, форматы и при чём тут недавний приказ Байдена о кибербезопасности мы расскажем отдельно. Также отдельно расскажем, почему поиск уязвимостей по уже известной компонентной базе (сюрприз-сюрприз) совсем нетривиальная задача.
SCA не так известен среди русскоязычных разработчиков как SAST (статический анализ кода) или DAST (динамический анализ кода), но набирает очки с каждой новой историей найденной уязвимости в распространённой open source библиотеке.
Хорошая новость в том, что множество SCA-like инструментов в той или иной степени присутствуют в экосистемах менеджеров пакетов, IDE, систем контроля версий или в виде отдельных инструментов. К сожалению, не все они удобны, точны или просты в использовании. But we're getting there.
Ну и если короткое описание только разожгло ваше любопытство, посмотрите обзорный доклад про эволюцию подходов SCA с прошедшего Data Fest Online v2: https://www.youtube.com/watch?v=9fydREfnKb4. Красочные слайды и висящая голова на белом фоне в комплекте.
#видоснавыходные #словарькодмайнера
YouTube
Алексей Смирнов | Эволюция подходов Software Composition Analysis (SCA)
Data Fest Online 2021
Code Mining track https://ods.ai/tracks/code-mining-df2021
Спикер: Алексей Смирнов, Основатель Profiscope.io / CodeScoring
Организатор трека CodeMining @ods.ai
Опыт применения инструментов из области композиционного анализа программного…
Code Mining track https://ods.ai/tracks/code-mining-df2021
Спикер: Алексей Смирнов, Основатель Profiscope.io / CodeScoring
Организатор трека CodeMining @ods.ai
Опыт применения инструментов из области композиционного анализа программного…
Коротко о том, как менять копирайты в лицензиях ;).
ClickHouse теперь не только база, но и Inc.
Upd: Да, обратите внимание на автора коммита, Тигран Худавердян, управляющий директор и член совета директоров группы компаний «Яндекс». Регистрация для одного коммита. Миленько.
ClickHouse теперь не только база, но и Inc.
Upd: Да, обратите внимание на автора коммита, Тигран Худавердян, управляющий директор и член совета директоров группы компаний «Яндекс». Регистрация для одного коммита. Миленько.
Criticality Score
Одна из фундаментальных проблем проектов с открытым исходным кодом — трагедия общих ресурсов (tragedy of the commons). Пользуются OSS решениями всё больше и больше, но поддержкой многих проектов по-прежнему занимается довольно узкая группа людей, чей ресурс рискует однажды кончиться, что по цепочке может привести к проблемам в зависимом комерческом коде.
К счастью, многие пытаются эту проблему решить. И один из интересных ходов в эту сторону сделал в прошлом году Гугл, выпустив проект Criticality Score — алгоритм оценки open source проектов по их критичности для всей экосистемы. Логика в том, что такой рейтинг на основе такого параметра поможет выявить важные проекты, которым не хватает внимания спонсоров и контрибьюторов.
Алгоритм разработал небезызвестный Роб Пайк, один из создателей таких штук как UTF-8, Unix и языка программирования Go, над которым он и продолжает работать в Google.
На вход алгоритм принимает репозиторий с кодом, ранжирует его по набору параметров, комбинирует всё, подставляя в формулу (и это не просто взвешенная сумма) и выдаёт значение от 0 (наименее важный проект) до 1 (самый критически важный проект). Среди параметров в оценке:
- даты создания и последнего обновления
- число контрибьюторов и разных организаций, к которым они относятся
- частоты коммитов и релизов
- число зависимых проектов
Дополнительно реализованы скрипты, которые анализируют github и выдают топы по каждому языку и общий.
Так первую десятку открывают такие проекты как Node.js, Kubernetes (K8s) и язык программирования Rust, а замыкает её Git, обогнав Linux на 10 позиций.
Реализация алгоритма на python: https://github.com/ossf/criticality_score
Статья Роба Пайка про алгоритм: https://github.com/ossf/criticality_score/blob/main/Quantifying_criticality_algorithm.pdf
Списки критически важных проектов по языкам: https://commondatastorage.googleapis.com/ossf-criticality-score/index.html
Одна из фундаментальных проблем проектов с открытым исходным кодом — трагедия общих ресурсов (tragedy of the commons). Пользуются OSS решениями всё больше и больше, но поддержкой многих проектов по-прежнему занимается довольно узкая группа людей, чей ресурс рискует однажды кончиться, что по цепочке может привести к проблемам в зависимом комерческом коде.
К счастью, многие пытаются эту проблему решить. И один из интересных ходов в эту сторону сделал в прошлом году Гугл, выпустив проект Criticality Score — алгоритм оценки open source проектов по их критичности для всей экосистемы. Логика в том, что такой рейтинг на основе такого параметра поможет выявить важные проекты, которым не хватает внимания спонсоров и контрибьюторов.
Алгоритм разработал небезызвестный Роб Пайк, один из создателей таких штук как UTF-8, Unix и языка программирования Go, над которым он и продолжает работать в Google.
На вход алгоритм принимает репозиторий с кодом, ранжирует его по набору параметров, комбинирует всё, подставляя в формулу (и это не просто взвешенная сумма) и выдаёт значение от 0 (наименее важный проект) до 1 (самый критически важный проект). Среди параметров в оценке:
- даты создания и последнего обновления
- число контрибьюторов и разных организаций, к которым они относятся
- частоты коммитов и релизов
- число зависимых проектов
Дополнительно реализованы скрипты, которые анализируют github и выдают топы по каждому языку и общий.
Так первую десятку открывают такие проекты как Node.js, Kubernetes (K8s) и язык программирования Rust, а замыкает её Git, обогнав Linux на 10 позиций.
Реализация алгоритма на python: https://github.com/ossf/criticality_score
Статья Роба Пайка про алгоритм: https://github.com/ossf/criticality_score/blob/main/Quantifying_criticality_algorithm.pdf
Списки критически важных проектов по языкам: https://commondatastorage.googleapis.com/ossf-criticality-score/index.html
Лицензирование Питон-приложений
В ближайший вторник (28 сентября в 11:25), @alsmirn выступит на очередном Moscow Python Conf++ и расскажет про сабж.
Тизер выступления можно поглядеть в записях Moscow Python Podcast, где проблематика также обсуждаласьс в уютной атмосфере кухни Григория Петрова ;).
Тезисы.
- Рассмотрим общую картину применения Open Source-лицензий в PyPI: общие практики, нисходящие и восходящие тренды выбора новой лицензии, а также случаи её смены.
- Ответим на частные вопросы о том, какие лицензии наиболее часто применяются для проектов в разных областях и почему: от веб-приложений и фреймворков до библиотек и утилит в областях машинного обучения (ML) и обработки естественного языка (NLP).
- C применением CodeScoring изучим, какие сюрпризы несовместимости лицензий можно поймать, если относиться к задаче лицензирования собственного кода халатно. И в конце концов, поймем, как всего этого избежать и корректно настроить CI/CD в части отслеживания лицензионной чистоты.
ЗЫ: говорят, что будет трансляция.
В ближайший вторник (28 сентября в 11:25), @alsmirn выступит на очередном Moscow Python Conf++ и расскажет про сабж.
Тизер выступления можно поглядеть в записях Moscow Python Podcast, где проблематика также обсуждаласьс в уютной атмосфере кухни Григория Петрова ;).
Тезисы.
- Рассмотрим общую картину применения Open Source-лицензий в PyPI: общие практики, нисходящие и восходящие тренды выбора новой лицензии, а также случаи её смены.
- Ответим на частные вопросы о том, какие лицензии наиболее часто применяются для проектов в разных областях и почему: от веб-приложений и фреймворков до библиотек и утилит в областях машинного обучения (ML) и обработки естественного языка (NLP).
- C применением CodeScoring изучим, какие сюрпризы несовместимости лицензий можно поймать, если относиться к задаче лицензирования собственного кода халатно. И в конце концов, поймем, как всего этого избежать и корректно настроить CI/CD в части отслеживания лицензионной чистоты.
ЗЫ: говорят, что будет трансляция.
Благодарности псто
TL;DR: Всем спасибо!
Немного осмыслились после Moscow Python Conf++ и хочется выразить благодарность его организаторам и вдохновителям из сообщества Moscow Python.
Спасибо Вале Домбровскому и Коле Маркову за приглашение! Конференция душевная, много полезного общения и замечательных ребят, а с ними идей и планов на будущие движухи.
Спасибо Пете Ермакову и Наташе Хапаевой, коллегам по ods.ai за интересный круглый стол, на котором мы обсудили взаимодействие Data Science/Python сообществ.
Спасибо Михаилу Корнееву, Михаилу Кольцову и Сергею Буткину за ревью кода участников конференции. Получилось живо и хорошо. Наша команда подогнала анализатор, ребята сделали суперский разбор. В очередной раз показана наглядная польза измерения цикломатической сложности в проектах во избежание преждевременных рефакторингов.
Спасибо участникам конференции афтепати первого дня конференции за ценнейшие вопросы про лицензирование open source, что заставило нас в ночи дополнить доклад и найти лицензионные нарушения в библиотеке requests ;).
Ура!
TL;DR: Всем спасибо!
Немного осмыслились после Moscow Python Conf++ и хочется выразить благодарность его организаторам и вдохновителям из сообщества Moscow Python.
Спасибо Вале Домбровскому и Коле Маркову за приглашение! Конференция душевная, много полезного общения и замечательных ребят, а с ними идей и планов на будущие движухи.
Спасибо Пете Ермакову и Наташе Хапаевой, коллегам по ods.ai за интересный круглый стол, на котором мы обсудили взаимодействие Data Science/Python сообществ.
Спасибо Михаилу Корнееву, Михаилу Кольцову и Сергею Буткину за ревью кода участников конференции. Получилось живо и хорошо. Наша команда подогнала анализатор, ребята сделали суперский разбор. В очередной раз показана наглядная польза измерения цикломатической сложности в проектах во избежание преждевременных рефакторингов.
Спасибо участникам конференции афтепати первого дня конференции за ценнейшие вопросы про лицензирование open source, что заставило нас в ночи дополнить доклад и найти лицензионные нарушения в библиотеке requests ;).
Ура!
А тем временем, нас стало овер 100 подписчиков и мы открываем комментарии, как и обещали. Тем не менее, рассказать про наш уютный канальчик коллегам всё-равно стоит ;).