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

При поддержке: ods.ai, @codescoring
По вопросам — @alsmirn
Download Telegram
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-индексов, тоже интересно было бы поиграться широкой публике.

Вобщем потыкать и сделать собственные выводы можно по ссылке: https://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/titles/atcrime/your-code-as-a-crime-scene/ (промокод FLASHSALECS).

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

Пятничной ностальгии псто. По воспоминаниям, примерно в 2001 году появилась RoboCode: кодишь своего бота и запускаешь баттл на поле с ботами других участников.

Бот может управлять мощностью своего радара и выстрела, направлением и скоростью движения, поворотом пушки и т. п.

Это в чистом виде образовательная платформа, где помимо освоения базовых конструкций языка, можно разрабатывать целый килограмм всевозможных стратегий поведения на поле сражения. Можно писать и обучающихся ботов ;). Вангуем такую бойню в ODS!

Видео-пример сражения.

Игра изначально для Java (и даже апдейты вышли на прошлой неделе), пишут, что можно и .NET. Но вот на гитхабе найдена (и проверена) реализация на Python3 (нужна зависимость pyqt5). Есть также форки под JavaScript, Clojure и т. п.

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

А какие увлекательные игрушки вспоминаете вы?
🔥3
ODS Course Fest 21/22

Ну и про образование. В OpenDataScience стартует весенняя серия открытых курсов.

Презентация завтра (12.02.22) в 12:00.

Расписание анонсов:
12:00-12:20 Intro, сезон курсов и образование в(O)DS. Алексей Натёкин
12:20-13:00 Open ML course. Пётр Ермаков
13:00-13:05 Onsite-test ~ собесы в никуда, Алексей Смирнов
13:00-14:00 Networking. Spatial chat: комнаты знакомств для участников, собесы в никуда.
14:00-14:20 NLP course. Валентин Малых
14:20-14:40 QML. Quantum ods. Виктор Трохименко
14:40-15:00 Auto ML. Александр Рыжков
15:00-15:20 ODS Lab. Дмитрий Колодезев
15:00-16:00 Networking. Spatial Chat.
16:00-16:30 ODS Pet Projects. Станислав Капулкин и Влад Грозин.


Смотреть в прямом эфире: https://www.youtube.com/watch?v=pzj9mRQewGw

Будут ещё всякие нетворкинги и конечно же знаменитые Собеседования в никуда. Подключайтесь!
👍4
Repography

Сервис рисует всякое по истории из git-репозитория:
- активность в репозитории;
- файловая структура взвешенная по количеству коммитов;
- топ разработчиков;
- код по рабочим часам;
- и т.п.

Примерчик про Go:
https://repography.com/blog/go-first-commit

Графики настолько няшные, что авторы предлагают закупиться хайрезами на стенку :).
👍4🔥1
Внедрение машинного обучения в IDE: опыт JetBrains

В #видоснавечер предлагаем познакомиться с крайне увлекательной лекцией нашего уважаемого подписчика, Тимофея Брыксина ;)

Тимофей Брыксин, доцент, кандидат физико-математических наук, преподаватель программы «Разработка программного обеспечения» Университета ИТМО, руководитель лаборатории Machine Learning Methods in Software Engineering в JetBrains Research.

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

Тезисы:

На лекции мы обсудили, как IDE может быть улучшена при помощи методов машинного обучения. В качестве примера поговорили про механизм работы инструмента, используемого миллионами программистов каждый день — автодополнение кода. Разобрали то, зачем вообще разработчикам нужен подобный инструмент и какими качествами должна обладать модель машинного обучения, лежащая в его основе. Рассмотрели возможные проблемы со сбором датасета для обучения в этой задаче, а также неочевидный способ векторизации кода и событий автодополнения. В завершение лекции познакомились с несколькими текущими проектами JetBrains Research по применению машинного обучения в IDE.
🔥7🤮1
Если у кого-нибудь есть время, настроение и желание участвовать в хакатонах с призами, то мы вот обнаружили один такой. Даже немного тематичный (см. Кейс №2).

Организаторы в описании довольно странным образом объединяют понятия эффективности, трудоемкости по COCOMO и некой сложности. Что на вход-выход совсем непонятно, но почему бы и не поучаствовать и не узнать подробности.

В добавок, предлагается задачка по блокчейну и telegram-боту, и, судя по всему, призовой фонд в 500к пошарен между задачами, а там уже кто сколько наберет.

🗓 Даты хакатона: 18-20 марта 2022 года
📌 Дедлайн регистрации: 16 марта 23:59
👉 Регистрация: https://tfalliance.ru
👍2
Сегодня вечером поговорим о безопасной разработке в пилотном выпуске подкаста Python's Tail. Подключайтесь!
2
Forwarded from PiterPy Сonf Сhannel
Пилотный выпуск подкаста Python's Tail — уже сегодня, 6 апреля, 19:00 (Мск, GMT+3), прямой эфир

Тема выпуска: Безопасность цепочек поставки артефактов разработки


Открытого ПО на его основе становится всё больше. Казалось бы, много качественных проектов в сообществе — это здорово. Но есть проблема: как и в любом коде, в open source годами живут ошибки и уязвимости. Исследователи утверждают, что примерно половина python-пакетов в каталоге PyPI содержат уязвимости разных уровней.

В этом эпизоде мы пообщаемся о примерах уязвимостей и уязвимых компонентов, атаках на Software Supply Chain Management и человеческом факторе. А самое главное — о методах и средствах контроля: например, SAST и DAST & SCA.

Гости выпуска — основатель решения композиционного анализа CodeScoring Алексей Смирнов и технический руководитель Positive Technologies Владимир Кочетков.

Ведущие — Андрей Дмитриев и Илья Беда.


Кликайте на колокольчик, чтобы не пропустить эфир: https://www.youtube.com/watch?v=zhbDOqUCjJM
🔥2👍1