Мониторинг на Python: как сохранить метрики в мультипроцессном режиме.
Привет, Хабр! Меня зовут Никита, я backend-разработчик команды клиентских сервисов. В Selectel мы строим и поддерживаем IT-инфраструктуру для компаний, которые развивают свои цифровые продукты. В нашем департаменте около 20 приложений, большая часть из которых работает на Flask и Gunicorn. Чтобы отслеживать их производительность, мы мониторим параметры системы с помощью Prometheus.
С развитием бизнеса нагрузка на приложения возрастает, один из способов масштабировать его под большее количество запросов — запустить Gunicorn-сервер с несколькими worker-процессами в мультипроцессном режиме. Однако при таком подходе клиент Prometheus не выводит нужные нам метрики CPU и RAM. В статье расскажу, как мы решили эту проблему, сохранив метрики и организовав мониторинг в мультипроцессном режиме.
Читать дальше →https://habr.com/ru/companies/selectel/articles/781614
Привет, Хабр! Меня зовут Никита, я backend-разработчик команды клиентских сервисов. В Selectel мы строим и поддерживаем IT-инфраструктуру для компаний, которые развивают свои цифровые продукты. В нашем департаменте около 20 приложений, большая часть из которых работает на Flask и Gunicorn. Чтобы отслеживать их производительность, мы мониторим параметры системы с помощью Prometheus.
С развитием бизнеса нагрузка на приложения возрастает, один из способов масштабировать его под большее количество запросов — запустить Gunicorn-сервер с несколькими worker-процессами в мультипроцессном режиме. Однако при таком подходе клиент Prometheus не выводит нужные нам метрики CPU и RAM. В статье расскажу, как мы решили эту проблему, сохранив метрики и организовав мониторинг в мультипроцессном режиме.
Читать дальше →https://habr.com/ru/companies/selectel/articles/781614
Хабр
Мониторинг на Python: как сохранить метрики в мультипроцессном режиме
Привет, Хабр! Меня зовут Никита, я backend-разработчик команды клиентских сервисов. В Selectel мы строим и поддерживаем IT-инфраструктуру для компаний, которые развивают свои цифровые продукты. В...
Проектирование и руководство: объектно-ориентированное программирование на Python
В этом видеокурсе вы узнаете о принципах SOLID — пяти общепризнанных стандартах для улучшения объектно-ориентированного проектирования на Python. Применяя эти принципы, вы можете создавать объектно-ориентированный код, который будет более удобным в сопровождении, расширяемом, масштабируемом и тестируемом. КУРС REAL PYTHON
Предварительный просмотр Python 3.12: более интуитивно понятные и последовательные F-строки В этом уроке вы познакомитесь с одной из будущих функций Python 3.12, которая представляет новую формализацию и реализацию синтаксиса f-строки. Новая реализация снимает некоторые ограничения и ограничения, влияющие на литералы f-строки в версиях Python ниже 3.12. REAL PYTHON
Изучение показателей кода в Python с помощью Radon Radon — это инструмент измерения показателей кода. Эта статья познакомит вас с этим и научит, как можно улучшить свой код на основе его измерений. МАЙК ДРИСКОЛ.
В этом видеокурсе вы узнаете о принципах SOLID — пяти общепризнанных стандартах для улучшения объектно-ориентированного проектирования на Python. Применяя эти принципы, вы можете создавать объектно-ориентированный код, который будет более удобным в сопровождении, расширяемом, масштабируемом и тестируемом. КУРС REAL PYTHON
Предварительный просмотр Python 3.12: более интуитивно понятные и последовательные F-строки В этом уроке вы познакомитесь с одной из будущих функций Python 3.12, которая представляет новую формализацию и реализацию синтаксиса f-строки. Новая реализация снимает некоторые ограничения и ограничения, влияющие на литералы f-строки в версиях Python ниже 3.12. REAL PYTHON
Изучение показателей кода в Python с помощью Radon Radon — это инструмент измерения показателей кода. Эта статья познакомит вас с этим и научит, как можно улучшить свой код на основе его измерений. МАЙК ДРИСКОЛ.
Realpython
Design and Guidance: Object-Oriented Programming in Python – Real Python
In this video course, you'll learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that is more maintainable, extensible…
Это курс Гарвардского университета: «Введение в науку о данных с помощью Python». Вы можете пройти этот урок бесплатно. Если вам нужен сертификат, вы можете заплатить за него 299 долларов. Чтобы пройти этот курс, вы должны быть знакомы с Python. Курс предназначен для новичков.
https://pll.harvard.edu/course/introduction-data-science-python
https://pll.harvard.edu/course/introduction-data-science-python
Harvard University
Introduction to Data Science with Python | Harvard University
Join Harvard University instructor Pavlos Protopapas in this online course to learn how to use Python to harness and analyze data.
Django против FastAPI: какой веб-фреймворк Python лучше?
https://blog.jetbrains.com/pycharm/2023/12/django-vs-fastapi-which-is-the-best-python-web-framework
https://blog.jetbrains.com/pycharm/2023/12/django-vs-fastapi-which-is-the-best-python-web-framework
Для Python предложен JIT-компилятор, использующий технику copy-and-patch
Брандт Букер (Brandt Bucher) из компании Microsoft, входящий в число core-разработчиков CPython и работающий в команде, занимающейся увеличением производительности интерпретатора CPython, опубликовал реализацию JIT-компилятора для Python, использующую технику Copy-and-Patch. Публикация JIT приурочена к Рождеству и анонс написан в стихах.
Предложенный JIT примечателен очень высокой скоростью генерации кода, простотой сопровождения и полной интеграцией с интерпретатором. Предложенный метод позволяет автоматически преобразовать интерпретатор, написанный на языке Си, в JIT-компилятор, без отдельного формирования логики генерации кода и без ручного создания ассемблерных представлений. При таком подходе исправление ошибки в интерпретаторе автоматически приведёт и к устранению той же проблемы в JIT, так как используется общий генератор кода.
Брандт Букер (Brandt Bucher) из компании Microsoft, входящий в число core-разработчиков CPython и работающий в команде, занимающейся увеличением производительности интерпретатора CPython, опубликовал реализацию JIT-компилятора для Python, использующую технику Copy-and-Patch. Публикация JIT приурочена к Рождеству и анонс написан в стихах.
Предложенный JIT примечателен очень высокой скоростью генерации кода, простотой сопровождения и полной интеграцией с интерпретатором. Предложенный метод позволяет автоматически преобразовать интерпретатор, написанный на языке Си, в JIT-компилятор, без отдельного формирования логики генерации кода и без ручного создания ассемблерных представлений. При таком подходе исправление ошибки в интерпретаторе автоматически приведёт и к устранению той же проблемы в JIT, так как используется общий генератор кода.
GitHub
GH-113464: A copy-and-patch JIT compiler by brandtbucher · Pull Request #113465 · python/cpython
'Twas the night before Christmas, when all through the code
Not a core dev was merging, not even Guido;
The CI was spun on the PRs with care
In hopes that green check-markings soon would be...
Not a core dev was merging, not even Guido;
The CI was spun on the PRs with care
In hopes that green check-markings soon would be...
🏆Как освоить 📊 конвейеры больших данных с помощью Taipy и PySpark 🐍
В этой статье будет использован простой пример, чтобы продемонстрировать, как мы можем интегрировать PySpark с Taipy , чтобы соединить ваши потребности в обработке больших данных с интеллектуальным выполнением заданий . https://dev.to/taipy/how-to-master-big-data-pipelines-with-taipy-and-pyspark-14oe
В этой статье будет использован простой пример, чтобы продемонстрировать, как мы можем интегрировать PySpark с Taipy , чтобы соединить ваши потребности в обработке больших данных с интеллектуальным выполнением заданий . https://dev.to/taipy/how-to-master-big-data-pipelines-with-taipy-and-pyspark-14oe
DEV Community
🏆How to master 📊 Big Data pipelines with Taipy and PySpark 🐍
This article will employ a simple example to demonstrate how we can integrate PySpark with Taipy to...
Освоение продвинутых концепций ООП в Python: теория ООП
https://blog.devgenius.io/mastering-advanced-oop-concepts-in-python-theory-behind-oop-c9e87fb1697b
https://blog.devgenius.io/mastering-advanced-oop-concepts-in-python-theory-behind-oop-c9e87fb1697b
Medium
Mastering Advanced OOP Concepts in Python: Theory Behind OOP
Building on our exploration of advanced class features in Python, this article delves into the theoretical foundations of Object-Oriented…
4 миллиарда операторов if — проверка того, является ли каждое 32-битное число четным или нечетным.
Просматривая недавно соцсети, я наткнулся на этот скриншот. Разумеется, его сопровождало множество злобных комментариев, критикующих попытку этого новичка в программировании решить классическую задачу computer science: операцию деления с остатком.
В современном мире, где ИИ постепенно заменяет программистов, отнимая у них работу и совершая переворот в том, как мы подходим к рассуждениям о коде, нам, возможно, следует быть более открытыми к мыслям людей, недавно пришедших в нашу отрасль? На самом деле, показанный выше код — идеальный пример компромисса между временем и задействованной памятью. Мы жертвуем временем и в то же время памятью и временем компьютера! Поистине чудесный алгоритм!
https://andreasjhkarlsson.github.io/jekyll/update/2023/12/27/4-billion-if-statements.html
Просматривая недавно соцсети, я наткнулся на этот скриншот. Разумеется, его сопровождало множество злобных комментариев, критикующих попытку этого новичка в программировании решить классическую задачу computer science: операцию деления с остатком.
В современном мире, где ИИ постепенно заменяет программистов, отнимая у них работу и совершая переворот в том, как мы подходим к рассуждениям о коде, нам, возможно, следует быть более открытыми к мыслям людей, недавно пришедших в нашу отрасль? На самом деле, показанный выше код — идеальный пример компромисса между временем и задействованной памятью. Мы жертвуем временем и в то же время памятью и временем компьютера! Поистине чудесный алгоритм!
https://andreasjhkarlsson.github.io/jekyll/update/2023/12/27/4-billion-if-statements.html
Blabbin’
4 billion if statements
I recently stumbled upon this screenshot while researching social media on the train. Of course, it was followed by a cascade of spiteful comments, criticizing this fresh programmer’s attempt to solve a classical problem in computer science. The modulus operation.
[Перевод] Сколько ядер CPU можно использовать параллельно в Python?.
При выполнении параллельной программы, активно задействующей CPU, нам часто необходимо, чтобы пул потоков или процессов имел размер, сопоставимый с количеством ядер CPU на машине. Если потоков меньше, то вы будете использовать все преимущества ядер, если меньше, то программа начнёт работать медленнее, так как несколько потоков будет конкурировать за одно ядро. Ну, или такова ситуация в теории.
Как же проверить, сколько ядер есть у компьютера? И действительно ли это хороший совет?
Оказывается, на удивление сложно определить, сколько потоков выполнять:
- В стандартной библиотеке Python есть множество API для получения этой информации, но ни одного из них недостаточно.
- Хуже того, из-за таких функций CPU, как параллельность на уровне команд и одновременной многопоточности (Hyper-threading в CPU Intel), количество ядер, которое можно эффективно использовать, зависит от того кода, который напишете вы!
Давайте разберёмся, почему так сложно определить, сколько ядер CPU может использовать программа, а затем подумаем над потенциальным решением.
Читать далее https://habr.com/ru/articles/784014
При выполнении параллельной программы, активно задействующей CPU, нам часто необходимо, чтобы пул потоков или процессов имел размер, сопоставимый с количеством ядер CPU на машине. Если потоков меньше, то вы будете использовать все преимущества ядер, если меньше, то программа начнёт работать медленнее, так как несколько потоков будет конкурировать за одно ядро. Ну, или такова ситуация в теории.
Как же проверить, сколько ядер есть у компьютера? И действительно ли это хороший совет?
Оказывается, на удивление сложно определить, сколько потоков выполнять:
- В стандартной библиотеке Python есть множество API для получения этой информации, но ни одного из них недостаточно.
- Хуже того, из-за таких функций CPU, как параллельность на уровне команд и одновременной многопоточности (Hyper-threading в CPU Intel), количество ядер, которое можно эффективно использовать, зависит от того кода, который напишете вы!
Давайте разберёмся, почему так сложно определить, сколько ядер CPU может использовать программа, а затем подумаем над потенциальным решением.
Читать далее https://habr.com/ru/articles/784014
Хабр
Сколько ядер CPU можно использовать параллельно в Python?
При выполнении параллельной программы, активно задействующей CPU, нам часто необходимо, чтобы пул потоков или процессов имел размер, сопоставимый с количеством ядер CPU на машине. Если потоков меньше,...
Система.Мониторинг: мониторинг событий выполнения Python.
https://docs.python.org/3/library/sys.monitoring.html
https://docs.python.org/3/library/sys.monitoring.html
Python documentation
sys.monitoring — Execution event monitoring
This namespace provides access to the functions and constants necessary to activate and control event monitoring. As programs execute, events occur that might be of interest to tools that monitor e...
Изучение малоизвестных стандартных библиотек Python
https://blog.devgenius.io/exploring-pythons-lesser-known-standard-libraries-670c509bf062
https://blog.devgenius.io/exploring-pythons-lesser-known-standard-libraries-670c509bf062
Medium
Exploring Python’s Lesser-Known Standard Libraries
Pythons library is a goldmine of modules that cater to various programming requirements. Although modules such, as sys, os, datetime and…
Python, Markdown и Tailwind: лучшие друзья!
https://www.mattlayman.com/blog/2023/python-markdown-tailwind-best-buds
https://www.mattlayman.com/blog/2023/python-markdown-tailwind-best-buds
Matt Layman
Python, Markdown, and Tailwind: Best Buds!
You are rendering content with Python and want to show some Markdown, but you style your pages with Tailwind. With Tailwind's built-in reset, how can you style the tags of your rendered HTML that come from Markdown? This article shows how that can be done.
Вот библиотеки Python, которые фокусируются на различных аспектах полнофункциональной разработки; некоторые сосредоточены на разработке веб-приложений, некоторые — на серверной части, а третьи — на том и другом. https://dev.to/taipy/full-stack-toolbox-python-edition-20h2
DEV Community
Full-Stack Toolbox 🧰: Python🐍 Edition
TL;DR Here are Python libraries that focus on different aspects of full-stack development;...
Data Scientist 50-го уровня: библиотеки Python, которые нужно знать
Эта статья поможет вам понять различные инструменты науки о данных, используемые экспертами для визуализации данных, построения моделей и манипулирования данными.
https://www.kdnuggets.com/level-50-data-scientist-python-libraries-to-know
Эта статья поможет вам понять различные инструменты науки о данных, используемые экспертами для визуализации данных, построения моделей и манипулирования данными.
https://www.kdnuggets.com/level-50-data-scientist-python-libraries-to-know
KDnuggets
Level 50 Data Scientist: Python Libraries to Know
This article will help you understand the different tools of Data Science used by experts for Data Visualization, Model Building, and Data Manipulation.
Самый быстрый способ чтения Excel на Python
Чтение 500 тыс. строк менее чем за 4 секунды
https://hakibenita.com/fast-excel-python
Чтение 500 тыс. строк менее чем за 4 секунды
https://hakibenita.com/fast-excel-python
Hakibenita
Fastest Way to Read Excel in Python
Reading 500K rows in less than 4 seconds
🐍 «Python для инженеров» — старт курса 15 января!
Что смогли автоматизировать с Python наши студенты:
🔥 Автоматизация изменения конфигурации сервера, экономящая 23 часа в месяц и повышающая лояльность клиентов за быстроту обработки запросов — Данил Бахаев, DevOps-инженер в X5 Group.
🔥 Инструмент для анализа и отключения холостых ресурсов, позволяющий сократить расходы на 40-50% или около 12 миллионов рублей в год — Артем Чекунов, Senior DevOps Engineer в Chartboost.
Подробно со всеми кейсами вы можете ознакомиться на странице курса. Присоединяйтесь, чтобы упростить и ускорить процессы в своих проектах!
Изучить программу и зарегистрироваться
🎁 А для тех, кто хочет всегда быть в курсе событий и постоянно учиться новому, мы создали бесплатный чат-бот. Вас ждут live-coding стримы, статьи и кейсы по Python — будет интересно!
[Перевод] NumPy: оттачивайте навыки Data Science на практике.
В этой статье мы рассмотрим ряд различных упражнений, используя библиотеку NumPy (и сравним с тем, как мы бы реализовали их без неё). В самом конце статьи я приведу ряд упражнений.
Читать далееhttps://habr.com/ru/articles/784978
В этой статье мы рассмотрим ряд различных упражнений, используя библиотеку NumPy (и сравним с тем, как мы бы реализовали их без неё). В самом конце статьи я приведу ряд упражнений.
Читать далееhttps://habr.com/ru/articles/784978
Освоение асинхронного программирования на Python: подробное руководство
https://blog.devgenius.io/mastering-asynchronous-programming-in-python-a-comprehensive-guide-ef1e8e5b35db
https://blog.devgenius.io/mastering-asynchronous-programming-in-python-a-comprehensive-guide-ef1e8e5b35db
Medium
Mastering Asynchronous Programming in Python: A Comprehensive Guide
In the ever-evolving landscape of software development, efficiency and performance are paramount. Python, known for its simplicity and…
Pandas vs. Polars: сравнительный анализ библиотек фреймов данных Python
Углубленный анализ их синтаксиса, скорости и удобства использования. Какой из них лучше всего использовать при работе с данными?
https://www.kdnuggets.com/pandas-vs-polars-a-comparative-analysis-of-python-dataframe-libraries
Освоение виртуальных сред Python: полное руководство по venv, Docker и защите вашего кода
https://snyk.io/blog/mastering-python-virtual-environments
Углубленный анализ их синтаксиса, скорости и удобства использования. Какой из них лучше всего использовать при работе с данными?
https://www.kdnuggets.com/pandas-vs-polars-a-comparative-analysis-of-python-dataframe-libraries
Освоение виртуальных сред Python: полное руководство по venv, Docker и защите вашего кода
https://snyk.io/blog/mastering-python-virtual-environments
KDnuggets
Pandas vs. Polars: A Comparative Analysis of Python’s Dataframe Libraries
An in-depth analysis of their syntax, speed, and usability. Which one is the best to use when working with data?
Вот 45 упражнений Python с циклами (for, while), операторами f-else и функцией range() , а также их решения. Каждое упражнение сопровождается кратким описанием проблемы и решением, использующим упомянутые конструкции.
https://www.techbeamers.com/python-exercises-on-loops-conditions-range
https://www.techbeamers.com/python-exercises-on-loops-conditions-range
TechBeamers
Top 45 Python Exercises on Loops, Conditions, and Range() Function
Practice with 45 Python exercises on loops (for, while), if-else statements, and the range() function, along with their solutions.
Использование перехватчиков перед фиксацией упрощает жизнь при разработке программного обеспечения.
https://itnext.io/using-pre-commit-hooks-makes-software-development-life-easier-ef962827aa96
https://itnext.io/using-pre-commit-hooks-makes-software-development-life-easier-ef962827aa96
Medium
Using pre-commit hooks makes software development life easier
Pull requests, you either love and see that they do provide benefits in the way of working. Or you dislike them and see no purpose in them…