<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>bvp&#39;s life</title>
		<link>https://www.bvpyar.ru/</link>
		<description>Recent content on bvp&#39;s life</description>
		<generator>Hugo</generator>
		<language>ru-ru</language>
		
		
		
		
			<lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.bvpyar.ru/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Google Photo Set Date</title>
				<link>https://www.bvpyar.ru/programs/utilities/google-photo-set-date/</link>
				<pubDate>Sun, 13 Sep 2026 09:07:00 +0300</pubDate>
				<guid>https://www.bvpyar.ru/programs/utilities/google-photo-set-date/</guid>
				<description>&lt;p&gt;Устанавливает правильную дату и время файлов фото и видео по метаданным из выгрузки Google Takeout.&lt;/p&gt;&#xA;&lt;p&gt;При переносе медиа-архива в другой сервис важна дата и время файла. В выгрузке Google дата-время хранится в метаданных, а не в свойствах файла — поэтому файлы теряют порядок и сортировку по времени.&lt;/p&gt;&#xA;&lt;p&gt;Программа читает метаданные Google Takeout и проставляет корректную дату и время каждому файлу фото и видео, чтобы сервис-приёмник учитывал их правильно.&lt;/p&gt;&#xA;&lt;h2 id=&#34;как-это-работает&#34;&gt;Как это работает&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Выгрузка&lt;/strong&gt; — экспорт медиа из Google Takeout в файловую систему.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Запуск&lt;/strong&gt; — программа сканирует файлы и читает метаданные с датой из JSON-сопроводительных файлов Google.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Исправление&lt;/strong&gt; — каждой фотографии или видео проставляется корректная временная метка.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;когда-пригодится&#34;&gt;Когда пригодится&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;перенос архива с Google Photos в другой сервис, где важны дата-время файла;&lt;/li&gt;&#xA;&lt;li&gt;восстановление порядка сортировки, когда файлы пересохранены и даты сброшены;&lt;/li&gt;&#xA;&lt;li&gt;коррекция timestamps перед архивацией или импортом в фоторедактор.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>MultiTrack Player</title>
				<link>https://www.bvpyar.ru/programs/audio/multitrack-player/</link>
				<pubDate>Thu, 10 Sep 2026 10:32:00 +0300</pubDate>
				<guid>https://www.bvpyar.ru/programs/audio/multitrack-player/</guid>
				<description>&lt;p&gt;MultiTrack Player - мультитрек‑плеер, чтобы разбирать партии и репетировать с полным контролем над миксом. Подходит для роковых риффов, басовых линий, вокала и домашних многодорожечных записей: каждая дорожка под вашим контролем, а темп и тональность меняются без искажений.&lt;/p&gt;&#xA;&lt;p&gt;Представьте: вы хотите разобрать сложный гитарный рифф, но не слышите, где именно вступает бас. Или нужно замедлить фрагмент, чтобы разобрать технику, но обычный плеер «занижает» голос. MultiTrack Player решает эти задачи: скорость меняется без потери высоты тона, а отдельные дорожки можно глушить или выделять через Mute и Solo.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SSH Tunnel</title>
				<link>https://www.bvpyar.ru/programs/services/ssh-tunnel/</link>
				<pubDate>Sun, 13 Sep 2026 15:06:00 +0300</pubDate>
				<guid>https://www.bvpyar.ru/programs/services/ssh-tunnel/</guid>
				<description>&lt;h2 id=&#34;что-такое-ssh-tunnel&#34;&gt;Что такое SSH Tunnel&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;SSH Tunnel&lt;/strong&gt; — кроссплатформенное приложение для создания обратных SSH-туннелей. Позволяет безопасно получать доступ к сервисам на домашнем компьютере из любой точки мира — без открытия портов на роутере, без VPN и без сложной настройки сетевого оборудования.&lt;/p&gt;&#xA;&lt;p&gt;Один бинарник. Одно SSH-соединение. Сколько угодно туннелей.&lt;/p&gt;&#xA;&lt;h2 id=&#34;кому-подходит&#34;&gt;Кому подходит&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Системным администраторам&lt;/strong&gt; — удалённый доступ к серверам и оборудованию за NAT/firewall.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Домашним пользователям&lt;/strong&gt; — доступ к компьютеру (VNC/RDP) из поездок, с телефона или ноутбука.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Разработчикам&lt;/strong&gt; — проброс баз данных, веб-сервисов, API на локальную машину.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DevOps-инженерам&lt;/strong&gt; — доступ к внутренним сервисам кластера, базам данных, панелям мониторинга.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;возможности&#34;&gt;Возможности&lt;/h2&gt;&#xA;&lt;h3 id=&#34;desktop-клиент-windows-linux-macos-freebsd&#34;&gt;Desktop-клиент (Windows, Linux, macOS, FreeBSD)&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Системный трей (GUI)&lt;/strong&gt; — работает в фоне, визуально показывает статус каждого туннеля, переключение ключей, автозапуск.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TUI (терминальный интерфейс)&lt;/strong&gt; — для серверов без графики; показывает подключённых клиентов и детали туннелей.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Headless-режим&lt;/strong&gt; — для systemd/rc.d служб; управление через сигналы.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Несколько туннелей&lt;/strong&gt; — каждый туннель в отдельном потоке, независимый reconnect с экспоненциальной задержкой и jitter.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SSH-агент&lt;/strong&gt; — автоматический выбор ключа (по fingerprint, комментарию или первый доступный).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Автогенерация ключа&lt;/strong&gt; — при первом запуске генерируется ed25519-ключ, публичный ключ готов для копирования на сервер.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Daemon + IPC&lt;/strong&gt; — графический/терминальный интерфейс управляет фоновым процессом: статусы в реальном времени, логи, динамическое меню ключей.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Логи с ротацией&lt;/strong&gt; — ежедневная ротация, хранение до 30 дней, метрики по запросу.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Graceful shutdown&lt;/strong&gt; — корректное завершение при SIGINT/SIGTERM через меню или сигнал.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;android&#34;&gt;Android&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Нативное приложение&lt;/strong&gt; — интуитивный интерфейс в стиле OneUI:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Status&lt;/strong&gt; — одна кнопка запуска/остановки; подробный статус каждого туннеля с трафиком и uptime.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Config&lt;/strong&gt; — настройка сервера, портов, ключей; автосохранение.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Log&lt;/strong&gt; — логи в реальном времени.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Foreground Service&lt;/strong&gt; — туннели работают в фоне, не убиваясь системой.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Автообновление&lt;/strong&gt; — кнопка «Check for updates», скачивание и установка APK одной кнопкой.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Уведомления&lt;/strong&gt; — мгновенное уведомление о потере соединения.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Termux&lt;/strong&gt; — альтернативный вариант через обычный &lt;code&gt;config.toml&lt;/code&gt;, без нативного приложения.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;сервер-ssh-tunnel-server&#34;&gt;Сервер (ssh-tunnel-server)&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Минимальный SSH-сервер&lt;/strong&gt; — только обратные туннели; shell, exec, sftp запрещены.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TUI со списком клиентов&lt;/strong&gt; — в реальном времени: hostname, ОС, подключённые туннели.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Безопасность по умолчанию&lt;/strong&gt; — host key генерируется автоматически, SSH-ключи, ограничение портов и целей.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Виртуальные сервисы (брокерский режим)&lt;/strong&gt; — туннели между клиентами без открытия портов на сервере.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ограничения&lt;/strong&gt; — диапазон портов, whitelist подсетей для local forwarding, ограничение пользователей.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;systemd/rc.d&lt;/strong&gt; — готовые сервисные файлы для Linux, FreeBSD, NetBSD, OpenBSD.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;как-это-работает&#34;&gt;Как это работает&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Ваш компьютер                    SSH-сервер                      Сервис&#xA;(vnc-клиент)                  (в вашем доме)              (localhost:5900)&#xA;     │                               │                            │&#xA;     │──── подключается к порту ────▶│                            │&#xA;     │         remote_port           │──── через туннель ────────▶│&#xA;     │◀─── данные VNC/RDP/SSH ───────│◀──── данные ───────────────│&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#xA;&lt;li&gt;Клиент устанавливает одно SSH-соединение с сервером.&lt;/li&gt;&#xA;&lt;li&gt;Для каждого туннеля создаётся обратный проброс порта.&lt;/li&gt;&#xA;&lt;li&gt;При подключении к &lt;code&gt;remote_port&lt;/code&gt; на сервере трафик передаётся через SSH на &lt;code&gt;local_host:local_port&lt;/code&gt; клиентской машины.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;сценарии-использования&#34;&gt;Сценарии использования&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Сценарий&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Порты&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Описание&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;VNC&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5900 → 5900&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Удалённый доступ к рабочему столу (RealVNC, TightVNC)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;RDP&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3389 → 3389&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Удалённый рабочий стол Windows (Remote Desktop)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;SSH&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2222 → 22&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Доступ к серверу или маршрутизатору через SSH&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Веб&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;8080 → 80&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Доступ к веб-серверу или панели управления&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;База данных&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5433 → 5432&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Проброс PostgreSQL/MySQL на локальную машину&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Внутренний сервис&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;9090 → 9090&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Доступ к Prometheus, Grafana, Jenkins за NAT&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;безопасность&#34;&gt;Безопасность&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;SSH-шифрование&lt;/strong&gt; — весь трафик зашифрован стандартными средствами SSH.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SSH-ключи&lt;/strong&gt; — аутентификация по открытым ключам (ed25519/rsa), без паролей.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ограничение shell&lt;/strong&gt; — сервер не предоставляет shell/exec/sftp; только туннели.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ограничение портов&lt;/strong&gt; — опциональный диапазон портов на сервере.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ограничение целей&lt;/strong&gt; — whitelist подсетей для local forwarding.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Одно соединение&lt;/strong&gt; — минимальная поверхность атаки: один сокет, один keepalive, один reconnect.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Autostart&lt;/strong&gt; — автоматический запуск при входе в систему (опционально).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Нет скрытых функций&lt;/strong&gt; — открытый исходный код (MIT).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;лицензия&#34;&gt;Лицензия&lt;/h2&gt;&#xA;&lt;p&gt;MIT — свободное использование, модификация, распространение.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Пример статьи 2</title>
				<link>https://www.bvpyar.ru/posts/post2/</link>
				<pubDate>Mon, 02 Jan 2023 10:00:00 +0000</pubDate>
				<guid>https://www.bvpyar.ru/posts/post2/</guid>
				<description>&lt;h1 id=&#34;заголовок-второй-статьи&#34;&gt;Заголовок второй статьи&lt;/h1&gt;&#xA;&lt;p&gt;Это вторая статья в серии примеров. Здесь мы также можем протестировать все функции темы.&lt;/p&gt;&#xA;&lt;h2 id=&#34;возможности-темы&#34;&gt;Возможности темы&lt;/h2&gt;&#xA;&lt;p&gt;Тема предоставляет множество возможностей для комфортного чтения и навигации по контенту.&lt;/p&gt;&#xA;&lt;h3 id=&#34;пример-изображения&#34;&gt;Пример изображения&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./images/example.jpg&#34; alt=&#34;Пример изображения&#34; title=&#34;Пример изображения&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;список-возможностей&#34;&gt;Список возможностей&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Режим чтения&lt;/li&gt;&#xA;&lt;li&gt;Озвучка текста&lt;/li&gt;&#xA;&lt;li&gt;Навигация между статьями&lt;/li&gt;&#xA;&lt;li&gt;Адаптивный дизайн&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Все эти функции помогают создать комфортную среду для чтения и восприятия информации.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Пример статьи 1</title>
				<link>https://www.bvpyar.ru/posts/post1/</link>
				<pubDate>Sun, 01 Jan 2023 10:00:00 +0000</pubDate>
				<guid>https://www.bvpyar.ru/posts/post1/</guid>
				<description>&lt;h1 id=&#34;заголовок-первой-статьи&#34;&gt;Заголовок первой статьи&lt;/h1&gt;&#xA;&lt;p&gt;Это пример статьи для тестирования функций темы. В этой теме реализованы следующие функции:&lt;/p&gt;&#xA;&lt;h2 id=&#34;режим-чтения&#34;&gt;Режим чтения&lt;/h2&gt;&#xA;&lt;p&gt;Режим чтения упрощает восприятие текста, убирая лишние элементы интерфейса и оптимизируя отображение текста для комфортного чтения.&lt;/p&gt;&#xA;&lt;h2 id=&#34;озвучка-текста&#34;&gt;Озвучка текста&lt;/h2&gt;&#xA;&lt;p&gt;Функция озвучки текста позволяет прослушать содержимое статьи. В браузере Yandex реализована специальная поддержка текста-в-речь.&lt;/p&gt;&#xA;&lt;h2 id=&#34;навигация-по-статьям&#34;&gt;Навигация по статьям&lt;/h2&gt;&#xA;&lt;p&gt;Вы можете переходить к следующей или предыдущей статье с помощью кнопок навигации или клавиш со стрелками.&lt;/p&gt;&#xA;&lt;h3 id=&#34;пример-кода&#34;&gt;Пример кода&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Привет, мир!&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;пример-цитаты&#34;&gt;Пример цитаты&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Это пример цитаты, которая выделяется визуально и помогает акцентировать внимание на важной информации.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
