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

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

     22.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи
     22.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Решаем NLP-задачу – классификация текстов по темам

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

Сегодня нам предстоит описать решение задачи по созданию классификатора текстовых документов. Шаг за шагом мы будем пытаться улучшить нашу модель. Давайте посмотрим, что же из этого получится.

     22.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Вызываем код на Java, C, NodeJS, C#, Python из InterSystems IRIS

Одно из ключевых направлений развития платформы данных InterSystems IRIS — открытость. Открытость во взаимодействии с языками программирования, технологиями и протоколами. Поддержка языков программирования двусторонняя — возможен как вызов кода из InterSystems IRIS, так и предоставляется API для работы с InterSystems IRIS извне.

     21.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Как найти email пользователя GitHub и написать Telegram бота для решения этой задачи?

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

Задача: известен профиль пользователя на GitHub, необходимо найти email этого пользователя

     21.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Миллион домашних фотографий: лица, лица, лица

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

Поэтому я решил немного углубиться в так называемый Face Recognition.

     20.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Вот вообще этим не занимался, и тут раз, и Data Science

Хочу в этой статье развеять мистику. Давайте чего-нибудь обучим, и найдём закономерности в большом наборе данных. Может и предскажем что-нибудь, даже. На простом, добром питоне – без всякой библиотеки в два гигабайта, и с минимальным входным порогом знаний.

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580

На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как минимум 2 способа запуска современных библиотек машинного обучения на видеокартах Radeon: PlaidML и ROCm. Я попробовал оба и хочу поделиться результатами.

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

ML в реальном мире: Складская система распознавания деталей

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

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Настройка аутентификации JWT в новом проекте Django

Данная статья является сборкой-компиляцией нескольких (основано на первой) статей, как результат моих изучений по теме jwt аутентификации в джанге со всем вытекающим. Так и не удалось (по крайней мере в рунете) найти нормальную статью, в которой рассказывается от этапа создания проекта, startproject, прикручивание jwt аутентификации.

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Миллион домашних фотографий: наводим порядок

После покупки цифрового фотоаппарата и рождения детей стало появляться большое количество фотографий, а учитывая, что жена с фотоаппаратом почти не расставалась и старалась запечатлеть все «важные» детские моменты, фотографий стало появляться ОЧЕНЬ много. Пришло время навести порядок.

     17.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Многопоточное скачивание файлов с ftp python-скриптом

Однажды передо мной встала задача копирования большого количества файлов с ftp-сервера. Нужно было делать бэкап. Казалось бы, что может быть проще! Но увы, ничего готового работающего так же быстро для моих условий найти не удалось.

     17.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Нейросеть для раскрутки собачьего аккаунта в Инстаграм или робопёс в действии

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

     17.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Как быстро получить много данных от Битрикс24 через REST API

Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционный способ для этого - обращение к серверу через метод *.list (например, crm.lead.list для лидов) с параметром select, перечисляющим список требуемых полей. При этом чем больше размер списка и чем больше полей вы выгружаете, тем дольше сервер формирует ответ.

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

     16.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Как определять собственные классы исключений в Python

Ваш интерес к новой книге "Секреты Python Pro" убедил нас, что рассказ о необычностях Python заслуживает продолжения. Сегодня предлагаем почитать небольшой туториал о создании кастомных (в тексте — собственных) классах исключений. У автора получилось интересно, сложно не согласиться с ним в том, что важнейшим достоинством исключения является полнота и ясность выдаваемого сообщения об ошибке. Часть кода из оригинала — в виде картинок.

     15.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Строим надёжную конкурентность с FSP и моделированием процессов

Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:

 

 

  • Повысить производительность многопроцессорного железа, это и называется параллелизм;
  • Увеличить пропускную способность приложения (вызову ввода-вывода нужно блокировать только один поток);
  • Сделать приложение отзывчивее за счёт выполнения основных задач параллельно фоновым (высокоприоритетный поток для запросов пользователей);
  • Структурировать программу, повысив её эффективность (взаимодействующие со средой программы управляют несколькими действиями и обрабатывают несколько событий).

     15.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Constraint Programming или как решить задачу коммивояжёра, просто описав её

Пожалуй, наиболее популярной парадигмой программирования является императивное программирование. Но это не единственный вид программирования, широко известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель - solver) найдет решение за вас (или скажет, если их нет). Впечатляет, не правда ли? Мне кажется, каждый программист должен знать о такой возможности.