IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     23.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Hack The Box — прохождение Zetta. FXP, IPv6, rsync, Postgres и SQLi

Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье узнаем IPv6 адрес сервера с помощью FXP, поработаем с rsync, а также запишем ssh-ключ используя SQL-инъекцию при обработке журналов логов в Postgres.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

     21.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Как варить вкусный статический анализ кода / Илья Лебедев (bestdoctor.ru)

У вас настроен супер-стрикт-набор валидаторов кода, обязательная аннотация типов без Any и требования стопроцентного покрытия кода тестами? У меня тоже нет. Это не потому, что мы с вами бесполезные и непрофессиональные разработчики, а потому что надо дело делать, а не типы вылизывать.

     20.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Как в Python реализованы очень длинные числа типа integer?

Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет использовать просто int или нужно добавить long или даже long double. Однако при написании кода на Python вам не нужно беспокоиться об этих «незначительных» вещах, потому что Python может работать с числами типа integer любого размера.

В С, если вы попытаетесь вычислить 2^20000 с помощью встроенной функции powl, то на выходе получите inf.

     20.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Добавление своих полей в отчет Pytest

Столкнулся с задачей модификации html-отчета при работе с pytest, в результате чего нашёл удобное для своей задачи решение, хочу им поделиться — возможно кому-то пригодиться.

     20.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Как мы делаем предсказуемо хорошие микросервисы / Олег Ермаков (ЦИАН)

Мы в ЦИАН любим микросервисы: на C#, на JS и, конечно же, на Python. Когда создаешь микросервис в 50-й раз, уже видишь повторяющиеся шаги и примерно представляешь себе "минимальный джентльменский набор" того, что должно быть внутри.

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

NLP cookbook: анализируем тексты на Python с минимальными знаниями о машинном обучении

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

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Django в стартапе: от 0 до 150 000 строк кода, не жертвуя качеством

Речь пойдет о том, как мы поддерживаем здоровье кодовой базы в проекте с безумными требованиями к скорости и постоянно меняющимися задачами. Мы поговорим про TDD, SOLID и KISS там, где люди меньше всего к этому готовы — в стартапе, который доставляет стройматериалы

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Ансамбли нейронных сетей с PyTorch и Sklearn

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

 

И тут на помощь приходят ансамбли...

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Невероятная производительность ввода-вывода с параллельным Apache Parquet на Python

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

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Денис Тимофеев - Как мы не пишем тесты

Вы что код с ошибками пишете?! Да! И чтобы их обнаружить, в дополнение к программе мы пишем тесты. Но так ли они хороши? Во время доклада обсудим несколько простых техник тестирования, которые мы обычно не применяем.

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Александр Горохов - Питон в бигдате

Big Data сегодня — динамически развивающаяся отрасль. Как бы мы могли использовать python для обработки больших объёмов данных? В этом ознакомительном докладе я расскажу про Apache Spark, и как его можно использовать для обработки данных на python.

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Александр Артеменко - Бесполезный REPL

Из этого доклада вы узнаете о том, почему REPL в Python бесполезен, даже если это волшебный ipython. Будет предложено одно из возможных решений этой проблемы. В первую очередь доклад будет интересен тем, кого интересует более быстрая и эффективная разработка, а также тем, кто разрабатывает stateful системы.

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Алексей Рябчиков - Как написать свой Твиттер и не прогореть

Почти каждый месяц появляются новости об утечках данных пользователей из социальных сетей. На этой волне я написал twitter-оподобную социальную сеть с заложенной цепочкой уязвимостей для соревнований типа CTF. На ее примере я расскажу про разработку современного web-сервиса и его возможные уязвимости. Рассмотрим, что к ним привело, и как их можно было избежать при проектировании и разработке.

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Как мы в Яндексе следим за производительностью веб-приложений / Кирилл Дунаев (Яндекс)

Большинство разработчиков собирают логи своих приложений. Обращения к базе данных, HTTP-запросы и ответы API, задачи Celery. Логи полезны: там видны пятисотки от внешних сервисов, проседания производительности и неожиданно возросшее время ответа после деплоя в пятницу вечером.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Меню консольных команд на python

Очень часто во время работы над каким-либо проектом возникают задачи решение которых требует ввода в консоль нескольких команд, такие как, например, пересборка фронтенда, запуск/остановка нескольких docker-контейнеров, развертывание окружения на новом девелоперском компе и тому подобные вещи.

И вот, собственно, однажды возникла идея как сократить время на это вот все, максимально упростив процесс, реализовав небольшую утилиту, позволяющую обернуть наборы часто производимых действий в пункты удобного меню выводимого в консоль.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Видео

Метрики сложности кода: как сделать просто и хорошо

Какие ключевые метрики сложности кода существуют. Вы познакомитесь с двумя разными концепциями сложности. Были рассмотрены сложные примеры и способы борьбы.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Использование faiss для поиска по многомерным пространствам

Осенью 2019 мы запустили сервис поиска похожих изображений на основе библиотеки faiss. Он помогает нам понимать, что фотографии уже встречались в другом объявлении, даже если они достаточно серьёзно искажены: размыты, обрезаны и тому подобное. Так мы определяем потенциально фейковые публикации.

 

Мне бы хотелось рассказать о тех проблемах, с которыми мы столкнулись в процессе создания этого сервиса, и наших подходах к их решению.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Настройка функции потерь для нейронной сети на данных сейсморазведки

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

Рассмотрены 2 базовых класса функций – Binary cross entropy и Intersection over Union – в 6-ти вариантах с подбором параметров, а также комбинации функций разных классов. Дополнительно рассмотрена регуляризация функции потерь.

Спойлер: удалось существенно улучшить качество прогноза сети.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Как проверить навыки программирования на Python? Задачи от Яндекса

В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как на собеседовании. С другой стороны, мы также не могли переиспользовать условия задач, уже подготовленные для наших соревнований по программированию. Дело в том, что соревнования с целью определить лучших из лучших — это одно, а отбор специалистов с небольшим опытом в школу — совсем другое. Нам требовались задачи, по решению которых было бы видно, обладает ли разработчик базовыми навыками написания кода и умением грамотно использовать память и время. Вот какие условия мы составили.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Логирование изменения данных в моделях Django

В этой статье я бы хотел рассказать как можно реализовать автоматический контроль над изменениями данных в проектах построенных с использованием Django.