🙄Разминка для ума!
Треугольник Серпинского, интересная фигура которую построить достаточно просто.
Алгоритм такой:
1. создаём любые 3 точки на плоскости
2. из этих точек случайно выбираем любую, как начальную
3. случайно выбираем любую точку из этих же трёх точек как цель
4. перемещаемся в сторону цели на половину расстояния
5. повторяем бесконечно с пункта 3
Если сделать достаточно много итераций то вырисовывается интересная фигура. Треугольник, в который вписаны более мелкие треугольники. Это самый настоящий фрактал!
Я собрал пример построения такой фигуры на базе Qt.
🌎 Код можно посмотреть здесь.
С помощью paintEvent я рисую точки по озвученному алгоритму. Каждые 10 секунд либо по клику на виджете строится следующий треугольник.
Особенности примера:
🔸 Атрибут Qt.WA_OpaquePaintEvent позволяет сохранить то, что было нарисовано в прошлой итерации. Таким образом мы видим постепенное наполнение точек а не мелькающую одну точку.
🔸QTimer позволяет создавать отложенные вызовы один раз или с повторением через интервал.
🔸QColor.fromHsv() позволяет создать рандомный но предсказуемый цвет с помощью HSV схемы. Не слишком светлый и не слишком тёмный но всегда с разный. Рандомизации подвергается только смещение по цветовому кругу (Hue), яркость (Value) и насыщенность (Saturation) можно контролировать отдельно в своих пределах или оставить статичными. Обычный рандом цвета по RGB не даёт такой предсказуемый результат.
🔸 Каждый новый цикл с новым треугольником предварительно затемняет предыдущие через этот вызов
painter.fillRect(rec, QColor(0, 0, 0, 100))
То есть полупрозрачный цвет. Таким образом, чем старше треугольник, тем он темней.
Если сделать виджет фулскрин, то у нас получится некий ScreenSaver)))
🔸 Да, я знаю, что рисование в Qt не самый лучший способ сделать этот пример) Скорее всего самый НЕподходящий. Попробуйте сделать тоже самое но другими средствами.
#qt#source#tricks
• На хабре есть очень хороший лонгрид по Docker, в котором описаны механизмы контейнеризации + примеры, эксперименты и реализация. Подойдет новичкам, кто хотел погрузиться в данную тему.
• Краткое содержание:
➡Chroot как первый популярный механизм, с помощью которого можно изолировать процесс в контексте файловой системы;
➡Namespaces как механизм, представляющий собой прослойку между желанием процесса получить ресурс и самим ресурсом;
➡Cgroups как ещё один механизм изоляции процессов, но только уже в контексте физических ресурсов системы;
➡OverlayFS как способ экономить место за счёт хитрой работы с файловыми системами контейнеров. Самое главное, поняли почему Docker слоёный пирог :);
➡Стандарт OCI как вещь, на которой держится вся современная контейнерная инфраструктура и утилиту runC, являющуюся эталонной реализацией OCI.
➡Читать статью [33 min].
#Docker
#docker
🐳
Docker & Kubernetes: The Practical Guide
Learn Docker, Docker Compose, Multi-Container Projects, Deployment and all about Kubernetes from the ground up!
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
👣 Docker Escape.
• Очень крутой и содержательный урок (вебинар) про различные методы, которые злоумышленник может использовать для побега из контейнера Docker, а ещё мы разберем необходимые шаги для успешного побега на понятных примерах. Также обсудим причины возникновения таких уязвимостей и разберём, какие меры можно принять, чтобы предотвратить побег из контейнеров по следующим сценариям:
➡SYS_ADMIN;
➡SYS_PTRACE;
➡SYS_MODULE;
➡DAC_READ_SEARCH;
➡DAC_OVERRIDE;
➡docker soсket.
➡️https://youtu.be/biC3TO7OELY
➡️https://github.com/aleksey0xffd/docker-escape
#Docker
👩💻 Play with Docker — онлайн-сервис для практического знакомства с Docker.
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
➡️https://training.play-with-docker.com
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
👩💻 Play with Docker — онлайн-сервис для практического знакомства с Docker.
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
➡️https://training.play-with-docker.com
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
👩💻Attacking Docker.
• Статья включает в себя описание актуальных методов атак на Docker, описание различных уязвимостей и неправильных конфигураций, слабых мест в различных компонентах и другую полезную информацию:
- Privileged Container;
- Exposed Container APIs;
- Container Escape;
- Container Image Tampering;
- Insecure Container Configuration;
- Denial-of-Service (DoS);
- Kernel Vulnerabilities;
- Shared Kernel Exploitation;
- Insecure Container Orchestration;
- Insecure Container Images;
- References.
#Docker
👩💻 Docker guide.
• Ловите полезную и объемную (50 страниц) шпаргалку по Docker, которая содержит примеры различных команд и их пояснение.
• К слову, у авторов этого материала есть еще множество различных шпаргалок, в основном для разработчиков, но может быть кто-нибудь из Вас найдет для себя полезный материал: https://www.jsmastery.pro/resources?category=all
#Docker