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

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


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

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


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

(21.10.2019 - 27.10.2019)

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

Статьи

  Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Данная статья содержит решений заданий Encoding ASCII и Encoding UU направленные на кодировки, Hash Message Digest 5 и Hash SHA-2 — на нахождение прообраза хеша, Shift cipher — шифр сдвига, и Pixel Madness — на составление картинки.

  Визуализация работы PEG парсера

В прошлый раз получился простой генератор парсера PEG. Сейчас же я покажу, что на самом деле делает сгенерированный парсер при разборе программы. Я погрузился в ретро-мир ASCII-арта, в частности, библиотеку с именем «curses», которая доступна в стандартной поставке Python для Linux и Mac, а также как дополнение для Windows.

  Оптимизация производительности Django на примере боевого проекта

Последнее время я посвятил много времени оптимизации сайта и теперь хотелось бы рассказать об этом.
В данной статье будет объяснено использование методов select_related и prefetch_related в QuerySet, а также их различие. Также постараюсь объяснить почему Django считают медленным, и почему это всё-таки не так. Конечно Django по многим статьям медленнее, чем тот же Flask, но в тоже время в большинстве проектов проблема заключается не в самом Django, а скорее а в отсутствии опттимизации запросов к базе данных.

  «Вроде, такое уже было?» Поиск похожих инцидентов и заявок

Мы уже используем ML-модели для классификации инцидентов. Чтобы помочь нашей команде эффективнее обрабатывать заявки, мы создали еще одну ML-модель для подготовки списка "ранее закрытые похожие инциденты". Детали — под катом.

  Переменные окружения для Python проектов

При разработки web-приложения или бота мы часто имеем дело с какой-либо секретной информацией, различными токенами и паролями (API-ключами, секретами веб-форм). "Хардкодить" эту информацию, а тем более сохранять в публично доступной системе контроля версий это очень плохая идея.

  5 способов сделать Python-сервер на Raspberry Pi. Часть 2

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

  [Перевод] Python и быстрые HTTP-клиенты

В наши дни, если вы пишете некое Python-приложение, то вам, скорее всего, придётся оснащать его функционалом HTTP-клиента, который способен общаться с HTTP-серверами. Повсеместное распространение REST API сделало HTTP-инструменты уважаемыми жителями бесчисленного множества программных проектов. Именно поэтому любому программисту необходимо владеть паттернами, направленными на организацию оптимальной работы с HTTP-соединениями.

  Параметризация из файла в py.test

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

 

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

В этой статье я расскажу о своем решении этой задачи.

  DeepPavlov для разработчиков: #1 инструменты NLP и создания чат-ботов

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

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

  Леворекурсивные PEG грамматики

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

  Как работает FaceID в iPhone X: алгоритм на Python

Одна из самых крутых фишек iPhone X – это метод разблокировки: FaceID. В этой статье разобран принцип работы данной технологии.

Изображение лица пользователя снимается с помощью инфракрасной камеры, которая более устойчива к изменениям света и цвета окружающей среды. Используя глубокое обучение, смартфон способен распознать лицо пользователя в мельчайших деталях, тем самым “узнавая” владельца каждый раз, когда тот подхватывает свой телефон. Удивительно, но Apple заявила, что этот метод даже безопаснее, чем TouchID: частота ошибок 1:1 000 000.

В этой статье разобран принцип алгоритма, подобного FaceID, с использованием Keras. Также представлены некоторые окончательные наработки, созданные с помощью Kinect.

  Django: Использование Google reCAPTCHA

Статья описывает использование Google reCAPTCHA с батарейкой evileg-core

  Анализируем тональность текстов с помощью Fast.ai

В статье пойдет речь о классификации тональности текстовых сообщений на русском языке (а по сути любой классификации текстов, используя те же технологии). За основу возьмем данную статью, в которой была рассмотрена классификация тональности на архитектуре CNN с использованием Word2vec модели. В нашем примере будем решать ту же самую задачу разделения твитов на позитивные и негативные на том же самом датасете с использованием модели ULMFit. Результат из статьи, (average F1-score = 0.78142) примем в качестве baseline.

  Плюсы и минусы Django

Django описывают как «веб-фреймворк для перфекционистов с дедлайнами». Его создали, чтобы переходить от прототипов к готовым сервисам как можно быстрее.

 

 

Фреймворк поможет разработать CRUD приложение под ключ. С Django не придется изобретать велосипед. Он работает из коробки и позволит сосредоточиться на бизнес-логике и продуктах для обычных людей.

  [Hard] Градиентный спуск по косточкам

В интернете есть много статей с описанием алгоритма градиентного спуска. Здесь будет еще одна.

 

8 июля 1958 года The New York Times писала: «Психолог показывает эмбрион компьютера, разработанного, чтобы читать и становиться мудрее. Разработанный ВМФ… стоивший 2 миллиона долларов компьютер "704", обучился различать левое и правое после пятидесяти попыток… По утверждению ВМФ, они используют этот принцип, чтобы построить первую мыслящую машину класса "Перцептрон", которая сможет читать и писать; разработку планируется завершить через год, с общей стоимостью $100 000… Ученые предсказывают, что позже Перцептроны смогут распознавать людей и называть их по имени, мгновенно переводить устную и письменную речь с одного языка на другой. Мистер Розенблатт сказал, что в принципе возможно построить "мозги", которые смогут воспроизводить самих себя на конвейере и которые будут осознавать свое собственное существование» (цитата и перевод из книги С. Николенко, «Глубокое обучение, погружение в мир нейронный сетей»).

Ах уж эти журналисты, умеют заинтриговать. Очень интересно разобраться, что на самом деле представляет из себя мыслящая машина класса «Перцептрон».

  Генерация PEG-парсера

Теперь, когда я набросал основу самописного парсера, давайте перейдём к генерации его методов из грамматики, как я и обещал. Также покажу как реализовать packrat-парсер с помощью декоратора @memoize.

  Яндекс.переводчик для Linux на Python GUI

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

 

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

  Стохастический градиентный спуск(SGD) для логарифмической функции потерь(LogLoss) в задаче бинарной классификации

Предыдущая часть (про линейную регрессию, градиентный спуск и про то, как оно всё работает) — habr.com/ru/post/471458

В этой статье я покажу решение задачи классификации сначала, что называется, «ручками», без сторонних библиотек для SGD, LogLoss'а и вычисления градиентов, а затем с помощью библиотеки PyTorch.

Задача: для двух категориальных признаков, описывающих желтизну и симметричность, определить, к какому из классов (яблоко или груша) относится объект (обучить модель классифицировать объекты).

  Deploy приложений с помощью Docker Swarm

Целью написания данной статьи является описание внедрения системы кластеризации docker swarm под staging-площадку, не нарушая сложившейся workflow наших процессов в условиях ограниченного времени. Представленное вашему вниманию повествование разделено на две части. Первая часть описывает CI/CD до использования docker swarm, а вторая — процесс его внедрения. Кто не заинтересован в чтении первой части, может смело переходить ко второй.

  Сортировки распределением

В сортировках распределением элементы распределяются и перераспределяются по классам до тех пор, пока массив не отсортируется.

В самом общем случае это происходит по примерно одинаковой схеме. Элементы разбрасываются по классам по какому-либо признаку. Если это не привело к упорядочиванию массива, то происходит уточнение признаков принадлежности к классу и элементы раскидываются по уточнённым классам снова. И так происходит до тех пор, пока массив не станет упорядоченным.

Видео

  Жизнь без QA: Как тестируют в Uploadcare или pytest на все случаи жизни

Мой доклад будет посвящен опыту Uploadcare в развитии своей тестировочной инфраструктуры. В Uploadcare существует множество связанных и не очень приложений которые обеспечивают работу всего сервиса. Чтобы понимать, что что-то сломалось или корректно работает мы используем: интеграционные тесты, unit-тесты, функциональные тесты, bdd и e2e тестирование, тестирования БД. Все это мы делаем без отдела QA и с помощью Pytest. Мы не гордимся тем, что у нас нет отдела QA, но гордимся тем, что в любой момент времени мы можем сказать, что что-то сломалось или работает корректно. Я хотел бы рассказать о нашем опыте построения инфраструктуре тестов, проблемах с которыми мы столкнулись, решениях которые мы использовали и нюансах о которых мы узнали

  Дружим Django с Azure Insights. Logging, monitoring, tracing

Мониторинг, tracing, логирование — важные вещи в любом продукте. В нашем продукте для этих вещей используем Azure Insights. Расскажу о некоторых возможностях, которые он предоставляет, как мы его дружили с Django, с какими сложностями столкнулись".

Релизы

  django-extensions - 2.2.4

Набор пользовательских расширений для Django-проектов. Изменения описаны по ссылке https://allmychanges.com/p/python/django-extensions/#2.2.4. Скачать можно по ссылке: https://pypi.python.org/pypi/django-extensions/

  model_mommy заменён model_bakery

Популярная Django-библиотека для легкого создания объектов model_mommy переименована и получила необходимые обновления для поддержки последних версий Python и Django: https://model-bakery.readthedocs.io/en/latest/index.html