Python slots в Python В этой статье рассматривается механизм slots в Python — незаменимый инструмент для тех, кто работает с большим количеством объектов. Вместо привычного хранения атрибутов в словаре dict, slots выделяет для каждого атрибута строго определенное место в памяти, что позволяет сократить использование ресурсов и ускорить работу программы. Однако, это накладывает определенные ограничения, например, нельзя добавлять новые атрибуты на лету. Примеры из практики показывают, как slots помогает экономить память в высоконагруженных системах и данных,…
Крошечный веб-сервер на ESP32 Удалённый доступ делает любые DIY-устройства удобнее и мобильнее — особенно если управлять ими можно через Wi‑Fi…
Препарируем слои образов Docker Технологии контейнеризации сейчас являются неотъемлемой частью процессов DevOps. Контейнеры активно используются в микросервисных архитектурах для изоляции отдельных микросервисов. Наиболее распространенным решением по контейнеризации на сегодняшний день является Docker, и именно о небезопасной работе с контейнерами Docker мы и будем сегодня говорить. Перейти к статье Выявляем атаки на DHCP с помощью Wireshark В сетевом трафике можно найти много всего интересного, главное знать, что искать. С помощью анализатора Wireshark можно находить всевозможные аномалии в трафике, ретрансмиты, некорректные…
Вызов защищенного API из iOS-приложения на Swift Пошаговое руководство по использованию OAuth 2.0 при доступе к защищенным API из iOS‑приложения на Swift с Auth0. Перейти к руководству…
Шаблоны проектирования для баз данных Существуют различные шаблоны проектирования облачных сервисов. Про тот же Sidecar или Ambassador, я думаю, слышали многие. Шаблоны предназначены для решения определенных задач и те два шаблона, о которых речь пойдет в сегодняшней статье, тоже нужны для конкретной задачи — работы с базами данных. СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона,…
Статья дополнена и обновлена 7.11.2024 Три столпа функционального программирования в Rust: map, filter и fold Представьте себе вот такую картину:…
Безопасность CI/CD Обычно, когда начинается разговор о DevSecOps, все сразу вспоминают о необходимости встраивать в конвейер SAST, DAST, SCA инструменты, проводить различные тесты на безопасность приложения и регулярно сканировать работающее в продуктивной среде решение. Но при этом не стоит забывать и о необходимости обеспечивать безопасность самого конвейера CI/CD. В сегодняшней статье мы рассмотрим обеспечение безопасности конвейера, построенного на основе Jenkins. Но сначала рассмотрим краткое описание этого решения, что Jenkins из себя представляет и для чего…