Code Mining pinned «Очередной перенос лекции по лицензированию :/ Волевым решением, мы снова переносим лекцию, которая была запланирована на завтра (18.11.21). Наш замечательный курс ещё находится в стадии разработки, поэтому многие идеи и материалы рождаются на ходу и требуют…»
Что такое PURL?
#словарькодмайнера
Питонист работает с PyPi и легко ориентируется в названиях подключаемых пакетов. Фронтендер аналогично работает с NPM. Но что если вам надо в рамках одной системы хранить, использовать и различать пакеты из разных экосистем?
Эту задачу и призван решить PURL — package "mostly universal" URL, т.е. практически универсальный URL (идентификатор) пакета. Это далеко не единственная, но наш взгляд одна из самых удачных схем идентификации пакетов, применимая к любому пакетному менеджеру и технологии.
Идентификатор составляют семь компонентов, объединённых в строку:
pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie
pkg:gem/ruby-advisory-db-check@0.12.4
pkg:github/package-url/purl-spec@244fd47e07d1004f0aed9c
pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?packaging=sources
pkg:npm/foobar@12.3.1
pkg:nuget/EnterpriseLibrary.Common@6.0.1304
pkg:pypi/django@1.11.1
URL в названии используется не случайно, это действительно валидный адрес, соответсвующий стандартам, который вполне могут научиться обрабатывать разные приложения.
Подробно изучить стандарт можно по ссылке: https://github.com/package-url/purl-spec
#словарькодмайнера
Питонист работает с PyPi и легко ориентируется в названиях подключаемых пакетов. Фронтендер аналогично работает с NPM. Но что если вам надо в рамках одной системы хранить, использовать и различать пакеты из разных экосистем?
Эту задачу и призван решить PURL — package "mostly universal" URL, т.е. практически универсальный URL (идентификатор) пакета. Это далеко не единственная, но наш взгляд одна из самых удачных схем идентификации пакетов, применимая к любому пакетному менеджеру и технологии.
Идентификатор составляют семь компонентов, объединённых в строку:
scheme:type/namespace/name@version?qualifiers#subpath
```- scheme — константа со значением pkg
- type — обозначение пакетного менеджера (из словаря)
- namespace — например, groupId в Maven
- name и version говорят сами за себя
- qualifiers — дополнительная опциональная информация, например указание на архитектуру или операционную систему
- subpath — опциональный путь внутри пакета, относительно его корня
На примерах:
pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie
pkg:gem/ruby-advisory-db-check@0.12.4
pkg:github/package-url/purl-spec@244fd47e07d1004f0aed9c
pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?packaging=sources
pkg:npm/foobar@12.3.1
pkg:nuget/EnterpriseLibrary.Common@6.0.1304
pkg:pypi/django@1.11.1
`
URL в названии используется не случайно, это действительно валидный адрес, соответсвующий стандартам, который вполне могут научиться обрабатывать разные приложения.
Подробно изучить стандарт можно по ссылке: https://github.com/package-url/purl-spec
GitHub
GitHub - package-url/purl-spec: A minimal specification for purl aka. a package "mostly universal" URL, join the discussion at…
A minimal specification for purl aka. a package "mostly universal" URL, join the discussion at https://gitter.im/package-url/Lobby - GitHub - package-url/purl-spec: A minimal sp...
Ключевые моменты из The Forrester Wave™: Software Composition Analysis, Q3 2021
https://reprints2.forrester.com/#/assets/2/425/RES176091/report
Отчёт оценивает 10 ключевых игроков на рынке SCA по 37 параметрам из трёх групп: текущее предложение, стратегия, доля рынка. У каждого из представленных участников есть enterprise решения по компонентному анализу и минимум $10 млн выручки за эти продукты.
- средний процент использования open source библиотек в коде вырос с 36% в 2015 до 75% в 2020 году, важность мониторинга уязвимостей и соответствия этих библиотек внутрикорпоративным политикам растёт
- недавний приказ в США обязал всех поставщиков софта государству составлять и сдавать SBOM (Software Bill of Materials) в форматах SPDX или CycloneDx. SBOM — полный список, используемых сторонних компонент с информацией по их лицензиям, авторам и уязвимостям
- самые перспективные фичи SCA провайдеров:
- находить и анализировать не только open source, но и бинарные, непроприетарные компоненты и элементы инфраструктуры
- автоматизировать обновления и фиксы, при этом давать подробную информацию по изменениям и рискам программистам
- лидеры по сумме параметров вполне предсказуемо WhiteSource и Synopsys Black Duck. Первый делает большой упор на помощь разработчикам в исправлении проблем, во втором больше выделяется комплексный подход к анализу безопасности и более точный репортинг потенциальных проблем
- следом идут
- SonaType с целой линейкой дополняющих продуктов и фокусом на комплексное управление политиками вокруг компонентов
- Snyk с сильным упором на удобство разработчиков, интеграции и глубину анализа уязвимостей
- Veracode со стремлением объединить SCA с функциями SAST (статический анализ на уязвимости)
- из интересных чисел:
- несмотря на свою точность Black Duck получил всего 1 из 5 за качество отчётов
- WS при этом почему-то получил 1 из 5 за подход к рынку
- самые крутые отчёты, похоже, у Snyk, а пользователей больше всего у Sonatype
- прибыльность получила всего 3% веса в разделе стратегии, что кажется очень мало, если мы говорим про бизнес.
https://reprints2.forrester.com/#/assets/2/425/RES176091/report
Отчёт оценивает 10 ключевых игроков на рынке SCA по 37 параметрам из трёх групп: текущее предложение, стратегия, доля рынка. У каждого из представленных участников есть enterprise решения по компонентному анализу и минимум $10 млн выручки за эти продукты.
- средний процент использования open source библиотек в коде вырос с 36% в 2015 до 75% в 2020 году, важность мониторинга уязвимостей и соответствия этих библиотек внутрикорпоративным политикам растёт
- недавний приказ в США обязал всех поставщиков софта государству составлять и сдавать SBOM (Software Bill of Materials) в форматах SPDX или CycloneDx. SBOM — полный список, используемых сторонних компонент с информацией по их лицензиям, авторам и уязвимостям
- самые перспективные фичи SCA провайдеров:
- находить и анализировать не только open source, но и бинарные, непроприетарные компоненты и элементы инфраструктуры
- автоматизировать обновления и фиксы, при этом давать подробную информацию по изменениям и рискам программистам
- лидеры по сумме параметров вполне предсказуемо WhiteSource и Synopsys Black Duck. Первый делает большой упор на помощь разработчикам в исправлении проблем, во втором больше выделяется комплексный подход к анализу безопасности и более точный репортинг потенциальных проблем
- следом идут
- SonaType с целой линейкой дополняющих продуктов и фокусом на комплексное управление политиками вокруг компонентов
- Snyk с сильным упором на удобство разработчиков, интеграции и глубину анализа уязвимостей
- Veracode со стремлением объединить SCA с функциями SAST (статический анализ на уязвимости)
- из интересных чисел:
- несмотря на свою точность Black Duck получил всего 1 из 5 за качество отчётов
- WS при этом почему-то получил 1 из 5 за подход к рынку
- самые крутые отчёты, похоже, у Snyk, а пользователей больше всего у Sonatype
- прибыльность получила всего 3% веса в разделе стратегии, что кажется очень мало, если мы говорим про бизнес.
Open Source Licensing Course, final
Вот мы и на финишной прямой курса.
Сегодня в 19:00 заключительная лекция.
План лекции:
- множественное и двойное лицензирование;
- картина лицензирования в PyPI и в Data Science;
- свободные и несвободные инструменты для лицензионной чистоты проектов и как с ними работать в рамках CI/CD;
- подведение итогов по домашним заданиям;
- discussion по теме.
Если останутся откртые вопросы, допускаем, что сделаем ещё одну лекцию. Ну а если без вопросов, то мы уже сфокусируемся на записи видосов для широкого распространения.
Встречаемся сегодня в 19:00 в Spatial Chat,
по ссылке: https://spatial.chat/s/ods?sp=Odscoursefest1
Вот мы и на финишной прямой курса.
Сегодня в 19:00 заключительная лекция.
План лекции:
- множественное и двойное лицензирование;
- картина лицензирования в PyPI и в Data Science;
- свободные и несвободные инструменты для лицензионной чистоты проектов и как с ними работать в рамках CI/CD;
- подведение итогов по домашним заданиям;
- discussion по теме.
Если останутся откртые вопросы, допускаем, что сделаем ещё одну лекцию. Ну а если без вопросов, то мы уже сфокусируемся на записи видосов для широкого распространения.
Встречаемся сегодня в 19:00 в Spatial Chat,
по ссылке: https://spatial.chat/s/ods?sp=Odscoursefest1
app.spatial.chat
SpatialChat
Virtual space platform to help remote teams collaborate.
Code Mining pinned «Open Source Licensing Course, final Вот мы и на финишной прямой курса. Сегодня в 19:00 заключительная лекция. План лекции: - множественное и двойное лицензирование; - картина лицензирования в PyPI и в Data Science; - свободные и несвободные инструменты…»
Open Source Licensing Course - итоги и продолжение
Вот и закончилась основная часть курса по лицензированию. Урррыа 🥳🎉
Some stats. Суммарно, на курсе объявилось 20 уникальных участников, считаем, что это довольно неплохо. До финиша дошло не так много людей, как хотелось бы. Тем не менее, мы не ожидали, а ВСЕ домашние задания решенил ЦЕЛЫЙ ОДИН слушатель, за что мы особенно признательны! 🔥
По нашему желанию, мы продолжаем курс и подготовим материал не по ручному разбору лицензий, а о том как всё настроить и следить автоматически при помощи доступного инструментария. Но дату объявим попозжа, чтобы не переносить лишний раз ;).
ЗЫ: Слайды только что прошедшей лекции мы опубликуем в начале следующей недели.
Вот и закончилась основная часть курса по лицензированию. Урррыа 🥳🎉
Some stats. Суммарно, на курсе объявилось 20 уникальных участников, считаем, что это довольно неплохо. До финиша дошло не так много людей, как хотелось бы. Тем не менее, мы не ожидали, а ВСЕ домашние задания решенил ЦЕЛЫЙ ОДИН слушатель, за что мы особенно признательны! 🔥
По нашему желанию, мы продолжаем курс и подготовим материал не по ручному разбору лицензий, а о том как всё настроить и следить автоматически при помощи доступного инструментария. Но дату объявим попозжа, чтобы не переносить лишний раз ;).
ЗЫ: Слайды только что прошедшей лекции мы опубликуем в начале следующей недели.
Awesome Open Source Licensing
https://github.com/CodeScoring/awesome-open-source-licensing
По итогу создания курса по Open Source Licensing под уютным крылом ods.ai (https://ods.ai/tracks/open-source-licensing-course), мы собрали кучу рефов, статей, видосиков и тулов, короче все знания, которые могут вам пригодиться в повседневной разработке программного обеспечения при работе с Open Source.
Stars, forks, вот это всё, и передайте коллегам!
https://github.com/CodeScoring/awesome-open-source-licensing
По итогу создания курса по Open Source Licensing под уютным крылом ods.ai (https://ods.ai/tracks/open-source-licensing-course), мы собрали кучу рефов, статей, видосиков и тулов, короче все знания, которые могут вам пригодиться в повседневной разработке программного обеспечения при работе с Open Source.
Stars, forks, вот это всё, и передайте коллегам!
GitHub
GitHub - CodeScoring/awesome-open-source-licensing: Cool links, tools & papers related to Open Source Licensing
Cool links, tools & papers related to Open Source Licensing - CodeScoring/awesome-open-source-licensing
Code Mining pinned «Awesome Open Source Licensing https://github.com/CodeScoring/awesome-open-source-licensing По итогу создания курса по Open Source Licensing под уютным крылом ods.ai (https://ods.ai/tracks/open-source-licensing-course), мы собрали кучу рефов, статей, видосиков…»
Code Mining
Open Source Licensing Course - итоги и продолжение Вот и закончилась основная часть курса по лицензированию. Урррыа 🥳🎉 Some stats. Суммарно, на курсе объявилось 20 уникальных участников, считаем, что это довольно неплохо. До финиша дошло не так много людей…
03. Open Source Licensing Course. Lecture.pdf
2.7 MB
Делимся слайдами с третьей лекции по лицензированию
Внутри:
- множественное и двойное лицензирование
- картина лицензирования в PyPI и в Data Science
- свободные и несвободные инструменты для лицензионной чистоты проектов и как с ними работать в рамках CI/CD
- подведение итогов по домашним заданиям
- ещё домашние задания
Продолжение в разработке.
Внутри:
- множественное и двойное лицензирование
- картина лицензирования в PyPI и в Data Science
- свободные и несвободные инструменты для лицензионной чистоты проектов и как с ними работать в рамках CI/CD
- подведение итогов по домашним заданиям
- ещё домашние задания
Продолжение в разработке.
GitHub Copilot Labs
В "скандальном" Copilot появились Labs для VSCode: если выделить кусочек кода, то он попытается его описать по-английски. Занимательная игрушка, можно потыкаться.
Продолжаем наблюдения.
В "скандальном" Copilot появились Labs для VSCode: если выделить кусочек кода, то он попытается его описать по-английски. Занимательная игрушка, можно потыкаться.
Продолжаем наблюдения.
GitHub
Announcing GitHub Copilot Labs · community · Discussion #8308
⚠️ UPDATE March 30 ⚠️: The new GitHub Copilot Labs extension is HERE. And our new discussion forum is HERE. ⚠️ UPDATE March 28 ⚠️: We are deprecating Labs from the Copilot Nightly extension startin...
Data Elka 2021 🥇
Сап, как говорится в одном небезызвестном сообществе ;).
Мы рады пригласить подписчиков на ежегодное замечательное событие Data Elka, в рамках которого подводятся итоги уходящего года и вручаются памятные подарки за все хорошее лучшим участникам OpenDataScience-сообщества 🤓.
В связи с этим, как организаторы CodeMining-трека, обращаемся к сообществу за помощью с выбором лучших докладов 2021 года.
Свои видео мы их публиковали в рубрике #видоснавыходные в перемешку с другими не менее интересными видосами.
Все CodeMining-видео последнего года можно посмотреть на страничке посвященной прошедшему DataFest'у: https://ods.ai/tracks/code-mining-df2021
Если вам что-то понравилось, то велкам поддержать наше скромное ML4Code-направление.
Видео номинированы в разделе
Результаты будут озвучены вживую на трансляции в субботу.
Во славу Дата Ёлке! 🎄🎄🎄
Сап, как говорится в одном небезызвестном сообществе ;).
Мы рады пригласить подписчиков на ежегодное замечательное событие Data Elka, в рамках которого подводятся итоги уходящего года и вручаются памятные подарки за все хорошее лучшим участникам OpenDataScience-сообщества 🤓.
В связи с этим, как организаторы CodeMining-трека, обращаемся к сообществу за помощью с выбором лучших докладов 2021 года.
Свои видео мы их публиковали в рубрике #видоснавыходные в перемешку с другими не менее интересными видосами.
Все CodeMining-видео последнего года можно посмотреть на страничке посвященной прошедшему DataFest'у: https://ods.ai/tracks/code-mining-df2021
Если вам что-то понравилось, то велкам поддержать наше скромное ML4Code-направление.
Видео номинированы в разделе
Industry domains
, голосовать можно тут (рега обязательна).Результаты будут озвучены вживую на трансляции в субботу.
Во славу Дата Ёлке! 🎄🎄🎄
Почему знать про лицензионную чистоту важно?
Многие слышали про более чем десятилетний спор за нарушение авторских прав на части кода Java между Oracle & Google. Всё разрешилось в сторону последних 👩⚖️.
Сейчас на наших глазах, по ходу, возникает очередной резонансный кейс за решением которого интересно будет пронаблюдать.
Сообществом весьма себе предполагается, что свежезарелиженая платформа TikTok Live Studio основана на OBS (лицензия GPL v2.0), что, как мы знаем из курса лицензирования, накладывает определенные условия, как минимум вскрытие пациента под той же лицензией и упоминание копирайта и лицензии :).
Почитать материалы с комментариями IANAL (I'am not a lawyer) специалистов можно на Hacker News.
Мы у себя в Лаборатории обязательно глянем кейс и расскажем об этом через некоторое время. Ну а для проактивных читателей это может быть хорошим Домашним заданием (или тестовым ;).
Многие слышали про более чем десятилетний спор за нарушение авторских прав на части кода Java между Oracle & Google. Всё разрешилось в сторону последних 👩⚖️.
Сейчас на наших глазах, по ходу, возникает очередной резонансный кейс за решением которого интересно будет пронаблюдать.
Сообществом весьма себе предполагается, что свежезарелиженая платформа TikTok Live Studio основана на OBS (лицензия GPL v2.0), что, как мы знаем из курса лицензирования, накладывает определенные условия, как минимум вскрытие пациента под той же лицензией и упоминание копирайта и лицензии :).
Почитать материалы с комментариями IANAL (I'am not a lawyer) специалистов можно на Hacker News.
Мы у себя в Лаборатории обязательно глянем кейс и расскажем об этом через некоторое время. Ну а для проактивных читателей это может быть хорошим Домашним заданием (или тестовым ;).
Code Mining
Data Elka 2021 🥇 Сап, как говорится в одном небезызвестном сообществе ;). Мы рады пригласить подписчиков на ежегодное замечательное событие Data Elka, в рамках которого подводятся итоги уходящего года и вручаются памятные подарки за все хорошее лучшим участникам…
CodeMining.report.21.pdf
785.6 KB
Коротенькие итоги года @ods.ai
В прошедшую субботу (18.12), подвели итоги года в ODS-сообществе на Data Ёlka. Прикладываем презентацию и ссылку на стрим, где она озвучена голосом.
В прошедшую субботу (18.12), подвели итоги года в ODS-сообществе на Data Ёlka. Прикладываем презентацию и ссылку на стрим, где она озвучена голосом.
С новым годом! 🌲🌲🌲
Мы "немного" поспали и продолжаем. Всем здоровья и всего такого!
Что-то в ушедшем году не успели довести и опубликовать, поэтому в ближайшую неделю-две будем закрывать гештальты :).
ЗЫ: прикрутили реакшены 😘.
Мы "немного" поспали и продолжаем. Всем здоровья и всего такого!
Что-то в ушедшем году не успели довести и опубликовать, поэтому в ближайшую неделю-две будем закрывать гештальты :).
ЗЫ: прикрутили реакшены 😘.
Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation
В конце прошлого года вышла довольно любопытная статья об исследовании изменения сознания у разработчиков под воздействием Каннабиса от Университета Мичигана.
В исследовании поучаствовало 803 разработчика (из них 450 программиста с полной занятостью). Довольно интересно почитать про мотивацию, ожидания и реальные результаты исследуемых.
Почитать есть что, но самое интересное и ожидаемое на картинках выше.
Работа проведена в целях поддержания политики борьбы с наркотиками на рабочих местах программистов.
Статья: https://arxiv.org/abs/2112.09365
В конце прошлого года вышла довольно любопытная статья об исследовании изменения сознания у разработчиков под воздействием Каннабиса от Университета Мичигана.
В исследовании поучаствовало 803 разработчика (из них 450 программиста с полной занятостью). Довольно интересно почитать про мотивацию, ожидания и реальные результаты исследуемых.
Почитать есть что, но самое интересное и ожидаемое на картинках выше.
Работа проведена в целях поддержания политики борьбы с наркотиками на рабочих местах программистов.
Статья: https://arxiv.org/abs/2112.09365
PyNose: a Test Smell Detector for Python
А ещё в прошлом году у JetBrains Research вышла определялка говнокода в python-тестах. Работает для
Виды test smell, которые выделяют авторы:
- Assertion Roulette
- Conditional Test Logic
- Constructor Initialization
- Default Test
- Duplicate Assert
- Empty Test
- Exception Handling
- Lack of Cohesion of Test Cases
- Magic Number Test
- Obscure In-Line Setup
- Redundant Assertion
- Redundant Print
- Sleepy Test
- Suboptimal Assert
- Test Maverick
Использовать можно в виде плагина к Pycharm.
Код: https://github.com/jetbrains-research/pynose
Подробности в статье: https://arxiv.org/abs/2108.04639. Единственное, она описывает предыдущую версию, которая в ветке
Upd. Уточняем как использовать:
1. берете сборку плагина отсюда (.zip)
2. ставите по инструкции
3. берете тесты, можно вот эти или свои какие-нибудь ;)
4. ...
5. profit, в IDE появляются подсказки, как показано на гифках
А ещё в прошлом году у JetBrains Research вышла определялка говнокода в python-тестах. Работает для
Unittest
& Pytest
. Версия 1.0.0 вышла в декабре'21.Виды test smell, которые выделяют авторы:
- Assertion Roulette
- Conditional Test Logic
- Constructor Initialization
- Default Test
- Duplicate Assert
- Empty Test
- Exception Handling
- Lack of Cohesion of Test Cases
- Magic Number Test
- Obscure In-Line Setup
- Redundant Assertion
- Redundant Print
- Sleepy Test
- Suboptimal Assert
- Test Maverick
Использовать можно в виде плагина к Pycharm.
Код: https://github.com/jetbrains-research/pynose
Подробности в статье: https://arxiv.org/abs/2108.04639. Единственное, она описывает предыдущую версию, которая в ветке
ASE2021
.Upd. Уточняем как использовать:
1. берете сборку плагина отсюда (.zip)
2. ставите по инструкции
3. берете тесты, можно вот эти или свои какие-нибудь ;)
4. ...
5. profit, в IDE появляются подсказки, как показано на гифках
GitHub
GitHub - JetBrains-Research/PyNose: A test smell detector for Python.
A test smell detector for Python. Contribute to JetBrains-Research/PyNose development by creating an account on GitHub.
Использование публичных наборов данных в коммерческом ПО
Коллеги из ODS поделились прекрасной статьёй: Can I use this publicly available dataset to build commercial AI software? Most likely not.
Поднят крайне важный вопрос для DataScience сообщества. Поясняем, оказывается (wat?), далеко не все публично доступные наборы данных можно использовать для построения коммерческих решений.
Авторы рассматривают лицензионные соглашения 6 популярных датасетов использующихся в Computer Vision (CIFAR-10, ImageNet, Cityscapes, FFHQ, VGGFaces2 и MS COCO) и делают "прекрасное" заключение, что натренированные на этих данных модели, как минимум, не могут коммерциализироваться.
Пример результатов анализа лицензии датасета CIFAR-10 приведен на скрине.
Логично было предположить подобное, но для многих это может быть прямо открытием века 💣.
Посмотрим, чем ответит сообщество ;).
ЗЫ: а мы в свою очередь поняли, чем ещё дополнить курс по Open Source лицензированию.
Коллеги из ODS поделились прекрасной статьёй: Can I use this publicly available dataset to build commercial AI software? Most likely not.
Поднят крайне важный вопрос для DataScience сообщества. Поясняем, оказывается (wat?), далеко не все публично доступные наборы данных можно использовать для построения коммерческих решений.
Авторы рассматривают лицензионные соглашения 6 популярных датасетов использующихся в Computer Vision (CIFAR-10, ImageNet, Cityscapes, FFHQ, VGGFaces2 и MS COCO) и делают "прекрасное" заключение, что натренированные на этих данных модели, как минимум, не могут коммерциализироваться.
Пример результатов анализа лицензии датасета CIFAR-10 приведен на скрине.
Логично было предположить подобное, но для многих это может быть прямо открытием века 💣.
Посмотрим, чем ответит сообщество ;).
ЗЫ: а мы в свою очередь поняли, чем ещё дополнить курс по Open Source лицензированию.