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

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

     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)       Статьи

Знакомство с Тестированием в 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 — обширная тема с кучей тонкостей, но не обязательно все усложнять. В несколько простых шагов можно создать простые тесты для приложения, постепенно наращивая сложность на их основе.

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

     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-минутные "зарисовки" по тематике компиляторов.

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

Топ книг по фреймворку Django

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

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

Реализация алгоритма Левенберга-Марквардта для оптимизации нейронных сетей на TensorFlow

Это tutorial по библиотеке TensorFlow. Рассмотрим её немного глубже, чем в статьях про распознавание рукописных цифр. Это tutorial по методам оптимизации. Совсем без математики здесь не обойтись. Ничего страшного, если вы её совершенно забыли. Вспомним. Не будет никаких формальных доказательств и сложных выводов, только необходимый минимум для интуитивного понимания. Для начала небольшая предыстория о том, чем этот алгоритм может быть полезен при оптимизации нейронной сети.

     05.12.2018       Выпуск 259 (03.12.2018 - 09.12.2018)       Статьи

Еще одна реализация Обработки Данных

Представьте себе инструмент, с помощью которого вы можете трансформировать любые данные в… любые данные.

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

     04.12.2018       Выпуск 259 (03.12.2018 - 09.12.2018)       Статьи

Три вида утечек в памяти

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

Итак, у вас получилась программа, на выполнение которой тратится чем дальше — тем больше времени. Вероятно, вам не составит труда понять, что это верный признак утечки в памяти.
Однако, что именно мы понимаем под «утечкой в памяти»? По моему опыту, явные утечки в памяти делятся на три основные категории, для каждой из которых характерно особое поведение, а для отладки каждой из категорий нужны особые инструменты и приемы. В этой статье я хочу описать все три класса и подсказать, каким образом правильно распознать, с
которым из классов вы имеете дело, и как найти утечку.