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

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     22.05.2019       Выпуск 283 (20.05.2019 - 26.05.2019)       Статьи

Статическое тестирование или спасти рядового Райана

Релиз часто подкрадывается незаметно. И любая ошибка, внезапно обнаруженная перед ним, грозит нам сдвигом сроков, хотфиксами, работой до утра и потраченными нервами. Когда подобный аврал стал происходить систематически, мы поняли, что так больше жить нельзя. Было решено разработать систему всесторонней валидации, чтобы спасти рядового Райана разработчика Артёма, который перед релизом уходил домой в 9 вечера, или в 10, или в 11… ну вы поняли. Идея была в том, чтобы разработчик узнавал об ошибке, пока изменения еще не попали в репозиторий, а он сам не потерял контекста задачи.

     21.05.2019       Выпуск 283 (20.05.2019 - 26.05.2019)       Статьи

F-строки Python 3: улучшенный синтаксис форматирования строк

Начиная с Python 3.6, f-строки – отличный новый способ форматирования строк. Это способ не только более читабелен, более краток и

     21.05.2019       Выпуск 283 (20.05.2019 - 26.05.2019)       Статьи

Как я данные с BLE-градусника от Xiaomi забирал

Предыстория: в качестве одного из хобби у меня случился «Умный дом». Хочется красивых устройств, но при этом ещё хочется свободы и приватности. Поэтому занимаюсь скрещиванием ужика Xiaomi с ёжиком Home Assistant.

Для поддержания комфортных условий нам нужно знать, а что вообще у нас дома происходит. Короче говоря, нужны сенсоры. Их у Xiaomi есть много разных, но больше всего мне понравился квадратный градусник на электронных чернилах. Вот только он совсем не умный, в том смысле, что не предоставляет вообще никаких интерфейсов, кроме графического – ни тебе WiFi, ни BLE, ни ZigBee. Зато батарейки CR2032 хватает на несколько лет. Есть ещё версия с блютусом, но она чуть менее изящная – эдакий толстый блинчик.

     21.05.2019       Выпуск 283 (20.05.2019 - 26.05.2019)       Статьи

Знакомство с Python для камрадов переросших «язык A vs. язык B» и другие предрассудки

Для всех хабравчан, у которых возникло ощущение дежавю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ быстрее Python", "Rust ещё быстрее C++", "Python не нужен" и т.д. Удивительно, что не вспомнили Ruby!

 

Как сказал Бьярн Страуструп,

«Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует».

     21.05.2019       Выпуск 283 (20.05.2019 - 26.05.2019)       Статьи

Возможности Python 3, достойные того, чтобы ими пользовались

Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как код со скобками, написанный на Python 2. По его словам, он и сам грешит чем-то подобным. Здесь он приводит примеры некоторых замечательных возможностей, доступных лишь тем, кто пользуется Python 3. Он надеется, что эти возможности облегчат жизнь тем, кто о них узнает.

     21.05.2019       Выпуск 283 (20.05.2019 - 26.05.2019)       Статьи

Криптография простым языком: разбираем симметричное и асимметричное шифрование на примере сюжета Звездных войн

Не так давно решил разобраться с алгоритмами шифрования и принципами работы электронной подписи. Тема, я считаю, интересная и актуальная. В процессе изучения попробовал несколько библиотек, однако самой удобной с моей точки зрения является библиотека PyCrypto. У неё прекрасная документация, сопровождаемая примерами.

     19.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

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


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

     19.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Пишем свой веб-сервер на Python: протокол HTTP

Это третья статья из серии про разработку простого веб-сервера на Python. В ней рассматривается, как написать с нуля свой HTTP-сервер, основываясь на работе с TCP-сокетами.

     18.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи
     17.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Классификация покрова земли при помощи eo-learn. Часть 2

Вторая часть серии статей про классификацию покрова земли, используя библиотеку eo-learn. Напоминаем, что в первой статье было продемонстрировано следующее:

 

  • Разделение AOI (area of interest, зоны интереса) на фрагменты под названием EOPatch
  • Получение изображений и облачных масок со спутников Sentinel-2
  • Расчёт дополнительной информации, такой как NDWI, NDVI
  • Создание референсной маски и добавление её к исходным данным

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

     17.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Классификация покрова земли при помощи eo-learn. Часть 1

Примерно полгода назад был сделан первый коммит в репозиторий eo-learn на GitHub. Сегодня, eo-learn превратился в замечательную библиотеку с открытым исходным кодом, готовую для использования кем угодно, кто заинтересован в данных EO (Earth Observation — пр. пер.). Все в команде Sinergise ожидали момента перехода от этапа построения необходимых инструментов, к этапу их использования для машинного обучения. Пришло время представить вам серию статей, касающихся классификации покрова земли используя eo-learn

     17.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Реверс-инжиниринг клиента Dropbox

Dropbox очаровал меня сразу с момента своего появления. Концепция по-прежнему обманчиво проста. Вот папка. Кладёшь туда файлы. Он синхронизируется. Переходишь к другому устройству. Он опять синхронизируется. Папка и файлы теперь появились и там!

Объём скрытой фоновой работы на самом деле поражает. Во-первых, никуда не исчезают все проблемы, с которыми приходится иметь дело при создании и обслуживании кросс-платформенного приложения для основных десктопных операционных систем (OS X, Linux, Windows). Добавьте к этому поддержку различных веб-браузеров, различных мобильных операционных систем. И мы говорим только о клиентской части. Меня интересует также бэкенд Dropbox, который позволил достичь такой масштабируемости и низкой задержки с безумно тяжёлой рабочей нагрузкой, которую создают полмиллиарда пользователей.

     17.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Три способа хранения и доступа к множеству изображений в Python

Почему может возникнуть необходимость в изучение различных способов хранения и доступа к изображениям в Python? Так например если вам будет

     16.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

GOSTIM: P2P F2F E2EE IM за один вечер с ГОСТ-криптографией

Будучи разработчиком PyGOST библиотеки (ГОСТовые криптографические примитивы на чистом Python), я нередко получаю вопросы о том, как на коленке реализовать простейший безопасный обмен сообщениями. Многие считают прикладную криптографию достаточно простой штукой, и .encrypt() вызова у блочного шифра будет достаточно для безопасной отсылки по каналу связи. Другие же считают, что прикладная криптография — удел немногих, и приемлемо, что богатые компании типа Telegram с олимпиадниками-математиками не могут реализовать безопасный протокол.

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

     16.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Бот для VK на Python с MySQL за час ч.1

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

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

     16.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Python — помощник в поиске недорогих авиабилетов для тех, кто любит путешествовать

Автор статьи, перевод которой мы публикуем сегодня, говорит, что её цель — рассказать о разработке веб-скрапера на Python с использованием Selenium, который выполняет поиск цен на авиабилеты. При поиске билетов используются гибкие даты (+- 3 дня относительно указанных дат). Скрапер сохраняет результаты поиска в Excel-файле и отправляет тому, кто его запустил, электронное письмо с общими сведениями о том, что ему удалось найти. Задача этого проекта — помощь путешественникам в поиске наиболее выгодных предложений.

     15.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Глубокая нейронная сеть MuseNet пишет музыку

Мы создали и представляем вам MuseNet — глубокую нейронную сеть, которая может создавать четырехминутные музыкальные композиции с помощью десяти разных инструментов. MuseNet экспериментирует, сочетая разные музыкальные стили: от кантри до шедевров Моцарта и бессмертных хитов The Beatles.

В основу сети легко не наше восприятие и понимание музыки, а навык находить образцы гармонии, ритма и стиля в сотнях тысяч MIDI-файлов, а затем создавать собственные произведения. Нейросеть MuseNet использует ту же технологию, что и GPT-2 — масштабная модель обучена предсказывать наилучшие последовательности как в тексте, так и в аудио. Знание множества стилей позволяет сети создавать совершенно уникальные комбинации музыки разных поколений.

     15.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

Еще более секретные Telegramмы

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

     14.05.2019       Выпуск 282 (13.05.2019 - 19.05.2019)       Статьи

А не замахнуться ли нам на оптическую связь? Лазеры, космос, CubeSat

Материал, описанный ниже, является результатом совместной работы с преподавателями ТУ Ильменау в рамках местного курсового проекта (Advanced Research Project). Опыт интересный, но и не лишенный определенных сложностей. Делали мы этот проект (и ещё один) вместе с моей тогда ещё невестой — да, так вот нам повезло и учиться вместе, и поехать на стажировку в Германию. По правде сказать, эту часть работы делала в большей степени именно она, но популяризировать эту тему хочется мне.