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

При поддержке: ods.ai, @codescoring
По вопросам — @alsmirn
Download Telegram
Code Mining
Итак, сегодня, в 19:00 продолжаем курс. Подключиться можно по ссылке: live.ods.ai. Пароль Odscoursefest1. Или прям жмякать по ссылке: https://spatial.chat/s/ods?sp=Odscoursefest1 ЗЫ: мы понимаем, что вы подписывались про канал про ML4Code, скоро пойдут…
02. Open Source Licensing Course. Lecture.pdf
1.8 MB
Делимся слайдами со второй лекции по лицензированию.

Внутри:
- разбор лицензионной чистоты на примере пакета requests
- что делать когда лицензия отсутствует
- какие бывают кастомные нашлепки к лиц. соглашениям
- как учитывать патенты
- как учитывать окружения зависимостей
- какие бывают случаи смены лицензии на примере PonyORM

Предварительно-заключительная лекция будет 18 ноября. До встречи!
ML4Code — большая подборка материалов

Огромная подборка статей, образовательных материалов и эвентов в области ML4Code.

Регулярно обновляется в соответствующем репозитории.

В мемориз, однозначно.
sed — Stream EDitor

Продолжая рубрику #языкибываютразные, напишем про ещё один прекрасный язык и больше-таки инструмент, sed.

Разработан в 1973-1974 годах сотрудником Bell Labs Ли Макмэхоном под UNIX. Синтаксис с тех пор почти не изменился, а востребванность только возросла ;).

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

Всё просто. Отфильтровать, заменить/удалить по шаблону или регулярному выражению, провести хитрые перестановки, это то, зачем вам может быть полезен sed.

Как и всегда, welcome to man pages, но есть и полезные статейки. Например по-русски тут или хорошая коллекция вариантов ежедневного применения на github.
Очередной перенос лекции по лицензированию :/

Волевым решением, мы снова переносим лекцию, которая была запланирована на завтра (18.11.21). Наш замечательный курс ещё находится в стадии разработки, поэтому многие идеи и материалы рождаются на ходу и требуют должного оформления в медиа-части и т. п. Приносим извинения за доставленные неудобства.

Лекция переносится на 25.11 (тоже четверг).

Тем не менее, наш эксперимент с домашними заданиями продолжается. У нас было два ДЗ, и мы уже получили первые решения (СПАСИБО!).

ДЗ №1. Ручная проверка лицензионной совместимости пакетов django, requests, ignite или выбрать свой. Подробности в слайдах первой лекции.

ДЗ №2. Использовать все доступные средства, чтобы найти open source проекты, в которых действительно происходит передача патентных прав. Подробности в слайдах второй лекции.

Решения направлять на почту Алексею: alexey@profiscope.io.
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.

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