renameat2()mv уже использует атомарный rename() в пределах одной файловой системы, но renameat2() даёт дополнительные режимы: запрет перезаписи, атомарный обмен двух путей и безопасную публикацию подготовленного результата.Флаг
RENAME_NOREPLACE заставляет ядро завершить операцию ошибкой, если целевой файл уже существует. Это полезно для генераторов артефактов, lock-файлов и одноразовых результатов автоматизации.#define _GNU_SOURCE
#include <fcntl.h>
#include <stdio.h>
#include <sys/syscall.h>
#include <linux/fs.h>
#include <unistd.h>
int main(void)
{
int rc = syscall(
SYS_renameat2,
AT_FDCWD, "/tmp/result.new",
AT_FDCWD, "/tmp/result",
RENAME_NOREPLACE
);
if (rc == -1) {
perror("renameat2");
return 1;
}
return
0;
}
📝 Атомарно меняем две версии
местами
RENAME_EXCHANGE позволяет одним системным вызовом поменять местами два существующих пути. Читатели не увидят состояния, в котором один путь уже изменён, а второй ещё нет. #define _GNU_SOURCE
#include <fcntl.h>
#include <stdio.h>
#include <sys/syscall.h>
#include <linux/fs.h>
#include <unistd.h>
int main(void)
{
if (syscall(
SYS_renameat2,
AT_FDCWD, "/opt/app/current",
AT_FDCWD, "/opt/app/previous",
RENAME_EXCHANGE
) == -1) {
perror("renameat2");
return 1;
}
И:
return 0;
}
📝 Переключаем версии приложения одним действием
Этот механизм можно использовать в deploy: новая версия заранее разворачивается в отдельный каталог, после чего симлинки или каталоги версий можно атомарно переключать без окна, когда приложение видит неполный набор файлов.
#!/usr/bin/env bash
set -euo pipefail
release="/opt/app/releases/$1"
current="/opt/app/current"
previous="/opt/app/previous"
test -x "$release/bin/app"
mv "$current" "$previous"
mv "$release" "$current"
stemctl restart app.service
❗️ renameat2() полезен там, где важна атомарность операций с файловой системой: деплой, генерация конфигураций, ротация артефактов и переключение версий. Ядро выполняет операцию целиком, поэтому другие процессы не наблюдают промежуточного состояния.
#linux #devops #полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
OpenAppUI
3.3 MB
OpenAppUI - программа для Linux (Debian/Ubuntu)-based x64(amd64/Intel64/x64), которая запускает OpenWeb-UI в WebView на CPU Renderering. Полезно, чтобы не таскать тяжёлый браузер.
Pre-trained за 2,5 часа. Чистый PyTorch.
4,8 миллионов параметров расплзнают картинки с точностью ~47% до 5 цифр на изображении.
Следующие обновления OCR: улучшение точности, добавлкние распознавания текста, символов и увеличение количества параметров.
GPT-подобная архитектура.
Ссылка: https://huggingface.co/Fantominsight/Polina-Lumen-NumDetective
Сайт: https://lab.fantominsight.com
Please open Telegram to view this post
VIEW IN TELEGRAM
Он позволяет подписывать и группировать устройства, добавлять заметки и отслеживать их в нескольких сетях через веб-панель или CLI. Поддерживает интеграцию с Tailscale, JSON-вывод, отмену сканирования и работает на Linux, macOS и Windows без внешних зависимостей.
#утилиты #сети #мониторинг
Please open Telegram to view this post
VIEW IN TELEGRAM
Официальный сайт Fantominsight MeWarLab: теперь отдельный и незакисимый ресурс!
URL: https://lab.fantominsight.com/
URL: https://lab.fantominsight.com/
Polina Lumen 15B Instruct:
Training(обучение): epoch(эпоха) 52 of 80.
acc=0.73, loss=0.83.
PyTorch + Transformers :: Float16.
Training(обучение): epoch(эпоха) 52 of 80.
acc=0.73, loss=0.83.
PyTorch + Transformers :: Float16.
Красота! Вторая эпоха зашла как по маслу:
Train Loss: упал с 2.02 до 1.6148
Train Acc: поднялся с 32.6% до 43.53%
Val Loss: снизился с 1.5090 до 1.3614
– Val Acc: уверенно преодолел экватор — 51.80%!
И главное — обращу внимание на learning rate: он у мегя плавно разогревается (lr поднялся до 2.34e-04), шедулер отрабатывает корректно. Динамика валидации охуенная, сеть не просто зазубривает трейн, а реально учит геометрические фичи и взаимосвязи токенов.
Сейчас на 3-й эпохе (E3/6) после выхода LR на пик должен пойти самый жирный буст по точности. Гоняю дальше, процесс идет стабильно как часы!
Train Loss: упал с 2.02 до 1.6148
Train Acc: поднялся с 32.6% до 43.53%
Val Loss: снизился с 1.5090 до 1.3614
– Val Acc: уверенно преодолел экватор — 51.80%!
И главное — обращу внимание на learning rate: он у мегя плавно разогревается (lr поднялся до 2.34e-04), шедулер отрабатывает корректно. Динамика валидации охуенная, сеть не просто зазубривает трейн, а реально учит геометрические фичи и взаимосвязи токенов.
Сейчас на 3-й эпохе (E3/6) после выхода LR на пик должен пойти самый жирный буст по точности. Гоняю дальше, процесс идет стабильно как часы!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Linux-6.8.0-134-generic | ᵖˡᵉᵈ | #vless_vision
Вот вам наше детище: https://huggingface.co/Fantominsight/Polina-Lumen-OCR
И на всю модель сегодня (OCR) я потратил 4 часа 50 минут.
Обучение Polina Lumen 15B Instruct завершено!
Проводим бенчмарки.
Проводим бенчмарки.