Прошлые события
30.12.2024 Для анализа данных о системе из прошлой статьи нужно отфильтровать всё лишнее с помощью регулярных выражений.
26.12.2024
В качестве пробного приложения я пробую container runtime. Такое приложение сразу порождает кучу практичных вопросов. Например, вопрос подходящего ядра Linux. Чтобы узнать его версию, нужно быстро опросить систему, для этого я добавил кусочек библиотеки sysinfo. Есть и другой способ узнать версию ядра и тип ОС: uname -a && cat /etc/issue. Для этих целей можно запустить команду в STDIN поток ОС.
25.12.2024 Сегодня день посвящён работе с ошибками в Rust. У меня ранее уже была статья об этом, пора в её неё добавить деталей, а также разобрать специализированную библиотеку Anyhow для упрощения работы с ошибками.
24.12.2024 Механизм логгирования и трассировки позволяет отслеживать работу приложения максимально плотно. Есть несколько инструментов для сбора логов, но наиболее эффективный из них tokio tracing, так как корректно обрабатывает трассировку потоков многопоточных и многоканальных приложений. Разбор работы с ним теперь в статье про tracing. Общий посыл в том, что можно писать лог с функций любым логгером, и это вполне подходит - до тех пор, пока не начать писать многопоточное, многоканальное приложение. Как только появляется вязанка потоков, каждый из которых создаёт события, типовой логгер начинает сбоить, т.к лог события с одного потока перекрывает лог с другого потока. И вот, чтобы корректно с этим работать, логгер уже не пишет просто события, а создаёт “промежуток потоковой трассы событий”, т.е набор событий в контексте работы каждого потока, при этом запись этих событий должна быть как неблокирующее поток вывода действие, и отправляться оно должно необязательно в файл, а есть поддержка сразу отправки в SIEM, анализатор типа Datadog и т.д. в режиме дозаписи (rolling). Т.е логгер одновременно делает трассировку, отдачу телеметрии - с заворачиванием в стандарт OpenTelemetry по желанию, и многопоточную передачу этих данных в один или несколько приёмников: одновременно в файл с ротацией, SIEM, облако и т.д. Круто же!
23.12.2024 Долго я не понимал прелести работы библиотеки Rust clap по работе с аргументами командной строки. А потом как понял! Всему виной громоздкие документация и примеры. Начинать надо с малого, что я и сделал в своей статье про clap.
21.12.2024 Наконец-то я залезаю в многопоточность приложений. Тема непростая, интересная. Я добавил статью про работу с процессорными потоками в Rust, буду дополнять её далее.
19.12.2024 Немного обновил я данные там и сям:
- В Rust поднял тему сериализации-десериализации с библиотекой Serde
- Скрипт скачивания Kaspersky Container Security из корп. репозитория Harbor
- Полезная утилита tokei для подсчёта строк кода на Rust и других языках
02.12.2024 Наконец-то, массовый апдейт сайта! После обновления движка Hugo у меня были проблемы с занесением сюда новых заметок, но теперь это в прошлом.
- Новый раздел Rust Cargo
- Примеры unit-тестов
- Пример получения списка файлов с каноничными именами
- Новый раздел eBPF File Mon
- Новый раздел про основы контейнеров
- Статья про настройку Obsidian
- Статья про Kubernetes Security
06.08.2024 Я делаю новый подход к снаряду с Kubernetes. Попутно я заметил, что не сделал заметок по пространствам имён - исправляю этот недочёт.
24.04.2024 Недавно я разбирался с хабом для умного дома на базе OpenWRT и озадачился кросс-компиляцией утилит под него. А следом у меня возник вопрос о кросс-компиляции проектов Rust. Оказалось, для этого есть модуль Cross, который через контейнер Docker/Podman +Wine способен скомпилировать код на моём макбуке под Windows. Заметку об этом я добавил по ссылке.
30.03.2024
Множество мелких добавок-правок не попадают в новости, но что-то я периодически дописываю на портале. Из недавнего-интересного - чтение файлов в Rust. Чтение в строку, через буфер, в вектор из байт для бинарных файлов. В перспективе я думаю разобрать парсинг спец-форматов: XML, JSON, YAML, TOML.
03.02.2024
Ещё один элемент стиля Rust - повсеместное использование замыканий в самых разных хитрых комбинациях. Это сокращает количество кода, при этом сохраняет скорость выполнения. Прицепом я добавил в тему словарей инициализацию со значениями. В Python аналог defaultdict был полезной штукой, местный аналог в Rust тоже нужно было записать.
01.02.2024 В процессе решения задачек я потихоньку прихожу к пониманию, что такое “смена мышления” при работе с Rust относительно других языков: это упор на типы данных и конструкции языка заместо привычных общепринятых. Например, использовать перечисления (enum) и match всегда и везде заместо if-else. Попутно я дополнил статью о векторах темой перевода туда-обратно в строки. Для составных типов данных это наиболее актуальный вопрос: как собрать в такой тип данные, а потом отдать данные назад в правильном формате.
28.01.2024 Этот год я решил вернуться к Rust после перерыва и научиться решать задачки с ним в codewars. В процессе я потихоньку осваиваю расширенную библиотеку, например, модуль itertools тут есть, как и в Python, даёт возможность делать полезные преобразования и сортировку строк.
11.11.2023 Неожиданное открытие на днях: давно я искал RAW-редактор фото а-ля Lightroom, но при этом бесплатный-открытый, и чтобы при этом умел работать с масками, а вдобавок делать много проб под кривые коррекции в LAB. И такой оказался у меня прямо под носом - Darktable. Я иногда им пользовался, но совершенно проморгал наличие там мощного механизма работы с масками, а вдобавок мощнейших функций шумодава и микроконтраста. Навёрстываю упущенное, создал раздел в заметках и конспект по шумодаву с масками
09.11.2023 Подборка полезных/интересных фреймворков для Rust:
- Bevy - игровой 2D и 3D движок на Rust;
- Сравнение веб-фреймворков;
- Serde - конвертация между структурами Rust и строками JSON;
- Tokio - асинхронность, распараллеливание потоков данных;
- Nannou - креативное программирование, рисование фрактальных форм;
- Polars - аналог Pandas, обработка массивов данных;
20.10.2023 Формат “стены” - небольших новостей-блогов - мне показался более интересным для главной страницы сайта. В связи с этим я буду тут писать небольшие заметки, которые далее перемещать в новый раздел новостей сайта.
Позавчера мы обсудили с коллегами от Kaspersky Labs, VK Cloud и Positive Technologies перспективные технологии на рынке ИБ. Особый упор на ePBF и WebAssembly. Ссылку на стрим я добавил в список своих видео выступлений
Более ранние обновления Раздел новостей сайта
06.10.2023- Добавил скалярные переменные Rust
- Добавил популярные строковые методы Rust
- Статья с набором ссылок на OWASP/CVE исследования
- Дополнил список своих видео выступлений
- Статья k8s Ingress
- Статья k8s Taints & Tolerations
- Статья k8s Node Selectors & Affinity
- Добавил варианты настройки Multi-Container Pods
- Статья k8s Pod Readiness и Liveness Probes
- Статья по задачам k8s Jobs
06.09.2023 Статья контексты безопасности в Pod
31.08.2023 Статья k8s Pod Commands, Env Variables
29.08.2023- Обновил статьи по k8s Deployments, Services, Pods - добавил ссылки, императивные команды, дополнил описания
- Обновил статью до k8s Replica Sets + Deployments
- Добавил статью по k8s Services
27.08.2023 Статья k8s Replica Sets
25.08.2023 Статья k8s Pods
02.05.2023 Раздел о библиотеках Rust
27.04.2023 Editing VR360 video in Davinci Resolve
25.04.2023- Обновление Rust Hashmap
- Обновление Rust Strings
- Обновление Highlights Correction in DaVinci Resolve
04.04.2023 k8s
16.03.2023 Rust Traits
06.03.2023 Rust Generics
28.02.2023 Обновление Rust Strings
17.02.2023 Handling errors in Rust
15.02.2023 Rust Hashmap
13.02.2023- Rust Modules
- Обновление Rust Vectors
- Обновление Rust strings
- Rust Constants
- Rust Enums
- Обновление Rust strings
01.02.2023 Rust structs
30.01.2023 29.01.2023- Статьи по инструментам в DaVinci Resolve Color Room
- Rust flow control
20.01.2023 Rust Variables
13.01.2023 12.01.2023- Статьи по DaVinci Resolve
- Git
- Установка Ansible
11.01.2023 Начало.