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

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

     02.11.2016       Выпуск 150 (31.10.2016 - 06.11.2016)       Статьи

Как pdf преобразовать в текстовый txt-файл

Вы скажете, что самый простой способ — выделить весь текст в pdf, скопировать его в буфер обмена и вставить из буфера обмена в текстовый файл. И будете правы. Но это не наш случай. Файл pdf — результат сканирования многостраничного документа. Т.е. содержимое pdf — это изображения текста.
Предлагаемый вариант решения реализован под Windows-8, но с небольшими корректировками, думаю, вполне может быть использован для Linux и OS X.

     02.11.2016       Выпуск 150 (31.10.2016 - 06.11.2016)       Статьи

Как запускать Python через SAS?

Возможно вы уже сталкивались с ситуаций, когда у вас есть программа написанная на python (таких программ может быть множество и написаны они могут быть вашими коллегами) и вам надо встроить этот запуск в программный код SAS. 

     02.11.2016       Выпуск 150 (31.10.2016 - 06.11.2016)       Статьи

Kivy. От создания до production один шаг. Часть 1 Kivy

Буквально статью тому назад, большинством голосов, было решено начать серию уроков по созданию аналога нативного приложения, написанного для Android на Java, но с помощью фреймворка Kivy + Python. Будет рассмотрено: создание и компоновка контроллов и виджетов, углубленное исследование техники разметки пользовательского интерфейса в Kv-Language, динамическое управление элементами экранов, библиотека, предоставляющая доступ к Android Material Design, и многое другое...

     31.10.2016       Выпуск 150 (31.10.2016 - 06.11.2016)       Статьи

Парсинг JSON — это минное поле

JSON — это стандарт де-факто, когда заходит речь о (де)сериализации, обмене данными в сети и мобильной разработке. Но насколько хорошо вы знакомы с JSON? Все мы читаем спецификации и пишем тесты, испытываем популярные JSON-библиотеки для своих нужд. Я покажу вам, что JSON — это идеализированный формат, а не идеальный, каким его многие считают. Я не нашёл и двух библиотек, ведущих себя одинаково. Более того, я обнаружил, что крайние случаи и зловредная полезная нагрузка могут привести к багам, падениями и DoS, в основном потому, что JSON-библиотеки основаны на спецификациях, которые со временем развиваются, что оставляет многие вещи плохо или вообще не задокументированными.

     31.10.2016       Выпуск 150 (31.10.2016 - 06.11.2016)       Статьи

Как развернуть для своей команды архив slack сообщений c синхронизацией и поиском

Я сам сторонник идеи что если нравится продукт то нужно покупать его и своими деньгами поддержать программистов. 
Но иногда бывает что компания на этот софт денег тратить не может или не хочет. Особенно сложно платить от 100$ в месяц когда есть бесплатные аналоги или если чаты используются в некоммерческих целях.

     27.10.2016       Выпуск 149 (24.10.2016 - 30.10.2016)       Статьи

Стратегии расширения Django User Model Django

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

Как правило возникает потребность хранить дополнительные данные о пользователях, например, краткую биографию (about), дату рождения, местоположение и другие подобные данные.

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

     27.10.2016       Выпуск 149 (24.10.2016 - 30.10.2016)       Статьи

Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть первая

Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков? 
Давайте попробуем разобраться вместе. В рамках нескольких статей я расскажу о том, как я за год сделал свой собственный сервис email-рассылок, какие уроки для себя извлек и что планирую со всем этим делать дальше.

     26.10.2016       Выпуск 149 (24.10.2016 - 30.10.2016)       Статьи

Automatic Relevance Determination или машинное обучение когда данных очень мало

 

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

     25.10.2016       Выпуск 149 (24.10.2016 - 30.10.2016)       Статьи

Книга «Изучаем Python. Программирование игр, визуализация данных, веб-приложения»

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

     25.10.2016       Выпуск 149 (24.10.2016 - 30.10.2016)       Статьи

Deep Learning: Сравнение фреймворков для символьного глубокого обучения

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

     20.10.2016       Выпуск 148 (17.10.2016 - 23.10.2016)       Статьи

Kivy — еще проще, еще нативнее Kivy

Продолжаем серию статей о разработке мобильных приложений с фреймворком Kivy. Сегодня речь пойдет о замечательной библиотеке KivyMD — библиотеке для построения нативного интерфейса в стиле Android Material Design, написанной с использованием и для фреймворка Kivy. Откровенно говоря, лично я бесконечно рад, что отпала необходимость лепить и созерцать кривые, темные и страшные кастомные виджеты в Kivy приложениях. Используя в своих проектах библиотеку KivyMD плюс немного фантазии, вряд ли кто-то сможет визуально отличить, написана ли ваша программа на Java или с использованием фрейворка Kivy и Python.

     18.10.2016       Выпуск 148 (17.10.2016 - 23.10.2016)       Статьи

Как я читал показания датчиков через SNMP (Python+AgentX+systemd+Raspberry Pi) и соорудил ещё одну мониторилку

С момента публикации статьи про «В меру Универсальное Устройство Управления» прошло немало времени (а если быть точным, больше года). Немало, но недостаточно много, чтобы я таки написал нормальную программную начинку для этого устройства. Ведь не для красоты ж оно есть — оно должно собирать данные с датчиков и делать так, чтобы эти данные оказывались в системе мониторинга (в моём случае Zabbix)

     18.10.2016       Выпуск 148 (17.10.2016 - 23.10.2016)       Статьи

«Привет, Siri. Включи обогреватели» — Интеграция умного дома на базе NooLite с Apple HomeKit

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

С выходом iOS 10, Apple представила пользователям приложение Дом — свою реализацию интерфейса управления умным домом через HomeKit. Меня весьма заинтересовала данная тема и, потратив несколько вечеров на изучение доступного материала, я решил реализовать интеграцию данного продукта с моей системой. В статье я подробно изложу процесс ее установки и настройки, а также поделюсь видео с результатами того, что получилось в итоге.

     18.10.2016       Выпуск 148 (17.10.2016 - 23.10.2016)       Статьи

Разработчик недели: Katie McLaughlin

 

На этой неделе мы приветствуем Katie McLaughlin(@glasnt)! Она является ключевым разработчиком проекта BeeWare. Вам следует воспользоваться моментом и заглянуть на её профиль на гитхабе, что бы узнать в каких интересных проектах она принимала участие. Кэти также имеет небольшой, забавный вебсайт и была докладчиком на PyCon 2016. Давайте познакомимся с ней поближе!

     16.10.2016       Выпуск 147 (10.10.2016 - 16.10.2016)       Статьи

Скрапинг бесконечно прокручивающейся страницы

В эру одностраничных приложений и тонн AJAX-запросов на одной странице множество веб-сайтов заменили кнопку навигации "вперёд/назад" на причудливый механизм бесконечной прокрутки страницы. Веб-сайты использующие этот механизм загружают новую сущность каждый раз, когда пользователь достигает конца страницы при вертикальной прокрутке(вспомните Twitter, Facebook, Google Images). Даже несмотря на то, что UX-эксперты утверждают что механизм бесконечной прокрутки предоставляет чрезмерное количество данных для пользователей, мы видим увеличивающееся количество веб-страниц прибегающих к предоставлению бесконечного списка результатов.

     14.10.2016       Выпуск 147 (10.10.2016 - 16.10.2016)       Статьи

Python-шпаргалка. Часть 1 — Язык и Типы объектов

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

     14.10.2016       Выпуск 147 (10.10.2016 - 16.10.2016)       Статьи

«Сферический трейдер в вакууме»: инструкция по применению

Если проанализировать  форумов о рынках (в том числе Форекс), можно выделить два достаточно устойчивых мнения, назовём их пессимистическим и оптимистическим: 

Пессимисты утверждают: рынок случаен «потому что я построил график случайного процесса и мой друг (профессиональный трейдер) не смог отличить его от графика EURUSD», а значит иметь стабильный доход на рынке( на Форекс) невозможно по определению!

Оптимисты им возражают: если бы рынок был случаен, котировки не гуляли бы в окрестности 1, а ушли в бесконечность. Значит рынок неслучаен и на нём можно зарабатывать. Я видел реально стабильно зарабатывающую стратегию с большим профит-фактором (больше стольки-то)!

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

     14.10.2016       Выпуск 147 (10.10.2016 - 16.10.2016)       Статьи

Почему важно проверять значения возвращаемые функцией?

Мне очень захотелось поделиться опытом и я хотел бы поговорить о том, почему важно проверять значения возвращаемые функцией. В качестве примера возьмём python и ctypes. Некоторое время назад я столкнулся с достаточно интересным багом суть которого сводилась к тому, что при запуске скрипта на Linux-системе были неправильные данные, но не было трэйсбэка, а на Windows-системе сразу же получали трэйсбэк. Исследование кода показало, что виноваты были некорректные данные даты приходящие в функцию strptime(). Теперь, давайте, посмотрим на пример работы с функцией strptime() в питоне.

     11.10.2016       Выпуск 147 (10.10.2016 - 16.10.2016)       Статьи

NooLite + Raspberry Pi + Telegram = умный дом

2 года назад передо мной встала задача реализовать удаленное управление обогревательными приборами в своем загородном доме. В данной статье я хочу поделиться моим вариантом автоматизации и удаленного управления, к которому я в итоге пришел. Постараюсь охватить весь процесс и подробности создания этого хобби-проекта и поделиться всеми сложностями, с которыми пришлось столкнуться. В процессе реализации, как видно из названия статьи, я использовал Noolite (о нем расскажу в статье), Telegram и совсем немного Python.