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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     17.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Искусство эксплойта минных полей: Разбираем CTF-таск про игру в Сапёра из «Мистера Робота»

Recently попался мне случайно на глаза один эпизод из недавно модного сериала «Мистер Робот». Не будучи сильно знакомым с проектом, я всё же знал о связанной с ним массивной пиар-кампании (которая вроде как даже проводила нечто вроде ARG-мероприятий), поэтому когда я услышал условие занимательного CTF-таска (из жанра bin/exploitation), представленного в сюжете одной из серий, я подумал, что скорее всего, этот таск существовал в действительности. Обратившись ко всемирной паутине, я подтвердил своё предположение, и, так как задача не очень сложная (не успеет наскучить в рамках одной хабр-статьи), но крайне оригинальная и интересная, сегодня займемся её разбором.
Cut, cut, cut!

     17.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

FFMPEG. Загружаем часть видео с YouTube

Иногда мы хотим поделиться с друзьями частью какого то видео на YouTube — время концентрации внимания в современной реальности снижено до предела, и если скидывать ссылку на ролик(даже с таймкодом начала) с комментарием «смотреть с 21:51 по 24:55» — велика вероятность, что видео просмотрено не будет.

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

Как загружать часть видео YouTube при помощи ffmpeg — под катом

     17.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Видео

Ufapy #4

Событие: http://ufapy.ru
Дата: 18 января 2018

     17.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Видео

PyCon Belarus 2018

Событие: https://events.dev.by/pycon-belarus-2018
Дата: 24 февраля 2018

     16.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Distant Joining: выбираем репрезентативный набор генов

Современные методы биоинформатики позволяют довольно точно восстанавливать эволюционные истории на основании последовательностей генов или белков ныне живущих организмов. А благодаря технологиям секвенирования нового поколения последовательности производятся быстрее, чем их успевают анализировать. Вот только эволюционная реконструкция – дело вычислительно дорогое и неплохо бы уметь получать репрезентативные выборки пригодного для анализа размера. Как это сделать и что вообще такое в данном случае “репрезентативная” – под катом.

     16.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Мега-Учебник Flask, Часть XV: Улучшение структуры приложения

Это пятнадцатая часть серии Мега-учебников Flask, в которой я собираюсь реструктурировать приложение, используя стиль, подходящий для более крупных приложений.

     15.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Cжатие и улучшение рукописных конспектов

Я написал программу для очистки отсканированных конспектов с одновременным уменьшением размера файла.

     15.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Amazon Redshift и Python

Amazon Redshift это колоночная база данных от Amazon, способная хранить и обрабатывать петабайты данных. Она поддерживает диалект SQL, что значительно облегчает работу с данными, а также подключение сторонних Business Intelligence систем для последующего анализа. В основе Redshift лежит реляционная база данных PostgreSQL 8 версии.

     14.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Наташа — библиотека для извлечения структурированной информации из текстов на русском языке

Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами

     13.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Эффективное использование памяти при параллельных операциях ввода-вывода в Python. Перевод

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

До версии Python 3.5 было два способа реализации параллельной обработки операций ввода-вывода. Нативный метод — использование многопоточности, другой вариант — библиотеки типа Gevent, которые распараллеливают задачи в виде микро-потоков. Python 3.5 предоставил встроенную поддержку параллелизма с помощью asyncio. Мне было любопытно посмотреть, как каждый из них будет работать с точки зрения памяти. Результаты ниже.

     13.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

А теперь по-русски. Выпуск 5. Факап

О том, как иностранные бранные слова становятся эвфемизмами.

     13.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Как быстро написать и выкатить в продакшн алгоритм машинного обучения

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

     13.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Решаем задачи без самобалансирующихся деревьев в Python

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

     12.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Первые шаги в Машинном обучении

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

     12.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Data analysis. NumPy. Часть 1

Эта статья первая в серии про базовый набор инструментов для первичного анализа данных с помощью Python.
В первую очередь рассмотрим базовую библиотеку для работы с многомерными массивами NumPy.
Pandas позволяет эффективно работать с неоднородными данными. Удобно загружать, обрабатывать и анализировать табличные данные  с помощью SQL-подобных запросов.
С помощью Matplotlib, Seaborn, Plotly реализуется отличная визуализация.

     12.03.2018       Выпуск 221 (12.03.2018 - 18.03.2018)       Статьи

Тестирование проектов C/C++ с помощью Python

Хорошо известна возможность интеграции Python и C / C++. Как правило, этот прием используется для ускорения программ на Python или с целью подстройки программ на C / C++. Я хотел бы осветить возможность использование python для тестирования кода на C/C++ в IDE без поддержки системы организации тестов в IDE. С моей точки зрения это целесообразно применять в сфере разработки программного обеспечения для микроконтроллеров.

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

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

     11.03.2018       Выпуск 220 (05.03.2018 - 11.03.2018)       Статьи

Мульти-классификация Google-запросов с использованием нейросети на Python

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

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

За основу был взят датасет размером ~32000 поисковых запросов, размеченных по 14ти классам: Автоистория, Автострахование, ВУ (водительское удостоверение), Жалобы, Запись в ГИБДД, Запись в МАДИ, Запись на медкомиссию, Нарушения и штрафы, Обращения в МАДИ и АМПП, ПТС, Регистрация, Статус регистрации, Такси, Эвакуация.

     10.03.2018       Выпуск 220 (05.03.2018 - 11.03.2018)       Интересные проекты, инструменты, библиотеки

agentsmith - Агент Смит на чистом python

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

     10.03.2018       Выпуск 220 (05.03.2018 - 11.03.2018)       Статьи

Подвесные топливные баки для самолётов

Часто, для обеспечения большой дальности полета, к самолету снаружи подвешивают дополнительные баки. Подвесные баки бывают сбрасываемые и не сбрасываемые.

Сбрасываемые подвесные баки после расходования из них топлива сбрасываются так же, как и авиационные бомбы с замков бомбодержателей, на которые они подвешиваются.

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

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

     10.03.2018       Выпуск 220 (05.03.2018 - 11.03.2018)       Статьи

Разбор предложений по шаблонам русского языка

Существует несколько парсеров, подходящих для русского языка. Некоторые из них могут даже выполнять синтаксический анализ, как SyntaxNet, MaltParser и AOT:

… или выявлять факты, как Tomita.

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

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