Раздел: Pro

Pro page

Music Player (sqlite3)

ID 7193 · created 2026-10-28 10:14:17 · updated 2026-11-03 00:26:52

(если у вас хранилище 100K+ треков) ``` import tkinter as tk from tkinter import messagebox, filedialog import sqlite3 import os import subprocess from pathlib import Path import unicodedata import re from urllib.parse import quote # pyinstaller --noconfirm --onefile --windowed --name MusicPlay m...

Pro page

rename youtube labels recursive catalogs OLD

ID 295 · created 2025-12-03 10:01:11 · updated 2026-10-30 12:46:57

``` $ cat ren.pl #!/usr/bin/env perl use strict; use warnings; use File::Basename; my @files = glob('*.mp3 *.m4a'); my %seen; for my $old (@files) { my ($name, $dir, $ext) = fileparse($old, qr/\.[^.]*/); my $new = $name; # чистка $new =~ s/\s*\([^)]*\)\s*/ /g; $new =~ s/\s*...

Pro page

В утилите **lnav** (Log File Navigator) фильтрация логов выполняется в реальном времени. Основной инструмент для этого — использование **регулярных выражений (PCRE)**.

ID 7189 · created 2026-10-26 09:49:59 · updated 2026-10-26 10:08:57

Все команды фильтрации вводятся через двоеточие (`:`). --- ### 1. Основные команды фильтрации * **Скрыть строки по шаблону (Исключение):** ```text :filter-out REGEX ``` *Пример:* Исключить все логи уровня DEBUG: ```text :filter-out DEBUG ``` * **Показать ТОЛЬКО строки по шаблону (Включение)...

Pro page

book ~]# inxi -Fazy

ID 351 · created 2026-03-30 11:19:43 · updated 2026-10-24 23:49:10

``` System: Kernel: 6.12.77-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1 clocksource: tsc avail: hpet,acpi_pm parameters: BOOT_IMAGE=/boot/vmlinuz-6.12-x86_64 root=UUID=945612fb-3bcb-4f73-909f-90543efe40bb rw quiet apparmor=1 security=apparmor udev.log_priority=3 Conso...

Pro page

Rust появился в ядре Linux

ID 7166 · created 2026-10-07 07:36:36 · updated 2026-10-07 07:37:03

не просто как дань моде, а как ответ на **самую болезненную и дорогую проблему** системного программирования — критические ошибки работы с памятью (memory safety errors). Главные причины, почему Линус Торвальдс и команда мейнтейнеров ядра пошли на этот шаг: --- ### 1. Борьба с «тихими» уязвимостя...

Pro page

# logwatch

ID 7160 · created 2026-10-02 19:55:43 · updated 2026-10-05 09:38:47

**`logwatch` — легкая системная утилита на C для моментального реагирования на инциденты в логах Linux.** Она непрерывно отслеживает свежие логи по маске (в режиме `tail -f`) и при поиске ключевых слов мгновенно запускает заданный обработчик: отправляет Webhook, записывает алерт или выполняет скрипт...

Pro page

**FTS5 (Full-Text Search 5)** — это расширение SQLite3,

ID 7150 · created 2026-09-29 07:38:22 · updated 2026-09-29 07:38:22

предоставляющее функционал полнотекстового поиска. В отличие от стандартных операторов `LIKE` или `REGEXP`, которые сканируют всю таблицу построчно (O(N)), FTS5 строит **инвертированный индекс** (O(log N)), позволяя находить вхождения слов в миллионах строк за доли миллисекунд. --- ## 1. Архитекту...

Pro page

Modern DX (Developer Experience) в лице VS Code

ID 7145 · created 2026-09-26 15:47:36 · updated 2026-09-26 15:47:36

и его экосистемы действительно выстраивает жесткий конвейер. Вот как этот «конвейер» работает изнутри: * **Интеллектуальный костыль (LSP и Copilot):** Современный редактор подсказывает каждую букву, подсвечивает ошибки на лету и генерирует куски кода. В итоге разработчик перестает держать архитект...

Pro page

# Netfilter Conntrack Connection Logger

ID 7130 · created 2026-09-21 09:35:16 · updated 2026-09-21 13:21:03

Легковесный и полностью автономный регистратор сетевых соединений для Linux, написанный на GNU C. Программа перехватывает события таблицы сопряжений ядра Linux (`conntrack`) через низкоуровневый интерфейс **Netlink Sockets** (`NETLINK_NETFILTER`), благодаря чему фиксирует создание (`NEW`) и закрыт...

Pro page

Чтобы установить **gcc** на Red Hat Enterprise Linux (RHEL),

ID 7131 · created 2026-09-21 12:53:46 · updated 2026-09-21 12:54:22

### RHEL 8 и RHEL 9 (рекомендуемый способ) Начиная с RHEL 8, рекомендуемым способом установки инструментов разработки является пакетная группа **Development Tools** через менеджер `dnf`: ```bash sudo dnf groupinstall "Development Tools" ``` *Эта команда установит `gcc`, `g++`, `make` и другие не...

Pro page

**Если сервер полностью не отвечает на TCP-уровне**

ID 7124 · created 2026-09-18 06:59:47 · updated 2026-09-18 07:29:13

(порт закрыт, RST, или полный timeout на SYN) — современные браузеры (Chrome, Firefox, Edge, Safari) действительно перебирают адреса из списка A/AAAA записей автоматически. Это заложено в самой логике Happy Eyeballs (RFC 8305/6555), изначально созданной для выбора между IPv4/IPv6, но она же использу...

Pro page

**Заметка: самодостаточные бинарники promtool / amtool / promcheck**

ID 7120 · created 2026-09-15 07:18:20 · updated 2026-09-15 07:18:20

### Для чего Скрипт `install-promcheck.sh` ставит в систему (обычно `/usr/local/bin`) три утилиты **без Docker и без зависимостей**: - `promtool` — проверка конфигов Prometheus (`prometheus.yml`, правила, записи). - `amtool` — проверка конфигов Alertmanager. - `promcheck` — простая обёртка над ними...

Pro page

Для проверки конфигураций Prometheus используются официальные утилиты от команды разработчиков.

ID 7118 · created 2026-09-14 11:47:22 · updated 2026-09-15 06:26:33

В зависимости от задачи (проверка основного файла `prometheus.yml` или файлов с правилами alerts/rules), вам понадобятся **`promtool`** или готовые **linters/CI-интеграции**. `promtool check config` и `check rules` — не просто YAML-парсеры, они гоняют конфиг через ту же логику валидации, что и сам ...

Pro page

Для MariaDB 10.11 ключевые метрики в Grafana делятся на 5 основных групп:

ID 7119 · created 2026-09-14 14:20:37 · updated 2026-09-14 14:24:54

доступность и нагрузка, использование ресурсов, работа InnoDB, медленные запросы и блокировки. Ниже приведены главные метрики Prometheus (`mysqld_exporter`), которые обязательно нужно выводить на дашборд, и их критические пороги. --- ### 1. Доступность и подключения * **`mysql_up`** — статус дос...

Pro page

#WiFi sensor & reaction

ID 262 · created 2025-10-25 09:34:33 · updated 2026-08-28 05:51:22

( Adafruit CircuitPython 10.0.3 on 2025-10-17; Waveshare ESP32-S3-Zero with ESP32S3 ) ``` ----- sensor (test:OK) -------- $ cat code.py import time import board import analogio import wifi import gc # Включаем сборщик мусора gc.enable() SSID_PREFIX = "sensor1:" PASSWORD = "12345678" analog_in = ...

Pro page

Эволюция asyncio:

ID 7026 · created 2026-08-08 21:08:26 · updated 2026-08-16 21:02:48

от граблей с контекстом к структурированной асинхронности Модуль `asyncio` появился в Python 3.4 как экспериментальная попытка принести асинхронный ввод-вывод в стандартную библиотеку. Однако путь от первых версий до Python 3.12+ был вымощен постоянно ломающимися контрактами, неявными состояниями и...

Pro page

Чтобы удобно анализировать изменения сетевой доступности во времени, переход на SQLite — отличное решение.

ID 7024 · created 2026-08-08 09:41:56 · updated 2026-08-09 08:37:07

### Как лучше организовать структуру БД для последующего анализа? Для удобных отчетов в будущем (например, построения графиков доступности, расчета Uptime %, поиска «мигающих» сервисов) оптимально разделить базу на **две таблицы**: 1. **`runs` (История запусков):** Фиксирует сам факт запуска скрип...

Pro page

### Скрипт параллельной проверки доступности

ID 7023 · created 2026-08-08 09:21:30 · updated 2026-08-08 09:21:30

version 2 ```python #!/usr/bin/env python3 """ Скрипт параллельной проверки доступности сетевых узлов и TCP-портов. Выполняет ICMP Ping (для хостов без портов) или TCP Connect (для хостов с портами). Выводит результат в формате CSV в stdout (удобно для экспорта в Excel). """ import asyncio import c...

Pro page

hexdump "в одну строку"

ID 235 · created 2025-10-10 09:30:44 · updated 2026-07-20 19:54:54

``` #(bytes) $ cat test.bin | hexdump -ve '/1 "%02x"' ### обратная функция: cat hexstring.txt | xxd -r -p > output.bin #(words) $ cat test.bin | hexdump -ve '/2 "%04x"' ``` --------- Символы формата: /1 — говорит, что читать и форматировать следует по одному байту, /2 — по два байта как единое ...

Pro page

Ansible: node_exporter

ID 6955 · created 2026-07-16 14:34:34 · updated 2026-07-20 12:04:52

поднимает systemd‑сервис node_exporter с прослушкой 0.0.0.0:9100; включает textfile collector через --collector.textfile.directory=/var/lib/node_exporter/textfile_collector; открывает порт 9100 в firewalld; кладёт тестовый .prom для проверки, что textfile collector реально работает. Переменные n...