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

Собрали в одном месте самые важные ссылки
читайте нас в Telegram

     25.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Развертывание модели глубокого обучения Keras в виде веб-приложения на Python

Создать классный проект с машинным обучением – это одно дело, другое дело, когда вам нужно, чтобы другие люди тоже смогли его увидеть. Конечно, вы можете положить весь проект на GitHub, но как ваши бабушка с дедушкой поймут, что вы сделали? Нет, нам нужно развернуть нашу модель глубокого обучения в виде веб-приложения, которое будет доступно любому человеку в мире.

     25.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Превращаем робот-пылесос в универсального солдата

Все началось с увлечения глубоким обучением, нейронными сетями и далее по списку. Я посмотрел пару курсов, поучаствовал в соревновании на Kaggle… "чем бы еще заняться?". Тут мимо как раз по своим делам проползал робот-пылесос (Xiaomi Vacuum Cleaner V1) и подкинул интересную идею…

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Django. Создание динамических настроек сайта с помощью SingletonModel

Допустим, вы создаёте сайт с CMS на основе Django, у которого должны быть какие-то динамические настройки сайта, которые будут доступны пользователю. Например, название сайта, какая-то специализированная информация, при этом вы учитываете возможность мультиязычности. То что тогда можно использовать для этого? Мне пришла мысль использовать базу данных.

Для реализации этого требуется следующее:

  1. Создание модели данных, которая всегда будет содержать только один объект, то есть только одну запись. То есть это будет Singleton Model.
  2. Запретить удалять данную запись и создавать новые в панели администрирования Django
  3. Возможность использования иноформации из этой модели прямо в шаблоне, без загрузки настроек сайта в view функции.

Давайте разберёмся по порядку, как это реализовать.

 

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Как добавить пользовательские кнопки в Django Admin

В этой статье “шпаргалке” рассмотрено добавление пользовательских кнопок в интерфейс Django Admin. В первой части рассказано как добавить одно кнопку на страницу списка выбранной модели – list view. Например кнопку импорта чего либо. Во второй части рассказано как добавить пользовательские кнопки действий (actions) для каждой выбранной записи отдельно с дополнительными формами.

     21.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Ещё одна библиотека для создания mock'ов

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

     20.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

DeepPavlov для разработчиков: #2 настройка и деплоймент

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

Договоримся, что все скрипты запуска библиотеки выполняются в environment Python с установленной библиотекой DeepPavlov (про установку см. первую статью, про virtualenv можно прочитать здесь). Примеры из этой статьи не требуют знания синтаксиса Python.

     20.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

8 причин, по которым вы обязательно захотите использовать Azure Notebooks

Если вы data scientist, или занимаетесь машинным обучением, как я — наверняка вы пишете большую часть кода в Jupyter Notebooks. Для всех остальных поясню: Jupyter — это замечательная система, позволяющая вам сочетать исполняемый программный код и текстовые фрагменты на основе Markdown в едином документе, который можно редактировать и выполнять прямо через браузер. Такой документ называется ноутбуком (теперь вы знаете, как подарить другу ноутбук на день рождения и не сильно потратиться)

     18.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Строим домашний CI/CD при помощи GitHub Actions и Python

Как то вечером, придя домой с работы, я решил немного позаниматься домашним проектом. Я сделал несколько правок и сразу захотел поэкспериментировать с ними. Но до экспериментов мне пришлось заходить на VPS, пулить изменения, пересобирать контейнер и запускать его. Тут я и решил, что пора разобраться с непрерывной доставкой.

     17.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Нейросеть для определения хейтеров — «не, ну это бан»

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

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

Для работы я буду использовать Google Colab. Этот сервис позволяет запускать Jupyter Notebook'и, имея доступ к GPU (NVidia Tesla K80) бесплатно, что ускорит обучение. Мне понадобится backend TensorFlow, дефолтная версия в Colab 1.15.0, поэтому просто обновим до 2.0.0.

     15.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 2

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

     14.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Как в Redash заметили и исправили проблему, вызвавшую деградацию производительности Python-кода

Недавно в Redash приступили к смене одной системы выполнения задач на другую. А именно — они начали переход с Celery на RQ. На первом этапе на новую платформу перевели лишь те задания, которые не выполняют запросы напрямую. Среди таких заданий — отправка электронных писем, выяснение того, какие запросы должны быть обновлены, запись пользовательских событий и другие вспомогательные задачи.

     14.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Импорт отчета по звонкам из CoMagic в BigQuery по расписанию с помощью Google Cloud Functions

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

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

     13.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Жадные алгоритмы – часть 2. Разделяй и властвуй.

Продолжаем перевод бесплатной книги “Парадигмы алгоритмического проектирования (жадные алгоритмы, разделяй и властвуй и динамическое программирование)”

     13.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Подборка @pythonetc, октябрь 2019

Новая подборка советов про Python и программирование из авторского канала @pythonetc.

     13.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Как написать смарт-контракт на Python в сети Ontology. Часть 2: Storage API

Это вторая часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology. В предыдущей статье мы познакомились с Blockchain & Block API смарт-контракта Ontology.

Сегодня мы обсудим, как использовать второй модуль— Storage API. Storage API имеет пять связанных API, которые позволяют добавление, удаление и изменения в постоянном хранилище в смарт-контрактах на блокчейне.

     12.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Блиц-проверка алгоритмов машинного обучения: скорми свой набор данных библиотеке scikit-learn

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

     12.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 1

Публикуем первую часть перевода очередного материала из серии, посвящённой тому, как в Instagram работают с Python. В первом материале этой серии речь шла об особенностях серверного кода Instagram, о том, что он представляет собой монолит, который часто меняется, и о том, как статические средства проверки типов помогают этим монолитом управлять. Второй материал посвящён типизации HTTP-API. Здесь речь пойдёт о подходах к решению некоторых проблем, с которыми столкнулись в Instagram, используя Python в своём проекте. Автор материала надеется на то, что опыт Instagram пригодится тем, кто может столкнуться с похожими проблемами.

     12.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Если у Вас нет Питона, но есть Керас-модель и Джава

В построении ML-моделей Python сегодня занимает лидирующее положение и пользуется широкой популярностью сообщества Data Science специалистов

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

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

     12.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Жадные алгоритмы – часть 1. Алгоритм Дейкстры.

Эта отрывок из бесплатной книги “Парадигмы алгоритмического проектирования (жадные алгоритмы, разделяй и властвуй и динамическое программирование)”