Расскажу про реализованный исследовательский проект в области видеоаналитики, в рамках которого удалось собрать жизнеспособный прототип и найти ему практическое применение в индустрии спорта.
⚽️ Задача заключалась в разработке автоматизированной системы оценки качества исполнения каких-либо спортивных упражнений, элементов, снарядов. Для примера были взяты стандартные положения в футболе, а именно штрафные удары и пенальти.
🔎 Схема работы
🔹 На вход системы подаются короткие видео фрагменты эталонного и анализируемых записей ударов футболистов.
🔹
✔️ Детекцию мяча
✔️ Определение момента удара
✔️ Построение скелета игрока
🔹 Для каждого из направлений работы
🔹 Зафиксировав кадр момента удара и получив с него скелет с более чем 20 контрольными точкам,
🔹 На основе собранных характеристик по всем входным данным, выполняется сравнительный анализ качества исполнения стандартного положения с формированием итогового отчета, отметкой расхождений и рекомендациями по внесению корректировок в технику.
🙎♂️ Для кого
Инструмент будет полезен игрокам, тренерам, аналитическим платформам, автоматизированным тренировочным комплексам.
⚡️ Перспективные направления
Футбол, баскетбол, гимнастика, боевые единоборства, теннис, тяжелая атлетика, пауэрлифтинг.
💡 Что дальше
▪️ Специализация под конкретный вид спорта с учетом особенностей и требований.
▪️ Расширение набора метрик оценки.
▪️ Клиентский сервис.
▪️ Модули внешней интеграции для расширения функциональности уже существующих систем.
💻 Участники проекта
💥 Демин Юрий - Backend, ML
💥 Рязанов Владимир - Frontend
💥 Мясников Филипп - ML
💥 Листопад Валентина - Design
#проекты
⚽️ Задача заключалась в разработке автоматизированной системы оценки качества исполнения каких-либо спортивных упражнений, элементов, снарядов. Для примера были взяты стандартные положения в футболе, а именно штрафные удары и пенальти.
🔎 Схема работы
🔹 На вход системы подаются короткие видео фрагменты эталонного и анализируемых записей ударов футболистов.
🔹
ML модуль обрабатывает кадры видео и производит:✔️ Детекцию мяча
✔️ Определение момента удара
✔️ Построение скелета игрока
🔹 Для каждого из направлений работы
ML модуля готовились соответствующие модели на базе yolo. Отдельное внимание уделялось комбинированному скелетному генератору (совместная работа нескольких моделей из раздела pose estimation), т.к. от точности формирования скелета зависит дальнейшая работа комплекса в целом.🔹 Зафиксировав кадр момента удара и получив с него скелет с более чем 20 контрольными точкам,
модуль оценки производит расчет пространственных характеристик (положение тела и его частей).🔹 На основе собранных характеристик по всем входным данным, выполняется сравнительный анализ качества исполнения стандартного положения с формированием итогового отчета, отметкой расхождений и рекомендациями по внесению корректировок в технику.
🙎♂️ Для кого
Инструмент будет полезен игрокам, тренерам, аналитическим платформам, автоматизированным тренировочным комплексам.
⚡️ Перспективные направления
Футбол, баскетбол, гимнастика, боевые единоборства, теннис, тяжелая атлетика, пауэрлифтинг.
💡 Что дальше
▪️ Специализация под конкретный вид спорта с учетом особенностей и требований.
▪️ Расширение набора метрик оценки.
▪️ Клиентский сервис.
▪️ Модули внешней интеграции для расширения функциональности уже существующих систем.
💻 Участники проекта
💥 Демин Юрий - Backend, ML
💥 Рязанов Владимир - Frontend
💥 Мясников Филипп - ML
💥 Листопад Валентина - Design
#проекты
🔥7👏3
В одной из предыдущих заметок были рассмотрены вопросы организации бэкапов на
🔎 Подготовка
Удобнее тестировать функциональность на локальном хранилище, поэтому подготовим новый репозиторий
и сделаем несколько снимков с промежуточными изменениями файлов
📝 Проверка данных
🔹 Список снимков репозитория
🔹 Список файлов снимка
🔹 Занимаемое дисковое пространство
🔹 Верификация данных
📌 Рекомендация разработчиков системы говорит о необходимости периодического проведения верификации данных дабы вовремя обнаружить проблемы с хранилищем и данными и предпринять меры по их устранению. Пример обнаружения и исправления поврежденного репозитория представлен в документации.
🪓 Очистка хранилища
🔹 Исключение нежелательных данных из репозитория
В результате удаления файлов с помощью команды
🔹 Удаление данных
Хоть мы и очистили хранилище от снимков с нежелательными данными, сами данные остались нетронутыми, а лишь потеряли привязку к снимкам. Для очистки от неиспользуемых более данных существует команда
📌 Для автоматизации процесса очистки
За правила очистки отвечает опция
🗂 Восстановление данных
Команда
💡 Представленные разделы работы с бэкапами в
#backup #opensource #selfhosted #tools #restic
restic. Здесь же приведу дальнейшие манипуляции с репозиториями, которые позволят эффективно использовать представленный инструмент (см. расширенную версию с примерами на сайте или в дзен).🔎 Подготовка
Удобнее тестировать функциональность на локальном хранилище, поэтому подготовим новый репозиторий
restic -r ~/restic_extra/repo init
и сделаем несколько снимков с промежуточными изменениями файлов
restic -r ~/restic_extra/repo --verbose backup ~/restic_extra/data
📝 Проверка данных
🔹 Список снимков репозитория
restic -r ~/restic_extra/repo snapshots
🔹 Список файлов снимка
# для конкретного снимка
restic -r ~/restic_extra/repo ls 83d1269c
# для последнего снимка
restic -r ~/restic_extra/repo ls latest
🔹 Занимаемое дисковое пространство
# сколько места требуется для восстановления последнего снимка
restic -r ~/restic_extra/repo stats latest
# сколько места занимает снимок в хранилище
restic -r ~/restic_extra/repo stats --mode raw-data latest
🔹 Верификация данных
# проверка структуры хранилища, целостности снимков
restic -r ~/restic_extra/repo check
# расширенная проверка с включением файлов в снимках
restic -r ~/restic_extra/repo check --read-data
📌 Рекомендация разработчиков системы говорит о необходимости периодического проведения верификации данных дабы вовремя обнаружить проблемы с хранилищем и данными и предпринять меры по их устранению. Пример обнаружения и исправления поврежденного репозитория представлен в документации.
🪓 Очистка хранилища
🔹 Исключение нежелательных данных из репозитория
В результате удаления файлов с помощью команды
rewrite формируется новый снимок, однако старый, где были обнаружены искомые файлы, остается в хранилище. Применим опцию --forget для автоматического удаления замененных снимков.restic -r ~/restic_extra/repo rewrite --exclude secret.txt --forget
🔹 Удаление данных
Хоть мы и очистили хранилище от снимков с нежелательными данными, сами данные остались нетронутыми, а лишь потеряли привязку к снимкам. Для очистки от неиспользуемых более данных существует команда
prune.restic -r ~/restic_extra/repo prune
📌 Для автоматизации процесса очистки
forget и prune могут быть использованы вместе.# оставляем 2 последних снимка, остальное очищаем
restic -r ~/restic_extra/repo forget --keep-last 2 --prune
За правила очистки отвечает опция
--keep-*. Все доступные варианты использования здесь.🗂 Восстановление данных
# восстанавливаем последний снимок в каталог repo_restored
restic -r ~/restic_extra/repo restore latest --target ~/restic_extra/repo_restored
Команда
restore также поддерживает различные параметры фильтрации для более детальной настройки, что подробно расписано в документации.💡 Представленные разделы работы с бэкапами в
restic показывают гибкость и глубокую проработку инструментария, что позволяет спроектировать и создать на его основе собственную систему хранения и контроля файловых резервных копий. Хоть версия программы еще не добралась до релиза, множество сценариев применения уже могут быть воплощены в реальных условиях эксплуатации.#backup #opensource #selfhosted #tools #restic
Telegram
DeSoft.ru
Начнем новый год с вечно актуальной темы про бэкапы (см. полную версию на сайте).
Одним из подходов к созданию бэкапов является размещение на целевом сервере агента или независимой программы, которая занимается созданием и передачей резервных копий в некое…
Одним из подходов к созданию бэкапов является размещение на целевом сервере агента или независимой программы, которая занимается созданием и передачей резервных копий в некое…
👍5👏1
🦾 Подборка AI-ассистентов для разработчика
Помощники для программистов развиваются не по дням, а по часам. Это уже не просто автодополнение недостающих фрагментов, но и расширенный анализ и генерация кода, создание и обработка файлов, построение архитектуры, сборка и отладка приложений, работа в терминале и управление браузером и многое другое.
⚡️ Cline - популярный агент с широкой функциональностью. Поставляется в виде расширения для VS Code.
🔥 Roo-Code - форк
🔸 Continue - поддерживает работу как через внешние провайдеры AI, так и с использованием локальных моделей. Расширение для VS Code и JetBrains.
💥 Tabby -
🔸 Mutahunter - генератор
🔸 Vanna - система взаимодействия с базами данных на естественном языке, генератор
🔸 GPT-Migrate - AI переводчик исходного кода с одного языка/фреймворка на другой.
Напишите свой опыт использования подобных помощников в комментариях. На каких языках, для каких задач применялся и на сколько хорошо справлялся тот или иной ассистент.
#tools #ai #полезное
Помощники для программистов развиваются не по дням, а по часам. Это уже не просто автодополнение недостающих фрагментов, но и расширенный анализ и генерация кода, создание и обработка файлов, построение архитектуры, сборка и отладка приложений, работа в терминале и управление браузером и многое другое.
⚡️ Cline - популярный агент с широкой функциональностью. Поставляется в виде расширения для VS Code.
🔥 Roo-Code - форк
Cline, "как Cline, только лучше". Представлен также в виде расширения для VS Code и Eclipse.🔸 Continue - поддерживает работу как через внешние провайдеры AI, так и с использованием локальных моделей. Расширение для VS Code и JetBrains.
💥 Tabby -
self-hosted решение. Позволяет развернуть на своем сервере приложение c web UI для управления репозиториями и совместной разработки с поддержкой AI моделей, и подключиться к нему из расширения для IDE.🔸 Mutahunter - генератор
unit тестов с возможностью встраивания в ci/cd.🔸 Vanna - система взаимодействия с базами данных на естественном языке, генератор
sql запросов.🔸 GPT-Migrate - AI переводчик исходного кода с одного языка/фреймворка на другой.
Напишите свой опыт использования подобных помощников в комментариях. На каких языках, для каких задач применялся и на сколько хорошо справлялся тот или иной ассистент.
#tools #ai #полезное
👍2🔥2
Существует множество способов быстро передать данные с целевой машины. Одним из наиболее простых вариантов является публикация через веб сервер для открытия в браузере. Приведу несколько решений по организации доступа к локальным данным по
📌
▪️ Переходим в каталог с данными.
▪️ Запускаем сервер
▪️ Забираем данные через браузер.
▪️ Завершаем работу сервера.
Для разовых манипуляций более чем достаточно.
📌 Браузерный файловый менеджер File Browser
Уже куда более приятный инструмент для работы с расшаренными ресурсами прямо в веб интерфейсе.
▪️ Загрузка каталогов и файлов на / с сервера
▪️ Создание, удаление, изменение файлов и директорий
▪️ Доступ по временной ссылке
▪️ Многопользовательский доступ
▪️ Обработка событий с возможностью добавления собственных скриптов
📌 Схожим набором функций обладает еще одно минималистичное решение - Mikochi
Можно запустить через бинарник, поднять в
📌 Богатая на возможности программа RClone
Помимо основного назначения синхронизации файлов с облачными хранилищами, утилита предоставляет функцию трансляции файловой системы через веб сервер для взаимодействия по
▪️ Широкий выбор операционных систем, в том числе
▪️ Поддержка буферизации и кэширования файлов
▪️ Подключение как локальных, так и облачных хранилищ
▪️ Поддержка запросов на чтение отдельных частей файлов
▪️ Мониторинг обращений
▪️ Гибкая настройка параметров
Полный перечень доступных конфигураций здесь.
#share #opensource #selfhosted #tools
http протоколу, как для одноразового применения, так и для постоянного целевого использования.📌
python нынче поставляется в комплекте многих операционных систем, его базовый http сервер и применим.▪️ Переходим в каталог с данными.
▪️ Запускаем сервер
python3 -m http.server 8000
▪️ Забираем данные через браузер.
▪️ Завершаем работу сервера.
Для разовых манипуляций более чем достаточно.
📌 Браузерный файловый менеджер File Browser
Уже куда более приятный инструмент для работы с расшаренными ресурсами прямо в веб интерфейсе.
▪️ Загрузка каталогов и файлов на / с сервера
▪️ Создание, удаление, изменение файлов и директорий
▪️ Доступ по временной ссылке
▪️ Многопользовательский доступ
▪️ Обработка событий с возможностью добавления собственных скриптов
# устанавливаем
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
# задаем адрес и порт в настройках
filebrowser config init -a 0.0.0.0 -p 8080
# добавляем админа
filebrowser users add demo demo -perm.admin
# запускаем над каталогом с данными
filebrowser -r /home/desoft/data
📌 Схожим набором функций обладает еще одно минималистичное решение - Mikochi
Можно запустить через бинарник, поднять в
docker или kubernetes.# запускаем
docker run \
-p 8080:8080 -v /home/desoft/data:/data \
-e DATA_DIR="/data" -e USERNAME=demo \
-e PASSWORD=demo zer0tonin/mikochi:latest
📌 Богатая на возможности программа RClone
Помимо основного назначения синхронизации файлов с облачными хранилищами, утилита предоставляет функцию трансляции файловой системы через веб сервер для взаимодействия по
http протоколу.# устанавливаем
sudo -v ; curl https://rclone.org/install.sh | sudo bash
# запускаем
# --dir-cache-time - время хранения кэша записей смонтированной директории
# --poll-interval - время ожидания между опросами изменений
rclone serve http -vvv /home/desoft/data --addr 0.0.0.0:8020 --dir-cache-time 5s --poll-interval 0
▪️ Широкий выбор операционных систем, в том числе
Linux, macOS, BSD, Windows▪️ Поддержка буферизации и кэширования файлов
▪️ Подключение как локальных, так и облачных хранилищ
▪️ Поддержка запросов на чтение отдельных частей файлов
▪️ Мониторинг обращений
▪️ Гибкая настройка параметров
Полный перечень доступных конфигураций здесь.
#share #opensource #selfhosted #tools
👍6
Unix, найти готовые инструменты для определенных задач, поднатаскаться в написании скриптов, подобрал ряд полезных ресурсов по теме.📚 Гайд "Искусство командной строки" - от азов до продвинутого использования.
📝 Список программ по категориям
⚖️ Современные аналоги популярных утилит
💡 Недавно познакомился с оболочкой
fish-shell, осваиваю постепенно. На первый взгляд - сборник лучших практик из разных командных оболочек, уже преднастроенных.▫️ Репозиторий проекта
▫️ Дополнительная информация
💻 Сборник эмуляторов терминала под разные системы
#terminal #unix #linux #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
Новые китайские AI модели заполонили новостные ленты, а отличительной особенностью является не только заявленная эффективность, но и доступность - поработать с ними можно бесплатно как в веб чате от разработчика, так и в мобильных приложениях.
Поскольку модели были выложены в открытый доступ, то подключить их можно и на своей машине. Уже писал ранее про два инструмента для запуска моделей локально:
💥 LM Studio
💥 LobeChat
Дополню список еще несколькими решениями, благодаря которым удастся опробовать и оценить нашумевшие
🔸 GPT4All
🔸 Ollama
🔸 LocalAI
#tools #ai #полезное
Поскольку модели были выложены в открытый доступ, то подключить их можно и на своей машине. Уже писал ранее про два инструмента для запуска моделей локально:
💥 LM Studio
💥 LobeChat
Дополню список еще несколькими решениями, благодаря которым удастся опробовать и оценить нашумевшие
DeepSeek и Qwen самостоятельно.🔸 GPT4All
🔸 Ollama
🔸 LocalAI
#tools #ai #полезное
Deepseek
DeepSeek | 深度求索
深度求索(DeepSeek),成立于2023年,专注于研究世界领先的通用人工智能底层模型与技术,挑战人工智能前沿性难题。基于自研训练框架、自建智算集群和万卡算力等资源,深度求索团队仅用半年时间便已发布并开源多个百亿级参数大模型,如DeepSeek-LLM通用大语言模型、DeepSeek-Coder代码大模型,并在2024年1月率先开源国内首个MoE大模型(DeepSeek-MoE),各大模型在公开评测榜单及真实样本外的泛化效果均有超越同级别模型的出色表现。和 DeepSeek AI 对话,轻松接入 API。
👍4👏1
🔥 Компания
⚡️ Случаев эксплуатации этой уязвимости до сих пор раскрыто не было, однако, подробности опубликованы, а значит существует риск. Поскольку исправления уже выпущены, всем пользователям iPhone и iPad настоятельно рекомендуется обновиться до версии 18.3.
📚 Источники: [1], [2], [3]
#security #leaks
Apple на регулярной основе выпускает патчи безопасности, не обошлось без обнов и в январском выпуске. Особый интерес как у исследователей, так и рядовых пользователей вызвала исправленная уязвимость CVE-2025-24085 в компоненте CoreMedia, позволяющая вредоносным приложениям повысить привилегии в системе iOS в версиях до 17.2, а значит, потенциально, получить доступ к данным.⚡️ Случаев эксплуатации этой уязвимости до сих пор раскрыто не было, однако, подробности опубликованы, а значит существует риск. Поскольку исправления уже выпущены, всем пользователям iPhone и iPad настоятельно рекомендуется обновиться до версии 18.3.
📚 Источники: [1], [2], [3]
#security #leaks
Apple Support
About the security content of iOS 18.3 and iPadOS 18.3 - Apple Support
This document describes the security content of iOS 18.3 and iPadOS 18.3.
👍4😱1
Про бэкапы в
Текущая версия
📦 Подготавливаем s3 хранилище
🔹 Ставим
Для поддержки
🔹 Идем в веб панель на порт
- Создаем bucket
- Создаем
- В настройках прописываем регион хранилища.
⚒️ Настраиваем и пересобираем образ automation
🔹 Клонируем ветку актуального релиза autobase
🔹 Настраиваем
Для включения бэкапов нужно внести корректировки в конфигурацию вспомогательного образа
‼️
✔️ Находим секцию
✔️ Устанавливаем расписание бэкапов в секции
✔️ Указываем
✔️ Примеры конфигураций
🔹 Собираем локальный образ
🚀 Запускаем консоль autobase
🔹 Указываем в переменной окружения консоли
🔹 Создаем и разворачиваем кластер согласно инструкции из первой части.
✅
📌 Согласно информации от разработчика, ведется работа над
#db #tools #selfhosted
autobase (см. полную версию на сайте).Текущая версия
autobase в ui консоли не поддерживает управление резервным копированием, поэтому настроим эту опцию через предлагаемые конфигурации.📦 Подготавливаем s3 хранилище
🔹 Ставим
MinIO s3 локально или арендуем хранилище с большим диском у облачных провайдеров.Для поддержки
https протокола подключим самоподписанный сертификат.docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v ~/autobase/minio/data:/data \
-v ~/autobase/minio/certs:/certs \
-e "MINIO_ROOT_USER=demouser" \
-e "MINIO_ROOT_PASSWORD=demouser" \
-e "MINIO_SCHEME=https" \
-e "SSL_CERT_FILE=/certs/public.crt" \
quay.io/minio/minio server /data --console-address ":9001" /data --certs-dir /certs
🔹 Идем в веб панель на порт
9001- Создаем bucket
autobase для хранения резервных копий.- Создаем
Access Key.- В настройках прописываем регион хранилища.
⚒️ Настраиваем и пересобираем образ automation
🔹 Клонируем ветку актуального релиза autobase
git clone --branch 2.1.0 --single-branch https://github.com/vitabaks/autobase.git
🔹 Настраиваем
pgbackrest под s3Для включения бэкапов нужно внести корректировки в конфигурацию вспомогательного образа
automation, который ранее подтягивался из dockerhub уже в готовом виде.vi ./autobase/automation/vars/main.yml
‼️
pgbackrest требует работу через https. Регион хранилища также должен быть задан.✔️ Находим секцию
pgbackrest и заменяем значения на заготовленную конфигурацию для бэкапов в MinIO S3 из документации. Не забываем внести свои значения параметров доступа к развернутому ранее MinIO.✔️ Устанавливаем расписание бэкапов в секции
pgbackrest_cron_jobs (по умолчанию еженедельные полные бэкапы).✔️ Указываем
pgbackrest как метод создания реплик patroni.✔️ Примеры конфигураций
🔹 Собираем локальный образ
automationcd ./autobase
docker build -t automation-pgrest:latest -f ./automation/Dockerfile .
🚀 Запускаем консоль autobase
🔹 Указываем в переменной окружения консоли
PG_CONSOLE_DOCKER_IMAGE собранный выше локальный образ automation и запускаем.docker run -d --name autobase-pgrest-console \
--publish 80:80 \
--publish 8080:8080 \
--env PG_CONSOLE_API_URL=http://192.168.1.135:8080/api/v1 \
--env PG_CONSOLE_AUTHORIZATION_TOKEN=secret_token \
--env PG_CONSOLE_DOCKER_IMAGE=automation-pgrest:latest \
--volume console_postgres:/var/lib/postgresql \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp/ansible:/tmp/ansible \
--restart=unless-stopped \
autobase/console:latest
🔹 Создаем и разворачиваем кластер согласно инструкции из первой части.
✅
pgbackrest устанавливается как на основной хост кластера, так и на реплики. Для проверки и отладки работы программы можно отслеживать логи по пути, указанному в конфигурационном файле main.yml собственного образа automation, { option: "log-path", value: "/var/log/pgbackrest" }.📌 Согласно информации от разработчика, ведется работа над
Expert mode, который раскроет дополнительные опции в веб интерфейсе autobase, включая управление резервным копированием. Ожидаем появления нового режима в будущих релизах.#db #tools #selfhosted
DeSoft.ru
Разворачиваем PostgreSQL кластер с помощью autobase. Часть 2
Настраиваем бэкапы кластера в s3 хранилище с помощью pgbackrest
👍5
🥷 Тот, кто решил не разворачивать китайские модели локально для тестирования, как я предлагал ранее, а подключиться к API DeepSeek, используя разработанные клиентские решения, имел все шансы нарваться на любезно подготовленные злоумышленниками вредоносы в репозитории PyPI.
🔎 Исследователи из
Руку на пульсе новых, в особенности трендовых, технологий держат не только профильные специалисты, но и недоброжелатели, желающие поживиться на резко набирающей популярность теме, поэтому стоит внимательнее относиться к использованию новых, не имеющих истории пакетов, библиотек, инструментов.
#security #leaks
🔎 Исследователи из
Positive Technologies обнаружили замаскированные под Python-клиенты инфостилеры в пакетах deepseek и deepseekai. Сбор и отправка информации на удаленный сервер (пользователь, машина, переменные окружения) происходят после запуска консольных команд установленных пакетов.Руку на пульсе новых, в особенности трендовых, технологий держат не только профильные специалисты, но и недоброжелатели, желающие поживиться на резко набирающей популярность теме, поэтому стоит внимательнее относиться к использованию новых, не имеющих истории пакетов, библиотек, инструментов.
#security #leaks
Telegram
DeSoft.ru
Новые китайские AI модели заполонили новостные ленты, а отличительной особенностью является не только заявленная эффективность, но и доступность - поработать с ними можно бесплатно как в веб чате от разработчика, так и в мобильных приложениях.
Поскольку…
Поскольку…
👍3🔥1
🔧 Очередная подборка. Полезные инструменты для монтирования удаленных каталогов, дисков, хранилищ.
⭐️ В контексте организации доступа к данным по http протоколу была представлена утилита RClone, однако основное ее назначение как раз в работе с удаленными хранилищами. Поддержка широкого набора протоколов и облачных решений делает ее приоритетным инструментом для гибкой и быстрой настройки.
🔸 SSHFS - простая и удобная программа для подключения удаленных файловых систем по
🔸 HTTPDirFS - монтирование
💥 SFTPGo - активно развивающийся инструмент для монтирования удаленных хранилищ. Поддержка протоколов и облачных провайдеров постепенно расширяется, бонусом идет наличие WebUI как для администрирования, так и для клиентского использования.
🔥 BTFS - монтирование
#tools #mount #полезное
⭐️ В контексте организации доступа к данным по http протоколу была представлена утилита RClone, однако основное ее назначение как раз в работе с удаленными хранилищами. Поддержка широкого набора протоколов и облачных решений делает ее приоритетным инструментом для гибкой и быстрой настройки.
🔸 SSHFS - простая и удобная программа для подключения удаленных файловых систем по
SFTP.🔸 HTTPDirFS - монтирование
http каталога, как локальной директории.💥 SFTPGo - активно развивающийся инструмент для монтирования удаленных хранилищ. Поддержка протоколов и облачных провайдеров постепенно расширяется, бонусом идет наличие WebUI как для администрирования, так и для клиентского использования.
🔥 BTFS - монтирование
.torrent файлов или magnet ссылок в качестве каталогов, доступных только на чтение. Содержимое загружается по требованию, а поскольку реализовано на базе виртуальной файловой системы, то и стандартные файловые операции также работают корректно.#tools #mount #полезное
🔥3👍2
🔥 Добавил в управление каналом первую версию бота
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в
✔️ Обработка и представление результата в ответном сообщении.
🔎 Как попробовать самостоятельно
🔹 Заводим аккаунт на VirusTotal. По умолчанию выдается доступ к
🔹 Создаем нового бота в @BotFather. Сохраняем
🔹 Добавляем бота в администраторы чата, сообщения из которого хотим получать для анализа, и куда будут поступать ответы с результатами. В моем случае это чат с комментариями к этому каналу. Запоминаем имя чата.
🔹 Забираем исходники бота
Для работы потребуется
🔹 Прописываем в
🔹 Запускаем бота
🔹 Делаем отправку тестовых сообщений с ссылками или без, смотрим на результат.
💡 Что дальше
▫️ Добавить поддержку большего числа внешних сервисов проверки.
▫️ Проверять не только ссылки, но и файлы.
▫️ Сохранять историю.
#проекты
MiniDe на aiogram - анализатор ссылок в сообщениях через VirusTotal.Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в
VirusTotal через API✔️ Обработка и представление результата в ответном сообщении.
🔎 Как попробовать самостоятельно
🔹 Заводим аккаунт на VirusTotal. По умолчанию выдается доступ к
API с ограничением на проверку 4 ссылок в минуту и 500 в день - для тестовых запусков и ненагруженного ссылками потока сообщений более чем достаточно. Забираем API_KEY.🔹 Создаем нового бота в @BotFather. Сохраняем
token.🔹 Добавляем бота в администраторы чата, сообщения из которого хотим получать для анализа, и куда будут поступать ответы с результатами. В моем случае это чат с комментариями к этому каналу. Запоминаем имя чата.
🔹 Забираем исходники бота
minide из репозитория на gitverse.Для работы потребуется
docker. Можно запустить, к примеру, локально или на VPS сервере. 🔹 Прописываем в
docker-compose.yml контейнера minide полученные ранее BOT_TOKEN, VIRUSTOTAL_API_KEY и CHANNEL_NAME.🔹 Запускаем бота
docker compose up -d
🔹 Делаем отправку тестовых сообщений с ссылками или без, смотрим на результат.
💡 Что дальше
▫️ Добавить поддержку большего числа внешних сервисов проверки.
▫️ Проверять не только ссылки, но и файлы.
▫️ Сохранять историю.
#проекты
gitverse.ru
desoft/minide: Бот для проверки ссылок в сообщениях Telegram чата | Gitverse
desoft/minide: Бот для проверки ссылок в сообщениях Telegram чата. Актуальные файлы и описания. Ветки и обсуждения на платформе для разработчиков GitVerse.
🔥4👏1
🔎 Для расширения перечня сервисов, задействованных в проверке файлов и ссылок с помощью представленного бота, собрал ряд инструментов, предоставляющих
🔹 Платформа от Лаборатории Касперского
🔹 Уже примененный к решению задачи VirusTotal
🔹 Triage
🔹 Hybrid Analysis
🔹 Metadefender
🔹 Intezer
🔹 FileScan
🔹 URLQuery
🔹 urlscan
В большинстве случаев требуется завести аккаунт и получить
Каждый ресурс предоставляет разное количество бесплатных запросов, а также использует разный набор баз и движков для анализа, именно поэтому одного лишь источника будет недостаточно для получения более-менее достоверного результата.
#security #scan
API для взаимодействия.🔹 Платформа от Лаборатории Касперского
🔹 Уже примененный к решению задачи VirusTotal
🔹 Triage
🔹 Hybrid Analysis
🔹 Metadefender
🔹 Intezer
🔹 FileScan
🔹 URLQuery
🔹 urlscan
В большинстве случаев требуется завести аккаунт и получить
API KEY для отправки запросов.Каждый ресурс предоставляет разное количество бесплатных запросов, а также использует разный набор баз и движков для анализа, именно поэтому одного лишь источника будет недостаточно для получения более-менее достоверного результата.
#security #scan
Telegram
DeSoft.ru
🔥 Добавил в управление каналом первую версию бота MiniDe на aiogram - анализатор ссылок в сообщениях через VirusTotal.
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal…
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal…
👍3
📝 Несколько доработок для бота
✅ Добавил простую проверку на сокращенные ссылки путем
✅ Поправил некоторые ошибки обработки невалидных сообщений, разнес бота и сервисы проверки.
❌ Если сервис сокращенных ссылок закрыт за
🌐 Исходники
#проекты #changelog
✅ Добавил простую проверку на сокращенные ссылки путем
HEAD запросов и обработки статусов для забора локации редиректа.✅ Поправил некоторые ошибки обработки невалидных сообщений, разнес бота и сервисы проверки.
❌ Если сервис сокращенных ссылок закрыт за
CloudFlare - отправка запросов именно из docker контейнера не срабатывает. Если просто запустить на хосте - все отлично проходит. Попробовал обогатить запросы заголовками для обмана системы с помощью aiocfscrape, однако ошибка сохранилась, ловлю 403, также попробовал поиграться с сетью docker, вынести на host например, но и это не спасло. Надо отследить цепочку запросов дабы объяснить проблему.🌐 Исходники
#проекты #changelog
Telegram
DeSoft.ru
🔥 Добавил в управление каналом первую версию бота MiniDe на aiogram - анализатор ссылок в сообщениях через VirusTotal.
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal…
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal…
👍4
Рассматривал ранее вариант построения виртуальной сети с помощью zerotier. На днях попробовал еще одно решение на эту тему - Nebula - инструмент для построения защищенных оверлейных сетей. Узлы сети устанавливают прямое
🗝 Ключ и сертификат сети
▪️ Забираем актуальную версию
▪️ Воспользуемся
🔖 Сертификаты хостов
▪️ Создаем и подписываем сертификаты для хостов системы
⚙️ Конфигурационные файлы хостов
▪️ Берем конфигурационный файл из репозитория
▪️ Готовим конфиг для контроллера сети, он же
Раздел
▪️ Готовим конфиг для хостов
В разделе
В разделе
❗️ Отдельно упомяну про раздел
🚀 Запускаем lighthouse
▪️ Скачиваем бинарник под систему, на которой будет располагаться
▪️ Переносим на сервер подготовленные ранее
▪️ Поскольку в конфигурационных файлах указаны пути до рабочего каталога и файлов в нем (раздел
▪️ Стартуем
🚀 Запускаем host
▪️ Переносим на сервер подготовленные ранее
▪️ Можно также создать каталог и перенести туда рабочую конфигурацию или внести корректировки в
▪️ Стартуем
По аналогии настраиваем и запускаем
🔎 Проверка
Осталось проверить поднятую сеть, но получится лишь пропинговать устройства как с хостов так и с контроллера. Для разрешения других протоколов смотри настройки
#vpn #nebula
vpn соединение между собой (p2p). Отличительная особенность системы - ее простота - все поставляется в комплекте, запускается посредством бинарника с раскиданными по хостам конфигурационными файлам и сертификатами, которыми подтверждается принадлежность к сети.🗝 Ключ и сертификат сети
▪️ Забираем актуальную версию
Nebula из релизов под любую систему.▪️ Воспользуемся
nebula-cert из архива для генерации ключа и сертификата для последующего выпуска сертификатов хостов сети../nebula-cert ca -name "DeSoft.ru"
🔖 Сертификаты хостов
▪️ Создаем и подписываем сертификаты для хостов системы
# контроллер сети и его внутрисетевой адрес
./nebula-cert sign -name "lighthouse-1" -ip "10.10.101.1/24"
# хост №1
./nebula-cert sign -name "vps-1" -ip "10.10.101.11/24" -groups "vps"
# хост №2
./nebula-cert sign -name "vps-2" -ip "10.10.101.12/24" -groups "vps"
⚙️ Конфигурационные файлы хостов
▪️ Берем конфигурационный файл из репозитория
curl -o config.yml https://raw.githubusercontent.com/slackhq/nebula/master/examples/config.yml
▪️ Готовим конфиг для контроллера сети, он же
lighthousecp config.yml config-lighthouse.yaml
Раздел
static_host_map оставляем пустым, в разделе lighthouse выставляем параметр am_lighthouse в true, а hosts также оставляем пустым.static_host_map:
lighthouse:
am_lighthouse: true
hosts:
▪️ Готовим конфиг для хостов
cp config.yml config.yaml
В разделе
static_host_map должен быть прописан внутренний и внешний адреса lighthouse сервера. По умолчанию используется udp порт 4242, не забываем оставить его открытым. static_host_map:
"10.10.101.1": ["<vps ip>:4242"]
В разделе
lighthouse в hosts прописываем внутренний адрес сервера lighthouse.lighthouse:
am_lighthouse: false
interval: 60
hosts:
- "10.10.101.1"
❗️ Отдельно упомяну про раздел
firewall, параметры которого позволяют разграничить трафик между хостами в сети. По умолчанию весь исходящий трафик открыт, а вот входящий заблокирован, кроме icmp пакетов. Также в конфиге представлен пример разграничения по группам, что добавляет гибкости в настройках взаимодействия между устройствами в сети.firewall:
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: icmp
host: any
- port: 443
proto: tcp
groups:
- laptop
- home
🚀 Запускаем lighthouse
▪️ Скачиваем бинарник под систему, на которой будет располагаться
lighthouse.▪️ Переносим на сервер подготовленные ранее
ca.cert, lighthouse-1.crt, lighthouse-1.key, config-lighthouse.yaml.▪️ Поскольку в конфигурационных файлах указаны пути до рабочего каталога и файлов в нем (раздел
pki), перенесем всю рабочую конфигурацию в этот каталог, соблюдая типовое наименование.mkdir /etc/nebula
mv ca.crt /etc/nebula/ca.crt
mv lighthouse-1.crt /etc/nebula/host.crt
mv lighthouse-1.key /etc/nebula/host.key
mv config-lighthouse.yaml /etc/nebula/config.yaml
▪️ Стартуем
./nebula -config /etc/nebula/config.yaml
🚀 Запускаем host
▪️ Переносим на сервер подготовленные ранее
ca.cert, vps-1.crt, vps-1.key, config.yaml.▪️ Можно также создать каталог и перенести туда рабочую конфигурацию или внести корректировки в
pki раздел config.yaml, указав собственные пути. Для единообразия оставим предложенную схему.mkdir /etc/nebula
mv ca.crt /etc/nebula/ca.crt
mv vps-1.crt /etc/nebula/host.crt
mv vps-1.key /etc/nebula/host.key
mv config.yaml /etc/nebula/config.yaml
▪️ Стартуем
./nebula -config /etc/nebula/config.yaml
По аналогии настраиваем и запускаем
nebula на втором хосте (vps-2).🔎 Проверка
Осталось проверить поднятую сеть, но получится лишь пропинговать устройства как с хостов так и с контроллера. Для разрешения других протоколов смотри настройки
firewall в конфигурационном файле.#vpn #nebula
Telegram
DeSoft.ru
Для объединения распределенных устройств в одну виртуальную сеть, будь то организация рабочего пространства связыванием нескольких удаленных машин или целых подразделений компании, или обычный доступ к домашним ресурсам извне как к локальным, существует небезызвестное…
👍4🔥3
📝 Changelog анализатора ссылок
✅ Добавил поддержку нового сервиса проверки - Kaspersky Threat Intelligence Portal.
Пришлось распиливать ссылку на составные части с помощью
✅ Учел обработку ошибок запросов, прикрутил корректную обработку exception к каждому сервису.
✅ Докинул параметров в переменные окружения.
🌐 Исходники
#проекты #changelog
✅ Добавил поддержку нового сервиса проверки - Kaspersky Threat Intelligence Portal.
Пришлось распиливать ссылку на составные части с помощью
urllib.parse.urlsplit для определения наличия path, поскольку в запросе нужно отправлять домен на один endpoint, а если это ссылка на ресурс, то на другой. Заодно добавил метод по проверка ip адреса (да, у него тоже отдельная ручка), нужно будет валидацию ссылки на ip учесть в следующей версии.✅ Учел обработку ошибок запросов, прикрутил корректную обработку exception к каждому сервису.
✅ Докинул параметров в переменные окружения.
🌐 Исходники
#проекты #changelog
Telegram
DeSoft.ru
🔥 Добавил в управление каналом первую версию бота MiniDe на aiogram - анализатор ссылок в сообщениях через VirusTotal.
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal…
Логика несложная, как и сам скрипт:
✔️ Перехват сообщений
✔️ Поиск скрытых за текстом и прямых ссылок
✔️ Отправка найденного в VirusTotal…
🔥3👍1
🔥 Наткнулся на интересный сборник ресурсов по 10 направлениям в AI. Как его характеризуют авторы -
📚 Разделы
1️⃣ Передовые языковые модели
2️⃣ Бенчмарки, тесты
3️⃣ Промпт
4️⃣ Генерация с расширенным поиском (RAG)
5️⃣ Агенты
6️⃣ Кодогенерация
7️⃣ Обработка и анализ изображений
8️⃣ Голос / речь
9️⃣ Генерация изображений / видео
🔟 Настройка / "тюннинг" моделей
🌐 Источник
#ai #полезное
required reads для AI инженеров. Подборка и правда получилась "без воды", взял оттуда несколько занятных источников для изучения. Подойдет как практикующим специалистам, так и тем, кто только знакомится с областью.📚 Разделы
1️⃣ Передовые языковые модели
2️⃣ Бенчмарки, тесты
3️⃣ Промпт
4️⃣ Генерация с расширенным поиском (RAG)
5️⃣ Агенты
6️⃣ Кодогенерация
7️⃣ Обработка и анализ изображений
8️⃣ Голос / речь
9️⃣ Генерация изображений / видео
🔟 Настройка / "тюннинг" моделей
🌐 Источник
#ai #полезное
www.latent.space
The 2025 AI Engineering Reading List
We picked 50 paper/models/blogs across 10 fields in AI Eng: LLMs, Benchmarks, Prompting, RAG, Agents, CodeGen, Vision, Voice, Diffusion, Finetuning. If you're starting from scratch, start here.
🔥3