<?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/en/</link>
        <description>Recent content on DIMV</description>
        <generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>evgeny@kuznetsov.md (Evgeny Kuznetsov)</managingEditor>
            <webMaster>evgeny@kuznetsov.md (Evgeny Kuznetsov)</webMaster>
            <atom:link href="https://evgenykuznetsov.org/en/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>At some point during the summer I lost my...</title>
    <link>https://evgenykuznetsov.org/en/posts/2026/backpack/</link>
    <pubDate>Mon, 07 Sep 2026 14:12:54 &#43;0200</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2026/backpack/</guid>
    <description><![CDATA[<p>At some point during the summer I lost my backpack; the strap that held it on my bicycle rack got loose which I failed to notice. Never seen it again. In the backpack, among other things, were my work laptop and some documents, including my passport. Rather unpleasant: out of the blue, a whole lot of hassle trying to recover everything.</p>
<p>Here’s what’s interesting: when my colleagues found out about my misfortune, they all sympathized, saying in unison that &ldquo;the computer is nothing to worry about, restoring the documents is what&rsquo;s most unpleasant and tedious.&rdquo; Every government employee, from police officers to clerks, on the other hand, told me with authority that &ldquo;restoring the documents is a piece of cake; losing expensive corporate equipment is serious concern.&rdquo; Comparing these two reactions, I came to the conclusion that, in fact, neither of them is really something to worry about.</p>
<p>Which is exactly how things turned out in the end.</p>
]]></description>
</item>
<item>
    <title>В последнее время появилась мода на...</title>
    <link>https://evgenykuznetsov.org/posts/2026/call-center/</link>
    <pubDate>Tue, 21 Jul 2026 22:18:50 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Евгений Кузнецов)</author>
    <guid>https://evgenykuznetsov.org/posts/2026/call-center/</guid>
    <description><![CDATA[<p>В последнее время появилась мода на избыточнное подражание голосовых систем человеку. Звонит тебе робот-автообзвонщик, и, прежде, чем начать, собственно, говорить, закашливается, а потом извиняется. Или, например, звоню я сегодня в компанию, отвечает мне робот; он не особенно скрывает, что он робот, и даже готов меня маршрутизировать в нужный отдел к нужному человеку, вот только перед каждым вторым словом у него «э-э-э», после каждого третьего — «м-м-м», а в фоне — звук опенспейса, типа живой колл-центр.</p>
<p>Бесит это всё прямо-таки неизъяснимо.</p>
<p>Мне, как любому, не нравится продираться сквозь роботизированные голосовые интерфейсы — они не всегда точно определяют, что мне нужно, не понимают с полуслова, человек отработал бы лучше и качественнее. Но, понятное дело, человек дороже, поэтому без роботов никуда, и с этим надо как-то жить: понимая, что говоришь с роботом, начинаешь говорить чётче, чтобы распознавалке не приходилось напрягаться, и формулировать не полусловами, а развёрнуто, чтобы быстрее получить результат. От общения с компаниями и госслужбами нужен результат; ради эмоций живого голосового общения мы звоним семье или друзьям.</p>
<p>Но результат-то получить стало сложнее. И время тратится на всё это мычание и заикание, и хуже слышно из-за фоновых шумов. К минусам общения с роботом прибавили минусы общения с человеком.</p>
<p>И ведь кто-то же премию получил за внедрение этого идиотизма!..</p>
]]></description>
</item>
<item>
    <title>We know the simplest explanation is often...</title>
    <link>https://evgenykuznetsov.org/en/posts/2026/time-travel/</link>
    <pubDate>Sun, 05 Jul 2026 14:55:47 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2026/time-travel/</guid>
    <description><![CDATA[<p>We know the simplest explanation is often true. <a href="https://en.wikipedia.org/wiki/False_memory#Mandela_effect" rel="">Mandela effect</a>, <a href="https://en.wikipedia.org/wiki/D%C3%A9j%C3%A0_vu" rel="">déjà vu</a> and similar phenomena are easily explained by actual changes in the time order of events caused by time-travellers&rsquo; actions.</p>
<p>Official science will of course only admit it after exhausting every other hypothesis…</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>As I have previously stated, voice...</title>
    <link>https://evgenykuznetsov.org/en/posts/2026/voice/</link>
    <pubDate>Mon, 25 May 2026 23:17:59 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2026/voice/</guid>
    <description><![CDATA[<p>As I <a href="https://evgenykuznetsov.org/en/posts/2022/voice/" rel="">have previously stated</a>, voice messages are evil. Unfortunately, there&rsquo;s a lot of evil in this world and it can hardly ever be eradicated so we should find a way to live with it. Fortunately, there&rsquo;s no stopping the progress and the new tools can make the living a little bit more comfortable.</p>
<p>Yesterday I suddenly realized that on a modern phone <a href="https://github.com/ggml-org/whisper.cpp" rel="">whisper.cpp</a> should run rather well, and one could perhaps make a convenient local tool to parse voice messages. Of course, I know that Telegram, for one, has this built in, but I don&rsquo;t feel like paying for a subscription for this purpose only, and then again voice messages are not exclusive to Telegram. To a local tool, on the other hand, one could send voice messages from any messenger app (at least all the apps I use allow to &ldquo;share&rdquo; a voice message as an audio file).</p>
<p>A quick search in app stores and GitHub demonstrated that I wasn&rsquo;t the first person on the planet to fathom running whisper.cpp on a phone. However, the apps that do that can&rsquo;t receive audio files through Android&rsquo;s standard API (the &ldquo;share&rdquo; one). As usual, you want something done, you do it yourself.</p>
<p>I bootstrapped from the year-old <a href="https://huggingface.co/blog/Javedalam/wwhisper-cli" rel="">article</a> by <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">Javed Alam</span></a></span> that lays out running whisper.cpp in Termux in great detail. I had to figure out some of the working of the Termux itself do further build upon in, and ended up with an executable script in <code>~/bin/</code> that goes somewhat like this:</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>Naturally, <code>~/whisper.cpp</code> has the repo clone with the executable built and models downloaded (according to Javed&rsquo;s instructions). I opted for <code>small</code> that does Russian much better than <code>base</code>, although it&rsquo;s noticeably slower (<code>base</code> works almost instantly while <code>small</code> takes several seconds).</p>
<p>The script is the secret sauce, in fact. If it exists in <code>~/bin/</code> then Termux tells the system that it can accept files, and then Termux appears in that &ldquo;share&rdquo; menu. You can then send those voice messages as files into it from Telegram or WhatsApp or wherever. <code>ffmpeg</code> will transcode them to the required format, and <code>whisper.cpp</code> will parse them and show to you as human-readable text.</p>
<p>This doesn&rsquo;t solve searching for the information from these messages in chat, of course. And all in all, it&rsquo;s a kludge. But you can at least know what the message is about when you have no way — or will — to listen to it; that&rsquo;s good.</p>
<p>And now I hesitate: should I leave it as is, or should I develop a full-blown app? The app would be nicer and more comfortable to use, but I never developed anything for Android; it&rsquo;ll cost a fortune in tokens…</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_b97c96b4a3ed540c.png" data-sub-html="<h2>Я тут на днях решал инженерную задачу: как сделать так, чтобы Telegram нормально работал у супруги, ну и у меня заодно. Решил, конечно. Написал скрипт, который брал сообщения из Telegram и отправлял их в WhatsApp.</h2>">
        <img
            
            src="/posts/2026/slop/slop_hu_dc9566e9da523bbe.png" srcset="/posts/2026/slop/slop_hu_b97c96b4a3ed540c.png 320w, /posts/2026/slop/slop_hu_dc9566e9da523bbe.png 800w, /posts/2026/slop/slop_hu_d5bc0b9e0d704169.png 1600w" sizes="(max-width: 800px) 100vw, 800px"
            loading="eager" decoding="async"
            alt="Скриншот текстового редактора с предложением продолжения текста." width="1774" height="253" />
    </a><figcaption class="image-caption">Я тут на днях решал инженерную задачу: как сделать так, чтобы Telegram нормально работал у супруги, ну и у меня заодно. Решил, конечно. <em>Написал скрипт, который брал сообщения из Telegram и отправлял их в WhatsApp.</em></figcaption>
    </figure>
<p>Так-то ничего удивительного: нормальный текст ведь про смыслы, а к слоп-машине само слово «смысл» неприменимо.</p>
]]></description>
</item>
<item>
    <title>Recently, I had to solve an engineering...</title>
    <link>https://evgenykuznetsov.org/en/posts/2026/divide/</link>
    <pubDate>Mon, 30 Mar 2026 22:48:19 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2026/divide/</guid>
    <description><![CDATA[<p>Recently, I had to solve an engineering problem: make Telegram work reliably for my wife (and for me, while I was at it). Solve it I did, of course. But I can&rsquo;t tell about it in details here, understandably<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> In Russia, it is illegal to spread the information about ways to overcome the technical measures of limiting the access to information.&#160;</span>. And (quite) some time ago I also solved a somewhat similar problem: make YouTube work properly on the living-room TV. And I can&rsquo;t tell about it, either.</p>
<p>Come to think about it, this is a basic instinct: you do something of use, you tell, explain, share so that others can do the same. This is what the whole science is about, this is what human civilization is about! That&rsquo;s why we invented languages, that&rsquo;s precisely the reason we invented writing. The Internet, we have it for the same purpose: to spread knowledge and share information. A wonderful property of information: &ldquo;You and I each have an apple and we exchange them, each of us will have one apple, but if you and I each have an idea and we exchange them, each of us ends up with two ideas!&rdquo; We, the humans, have learned how to use it effectively, and thanks to that we&rsquo;ve become the dominant species on the planet (and in our star system, perhaps).</p>
<p>Another purpose of the Internet: finding like-minded people. People are all very different; it&rsquo;s easy to imagine that you&rsquo;re alone and no one will ever understand you because no one else cares about the things that concern you. But if the sample is the whole of humanity then it turns out you are certainly not alone: people are numerous, and there are those with whom you can productively discuss the very topic that you supposedly have no one to talk to about. Human is a social being, human needs companions.</p>
<p>This very Internet thing the governments around the world are trying their best to regulate, restrict, and spoil in every possible way. In some places they do it for the sake of big businesses, in other places for the sake of weirdly understood human rights, in yet other places for political ambitions, and in some places they are openly afraid that people would communicate and unite (people who are appaled by not being allowed to communicate). Essentially, what these governments are trying to take away from people is exactly what makes people human: the very exchange of information that makes humanity — humanity.</p>
<p>Such a government is the enemy of human.</p>
<p>I find relief, of course, in the fact that, where I live, we have extensive experience and rich traditions of spreading information and exchanging thoughts despite the strictest prohibitions. Our neighbors here on the planet also have enough ingenuity, and we can also exchange ideas… In short, humanity will be fine; human has overcome all enemies on this planet, and will cope with these too. What are the options, anyway?..</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>In Russia, it is illegal to spread the information about ways to overcome the technical measures of limiting the access to information.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></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"
            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>Sometimes I have an idea for a blogpost,...</title>
    <link>https://evgenykuznetsov.org/en/posts/2025/not-writing/</link>
    <pubDate>Tue, 16 Sep 2025 22:45:06 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2025/not-writing/</guid>
    <description><![CDATA[<p>Sometimes I have an idea for a blogpost, and I think I should research the matter a little bit more.</p>
<p>I usually go and research. I read. Then I read more, tangentially related. Then I give it a good thought and decide it isn&rsquo;t worth writing about, actually.</p>
<p>I ingest the knowledge I get through this research; I learn. I enjoy learning, I enjoy it more that writing, actually.</p>
<p>Is learning better for me — in the long run — than writing? Is it true that every non-written blog post increased my life quality — both by making me happier and by teaching me something new? I don&rsquo;t know for sure, but I have reasons to believe so.</p>
<p>Does this mean I&rsquo;m shutting down this blog? No, of course not! It only means I feel less guilty about not posting as often.</p>
]]></description>
</item>
<item>
    <title>For quite some time now, my website — this...</title>
    <link>https://evgenykuznetsov.org/en/posts/2025/blocked/</link>
    <pubDate>Mon, 15 Sep 2025 22:42:18 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2025/blocked/</guid>
    <description><![CDATA[<p>For quite some time now, my website — this one — has issues loading for those who browse it from Megafon<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> <a href="https://megafon.ru" rel="">Megafon</a> is one of the Russian &ldquo;big three&rdquo; mobile providers. I, for one, have been a user of their services for over 20 years (and counting).&#160;</span> networks. Most probably, it&rsquo;s just a side-effect of the &ldquo;black boxes&rdquo;<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> To legally operate an Internet provider in Russia, you need to install what is known as ТСПУ (Technical Measure for Countering Threats). It is basically a box that you connect three cables to: the one going to your uplink, the one going down to your network, and the third one going right to the State Security offices. It&rsquo;s illegal to route any traffic circumventing this box, and no one without clearance knows for sure what exactly the box does to the traffic that is routed through it (we can infer and guess, of course).&#160;</span> blocking Digital Ocean<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> All cloud service providers that serve Russian citizens are legally required to have an office in Russia, to cooperate with the Russian authorities, and to store any and all data concerning Russian citizens within the Russian borders. Digital Ocean, the cloud provider I use for several of my projects, including this website, apparently, does not qute abide (and, supposedly, doesn&rsquo;t even have anything to do with Russia; how they manage to charge my account for the Russian VAT monthly is beyond my imagination, but they do).&#160;</span>.</p>
<p>I think I will do nothing about it. I could move to another hosting provider (and cut some costs), but fuck it, really. I will move this website to another hosting provider when I — personally — cease to be satisfied with Digital Ocean&rsquo;s services. The Russian authorities being dissatisfied with these services is not a valid reason.</p>
<p>Naturally, the thought of influencing someone who doesn&rsquo;t even bother to set up access to the blocked websites<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup><span class="sidenote"><sup class="sidenote-number">4</sup> A healthy percent of Russians systematically use a variety of measures (all sorts of VPNs, mostly) to access Facebook, Instagram, and other services the Russian authorities block. Still, a surprizinggly large number of people don&rsquo;t.&#160;</span> is flattering, but let me be a lazy realist for once. I&rsquo;m not a propaganda outlet, not even for common sense propaganda.</p>
<p>And the lawlessness in Russia<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup><span class="sidenote"><sup class="sidenote-number">5</sup> The Russian Constitution explicitly forbids censorship and allows anyone to freely search for, access, create and disseminate information (article 29). The Russian Criminal Code explicitly describes punishment for usurping power and enforced changes to the Constitution (article 278).&#160;</span> will end one day. Perhaps, it will end sooner that this blog will.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://megafon.ru" rel="">Megafon</a> is one of the Russian &ldquo;big three&rdquo; mobile providers. I, for one, have been a user of their services for over 20 years (and counting).&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>To legally operate an Internet provider in Russia, you need to install what is known as ТСПУ (Technical Measure for Countering Threats). It is basically a box that you connect three cables to: the one going to your uplink, the one going down to your network, and the third one going right to the State Security offices. It&rsquo;s illegal to route any traffic circumventing this box, and no one without clearance knows for sure what exactly the box does to the traffic that is routed through it (we can infer and guess, of course).&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>All cloud service providers that serve Russian citizens are legally required to have an office in Russia, to cooperate with the Russian authorities, and to store any and all data concerning Russian citizens within the Russian borders. Digital Ocean, the cloud provider I use for several of my projects, including this website, apparently, does not qute abide (and, supposedly, doesn&rsquo;t even have anything to do with Russia; how they manage to charge my account for the Russian VAT monthly is beyond my imagination, but they do).&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>A healthy percent of Russians systematically use a variety of measures (all sorts of VPNs, mostly) to access Facebook, Instagram, and other services the Russian authorities block. Still, a surprizinggly large number of people don&rsquo;t.&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>The Russian Constitution explicitly forbids censorship and allows anyone to freely search for, access, create and disseminate information (article 29). The Russian Criminal Code explicitly describes punishment for usurping power and enforced changes to the Constitution (article 278).&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></description>
</item>
<item>
    <title>Heavy Metal</title>
    <link>https://evgenykuznetsov.org/en/posts/2025/security-circus/</link>
    <pubDate>Fri, 22 Aug 2025 12:33:20 &#43;0300</pubDate>
    <author>evgeny@kuznetsov.md (Evgeny Kuznetsov)</author>
    <guid>https://evgenykuznetsov.org/en/posts/2025/security-circus/</guid>
    <description><![CDATA[<p>Twenty years ago in Russia, I could go to a train station and board a train without taking my keys out of my pocket. Life got better and more secure since then, so now you need to empty your pockets and present your backpack for screening.</p>
<p>It&rsquo;s funnier on public transport. In Moscow, you can use the same ticket to travel by subway and city train. The train can be MCD (diameter, goes further to the suburbs) or MCC (ring road in Moscow). At the MCC, it is mandatory to turn out the pockets and present bags for screening. Most MCD stations don&rsquo;t even have the equipment for that. In subway there is equipment, to the extent that the lobbies of old stations feel tight and crowded, and the ever-vigilant security guards selectively pull potential terrorists out of the stream of people for screening. They don&rsquo;t check everyone, though. I ride to work every day with the same backpack, with the same laptop inside it. I undergo the humiliating screening procedure once or twice a week; why I get chosen (or not) on a given day is a mistery.</p>
<p>I always wonder: what all this is for? Making money on the purchase of equipment — sure. Making jobs for idlers — sure. Constantly reminding the populace that life is scary (and outright dangerous unless you have vigilant guards) — sure. But how much does it help with real security? Will someone entering the subway with a gun, for example, be stopped?</p>
<p>Yesterday, for various reasons, I was carrying a dumbbell in my backpack. 16 kilograms of cast iron.</p>
<p>I wasn&rsquo;t stopped for inspection.</p>
]]></description>
</item>
</channel>
</rss>
