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

Расстояние Левенштейна для чайников

Когда я взялась решать задачку по динамическому программированию — реализовать алгоритм, который рассчитывает расстояние Левенштейна — мне пришлось послушать пару небольших лекций и прочесть несколько статей (приведу их в конце), чтобы разобраться. Я решила попытаться пересказать алгоритм настолько просто, чтобы по этому объяснению можно было снять ролик для тиктока (когда он снова возобновит свою деятельность в РФ). Дальше — мало формул и много картинок.

     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)       Видео

Moscow Python Podcast. Redis, сова и глобус (level: all)

В гостях у Moscow Python Podcast Python CTO проекта Speechki Павел Мальцев. Поговорили с Павлом о том, как и когда использовать Redis, какие там есть структуры данных и когда они будут полезны.

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

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

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

     11.07.2022       Выпуск 447 (11.07.2022 - 17.07.2022)       Статьи
     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)       Статьи

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

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




Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus