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

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

     07.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Видео

Анатомия баннерной системы Lamoda

В докладе рассмотрим баннерную систему, разработанную в Lamoda.

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

     07.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Видео

Python в первой половине 2017 года

В мире Python за первую половину 2017 года произошло множество интересных событий: перенос репозитория проекта на github, интервью с Гвидо на подкасте “Talk Python”, выход новой версии Django и еще много всего. Краткую выжимку вы сможете послушать в нашем традиционном (второй раз — это уже традиция!) докладе на этом Moscow Python Meetup. Будьте в курсе всего нового!

     07.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Спасёт ли Python от казни?

При просмотре экшн-фильмов (фильмов с хорошо продуманными динамичными сценами) иногда закрадывается в голову: а реально ли это в действительности? Например, мог ли автомобиль перевернуться на маленькой скорости, как быстро можно раскачаться на верёвке без начальной скорости над пропастью… 

     06.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Использование утилит timeout & strace для мониторинга неактивности пользователя для разрыва соединения Shellinabox

 

Недавно я занимался тем, что исследовал какие существуют решения для реализации web-ssh прокси-сервера. Суть задачи заключается в том, чтобы дать пользователям возможность соединяться с произвольным ssh-сервером посредством web-интерфейса. Обычно, решения web-ssh предназначены для соединения с сервером, на котором они развернуты, но в рамках моей задачи мне хотелось, чтобы пользователь мог указать IP, порт, имя и пароль пользователя (или ключ) и выполнить соединение с произвольным сервером. С ходу найти подобного решения мне не удалось.

 

Однако, для открытого пакета shellinabox я обнаружил решение на блоге на немецком языке, которое я и решил довести до нужного мне уровня. В итоге, получился симпатичный контейнер Docker, который можно найти как на GitHub так и на Dockerhub, который решает все необходимые задачи.

     05.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Вырастаем над проблемами Python

Сегодня я хочу поделиться с вами впечатлениями от нашей поездки на конференцию PyCon CZ 2017, которая прошла в Праге. Мне давно хотелось узнать, какие темы обсуждают зарубежные коллеги, чем они отличаются от “нашей” повестки. И это стало возможным, когда меня в составе небольшой команды разработчиков отправили в Чехию. Конечно, оказалось, что перед зарубежными коллегами стоят такие же задачи и вопросы. Но вот угол зрения докладчиков и те акценты, которые они расставляют, показались мне интересными. Под катом — короткие заметки по интересным докладам, особенности чешской конференции и несколько фото. 

     05.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Про аналитику и серебряные пули или «При чем здесь Рамблер/топ100?»

Это лонгрид о том, как мы проектировали архитектуру обновлённого сервиса веб-аналитики, с какими сложностями столкнулись по пути и как с ними боролись. Если вам интересны такие базворды как ClickhouseAerospikeSpark, добро пожаловать под кат.

В прошлом году Рамблеру и Топ-100 исполнилось 20 лет – достаточно большой срок, за который на сервисе было несколько крупных обновлений и последнее из них случилось достаточно давно. Предыдущая версия Рамблер/топ-100 морально устарела, с точки зрения интерфейсов, кода и архитектуры. Планируя перезапуск, мы отдавали себе отчёт в том, что косметическим ремонтом не обойтись – нам надо было выстроить новый сервис практически с нуля.

     04.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Оптимизация производительности Django проектов (часть 2)

Это продолжение серии статей про оптимизацию Django приложений. Первая часть доступна здесь и рассказывает о профилировании и настройках Django. В этой части мы рассмотрим оптимизацию работы с БД (модели Django).

     02.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Метод оптимизации Нелдера — Мида. Пример реализации на Python

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

     01.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Автоэнкодеры в Keras, Часть 6: VAE + GAN

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

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

В этой части попробуем взять лучшее от обоих подходов путем совмещения вариационных автоэнкодеров (VAE) и генеративных состязающихся сетей (GAN)

     01.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Интеграция 1С с DLL с помощью Python

Недавно я разработал алгоритм для логистики, и нужно было его куда-то пристроить. Помимо веб-сервиса решено было внедрить данный модуль в 1С, и тут появилось довольно много подводных камней. 

Начнем с того, что сам алгоритм представлен в виде dll библиотеки, у которой одна точка входа, принимающая JSON строку как параметр, и отдающая 2 колбэка. Первый для отображения статуса выполнения, другой для получения результата. С web-сервисом все довольно просто, у питона есть замечательный пакет ctypes, достаточно подгрузить нужную библиотеку и указать точку входа. 

     01.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Создание запускаемых файлов из скриптов на языке Python с помощью cx_Freeze

Статья про основы использования библиотеки cx_Freeze для создания запускаемых файлов и настройки параметров сборки.

Python - интерпретируемый язык, а это значит, что если вы хотите распространять ваше приложение, то у пользователя должен быть установлен интерпретатор, на вход которого он должен подать исходные коды вашей программы. Если вы разрабатываете приложение под Linux или основная масса пользователей вашей программы - айтишники (программисты, админы и им сочувствующие), то требование установить интерпретатор Python скорее всего их не испугает. А вот заставлять устанавливать Python, а, возможно, еще и дополнительные библиотеки обычных пользователей - сомнительная идея.

     01.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Делаем data science-портфолио: история через данные

Data science-компании всё чаще смотрят портфолио, когда принимают решение о приёме на работу. Это, в  частности, из-за того, что лучший способ судить о практических навыках — именно портфолио. И хорошая новость в том, что оно полностью в вашем распоряжении: если постараетесь – сможете собрать отличное портфолио, которым будут впечатлены многие компании.

     01.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Вероятностный и информационный анализ результатов измерений на Python

Нет более полезного инструмента для исследования, чем подтверждённая практикой теория.

Зачем нужна информационная теория измерений

В предыдущей публикации [1] мы рассмотрели подбор закона распределения случайной величины по данным статистической выборки и только упомянули об информационном подходе к анализу погрешности измерений. Поэтому продолжим обсуждение этой актуальной темы.

     30.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Автоэнкодеры в Keras, Часть 5: GAN(Generative Adversarial Networks) и tensorflow

При всех преимуществах вариационных автоэнкодеров VAE, которыми мы занимались в предыдущих постах, они обладают одним существенным недостатком: из-за плохого способа сравнения оригинальных и восстановленных объектов, сгенерированные ими объекты хоть и похожи на объекты из обучающей выборки, но легко от них отличимы (например, размыты).

     30.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Использование Python и Excel для обработки и анализа данных. Часть 2: библиотеки для работы с данными

Как читать и редактировать Excel файлы при помощи openpyxl

Эта библиотека пригодится, если вы хотите читать и редактировать файлы .xlsx, xlsm, xltx и xltm.

Установите openpyxl using pip. Общие рекомендации по установке этой библиотеки — сделать это в виртуальной среде Python без системных библиотек. Вы можете использовать виртуальную среду для создания изолированных сред Python: она создает папку, содержащую все необходимые файлы, для использования библиотек, которые потребуются для Python.

     30.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Дискриминация котов: веб-трекинг через невидимые картинки

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

     30.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Получаем фотографии NASA с Марса с помощью aiohttp

Я большой фанат книги «Марсианин» Энди Вейера. Читая её, мне было интересно, что же Марк Уотни чувствовал, гуляя по красной планете. Недавно наткнулся на пост на Twillo, в котором упоминалось, что у NASA есть публичный API для доступа к фотографиям с марсоходов. Так что я решил написать собственное приложение для просмотра изображений непосредственно в браузере.

     29.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Руководство: как использовать Python для алгоритмической торговли на бирже. Часть 2

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

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

Jupyter notebook этого руководства можно скачать здесь.

     28.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Fast Python. Парсинг ISO дат

Преобразование ISO-даты из строки в объект datetime.datetime (или datetime.date), наверное, одна из самых распространенных и постоянных задач в web-разработке на Python. Количество способов сделать это просто поражает воображение