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

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

     19.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Метаморфозы атрибутов класса

Переход с классических языков программирования на Питон доставляет немало сюрпризов.
Читаем документацию:

 

Generally speaking, instance variables are for data unique to each instance and class variables are for attributes and methods shared by all instances of the class

     19.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Введение в WSGI-серверы: Часть первая

WSGI-серверы появились потому, что веб-серверы в то время не умели взаимодействовать с приложениями, написанными на языке Python. WSGI (произносится как «whiz-gee» с твердым «g») был разработан Филиппом Дж. Эби (вместе с Ян Бикинг и др.) В начале 2000-х годов. Модуль Apache, известный как mod_python, разработанный Григорием Трубецким в конце 90-х годов, на тот момент обрабатывал большую часть Python-приложений. Однако mod_python не был официальной спецификацией. Он был просто создан, чтобы разработчики могли запускать код Python на сервере. К сожалению, такой подход был небезопасным и разработчики начали искать новое решение.

WSGI(Web-Server Gateway Interface) является потомком CGI(Common Gateway Interface). Когда веб начал развиваться, CGI разрастался из-за поддержки огромного количества языков и из-за отсутствия других решений. Однако, такое решение было медленным и ограниченным. WSGI был разработан как интерфейс для маршрутизации запросов от веб-серверов(Apache, Nginx и т.д.) на веб-приложения.

     18.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Как правильно «фармить» Kaggle

Недавно (1 октября) стартовала новая сессия прекрасного курса по DS/ML (очень рекомендую в качестве начального курса всем, кто хочет, как это теперь называется, "войти" в DS). И, как обычно, после окончания любого курса у выпускников возникает вопрос — а где теперь получить практический опыт, чтобы закрепить пока еще сырые теоретические знания. Если вы зададите этот вопрос на любом профильном форуме — ответ, скорее всего, будет один — иди решай Kaggle. Kaggle — это да, но с чего начать и как наиболее эффективно использовать эту платформу для прокачки практических навыков? В данной статье автор постарается на своем опыте дать ответы на эти вопросы, а также описать расположение основных грабель на поле соревновательного DS, чтобы ускорить процесс прокачки и получать от этого фан.

     18.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Работа с изображениями на Python в 2017 году

Тема сегодняшнего разговора — чему же научился Python за все годы своего существования в работе с изображениями. И действительно, кроме старичков родом из 1990 года ImageMagick и GraphicsMagick, есть современные эффективные библиотеки. Например, Pillow и более производительная Pillow-SIMD. Их активный разработчик Александр Карпинский (homm) на MoscowPython сравнил разные библиотеки для работы с изображениями на Python, представил бенчмарки и рассказал о неочевидных особенностях, которых всегда хватает. В этой статье расшифровка доклада, который поможет вам выбрать библиотеку под свое приложение, и сделать так, чтобы она работало максимально эффективно.

     17.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи
     17.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Облачные сервисы Amazon и анализ инвестиционного портфеля

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

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

     17.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Построение функций в консоли. Часть 2 (График)

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

Итак, основная идея состоит в следующем. Повернем координатную ось на 90 градусов по часовой стрелке. Это нужно для того, чтобы упростить построения, не храня данные о каждой точке в каком-нибудь листе.

     17.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Автоматизация импорта данных в Google BigQuery с помощью Google Cloud Functions

Мы постоянно работаем с Google BigQuery – импортируем данные о пользователях, их заказах и расходах на рекламу из разных источников, чтобы иметь возможность объединять их между собой. Что нам это дает? Например, если у вас интернет-магазин и клиент делает заказ по телефону, а потом авторизовывается на сайте, то с помощью Google BigQuery можно связать все его действия задним числом. Можно отслеживать весь путь клиента по маркетинговой воронке – от первого попадания на сайт до покупки в brick and mortar магазине, и оценивать рекламные кампании с учетом таких офлайн-продаж.

     16.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Интеграция с SAP ERP, на примере с Django-python, по протоколу oData(rest)

Всегда была интересна тема интеграции больших систем вроде SAP с небольшими, но более гибкими, так-сказать взять лучшее из того и другого.

В частности, в моем примере будет описана интеграция SAP ERP с Django.

     16.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Python-установщик Android-сборок из TeamCity своими руками

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

 

В настоящей статье мы рассмотрим существующее решение, напишем свое на Python и сравним их.

     16.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Конференция про Python и про общение

Традиционно Python используют для создания сетевых сервисов, бэкенда в вебе и, конечно, для сбора и обработки данных, как правило Больших. Эти направления в равных долях с экосистемными докладами и постараемся обсудить на грядущей Moscow Python Conf++. Эта конференция для Python-разработчиков состоится в Москве 22 и 23 октября, и я возглавляю её Программный комитет. Программа, можно сказать, выстрадана, нам удалось сделать её именно такой, как мы и планировали, — разнообразной. Бэкенд, Big Data и особенности языка, у нас гармонично сочетаются с докладами по тестированию, искусственному интеллекту, безопасности и DevOps. Хочется заранее поделиться с вами результатом, поэтому предлагаю обзор докладов по секциям — то, что к вам никак не относится, можно проматывать.

     15.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Как подружить питон с Невидимым Интернетом? Основы разработки I2P приложений на Python и asyncio

Проект Невидимый Интернет (далее просто I2P) представляет разработчикам платформу для разработки приложений с усиленными требованиями по приватности пользователей. Это виртуальная сеть поверх обычного Интернета, в которой узлы могут обмениваться данными и при этом не раскрывать свой настоящий IP адрес. Вместо IP адресов внутри Невидимого Интернета соединения происходят между виртуальными адресами, которые называются I2P Destination. Можно иметь сколько угодно таких адресов и менять их хоть для каждого соединения, они не предоставляют другой стороне никакой информации о настоящем IP адресе клиента.

 

В этой статье описаны базовые вещи, которые нужно знать для написания I2P приложений. Примеры кода приведены на Python с использованием встроенного асинхронного фреймворка asyncio.

     15.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

[Перевод] Как сделать функции на Python еще лучше

Собственно, заголовок этой замечательной статьи от Джеффа Кнаппа (Jeff Knupp), автора книги "Writing Idiomatic Python" полностью отражает ее суть. Читайте внимательно и не стесняйтесь комментировать.

Поскольку очень не хотелось оставлять в тексте важный термин латиницей, мы позволили себе перевести слово «docstring» как «докстрока», обнаружив этот термин в нескольких русскоязычных источниках.

     14.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Построение функций в консоли. Часть 1

У большинства наверняка возникнет резонный вопрос: зачем?

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

Но если вдруг вам дали такое задание или вы просто очень любите программирование, как я, то вам предстоят увлекательные — а временами и не очень — часы написания программы и ее отладки)

     14.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Мемоизация дефолтным kwarg в Python

Вот так можно мемоизировать питоновскую функцию:

     13.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Что нужно запомнить программисту переходящему на Python

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

 

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

     13.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Символьное решение линейных дифференциальных уравнений и систем методом преобразований Лапласа c применением SymPy

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

В данной публикации предлагаю рассмотреть функции прямого и обратного преобразования Лапласа из библиотеки SymPy, которые позволяют использовать метод Лапласа для решения дифференциальных уравнений и систем средствами Python.

     12.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Python: метапрограммирование в продакшене. Часть вторая

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

     12.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Инструменты для анализа кода Python. Часть 2

Популярные инструменты для анализа кода Python делают плоды вашего труда лучше и эффективнее. Как? Рассказываем в статье.

     10.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Миграция схемы базы данных без даунтайма для postgresql на примере django

Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный список рабочих операций по изменению схемы. Django можно заменить на любой любимый фрэймворк/библиотеку — подходы скорее всего будут похожи.