Портрет 4X_Pro
Был в Сети 21 дек. 2024 г., 14:10
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Лог жизни

Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.


День падающих ботов

4X_Pro
Сегодня был день падающих ботов. Проснувшись, обнаружил от GoRo сообщение, что SuperMon_Bot после вчерашнего обновления не работает. Пришлось бросить всё и лезть на сервер выяснять, в чём дело. Оказалось, кончилось место на диске из-за того, что слишком раздулись логи, и некуда было сохранять файл с id последнего запроса. Потом выяснилось, что бота то и дело перезапускает проверяющий скрипт, написанный самим GoRo, который считает насколько активно появляются новые строки в логе. Причём скрипт написан неэффективно и сжирает память и процессор гигабайтами. А после рестарта бот делал запись в логе об успешном старте, и лог рос ещё больше.
С этим быстро разобрались. Я немного доработал бота: во-первых, сделал обработку ситуации, когда в id последнего запроса пустая строка (раньше это вызывало цикл exceptionов, что опять же вело к переполнению лога), во-вторых, сделал счётчик, который увеличивается при ошибках и уменьшается при нормальной работе. И при превышении определённого значения процесс бота завершается с ненулевым кодом ошибки, чтобы его перезапустил systemd, чтобы избавиться от необходимости контролирующего скрипта.
Параллельно с этим выяснилось, что упал и мой VDS, на котором работает SiteKnockerBot. Но тут обошлось без ошибок с моей стороны, были проблемы с физическим сервером у хостера. Через пару часов всё заработало. Кстати, SuperMon_bot, после того, как его починили, даже отследил это и прислал уведомления (в нём есть и функция мониторинга других ботов).
Но к вечеру выяснилось, что хотя бот вроде работает, но лог продолжает расти. Посмотрев, что туда пишется, я увидел первопричину всех происшествий вообще. Оказывается, я обновления загрузил, а модуль dnstwist, нужный для их работы, установить забыл (хотя когда выгружал, крутил в голове «надо сделать вот это»). В результате GoRo добавил соответствующую проверку для тестирования, бот стал сыпать в лог сообщениями о том, что нет нужного модуля. И именно с этого всё и началось.

День YouTube и важное осознание

4X_Pro
Сегодня, отчасти с подачи DarLik, у меня получится день, точнее, вечер YouTube. Посмотрел довольно много разных материалов. В том числе наткнулся на видео про конкуренцию на канале Ольги Демчук. Посмотрел видео, стал читать комментарии к нему, и там попался один очень важный комментарий, который на многое открыл мне глаза:
RinataGrin написал(а):
[…]А по поводу самого Зверя. Мне кажется, что сам Зверь - это такая программка в психике, которая возникла, когда достаточно одаренный, крепкий, сообразительный ребенок попал под давление авторитарного тирана значимого взрослого, боялся его, согласился жить по его правилам, а главное - взрослый пугал и принуждал ребенка соответствовать его ТРЕБОВАНИЯМ и ОЖИДАНИЯМ, и ребенок ИСПУГАЛСЯ, он хотел выжить, и он принял на веру, что тот ОБРАЗ, который транслировал ему этот взрослый, действительно хороший, правильный, потому что будучи ТАКИМ он выживет! Вот и всё. Самое главное здесь - каким бы крутым ни стал этот ребенок, следуя требованиям взрослого, ВНУТРИ СЕБЯ ОН БУДЕТ ЗНАТЬ, ЧТО ОН ТРУС, ОН УЖЕ ПРОГИРАВШИЙ!!! И теперь, всю свою жизнь он будет стремиться получить РЕВАНШ. Сначала он будет следовать требованиям и ожиданиям своего тирана - он даже станет этаким суперменом - и здесь он хорош, и здесь он умен, и здесь он крут и т.п.! И тиран доволен им. И вся его жизнь - это взять реванш, доказать другим, что он не трус, не проигравший, что он крутой! Он достигает в жизни высоких положений. Но люди таких людей не любят. Они чувствуют, что он - не настоящий. А в чем его ненастоящесть? В том, что он показывает одно - какой он умный, крутой, добрый и т.п., а в душе он при этом ЗНАЕТ И ТРАНСЛИРУЕТ окружающим, что он - трус, слабак, не тот, за кого себя выдаёт. И ему все время надо доказывать, что он крутой. Он тратит на это силы, время, он учится, тренируется, соревнуется и доказывает себе через других, что он крут! Отсюда его злость, когда что-то идет не по его, отсюда у него чувство несправедливости, когда кому-то, а не ему выдали премию: "Я столько усилий сделал, столького достиг, я такой умный, а меня не оценили, а оценили этого бездаря!" и т.п.  Есть второй тип людей, который тоже проиграли в самом начале. Этим еще хуже. Они тоже оказались под воздействием тирана и признали своё поражение перед ним в самом начале жизни, тоже хотели соответствовать образу, который требовал от них значимый тиран-взрослый, но не смогли - в силу слабого тела, отсутствия каких-то качеств. И эти люди считают себя дном. Первые - считают себя супер-менами, крутыми, вторые - считают себя слабаками, неудачниками, дном. Но оба эти типа глубоко внутри себя понимают, что ОНИ УЖЕ ПРОИГРАЛИ. И супер-мены проиграли, и слабаки проиграли. Отличие первых от вторых в том, что первые занимаются компенсацией, чтобы выиграть-таки, они жаждут реванша! Но реванш так и наступает. Отсюда получается, что здоровый человек - это тот, кто мог противостоять тирану и не согласиться с его требованиями, отстаивать свою позицию до конца.

Ведь это же верно как про меня (для меня таким невыносимым требованием было соответствие мужской гендерной роли, о чём писал недавно, и вообще меня всегда пытались заставить быть взрослее, чем я был на самом деле), так и про моих противников — «ускорителей жизни». Кстати, вот ответ, почему они со своими целями и достигательством всегда мне казались такими  фальшивыми. А в моём случае существует запрос на другое: чтобы некая значимая фигура дала мне внутреннее разрешение на то, что я имею право этим требованиям не соответствовать. И, желательно, чтобы мнение этой фигуры было значимо не только для меня, но и для всех окружающих, включая тех самых ускорителей, чтобы они не могли втягивать меня в берновскую игру «я вот чего достиг, а ты — неудачник».
Там дальше есть продолжение с рецептом, который, в теории может помочь, но по-моему, просто сказать себе подобное недостаточно:
RinataGrin написал(а):
Но сделать это маленькому ребенку трудно, даже невозможно. Что же им делать? Найти этого взрослого и дать ему люлей! Шучу. Надо найти способ как-то объяснить собственному подсознанию: "Я был очень очень мал, глуп и слаб! Взрослый тиран - был силен, страшен и угрожал моей и не только моей жизни! Я признаЮ, что я СОГЛАСИЛСЯ с тем, что я - глуп и слаб! Я всем своим телом и поведением демонстрировал ПОКОРНОСТЬ. И моё подсознание УВЕРОВАЛО в это! Этот взрослый меня заколдовал, сформировал во мне рефлекс страха и ощущения неполноценности рядом с сильными значимыми взрослыми людьми. И мне нужно расколдоваться, разобусловить этот рефлекс. Какими способами? Ну, во-первых, поняв это. Второе, можно произвести в уме магическое действие - рассмотреть образ, который на меня налеплял тиран-взрослый, разбить его, запаковать части и вернуть его этому тирану-взрослому. Третье, можно осознать свои реальные качества и сильные стороны, и слабые и принять их. Четвертое, заявить себе о том, что я ни в чем не виноват, я не предавал себя, я был просто слишком мал, чтобы что-то понимать и думать - не чем было это делать, мозгов по возрасту не хватало! А это вина самого тирана! И сказать себе: я отказываюсь от каких-либо мыслей о собственном превосходстве и от соревнований (или от мыслей о своей ничтожности). Потому что ЭТО ВЗГЛЯД ТИРАНА НА МЕНЯ! А я забираю себе, возвращаю себе свой взгляд на себя! И внутри меня я сильный, достойный, добрый, умный и душевный человек!  Пятое, отслеживать свое положение тела и не принимать позы покорности, а принимать позы, осанку счастливого человека и расслабленного. - Сформировать таким образом свой новый СОБСТВЕННЫЙ ОБРАЗ! И вести себя соответственно своему образу. (Когда человек соревнуется и доказывает превосходство - он - по обратной связи - себе же доказывает, себя же убеждает в том, что он не хорош: "Раз я доказываю, значит сам не верю в это!"). Как-то так.;

Самый длинный день в году и информационная разгрузка

4X_Pro
Сегодня был день солнцестояния — самый длинный день в году. Обычно я проводил его на даче, с прогулкой к реке и жарке шашлыка. Но в этом году году такой возможности не было. Даже не получилось выбраться к реке, хотя была такая мысль. Зато получился день информационной разгрузки: в Интернет только несколько раз за день выскакивал ненадолго. Только совсем уже вечером вышел нормально и почти доделал то, что обещал GoRo по SuperMon_Bot. И настроился было лечь спать пораньше, но в итоге получилось как всегда: только сейчас собираюсь выключить компьютер.

Спад продолжается

4X_Pro
После слишком активной недели, когда безвылазно дома я провёл всего два дня: пятницу и воскресенье, наконец-то возникла возможность замедлить жизнь и отсидеться дома. Ничем полезным, правда, заниматься не получается, все ресурсы уходят просто на то, чтобы прийти в себя. Да и биоритмический спад продолжается.
Только вчера с 10geekом обсудили его CSS framework. Получилась очень годная стилизация форм, и теперь я планирую начать его использовать при разработке своих проектов на базе MLFW. Только вот гостевую опять переделывать придётся, хоть и не слишком много.
Ещё возникла мысль перевести/дописать несколько своих статей об оптимизации времени загрузки сайта из профблога и опубликовать их на Hashnode. В частности, по тому, как улучшить показатель CLS (content layout shift). Они по формату и тематике вполне там будут уместны! И шансы быть замеченным там достаточно существенны.

Перепрошёл Starcraft

4X_Pro
Сегодня закончил перепроходить Starcraft. В отличие от первого прохождения (которое было, кажется, в 2000 или 2001 году), эмоций было гораздо меньше. Даже от эпической последней битвы протоссов и землян против зергов и героического самопожертвования Тассадара, которая так впечатлила меня прошлый раз. То ли потому что уже знал основные сюжетные повороты (хотя множество второстепенных деталей уже забыл), то ли потому, что в этот раз играл на английском, то ли по каким-то ещё причинам.
Последнюю карту сначала пытался пройти полностью землянами, а протоссов использовал только для обороны и добычи ресурсов. Но не тут-то было. Несколько волн атак захлёбывались: не успеваю координировать действия всех отрядов. И тогда построил протоссами 6 carrierов, провёл их по краю карты к силам землян (3 боевых крейсера и два отряда морпехов), и этих сил хватило прорвать оборону противника. А чтобы поставить красивую точку, последний удар по зерговскому Overmindу нанёс ядерной бомбой.
Ещё обратил внимание на то, что в игре появился такой показатель как APM — количество действий в минуту. У меня этот показатель лежит в диапазоне 25-30, но каково же было моё удивление, когда узнал, что у игроков мирового уровня он достигает значений порядка 200. Как они успевают так быстро мышкой шевелить? (Пусть даже делая часть действий с клавиатуры.)

Возвращение домой и решение вопроса с пылесосом

4X_Pro
Сегодня наконец-то вернулся в Москву. Хотел было выехать часов в 14, но опять получилось так, что день шёл мимо. Опять это отвратительное чувство беспомощности перед утекающим непонятно куда временем, почти как в моих ночных кошмарах! Только в 15:30 сел на электричку, и то пришлось ехать без обеда (так как запаниковал, что ничего не успеваю) и обедать во «Вкусно и Точка» в Новогиреево, куда добрался почти в еле живом состоянии. В общем, повторяется 2019 год, который я тогда обозвал «годом тяжёлой дороги».
Добравшись до дома и немного отлежавшись после поездки, отправился на почту — забирать посылку с аккумулятором для пылесоса, который ещё в апреле заказал на AliExpress. Хотелось проверить, получится ли пылесос оживить. Вернувшись домой, вскрыл коробку, померил напряжение на аккумуляторе. Вроде всё хорошо: 15 Вольт, как полагается. Но я был бы не собой, если бы просто сделал что-то с первого раза!
Дальше всё происходило так: установил установил аккумулятор в пылесос, попытался сразу запустить — никакой реакции. Решил, что аккумулятор недостаточно заряжен, поставил на зарядку — вроде всё хорошо, процесс пошёл. Где-то через час зарядка закончилась. Я попытался включить пылесос снова, но безрезультатно. Решил, что дело не в аккумуляторе, и пошёл мыться. И только уже когда сидел в ванной, пришло озарение, что я делаю не так! (Почти как у Архимеда, хех.) Дело в том, что у этого пылесоса сбоку есть аппаратный выключатель, про который я благополучно забыл, так как давно им не пользовался. И конечно же, он был выключен! После включения всё заработало. Так что робот-пылесос снова на боевом дежурстве! А общий итог этой истории — -1200 к золоту деньгам, но +1 к боевому духу и +1% к навыку ремонта.

О неприятии гендерной роли

4X_Pro
Похоже, у меня опять биоритмический спад. Причём и по физической составляющей биоритма, и по интеллектуальной. Даже скорость чтения упала очень сильно. А сегодня ещё плохо спал, сны были неприятные и тревожные, несколько раз просыпался. Встал поздно, и день прошёл куда-то мимо. Даже за компьютер толком не садился, только перед отъездом синхронизацию провел.
Зато в эти дни осознал то, что установки типа «нужно не лениться и тогда заработаешь много, а если не можешь — сам виноват» вызывают у меня неприятие не сами по себе, а именно потому что где-то в глубинах сознания они у меня связаны с мужской гендерной ролью.
А ещё осознал, насколько же масштабную роль играет в моей жизни неприятие этой роли, борьба за право не быть мужиком, если так можно выразиться. Фактически, почти всё, что вызывает у меня агрессию, злость и т.п., так или иначе, если как следует покопаться, уходит корнями туда: в угрозу, что меня в эту роль будут запихивать либо через принуждение, неоправданные ожидания, либо через пассивную агрессию. И когда я рассуждал об обществе, где каждый может быть собой, по сути, я хотел одного: общества, где можно не бояться подобного.

Ещё одно изменнеие планов

4X_Pro
И снова внезапное изменение планов. Вчера был весьма результативный день в плане работы над MLFW. Дописал модуль flash-уведомлений, кое-что переделал в классе шаблонов, сделал валидатор имён файлов. Понял, что потребуется ещё рефакторинг — всё-таки вынесу HTML-код полностью в отдельные файлы вместо классов-обёрток, как задумывал изначально. Кроме того, это даст единый подход при использовании любых шаблонов: хоть на чистом PHP, хоть с шаблонизаторами типа Twig или MtHAML.
Но, как уже давно известно, за днём больших результатов следует день спада. Поэтому решил не пытаться заставлять себя повторять вчерашний результат, а отправиться на прогулку на велосипеде. Сначала хотел съездить куда-нибудь к Карпятнику, но решил, что в выходные там будет слишком много народа. И вдруг пришла в голову совершенно неожиданная идея: поехать на новую квартиру, оставить велосипед там и погулять по окрестностям. Потом оказалось, что это была подсказка от высших сил. Подъехав к дому, я обнаружил, что 14-ого числа будет проверка газа и вентиляции, и нужно обеспечить присутствие кого-либо в квартире. В итоге планы пришлось корректировать: завтра вместо того, чтобы ехать днём в Москву, вечером поеду на квартиру, там переночую, и в Москву вернусь уже послезавтра.
А вот прогулка получилась просто отличной! Посмотрел стадион, местный ДК, в итоге только пешком находил 4300 шагов, и суммарно (с учётом поездки на велосипеде) набрал 70 баллов активности по данным Google Health. Но домой приехал сильно уставший, и остаток дня прошёл куда-то мимо.

День ЖЖ

4X_Pro
Сегодня у меня получился день ЖЖ какой-то. Началось всё с того, что в еженедельной рассылке обнаружил статью про неэкономных людей. Сама по себе статья достаточно банальна и особой ценности не представляет. Но вот в комментариях обнаружилось противостояние адекватных людей и любителей вскукарекнуть на тему «нужно больше зарабатывать, тогда вся эта хрень с попытками экономии улетучится». Естественно, пройти мимо такого я не мог! И тут же начал строчить ответы. К моему удивлению, из трёх человек, с которыми я вступил в спор, двое оказались вполне адекватными людьми. А вот с третьим нормально говорить не получилось — он выдавал сплошной поток либо необоснованных утверждений, либо просто общих рассуждений. А любые попытки что-либо конкретизировать уходили в никуда. Но увы, даже в таких условиях почувствовать себя победителем сложно, поскольку непонятно, слился человек окончательно или взял паузу и через пару-тройку дней сможет что-то ответить.
Впрочем, дело не конкретно в нём, а в том, что меня по-прежнему бесит, что есть люди, которые тот факт, что они тратят деньги на всякую фигню, считают обоснованием своего превосходства над теми, кто живёт экономя. Конечно, можно было бы потыкать им в нос статьёй «Богатство — это то, чего вы не видите», но, думаю, бесполезно. Причём, сколько я ни сталкивался с такими, складывается впечатление, что у них мышление как под копирку. Интересно, откуда это берётся. Это что, пережиток того, что феминистки называют МГС (мужской гендерной социализацией)?
Пока я писал эти комментарии, на глаза попалась ссылка, ведущая в блог scinquisitor.
(Кстати, вот она, польза ссылок на другие материалы, нужно у себя на сайте, пожалуй сделать хотя бы вывод ссылок на следующую/предыдущую записи или записи с теми же тегами.)
Просмотрев несколько последних материалов, я увидел статью про борьбу с мракобесием. Она вызвала у меня противоречивую реакцию, и я даже решил написать ответ у себя на сайте http://4xpro.ru/science/mrakobesie/.
Впрочем, несмотря на эти бурные дискуссии, за сегодня успел ещё и кое-что по MLFW сделать, и шашлык пожарить, и на короткую прогулку сходить, и даже попытаться начать обновление своего сервера, но неудачно.

Обновление VDS откладывается

4X_Pro
Мда, с великим обновлением сервера всё оказалось не так просто. Сегодня попытался было сделать dist-upgrade. Вроде всё начиналось нормально: пакеты скачались. Но при попытке обновить libc появилось сообщение, что нужна более новая версия ядра. А ядро я обновить не могу, потому что там тип виртуализации — Xen, и за ядро отвечает хостер. Так что обновление откладывается. Жаль только, что 60 руб на включение платных backupов на момент обновления потратил…
Стал искать альтернативные варианты. Пока смотрю в сторону тарифа «Прогрев» на FirstVDS, он всего 199 руб/мес. При этом оперативки даётся целый гигабайт, а не 512 Мб, как у меня сейчас (а можно взять с SSD вместо NVMe и будет ещё дешевле, при этом при моих нагрузках разница по скорости вряд ли будет существенной). Но с другой стороны, перетаскивать все сайты и переносить настройки DNS — это столько времени уйдёт… В общем, видимо, займусь этим либо когда в Москву вернусь, либо вовсе дождусь, когда у них Debian 12 появится. (Как выяснилось, он вышел прямо сегодня.)

Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.