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

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

     29.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Как сделать триггер DAG'а в Airflow, используя Experimental API

Наши участники строят два типа архитектуры: lambda и kappa. И в lamdba-архитектуре в рамках батч-обработки используется Airflow для перекладывания логов из HDFS в ClickHouse.

 

Все в общем-то хорошо. Пусть строят свои пайплайны. Однако, есть "но": все наши программы технологичны с точки зрения самого процесса обучения. Для проверки лаб мы используем автоматические чекеры: участнику нужно зайти в личный кабинет, нажать кнопку “Проверить”, и через какое-то время он видит какую-то расширенную обратную связь на то, что сделал. И именно в этот момент мы начинаем подходить к нашей проблеме.

     30.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи
     29.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Разработка на основе тестов Django RESTful API

В этой статье рассматривается процесс разработки CRUD RESTful API с использованием Django и Django REST Framework, который используется для быстрого создания API на основе моделей Django.

     29.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Termux шаг за шагом (Часть 2)

В прошлой части мы с вами познакомились с базовыми командами Termux'а, настроили SSH соединение с ПК, научились создавать alias'ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами:

 

  • узнаем про Termux:API
  • установим Python и nano, а также напишем "Hello, world!" на Python
  • узнаем про bash-скрипты, и напишем скрипт с использованием Termux:API
  • используя bash-скрипт, Termux:API и Python напишем простую программку

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

     28.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Монады за 15 минут

На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудитории к этой теме породил взрывной рост публикаций о монадах в Интернет. К сожалению, бо́льшая часть этих публикаций использует примеры, написанные на функциональных языках, подразумевая, что о монадах хотят узнать новички в функциональном программировании. Но монады не специфичны для Haskell или функциональных языков, и вполне могут быть проиллюстрированы примерами на императивных языках программирования. Это и является целью данного руководства.

Чем это руководство отличается от остальных? Мы попытаемся не более чем за 15 минут «открыть» монады, используя лишь интуицию и несколько элементарных примеров кода на Python. Мы поэтому не станем теоретизировать и углубляться в философию, рассуждая о буррито, космических скафандрах, письменных столах и эндофункторах.

     28.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Обман нейронной сети для начинающих

В рамках ежегодного контеста ZeroNights HackQuest 2018 участникам предлагалось попробовать силы в целом ряде нетривиальных заданий и конкурсов. Часть одного из них была связана с генерированием adversarial-примера для нейронной сети. В наших статьях мы уже уделяли внимание методам атаки и защиты алгоритмов машинного обучения. В рамках же этой публикации мы разберем пример того, как можно было решить задание с ZeroNights Hackquest при помощи библиотеки foolbox.

     28.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

От парсера афиши театра на Python до Telegram-бота. Часть 2

Продолжаем историю о разработке Telegram-бота для поиска билетов — HappyTicketsBot, начало можно почитать в первой части.

Во второй расскажу о самом боте, поделюсь кодом, а также идеями, которым скорее всего не суждено стать реальностью. Большая часть функционала к моменту создания бота уже была написана в формате скрипта, поэтому основной задачей стояло наладить интерфейс взаимодействия с пользователем через Telegram-messenger. Получилось не так болтологически, как в 1й части, так что attention — много кода.

     28.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

DCF77: как работает система передачи сигналов точного времени?

Наверное многие, приобретающие часы или метеостанцию, видели на упаковке логотип Radio Controlled Clock или даже Atomic Clock. Это весьма удобно, ведь достаточно поставить часы на стол, и они через некоторое время автоматически настроятся на точное время.

Разберемся как это работает и напишем декодер на языке Python.

     27.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Введение в Python Dataclasses – Часть 2

Это вторая статья из серии статей “Введение в Python Dataclasses“. В первой части я рассказал о базовом использование dataclasses.

     26.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Введение в Python Dataclasses – Часть 1

Если вы читаете эту, то возможно вы уже знакомы с Python 3.7 и читали о его новых функциях.

     26.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Какие языки программирования наименее безопасны?

Обзор от WhiteSource показал, какие из языков программирования имеют наибольшие дыры в безопасности. Победитель антирейтинга — Си. Но это только начало истории.

Технологии в целом нашпигованы ошибками безопасности. На низком уровне это ошибки в железе. Так это было с уязвимостью Intel и ошибками Spectre. Чуть выше — дыры в безопасности языков программирования. И их ну очень много!

     26.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Кросспостинг постов из Instagram в паблик VK на Python

Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не хотелось, плюс дальнейшие перспективы обезьянней работы не впечатляли.

Уверенный, что в интернете полно бесплатный решений, я начал гуглить. Естественно, первые страницы поисковой выдачи пестрят платными сервисами, с довольно обширными функционалами. Но мне, всего лишь на всего, надо было перенести все посты со страницы Instagram в паблик VK и в дальнейшем синхронно пополнять его.

     26.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Исключения в Python теперь считаются анти-паттерном

Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, хабражители.

     26.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

DHCP+Mysql сервер на Python

Целью данного проекта было:

 

 

  • Изучение протокола DHCP при работе в сети IPv4
  • Изучение Python (немножко более чем с нуля ;) )
  • замена серверу DB2DHCP (мой форк), оригинал здесь, который собирать под новую ОС всё труднее и труднее. Да и не нравится, что бинарник, который нет возможности «поменять прям щас»
  • получение работоспособного сервера DHCP с возможностью выборки IP адреса абонента по mac абонента или связке mac свича+порт (Option 82)
  • написание очередного велосипеда (О! это моё любимое занятие)
  • получение люлей про свою косорукость на Хабрахабр (а лучше инвайта) ;)

     26.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Ловушка (тарпит) для входящих SSH-соединений

Не секрет, что интернет — очень враждебная среда. Как только вы поднимаете сервер, он мгновенно подвергается массированным атакам и множественным сканированиям. На примере ханипота от безопасников можно оценить масштаб этого мусорного трафика. Фактически, на среднем сервере 99% трафика может быть вредоносным.

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

     25.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Как стать Data Engineer

Сейчас специализация в области data engineering активно набирает обороты. Судя по отчёту компании hired.com, спрос на data engineer специалистов вырос на 38%, и рост продолжится. Средняя зарплата у Data Engineer в Нью-Йорке составляет $132 тысячи, а в Сан-Франциско $151 тысячу. Что касается рынка СНГ, то спрос на дата инженеров только начинает расти. В России зарплатная вилка варьируется от 100 тысяч рублей до 250 тысяч. Эту информацию я получил из небольшого анализа открытых вакансий на ресурсах Мой Круг и HeadHunter.

     25.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Применение принципа единой ответственности в Python

Перевод статьи Никиты Соболева Enforcing Single Responsibility Principle in Python (Применение принципа единой ответственности в Python).

     25.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи
     25.03.2019       Выпуск 275 (25.03.2019 - 31.03.2019)       Статьи

Анализ статистики группы Вконтакте через API с помощью Python: часть 1

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