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

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

     20.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Мелкая питонячая радость #4: Radon — качество кода, измеренное в числах

Инженеры очень любят измерения и числа. Поэтому нет ничего удивительного в том, что они пытаются измерять в численном виде такую нетривиальную штуку, как качество кода. Метрик для оценки текстов программ придумали немало — от банального количества строк кода в проекте до не столь очевидного "индекса поддерживаемости" (Maintainability Index). Подробно про все существующие способы обмазывания кода всякими метриками можно почитать в этой статье. В мире Python, конечно же, есть своя штука для оценки качества кода. Она называется radon. Она написана на Python и работает исключительно с питонячими файлами. 

     20.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Автоматизация скучных вещей в Django с помощью фреймворка Check

В этой статье я описал примеры из моего личного опыта, как мы используем библиотеки inspect, ast.

     20.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Выделение ядра Питона

Глиф Лефковиц озвучил идею отделения «батареек» Питона от ядра.

     18.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Сравнение одинакового проекта в Rust, Haskell, C++, Python, Scala и OCaml

В последнем семестре университета я выбрал курс компиляторов CS444. Там каждая группа из 1-3 человек должна была написать компилятор из существенного подмножества Java в x86. Язык на выбор группы. Это была редкая возможность сравнить реализации больших программ одинаковой функциональности, написанных очень компетентными программистами на разных языках, и сравнить разницу в дизайне и выборе языка.

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

     20.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Нейросети и глубокое обучение: онлайн-учебник, глава 1

Этот учебник подробно расскажет вам о таких понятиях, как:

 

  • Нейросети — прекрасная программная парадигма, созданная под влиянием биологии, и позволяющая компьютеру учиться на основе наблюдений.
  • Глубокое обучение – мощный набор техник обучения нейросетей.
Нейросети (НС) и глубокое обучение (ГО) на сегодня дают наилучшее решение многих задач из областей распознавания изображений, голоса и обработки естественного языка. Этот учебник научит вас многим ключевым концепциям, лежащим в основе НС и ГО.

     18.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Полезные инструменты Python

Когда вы только начинаете учить Python, кто-то объясняет вам, что вы можете добавить свою папку с исходниками в переменную среды PYTHONPATH и тогда ваш код можно будет импортировать из других директорий. Очень часто объясняющий забывает сказать, что в большинстве случаев – это плохая идея. Некоторые люди узнают это в интернете, другие просто понимают на собственном опыте. Но слишком большое количество людей (особенно неопытные программисты), думают, что других альтернатив быть не может.

Эта статья в основном для них.

     18.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Книга «Вероятностное программирование на Python: байесовский вывод и алгоритмы»

Байесовские методы пугают формулами многих айтишников, но без анализа статистики и вероятностей сейчас не обойтись. Кэмерон Дэвидсон-Пайлон рассказывает о байесовском методе с точки зрения программиста-практика, работающего с многофункциональным языком PyMC и библиотеками NumPy, SciPy и Matplotlib. Раскрывая роль байесовских выводов при А/В-тестировании, выявлении мошенничества и в других насущных задачах, вы не только легко разберетесь в этой нетривиальной теме, но и начнете применять полученные знания для достижения своих целей.

     18.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Заполняем документы в Microsoft Word при помощи Python. Часть 1

Начиная с 21 декабря 2016 года вступили изменения в ФЗ РФ «О противодействии легализации (отмыванию) доходов, полученных преступным путем, и финансированию терроризма», касательно обязанности юридического лица по раскрытию информации о своих бенефициарных владельцах. В связи с этим, многие компании направляют запросы по цепочке владения с целью выяснения своих бенефициарных владельцев. Кто-то формирует запросы на бумаге, кто-то рассылает электронные письма.

     18.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Dataclasses и attrs: когда и почему

В Python 3.7 были представлены dataclasses (PEP557). Dataclasses могут быть удобным способом создания классов, основная цель которых состоит в том, чтобы содержать значения.

Дизайн dataclasses основан на существующей библиотеке attr.s. На самом деле Гинек Шлавак (Hynek Schlawack) является автором attrs и он же помог с написанием PEP557.

     17.06.2019       Выпуск 287 (17.06.2019 - 23.06.2019)       Статьи

Как мы создали систему оповещения о ядерной угрозе, или как я обучил нейросеть на заголовках Хабра

Заголовок статьи может показаться странным и это неспроста — он прекрасен именно тем, что написал его не я, а LSTM-нейросеть (а точнее его часть перед "или").

И сегодня мы разберёмся, как можно генерировать заголовки статей Хабра (и в принципе сам текст можно генерировать этой же нейро-архитектурой). Весь код доступен для запуска онлайн в notebooks от Гугла. Данные, как всегда, открыты на github.

     16.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Как опубликовать консольную утилиту на PyPI за 1 минуту

Разработав консольную утилиту, вы решаетесь опубликовать её на PyPI. Ну правда, что может быть лучше, чем сделать её доступной через pip install? Погуглив, что для этого надо, вы, возможно, наткнётесь на единственный найденный мной пост по теме, который мало того что от 2014 года, так ещё и требует от вас создать кучу папок и файлов для совершенно ненужных (вам) вещей.

 

Как же решить эту задачу без лишней головной боли в 2019 году? Я уже задавался этим вопросом и поэтому, прочитав тонну документации, создал для вас этот туториал. Вот пошаговая инструкция.

     16.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Отличия LabelEncoder и OneHotEncoder в SciKit Learn

Если вы недавно начали свой путь в машинном обучении, вы можете запутаться между LabelEncoder и OneHotEncoder. Оба кодировщика — часть библиотеки SciKit Learn в Python и оба используются для преобразования категориальных или текстовых данных в числа, которые наши предсказательные модели понимают лучше. Давайте выясним отличия между кодировщиками на простеньком примере.

 

     16.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Telegram. Безлимитный сетевой диск, бесплатный

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

TgCloud:

  • Виртуальная файловая система с открытым исходным г****кодом.
  • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
  • Данные хранятся в Telegram и загружаются только при работе с файлом
  • Размер и тип файлов не ограничен, можно использовать с любой ОС

     16.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Многомерные графики в Python — от трёхмерных и до шестимерных

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

 

Plotly — это питоновская библиотека с открытым исходным кодом для разнообразной визуализации, которая предлагает гораздо больше настроек, чем известные matplotlib и seaborn. Модуль устанавливается как обычно — pip install plotly. Его мы и будем использовать для рисования графиков.

     15.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Обучение логистической регрессии с L1 и L2 регуляризациями с методом SGD

Сегодня у нас пост с интересным заданием — будем обучать логистическую регрессию с L1 и L2 регуляризациями с помощью метода Stochastic Gradient Descent (SGD).

     15.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Использование библиотеки Matplotlib. Как делать анимированные графики

Анимированные графики в Matplotlib могут создаваться несколькими способами. Первый способ заключается в том, что можно самостоятельно обновлять график через заданный промежуток времени. Два других способа используют классы, производные от класса matplotlib.animation.Animation: FuncAnimation или ArtistAnimation. В данной статье будут рассмотрены все эти способы.

     14.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

DevOps в разработке: автоматизация написания кода веб-приложений

Как правило, внедрение DevOps во многих компаниях заканчивается на этапе автоматизации IT Operations, и очень мало кто говорит о внедрении DevOps непосредственно в сам процесс разработки.

Мне бы хотелось исправить это маленькое недоразумение. DevOps в разработку может прийти через формализацию кодовой базы, например, при написании GUI для REST API.

     14.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Что нового в разработке Mamba

Mamba — это drop-in замена Conda, потрясающего кросс-платформенного менеджера пакетов. На наш взгляд у Conda есть один фатальный недостаток: она слишком медленная, когда много пакетов уже установлено или при одновременной установке нескольких пакетов. Mamba по-прежнему использует Conda почти для всего, кроме разрешения зависимостей. Мы заменили эту часть Conda на альтернативную реализацию под названием libsolv — C библиотеку, которая уже лежит в основе менеджеров пакетов в Linux системах типа dnf в Fedora или zypper в OpenSuse.

     14.06.2019       Выпуск 286 (10.06.2019 - 16.06.2019)       Статьи

Обзор Python-пакета Datatable

Datatable — это Python-библиотека для выполнения эффективной многопоточной обработки данных. Datatable поддерживает наборы данных, которые не помещаются в памяти.

Если вы пишете на R, то вы, вероятно, уже используете пакет data.table. Data.table — это расширение R-пакета data.frame. Кроме того, без этого пакета не обойтись тем, кто пользуется R для быстрой агрегации больших наборов данных (речь идёт, в частности, о 100 Гб данных в RAM).