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

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

     21.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

История одного эксперимента с Cython и C++ vector

Одним холодным зимним вечером, хотелось согреться в офисе и проверить теорию одного коллеги, что C++ vector мог бы быстрее справиться с задачей, чем CPython list.
В компании мы разрабатываем продукты на базе Django и случилось так, что нужно было обработать один большой массив словарей. Коллега предположил, что реализация на C++ была бы гораздо быстрее, а меня не покидало чувство, что Гвидо и сообщество наверное немного круче нас в Си и возможно уже решили и обошли все подводные камни, реализовав всё гораздо быстрее.
Для проверки теории, я решил написать небольшой тестовый файл, в котором решил прогнать в цикле вставку 1М словарей одинакового содержания в массив и в vector 100 раз подряд.
Результаты хоть и были ожидаемые, но так же и внезапные.

     19.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Модульное тестирование и Python

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

     19.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Pylint изнутри. Как он это делает

Разные помощники в написании классного кода нас просто окружают, линтеры, тайпчекеры, утилиты для поиска уязвимостей, всё с нами. Мы привыкли и используем не вдаваясь в детали, как «черный ящик». Например, мало кто разбирается в принципах работы Pylint — одного из таких незаменимых инструментов для оптимизации и улучшения кода на Python.

     19.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Без BDFL: кто теперь направит Python?

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Видео

Что внутри у питона: откуда быть пошел async

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Видео

Госуслуги в формате диалогов с чат-ботами. Real-time приложение с чат-ботами на Python

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Знакомство с Тестированием в Python. Ч. 2

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

О чем говорит YouTube

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

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Книга «Как устроен Python. Гид для разработчиков, программистов и интересующихся»

У нас недавно вышла новая книга про «Python». Предлагаем сразу ознакомится с ознакомительным материалом.

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Введение в аннотации типов Python

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Multi-page SPA на Питоне

Сова – это нано-фреймворк, который можно встроить в другие фреймворки.

Идея делать сайты на Питоне с прорисовкой на React не нова. Есть замечательный фреймворк https://plot.ly/products/dash/, зачем еще что-то делать?
Объясняю: Сова не рассчитана на разработку сайтов. Это инструмент для замены толстых клиентов на приложения, работающие через браузер (десктопные приложения).

     17.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Отображение изображений в админ панели на примере пользовательского профиля

Для улучшения возможности отображения информации о пользователях в административной панели сайта, реализовал возможность отображения аватаров пользователей, как в специальной модели UserProfile, которая имеет One-To-One отношение к модели User, так и в самой модели User добавил отображение аватарки через inline форму.

     17.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Знакомство с тестированием в Python. Ч.1

Это руководство для тех, кто уже написал классное приложение на Python, но еще не писал для
них тесты.

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

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

     15.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Видео
     14.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Статьи

Вопросы не мальчика, а джуна. 22 вопроса работодателю на собеседовании на позицию «Middle Python-разработчик»

За 2 года мне посчастливилось посетить более сорока собеседований в качестве кандидата на позицию «Middle Python-разработчик». На последних пятнадцати собеседованиях я понял необходимость задавать вопросы работодателю, чтобы в дальнейшем не столкнуться с неожиданностями по работе. Помимо базовых вопросов, которые обычно задают кандидаты работодателю я решил сформировать свои вопросы. Когда я задавал эти вопросы на собеседованиях, я получал самые различные реакции со стороны собеседующих. Кто-то говорил, что я дотошный, кто-то считал эти вопросы слишком банальными, а кто-то даже начинал нервничать(краснеть) и немедленно прерывать собеседование с нелепой отговоркой о том, что у него совещание. В этой статье я хотел бы рассказать об общих идеях посещения таких мероприятий а также привести мои 22 вопроса, которые я задаю на собеседовании работодателю.

     14.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Статьи

Google News и Лев Толстой: визуализация векторных представлений слов с помощью t-SNE

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

Статья посвящена визуализации при помощи t-SNE рассчитанных Word2Vec многомерных векторных представлений слов. Визуализация позволит полнее понять принцип работы Word2Vec и то, как следует интерпретировать отношения между векторами слов перед дальнейшем использованием в нейросетях и других алгоритмах машинного обучения. В статье акцентируется внимание именно на визуализации, дальнейшее исследование и анализ данных не рассматриваются. В качестве источника данных мы задействуем статьи из Google News и классические произведения Л.Н. Толстого. Код будем писать на Python в Jupyter Notebook.

     14.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Статьи

Распознаём тексты на Android Things с ABBYY RTR SDK и django

Представьте себе небольшой конвейер. По нему едут товары или какие-то детали, на которых важно распознавать текст (возможно, это некий уникальный идентификатор, а может, и что-то более интересное). Хорошим примером будут посылки. Работу конвейера дистанционно контролирует оператор, который отслеживает неполадки и в случае чего решает проблемы. Что может ему в этом помочь? Девайс на платформе Android Things может быть неплохим решением: он мобильный, легко настраивается и может работать через Wi-Fi. Мы решили попробовать использовать технологии ABBYY и узнать, насколько они подходят для таких ситуаций — распознавания текста в потоке на “нестандартных устройствах” из категории Internet of Things. Мы сознательно будем упрощать многие вещи, так как просто строим концепт

     14.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Статьи

Немного внутренностей словарей в CPython (и PyPy)

Внутреннее устройство словарей в Python не ограничивается одними лишь бакетами и закрытым хешированием. Это удивительный мир разделяемых ключей, кеширования хешей, DKIX_DUMMY и быстрого сравнения, которое можно сделать ещё быстрее (ценой бага с примерной вероятностью в 2^-64).

Если вы не знаете количество элементов в только что созданном словаре, сколько памяти расходуется на каждый элемент, почему теперь (CPython 3.6 и далее) словарь реализован двумя массивами и как это связано с сохранением порядка вставки, или просто не смотрели презентацию Raymond Hettinger «Modern Python Dictionaries A confluence of a dozen great ideas». Тогда добро пожаловать.

     13.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Статьи

Очень простой чат-бот для Telegram для самых маленьких

Есть 100500 способов и инструментов создать простого serverless чат-бота для телеграм. А наш все-равно будет проще, хотя бы по числу кликов в интерфейсе. Сам бот будет написан на Python, а выполнятся будет на serverless движке Swifty.
 

     12.12.2018       Выпуск 260 (10.12.2018 - 16.12.2018)       Статьи

Кратчайшее введение в создание компилятора

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

 

Если первый опыт окажется успешным, то в будущем вас могут ожидать и другие 15-минутные "зарисовки" по тематике компиляторов.