🙄Разминка для ума!
Треугольник Серпинского, интересная фигура которую построить достаточно просто.
Алгоритм такой:
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
👩💻 Ansible для начинающих + практический опыт.
• Бесплатный мини-курс, который знакомит любого абсолютного новичка в DevOps с основными моментами Ansible с помощью простых практических упражнений, которые вы можете практиковать прямо в браузере. Всего будет 38 уроков, 2 часа 34 минуты видео и 63 теста. Программа следующая:
• Введение в Ansible:
➡Обзор Ansible;
➡Демо: установка среды;
➡Демо: установка Ansible;
➡Знакомство с YAML;
➡Демо: наши упражнения;
➡Lab: YAML;
➡Тест: Introduction.
• Основные понятия Ansible:
➡Inventory;
➡Lab: Inventory;
➡Тест: Inventory;
➡Демо: особенности Windows;
➡Playbooks;
➡Lab: Playbooks;
➡Тест: Playbooks;
➡Демо: playbooks;
➡Modules;
➡Lab: Modules;
➡Variables;
➡Lab: Variables;
➡Тест: Variables;
➡Демо: Atom IDE.
• Механика Ansible:
➡Conditionals;
➡Lab: Conditionals;
➡Loops;
➡Lab: Loops;
➡Тест: Loops;
➡Roles;
➡Демо: roles;
➡Тест: Roles;
➡О приложении;
➡Lab: App Deploy;
➡Демо: развертывание приложения.
➡️https://stepik.org/course/123806
#Ansible#DevOps
💬 Ansible + Grafana Loki: Настраиваем отправку уведомлении в чат после логина на сервер по SSH.
• В этой статье мы развёрнем через Terraform несколько серверов в Yandex.Cloud, а затем при помощи Ansible настроим необходимый софт на каждом сервере. У нас будет основной сервер, где будет развёрнут Loki (система агрегирования логов) и Grafana (инструмент для визуализации данных), на серверах, которые мы хотим отслеживать, будет установлен Promtail (агент для сбора и отправки логов). Мы разберёмся с тем, как отслеживать входы на сервер, а затем в удобном формате отправлять об этом уведомления в чат Telegram с помощью вышеуказанных сервисов.
• Помимо этого, вы можете использовать Grafana не только для отслеживания коннектов к вашим серверам. Вы также можете развернуть Node-Exporter(-s)+Prometheus для мониторинга, чтобы отслеживать производительность серверов.
➡️https://habr.com/ru/articles/795855/
#Ansible#SSH#ИБ#DevOps
#jinja#ansible#ansible_collection#collection#devsec#hacktoberfest#hardening#linux#mysql_hardening#nginx#nginx_hardening#os_hardening#playbook#protection#role#ssh_hardening#sysctl
devsec.hardening is an Ansible collection that battle-tests security hardening for Linux (CentOS, AlmaLinux, Rocky, Debian, Ubuntu, etc.), MySQL, Nginx, and SSH, matching DevSec Inspec baselines. Install via `ansible-galaxy collection install devsec.hardening` and apply roles like os_hardening easily. It saves you time by automating secure configs across servers, cuts manual work, boosts compliance, and shrinks attack surfaces for safer systems.
https://github.com/dev-sec/ansible-collection-hardening