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

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


Новый материал в ленте
  tornado - 6.4.2

Масштабируемый, не блокирующий web-сервер. Скачать можно по ссылке: https://pypi.python.org/pypi/tornado/


Python Дайджест. Выпуск 199

(09.10.2017 - 15.10.2017)

поделиться выпуском 
Дайджест python,

Статьи

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

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

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

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

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

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

  Реализация фасетного поиска с помощью Django и PostgreSQL

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

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

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

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

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

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

  The decorators they won't tell you about

Подробная статья о мощи декораторов в Python

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

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

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

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

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

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

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

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

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

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

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

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

  Простой или волшебный UPSERT в PostgreSQL с Django Django

О том, как Django поддерживает UPSERT

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

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

  Go Python, Go: Stream Processing for Python

Статья о том, как добавить логику stream'ов в Python

Учебные материалы

  Книга «Python. unittest»

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