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

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

     26.12.2017       Выпуск 210 (25.12.2017 - 31.12.2017)       Статьи

Пробуем q-learning на вкус, повесть в трех частях

Эта статья — небольшая заметка о реализации алгоритма q-learning для управления агентом в стохастическом окружении. Первая часть статьи будет посвящена созданию окружения для проведения симуляций — мини-игр на поле nxn, в которых агент должен как можно дольше продержаться на удалении от противников, движущихся случайным образом. Задача противников, соответственно, его настигнуть. Очки начисляются за каждый ход, проведенный агентом в симуляции. Вторая часть статьи затронет основы q-learning алгоритма и его имплементацию. В третьей части попробуем поменять параметры, которые определяют восприятие окружения агентом. Проанализируем влияние этих параметров на результативность его игры. Акцент я специально сместил в сторону использования минимального количества сторонних модулей. Цель — прикоснуться к самой сути алгоритма, так сказать потрогать руками. Для реализации будем использовать только «pure» python 3.

     26.12.2017       Выпуск 210 (25.12.2017 - 31.12.2017)       Статьи

Где хранить бизнес логику в Django Django

Толстые модели (fat models), тонкие представления (thin views), тупые шаблоны (stupid templates) - один из распространенных подходов к структурированию Django приложений. Цель подхода - вынести бизнес логику из представлений и шаблонов, и поместить ее в модели. Очевидно, что представления и шаблоны не должны содержать бизнес логику, так как они имеют совсем другие обязанности. Но выносить логику в модели не лучший вариант. Это приводит к тому, что модели становятся слишком большими и имеют слишком много обязанностей. Получаются так называемые объекты боги (god objects). Из-за их сложности код сложно понять, тестировать и поддерживать.

     26.12.2017       Выпуск 210 (25.12.2017 - 31.12.2017)       Статьи

Асинхронная загрузка больших датасетов в Tensorflow

В Сети много тюториалов и видеолекций, и других материалов обсуждающих
основные принципы, архитектуру, стратегии обучения и т.д. Традиционно, обучение нейронных сетей производится путем предявления нейронной сети пакетов
изображений из обучающей выборки и коррекции коэффициентов этой сети
методом обратного распространения ошибки. Одним из
наиболее популярных инструментов для работы с нейронными сетями является
библиотека Tensorflow от Google.

     25.12.2017       Выпуск 210 (25.12.2017 - 31.12.2017)       Статьи

Модифицируем Python за 6 минут

На этой неделе я сделал мой первый pull-request в основной проект CPython. Его отклонили :-( Но чтобы не тратить полностью свое время, я поделюсь своими выводами о том, как работает CPython и покажу вам как легко изменить синтаксис Python.

Я собираюсь показать вам как добавить новую фичу в синтаксис Python. Эта фича — оператор инкремента/декремента, стандартный оператор для большинства языков. Чтобы убедиться — откройте REPL и попробуйте:

     25.12.2017       Выпуск 210 (25.12.2017 - 31.12.2017)       Статьи

А теперь по-русски. Выпуск 4. Логгинг

Как же называется процесс записи в журнал событий?

     22.12.2017       Выпуск 209 (18.12.2017 - 24.12.2017)       Статьи

Программировать хочу, пусть меня научат! Образовательные проекты Avito

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

     20.12.2017       Выпуск 209 (18.12.2017 - 24.12.2017)       Статьи

Генерируем заголовки фейковых новостей в стиле Ленты.ру

Сравниваем 2 подхода к генерации текста c помощью нейронных сетей: Char-RNN vs Word Embeddings + забавные примеры в конце.

Когда становится совсем нечего читать, открывать книгу не хочется, все статьи на Хабре прочитаны, все нотификации на телефоне обработаны, и даже просмотрен спам в ящиках, я открываю Ленту.ру. У моей жены — профессионального журналиста — в такие моменты начинается аллергия, и понятно, почему. После того, как в 2014 году из Ленты ушла старая команда, уровень желтизны издания пошел вверх, а качество текста и редактуры — вниз. Со временем, периодически по инерции продолжая читать Ленту, я стал замечать, что модели заголовков новостей повторяются: «Обнаружено [вставить псевдо-сенсацию]», «Путин [что-то сделал]», «Безработный москвич [описание его приключений]» и так далее. Это была первая вводная.

     20.12.2017       Выпуск 209 (18.12.2017 - 24.12.2017)       Статьи

Материалы открытого курса OpenDataScience и Mail.Ru Group по машинному обучению и новый запуск

Недавно OpenDataScience и Mail.Ru Group провели открытый курс машинного обучения. В прошлом анонсе много сказано о курсе. В этой статье мы поделимся материалами курса, а также объявим новый запуск.

     20.12.2017       Выпуск 209 (18.12.2017 - 24.12.2017)       Статьи

Smart IDReader SDK — как написать Telegram-бота для распознавания документов на Python за 5 минут

Мы, Smart Engines, продолжаем цикл статей про то, как встроить наши технологии распознавания (паспортов, банковских карт и других) в ваши приложения. Ранее мы уже писали про встраивание на iOS и Android, а сегодня мы расскажем про то, как работать с Python-интерфейсом библиотеки распознавания Smart IDReader и напишем простого Telegram-бота.

 

Кстати, список поддерживаемых нами языков программирования расширился и теперь включает C++, C, C#, Objective-C, Swift, Java, Python, а также такие эзотерические языки, как Visual Basic и, разумеется, PHP. Как и раньше, мы поддерживаем все популярные и многие непопулярные операционные системы и архитектуры, а наши бесплатные приложения доступны для скачивания из App Store и Google Play.

По традиции, демо-версия Smart IDReader SDK для Python вместе с исходным кодом реализации Telegram-бота выложены на Github и доступны по ссылке.

     18.12.2017       Выпуск 209 (18.12.2017 - 24.12.2017)       Статьи

Docker: остановить контейнеры которые работают больше недели Docker

Удаление контейнеров которые работают больше недели с помощью Python

     16.12.2017       Выпуск 208 (11.12.2017 - 17.12.2017)       Статьи

Preview документов в программе на Python

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

     14.12.2017       Выпуск 208 (11.12.2017 - 17.12.2017)       Статьи

История победы на международном соревновании по распознаванию документов команды компании SmartEngines

Сегодня мы расскажем о том, как нашей команде из Smart Engines удалось победить на международном конкурсе по бинаризации документов DIBCO17, проводимом в рамках конференции ICDAR. Данный конкурс проводится регулярно и уже имеет солидную историю (он проводится 9 лет), за время которой было предложено множество невероятно интересных и безумных (в хорошем смысле) алгоритмов бинаризации. Несмотря на то, что в своих проектах по распознаванию документов при помощи мобильных устройств мы по возможности не используем подобные алгоритмы, команде показалось, что нам есть что предложить мировому сообществу, и в этом году мы впервые приняли решение участвовать в конкурсе.

     13.12.2017       Выпуск 208 (11.12.2017 - 17.12.2017)       Статьи

Python Meetup 14.11.2017: Python в Порту, Aiohttp и снова тесты

После долгого перерыва, блудная питоновка снова в деле! 14 ноября состаялась очередная встреча минского сообщества Python-разработичков Python Meetup. В этот раз доклады представили:

— Как я нечаянно стал главным по питону в Порту / Роман Иманкулов, Doist
— The test which will save your day / Иван Стяжкин, DataRobot 
— Django и Aiohttp / Юлия Темушева, Wargaming
— Блицдоклад: распространенные ошибки программирования на Python / Юрий Красовский

     13.12.2017       Выпуск 208 (11.12.2017 - 17.12.2017)       Статьи

Запускаем django-приложение в Docker на Vagrant под Windows

Уже несколько лет Docker был на слуху у меня, но никак не доводилось с ним поработать. А тут как раз менеджменту захотелось поменять свой стек. Начали говорить такие слова как Docker, контейнеры и облака. Чем не повод изучить что-то новое? Я работаю DevOps инженером на радио. Мой список технологий очень прост: Octopus Deploy + TeamCity + и тележка самописных приложений. Работает безотказно.

     13.12.2017       Выпуск 208 (11.12.2017 - 17.12.2017)       Статьи

Корреляция IQ с нашей жизнью(Feature ranking)

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

     11.12.2017       Выпуск 208 (11.12.2017 - 17.12.2017)       Статьи

Airflow Workshop: сложные DAG’и без костылей

Airflow — это opensource-библиотека для разработки ETL/ELT-процессов. Отдельные задачи объединяются в периодически выполняемые цепочки задач — даги (DAG — Directed Acyclic Graph).

Как правило, 80 % проекта на Airflow — это стандартные DAG’и. В моей статье речь пойдёт об оставшихся 20 %, которые требуют сложных ветвлений, коммуникации между задачами — словом, о DAG’ах, нуждающихся в нетривиальных алгоритмах.

     10.12.2017       Выпуск 207 (04.12.2017 - 10.12.2017)       Статьи

Решение задачи оптимизации многоступенчатых ракет

Методы нелинейной оптимизации широко применяются при проектировании машин и механизмов. Указанные методы применяются и в ракетостроении, например, для оптимизации многоступенчатых ракет [1].

Многоступенчатая ракета — это аппарат, в котором части конструкции отделяются во время полета, придавая оставшейся части ракеты дополнительную скорость. Трёхступенчатая ракета схематически показана на рисунке.

     08.12.2017       Выпуск 207 (04.12.2017 - 10.12.2017)       Статьи

Учим машину разбираться в генах человека

Всегда приятно осознавать, что применение технологий сводится не только к финансовой выгоде, бывают ещё и идеи, делающие мир лучше. Об одном из проектов с такой идеей мы и расскажем в этот морозный пятничный день. Вы узнаете о решении, которое позволило увеличить точность экспресс-анализа крови, с помощью применения алгоритмов машинного обучения для выявления связей между микро-РНК и генами. Также, стоит отметить, что методы, описанные ниже можно использовать не только в биологии.

     05.12.2017       Выпуск 207 (04.12.2017 - 10.12.2017)       Статьи

Tcl/Tk. Тематические виджеты TTK и дизайнер TKproE-2.20

Просматривая свои заметки по проектированию GUI с использованием виджетов Tk, я почувствовал какую-то неудовлетворенность. А дело оказалось в том, что я фактически упустил работу с тематическими виджетами ttk (themed tk). Они в скользь были задействованы при рассмотрении пакета Tkinter для Python и использовании дизайнера Page . Там речь шла о виджете TNotebook (блокнот, записная книжка) из пакета ttk. 

     05.12.2017       Выпуск 207 (04.12.2017 - 10.12.2017)       Статьи

Как я написал приложение, которое за 15 минут делало тоже самое, что и регулярное выражение за 5 дней

Не так давно столкнулся с проблемой поиска набора слов в большом тексте. Разумеется главной проблемой стала производительность. Поиск готовых решений порождал больше вопросов, чем давал ответов. Часто я натыкался на примеры использования каких-то сторонних коробок или онлайн-сервисов. А мне в первую очередь нужно было простое и легкое решение, которое в дальнейшем дало бы мысли для реализации собственной утилиты.

Несколько недель назад вышла замечательная англоязычная статься об open-source python-библиотеки FlashText. Эта библиотека предоставляла быстрое работающее решение задачи поиска и замены ключевых слов в тексте.

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