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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     28.06.2018       Выпуск 236 (25.06.2018 - 01.07.2018)       Статьи

Так ли мал Alpine 3.8 Docker для Python 3 runtime

Совсем недавно произошёлрелиз минималистичного Alpine Linux 3.8. Очень часто данный linux образ используют в докере, собирая очень компактные окружения для runtime.

Сегодняшняя статья будет рассмотрена в срезе использования runtime системы в докере для Python 3.6.X версий, с различным составом пакетов pip. А так же мы соберём самый новый Python 3.7 в Alpine.

В конце статьи будет представлен размер образа image, занимаемый на диске, в зависимости от состава пакетов pip и произведено сравнение между дистрибутивами Alpine 3.8, Debian 9, Fedora 28.

     27.06.2018       Выпуск 236 (25.06.2018 - 01.07.2018)       Статьи

Python3. Автоматизация конфигурации мультивендорного сетевого оборудования

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

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

В статье будет приводиться блок кода под спойлером, а под ним будет описание с вырезками и объяснениями почему именно так и для чего это.

     24.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

Создание management commands в Django

Management commands — команды, выполняемые из командной строки с помощью скрипта manage.py.

Наиболее частые сферы применения — это действия, выполняемые разово или периодически, но для которых почему-либо недоступен запуск через планировщик. Например, отправка пользователям разовых сообщений, получение выборки данных из БД, проверка наличия необходимых файлов и папок перед накатыванием обновлений, быстрое создание объектов модели при разработке и т.д.

     24.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

Допинг для аналитики: почему стоит обратить внимание на Apache Zeppelin

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

А вот внедряют аналитику все по-разному: кто-то покупает сторонние решения (просто, но негибко), кто-то пишет под себя (долго и дорого), а кто-то пока просто считает несколько базовых метрик силами программистов и не заморачивается.

     23.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

Narrow — кто быстрее в веб

Измеряем пропускную способность веб-серверов и каркасов приложений на Python.

     22.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

iMaterialist Furniture Challenge или 50 оттенков стульев

Недавно на Kaggle закончилось соревнование iMaterialist Challenge (Furniture), задачей в котором было классифицировать изображения на 128 видов мебели и предметов быта (так называемая fine-grained classification, где классы очень близки друг к другу).

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

     22.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

Celery + Channels = <3. Создаем реал-тайм приложение с бэкграунд тасками

В статье создадим веб-приложение, которое в бэкграунде делает запросы к API со случайными шутками каждые 15 секунд, затем отправляет шутку пользователю через WebSocket. Для реализации приложения будем использовать: django, celery и channels. Celery для бэкграунд задач. Channels для передачи сообщений через WebSocket.

     20.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

Сортировки обменами

Если описать в паре предложений по какому принципу работают сортировки обменами, то:

 

  1. Попарно сравниваются элементы массива
  2. Если элемент слева* больше элемента справа, то элементы меняются местами
  3. Повторяем пункты 1-2 до тех пор, пока массив не отсортируется

     19.06.2018       Выпуск 235 (18.06.2018 - 24.06.2018)       Статьи

Соревнование Kaggle Home Credit Default Risk — анализ данных и простые предсказательные модели

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

     17.06.2018       Выпуск 234 (11.06.2018 - 17.06.2018)       Статьи

Kivy. От создания до production — один шаг. Часть 2 Kivy

Сегодня, как всегда, поговорим о создании мобильных приложений с фреймворком Kivy и Python. В частности речь пойдет о создании мобильного клиента для одного Интернет ресурса и публикации его в Google Play. Я расскажу, с какими проблемами может столкнуться новичок и опытный разработчик, которые решили попробовать себя в кроссплатформенной разработке с Kivy, что можно и чего лучше не делать в программировании с Python for Android.

     17.06.2018       Выпуск 234 (11.06.2018 - 17.06.2018)       Статьи

Kaggle: Amazon from Space — трюки и хаки при обучении нейросетей

Летом прошлого года закончилось соревнование на площадке kaggle, которое было посвящено классификации спутниковых снимков лесов Амазонки. Наша команда заняла 7 место из 900+ участников. Не смотря на то, что соревнование закончилось давно, почти все приемы нашего решения применимы до сих пор, причём не только для соревнований, но и для обучения нейросетей для прода.

     17.06.2018       Выпуск 234 (11.06.2018 - 17.06.2018)       Статьи

Обзор Ubuntu DSVM: алхимия ни при чём

В течение последних месяцев в нескольких проектах наш партнер использовал виртуальную машину для обработки и анализа данных (DSVM) на базе Ubuntu от Microsoft. Он решил попробовать ее в деле уже используя продукт Amazon. Рассмотрим все плюсы и минусы, а также сравним наш инструмент с похожими решениями.

     17.06.2018       Выпуск 234 (11.06.2018 - 17.06.2018)       Статьи

Анализ таблиц маршрутизации, или зачем ещё сетевому инженеру Python

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

     11.06.2018       Выпуск 234 (11.06.2018 - 17.06.2018)       Статьи

Стеганография в IP-пакетах

Однажды, перед защитой очередной лабораторной работы мне задали вопрос: какие поля IP-пакета можно использовать для стегано? Я не знал и лишь пожал плечами. Но вскоре я всё же решил изучить этот вопрос.

Под катом вас ждёт изучение заголовков IP-пакетов, собственная утилита ping на Python и несколько способов передать данные, не привлекая внимания.

     10.06.2018       Выпуск 233 (04.06.2018 - 10.06.2018)       Статьи

Состязательные атаки (adversarial attacks) в соревновании Machines Can See 2018

Или как я оказался в команде победителей соревнования Machines Can See 2018 adversarial competition.

     10.06.2018       Выпуск 233 (04.06.2018 - 10.06.2018)       Статьи

Как я писал логин по протоколу SRP6a на Python, а получил… JavaScript и Python в одной коробке

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

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

     05.06.2018       Выпуск 233 (04.06.2018 - 10.06.2018)       Статьи

Как нас анализируют в кинотеатрах… и не только

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

     04.06.2018       Выпуск 233 (04.06.2018 - 10.06.2018)       Статьи

Сборка Caffe в Google Colaboratory: бесплатная видеокарта в облаке

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

     04.06.2018       Выпуск 233 (04.06.2018 - 10.06.2018)       Статьи

Хабра-словарь. Часть 1

Решал задачу составления словаря Хабрахабра для целей отслеживания появления новых языков, фреймворков, практик управления и т.п. Короче новых слов.

 

Результатом стал список английских слов «в именительном падеже и единственном числе».

     01.06.2018       Выпуск 232 (28.05.2018 - 03.06.2018)       Статьи

Калибровка камеры Intel RealSense d435 с помощью OpenCV2 и ROS

Хочу поделиться опытом работы с камерой Intel RealSense, модель d435. Как известно, многие алгоритмы машинного зрения требуют предварительной калибровки камеры. Так уж получилось, что мы на нашем проекте используем ROS для сборки отдельных компонентов автоматизированной интеллигентной системы. Однако, проштудировав русскоязычный интернет, я не обнаружил каких-либо толковых туториалов на эту тему. Данная публикация призвана восполнить этот пробел.