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

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

     13.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 7

На прошлом уроке мы изучили некоторые способы поиска областей интереса на изображении. Напомню, что мы делали:

  • пытались найти по цвету (чаще всего так делать не надо);

  • пытались найти круглый знак посредством функции HoughCircles (иногда работает);

  • а еще мы изучили морфологические операции (открытие закрытие).

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

     17.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Пишем первую программу по машинному обучению до 50 строк с помощью Scikit-Learn

Сегодня мы воспользуемся возможностями машинного обучения для анализа шоколадного печенья. Читать о печеньках и ML

     13.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Сравнительный анализ эффективности работы Cython и Python

Cython – это язык, который очень-очень похож на Python с добавлением синтаксических изюминок.

     12.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

В Data Science не нужна математика (Почти)

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат. В реальной повседневной работе Data Scientist'а я каждый день использую знания математики. Притом очень часто это далеко не «вышмат». Никакие интегралы не считаю, детерминанты матриц не ищу, а нужные хитрые формулы и алгоритмы мне оперативнее просто загуглить. Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется.

     12.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 5. Асинхронное программирование

Выше мы рассмотрели, как появились генераторы, как они работают и как их можно использовать в роли сопрограмм. Еще раньше было разобрано, как реализовать асинхронность на колбеках с помощью модуля selectors. Теперь соединим оба материала и реализуем настоящую асинхронность — на сопрограммах (coroutines).В конце мы создадим минимально возможную версию asyncio и используем ее как лабораторный макет для изучения внутреннего устройства данной библиотеки. Как по мне, это лучший способ понять, как работает асинхронное программирование в Python.

     12.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 4. Сопрограммы в Python

Как известно, если хочешь что-то понять, найди сначала тот начальный момент, из которого это что-то появилось. Зри в корень, как говорил Козьма Прутков. А найдя корень, проследи всю его эволюцию до настоящего времени. То, как она протекала, и почему именно таким образом. Хотя если понимать не обязательно, а нужно только делать, то можно и не разбираться.Поскольку асинхронность в Python реализована через сопрограммы, или корутины (coroutines), сопрограммы произошли из генераторов, генераторы появились из итераторов, а итераторы были созданы для перебора последовательности, то начнем с перебора последовательности и пройдем всю приведенную цепочку в обратном направлении.

     12.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Статическое Python приложение в образе контейнера на базе scratch

Небольшое руководство о том, как можно собрать Python приложение в самодостаточный статически связанный двоичный файл и упаковать его в образ контейнера на базе scratch.

Размер итогового образа контейнера получится всего лишь от 13 мегабайт.

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Создание бота на основе discord.py. Часть 1

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

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Интеграция картин в видео фасада здания за 60 часов

Художник-монументалист - человек, который выполняет действительно Большие Задачи. Вот и со мной рядом был такой человек, у которого еще не горел, но активно приобретал характерную черную корочку диплом.

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронности

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

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 2. Блокирующие сокеты и многозадачность

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

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Автоматическое тестирование QT GUI с помощью python и funq

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

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи

Бескомпромиссный CI-конвейер для питонистов

Любому Python-проекту может пойти на пользу надёжный и стабильный конвейер непрерывной интеграции (Continuous Integration, CI). В рамках таких конвейеров выполняется сборка приложений, запуск тестов, проверка кода линтерами, контроль качества программ, анализ уязвимости приложений. Правда, построение CI-конвейеров занимает много времени, требует выполнения действий, которые, сами по себе, никакой пользы не приносят. Этот материал написан для тех Python-программистов, которым нужен полнофункциональный, настраиваемый CI-конвейер, основанный на GitHub Actions. Этот конвейер оснащён всеми мыслимыми инструментами, подключён ко всем необходимым сервисам, а подготовить его к работе можно всего за несколько минут.

     10.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 1. Введение

Дабы исчерпать до дна тему сокетов в Python я решил изучить все возможные способы их использования в данном языке. Чтобы всех их можно было испытать и попробовать на зуб, были созданы 19 версий простого эхо-сервера: от примитивного использования класса socket до asyncio

     09.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

Что такое выпас данных и почему он необходим?

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

     08.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

Pycon Russia-2022: программа докладов, пиксель-мерч и песни у костра

Три недели осталось до старта нашей конференции. Мы нашли самых огненных спикеров и собрали 25 докладов, так или иначе связанных с python-разработкой. Придумали классную идею для афтерпати и пошили самые красивые (по версии девочек из IT-People) футболки. Пора познакомить вас со всем этим. И что же там такое?

     08.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

Оптимизация сервинга нейросетей

В последнее время занимался оптимизацией скорости инференса нейросетей, поэтому сегодня расскажу о них. И не просто о нейросетях, а о нейросетях в продакшене. 

     06.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

Pet-проект для обучения или как я в одиночку писал Helpdesk

Ранее, у меня уже был опыт использования Helpdesk систем, но по разным причинам они не были внедрены у нас на предприятии. Хорошая возможность научится программировать, подумал я, и преступил к написанию собственного helpdesk’a.

     06.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

Как я пагинацию на telebot делал

Разберемся с начала, что это за статья зачем она и для кого. Пришлось мне в рамках хакатона "Поколение ИТ" писать бота для телеги.

Но готового решения для пагинации, которое бы нам подходило мы не нашли. Поэтому было принято решение изобретать велосипед. Решение моих товарищей было максимально странным, брать количество записей и перебирать их в цикле от 1 до N (конца, записей), но данная идея сразу была отброшена. Поэтому предоставляю вашему вниманию наше творчество, которое мы изобрели.

     06.07.2022       Выпуск 446 (04.07.2022 - 10.07.2022)       Статьи

Как пакетно конвертировать изображения и видео в гифки с помощью FFmpeg минуя CLI

Привет, земляне. Многие из вас слышали про набор библиотек FFmpeg, а некоторые его активно используют. Я из их числа, но я не поклонник взаимодействия с приложением посредством текстовых команд, поэтому я предлагаю собственное приложение с графическим интерфейсом для взаимодействия с FFmpeg. Теперь, не нужно изучать текстовый интерфейс, чтобы произвести пакетное конвертирование изображений и видео в GIF-файлы высокого качества.