<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on AveryanAlex's blog</title><link>https://averyan.ru/post/</link><description>Recent content in Posts on AveryanAlex's blog</description><generator>Hugo -- gohugo.io</generator><language>ru</language><lastBuildDate>Wed, 18 Jun 2025 02:47:32 +0300</lastBuildDate><atom:link href="https://averyan.ru/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Установка KDE Connect (GSConnect) на NixOS</title><link>https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-kde-connect-gsconnect-%D0%BD%D0%B0-nixos/</link><pubDate>Fri, 13 Sep 2024 01:20:52 +0300</pubDate><guid>https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-kde-connect-gsconnect-%D0%BD%D0%B0-nixos/</guid><description>&lt;h2 id="kde">KDE
&lt;/h2>&lt;h3 id="без-использования-home-manager">Без использования home manager
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-nix" data-lang="nix">&lt;span class="line">&lt;span class="cl">&lt;span class="n">programs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">kdeconnect&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">enable&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># нужные порты будут открыты автоматически&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="с-home-manager">С home manager
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-nix" data-lang="nix">&lt;span class="line">&lt;span class="cl">&lt;span class="n">home-manager&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">users&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">username&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">services&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">kdeconnect&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">enable&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># home-manager не может менять системные настройки, поэтому откроем порты вручную&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># скопировано из https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/programs/kdeconnect.nix&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">networking&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">firewall&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">rec&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">allowedTCPPortRanges&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1714&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1764&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}&lt;/span> &lt;span class="p">];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">allowedUDPPortRanges&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">allowedTCPPortRanges&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="gnome">GNOME
&lt;/h2>&lt;h3 id="без-использования-home-manager-1">Без использования home manager
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-nix" data-lang="nix">&lt;span class="line">&lt;span class="cl">&lt;span class="n">programs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">kdeconnect&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">enable&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">package&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pkgs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gnomeExtensions&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gsconnect&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>После этого необходимо включить расширение GSConnect в приложении &amp;ldquo;Расширения&amp;rdquo;
(Extensions).&lt;/p>
&lt;h3 id="с-home-manager-1">С home manager
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-nix" data-lang="nix">&lt;span class="line">&lt;span class="cl">&lt;span class="n">home-manager&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">users&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">username&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">programs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gnome-shell&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">enable&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="no">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">extensions&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[{&lt;/span> &lt;span class="n">package&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pkgs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gnomeExtensions&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gsconnect&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># home-manager не может менять системные настройки, поэтому откроем порты вручную&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># скопировано из https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/programs/kdeconnect.nix&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">networking&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">firewall&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">rec&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">allowedTCPPortRanges&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1714&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1764&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}&lt;/span> &lt;span class="p">];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">allowedUDPPortRanges&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">allowedTCPPortRanges&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Home Manager автоматически добавит расширение в список включенных в dconf,
поэтому включать его через &amp;ldquo;Расширения&amp;rdquo; не потребуется.&lt;/p></description></item><item><title>ПикчеХранитель: бот для сохранения и поиска картинок</title><link>https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/</link><pubDate>Tue, 02 Apr 2024 12:59:30 +0300</pubDate><guid>https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/</guid><description>&lt;img src="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-question-cucumber.jpg" alt="Featured image of post ПикчеХранитель: бот для сохранения и поиска картинок" />&lt;h2 id="зачем-нужен-пикчехранитель">Зачем нужен ПикчеХранитель?
&lt;/h2>&lt;p>У вас когда-нибудь было такое, что вы хотите отправить в чат пикчу, помните, что
на ней было, но не можете её найти в галерее? У меня &amp;ndash; да. Именно поэтому я
сделал телеграм-бота &lt;a class="link" href="https://t.me/picsavbot" target="_blank" rel="noopener"
>@picsavbot&lt;/a>, решающего эту
проблему. Просто отправляйте ему понравившиеся картинки (а также стикеры и
видео) и он сохранит их в вашу персональную библиотеку. Теперь вы сможете
использовать ту самую пикчу в тот самый момент в любом чате, просто написав в
поле ввода текста &lt;code>@picsavbot описание пикчи&lt;/code>.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-scp-orderly.jpg"
width="1080"
height="695"
srcset="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-scp-orderly_hu_882760aedd0a0ed1.jpg 480w, https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-scp-orderly_hu_147fffadf16ba4f3.jpg 1024w"
loading="lazy"
alt="Поиск мема “Secure. Contain. Cure.” в @picsavbot"
class="gallery-image"
data-flex-grow="155"
data-flex-basis="372px"
>&lt;/p>
&lt;h2 id="как-правильно-составлять-запросы">Как правильно составлять запросы
&lt;/h2>&lt;p>Если вы введёте &amp;ldquo;жирный кот&amp;rdquo;, сначала (при наличии у вас таких изображений,
конечно) вы увидите жирных котов, затем просто котов, и далее, скорее всего,
других животных. Нейросеть CLIP не очень хороша в чтении текста, но всё же
немного может понимать английский. Зато зачастую она хорошо узнаёт логотипы &amp;ndash;
например, minecraft или &lt;a class="link" href="https://scpfoundation.net/" target="_blank" rel="noopener"
>фонда SCP&lt;/a>. Но о мемах у
неё знаний почти нет &amp;ndash; составляйте описания того, что находится на искомой
картинке как для своей бабушки.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Что вы хотите найти&lt;/th>
&lt;th>Хороший поисковой запрос&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Шлёпа&lt;/td>
&lt;td>Кот с большими ушами&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Гигачад&lt;/td>
&lt;td>Накачанный мужчина&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Гачи мем&lt;/td>
&lt;td>Драка в раздевалке&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Дурка&lt;/td>
&lt;td>Санитар протянул руку&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Это среда мои чуваки&lt;/td>
&lt;td>Жаба&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Амогус&lt;/td>
&lt;td>Красный космонавт&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-cute-animal.jpg"
width="1080"
height="864"
srcset="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-cute-animal_hu_b30b97258f42acdc.jpg 480w, https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-cute-animal_hu_8148895ee576c997.jpg 1024w"
loading="lazy"
alt="Поиск “милое животные” в боте @picsavbot"
class="gallery-image"
data-flex-grow="125"
data-flex-basis="300px"
>&lt;/p>
&lt;h2 id="принцип-работы-бота">Принцип работы бота
&lt;/h2>&lt;p>Вы отправляете изображение/стикер/видео telegram-боту
&lt;a class="link" href="https://t.me/picsavbot" target="_blank" rel="noopener"
>@picsavbot&lt;/a>, он отдаёт его на анализ нейросети
&lt;a class="link" href="https://openai.com/research/clip" target="_blank" rel="noopener"
>CLIP&lt;/a> (используется модель от LAION
&lt;a class="link" href="https://huggingface.co/laion/CLIP-ViT-H-14-laion2B-s32B-b79K" target="_blank" rel="noopener"
>CLIP-ViT-H-14-laion2B-s32B-b79K&lt;/a>)
и сохраняет результат (многомерный вектор, соответствующий содержимому картинки)
в базу данных PostgreSQL с плагином для хранения и поиска векторов
&lt;a class="link" href="https://github.com/pgvector/pgvector" target="_blank" rel="noopener"
>pgvector&lt;/a>. При сохранении анимированного
стикера или видео берётся его превью, обычно соответствующее первому кадру.&lt;/p>
&lt;p>Чтобы найти нужную пикчу среди сохранённых, вы можете ввести в поле отправки
сообщения в любом чате &lt;code>@picsavbot описание картинки&lt;/code>. С помощью
Яндекс.Переводчика бот переведёт введённое описание на английский язык,
проанализирует его с помощью CLIP и найдёт в базе данных наиболее подходящие по
&lt;a class="link" href="https://en.wikipedia.org/wiki/Cosine_similarity" target="_blank" rel="noopener"
>cosine similarity&lt;/a> картинки.&lt;/p>
&lt;p>Когда вы отправите одну из найденных картинок, бот увеличит количество её
использований в своей базе данных, и в случае отсутствия поискового запроса (вы
ввели &lt;code>@picsavbot&lt;/code> без продолжения) будет сначала отображать наиболее часто
используемые пикчи и стикеры.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-python.jpg"
width="1080"
height="486"
srcset="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-python_hu_f8ac1218fa240b08.jpg 480w, https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-python_hu_aa31867b2bf47f7.jpg 1024w"
loading="lazy"
alt="Поиск мема “на python удобнее” с помощью телеграм бота
@picsavbot"
class="gallery-image"
data-flex-grow="222"
data-flex-basis="533px"
>&lt;/p>
&lt;h2 id="о-проекте">О проекте
&lt;/h2>&lt;p>Исходный код: &lt;a class="link" href="https://github.com/averyanalex/picsavbot" target="_blank" rel="noopener"
>averyanalex/picsavbot&lt;/a>.&lt;/p>
&lt;p>Языки программирования: Rust, Python.&lt;/p>
&lt;p>Ключевые библиотеки: &lt;a class="link" href="https://tokio.rs/" target="_blank" rel="noopener"
>tokio&lt;/a> (асинхронный рантайм),
&lt;a class="link" href="https://github.com/teloxide/teloxide" target="_blank" rel="noopener"
>teloxide&lt;/a> (фреймворк для создания
telegram-ботов), &lt;a class="link" href="https://www.sea-ql.org/SeaORM/" target="_blank" rel="noopener"
>seaorm&lt;/a> (работа с базой
данных).&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-postman-pechkin.jpg"
width="1080"
height="486"
srcset="https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-postman-pechkin_hu_7e50038ae83b9fe4.jpg 480w, https://averyan.ru/p/%D0%BF%D0%B8%D0%BA%D1%87%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B1%D0%BE%D1%82-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA/picsavbot-postman-pechkin_hu_a39ee03df57d397a.jpg 1024w"
loading="lazy"
alt="Почтальон Печкин"
class="gallery-image"
data-flex-grow="222"
data-flex-basis="533px"
>&lt;/p></description></item><item><title>Как лень и любопытство сэкономили мне десятки часов времени</title><link>https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/</link><pubDate>Tue, 26 Mar 2024 23:08:36 +0300</pubDate><guid>https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/</guid><description>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/bot-v2-example.png" alt="Featured image of post Как лень и любопытство сэкономили мне десятки часов времени" />&lt;h2 id="о-проекте">О проекте
&lt;/h2>&lt;p>Исходный код:
&lt;a class="link" href="https://github.com/averyanalex/matetech-answers-bot" target="_blank" rel="noopener"
>github.com/averyanalex/matetech-answers-bot&lt;/a>.&lt;/p>
&lt;p>Языки программирования: Rust, SQL.&lt;/p>
&lt;p>Ключевые библиотеки:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://tokio.rs/" target="_blank" rel="noopener"
>tokio&lt;/a> (асинхронный рантайм)&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/seanmonstar/reqwest" target="_blank" rel="noopener"
>reqwest&lt;/a> (http клиент)&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/launchbadge/sqlx" target="_blank" rel="noopener"
>sqlx&lt;/a> (работа с базой данных)&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/teloxide/teloxide" target="_blank" rel="noopener"
>teloxide&lt;/a> (фреймворк для создания
telegram-ботов)&lt;/li>
&lt;/ul>
&lt;h2 id="история-создания">История создания
&lt;/h2>&lt;p>В 9 классе я поступил в &amp;ldquo;олимпиадную&amp;rdquo; школу. Хорошая школа, в которой почти не
было &amp;ldquo;лишних&amp;rdquo; предметов и можно было спокойно готовиться к олимпиадам. Многие
непрофильные предметы, например биология, были в виде так называемых
дистанционных курсов, которые работают примерно так: открываешь сайт системы
онлайн-обучения, смотришь 10-15 минутную лекцию, делаешь тест, &lt;del>ища в интернете
ответы&lt;/del>, и получаешь свои кровные 80-100% правильных ответов.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/test-example.png"
width="1284"
height="637"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/test-example_hu_b7d5e18954f46ccb.png 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/test-example_hu_59d84e3edd54f02a.png 1024w"
loading="lazy"
alt="Пример того, как выглядит тест"
class="gallery-image"
data-flex-grow="201"
data-flex-basis="483px"
>&lt;/p>
&lt;h3 id="идея-и-первая-версия">Идея и первая версия
&lt;/h3>&lt;p>Процесс, честно говоря, достаточно скучный. А что нужно делать, когда становится
скучно с открытым браузером? Правильно, открывать режим разработчика. Потыкать
код элемента и показать друзьям, как ты сделал тест на 200% за 3 секунды.
Открыть вкладу &amp;ldquo;сеть&amp;rdquo; и посмотреть, что и куда перес ылает сайт, пока делаешь
тест. Сделать тест и открыть результаты&amp;hellip;&lt;/p>
&lt;p>И тут оказывается, что в json-е с результатами теста есть правильные ответы,
хотя сам сайт их не показывает! Интересно. Нужно копать дальше. Копируем запрос
как curl и запускаем в терминале. Отлично, видим этот самый json. Запускаем
новый тест, меняем айди попытки теста в запросе, и&amp;hellip; получаем ответ от сервера!
С результатами выполнения теста (и правильными ответами) &lt;strong>до завершения этого
самого теста&lt;/strong>.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/result-question.png"
width="498"
height="743"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/result-question_hu_b602e27709dc3883.png 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/result-question_hu_f834d09e6cf964ee.png 1024w"
loading="lazy"
alt="Результат теста с вопросами и списками вариантов ответов и пометкой о том,
какой из них верный"
class="gallery-image"
data-flex-grow="67"
data-flex-basis="160px"
>&lt;/p>
&lt;p>Находка, конечно, интересная. Но хочется и одноклассникам с тестами помочь, да и
в консоль лишний раз не лазать. Прошу знакомого скинуть мне айди попытки
какого-нибудь его теста, подставляю&amp;hellip; работает! Убираю у запроса заголовок с
авторизацией - получаю ошибку доступа. Получается, гении-разработчики платформы
дистанционного обучения сделалали проверку наличия авторизации (как я помню,
валидной - случайный токен не подойдёт), а вот на права доступа успешно забили.
Ну, молодцы, хоть что-то они сделали.&lt;/p>
&lt;p>Дальше дело техники. Написал простенького &lt;a class="link" href="https://github.com/averyanalex/matetech-answers-bot/tree/legacy" target="_blank" rel="noopener"
>телеграм-бота на
питоне&lt;/a>,
который, получая айди теста, присылал ответы на все вопросы. Но &amp;ldquo;палить
контору&amp;rdquo;, что ответы на тесты вот так висят фактически в общем доступе на сайте
не хочется, а значит и существование бота. Переделал бота - теперь он, встречая
айди попытки для теста, который он ещё не видел, отправляет ответы в публичный
телеграм канал. Как будто тесты прорешаны вручную и никаких приколов сайта нет.&lt;/p>
&lt;p>Сарафанное радио сделало своё дело - за год аудитория телеграм-канала достигла
нескольких сот человек.&lt;/p>
&lt;h3 id="вторая-версия">Вторая версия
&lt;/h3>&lt;p>Уязвимость, даже нет, настоящая пробоина была настолько очевидна, что её нашло
достаточно много людей. И к следующему году один &lt;del>гениальный&lt;/del> странный ученик
мат-инфо профиля сделал проект на тему &amp;ldquo;Уязвимости платформы дистанционных
курсов&amp;rdquo;, как-то так он назывался. Что конкретно в нём было - я не знаю, но часть
проблем после этого исправили. Во первых, получать результаты чужого теста
стало невозможно, во вторых, для тестовых вопросов (там где надо выбрать вариант
ответа) перестали показывать верный ответ в результатах.&lt;/p>
&lt;p>Стало понятно, что бот нужно усложнять, и дорабатывать для этого прототип
(проработавший больше года) на питоне не хотелось. С другом решили написать
&lt;a class="link" href="https://github.com/averyanalex/matetech-answers-bot" target="_blank" rel="noopener"
>новую версию на расте&lt;/a>,
т.к. знали его лучше. Сделали вход в аккаунт с сохранением токена в базу данных.
Стало возможным получать результаты теста для разных людей.&lt;/p>
&lt;p>Осталась лишь проблема с тестовыми вопросами - на них, в отличии от вопросов с
вводом текста, ответов не было. Но, внимательно посмотрев на то, что лежит в
json-е, я заметил там &amp;ldquo;балл&amp;rdquo;. Который, как оказалось, равен нулю, если текущий
сохранённый ответ неверный, и &amp;gt;0, если ответ верный. Отлично, значит можно
просто перебрать все варианты, пока балл не изменится.&lt;/p>
&lt;p>Для этого, конечно, понадобилось научить бота отвечать на вопросы
самостоятельно. В целом, это оказалось довольно несложно, и в качестве бонуса мы
получили возможность автоматического выполнения теста, а не только получение
ответов на него. Круто, теперь &amp;ldquo;тесты выполняются у всех автоматически, и никто
их двже не открывает!&amp;rdquo; (Отсылка к номеру на выпускном 9 класса. В тот момент это
ещё не было правдой).&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/bot-solving.png"
width="407"
height="43"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/bot-solving_hu_70d5a14195fee627.png 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/bot-solving_hu_80b72e996bfbc5eb.png 1024w"
loading="lazy"
alt="Бот трудится"
class="gallery-image"
data-flex-grow="946"
data-flex-basis="2271px"
>&lt;/p>
&lt;p>Примерно так, спустя пару вечеров растокодинга, была написана вторая версия бота
для получения ответов на дисткурсы. Выкатили в релиз, отправили на него ссылку в
телеграм канал. Регистрироваться торопились не все - почему-то многие боялись
отправлять логин/пароль от аккаунта на сайте дисткурсов в наш бот. Но это, как
сказать, их проблемы: не хотят использовать - пусть не используют.&lt;/p>
&lt;h3 id="попытки-закрыть-бота">Попытки закрыть бота
&lt;/h3>&lt;p>Вскоре нашлись достаточно предпреимчивые школьники, которые решили попробовать
на этом заработать. Сделали сами подобного бота (с оплатой за использование) и
начали мне писать с предложениями закрыть бота. Хотя нет, кажется, первый раз
они это предлагали ещё тогда, когда вместо бота были телеграм каналы, но менее
активно.&lt;/p>
&lt;p>Предлагали супер выгодные (нет) сделки: сделать моего бота платным и с такой же
ценой, как у них, или закрыть своего и получать до 10% с их прибыли. Я, конечно
же, отказался, и ради прикола предложил им цену в 300к. Цена их почему-то не
устроила. Я думал, что на этом всё, но не тут-то было&amp;hellip;&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/paid-bot-idea.jpg"
width="576"
height="661"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/paid-bot-idea_hu_eacaa48721c79de6.jpg 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/paid-bot-idea_hu_f5669e0503aa0904.jpg 1024w"
loading="lazy"
alt="Предлагают сделать бота платным"
class="gallery-image"
data-flex-grow="87"
data-flex-basis="209px"
>&lt;/p>
&lt;p>Они сделали канал, где стали писать, что я, мол, такой-сякой, сделал бота чтобы
красть данные от аккаунтов и прохожу им тесты на 0 баллов. Сделали мой фейковый
профиль, наскринили переписки якобы со мной, где &amp;ldquo;я&amp;rdquo; пишу, что списывать плохо и
поэтому прошёл им тесты на нули. Не знаю, кто им поверил, но, кажется, почти
никто. Кто именно это был я до сих пор не знаю, да и не особо оно мне надо.&lt;/p>
&lt;h2 id="примеры-багов-платформы">Примеры багов платформы
&lt;/h2>&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/125-100.jpg"
width="1280"
height="427"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/125-100_hu_388b450ef3c5f32f.jpg 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/125-100_hu_d0a04ed684bd1132.jpg 1024w"
loading="lazy"
alt="Правильно сделано 3/4 задания, но в процентах - 125%"
class="gallery-image"
data-flex-grow="299"
data-flex-basis="719px"
>&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/full-but-not-pass.jpg"
width="1280"
height="306"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/full-but-not-pass_hu_608b8e01959d37a6.jpg 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BB%D0%B5%D0%BD%D1%8C-%D0%B8-%D0%BB%D1%8E%D0%B1%D0%BE%D0%BF%D1%8B%D1%82%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BB%D0%B8-%D0%BC%D0%BD%D0%B5-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%B8-%D1%87%D0%B0%D1%81%D0%BE%D0%B2-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8/full-but-not-pass_hu_54c44d51b6cf9ab0.jpg 1024w"
loading="lazy"
alt="Тест не сдан, но сделано всё верно. Оказывается, менять ответы можно после
завершения теста."
class="gallery-image"
data-flex-grow="418"
data-flex-basis="1003px"
>&lt;/p></description></item><item><title>Установка Yggdrasil на Windows</title><link>https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/</link><pubDate>Wed, 14 Dec 2022 23:33:19 +0300</pubDate><guid>https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/</guid><description>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/install-process.png" alt="Featured image of post Установка Yggdrasil на Windows" />&lt;h2 id="что-такое-yggdrasil">Что такое Yggdrasil?
&lt;/h2>&lt;p>Yggdrasil - децентрализованная меш-сеть, все участники которой равноправны.
Каждому компьютеру в сети (ноде) назначается статический публичный IPv6 адрес, и
все остальные участники сети могут обращаться к нему напрямую.&lt;/p>
&lt;p>Это можно использовать, например, для игры в сетевые игры в разных локальных
сетях. Один игрок запускает Minecraft сервер без платного &amp;ldquo;белого&amp;rdquo; IP, а второй
подключается к нему из другого города по Yggdrasil.&lt;/p>
&lt;h2 id="установка">Установка
&lt;/h2>&lt;p>Приступим к установке - скачаем и установим Yggdrasil, настроим пиры для
подключения, проверим работоспособность и получим собственный IP-адрес.&lt;/p>
&lt;h3 id="скачивание-установщика">Скачивание установщика
&lt;/h3>&lt;p>Откройте страницу с &lt;a class="link" href="https://github.com/yggdrasil-network/yggdrasil-go/releases/latest" target="_blank" rel="noopener"
>последним
релизом&lt;/a>
Yggdrasil на GitHub.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/yggdrasil-releases.png"
width="849"
height="1303"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/yggdrasil-releases_hu_cddd32cdc4b7d75d.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/yggdrasil-releases_hu_7433e092ffce79cd.png 1024w"
loading="lazy"
alt="Страница последнего релиза Yggdrasil на GitHub"
class="gallery-image"
data-flex-grow="65"
data-flex-basis="156px"
>&lt;/p>
&lt;p>Найдите там файл &lt;code>yggdrasil-x.y.z-x64.msi&lt;/code> (для версии 0.4.7 это
&lt;code>yggdrasil-0.4.7-x64.msi&lt;/code>). Если же у вас 32-битная система (из 2000-х годов),
скачайте файл &lt;code>yggdrasil-x.y.z-x86.msi&lt;/code>.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/windows-installers.png"
width="836"
height="62"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/windows-installers_hu_59f6022fb45a2935.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/windows-installers_hu_addc40075fb5952a.png 1024w"
loading="lazy"
alt="Установочные MSI файлы Yggdrasil для Windows на
GitHub"
class="gallery-image"
data-flex-grow="1348"
data-flex-basis="3236px"
>&lt;/p>
&lt;h3 id="установка-msi">Установка MSI
&lt;/h3>&lt;p>Откройте установочный MSI файл.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-yggdrasil-installer.png"
width="1014"
height="726"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-yggdrasil-installer_hu_562bbbf536f38167.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-yggdrasil-installer_hu_8eb7a424fcdc6e9c.png 1024w"
loading="lazy"
alt="Проводник Windows с MSI установщиком Yggdrasil"
class="gallery-image"
data-flex-grow="139"
data-flex-basis="335px"
>&lt;/p>
&lt;p>Подтвердите запуск (нажмите &amp;ldquo;&lt;strong>Запустить&lt;/strong>&amp;rdquo;).&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/installer-security-warning.png"
width="466"
height="359"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/installer-security-warning_hu_9fe42904182d805c.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/installer-security-warning_hu_31591b923c2738b.png 1024w"
loading="lazy"
alt="Предупреждение системы безопасности Windows"
class="gallery-image"
data-flex-grow="129"
data-flex-basis="311px"
>&lt;/p>
&lt;p>При запросе предоставьте установщику права администратора.&lt;/p>
&lt;p>После этого откроется окно установщика и &lt;strong>дополнительных вопросов задаваться не
будет&lt;/strong>. После завершения установки (она длится несколько секунд) это окно
&lt;strong>сразу закроется&lt;/strong>.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/install-process.png"
width="394"
height="149"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/install-process_hu_76be2752b3f76de9.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/install-process_hu_45a29169b005c5cd.png 1024w"
loading="lazy"
alt="Установщик Yggdrasil"
class="gallery-image"
data-flex-grow="264"
data-flex-basis="634px"
>&lt;/p>
&lt;p>На этом процесс установки завершён, и мы переходим к настройке.&lt;/p>
&lt;h4 id="ошибка-2503">Ошибка 2503
&lt;/h4>&lt;p>Иногда при установке MSI файлов может появляться ошибка 2503. Откройте свойства
папки &lt;code>C:\Windows\Temp&lt;/code>, перейдите в раздел &amp;ldquo;Безопасность&amp;rdquo; и убедитесь, что у
группы Администраторы и у вашего пользователя (если его нет в списке, добавьте)
есть все права. Информация взята с сайта &lt;a class="link" href="https://answers.microsoft.com/en-us/windows/forum/all/error-code-2503-2502-when-installing-msi-file/0aa6840f-e625-4075-b1c5-051da100c151" target="_blank" rel="noopener"
>Microsoft
Community&lt;/a>.&lt;/p>
&lt;h2 id="настройка-пиров">Настройка пиров
&lt;/h2>&lt;p>Пиры - это те сервера, к которым подключается Yggdrasil, чтобы получить доступ к
остальной сети.&lt;/p>
&lt;p>Лучше выбрать один общий стабильно работающий пир для всех игроков - так пинг
будет минимален, и через вас не пойдёт трафик других людей, забивая интернет
канал (пересылка трафика - задача публичных пиров).&lt;/p>
&lt;h3 id="выбор-пиров">Выбор пиров
&lt;/h3>&lt;p>Существует репозиторий со &lt;a class="link" href="https://github.com/yggdrasil-network/public-peers" target="_blank" rel="noopener"
>списком публичных
пиров&lt;/a> на GitHub. Пиры в нём
сгруппированы по континентам, странам и городам. Лучше выбирать те пиры, что
ближе к хосту - так пинг у всех игроков будет меньше.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/public-peers.png"
width="1062"
height="1190"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/public-peers_hu_dfcabb03bc39da0a.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/public-peers_hu_41863254a78a0ce0.png 1024w"
loading="lazy"
alt="Список публичных пиров Yggdrasil в России"
class="gallery-image"
data-flex-grow="89"
data-flex-basis="214px"
>&lt;/p>
&lt;p>Например, можно использовать мой пир (г. Москва): &lt;code>tls://ygg-msk-1.averyan.ru:8363&lt;/code>
или &lt;code>quic://ygg-msk-1.averyan.ru:8364&lt;/code> (&lt;code>quic&lt;/code> вариант предпочтительнее, если он у вас
работает и не заблокирован).&lt;/p>
&lt;p>Но, возможно, не все из них работают - проверить &lt;a class="link" href="https://publicpeers.neilalexander.dev/" target="_blank" rel="noopener"
>список доступных
пиров&lt;/a> можно на сайте разработчика сети.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/peers-status.png"
width="1113"
height="741"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/peers-status_hu_5afd9932ac2b2961.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/peers-status_hu_6f8a5346533623fa.png 1024w"
loading="lazy"
alt="Статус публичных пиров сети Yggdrasil"
class="gallery-image"
data-flex-grow="150"
data-flex-basis="360px"
>&lt;/p>
&lt;h3 id="редактируем-конфиг">Редактируем конфиг
&lt;/h3>&lt;p>Нажмите сочетание клавиш &lt;code>Win+R&lt;/code>, чтобы запустить приложение &amp;ldquo;Выполнить&amp;rdquo;.
Введите в нём путь до конфига: &lt;code>%ALLUSERSPROFILE%\Yggdrasil\yggdrasil.conf&lt;/code>&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-config.png"
width="431"
height="208"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-config_hu_9478197588432a66.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-config_hu_b629a1a1f0e6f9e5.png 1024w"
loading="lazy"
alt="Окно приложения “Выполнить” с путём до конфига Yggdrasil"
class="gallery-image"
data-flex-grow="207"
data-flex-basis="497px"
>&lt;/p>
&lt;p>Нажмите OK. Если у вас спрашивают, как открыть файл - выберите Блокнот.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/original-config.png"
width="760"
height="590"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/original-config_hu_8c9edf7f72506bf2.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/original-config_hu_81ff9327140d0d63.png 1024w"
loading="lazy"
alt="Конфиг Yggdrasil сразу после установки"
class="gallery-image"
data-flex-grow="128"
data-flex-basis="309px"
>&lt;/p>
&lt;p>Введите выбранные вами пиры в список Peers.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Peers: [
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tls://ygg.averyan.ru:8362
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> tcp://box.paulll.cc:13337
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/peers-config.png"
width="760"
height="590"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/peers-config_hu_1fff84beff57e1ed.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/peers-config_hu_71675be3317a8307.png 1024w"
loading="lazy"
alt="Конфиг Yggdrasil с указанными пирами"
class="gallery-image"
data-flex-grow="128"
data-flex-basis="309px"
>&lt;/p>
&lt;p>Сохраните конфиг сочетанием клавиш &lt;code>Ctrl+S&lt;/code> или в меню &amp;ldquo;Файл&amp;rdquo;.&lt;/p>
&lt;h3 id="перезапуск-yggdrasil">Перезапуск Yggdrasil
&lt;/h3>&lt;p>Чтобы Yggdrasil применил новые настройки, нужно его перезапустить. Самый
очевидный (но долгий) способ - перезагрузить компьютер. Мы же перезапустим его в
диспетчере задач.&lt;/p>
&lt;p>Откройте Диспетчер Задач сочетанием клавиш &lt;code>Ctrl+Shift+Esc&lt;/code> или кликом правой
кнопкой мыши по значку Windows (кнопке Пуск) в панели задач.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-task-manager.png"
width="374"
height="616"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-task-manager_hu_86133222c8bb7831.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-task-manager_hu_574b1384ca2379c9.png 1024w"
loading="lazy"
alt="Диспетчер задач в контекстном меню кнопки Пуск"
class="gallery-image"
data-flex-grow="60"
data-flex-basis="145px"
>&lt;/p>
&lt;p>Если открылась упрощённая версия Диспетчера задач - нажмите кнопку &amp;ldquo;Подробнее&amp;rdquo;.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/task-manager-mini.png"
width="365"
height="365"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/task-manager-mini_hu_27aa009e0a19d153.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/task-manager-mini_hu_428c80f553b5c924.png 1024w"
loading="lazy"
alt="Упрощённая версия Диспетчера задач"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>Откройте вкладу &amp;ldquo;Службы&amp;rdquo;, найдите в самом низу Yggdrasil, нажмите по нему
правкой кнопкой мыши и перезапустите.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/task-manager-restart-yggdrasil.png"
width="890"
height="541"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/task-manager-restart-yggdrasil_hu_e67e69dbb8f043ff.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/task-manager-restart-yggdrasil_hu_53d6b6b89f68e87a.png 1024w"
loading="lazy"
alt="Перезапуск службы Yggdrasil в Диспетчере
задач"
class="gallery-image"
data-flex-grow="164"
data-flex-basis="394px"
>&lt;/p>
&lt;h2 id="последние-шаги">Последние шаги
&lt;/h2>&lt;p>Установка и настройка завершена - осталось проверить, всё ли работает и узнать
свой IP-адрес.&lt;/p>
&lt;h3 id="проверка-работоспособности">Проверка работоспособности
&lt;/h3>&lt;p>Запустите Командную строку.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-cmd.png"
width="800"
height="750"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-cmd_hu_95895407cf3a7ab5.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/open-cmd_hu_e71faaeecaee70c4.png 1024w"
loading="lazy"
alt="Поиск Командной строки Windows"
class="gallery-image"
data-flex-grow="106"
data-flex-basis="256px"
>&lt;/p>
&lt;p>Введите команду &lt;code>&amp;quot;C:\Program Files\Yggdrasil\yggdrasilctl.exe&amp;quot; getPeers&lt;/code>, чтобы
посмотреть список подключенных пиров. Их должно быть столько, сколько вы
указали. Если их меньше - какие то пиры недоступны.&lt;/p>
&lt;p>Если при вводе этой команды возникает ошибка, попробуйте перезагрузить
компьютер.&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-getpeers.png"
width="1663"
height="267"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-getpeers_hu_8111f1ea6a7f5f3c.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-getpeers_hu_e0151ad85dcaf771.png 1024w"
loading="lazy"
alt="Запуск команды yggdrasil getPeers в Командной строке
Windows"
class="gallery-image"
data-flex-grow="622"
data-flex-basis="1494px"
>&lt;/p>
&lt;p>Попробуйте открыть и попинговать &lt;a class="link" href="http://[319:3cf0:dd1d:47b9:20c:29ff:fe2c:39be]/" target="_blank" rel="noopener"
>сайт
Yggdrasil&lt;/a> (&lt;strong>доступен только
из сети Yggdrasil&lt;/strong> и может грузиться достаточно долго):&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">ping &lt;span class="o">[&lt;/span>319:3cf0:dd1d:47b9:20c:29ff:fe2c:39be&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-ping.png"
width="1663"
height="514"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-ping_hu_6c7ab97de55b5ce1.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-ping_hu_7e09031ec9776842.png 1024w"
loading="lazy"
alt="Запуск команды ping для проверки работоспособности Yggdrasil"
class="gallery-image"
data-flex-grow="323"
data-flex-basis="776px"
>&lt;/p>
&lt;h3 id="получение-своего-ip-адреса">Получение своего IP-адреса
&lt;/h3>&lt;p>Чтобы узнать свой IP-адрес, введите команду &lt;code>&amp;quot;C:\Program Files\Yggdrasil\yggdrasilctl.exe&amp;quot; getSelf&lt;/code>:&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-getself.png"
width="772"
height="495"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-getself_hu_f026a988d6fff108.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/cmd-getself_hu_c54ee5f9b349617a.png 1024w"
loading="lazy"
alt="Получение собственного IP-адреса в сети Yggdrasil"
class="gallery-image"
data-flex-grow="155"
data-flex-basis="374px"
>&lt;/p>
&lt;p>На месте выделенной строки будет ваш IPv6-адрес в сети Yggdrasil.&lt;/p>
&lt;p>Можно заметить, что пинг до собственного адреса практическо нулевой.&lt;/p>
&lt;h2 id="настройка-игр">Настройка игр
&lt;/h2>&lt;p>Теперь Yggdrasil установлен на ваш компьютер и работает. Давайте применим его
для сетевой игры.&lt;/p>
&lt;h3 id="minecraft">Minecraft
&lt;/h3>&lt;p>Установите Yggdrasil на то устройство, которое будет хостить сервер и на те,
которые будут к нему подключаться.&lt;/p>
&lt;p>Запустите сетевую игру на хосте (&lt;strong>Open to LAN&lt;/strong>) и запомните порт:&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-start-lan-game.png"
width="930"
height="753"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-start-lan-game_hu_58b318b77efed5db.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-start-lan-game_hu_4bcc7fed31e72332.png 1024w"
loading="lazy"
alt="Открытие локального сервера в Minecraft"
class="gallery-image"
data-flex-grow="123"
data-flex-basis="296px"
>&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-server-port.png"
width="708"
height="70"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-server-port_hu_61553f51cbb7219e.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-server-port_hu_36d2964be9cd8d3f.png 1024w"
loading="lazy"
alt="Порт локального сервера Minecraft"
class="gallery-image"
data-flex-grow="1011"
data-flex-basis="2427px"
>&lt;/p>
&lt;p>Узнайте IP-адрес хоста. (В моём случае это
&lt;code>200:d08:17f6:af6e:b285:16de:d3ba:387a&lt;/code>)&lt;/p>
&lt;p>Подключитель к серверу (введите айпи &lt;strong>в квадратных скобках&lt;/strong> и укажите порт
через двоеточие):&lt;/p>
&lt;p>&lt;img src="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-connect.png"
width="863"
height="221"
srcset="https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-connect_hu_794b44a8429f3bf2.png 480w, https://averyan.ru/p/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-yggdrasil-%D0%BD%D0%B0-windows/minecraft-connect_hu_5088bec9b77b0237.png 1024w"
loading="lazy"
alt="Подключение к Minecraft серверу по Yggdrasil"
class="gallery-image"
data-flex-grow="390"
data-flex-basis="937px"
>&lt;/p>
&lt;p>Если подключиться не удаётся, попробуйте настроить Брандмауэр Windows или вовсе
его отключить, а так-же проверить пинг до хоста.&lt;/p>
&lt;p>Готово! Теперь мы можете играть в Minecraft со своими друзьями в любое время.&lt;/p></description></item><item><title>Как проверить качество FLAC?</title><link>https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/</link><pubDate>Sun, 28 Aug 2022 18:19:11 +0300</pubDate><guid>https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/</guid><description>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/spek.png" alt="Featured image of post Как проверить качество FLAC?" />&lt;h2 id="как-можно-отличить-кодеки-с-потерями-такие-как-mp3">Как можно отличить кодеки с потерями, такие как MP3?
&lt;/h2>&lt;p>Я не буду подробно рассказывать про принципы работы аудиокодеков с потерями, об
этом можно почитать в
&lt;a class="link" href="https://ru.wikipedia.org/wiki/%D0%A1%D0%B6%D0%B0%D1%82%D0%B8%D0%B5_%D0%B0%D1%83%D0%B4%D0%B8%D0%BE%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" target="_blank" rel="noopener"
>википедии&lt;/a>
в разделе &amp;ldquo;Сжатие с потерями&amp;rdquo;. Для определения поддельных FLAC, созданных конвертацией из MP3 мы
воспользуемся тем, что при сжатии с потерями отсекаются высокие частоты.
Например, для 320-kbit MP3 удаляются все частоты выше 20 кГц (для более низких битрейтов порог частот тоже ниже). В форматах без
потерь, таких как FLAC, аудио остаётся в исходном виде.&lt;/p>
&lt;h2 id="установка-программы-анализа-спектра-spek">Установка программы анализа спектра Spek
&lt;/h2>&lt;p>Spek - бесплатная программа с открытым исходным кодом для анализа частотного
спектра аудиофайлов, поддерживающая Windows, Linux и MacOS. Она и поможет нам распознать поддельный FLAC.&lt;/p>
&lt;p>Windows, MacOS: &lt;a class="link" href="https://www.spek.cc/p/download" target="_blank" rel="noopener"
>spek.cc&lt;/a>.&lt;/p>
&lt;p>Для Linux в большинстве дистрибутивов существует пакет &lt;code>spek&lt;/code>.&lt;/p>
&lt;h2 id="проверяем-flac-файлы-на-подлинность">Проверяем FLAC-файлы на подлинность
&lt;/h2>&lt;p>Давайте откроем интересующий аудиофайл в Spek и посмотрим на его частотный
спектр.&lt;/p>
&lt;p>В качестве примеров взят Status Quo - In The Army Now, сконвертированный из
320-kbit MP3 и AC/DC - T.N.T. без потерь.&lt;/p>
&lt;h3 id="пример-спектра-настоящего-flac">Пример спектра настоящего FLAC
&lt;/h3>&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/true-flac.png"
width="1920"
height="1080"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/true-flac_hu_ba1715c683f5520b.png 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/true-flac_hu_29d6ad0da77c6333.png 1024w"
loading="lazy"
alt="Аудиоспектр FLAC"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;h3 id="пример-спектра-поддельного-flac-сконвертированного-из-mp3">Пример спектра поддельного FLAC, сконвертированного из MP3
&lt;/h3>&lt;p>&lt;img src="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/fake-flac.png"
width="1920"
height="1080"
srcset="https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/fake-flac_hu_64216afb413f700b.png 480w, https://averyan.ru/p/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-flac/fake-flac_hu_1279f0103a46380f.png 1024w"
loading="lazy"
alt="Аудиоспектр MP3"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;p>Хорошо заметна граница спектра MP3 при 20 кГц.&lt;/p></description></item></channel></rss>