<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>DIMV</title>
        <link>https://evgenykuznetsov.org/</link>
        <description>Свежие публикации на DIMV</description>
        <generator>Hugo -- gohugo.io</generator><language>ru</language><managingEditor>evgeny@kuznetsov.md (Евгений Кузнецов)</managingEditor>
            <webMaster>evgeny@kuznetsov.md (Евгений Кузнецов)</webMaster>
            <atom:link href="https://evgenykuznetsov.org/index.xml" rel="self" type="application/rss+xml" />
        <atom:link href="https://switchboard.p3k.io/" rel="hub" />
    <atom:link href="https://evgenykuznetsov.superfeedr.com/" rel="hub" />
    <item>
    <title>Самое простое объяснение часто бывает...</title>
    <link>https://evgenykuznetsov.org/posts/2026/time-travel/</link>
    <pubDate>Sun, 05 Jul 2026 14:55:47 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/time-travel/</guid>
    <description><![CDATA[<p>Самое простое объяснение часто бывает самым верным. <a href="https://ru.wikipedia.org/wiki/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%9C%D0%B0%D0%BD%D0%B4%D0%B5%D0%BB%D1%8B" rel="">Эффект Манделы</a>, <a href="https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B6%D0%B0%D0%B2%D1%8E" rel="">дежавю</a> и прочие сходные феномены элементарно объясняются реальными изменениями временно́й последовательности событий из-за действий путешественников во времени.</p>
<p>Официальная наука, конечно, призна́ет это, только истощив все другие гипотезы…</p>
]]></description>
</item>
<item>
    <title>О транскрипции</title>
    <link>https://evgenykuznetsov.org/posts/2026/russian/</link>
    <pubDate>Mon, 29 Jun 2026 20:59:56 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/russian/</guid>
    <description><![CDATA[<p>Где-то у <span class="h-card person-mention enh-hcard"><a href="https://ilyabirman.ru/" class="u-url url"><i class="far fa-user-circle" aria-hidden="true"></i>&#8201;<span class="p-name fn">Ильи Бирмана</span></a></span> проскочила мысль, которая уже долго не даёт мне покоя: писать в русскоязычном тексте <em>Beatles</em> вместо <em>Битлз</em> или <em>Apple</em> вместо <em>Эпл</em> — примерно то же самое, что писать <em>トヨタ自動車株式会社</em> вместо <em>Тойота</em> или <em>خیام عمر</em> вместо <em>Омар Хайям</em> — дешёвый понт и бессмысленное задирание носа перед читателем.</p>
<p>С одной стороны, очевидно, что мысль верная. С другой — очень сложно отделаться от ощущения, что все вот эти <em>Дип Пёпл</em>, <em>Ай-Би-Эм</em> и <em>Таламор Дью</em> могут встречаться исключительно в советских газетах и материалах товарищеских судов; нормальный человек так не напишет. Скорее всего, правда — и то, и другое, но чем дольше я об этом размышляю, тем яснее мне, что невозможно же отдать русский язык — мой язык! — в исключительное пользование динозаврам из Политбюро, и на этом основании добровольно отказаться полноценно им пользоваться.</p>
<p>Поэтому всё-таки <em>Крафтверк</em>, <em>Лафройг</em> и <em>Эйрбас</em>. По крайней мере, я всерьёз собираюсь постараться.</p>
]]></description>
</item>
<item>
    <title>Делегируем ответственность</title>
    <link>https://evgenykuznetsov.org/posts/2026/think/</link>
    <pubDate>Fri, 19 Jun 2026 18:36:09 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/think/</guid>
    <description><![CDATA[<p>Мне тут намедни операции с банковским счётом заблокировали.</p>
<p>Я пытался перевести очередных денег за очередную покупку очередного чего-то (ремонт у нас, разные люди для меня разного покупают в разных местах), алгоритм решил, что всё это подозрительно — ну, и заблокировал. Поддержка оказалась завалена запросами, поэтому на разблокировку ушло сильно больше времени, чем хотелось бы. Но в итоге всё обошлось, конечно. Это — не пост про то, как злые банкиры отнимают у меня доступ к моим же кровно заработанным деньгам.</p>
<p>Этот пост про то, как сложно быть банкиром — потому что я, конечно, пообщался по итогам с людьми, которые непосредственно за такие блокировки отвечают. И проблема, на самом деле, в том, что блокировки такие <em>востребованы</em>. Люди за свои действия отвечать не готовы, люди эту ответственность хотят переложить — на банк, на правительство, да хоть на кого. «Если б клиенты наши деньги бы не теряли и не переводили мошенникам, нам бы не приходилось…» — это прямая цитата, если что.</p>
<p>Люди настолько не готовы отвечать за свои действия, что им нормально, что банк блокирует им доступ к их же деньгам — и тем самым бережёт их, не даёт перевести деньги мошенникам! А откуда дальше взяться мотивации учиться распознавать обман и отличать мошенников, если банк и правительство бдят, и при необходимости заблокируют операцию? Зачем вообще о чём-то думать, взвешивать риски, если «с нами тот, кто всё за нас решит»?</p>
<p>Кажется, банкиру в этой ситуации было бы сильно проще, если бы люди хотели и стремились жить своим умом — по крайней мере, не пришлось бы брать ответственность за чужую недальновидность. Не нужно было бы тратиться на разработку алгоритмов выявления подозрительных операций, блокировку, штат сотрудников поддержки… А с другой стороны: если люди привыкнут и полюбят жить своим умом, они могут научиться считать и перестать брать дорогие кредиты. Интересно, какой из этих вариантов для банкира реально более выгоден? Вероятно, тот, в котором клиенты не несут ответственности, раз банкир себя ведёт сегодня так, а не иначе.</p>
<p>С правительством-то всё понятно: править людьми, уверенными, что власть о них позаботится в лучшем виде, и безоглядно власти все решения делегирующими, куда как проще и удобнее, тут без вариантов. А если что пойдёт не по плану — так это проблема отдельных людей, а никак не правительства.</p>
<p>У нас, например, почему-то очень любят доделегироваться до полной дисфункции власти, смуты и гражданской войны — сколько раз уже было. Интересно, что должно произойти — как должна измениться экономика — чтобы банкир был финансово напрямую заинтересован своих клиентов учить отвечать за свои действия самостоятельно?.. Есть у меня подозрение, что если банкиры начнут насаждать самостоятельное мышление, то и в отношения с правительством оно со временем прорастёт. Впрочем, наоборот это, очевидно, тоже работает.</p>
]]></description>
</item>
<item>
    <title>Как я уже писал, голосовые сообщения — это...</title>
    <link>https://evgenykuznetsov.org/posts/2026/voice/</link>
    <pubDate>Mon, 25 May 2026 23:17:59 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/voice/</guid>
    <description><![CDATA[<p>Как я <a href="https://evgenykuznetsov.org/posts/2022/voice/" rel="">уже писал</a>, голосовые сообщения — это зло. К несчастью, зла в мире довольно много, искоренить вполне его вряд ли возможно, поэтому приходится как-то с ним жить. К счастью, прогресс неостановим, и новые инструменты способны делать эту жизнь чуть комфортнее.</p>
<p>Мне вчера пришло в голову, что на современном телефоне <a href="https://github.com/ggml-org/whisper.cpp" rel="">whisper.cpp</a> должен бегать достаточно уверенно, и наверняка можно организовать удобную локальную распознавалку голосовых сообщений. Да, я знаю, что в том же Телеграме это встроено, но ради одного этого покупать платную версию лень, да и сообщения голосовые валятся не только в Телеграм. А если есть локальное приложение, можно в него из любого мессенджера пересылать голосовые сообщения (все мессенджеры, которыми я пользуюсь, позволяют голосовым сообщением «поделиться» как звуковым файлом).</p>
<p>Беглый поиск по аппсторам и гитхабу показал, что идея запускать whisper.cpp на телефоне пришла в голову не только мне, но приложения, в которых это реализовано, не готовы принимать аудио-файлы через стандартный API Андроида (то самое «поделиться»). В общем, как всегда всё приходится делать самому.</p>
<p>Отправной точкой послужил прошлогодний <a href="https://huggingface.co/blog/Javedalam/wwhisper-cli" rel="">пост</a> <span class="h-card person-mention enh-hcard"><a href="https://jalam1001.github.io/bio/" class="u-url url"><i class="far fa-user-circle" aria-hidden="true"></i>&#8201;<span class="p-name fn">Джейведа Алама</span></a></span> с подробным рассказом о том, как, собственно, запускать whisper.cpp в Termux. Дальше пришлось немного поразбираться с дополнительными функциями самого Termux, и в итоге у меня в <code>~/bin/</code> появился исполняемый файлик вот такого содержания:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/data/data/com.termux/files/usr/bin/bash
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">set</span> -e
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">infile</span><span class="o">=</span><span class="s2">&#34;</span><span class="nv">$1</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">name</span><span class="o">=</span><span class="s2">&#34;</span><span class="k">$(</span>basename <span class="s2">&#34;</span><span class="nv">$infile</span><span class="s2">&#34;</span><span class="k">)</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">dest</span><span class="o">=</span><span class="s2">&#34;</span><span class="nv">$HOME</span><span class="s2">/incoming/</span><span class="nv">$name</span><span class="s2">.wav&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">ffmpeg -i <span class="s2">&#34;</span><span class="nv">$infile</span><span class="s2">&#34;</span> -hide_banner -v quiet -ar <span class="m">16000</span> -ac <span class="m">1</span> <span class="nv">$dest</span>
</span></span><span class="line"><span class="cl"><span class="nv">$HOME</span>/whisper.cpp/build/bin/whisper-cli -m <span class="nv">$HOME</span>/whisper.cpp/models/ggml-small.bin -nt -l auto -np -f <span class="nv">$dest</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">rm <span class="nv">$dest</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">echo</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="o">==================</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">read</span> -r
</span></span></code></pre></td></tr></table>
</div>
</div><p>Само собой, в директорию <code>~/whisper.cpp</code> склонирован репозиторий, там собран исполняемый файл и скачаны модельки (по инструкции от Джейведа). Я остановился на <code>small</code>, хотя она на моём телефоне и заметно медленнее, чем <code>base</code> (та отрабатывает почти мгновенно, эту приходится ждать несколько секунд), но с русским языком работает сильно лучше.</p>
<p>Собственно вот этот скрипт — самая магия и есть. Если он в <code>~/bin/</code> существует, Termux сообщает системе, что умеет принимать файлы — и появляется в том самом меню «поделиться». И туда можно послать эти самые голосовые сообщения, файликами, хоть из Телеграма, хоть из WhatsApp, хоть откуда. И <code>ffmpeg</code> их перекодирует в нужный формат, а <code>whisper.cpp</code> распознает и покажет по-человечески, текстом.</p>
<p>Проблему поиска потом в чате информации из таких сообщений это не решает, конечно. Ну и в целом — костыль костылём. Но, по крайней мере, можно понять, о чём речь, в условиях, когда послушать сообщение не можешь или не хочешь — уже хорошо.</p>
<p>Теперь думаю: так оставить, или сделать прям полноценным приложением? Приложением будет красивее и удобнее, но я ведь под Android не разрабатывал никогда — куча токенов уйдёт…</p>
]]></description>
</item>
<item>
    <title>В этом году не то, что интернет — даже SMS...</title>
    <link>https://evgenykuznetsov.org/posts/2026/fear/</link>
    <pubDate>Tue, 05 May 2026 22:44:41 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/fear/</guid>
    <description><![CDATA[<p>В этом году не то, что <a href="https://evgenykuznetsov.org/posts/2025/victory/" rel="">интернет</a> — даже SMS отключили, а то вдруг чего. <a href="https://evgenykuznetsov.org/posts/2025/security-circus/" rel="">Бездельники в метро</a> интересуются мало не каждым рюкзаком. Да и людей с автоматическим оружием на улицах сильно больше, чем комфортно.</p>
<p>Боятся. До дрожи в коленках боятся Великие Победители праздновать Великую Победу.</p>
<p>Хорошо, что <a href="https://evgenykuznetsov.org/posts/2015/18/" rel="">дед</a> не дожил: ему бы было больно на всё это смотреть.</p>
]]></description>
</item>
<item>
    <title>How Not to Configure Your Mail Server</title>
    <link>https://evgenykuznetsov.org/en/posts/2026/frp/</link>
    <pubDate>Tue, 21 Apr 2026 23:07:47 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2026/frp/</guid>
    <description><![CDATA[<p>As I <a href="https://evgenykuznetsov.org/en/posts/2022/mail/" rel="">reported</a> earlier, I run my own email server; I still do. The server is fine, and I keep using it for my personal mail. I also have a <a href="https://evgenykuznetsov.org/en/posts/2020/terabytes-of-ram/" rel="">&ldquo;server&rdquo;</a> at home, and that server has been serving mail for even longer. I chiefly use it for outgoing mail — the automatic notifications my various computers generate — but it also serves as a backup MX for my main email server, so the SMTP port is open to the Internet at large.</p>
<p>I use Postfix, and it is set up so that relaying is only done for the authorized domains (my own), and for a very short list of selected IP addresses on my home network. Of course, to have incoming mail working I rented a &ldquo;real&rdquo; IP address from my ISP and set up port forwarding on my router. I never had issues with the whole setup — well, until not so long ago.</p>
<p>Unfortunately, I&rsquo;m planning on changing ISPs in the near future, and the new ISP comes with layers of NAT and a router that I can&rsquo;t comfortably set up port forwarding on. Moving the multiple things I host at home (including my <a href="https://nextcloud.com/" rel="">Nextcloud</a> instance and my <a href="https://www.navidrome.org/" rel="">Navidrome</a>-powered music collection) to a cloud would defeat the purpose<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><span class="sidenote"><sup class="sidenote-number">1</sup> And the budget, too.&#160;</span>, so I needed a solution.</p>
<p>The solution came in the form of a relatively low-spec VPS rented from a cloud provider (with &ldquo;real&rdquo; IP) and a clever <a href="https://github.com/fatedier/frp" rel="">tool called FRP</a> (Fast Reverse Proxy). The idea is you set up the FRP server on the VPS and have it listen on a specific port; you then set up the FRP client on a machine at home, and have the client connect to the server. The client then tells the server to open a port (say, port 80 for HTTP traffic) and forward all the connections from that port right to the client that routes them to a port on your local machine. The users connect to the VPS in the cloud, but all the traffic lands on your machine at home; in a way<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup><span class="sidenote"><sup class="sidenote-number">2</sup> In fact, this very metaphor was what caused trouble. &ldquo;In a way&rdquo; is not &ldquo;actually&rdquo; — obvious in hindsight…&#160;</span>, the VPS running the FRP server acts as a router, and the FRP server does the &ldquo;port forwarding&rdquo; to the client (or clients).</p>
<p>For Nextcloud and other web servers I host it worked like a charm, even HTTP/3 connections worked just fine. SMTP is much less complicated protocol-wise, so I configured an FRP client on the Raspberry Pi, and told it to have the server open port 25 and channel the traffic to the local port 25.</p>
<p>What a blunder!</p>
<p>You probably already see the problem with this setup. FRP is not a router. The traffic that reaches port 25 at home is not coming from a remote server<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup><span class="sidenote"><sup class="sidenote-number">3</sup> Well, it is, sort of, but not directly.&#160;</span>; instead, it&rsquo;s coming from the FRP client running on the same machine. The localhost.</p>
<p>You may remember that a very short list of selected IP addresses on my home network was cleared for relaying mail through this server. In Postfix, such a list automatically includes the localhost. Which was now where all the external connections were coming from.</p>
<p>Yep, I made my Raspberry Pi an <a href="https://en.wikipedia.org/wiki/Open_mail_relay" rel="">open mail relay</a>. Just like that.</p>
<p>Fortunately, it took less than a day for the poor machine to overheat under load and reboot itself. And, fortunately, I misconfigured the FRP client so that it failed to start after reboot. But by the time the system failed, the mail queue was so big it took Postfix several hours to list and remove the messages not addressed to my authorized domains.</p>
<p>Of course, I only brought the poor thing back online after I told FRP client to use <a href="https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address" rel="">the PROXY protocol</a>, and opened a separate port in Postfix that only allowes relaying mail to authorized domains (and uses the PROXY‌ protocol to figure the sender&rsquo;s actual IP‌ address anyway) — the way you should set up things if you ever feel like doing SMTP over FRP.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>And the budget, too.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>In fact, this very metaphor was what caused trouble. &ldquo;In a way&rdquo; is not &ldquo;actually&rdquo; — obvious in hindsight…&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>Well, it is, sort of, but not directly.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></description>
</item>
<item>
    <title>Когда уже Скайнет?</title>
    <link>https://evgenykuznetsov.org/posts/2026/slop/</link>
    <pubDate>Tue, 31 Mar 2026 21:55:07 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/slop/</guid>
    <description><![CDATA[<p>Я тут в выходные программировал немного на домашнем компе, и включил, конечно, автодополнение от LLMки — очень удобно и полезно, когда пишешь код или документацию. А в блог же я пишу в том же редакторе, и обычно функцию эту выключаю: насколько предложения LLM обычно «в тему» для кода, настолько же они отвлекают и сбивают при написании нормального текста.</p>
<p>Само собой, садясь писать <a href="https://evgenykuznetsov.org/posts/2026/divide/" rel="">вчерашний пост</a>, отключить автодополнение я забыл. Но «интеллект», разумеется, немедленно о себе напомнил.</p>
<figure><a class="lightgallery" href="/posts/2026/slop/slop.png" title="Скриншот текстового редактора с предложением продолжения текста." data-thumbnail="/posts/2026/slop/slop_hu_b7a1a33b9fec6c08.png" data-sub-html="<h2>Я тут на днях решал инженерную задачу: как сделать так, чтобы Telegram нормально работал у супруги, ну и у меня заодно. Решил, конечно. Написал скрипт, который брал сообщения из Telegram и отправлял их в WhatsApp.</h2>">
        <img
            
            src="/posts/2026/slop/slop_hu_3b584931a0bc12f.png" srcset="/posts/2026/slop/slop_hu_b7a1a33b9fec6c08.png 320w, /posts/2026/slop/slop_hu_3b584931a0bc12f.png 800w, /posts/2026/slop/slop_hu_c9764cbbf2599b52.png 1600w" sizes="(max-width: 800px) 100vw, 800px"
            loading="eager" decoding="async" fetchpriority="high"
            alt="Скриншот текстового редактора с предложением продолжения текста." width="1774" height="253" />
    </a><figcaption class="image-caption">Я тут на днях решал инженерную задачу: как сделать так, чтобы Telegram нормально работал у супруги, ну и у меня заодно. Решил, конечно. <em>Написал скрипт, который брал сообщения из Telegram и отправлял их в WhatsApp.</em></figcaption>
    </figure>
<p>Так-то ничего удивительного: нормальный текст ведь про смыслы, а к слоп-машине само слово «смысл» неприменимо.</p>
]]></description>
</item>
<item>
    <title>Я тут на днях решал инженерную задачу: как...</title>
    <link>https://evgenykuznetsov.org/posts/2026/divide/</link>
    <pubDate>Mon, 30 Mar 2026 22:48:19 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/divide/</guid>
    <description><![CDATA[<p>Я тут на днях решал инженерную задачу: как сделать так, чтобы Telegram нормально работал у супруги, ну и у меня заодно. Решил, конечно. Но рассказать тут об этом не могу — по понятным причинам. А некоторое (уже довольно продолжительное) время тому назад решал в чём-то сходную задачу: сделать так, чтобы YouTube нормально работал на телевизоре. И тоже решил, и тоже не могу об этом тут рассказать.</p>
<p>А ведь это же базовый инстинкт: сделал что-то полезное — поделись, расскажи, покажи, чтобы другие могли повторить. Про это — вся наука, да что там — вся человеческая цивилизация! У нас языки для этого придуманы, у нас письменность ровно для этого изобретена. И интернет у нас для этого же в том числе: распространять знания, делиться информацией. Вот это замечательное свойство информации: «Если у нас с тобой есть по яблоку, и мы ими обменяемся, у каждого из нас будет по одному яблоку, но если у нас с тобой есть по идее, и мы ими обменяемся, у каждого из нас будет по две идеи!» — мы, человеки, научились его эффективно эксплуатировать — и благодаря этому стали доминирующим видом на планете (и, кажется, в нашей звёздной системе).</p>
<p>А ещё интернет у нас для того, чтобы находить единомышленников. Люди все очень разные; легко вообразить, что ты один, и тебя никто никогда не поймёт, потому что никому из окружающих нет дела до вещей, волнующих тебя. Но если выборка — всё человечество, то непременно оказывается, что ты не один: людей много, и найдутся такие, с кем можно продуктивно обсудить ту самую тему, о которой будто бы не с кем поговорить. Человек — существо социальное, ему нужны товарищи.</p>
<p>И вот этот самый интернет правительства по всему миру изо всех сил пытаются зарегулировать, ограничить, всячески испортить. Где-то в угоду крупным бизнесам, где-то ради странно понимаемых прав человека, где-то из политических амбиций, а кое-где открыто боятся именно возможности общения и объединения людей (которым не нравится, что им не дают общаться). И выходит, что эти правительства пытаются отнять у людей именно то, что делает их людьми — тот самый обмен информацией, который делает человечество человечеством.</p>
<p>Такое правительство — враг человека.</p>
<p>Радует, конечно, что у нас, на бывшей одной шестой части суши, есть большой опыт и богатые традиции распространения информации и обмена мыслями в условиях строжайших запретов. У соседей по шарику тоже хватает изобретательности, а ещё мы можем обмениваться идеями… Короче говоря, человечество не пропадёт; человек на этой планете всех врагов поборол, и с этими справится тоже. Потому что куда ж деваться-то?..</p>
]]></description>
</item>
<item>
    <title>A very talented software engineer we have...</title>
    <link>https://evgenykuznetsov.org/en/posts/2026/slop-machine/</link>
    <pubDate>Tue, 10 Mar 2026 17:09:26 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2026/slop-machine/</guid>
    <description><![CDATA[<p>A very talented software engineer we have on our team once referred to an agentic tool he was using for a task as &ldquo;The Slop Machine&rdquo;. The more I ponder, the more I like this name.</p>
<p>Names matter. Knowing the true name gives you power over the named — not in a way described in the ancient legends, perhaps, but nevertheless.</p>
<p>The slop machines are very useful for a lot of tasks in a lot of imaginable and not-yet-quite-imaginable ways, there&rsquo;s no question about it. But I&rsquo;m finding lately that I get the best results and am most productive when I use them while being acutely aware of what they really are: slop machines.</p>
]]></description>
</item>
<item>
    <title>Теперь и в Telegram</title>
    <link>https://evgenykuznetsov.org/posts/2026/tg/</link>
    <pubDate>Fri, 20 Feb 2026 18:45:26 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/tg/</guid>
    <description><![CDATA[<p>А мы сидели тут в прошлую субботу на кухне, и хорошие люди меня хором журили за то, что бложег неудобно читать: хочется, мол, но уведомлений о новых постах нет же.</p>
<p>Надо сказать, время от времени этот вопрос поднимался и раньше; подписываться на канал в Telegram или посты в какой-нибудь соцсети люди готовы, а вот с сайтами сложнее. Понятно, что RSS существует уже четверть века (и замечательно эти вопросы решает), но с тех пор, как закрыли Google Reader, популярность этого инструмента у широких масс снизилась примерно до уровня статистической погрешности. Ну и вообще, люди все разные, удобно людям разное — так почему не сделать людям удобно, если мне это несложно?</p>
<p>В общем, в порядке эксперимента новые посты из этого блога теперь летят <a href="https://t.me/evgenykuznetsov_org" rel="">в канал в Telegram</a>. Пришлось немножко сдуть пыль с машинерии, которая публикует обновления сайта (ох, надо бы там подкрутить-перестроить на досуге!), и покопаться в потрохах. Оказалось на удивление приятно; давно не кодил ничего для себя, помимо работы.</p>
<p>Одно тревожит: а ну как завтра хорошим людям трансляция в МАХ понадобится?..</p>
]]></description>
</item>
<item>
    <title>Я тут полез в код, который писал пять лет...</title>
    <link>https://evgenykuznetsov.org/posts/2026/old-code/</link>
    <pubDate>Wed, 18 Feb 2026 23:29:35 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/old-code/</guid>
    <description><![CDATA[<p>Я тут полез в код, который писал пять лет назад. Я тогда был на уровне уверенного прошаренного джуна: понятия не имел о том, как — и, главное, почему именно так — пишут код в коммерческой разработке, но код писал рабочий и решающий непосредственные задачи. Нынче мне на этот код, конечно, больно смотреть. Это нормально; ребята во дворе говорят: если тебе не стыдно за код, который ты написал год назад, — хреновый ты программист. Но это — лирика.</p>
<p>Физика: я вдруг понял, отчего все эти LLM-модели пишут <em>так</em>. Они же обучаются на том, что есть; а среди того, что есть, гораздо больше кода, похожего на то, что я писал пять лет назад, чем похожего на то, что я пишу сейчас (а того, <em>на чём я учусь</em> сейчас, настолько мало, что вряд ли оно вообще пробивается в значимые веса). Garbage in, garbage out.</p>
<p>Что не отменяет, конечно, великой освободительной силы LLMок: скрипт наподобие <a href="https://evgenykuznetsov.org/posts/2021/batch-scan/" rel="">моего для сканирования</a> можно навайбкодить за четверть часа, и это замечательно: я, помнится, целый вечер потратил, погружаясь в предметную область. Всякая технология, благодаря которой человек может за десятки минут создать себе (и под себя!) инструмент, который иначе <del>он</del> специально нанятый деятель создавал бы часы, если не дни и недели, — любая такая технология, без сомнения, полезна и позитивна.</p>
]]></description>
</item>
<item>
    <title>За «духом соревнования» и прочим...</title>
    <link>https://evgenykuznetsov.org/posts/2026/trust/</link>
    <pubDate>Tue, 17 Feb 2026 23:51:07 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/trust/</guid>
    <description><![CDATA[<p>За «духом соревнования» и прочим «выживанием сильнейших» бывает очень легко забыть, что жизнь — игра с ненулевой суммой, причём практически во всех своих аспектах.</p>
<p>Даже из-за преферансного стола (а преферанс — как раз игра с нулевой суммой; количество проигранного всегда равно количеству выигранного другими) все могут выйти с радостью от прекрасно проведённого времени и зарядом позитива на неделю, а могут, наоборот, единодушно жалеть о впустую потраченных часах. И в экономике так: обе стороны сделки могут считать сделку для себя выгодной, а могут обе стороны чувствовать себя обманутыми. В повседневной жизни вообще сплошь и рядом выходит, что либо все участники объективно в убытке, либо, наоборот, все объективно же выиграли от взаимодействия.</p>
<p>Мне несколько раз в жизни повезло (и продолжает везти) оказаться в коллективе, где люди а) не глупые, и не станут по глупости творить какую-нибудь дичь, и б) стремятся сотрудничать, а не обманывать и эксплуатировать других. Всегда восхищаюсь и умиляюсь тем, насколько продуктивно и приятно бывает в таком коллективе.</p>
<p>Удивительно, насколько мы привыкли, что «в среднем» бывает совсем иначе, и до чего трудно бывает доверять людям.</p>
]]></description>
</item>
<item>
    <title>О многофункциональных приложениях</title>
    <link>https://evgenykuznetsov.org/posts/2026/sber/</link>
    <pubDate>Mon, 16 Feb 2026 22:11:48 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/sber/</guid>
    <description><![CDATA[<p>Интересно, сколько времени требуется среднестатистическому человеку, чтобы найти нужную функцию в приложении Сбера?..</p>
<p>Мы вот сегодня искали, где посмотреть и настроить лимит на переводы. Втроём. С двумя сотрудниками Сбера. Нашли быстро, минут за пять. Всего по шести ложным цепочкам пройти пришлось — благо, ребята на опыте, и в приложении ориентируются, не то, что я.</p>
<p>Один бы я не нашёл точно.</p>
<p>Этак невольно подумаешь, что они это нарочно: мол, чем больше человек тыкает наугад в поисках нужного пункта, тем больше он погрязнет в экосистеме, закажет в Самокате, послушает в Zvooq и полюбит GigaChat.</p>
<p>Но <a href="https://ru.wikipedia.org/wiki/%D0%91%D1%80%D0%B8%D1%82%D0%B2%D0%B0_%D0%A5%D1%8D%D0%BD%D0%BB%D0%BE%D0%BD%D0%B0" rel="">бритва Хэнлона</a> неумолима: если это могли сделать по недомыслию, вряд ли делали со зла. Это же Сбер, <a href="https://evgenykuznetsov.org/posts/2023/sber-ui/" rel="">у них вечно так</a>.</p>
]]></description>
</item>
<item>
    <title>Конец подвес(т)ки</title>
    <link>https://evgenykuznetsov.org/posts/2026/podves/</link>
    <pubDate>Thu, 12 Feb 2026 17:02:55 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/podves/</guid>
    <description><![CDATA[<p>Приехавший на Московский вокзал Санкт-Петербурга может увидеть над путями странные таблички.</p>
<figure><a class="lightgallery" href="/posts/2026/podves/featured.jpg" title="Табличка «Конец контактной подвес ки»" data-thumbnail="/posts/2026/podves/featured_hu_cf9a32e91562f897.jpg" data-sub-html="<h2>Конец контактной подвес ки</h2><p>Табличка «Конец контактной подвес ки»</p>">
        <img
            class="u-photo"
            src="/posts/2026/podves/featured.jpg" srcset="/posts/2026/podves/featured_hu_cf9a32e91562f897.jpg 320w, /posts/2026/podves/featured.jpg 777w" sizes="(max-width: 800px) 100vw, 800px"
            loading="eager" decoding="async" fetchpriority="high"
            alt="" width="777" height="777" />
    </a><figcaption class="image-caption">Конец контактной подвес ки</figcaption>
    </figure>
<p>Сообразить, почему между «подвес» и «ки» оказался пробел, я навскидку не смог. К счастью, таких табличек много, и аккуратно исправили не все…</p>
<figure><a class="lightgallery" href="/posts/2026/podves/oops.jpg" title="Табличка «Конец контактной подвесТки»" data-thumbnail="/posts/2026/podves/oops_hu_be658e6b24b99b25.jpg" data-sub-html="<h2>Конец контактной подвес(т)ки</h2><p>Табличка «Конец контактной подвесТки»</p>">
        <img
            
            src="/posts/2026/podves/oops.jpg" srcset="/posts/2026/podves/oops_hu_be658e6b24b99b25.jpg 320w, /posts/2026/podves/oops.jpg 777w" sizes="(max-width: 800px) 100vw, 800px"
            loading="eager" decoding="async"
            alt="" width="777" height="777" />
    </a><figcaption class="image-caption">Конец контактной подвес(т)ки</figcaption>
    </figure>
<p>Интересно, это исправляли ещё до того, как повесили, или уже после…</p>
]]></description>
</item>
<item>
    <title>Местный колорит очень местный: ща мимо...</title>
    <link>https://evgenykuznetsov.org/posts/2025/sochi/</link>
    <pubDate>Wed, 17 Sep 2025 22:33:09 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2025/sochi/</guid>
    <description><![CDATA[<p>Местный колорит очень местный: ща мимо автобус, маршрут сто-шестьдесят-с-чем-то, до конечной остановки «Жилые дома».</p>
]]></description>
</item>
<item>
    <title>Бывает, придёт мысль написать пост, а...</title>
    <link>https://evgenykuznetsov.org/posts/2025/not-writing/</link>
    <pubDate>Tue, 16 Sep 2025 22:45:06 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2025/not-writing/</guid>
    <description><![CDATA[<p>Бывает, придёт мысль написать пост, а потом сразу мысль о том, что надо бы получше разобраться в предмете.</p>
<p>Я такой человек — обычно иду разбираться. Читаю. Потом ещё читаю, обо всяком слабо связанном — по ссылкам хожу, вот это вот всё. Потом думаю как следует. Потом обычно решаю, что незачем об этом писать вообще-то.</p>
<p>А знания впитываю, которые в процессе получил; учусь. Мне нравится учиться. Пожалуй, ещё больше, чем писать.</p>
<p>Правда ли, что в долгосрочной перспективе мне полезнее учиться, чем писать? Правда ли, что каждый ненаписанный пост в этом блоге улучшил мою жизнь — и в смысле удовольствия от узнавания нового, и в смысле собственно расширения кругозора? Наверняка не знаю, но есть основания полагать именно так.</p>
<p>И что, завязывать теперь с этим блогом? Нет, конечно! Но уж точно чувствовать меньше вины, когда пишешь не так часто.</p>
]]></description>
</item>
<item>
    <title>Уже некоторое время мой сайт — вот этот...</title>
    <link>https://evgenykuznetsov.org/posts/2025/blocked/</link>
    <pubDate>Mon, 15 Sep 2025 22:42:18 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2025/blocked/</guid>
    <description><![CDATA[<p>Уже некоторое время мой сайт — вот этот самый — очень плохо открывается из сетей Мегафона. Наверняка просто «попал под раздачу» и на ТСПУ пытаются «зарезать» Digital Ocean.</p>
<p>Я, наверно, ничего с этим делать не буду. Можно бы заморочиться с переносом хостинга (и сэкономить, кстати), но ну их на фиг. Переносить буду тогда, когда лично меня перестанет устраивать Digital Ocean (а не потому, что он перестал устраивать российские власти).</p>
<p>Конечно, приятно думать, что то, что я тут пишу, могло бы заставить о чём-то задуматься и посмотреть на мир иначе кого-то из тех, кому настолько всё нормально (или по фигу), что он не настраивает себе доступ к зароскомнадзоренным сайтам. Но, пожалуй, в этот раз я побуду ленивым реалистом; вести пропаганду (даже пропаганду здравого смысла) я не нанимался.</p>
<p>А беззаконие в России рано или поздно закончится. Возможно, даже раньше, чем закончится этот блог.</p>
]]></description>
</item>
<item>
    <title>Тяжёлый металл</title>
    <link>https://evgenykuznetsov.org/posts/2025/security-circus/</link>
    <pubDate>Fri, 22 Aug 2025 12:33:20 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2025/security-circus/</guid>
    <description><![CDATA[<p>Двадцать лет назад в России можно было прийти на вокзал и сесть в поезд, не доставая ключи из кармана. С тех пор жить стало лучше, веселей и безопасней, поэтому теперь нужно выворачивать карманы и просвечивать рюкзак.</p>
<p>В городском транспорте смешнее. В Москве по одному и тому же билету можно проехать на метро и городской электричке. Электричка может быть МЦД (диаметр, идёт дальше в пригород) или МЦК (кольцевая по Москве). На МЦК выворачивать карманы и просвечивать рюкзак обязательно. На большинстве станций МЦД для этого даже нет оборудования. В метро смешнее всего: оборудование есть, в вестибюлях старых станций не всегда протолкнёшься даже, сотрудники безопасности бдят и выборочно выдёргивают из потока потенциальных террористов на проверку. Но всех подряд не проверяют. Я вот каждый день еду на работу, с одним и тем же рюкзаком, в котором один и тот же ноутбук. Унизительной процедуре досмотра подвергаюсь один-два раза в неделю, по какой логике — загадка.</p>
<p>Всякий раз задумываюсь: а для чего это всё? Зарабатывать на закупке оборудования — годится. Делать рабочие места для бездельников — годится. Постоянно напоминать ширнармассам, что жить страшно (а без бдительных охранителей — просто опасно) — годится. А вот безопасности реальной насколько помогает? Заходящего в метро с оружием, например, остановят?</p>
<p>Я вот вчера по разным причинам вёз в рюкзаке пудовую гирю. 16 килограммов чугуна.</p>
<p>Не досматривали.</p>
]]></description>
</item>
<item>
    <title>Нашим родителям в жизни пришлось несладко....</title>
    <link>https://evgenykuznetsov.org/posts/2025/generation/</link>
    <pubDate>Fri, 25 Jul 2025 23:13:07 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2025/generation/</guid>
    <description><![CDATA[<p>Нашим родителям в жизни пришлось несладко. Они росли в сложные времена у непростых родителей, под значительным давлением (в том числе, а часто — главным образом — обстоятельств), а когда выросли, перенесли эту же модель отношений (откуда же взять другую?!) с этим же давлением на нас. Нам не очень это комфортно, но мы их вполне можем понять.</p>
<p>Наши дети растут заметно более свободными. Мы ограждаем от чрезмерного давления их, и с умилением воспринимаем давление с их стороны — они выстраивают границы, они организуют свой мир по-своему, и нам радостно, что они такие и у них эти возможности есть. Мы их охотно понимаем — да и как иначе?!</p>
<p>Мне иногда кажется, что карма нашего поколения — всех понимать, а самим так и быть под давлением со всех сторон: родителей, детей, обстоятельств…</p>
]]></description>
</item>
<item>
    <title>Носочек</title>
    <link>https://evgenykuznetsov.org/posts/2025/sock/</link>
    <pubDate>Tue, 22 Jul 2025 18:35:26 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2025/sock/</guid>
    <description><![CDATA[<p>Сегодня утром дочерь одевалась, и носочек на правую ногу натянула так, что его пятка оказалась не напротив пятки, а напротив тыла стопы. Попробовала повернуть, не получилось; очень расстроилась и расплакалась.</p>
<p>Конечно, мама была рядом, и непокорный носочек был немедленно повёрнут так, как надо. Казалось бы, никаких причин для слёз. Казалось бы, о чём тут расстраиваться?!</p>
<p>Нам, взрослым, вроде в самом деле не о чем. Но огорчение-то дочери было настоящим, и беда была настоящей: носочек наделся криво, и выпрямить не вышло. И не так важно, что тут же всё быстро поправили; важно, что в этот момент было очень грустно, по-настоящему печально и тяжело. Была причина плакать.</p>
<p>Когда грустно, плохо и тяжело, плакать можно. Подчас и нужно.</p>
<p>Каждому попадаются такие «носочки». У меня их даже за последний год было — не сосчитать. Может, пустяк, может, кому-то со стороны смешно, может, и самому через годы, месяцы, а то и к вечеру уже непонятно будет, из-за чего было так горевать. Но огорчение — настоящее.</p>
<p>И как же здорово, когда кто-то рядом может утешить и поправить носочек!</p>
]]></description>
</item>
</channel>
</rss>
