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

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

     27.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи
     27.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи

Создание Dataflow шаблона для стриминга данных из Pub/Sub в BigQuery на базе GCP с помощью Apache Beam SDK и Python

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

 

Весь процесс включает в себя участие следующих сервисов Google Cloud Platform:

  • Pub/Sub — сервис для realtime стриминга данных
  • Dataflow — сервис для преобразования данных (может
    работать как в realtime так и в batch режиме)
  • BigQuery — сервис для хранения данных в виде таблиц
    (поддерживает SQL)

     27.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи

Введение в аннотации типов Python. Продолжение

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

     26.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи

Гадание на нейросетях: отметился ли в комментариях к посту сам автор

Поделюсь рассказом о небольшом проекте: как найти в комментариях ответы автора, заведомо не зная кто автор поста.

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

     26.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи
     26.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи

Как мы делали платежную систему для криптовалюты: пять основных проблем

Когда летом 2017 года мы запускали платформу, то задумались о том, как принимать криптовалюты и какой процессинг использовать. Увы, никто на тот момент не был готов дать хоть какие-либо гарантии по уязвимости контракта, да и история с атакой платформы DAO была еще на слуху. Мы не хотели идти по стопам DAO. К тому же, у нас были некоторые наработки по приему платежей через блокчейн. Так что мы решили самостоятельно проработать весь цикл проведения блокчейн-платежей. В этом посте мы расскажем о том, что у нас получилось, и, что самое интересное, — о том, какие проблемы нам пришлось решить в процессе.

     26.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи

Сервим всё

Про создание и обучение моделей нейронных сетей (навыков) на Хабре написано не мало, поэтому не будем об этом сегодня. Обучив или получив сериализованные навыки ИИ, мы рассчитываем использовать их в наших целевых информационных системах, и тут возникает проблема. То что работает на стенде в лаборатории не перенести в производство в исходном виде, необходимо внедрение всего сопряженного стека технологий и даже существенная доработка под целевую платформу (есть, конечно, исключения в виде CoreML, но это частный случай и только для техники Apple). К тому же, инструментов разработки и сериализации моделей великое множество, неужели для каждого придется разрабатывать отдельное решение для интеграции? Кроме того, даже в лаборатории часто возникает необходимость получить быстрый вывод от модели, не ожидая прогрузки всего связанного девелоперского стека.


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

     26.02.2019       Выпуск 271 (25.02.2019 - 03.03.2019)       Статьи

[Перевод] Управление памятью в Python

Задумывались ли вы когда-нибудь о том, как данные, с которыми вы работаете, выглядят в недрах Python? О том, как переменные создаются и хранятся в памяти? О том, как и когда они удаляются? Материал, перевод которого мы публикуем, посвящён исследованиям глубин Python, в ходе которых мы попытаемся выяснить особенности управления памятью в этом языке. Изучив эту статью, вы разберётесь с тем, как работают низкоуровневые механизмы компьютеров, в особенности те из них, которые связаны с памятью. Вы поймёте то, как Python абстрагирует низкоуровневые операции и познакомитесь с тем, как он управляет памятью.

     23.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи
     22.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи
     22.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи

Опыт построения инфраструктуры на микросервисной архитектуре

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

 

У нас в небольшом банке были большие проблемы: 3 python монолита связанных чудовищным количеством синхронных RPC взаимодействий с большим объемом legacy. Что бы хотя бы отчасти решить все возникающие при этом проблемы было принято решение перейти на микросервисную архитектуру. Но прежде чем решиться на такой шаг нужно ответить на 3 основных вопроса:

 

  • Как разбить монолит на микросервисы и какими критериями следует при этом руководствоваться.
  • Каким образом микросервисы будут взаимодействовать?
  • Как осуществлять мониторинг?

     22.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи
     21.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи
     21.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи

OpenAI Gym+ROS+Gazebo: обучение автономного робота в домашних условиях. Часть 1

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

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

     21.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи
     21.02.2019       Выпуск 270 (18.02.2019 - 24.02.2019)       Статьи