Code Mining
899 subscribers
82 photos
4 videos
8 files
158 links
ML4Code во всей красе, анализ кода и артефактов: лицензии, уязвимости, процессы. Комментарии к актуальным и не очень новостям, аналитика, эпизодический авторский контент, мемасики.

При поддержке: ods.ai, @codescoring
По вопросам — @alsmirn
Download Telegram
Code Mining pinned «Очередной перенос лекции по лицензированию :/ Волевым решением, мы снова переносим лекцию, которая была запланирована на завтра (18.11.21). Наш замечательный курс ещё находится в стадии разработки, поэтому многие идеи и материалы рождаются на ходу и требуют…»
Что такое PURL?
#словарькодмайнера

Питонист работает с 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
Ключевые моменты из 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% веса в разделе стратегии, что кажется очень мало, если мы говорим про бизнес.
Open Source Licensing Course, final

Вот мы и на финишной прямой курса.
Сегодня в 19:00 заключительная лекция.

План лекции:
- множественное и двойное лицензирование;
- картина лицензирования в PyPI и в Data Science;
- свободные и несвободные инструменты для лицензионной чистоты проектов и как с ними работать в рамках CI/CD;
- подведение итогов по домашним заданиям;
- discussion по теме.

Если останутся откртые вопросы, допускаем, что сделаем ещё одну лекцию. Ну а если без вопросов, то мы уже сфокусируемся на записи видосов для широкого распространения.

Встречаемся сегодня в 19:00 в Spatial Chat,
по ссылке: https://spatial.chat/s/ods?sp=Odscoursefest1
Code Mining pinned «Open Source Licensing Course, final Вот мы и на финишной прямой курса. Сегодня в 19:00 заключительная лекция. План лекции: - множественное и двойное лицензирование; - картина лицензирования в PyPI и в Data Science; - свободные и несвободные инструменты…»
Open Source Licensing Course - итоги и продолжение

Вот и закончилась основная часть курса по лицензированию. Урррыа 🥳🎉

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, вот это всё, и передайте коллегам!
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
- подведение итогов по домашним заданиям
- ещё домашние задания

Продолжение в разработке.
GitHub Copilot Labs

В "скандальном" Copilot появились Labs для VSCode: если выделить кусочек кода, то он попытается его описать по-английски. Занимательная игрушка, можно потыкаться.

Продолжаем наблюдения.
CFP @ Mining Software Repositories, 2022

23-24 мая пройдет, более чем знаковая конференция анализа исходных кодов и всего такого — MSR 2022. В связи с чем организаторы объявили CFP. Важные даты на скрине, полные здесь (их много ;).
Pybaobab – отрисовка деревьев решений в технике Баобаб

Удобно и полезно. Под капотом старый добрый graphviz.

Установка:
pip install pybaobabdt (py >= 3.6)

Код (GPLv3) | Статья

ЗЫ: интересно, у скольких подписчиков сработал триггер на слово Баобаб? Выпускники Мат-меха, отмечаемся под постом ;).
Data Elka 2021 🥇

Сап, как говорится в одном небезызвестном сообществе ;).

Мы рады пригласить подписчиков на ежегодное замечательное событие 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.

Мы у себя в Лаборатории обязательно глянем кейс и расскажем об этом через некоторое время. Ну а для проактивных читателей это может быть хорошим Домашним заданием (или тестовым ;).
С новым годом! 🌲🌲🌲

Мы "немного" поспали и продолжаем. Всем здоровья и всего такого!

Что-то в ушедшем году не успели довести и опубликовать, поэтому в ближайшую неделю-две будем закрывать гештальты :).

ЗЫ: прикрутили реакшены 😘.
Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation

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

В исследовании поучаствовало 803 разработчика (из них 450 программиста с полной занятостью). Довольно интересно почитать про мотивацию, ожидания и реальные результаты исследуемых.

Почитать есть что, но самое интересное и ожидаемое на картинках выше.

Работа проведена в целях поддержания политики борьбы с наркотиками на рабочих местах программистов.

Статья: https://arxiv.org/abs/2112.09365
PyNose: a Test Smell Detector for Python

А ещё в прошлом году у 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 появляются подсказки, как показано на гифках
Использование публичных наборов данных в коммерческом ПО

Коллеги из 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 лицензированию.