<?xml version="1.0" encoding="utf-8"?>
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
  <title>Мультиблог 4X_Pro : Лог жизни</title>
  <link>https://4xpro.ru/lytdybr/</link>
  <description>Записи о текущем настроении и прошедшем дне</description>
  <lastBuildDate>Sat, 22 Aug 2026 23:03:21 +0000</lastBuildDate>
  <atom:link href="https://4xpro.ru/lytdybr/rss.htm" rel="self" type="application/rss+xml" />
  <generator>Intellect Board 3 Pro</generator> <item>
          <title>Очередные перемещения и настройка DoH-сервера</title>
          <link>https://4xpro.ru/lytdybr/2992/</link>
          <description><![CDATA[<p>В воскресенье переместился с дачи на квартиру в Области, и понедельник отлично провёл там. Успел и на прогулку к местному &laquo;Байкалу&raquo; сходить, и сгенерировать новый дизайн для страницы блога. Lovable больше не работает, поэтому пришлось попробовать другой сервис &mdash; UI Backery. Дизайн получился классный, но минималистичный: у комментариев &mdash; только имя пользователя и дата отправки. А как только добавил всё остальное (лайки, номера комментариев, меню действий), как то ощущение лёгкости тут же исчезло. Теперь вот сижу и думаю, чем можно пожертвовать, а чем &mdash; нет. Зато понял, как избавиться от визуально тяжелых форм отправки сообщения в обычных форумных разделах. Там тоже вынесу редкоиспользуемые настройки в диалог, показываемый по кнопке (как сейчас сделано на странице нового сообщения в блог, только кнопка будет в другом месте).</p><p>А во вторник поехал домой. Как всегда, полдня ушло на то, чтобы всё доделать и собраться. Потом долго ехал, смотрел в окно, вспоминал свои поездки 2012-2014 годов на дачу. И задался вопросом: остался ли я прежним собой или же в какой-то момент себя предал, поэтому и вынужден так жить, как живу сейчас. Вроде чисто внешне занимаюсь тем же самым, что и тогда: делаю какие-то свои проекты, экспериментирую с разным софтом, осваиваю новые языки программирования, пытаюсь улучшить сайт. Пожалуй, самое большое изменение &mdash; это стало гораздо меньше желания делиться опытом, наработками и идеями. Раньше я верил: вот выложу что-то &mdash; будет и людям польза, и мне новые посетители на сайт. А сейчас не верю ни в первое (у меня всё же не настолько уникальный опыт, чтобы то, что я делаю, было чем-то принципиально новым), ни во второе: слишком уж изменился Интернет. Даже я сам сейчас не так уж часто хожу по чужим личным сайтам, хоть это во многом и из-за перегруженности информацией, да и просто того, что не знаю, как их искать. К тому же после повторного заболевания COVID в 2024 году значительно выросли затраты сил и времени на формулирование мыслей и написание контента. Поэтому живу в состоянии вечного откладывания: есть множество тем, на которые хотел бы высказаться (например, написать про юзабилити RSS-лент), есть некоторые некоторые доработки сайта, которые можно выложить как отдельные библиотеки (тот же умный генератор тизеров), но нет желания тратить силы и ресурсы на приведение всего этого в более-менее приемлемый вид. А ещё совершенно перестал следить за SEO сайта. Тем более, конкретно для этого даже нет внятных запросов, по которым его надо оптимизировать.</p><p>Приехал жутко уставшим. Да ещё пришлось в Tiles Survive участвовать в двух игровых событиях на бегу и раздваивать своё внимание между тем, что вокруг, и игрой. (У меня от такой многозадачности очень быстро начинает болеть голова.) Поэтому вечером почти ничего не сделал, кроме нескольких совсем мелких правок по сайту, а большую часть вечера потратил на просмотр объявлений на Авито. Всё-таки не даёт покоя мысль купить фотоаппарат Sony RX-100, но никак не могу определиться, какую именно версию: первая &mdash; приемлема по цене, но малость устаревшая, вторая уже чуть-чуть вылезает из комфортного ценового диапазона, но хорошо подходит под мои нужды. И ещё рассматриваю четвёртую из соображений &laquo;взять с запасом, а то <a rel="ugc" href="https://4xpro.ru/lytdybr/2900/post-11505.htm" rel="noopener noreferrer" target="_blank">будет как всегда </a>&mdash; купил что-то точно под текущие потребности, а буквально через месяц-другой они взяли и выросли&raquo; (четвёртая гораздо лучше в плане съёмки видео, но имеет меньший диапазон фокусного расстояния). </p><p>А сегодня с утра проснулся полузаболевшим. Вроде всё хорошо, только чуть-чуть горло болит, но чувствуется беспричинная усталость и слабость (хотя Welltory каким-то чудом показывает больше 80% энергии). И весь день почти бездельничал. Только поднял на втором VDSе собственный DoH-сервер, работающий на Blocky, где есть встроенный блокировщик рекламы, подставляющий IP 0.0.0.0 для доменных имён из чёрного списка. Но у него нашёлся смешной баг: я прописал в настройках внешний файл с запрещёнными доменами (для ещё одного уровня блокировки рекламы), а он пытается скачать его непосредственно при загрузке, ещё до того, как включит собственный resolver. В результате Blocky не может сделать для этого адреса DNS resolving и, соответственно, скачать файл (по крайней мере, я так понял происходящее). Поэтому нужно либо тот домен в hosts прописывать (но это плохое решение), либо оставлять на 53 порту обычный systemd-resolver, а Blocky вешать только на 853 в режиме DNS over TLS (Android, как выяснилось, понимает только такой режим) и на 4053 для DNS over HTTPS в броузерах. </p>]]></description>
          <dc:creator>4X_Pro</dc:creator>
          <pubDate>Wed, 19 Aug 2026 22:12:35 +0000</pubDate><guid>https://4xpro.ru/lytdybr/2992/</guid>
          </item> <item>
          <title>День информационной разгрузки и невесёлые размышления</title>
          <link>https://4xpro.ru/lytdybr/2991/</link>
          <description><![CDATA[<p>В пятницу заехал на дачу. Ехал в сильном недосыпе, да и поездка получилась тяжёлой, поэтому решил лечь спать рано. В субботу проснулся тоже рано по своим меркам, и устроил себе день информационной разгрузки. Сидел, размышлял о жизни, вспоминал свои самые первые поездки на дачу в 2012 году, как мечтал, что перееду на дачу и начну иную, новую жизнь, где буду всё успевать, как в школьные годы. Потом сходные желания были&nbsp; в 2024 году при переселении на квартиру в Области. А сейчас вдруг осознал, что на самом деле мне нужно не столько абстрактное &laquo;всё успевать&raquo;, сколько просто почувствовать контроль над своей жизнью. (Хех, вспомнилось, как <strong>Фы</strong> в том же далёком 2012 увидела это по почерку: что у меня очень видны попытки как-то организовать текст на странице, но по факту получается не очень.) Чтобы &laquo;я решил сделать &mdash; я сделал это за приемлемое время&raquo;. А сейчас либо потоком жизни сносит, и просто не довожу ничего до конца, либо делаю, но тогда, когда эта задача успеет повисеть над душой так, что вместо радости от её окончания и того, что у меня теперь что-то есть, остаётся только &laquo;ну хоть как-то отделался&raquo;. А причин, по сути, две: <a rel="ugc" href="https://www.youtube.com/watch?v=5xGo3dBIgHU&pp=0gcJCf4LAYcqIYzv" rel="noopener noreferrer" target="_blank">нарциссическая прокрастинация</a> и, видимо, какие-то проблемы с селективным вниманием (не могу игнорировать второстепенные раздражители даже тогда, когда чётко знаю, что нужно сосредоточиться на важном). Особенно в условиях Интернета, где и так всё буквально стремится перехватить, оторвать кусок внимания. И как живут люди, у которых нет таких проблем? Хотя <strong>Tella</strong> вообще считает, что дело не в этом, а в том, что у меня есть какая-то слабая форма ОКР.</p><p></p>]]></description>
          <dc:creator>4X_Pro</dc:creator>
          <pubDate>Sun, 16 Aug 2026 21:50:05 +0000</pubDate><slash:comments>9</slash:comments><guid>https://4xpro.ru/lytdybr/2991/</guid>
          </item> <item>
          <title>Ещё несколько шагов к сайту в цветах летнего дня</title>
          <link>https://4xpro.ru/lytdybr/2989/</link>
          <description><![CDATA[<p>Что ж, сегодня я сделал ещё несколько шагов в сторону мечты о личном сайте в цветах летнего дня: поменял цветовую гамму на главной странице на предложенную Perplexity, добавил значки для разделов и убрал форму &laquo;Задать вопрос&raquo;. Теперь сижу и привыкаю к тому, насколько иначе стал восприниматься сайт. </p><p>Путь к этим изменениям был весьма непрост. Сначала я никак не мог определиться с цветом шапки: с одной стороны, она должна контрастировать с основной частью сайта, с другой &mdash; если использовать там слишком тёмно-синий цвет, то он будет ассоциироваться, скорее, с ночью. Кроме того, вечером, когда на компьютере включается режим смещения баланса белого для улучшения сна (так называемый red shift), цвет шапки воспринимается совсем иначе, чем днём (что не удивительно, так как именно синий цвет больше всего подвергается коррекции). Сначала я это не учитывал, и встав утром, недоумевал, почему ночью выбрал такой цвет. Потом вспомнил про цветокоррекцию, и стал подбирать уже с её учётом. Точнее, подбирал я не оттенок, а просто добавлял/убавлял прозрачность от того исходного цвета, который предложил Perplexity. В итоге остановился на показателе в 90%. </p><p>Потом на ровном месте вылезла вторая проблема: значки. Изначально я задумал, что они должны быть монохромными и по цвету совпадающими с цветом названия раздела. Но оказалось, что большинство подходящих значков &mdash; цветные, да ещё не всегда хорошо стыкуются с фоном (больше всего было проблем с жёлтой лампочкой на зелёном фоне). В какой-то момент казалось, что решение нашлось &mdash; CSS-свойство font-variant-emoji. Но оказалось, что оно не работает в Firefox, да и вообще появилось только в 2024 году (по моим антиускорительским меркам &mdash; слишком новое). </p><p>Тут я начал метаться: то пытался всё-таки найти подходящие монохромные значки, то как-то привести их к желаемому виду с помощью CSS-фильтров, то был готов сдаться и вместо Unicode использовать символы из Font Awesome (от которого на самом деле постепенно хочу избавляться в целях облегчения страницы). Но и Font Awesome у меня достаточно старой версии, и там тоже некоторых значков не хватало. В какой-то момент уже согласился было на &laquo;костыльное&raquo; смешанное решение: часть значков из Unicode (самолёт, инь-ян и ещё что-то), остальные &mdash; из FA. Но тут вспомнил, как Google AI при поиске упоминал что-то о том, что можно добавить специальный Unicode-код (кому интересно, он равен U+FE0E), чтобы сделать принудительное монохромное отображение. Причём я пытался это сделать в самом начале, но неправильно заэкранировал код (по привычке написал \uFE0E вместо просто \FE0E), поэтому не сработало. </p><p>В итоге просто забил в диалог с ИИ &laquo;преврати эти символы в монохромные&raquo; и отправил нужные значки. Он справился! После того, как я скопировал то, что он вернул, в CSS, значки стали монохромными и в Chrome, и в Firefox. Впрочем, нужно будет ещё под Windows проверить&hellip; </p><p><strong>UPD.</strong> Проверил с помощью онлайн-сервиса под Windows и Mac &mdash; относительно приемлемо, только значок с компьютерами отображается некорректно.</p>]]></description>
          <dc:creator>4X_Pro</dc:creator>
          <pubDate>Fri, 14 Aug 2026 02:12:05 +0000</pubDate><slash:comments>1</slash:comments><guid>https://4xpro.ru/lytdybr/2989/</guid>
          </item> <item>
          <title>Насыщенные выходные: CTF и рейд в игре</title>
          <link>https://4xpro.ru/lytdybr/2977/</link>
          <description><![CDATA[<p>Выходные получились более чем насыщенные. На прошлой неделе в одном из Telegram-каналов попалась реклама CTF от Авито, и я впервые решил принять участие в реалтаймовом CTF (для тех, кто не в курсе, CTF &mdash; это соревнования&nbsp; по &laquo;белому хакерству&raquo;, когда нужно найти специально предусмотренные в системе или сайте уязвимости, через которые добыть &laquo;флаг&raquo; &mdash; секретную строку текста, подтверждающую выполнение задания).&nbsp; Соревнование должно было начаться в 12 часов в субботу и длиться до 18 часов воскресенья.</p><p>Но на него наложилось два важных игровых события в Tiles Survive. Первое &mdash; это битва за Аркадию, которая бывает по субботам вечером. Обычно там всё сводится к тому, чтобы набить то количество очков, за которые даются бонусы, а какой альянс что забирает, решается заранее на уровне договорённости глав альянсов. Но в этот раз всё было иначе: у нас в недельной альянсовой дуэли впервые за последнее время попался противник, почти идеально равный нам по силам. И исход дуэли решался во многом тем, кто больше набьёт очков на битве за Аркадию. Поэтому битва длилась два часа и была очень напряжённой. Причём в первые полчаса отрыв от противника был ощутимый, но противник нас догонял, и к самому концу сумел оторваться на 100M очков. Потом, правда, нашии выкрутились: после окончания Аркадии затеяли мини-войнушку с ещё одним альянсом нашего штата, и добрали недостающее в ней, а также за счёт использования ускорителей (в субботу очки даются почти за все ускорители, но понемногу) и т.п. Конкретно для меня победа в этой дуэли была особенно важна, так как во вторник я потратил кучу ускорителей на внеплановую достройку электростанции до 29 уровня, из-за чего поломались все планы развития. Но зато вторник я закончил на третьем месте дуэльного рейтинга!</p><p>А в воскресенье я впервые пошёл на такое игровое событие как рейд на резервуар. Прежде я на него не ходил из-за того, что наши утверждали, что без аудиосвязи там делать нечего. А у меня есть предвзятое отношение к аудио/видеосвязи, и пользуюсь я ей только в редких ситуациях с теми, с кем знаком по оффлайну. Потом меня убедили попробовать такой вариант: я сам не включаю ни камеру, ни микрофон, а просто сижу в наушниках и слушаю, что там обсуждают. В итоге как раз на этой неделе решился, а то, что рейд наложится на CTF не учёл. </p><p>В воскресенье проснулся раньше, чем хотел, выспался плохо. В итоге перед рейдом по CTF даже не пытался сделать. Сначала всё пошло не так: подключил bluetooth-наушники к планшету, в игре звук на них идёт, а в Телемосте &mdash; всё равно на динамик. Психанул, выключил, пожалел, что вообще во всё это ввязался (а рейд там устроен так, что на него надо регистрироваться за пару дней, и потом отдать место другому игроку нельзя). С недосыпа не сообразил залезть в настройки самого Телемоста, скорее всего, там можно было указать, куда звук выводить. Потом нашёл решение &mdash; сел за комп, к которому подключил проводные наушники, а играл всё равно с планшета. Впрочем, пока я со всем этим возился, <strong>pilulka</strong> (глава альянса) написала мне краткую вводную текстом. Причём потребовался всего один абзац, дальше я сам более-менее сориентировался по ходу рейда.</p><p>Рейд начался хорошо: в первые полчаса мы устойчиво обходили противника по количеству добытой воды. Но где-то к середине что-то пошло не так: противник сосредоточился на бочках, с которых даётся не особо много воды, зато непрерывно, а наши основные игроки занимались тем, что сражались за другие объекты, за которые дают больше воды, но только после удержания в течение определённого времени. А удерживать их не давали сильные игроки противника. В итоге в какой-то момент они существенно нас обогнали. </p><p>Мне по распределению ролей доставался контроль над бочками в левой части карты. Но бочки, в отличие от остальных объектов, на мини-карте не показываются, их надо искать свободным перемещением. Я про это не знал (равно как и то, сколько бочек в игре вообще), поэтому минут пять держался вместе с ещё одной участницей возле одной бочки, которую всё же удалось найти. Потом прилетел какой-то противник 30 уровня (максимальный уровень в игре, у меня сейчас &mdash; 29), который сжёг моё поселение (после этого сожжённого игрока выбрасывает на стартовую позицию на краю карты). Стал искать бочки снова и нашёл место, где стояло две бочки рядом, и ещё одна &mdash; в пределах видимости. Занял все три, и несколько минут спокойно сидел. Потом появился другой противник 30 уровня, но с плохо прокачанными войсками, так, что полным отрядом я его мог победить. И тут началась борьба за эти три бочки, которая длилась до самого конца рейда. Довольно быстро я сообразил, что на двух ближних бочках отлично работает такая тактика: сильным отрядом вышибить противника, потом тут же отозвать сильный отряд, и заскочить более слабым (всего отрядов у меня четыре), а сильный послать на другую или же оставить оборонять поселение, а на дальнюю бегать вторым, который противник мог пробить только своим первым. В итоге более-менее стабильно получалось держать две бочки из трёх.</p><p>Рейд мы проиграли, но даже за такой результат я получил более 9 тысяч жетонов резервуара, которые сразу же обменял на два жетона именного оружия для героев (всего на оружие каждому герою нужно набирать по 40 таких жетонов). Собственно, ради именного оружия я и решился пойти на резервуар &mdash; это самый стабильный источник жетонов для него. А в рейтинге по добытой воде оказался на 9 месте (из 30 участников альянса, принимавших участие в рейде).</p><p>Вообще, сегодняшняя игра позволила мне осознать, почему же мне так нравится Tiles Survive. Фактически, это воплощение моей мечты о мире, где не нужно рисковать и боятся будущего: даже если проиграл, всё равно не останешься ни с чем, а часть вознаграждения получишь. И почти всегда даются попытки попробовать ещё раз, если что-то сделал не так: напал на слишком сильного зомби, завалил мини-игру и т.п. И ещё это мир социальной справедливости, где есть система, что даже когда кто-то из донатчиков что-то реально ценное покупает, тем, кто не может себе это позволить, тоже что-то достаётся (те самые золотые яйца, которые нужно ловить в чате, или ящики, даваемые всем участникам альянса).</p><p>Но увы, CTF этого я уделил слишком мало времени. В субботу посидел несколько часов перед началом битвы за Аркадию и решил четыре задачи из категории Web. Причём на одной застопорился довольно глупо: там надо было либо обойти CAPTCHA для перебора Ещё несколько хотел решить после рейда, но только на то, чтобы успокоиться, затормозить мозг от эмоционального разгона и настроиться, ушёл почти час. А потом из-за нехватки времени занервничал, начал метаться между несколькими задачами, и в итоге не дожал ни одну. Хотя в двух довольно неплохо продвинулся &mdash; на форензику и криптографию. В задаче по криптографии нужно было понять алгоритм шифрования, и на одном из его этапов каждый байт шифровался независимо от остальных, но при этом не простым xor, а заменой по какой-то непонятной схеме. И я никак не мог понять, как лучше делать: то ли искать закономерность, по которой происходит подстановка, то ли просто написать скрипт, который прогонит через шифратор все 256 байт и просто составит словарь для дешифровки без всяких закономерностей. Кстати, сейчас постепенно начинаю понимать, что в realtime CTF нужно, во-первых, сохранять все добытые ключи, пароли и прочее &mdash; иногда бывают взаимосвязанные задачи, а во-вторых, как только какое-то действие начиет требовать регулярных повторений (то же подключение к серверу с шифратором), нужно его заскриптовывать. Благо сейчас зачастую это можно поручить нейросетям (такое их использование правилами допускается).</p><p>В общем, могу сказать, что эти выходные прожил именно так, как и представлял себе счастливую жизнь &mdash; получая удовольствие и от игры, и от CTF! К тому же CTF интересно сделан в плане сквозного сюжета &mdash; про противостояние пчёл и барсуков-медоедов. Даже просто изучать сайты с заданиями было удовольствием! Очень ЧИшно придумано, выражаясь языком соционики. Да и задания в целом интереснее и разнообразнее, чем на CodeBy. Заодно ещё раз убедился, что в условиях конечности отведённого на задачу времени меньше отвлекаюсь и лучше концентрируюсь. Теперь буду и дальше участвовать в подобных мероприятиях (весной попадалось что-то аналогичное от МТС, но тогда не стал регистрироваться из соображения, что за короткое время ничего не успею и только расстроюсь из-за нулевого результата). Впрочем, сейчас увидел, что задания будут доступны до 26 июля, но уже без начисления очков. А ещё будет конкурс видеоразборов от тех, кто смог решить задачи. Так что буду изучать и набирать опыт на будущее.</p>]]></description>
          <dc:creator>4X_Pro</dc:creator>
          <pubDate>Mon, 20 Jul 2026 02:20:19 +0000</pubDate><slash:comments>3</slash:comments><guid>https://4xpro.ru/lytdybr/2977/</guid>
          </item></channel></rss>