![Непрерывная интеграция Python сервиса с помощью git](https://res.cloudinary.com/dm3m076ji/image/upload/v1626517783/media/lexover_blog/python_git_e6nwwu.png)
Данная статья является продолжнием статьи о создании сервиса на Pyhon. Итак мы реализовали некоторый сервис который запускается и в фоне выполняет некоторые задачи (следит за изменением цен на очредной девайс, ведет незатейливую переписку в Telegram, и т.п.). Мы разместили его на нашем сервере (например на RaspberyPi) где он и выполняет рутинные задачи. Но сервис должен разваться, мы вносим измене ...
Читать далее...![Создание демона Python с использованием Systemd](https://res.cloudinary.com/dm3m076ji/image/upload/v1613066459/media/lexover_blog/ptyhon-threading_p1dvni.png)
Недавно у меня возникла задача создать демон (фоновое приложение) реализованный на Python в системе Linux использующей Systemd. В поисках современного решения и родилась данная статья. Ранее для реализации демона выполнялась "демонизация" приложения Python, зачастую с помощью библиотеки python-daemon. Даже была создана спецификация pep-3143 для реализации демонов. Но на текущий момент времени с ис ...
Читать далее...![Профилирование приложений Python](https://res.cloudinary.com/dm3m076ji/image/upload/v1620132334/media/lexover_blog/python_profile_b6a3xc.png)
При разработке приложений периодически у разработчиков возникает вопрос - по какой причине реализованный код работает медленно, и где теряетсются драгоценные время и ресурсы? Здесь на помощь приходят инструменты профилирования. В текущем посте рассмотрим возможности профилирования приложений реализованных на Python с помощью различных инструментов профилирования, а также рассмотрим средства позвол ...
Читать далее...![Тестируем Django с pytest.](https://res.cloudinary.com/dm3m076ji/image/upload/v1615214685/media/lexover_blog/pytest_djnango_mqmrpr.png)
В текущем посте мы рассмотрим как производится тестирование приложения Django с помощью фреймворка pytest, рассмотрим механизмы тестирования, дополнительные модули и плагины, которые значительно упрощают данный процесс, позволяют выполнить параллельный запуск тестов, проанализировать покрытие кода тестами. Данная статья основана на великолепной статье Дмитрия Чувардинского Testing Your Django App ...
Читать далее...![Технология RPC и ее реализацию с помощью Rabbit MQ и Pika.](https://res.cloudinary.com/dm3m076ji/image/upload/v1615120563/media/lexover_blog/RabbitMQ_RPC_vdb8nw.png)
В данном посте мы построим используя RabbitMQ распределенную RPC систему: клиент и массштабируемый RPC сервер. В качестве нагрузки используем медленный RPC сервис выполняющий рассчет числа Фибоначи. Технология RPC и ее применение. Цитируя Википедию >Удалённый вызов процедур (от англ. Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедур ...
Читать далее...![Докеризация Django c PostrgeSQL, Gunicorn и Nginx.](https://res.cloudinary.com/dm3m076ji/image/upload/v1613595228/media/lexover_blog/docker-django_k0wuo4.png)
Перевод статьи Michael Herman: Dockerizing Django with Postgres, Gunicorn, and Nginx. Это пошаговое руководство, в котором подробно описано, как настроить Django в связке с PostgreSQL для работы в контейнере Docker. Для производственных сред мы добавим Nginx и Gunicorn. Мы также рассмотрим, как обслуживать статические и мультимедийные файлы Django через Nginx. >Серия статей о Django на Docker: > ...
Читать далее...![Разгоняем Python с помощью конкурентности параллелизма и asyncio.](https://res.cloudinary.com/dm3m076ji/image/upload/v1613066459/media/lexover_blog/ptyhon-threading_p1dvni.png)
Перевод статьи Jace Medlin: Speeding up python with concurrency parallelism and asyncio. Есть много причин, по которым ваши приложения могут работать медленно. Иногда это происходит из-за плохой алгоритмической конструкции или неправильного выбора структуры данных. Однако иногда это происходит из-за неподконтрольных нам сил, таких как аппаратные ограничения или особенности работы в сети. Вот где ...
Читать далее...![Как запускать периодические задачи в Celery](https://res.cloudinary.com/dm3m076ji/image/upload/v1612445983/media/lexover_blog/celery-periodic-tasks_ufg8wn.jpg)
Перевод статьи Antonio Di Mariano: How to run periodic tasks in Celery. Недавно я столкнулся с необходимостью реализовать серию задач (tasks), которые будут запускаться периодически для выполнения некоторых заданий. Такой сценарий хорошо подходит для crontab, но я решил попробовать Celery и использовать Celery Beat. Назначение и преимущества Celery Прежде всего, давайте кратко рассмотрим, что т ...
Читать далее...![Построение графиков в Vue.js с использованием D3.js.](https://res.cloudinary.com/dm3m076ji/image/upload/v1609921594/media/lexover_blog/vue-d3_iropqk.png)
D3.js - библиотека для построения динамической интерактивной визуализации данных, используя SVG, HTML5 и CSS. D3 - сокращение Data-Driven Documents, что в переводе на русский - "документ управляемый данными". Нам предстоит создать компонент Vue.js, который будет динамически отображать данные в виде графика "японских свечей", при этом следует учесть, что как D3.js так и Vue.js выполняют манипуляции ...
Читать далее...![Интерактивная карта в Vue.js.](https://res.cloudinary.com/dm3m076ji/image/upload/v1607885315/media/lexover_blog/vue-leaflet_hpvyxa.png)
Есть задача разместить в приложении Vue.js интерактивную карту OpenStreet. Чем мы и займемся. Для работы нам потребуется установленный Vue.js. Библиотека для отображения карт, в качестве которой мы используем JS библиотеку Leaflet. И сервис с которого мы будем получать карты для отображения, в качестве которого мы используем Mapbox. А теперь обо всем по порядку: Создадим проект vue с помощью vue ...
Читать далее...