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

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

     28.03.2016       Выпуск 119 (28.03.2016 - 03.04.2016)       Конференции, события, встречи разработчиков

Отчёт с Moscow Python Meetup 18 марта

18 марта в московском офисе Mail.Ru Group прошла очередная встреча «питонистов» — Moscow Python Meetup. В рамках традиционного однодневного формата было три выступления, с видеозаписями и презентациями которых вы теперь можете ознакомиться. 

     27.03.2016       Выпуск 118 (21.03.2016 - 27.03.2016)       Статьи

Web Scrapping с помощью python beautiful soup scrapy scraping lxml xpath parsing

Недавно заглянув на КиноПоиск, я обнаружила, что за долгие годы успела оставить более 1000 оценок и подумала, что было бы интересно поисследовать эти данные подробнее: менялись ли мои вкусы в кино с течением времени? есть ли годовая/недельная сезонность в активности? коррелируют ли мои оценки с рейтингом КиноПоиска, IMDb или кинокритиков? 
Но прежде чем анализировать и строить красивые графики, нужно получить данные. К сожалению, многие сервисы (и КиноПоиск не исключение) не имеют публичного API, так что, приходится засучить рукава и парсить html-страницы. Именно о том, как скачать и распарсить web-cайт, я и хочу рассказать в этой статье.
В первую очередь статья предназначена для тех, кто всегда хотел разобраться с Web Scrapping, но не доходили руки или не знал с чего начать. 

Off-topic: к слову, Новый Кинопоиск под капотом использует запросы, которые возвращают данные об оценках в виде JSON, так что, задача могла быть решена и другим путем.

     24.03.2016       Выпуск 118 (21.03.2016 - 27.03.2016)       Колонка автора

Пишем web-проекты: система "лайков" для Django на примере PythonDigest.ru

Python дайджест - это крупный русскоязычный агрегатор Python новостей с кучей ссылок. Больше 10 тысяч ссылок уже собрали. Но в таком море контента тяжело ориентироваться и постоянно в голове вопрос "Как показать пользователю только релевантную информацию?".

     23.03.2016       Выпуск 118 (21.03.2016 - 27.03.2016)       Статьи

Разработка сервиса по загрузке альбомов

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

И вот в преддверии дня рождения, появилось время и отличное настроение для написания сервиса.

     21.03.2016       Выпуск 118 (21.03.2016 - 27.03.2016)       Статьи

Отбираем валидные мобильные номера друзей VK на Python

В процессе изучения Python стало интересно попробовать его в связке с API VK. В ВК есть телефонная книга, она показывает телефоны ваших друзей в более-менее удобном формате. Так как далеко не всегда люди охотно оставляют там полые(валидные) номера своих телефонов, мне показалась интересной идея написать скрипт, который отбирал бы только валидные номера моб.телефонов и выдавал бы их отдельной таблицей. Наша телефонная книга будет генерировать csv-файл, который затем можно будет открыть, например, в excel.

     21.03.2016       Выпуск 118 (21.03.2016 - 27.03.2016)       Статьи

Как я делал фотобудку

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


Под катом будет рассказ о железе, raspberry pi и программировании всего этого под linuх и конечно же мой любимый python. Забегая вперед, скажу, что мне хотелось именно качественных фотографий, поэтому съемка ведется не на веб камеру, а на DSLR, поэтому статья должна получиться еще больше и интересней.

     20.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Статьи

Парадокс Симпсона и немного Pandas

В этой статье я хочу рассмотреть один из наиболее известных примеров парадокса Симпсона, попутно немного рассказав о MultiIndex в Pandas.
Обо всем по порядку.

     19.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Колонка автора
     18.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Статьи

Настройка LaTeX-шаблонов для Jupyter notebook

Есть отличный инструмент для обучения/отчётов/написания умных книг про код — Jupyter Notebook. Если отчёт или книга, например, пишутся на кириллице, а нужно быстро сделать из этого PDF с красивыми формулами и тире правильной длины, то сразу обнаруживается проблема: в стандартном шаблоне, который Jupyter использует для конвертации блокнотов в PDF через LaTeX, нет подключения нужных пакетов с нужными параметрами, поэтому LaTeX просто не компилируется и PDF не получить.

     17.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Статьи

Модули расширения Python на Rust

“Absolute statements are the root of all evil.
The key is balance. There are no answers, only questions.”
????


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

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

На обратную проблему в одной из его лекций о Haskell указал Саймон Джонс. У него был слайд, на котором была нарисована стрелка, закрашенная градиентом: в начале было написано “no types”, посередине — “Haskell”, в конце — “Coq”. При этом, когда он указал на Coq, он сказал такую фразу: “This stresses power over usability. Right?! You need a PhD here!”[1]. Несмотря на то, что это была шутка, мантара Python – одна из любимых программистами особенностей этого языка. И из моего опыта, это то, что позволяет выпускать готовый продукт несколько быстрее.

     17.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Статьи

Что есть в Visual Studio 2015 для разработчика на Python

С версией Visual Studio 2015 Community компания Microsoft впервые предложила разработчикам совершенно бесплатно пользоваться полнофункциональной версией своего мощного инструмента для разработки. Напомню, что функционал Visual Studio 2015 Community почти полностью предоставляет функционал версии Professional, но имеет некоторые лицензионные ограничения по использованию в коммерческой разработке.

Visual Studio 2015 Community так же, как и остальные версии инструмента, расширяема, благодаря Visual Studio Marketplace и всем официальным обновлениям инструмента. То есть огромное, постоянно увеличивающееся количество функционала доступно разработчикам совершенно бесплатно. Это касается и инструментов для разработки на языке Python.

Поддержка Python станет доступна, если отметить соответствующий пункт при установке среды. Это касается и CPython, PyPy, IronPython, поддержки IntelliSense, интерактивной отладки, интеграции и других возможностей Visual Studio для Python

     17.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Статьи

Линейные модели: простая регрессия

В прошлый раз мы подробно рассмотрели многообразие линейных моделей. Теперь перейдем от теории к практике и построим самую простую, но все же полезную модель, которую вы легко сможете адаптировать к своим задачам. Модель будет проиллюстрирована кодом на R и Python, причем сразу в трех ароматах: scikit-learn, statsmodels и Patsy.

     15.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Конференции, события, встречи разработчиков

Прошел Moscow Python Meetup, 18 марта

18 марта, в пятницу, прошел на Moscow Python Meetup 33 в офисе Mail.Ru Group. 

     14.03.2016       Выпуск 117 (14.03.2016 - 20.03.2016)       Статьи

Pandasql vs Pandas для решения задач анализа данных

В этой статье я бы хотела рассказать о применении python-библиотеки Pandasql. 

Многие люди, сталкивающиеся с задачами анализа данных, уже, скорее всего, знакомы с библиотекой Pandas. Pandas позволяет быстро и удобно работать с табличными данными: фильтровать, группировать, делать join над данными; строить сводные таблицы и даже рисовать графики (для простых визуализации достаточно функции plot(), а если хочется чего-то позаковыристее, то поможет библиотека matplotlib). На Хабре не раз рассказывали о применении этой библиотеки для работы с данными: раз, два, три.

Но по моему опыту далеко не все знают о библиотеке Pandasql, которая позволяет работать с Pandas DataFrames как с таблицами и обращаться к ним, используя язык SQL. В некоторых задачах проще выразить желаемое с помощью декларативного языка SQL, поэтому я считаю, что людям, работающим с данными, полезно знать о наличии такой функциональности. Если говорить о реальных задачах, то я использовала эту библиотеку для решения задачи join'a таблиц по нечетким условиям (необходимо было объединить записи о событиях из разных систем по примерно совпадающему времени, разрыв порядка 5 секунд).

Рассмотрим использование этой библиотеки на конкретных примерах.

     09.03.2016       Выпуск 116 (07.03.2016 - 13.03.2016)       Статьи

Как можно упростить себе жизнь с помощью Telegram-бота

Эта статья — краткий рассказ о том, как с помощью подручных средств (Firefox) и Python можно осуществить успешную интеграцию Telegram-бота и внешнего сервиса.

Материал будет интересен тем, кто наслышан о Telegram'ных ботах, но не знает, как к ним подступиться и какие задачи с их помощью можно решать. Предполагается знание Python.

     03.03.2016       Выпуск 115 (29.02.2016 - 06.03.2016)       Статьи

Pomp — метафреймворк для парсинга сайтов

С поддержкой asyncio и вдохновленный Scrapy.

Зачем еще один?
В первую очередь как инструмент для сбора данных, применяемый в моем хобби проекте, который не давил бы своей мощью, сложностью и наследием. И да, кто же будет сознательно начинать что-то новое на python2.x?

В итоге появилось идея сделать простой фреймворк для современной экосистемы python3.x, но такой же элегантный как Scrapy.

     29.02.2016       Выпуск 115 (29.02.2016 - 06.03.2016)       Колонка автора

Коротко о...: Список (list)

Вот и подоспело второе обещание - видео. Это первое видео, поэтому включите в себе максимального критика и расскажите о недостатках и достоинствах.

Краткое описание: "Коротко о..." - проект PyNSK направленный на запись цикла небольших видео (до 5 минут)для новичков. В этих видео будет рассказаны основные знания про конструкции языка, модули стандартной библиотеки и инструменты необходимые при разработке программ на Python

Было записано первое видео - о списках. Из видео новички смогут узнать основные знания о списках (list). Видео очень короткое и сжатое.

     28.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

Как я переизобрел словари в Python

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

     26.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Колонка автора

Запустили tests.pynsk.ru

Однажды возникло два желания:

  • поиграться с возможностями Telegram
  • попробовать написать не скучные тесты по Python

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

Tests.pynsk.ru - это платформа для тестирования на основе telegram бота.

     26.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

Web файловый менеджер Sprut.IO в OpenSource

В Бегете мы долго и успешно занимаемся виртуальным хостингом, используем много OpenSource-решений, и теперь настало время поделиться с сообществом нашей разработкой: файловым менеджером Sprut.IO, который мы разрабатывали для наших пользователей и который используется у нас в панели управления. Приглашаем всех желающих присоединиться к его разработке. О том, как он разрабатывался и почему нас не устроили существующие аналоги, какие костыли технологии мы использовали и кому он может пригодиться, расскажем в этой статье. 

Сайт проекта:https://sprut.io
Демо доступно по ссылке: https://demo.sprut.io:9443
Исходный код: https://github.com/LTD-Beget/sprutio