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

При поддержке: ods.ai, @codescoring
По вопросам — @alsmirn
Download Telegram
Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation

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

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

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

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

Статья: https://arxiv.org/abs/2112.09365
👍3😁1🤩1
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 появляются подсказки, как показано на гифках
👍4
Использование публичных наборов данных в коммерческом ПО

Коллеги из 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 лицензированию.
🔥5👍2
Using public datasets in commercial software

Great paper: Can I use this publicly available dataset to build commercial AI software? Most likely not.

An extremely important question for the Data Science community: it turns out (wat?) that not all publicly available datasets can be used to build commercial solutions 💣💣💣.

Authors examine license agreements of 6 popular datasets used in Computer Vision (CIFAR-10, ImageNet, Cityscapes, FFHQ, VGGFaces2 and MS COCO) and conclude that the models trained on these data can not be commercialized at least.

An example of the results of the CIFAR-10 dataset's license analysis is shown in the screenshot.

It was logical to assume this, but for many community members this may be the opening of the century.

Prepared by @codemining for ods.ai. Subscribe!
🔥2👍1
code2vec: Learning Distributed Representations of Code

Мы уже ранее рассказывали про построение эмбеддингов по коду в нашем обзорном докладе на DataFest Siberia v2, но есть смысл выделить отдельным постом.

Послушать по-русски:
https://www.youtube.com/watch?v=qm2hB5Bi49A&t=507s

Поиграться можно здесь:
https://code2vec.org/

Сорцы | Статья
👍1
Продолжая рубрику #языкибываютразные, напишем про ещё один внезапный язык, Rockstar.

Язык с динамической типизацией, в котором исходный код представляется в виде текстов похожих на песни.

Вдохновлен рок-хэви-хэйр-металлическими балладами 80-90-х годов 🎸🎸🎸.

Сайт | Спека

Есть множество реализаций, в т. ч. на Python, JS, Java, OCaml, etc.

Пример кода приближенного вычисления числа π:
My life was a mushroom cloud, then
it was nothing
Sin is unquenchable
My cell was empty

Your love was a jackhammer shaking the bars
Your life is a fungus
Your love is mycorrhizal
My life was empty without your love

Until your life is my life,
build my life up
Put your love into Me
Put my life into the song,
until your love is stronger than the song
Put the song of Me into Me
Knock the song down

Put your love into You



Продолжение тут, больше примеров здесь. Надеемся, что вам весело ;).
🔥4😁2👎1🤩1
Download trends for PyPI

Для вызнавания трендов популярности проектов в python-сообществе прибегают к изучению данных о скачивании (внезапно ;).

К сожалению, PyPI отдает статистику только в моменте, да и не то :/.

Тем не менее, есть ряд сервисов, которыми можно воспользоваться и поиграться:
- https://pypistats.org/
- https://pepy.tech/

Поработать с данными напрямую можно через Google BigQuery, в котором можно поковыряться и поиграть с данными: тут и версии питона, откуда скачивали и т.п.

@codemining
👍4
CodeCaptcha

Надоело выбирать светофоры и велосипеды на гугло-капче?

Появился сервис CodeCaptcha, где подкидываются короткие задачки на JavaScript для того, чтобы пройти дальше по ссылке.

Конечно интересно узнать, как формируются задачи. Варианты решений могут быть неплохим подспорьем для обучения моделек для автокомплитов, код-ревью и т. п. Но пока задачи ооооочень простые.

Пример ссылки:
https://codecaptcha.io/a/ObZpSpktgAi6kzIbtsr0

Ну и да, было бы круто, если бы языков было больше. А пока что есть, то есть.
👍4😱1
CodeScene

Наткнулись тут на статейку How do you visualize code? и вспомнили, что хотели рассказать про отличнейший инструмент для изучения исходников — CodeScene.

Функциональность CodeScene позволяет высвечивать скрытые критические места в кодовой базе как с точки зрения качества, так и участников разработки.

Работа с техническим долгом, качеством, управление quality gates и много-много всего интересного. Куча интеграций, 25+ поддерживаемых языков, api, etc.

Инструмент коммерческий, бесплатен для open source. Есть cloud & on-premise версии.

А ещё, Адам Торнхилл, основатель системы, ещё и книжки интересные пишет, например: Your Code as a Crime Scene.
👍21
CFP: Software Engineering and Information Management

23 апреля
пройдет крутая конференция по программной инженерии и организации информации SEIM.

https://seim-conf.org/en/

Направлений предостаточно, вот некоторые, которые интересно подсветить в контексте CodeMining-сообщества:
- Coding theory
- Compilers
- Empirical software engineering
- Information security
- Programming languages
- Software analysis
- Software testing
- Software verification
- Theoretical computer science
- Visual languages

Подача статей до 9 февраля, ещё можно успеть!

CFP тут.
👍2
Malware Provenance: Code Reuse Detection in Malicious Software at Scale

Анализ переиспользования кода в программном обеспечении в применении к анализу семейств вредоносного ПО и дополнительных возможностях построения сигнатур их обнаружения на базе Locality Sensitive Hashing (LSH).

Статья 2016 года, но совершенно не потеряла актуальности для полезного применения подходов определения нечетких заимствований (дубликатов).

Почитать на остатках выходных можно здесь: https://ieeexplore.ieee.org/document/7888735
🔥2
Module Counts

Оценить прирост новых пакетов в индексах вам поможет сервис modulecounts.

Например, хорошо видно замедление экосистемы RubyGems, и неплохой такой прирост Rust-пакетов. Ну и Python обогнал PHP под конец 2021 года. По понятным причинам, npm на скрин добавлен не был ;).

Есть стата по времени для двух десятков пакетных индексов. Да, конечно здесь нет сотен Java-индексов, тоже интересно было бы поиграться широкой публике.

Вобщем потыкать и сделать собственные выводы можно по ссылке: http://www.modulecounts.com/.
👍2
Сопливый Чейн

Многие слышали, что цепочку поставки (Supply Chain) можно компрометировать и тем самым наделать неприятностей и что важно выстраивать процессы безопасной разработки в своих CI/CD-пайплайнах.

В #видоснавечер предлагаем посмотреть свежайшее видео с Black Hat: "Picking Lockfiles: Attacking & Defending Your Supply Chain" от Greg Johnson и Dennis Appelt. Тут и классификация проблем и как решать.

Пумц: https://www.youtube.com/watch?v=UkWJeqb8BZk

Проблемы целостности и чистоты пакетов, которые залетают в продуктив, всё чаще и чаще всплывают. Яркий тому пример, кейс с SolarWinds. Будьте предупредительны.
😱1
Forwarded from DL in NLP (Vlad Lialin)
DeepMind выпустил AlphaCode, который прогает лучше половины твоих знакомых.

Во многом похож на Codex, но есть отличия.

Основной подход:
1. Encoder-decoder, 41B параметров
1. Декодер обучается предсказывать следующее слово, а энкодер делает MLM. Всё end2end.
1. Заскрапили датасет задачек с Codeforces и зафайнтюнили на нём модель
1. Во время тестирования семплили очень большое количество решений (до миллиона) и потом выбирали из них с помощью кластеризации, эвристик и, самое главное, проходят ли они открытые тесты которые приложены к задачке. Сабмитили на финальную проверку только топ-10.

По результатам: AlphaCode решает задачки лучше, чем 54% пользовалетей Codeforces (не очень альфа пока что, но стремится туда).

Небольшие технические отличия от Codex:
1. Максимальная длина для энкодера 1536, для декодера 768
1. Использовали Multi-query attention, модификацию attention, которая использует одни и те же K и V для разныех голов – позволило улучшить потребление памяти и скорость декодирования
1. Очень маленький словарь токенизатора, 8К.
1. Во время файтнюнинга использовали температуру 0.2, которая делает распределение более острым. При тесте температура не использовалась, назвали это tempering.
1. Файнтюнились и на правильных и на неправильных решениях, при этом моделе заранее сообщается сигнал корректное ли это решения.
1. Для файнтюнинга использовали лосс, который называется GOLD. По сути это взвешенная кросс-энтропия, несмотря на то, что выглядит как RL.

Вот тут можно посмотреть на визуализацию attention, а ещё есть популярно написанный блогпост
😱2
AIModel-Mutator: Finding Vulnerabilities in TensorFlow

В рубрике #видоснавечер, хотим познакомить вас с очередным актуальным вопросом безопасности моделей машинного обучения, и информацией о том как ошибки фреймворков (например Tensorflow) могут на это повлиять. К слову с 2019 по 2021 год, количество CVE уязвимостей в TF увеличилось в 15 раз.

Qian Feng, старший исследователь по безопасности из Baidu Security рассказывает о важной работе, которую они провели с коллегами.

Подмутировать модель довольно легко, а как мы знаем, распространяются они довольно свободно и без каких-либо дополнительных проверок, короче deep dive в видео: https://www.youtube.com/watch?v=7QqbJRZ6CxU
😱2🤯1
Ваш код как место преступления

Ранее мы писали про супер-крутой CodeScene и его основателя, Адама Торнхила, который и "ещё книжки интересные пишет".

Так вот, увидели, что сегодня онли одну из его клёвых книг "Your Code as a Crime Scene", можно закупить на скидке за $5.

Из книги вы узнаете про всё то множество методов для выявления дефектов, узких мест и плохого дизайна в вашем коде.

Читать содержание и закупаться годным здесь: https://pragprog.com/noscripts/atcrime/your-code-as-a-crime-scene/ (промокод FLASHSALECS).

ЗЫ. Не реклама, а полезные материалы. Это вам не Лутца за 2 килорубля за том покупать ;).
2👍2