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

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

     01.06.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 2

В предыдущей части мы частично разобрали шаблон для нашего блога, выбрали виртуальную машину и запустили на ней нативный веб-сервер Django. Однако он предназначен только для тестирования и запуска приложений во время разработки. Для обработки запросов в продакшене нужно настроить Nginx и WSGI Gunicorn. В этой статье показываем, как это сделать.

     31.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Телеграм бот для CustDev'а на Aiogram

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

 

     31.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Битва медведей: Pandas против Polars

Возможно, вы прочитали название статьи и подумали, что попали на программу «В мире животных». Но нет, речь пойдет о сравнении двух гигантов аналитики данных в Python: Pandas и Polars. В этой статье мы подробно рассмотрим вопрос быстродействия этих двух решений в части работы с файлами больших объемов.

     31.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

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

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

     31.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Определение свободного парковочного места с помощью Computer Vision

Дело было так: смотрел я как-то в окно и увидел, как человек сидит в машине на парковке и ждет, когда освободится парковочное место. Бывает, что и я сижу в машине и жду, когда же можно будет припарковать своего верного коня. И тут я подумал, а почему бы не подключить Компьютерное Зрение для этого? Зачем я учился разработке нейросетей, если не могу заставить компьютер работать вместо меня?

     30.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Быстро, точно, градиентно: как наш подход к градиентному бустингу повышает эффективность моделей

Недавно мы поделились с вами нашим пайплайном разработки линейных моделей для решения задач бинарной классификации. Теперь же мы решили поведать о нашем опыте построения моделей градиентного бустинга. За последнее время команда проделала колоссальную работу: мы протестировали различные методы отбора факторов, нашли новые инсайты в данных, провели интересную (а, главное, полезную!) аналитическую работу и решили несколько Ad-hoc задач.

     29.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Сумки в надежных руках благодаря YOLO: проверяем охранников

Безопасность является важной темой в нашей современной жизни, особенно в общественных местах, таких как аэропорты, вокзалы и торговые центры. Одним из распространенных методов обеспечения безопасности является проверка сумок на проходной. Но, как говорится, кто устережёт самих сторожей? Могут ли современные технологии компьютерного зрения наблюдать за охранниками как они за нами?

     29.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Что нам стоит диаграмму в Python построить: 5 вариантов привлекающей внимание визуализации данных и кое-что ещё

Диаграммы помогают визуализировать как простые, так и самые сложные наборы данных. При этом диаграмм — множество видов, у каждого есть свои достоинства и недостатки. О наиболее эффектных и эффективных, реализуемых с Python, мы решили рассказать в сегодняшней подборке. Если вам интересна эта тема – просим под кат. А если у вас есть собственные предпочтения среди графиков (или вы используете что-то ещё), то пишите в комментариях, обсудим. Что же – поехали!

     29.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Werkzeuger: раскручиваем arbitrary file read до RCE в веб-приложении на flask

В данной статье мы: 1) Создадим свое первое веб-приложение на Flask 2) Изучим, зачем нужен режим отладки? 3) Рассмотрим, как генерируется PIN для входа в интерактивной консоль Python. 4) Разберем, как можно с помощью уязвимости чтения файлов получить доступ к интерактивной консоли Python. БОНУС) Узнаем, что же делать, если консоль была заблокирована из-за слишком большого количества попыток входа

     29.05.2023       Выпуск 493 (29.05.2023 - 04.06.2023)       Статьи

Как я использовал Pytest для написания QA-тестов, гарантированно обходящих 2FA

Тестирование страниц входа и согласия может быть довольно сложным: та же самая двухфакторная аутентификация (2FA), которая обеспечивает безопасность ваших клиентов, также затрудняет написание автоматизированных тестов. В этой статье я расскажу, как написал Python-тесты, которые обходят 2FA и при этом не покушаются на  безопасность клиентов. Для этого я использовал Selenium и разработал Slackbot.

     28.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Сравнение нейросетей для перевода

С помощью GPT-4 можно решать самые разнообразные задачи по преобразованию текста, включая перевод на разные языки.Мне стало интересно, кто переводит лучше: GPT-4 или специализированные нейронки для перевода, такие как Google Translate и DeepL?Сегодня мы сравним качество перевода от различных нейросетей на 24 языковых парах.

     27.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Я написал одну из самых быстрых библиотек датафреймов

У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.

     26.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Пишем первый ML-пайплайн на Airflow: подробный туториал

В этом туториале мы пошагово разберем, как создать с нуля и запустить локально свой первый пайплайн на Airflow. Данный пайплайн специально адаптирован под задачи машинного обучения. В этом примере мы будем загружать новости из открытого источника и использовать NLP-модель для их классификации (zero-shot classification).

     26.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Книга «Рекурсивная книга о рекурсии»

Книга «Рекурсивная книга о рекурсии» содержит примеры кода на языке Python и JavaScript, которые иллюстрируют основы рекурсии и проясняют фундаментальные принципы всех рекурсивных алгоритмов. Из книги вы узнаете о том, когда стоит использовать рекурсивные функции (и, главное, когда этого не нужно делать), как реализовывать классические рекурсивные алгоритмы, часто обсуждаемые на собеседованиях, а также о том, как рекурсивные методы помогают решать задачи, связанные с обходом дерева, комбинаторикой и другими сложными темами.

     26.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Клеточные автоматы. Игра «Жизнь». Часть 1

В этой статье мы поговорим о 'Жизни' - игре без участия человека, которую можно описать и провести с помощью карандаша и клетчатого листа бумаги. Всё начинается с нескольких простых правил, но куда это приведёт? Ответ поразит вас!Не пугайтесь, всё довольно просто: даже ребенок может разобраться. Но несмотря на простоту, 'Жизнь' таит в себе уйму интересных вопросов и задач.В статье мы покажем, как создать красивую симуляцию 'Жизни' на Python.

     25.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Propan — Python фреймворк для написания микросервисов с использованием брокеров сообщений

Так исторически сложилось, что последние 5 лет своей продуктовой разработки я работаю с микросервисами вокруг брокеров сообщений (преимущественно RabbitMQ и Kafka).

И все это время меня не покидало чувство некой неудовлетворенности и неполноценности инструментария, который был мне доступен.

     25.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Правильное подключение к БД: почему, зачем и как

Как подключить базу данных? Казалось бы, простейший вопрос, однако частенько здесь совершают ошибки. Как правило, даже если сделать всё плохо, проблем не возникнет, но это до поры до времени. Как только проект вырастет и увеличится нагрузка, эти ошибки дадут о себе знать, и отследить их будет сложно. В этой небольшой статье, я последовательно буду создавать подключения к БД, а затем показывать на примере, что может пойти не так. На мой взгляд, понимание, почему нужно делать именно так, а не иначе, лучше, чем простое заучивание и использование паттернов. Статья рассчитана на начинающих и всех, кто интересуется этой темой.

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Как поиск жилья заставил менеджера вспомнить программирование и уйти из Яндекса

В 2019ом году я работал продактом в Яндекс.Погоде и мечтал запилить что-то свое. Начал смотреть, какие есть большие рынки и в чем их боль. Перебирая варианты, вспомнил, каким изнуряющим был для меня поиск съемного жилья. 

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Как мы сделали игру для разработчиков в телеграм на 10+ тыс юзеров

Это создатель игры Dev's Battle (Образовательной MMO-RPG игры для разработчиков в Телеграм). В этой статье я решил рассказать про наш опыт создания продукта в телеграм. Надеюсь, что данная статья будет полезна всем кто сейчас разрабатывает или думает разрабатывать какие-либо продукты в телеграме.