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

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

     19.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Руководство по созданию расширений для Jinja2 Jinja2

Jinja2 — Python-библиотека для рендеринга шаблонов, являющаяся де-факто стандартом при написании веб-приложений на Flask и довольно популярной альтернативой встроенной системе шаблонов Django. Хотя и будучи сильно привязана к языку, Jinja2 позиционирует себя как инструмент для дизайнеров и верстальщиков, упрощающий вёрстку и отделяющий её от разработки, и пытающийся по мере возможностей изолировать не-разработчиков от Python. Вёрстка, впрочем, не единственное возможное её применение; например, в своей работе я использую шаблоны Jinja2 для генерации SQL-запросов.

     18.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Сравнение и создание морфологических анализаторов в NLTK

Здравствуйте. Это статья о сравнении существующих и создании своих морфологических анализаторов в библиотеке NLTK.

NLTK — пакет библиотек и программ для символьной и статистической обработки естественного языка, написанных на языке программирования Python. Отлично подходит для людей, изучающих компьютерную лингвистику, машинное обучение, информационный поиск [1].
В данной статье я буду сопровождать примеры кодом на языке Python (версии 2.7).

     17.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Вышла Odoo 11 — открытая система для автоматизации бизнеса

В академ-городке Лувэн-ла-Нёв (Louvain-la-Neuve) недалеко от Брюсселя около недели назад прошла 3-х дневная конференция Odoo Experience 2017, которая собрала разработчиков и пользователей Odoo со всего мира.

Я там был, пиво пил, и про Odoo говорил. А этот пост пишу для тех, кто про Odoo ничего не слышал, или до сих пор не пробовал эту прекрасную платформу.

Odoo — это самая популярная в мире открытая платформа для бизнес-приложений, которая развивается с 2005 года (TinyERP -> OpenERP -> Odoo). 

     18.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Вакансии

Python разработчик в Ivideon (до 230к и выше руб)

Ivideon (http://ivideon.com/) - это популярный облачный сервис для домашнего и бизнес-видеонаблюдения.

Наша highload-платформа постоянно обрабатывает, хранит и стримит видео с десятков тысяч камер по всему миру. У нас собственные подсистемы кодирования видео, биллинг, распределённое хранилище архива и ещё десятки микросервисов для разных задач. Всё это работает на стеке Python/Tornado, C++/Asio, MongoDB, Redis, Hg (BitBucket).

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

Нужно хорошо разбираться в:
1. Программировании в целом (алгоритмы/структуры данных);
2. Проектировании и технологиях разработки (архитектурные паттерны/тестирование/документирование);
3. Сетевом программировании и распределённых системах;
4. Серверных Linux;
5. Грамотном выражении своих идей.

У нас в облаке софт на смеси C++ и Python, поэтому нужен приличный уровень владения хотя бы чем-то одним, в идеале - обоими, но это дело наживное. Ещё существенный момент - нужен не просто кодер, а человек, который сможет под задачу сам придумать архитектуру решения + реализовать.

Что придется разрабатывать:
Компоненты облака, занимающиеся обработкой видео: геобалансировку, стриминг, облачное кодирование, архив, видеоаналитику и т.д.

Формальные требования:

- Знание современного Python (PEP-8, 2.7 vs 3.x);
- Опыт разработки под Linux и высокий общий уровень владения этой системой (bash, популярные утилиты);
- Опыт работы с сетью (TCP, HTTP + REST);
- Знание классических алгоритмов и структур данных;
- Опыт работы с системами контроля версий (мы используем Mercurial).
- Опыт разработки с использованием одного из распространенных веб-фреймворков (Tornado, Flask, Django);
- Опыт работы с SQL- и NoSQL-базами (идеально - MongoDB);
- Плюсом будет владение C++ и опыт коммерческой разработки на нём;
- Опыт работы с project management-системами и багтрекерами.
- Знание паттернов и принципов проектирования;
- Плюсом будет опыт работы с видео-кодеками, передачей видео по сети или VoIP.

Кратко про нас и что предлагаем:

- Самому проекту уже более 10 лет, работаем по всему миру (тот же сайт и личный кабинет у нас уже доступен на 8 языках), есть представители в США и Европе.
- Команда облачного направление - 6 человек (хотим найти ещё парочку), it отдел - 45 человек, всего в компании нас более 170.
- По количеству пользователей сейчас приближаемся к 2.5 млн.
У нас большое облако на сервис-ориентированной архитектуре, решающее спектр задач от биллинга пользователей до элементов internet of things. 
- Ключевые подсистемы: публичный API, стриминговая платформа, облачный архив, видеоаналитика, биллинг, бэкофисные сервисы. Также команда облака поддерживает свои CI и test automation-платформу. Используем Python+Tornado, C++, Linux, MongoDB.
- Гибкий график. Работа в офисе в Москве на ст. м. Варшавская. От метро до офиса курсирует бесплатный автобус (2 минуты в пути) или 10 минут пешком;
- Удобная кухня в офисе с чаем/кофе и запасами печенек, тортиков, сладостей, фруктов и прочего;
- Настольный теннис для любителей активного отдыха и массажное кресло для всех остальных, часто играем в настольные игры и начали формировать команду для соревнований по пейнтболу;
- Молодой амбициозный коллектив, демократичная, дружеская атмосфера и очень адекватное руководство;
- Способствуем развитию и профессиональному росту сотрудников, помогаем с покупкой необходимой профессиональной литературы;
- Оформляем по ТК РФ с первого дня. Всё белое. Зарплатная вилка, в которой идеально было бы найти специалиста - до 230 000 рублей, но готовы обсуждать и выше.

Контакты:


Почта - m.kuzmin@ivideon.com
Telegram - https://telegram.me/maxim_kuzmin
Skype - kuzmin.maks

     17.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

История взлома всех игр в Telegram

Сейчас компьютерные игры везде. Присутствуют они и в Telegram. Расскажу о том, как были взломаны практически все игры этого мессенджера, обойдя самых первоклассных игроков, находящихся в топах скорбордов. Хочу поделится результатами исследований. О различных методиках взлома, читинга и путях обхода логики игр под катом.

     16.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Поиск решения для быстрого создания интерфейсов СУБД

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

В статье я хотел бы рассказать о своем пути поиска такой системы.

     16.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

ScadaPy возможности применения modbus протокола

 

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

     16.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Русскоязычный чат-бот Boltoon: создаем виртуального собеседника

Несколько лет назад было опубликовано интервью, в котором говорят об искусственном интеллекте и, в частности, о чат-ботах. Респондент подчеркивает, что чат-боты не общаются, а имитирует общение.

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

На мой взгляд, в этом что-то есть… 


Тем не менее, о чат-ботах много говорят на Хабре. Они могут быть самые разные. Популярностью пользуются боты на базе нейронных сетей прогнозирования, которые генерируют ответ пословно. Это очень интересно, но затратно с точки зрения реализации, особенно для русского языка из-за большого количества словоформ. Мной был выбран другой подход для реализации чат-бота Boltoon. 

     14.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Цветы, муха и хорошо отрепетированное случайное машинное обучение

В предыдущей серии я пытался сделать из мухи разумное существо. Коротко — не вышло. Муха упорно не хотела учиться. 

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

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

Обучение проходило кое-как, результата не было. Затем, оставив попытки обучения по уважительным причинам (как то — вечер субботы, ночь и утро воскресенья), я все же думал, что делать дальше. Какие-то возможные решения были намечены в конце первой статьи, с них и продолжил.

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Как научить свою нейросеть анализировать морфологию

Недавно мы рассказывали про генератор стихов. Одной из особенностей языковой модели, лежащей в его основе, было использование морфологической разметки для получения лучшей согласованности между словами. Однако же у использованной морфоразметки был один фатальный недостаток: она была получена с помощью “закрытой” модели, недоступной для общего использования. Если точнее, выборка, на которой мы обучались, была размечена моделью, созданной для Диалога-2017 и основанной на закрытых технологиях и словарях ABBYY.

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Minecraft. Создание копировального аппарата

Предлагаем вместе создать в игре Minecraft копировальный аппарат

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

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Jupyter Widgets для реализации UI машины Тьюринга

Хочу поделиться опытом в быстром создание интерфейса в Jupyter Notebook. Если у тебя есть какая-то задача, для которой нужен простой UI, и ты почему-то захотел сделать её в Юпитере, то добро пожаловать под кат.

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Ломаем модифицированный AES-256

Недавно в институте я столкнулся с любопытной криптографической задачей, которой хотел бы поделиться с Сообществом. Одним предложением задачу могу обозначить, как "Атака на LSX-шифр, не содержащий нелинейной компоненты, на основе открытых текстов". Так как русскоязычных примеров решения таких учебных «головоломок» встречается немного, а сама задача рекомендована для начинающих свой путь специалистов, я считаю, что такая статья может быть интересна юному криптоаналитику. Пожалуйте под кат.

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Обзор фреймворка Luigi для построения последовательностей выполнения задач

Luigi — фреймворк на языке Python для построения сложных последовательностей по выполнению зависимых задач. Довольно большая часть фреймворка направлена на преобразования данных из различных источников (MySql, Mongo, redis, hdfs) и с помощью различных инструментов (от запуска процесса до выполнения задач разных типов на кластере Hadoop). Разработан в компании Spotify и открыт в виде open source инструмента в 2012 году.

     10.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Простая Scada на Python и Arduino

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

     10.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Строим Data Pipeline на Python и Luigi

В эпоху data-intensive приложений рядовым разработчикам всё чаще приходится сталкиваться с задачами по обработке и анализу данных. Ещё десять лет назад данные большинства проектов могли уместиться на жестком диске одного компьютера в какой-нибудь реляционной базе данных типа MySQL. А задачи по извлечению и обработке хранящихся данных решались за счёт непростых (или простых) SQL запросов. С тех пор мир информационных технологий значительно поменялся. С приходом Internet of Things, мобильных телефонов и дешевого мобильного интернета, объем генерируемых данных вырос в десятки тысяч раз. Ежедневно в мире генерируются эксабайты данных. Анализировать такой поток информации вручную, а тем более извлекать полезные для бизнеса или науки данные, практически невозможно. Но технологии как и время не стоят на месте, появляются новые инструменты, наука двигает прогресс. Если вы хоть чуточку следите за новостями из мира высоких технологий, то фразы "биг дата", "машинное обучение", "глубокое обучение" вас не испугают. С приходом больших данных появились новые профессии и специализации такие как Data Scientist/Analyst (по-русски аналитик данных), Data Engineer. Задачи этих ребят тесно связаны с обработкой, анализом и хранением "нефти 21 века", т.е. информации. Но насколько эффективно они выполняются?

     10.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Учебные материалы

Книга «Python. unittest»

Мы собрали наш опыт использования unittest в Python в небольшую книжку и хотели бы поделиться ей с вами. В книге рассмотрены вопросы создания тестов, объединения их в группы, запуску и пропуску тестов. Данный материал распространяется бесплатно. Будем рады обратной связи и критике!

     09.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Как получать оповещения от Jupyter notebook в Telegram?

Довольно просто. Нам понадобится свой телеграм-бот, один пакет и одна строчка кода

     09.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Простая Scada на Python (продолжение)

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

Объекты визуально отображают состояние аналоговых измеряемых величин из регистров
READ_INPUT_REGISTERS или READ_HOLDING_REGISTERS. Используется библиотека Tkinter.
Всего реализовано 3 объекта: горизонтальный слайдер, вертикальный слайдер и стрелочный индикатор. Отдельно описывается построение динамического тренда.

     08.10.2017       Выпуск 198 (02.10.2017 - 08.10.2017)       Статьи

Что делать, если Instagram не дал доступ к API? Дополнение

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