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

При поддержке: ods.ai, @codescoring
По вопросам — @alsmirn
Download Telegram
Улучшение Kotlin через поиск аномалий

Ура, мы открываем рубрику #видоснавыходные. И начать хотелось бы с доклада Владимира Коваленко (@vovak) на треке CodeMining @Data Fest Online 2020.

Тот случай, когда анализ кода может быть применен для улучшения как дизайна языка так и его компилятора.

Процитируем тезисы:
В этой работе мы применяем обнаружение аномалий к исходному коду и байткоду для облегчения разработки языка программирования и его компилятора. Мы определяем аномалию как фрагмент кода, отличающийся от типичного кода, написанного на определенном языке программирования. Выявление таких фрагментов выгодно как разработчикам языка, так и конечным пользователям, так как аномалии могут указывать на потенциальные проблемы с компилятором или с производительностью во время выполнения. Более того, аномалии могут соответствовать проблемам в проектировании языка.


Приятного просмотра!
Что такое 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. Красочные слайды и висящая голова на белом фоне в комплекте.

#видоснавыходные #словарькодмайнера
Text2Bash

Продолжая традицию #видоснавыходные, предлагаем видео с прошедшего в этом году трека CodeMining, про автогенерацию кода на bash по запросам на естественном языке. В докладе Глеб Моргачев из JetBrains делится сокровенным опытом и рассказывает, на что же способны роботы сегодня ;).

Тезисы:
В рамках конференции NeurIPS 2020 проходило соревнование по генерации bash команд по запросам на естественном языке. Я расскажу об опыте участия нашей команды в этом соревновании, используемых метриках и способах получения обучающей выборки. Также дам краткий обзор подходов, показавших лучшие результаты.

Видео:
https://www.youtube.com/watch?v=NPfYDDbprtw

Лайки, репосты, все дела.
Аналитика полного цикла разработки в почти реальном времени

Видео:
https://www.youtube.com/watch?v=BiLew55dxho

Продолжая традицию #видоснавыходные, в этот раз поговорим об анализе так называемых код-артефактов в применении к анализу жизненного цикла разработки (SDLC, Software Development Lifecycle).

Докладчик Вадим Марковцев, очень так некисло причастный к целой грядке крутейших инструментов выпущенных в open source компаниями source{d} и Athenian. Про них мы ещё обязательно напишем.

Тезисы от автора:
Я работаю в международном стартапе Athenian в качесте Head of Analytics и управляю командой бэкенда SaaS продукта. Мы продаем зарубежным компаниям облачное веб-приложение которое указывает на узкие места процессов разработки, непрерывной интеграции, деплоев, и JIRA. При этом стараемся придерживаться принципов blameless и non-personal, иначе говоря, делаем все возможное чтобы лиды-пользователи не стали сравнивать пиписьки рядовых разработчиков.

Одна из ключевых фишек Athenian - мы непрерывно анализируем поток событий GitHub и JIRA и обновляем все метрики и предсказания на лету. Это оказалось сложно, и я расскажу почему именно, какие ошибки мы допустили, как их исправляли и добились результата, и чего нам это стоило в $$$.


Лайки, репосты, все дела 😏.
Code Mining Overview

О чем же ML4Code? Какие задачи, какие особенности?

Продолжая рубрику #видоснавыходные, сегодня у нас Глеб Моргачев, Researcher из уважаемой компании JetBrains рассказывает про основные направления применения машинного обучения к исходному коду и процессу разработки.

Какие бывают задачи, какие предположения и особенности данных используются в процессе разработки. Приводится обзор уже решенных задач, а также всё ещё актуальных задач.

Видео (CodeMining Track'20):
https://www.youtube.com/watch?v=IH3_xSq3ic4

Лайки, репосты, все дела 😏.
Анализ исходных кодов, обзор последних статей. Ищем уязвимости в коде

Видео:
https://www.youtube.com/watch?v=t1VWaM6oS5k

Продолжая традицию #видоснавыходные, предлагаем посмотреть видео с прошлогоднего выступления Константина Тяпочкина из profiscope.io на Data Fest 2020 с обзором актуальных инструментов и направлений исследований.

Тезисы от автора:
В докладе приводится обзор последних разработок и новинок в области Code Mining в направлениях: суммаризации и классификации кода (Code2vec, code2seq и  PathPair2Vec подходы), нахождение уязвимостей в коде (Commit2vec, CC2vec, AST-based, Token-embeddings-CNN-based подходы), обзор свеженького CodeBERT, а также порассуждаем об уязвимостях в ML-моделях, их порче и лечению.


Под видео можно найти ссылки на полезные статьи.

Лайки, репосты, все дела 😏.
Data Halloween'21

Н
а эти выходные не #видоснавыходные, а #мегавидоснавыходные и даже больше!

Сегодня стартует очередной Data Halloween, на который запланировано много событий, за которыми можно будет как последить в реальном времени на ютуб-стриме, так и понетворкаться в нетворкинг-комнатах в Spacial Chat.

От нашей CodeMining команды будет движж ScaryCode, о нем мы напишем сразу после завтрашнего анонса Диктатором ODS ;).

Ещё раз, расписание тут: https://ods.ai/events/halloween2021.

Старт сегодня в 12:00.
Нейросетевое автодополнение для языка R

Видео:
https://www.youtube.com/watch?v=agd9FcGbxN0

Продолжая традицию #видоснавыходные, предлагаем посмотреть видео с выступления Артёма Попова из JetBrains на Data Fest 2021 с рассказом про чудеса автокомплита на трансформерах в любимом отдельными сообществами языке R (Аррр! Рыыы!).

Тезисы от Артёма:
 - мы сделали систему автодополнения кода для R на основе трансформеров, работающую локально на компьютере пользователя;
- какие трюки мы применяли для того, чтобы ускорить и улучшить нашу систему автодополнения;
- с какими трудностями мы столкнулись и как их преодолевали.


Лайки, репосты, все дела 😏.
T[HR]eads: извлекаем инсайды из переписок технарей и рекрутеров

Продолжая традицию #видоснавыходные, предлагаем посмотреть видео с выступления Михаила Кириллова на Data Fest 2020 с рассказом про анализ почтовой переписки разработчиков и рекрутеров.

Видео: https://www.youtube.com/watch?v=69aXIR1g-LM

Несмотря на то, что мы тут про #codemining, анализ артефактов разработки, таких как тикеты, коммиты и даже почта являются его частью, хоть чаще уходит в такое направление как #processmining. О нем мы ещё обязательно напишем, а пока предлагаем познакомиться с исследованием ребят.

Тезисы от Михаила:
В докладе приводится результат анализа датасета переписки рекрутера и кандидатов ИТ-области. Анализ, в большей степени, классически-статистический, но с применением подходов обработки естественного языка, от токенизации до оценки тональности специализированных текстов. Авторы рассуждают о пользе применения примененных подходов в части оптимизации процессов рекрутмента и делают соответствующие выводы ;)


Лайки, репосты, все дела 😏.
Data Elka 2021 🥇

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

Мы рады пригласить подписчиков на ежегодное замечательное событие Data Elka, в рамках которого подводятся итоги уходящего года и вручаются памятные подарки за все хорошее лучшим участникам OpenDataScience-сообщества 🤓.

В связи с этим, как организаторы CodeMining-трека, обращаемся к сообществу за помощью с выбором лучших докладов 2021 года.

Свои видео мы их публиковали в рубрике #видоснавыходные в перемешку с другими не менее интересными видосами.

Все CodeMining-видео последнего года можно посмотреть на страничке посвященной прошедшему DataFest'у: https://ods.ai/tracks/code-mining-df2021

Если вам что-то понравилось, то велкам поддержать наше скромное ML4Code-направление.

Видео номинированы в разделе Industry domains, голосовать можно тут (рега обязательна).

Результаты будут озвучены вживую на трансляции в субботу.

Во славу Дата Ёлке! 🎄🎄🎄
Демосцена

Как-то слишком часто вокруг меня вспоминалась демосцена в последний месяц.

Начиная с прекрасной, но прекратившей свое существование финской Assembly, заканчивая питерским Chaos Constructions, который ещё жив. Ух, какая там когда-то (2000/1) была атмосфера, ночевка в спальниках на конференции, кодинг 24x2/3, нереальные демки и конкурсы по метанию винчестеров и т.п.

Это всё было суперлампово и клёво (слеза).

О технических подробностях того, как это всё делалось, ликбез по алгоритмам, принципам и архитектуре обнаружен в видео с докладом от Александра Кухаренко "Демосцена: в погоне за wow-фактором":
https://www.youtube.com/watch?v=gl_Ikc_tOe4

А для кого это слово новое, можно полистать вики :).

#видоснавыходные