ar
Feedback
Code Mining

Code Mining

الذهاب إلى القناة على Telegram

ML4Code во всей красе, анализ кода и артефактов: лицензии, уязвимости, процессы. Комментарии к актуальным и не очень новостям, аналитика, эпизодический авторский контент, мемасики. При поддержке: ods.ai, @codescoring По вопросам — @alsmirn

إظهار المزيد
838
المشتركون
لا توجد بيانات24 ساعات
+17 أيام
+230 أيام
أرشيف المشاركات
Pybaobab – отрисовка деревьев решений в технике Баобаб Удобно и полезно. Под капотом старый добрый graphviz. Установка: pip i
Pybaobab – отрисовка деревьев решений в технике Баобаб Удобно и полезно. Под капотом старый добрый graphviz. Установка: pip install pybaobabdt (py >= 3.6) Код (GPLv3) | Статья ЗЫ: интересно, у скольких подписчиков сработал триггер на слово Баобаб? Выпускники Мат-меха, отмечаемся под постом ;).

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

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

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

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

Open Source Licensing Course - итоги и продолжение Вот и закончилась основная часть курса по лицензированию. Урррыа 🥳🎉 Some stats. Суммарно, на курсе объявилось 20 уникальных участников, считаем, что это довольно неплохо. До финиша дошло не так много людей, как хотелось бы. Тем не менее, мы не ожидали, а ВСЕ домашние задания решенил ЦЕЛЫЙ ОДИН слушатель, за что мы особенно признательны! 🔥 По нашему желанию, мы продолжаем курс и подготовим материал не по ручному разбору лицензий, а о том как всё настроить и следить автоматически при помощи доступного инструментария. Но дату объявим попозжа, чтобы не переносить лишний раз ;). ЗЫ: Слайды только что прошедшей лекции мы опубликуем в начале следующей недели.

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

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

Что такое 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

Очередной перенос лекции по лицензированию :/ Волевым решением, мы снова переносим лекцию, которая была запланирована на завтра (18.11.21). Наш замечательный курс ещё находится в стадии разработки, поэтому многие идеи и материалы рождаются на ходу и требуют должного оформления в медиа-части и т. п. Приносим извинения за доставленные неудобства. Лекция переносится на 25.11 (тоже четверг). Тем не менее, наш эксперимент с домашними заданиями продолжается. У нас было два ДЗ, и мы уже получили первые решения (СПАСИБО!). ДЗ №1. Ручная проверка лицензионной совместимости пакетов django, requests, ignite или выбрать свой. Подробности в слайдах первой лекции. ДЗ №2. Использовать все доступные средства, чтобы найти open source проекты, в которых действительно происходит передача патентных прав. Подробности в слайдах второй лекции. Решения направлять на почту Алексею: alexey@profiscope.io.

sed — Stream EDitor Продолжая рубрику #языкибываютразные, напишем про ещё один прекрасный язык и больше-таки инструмент, sed. Разработан в 1973-1974 годах сотрудником Bell Labs Ли Макмэхоном под UNIX. Синтаксис с тех пор почти не изменился, а востребванность только возросла ;). Суть его в том, чтобы обрабатывать потоковые данные, как понятно из названия. На вход данные, управляющие конструкции языка говорят, что с ними делать, на выходе модифицированные данные. Всё просто. Отфильтровать, заменить/удалить по шаблону или регулярному выражению, провести хитрые перестановки, это то, зачем вам может быть полезен sed. Как и всегда, welcome to man pages, но есть и полезные статейки. Например по-русски тут или хорошая коллекция вариантов ежедневного применения на github.

ML4Code — большая подборка материалов Огромная подборка статей, образовательных материалов и эвентов в области ML4Code. Регул
ML4Code — большая подборка материалов Огромная подборка статей, образовательных материалов и эвентов в области ML4Code. Регулярно обновляется в соответствующем репозитории. В мемориз, однозначно.

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

T[HR]eads: извлекаем инсайды из переписок технарей и рекрутеров Продолжая традицию #видоснавыходные, предлагаем посмотреть видео с выступления Михаила Кириллова на Data Fest 2020 с рассказом про анализ почтовой переписки разработчиков и рекрутеров. Видео: https://www.youtube.com/watch?v=69aXIR1g-LM Несмотря на то, что мы тут про #codemining, анализ артефактов разработки, таких как тикеты, коммиты и даже почта являются его частью, хоть чаще уходит в такое направление как #processmining. О нем мы ещё обязательно напишем, а пока предлагаем познакомиться с исследованием ребят. Тезисы от Михаила:
В докладе приводится результат анализа датасета переписки рекрутера и кандидатов ИТ-области. Анализ, в большей степени, классически-статистический, но с применением подходов обработки естественного языка, от токенизации до оценки тональности специализированных текстов. Авторы рассуждают о пользе применения примененных подходов в части оптимизации процессов рекрутмента и делают соответствующие выводы ;)
Лайки, репосты, все дела 😏.

Catala - A Programming Language for the Law И завершая неделю рубрики #языкибываютразные, хотим познакомить вас с предметно-о
Catala - A Programming Language for the Law И завершая неделю рубрики #языкибываютразные, хотим познакомить вас с предметно-ориентированным языком (DSL), который может заинтересовать тех, кто наводит мосты между юридической формалистикой и миром программирования. https://catala-lang.org/ Несмотря на относительно смешное, особенно в контексте применения, название, язык назван в честь профессора Пьера Катала, пионера легалтеха в конце 60х годов. Возможности: - унифицировать определения; - проводить формализацию и проверку законов; - производить соответствующие расчеты и проверку логики. Язык фундаментален, разрабатывается группой специалистов из French National Research Institute for Computer Science (Inria) и Microsoft Research. Французские корни повсюду, в примерах, в документации, в текстах коммитов, но не сильно мешает восприятию. Реализация: OCaml & Python. Github | Syntax | Paper ЗЫ: вот мы тут задумались, а насколько Catala может помочь в анализе текстов лицензий? Обсудим в комментариях?

AWK Мы уже упоминали awk и sed, так вот, сегодня про первый ;). Многие относятся к AWK как к тулзе, но немногие знают, что на
AWK Мы уже упоминали awk и sed, так вот, сегодня про первый ;). Многие относятся к AWK как к тулзе, но немногие знают, что на нем можно прям полноценно писать программы. Весь синтаксис описан в man pages, с огромным количеством примеров и пояснений. Открываешь и пишешь. Первая версия была разработана ещё в далеком 1977 году небезызвестными создателями: Aho, Weinberger и Kernighan. Да, есть ещё GNU версия, которая называется GAWK, но по сути различия в реализации минимальные. Что важно знать. Если вам нужно обработать текстовый файл, то далеко не всегда нужно хвататься на python или другие языки, кажущиеся весьма подходящими и для простых задач. Также удобно использовать awk, как и sed в командной строке при соединении в pipe. Намного быстрее написать one-liner на awk. Умение в синтаксис тренируется за пару вечеров, а потом экономит вам килограммы времени! Кто не готов читать маны :/, то неплохие статьи есть на хабре, opennet и особенно здесь, по-английски. #языкибываютразные

GSoC 2022. Теперь не только для студентов! Пруф. Из интересной статистики, за всё время существования программы (а она идет с
GSoC 2022. Теперь не только для студентов! Пруф. Из интересной статистики, за всё время существования программы (а она идет с 2005 года), участники написали более 38 млн. строк кода для 715 open source организаций. Т. е. уже больше чем строк в Линукс-ядре. Короче, есть что проанализировать ;). Каждый год поддерживается более тысячи проектов, вот например проекты 2021 года. Тут и проекты Python Software Foundation и Apache Foundation, есть и поменьше, но не менее интересные. Короче, если вы не студент, теперь можно.

Неопределённое поведение: зачем создатели языков заставляют программистов страдать Сomputer Science Center проводит открытую
Неопределённое поведение: зачем создатели языков заставляют программистов страдать Сomputer Science Center проводит открытую лекцию Макса Казанцева, Senior Compiler Engineer в Azul Systems. Лекция пройдёт 20 ноября в смешанном формате: онлайн и очно в НГУ — Новосибирск, ул. Пирогова д. 1, ауд. 2128. Начало в 16:20 НСК (12:20 МСК). Регистрация: https://compscicenter.timepad.ru/event/1838918/ Программные ошибки, вызванные неопределённым поведением, стоили человечеству миллиарды долларов и миллионы человеко-часов, потраченных на их поиск и исправление. Так зачем же создатели языков программирования так упорно оставляют место для неопределённостей? В этой лекции мы поговорим о тех выгодах, которые языкам даёт возможность «отстрелить себе ногу». Слушателям достаточно иметь базовые представления о программировании на С++.

jq - легковесный json-процессор Как быстро поработать с json не прибегая к написанию кода на python (ну например)? https://st
jq - легковесный json-процессор Как быстро поработать с json не прибегая к написанию кода на python (ну например)? https://stedolan.github.io/jq/ Обалденная тула, которая экономит кучу времени людям работающим со слабоструктурированными машиночитаемыми данными. Простейший язык запросов в командной строке (хоть к нему нужно и привыкнуть), с хорошей документаицей. Те, кто работал с sed или awk должны особенно проникнуться ;). Пара примеров, и вперед, упрощать себе жизнь! Выбор по ключу
jq '.foo'

Input {"foo": 42, "bar": "less interesting data"}
Output 42

Объединение списков
jq '.a + .b'

Input {"a": [1,2], "b": [3,4]}
Output [1,2,3,4]

Можно многое, короче. Да, есть онлайн-чекалка. Добавим ещё полезную обучалку. #языкибываютразные