Выпуск 322

(17.02.2020 - 23.02.2020)

pythondigest.ru: Выпуск 322

Статьи

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

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

      Сдруживаем Python и Bash: библиотеки smart-env и python-shell

На сегодняшний день Python является одним из наиболее используемых языков в сфере создания не только непосредственно программных продуктов, но также обеспечения их инфраструктуры. Вследствие этого многим девопсам, по их воле или против оной, пришлось учить новый язык для последующего использования в качестве дополнения к старым добрым Bash-скриптам. Однако Bash и Python исповедуют различные подходы к написанию кода и имеют определенные особенности, в виду чего портирование Bash-скриптов на «змеиный язык» иногда оказывается ёмкой и далеко не тривиальной задачей.

Чтобы упростить жизнь девопсам, создано и продолжает создаваться много полезных библиотек и утилит на Python. Данная статья описывает сразу две новых библиотеки, созданные автором сего поста — smart-env и python-shell — и призванные избавить девопса от необходимости уделять много внимания тонкостям работы с Python, оставляя простор для более интересных задач. Сфера деятельности библиотек — переменные окружения и запуск внешних утилит.

      Простой мессенджер на tkinter, socket и threading

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

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

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

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

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

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

 

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

      Пандас и другие для толстых данных

В этой заметке я расскажу о паре простых приемов, полезных при работе с данными, не помещающимися в память локальной машины, но все еще слишком мелкими чтобы называться Большими. Следуя англоязычной аналогии (large but not big), будем называть эти данные толстыми. Речь идет о размерах в единицы и десятки гигабайт.

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

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

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

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

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

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

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

      Web Scraping. Часть 1

Недавно у меня возникла идея о том, чтобы поделиться с интересующимся кругом лиц о том как пишутся скраперы. Так как большинству аудитории знаком Python все дальнейшие примеры будут написаны на нём.

 

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

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

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

      А как вам такой вариант управления зависимостями в Python?

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

      Создаем Todo приложение c помощью Django. Часть 1

Джанго это мощный фреймворк для создания веб-приложений. Изначально Django был создан для того, чтобы быстро создавать, например, новостные сайты (или другие сайты, который нужно создавать максимально быстро). И после нативного PHP не покидает ощущение, что ты едешь на очень быстрой машине разработки. Чтобы посмотреть все его возможности для быстрой разработки, мы с вами попробуем создать простое Todo — приложение.

      Airflow на примере

Как начать использовать Airflow

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

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

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

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

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

 

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

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

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

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

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

Видео

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Как создать десять приложений из одного и не сойти с ума / Анна Мошкина (IPONWEB)

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

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

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

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

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





Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus