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

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


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

t.me/4x_pro

Лог жизни

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


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

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 появится. (Как выяснилось, он вышел прямо сегодня.)

Внезапное изменение планов

4X_Pro
Внезапно изменились все планы. Вчера отправился на длинную велопрогулку. Побывал в ближнем сосновом бору, оттуда выехал на Великий луг и добрался до Нового Капрятника, возле которого стал бывать очень редко после строительства новой дороги — слишком уж неудобно добираться. Посидел на его берегу, сфотографировал ставший уже классическим вид, и ушёл глубоко-глубоко в себя, почувствовав гармонию с миром. После всего этого расхотелось уезжать! Тем более выяснилось, что скорее всего, быстро приехать снова не получится. В итоге решил остаться на даче до вторника, а не ехать сегодня.
Второе изменение планов произошло вечером. Изначально я планировал вернуться к работе над MLFW и сделать класс для flash-уведомлений (уведомления о последних действиях, которые либо всплывают, либо выводятся на следующей после редиректа странице, при этом нужно сделать их запоминание на сервере). Но не тут то было!
Началось всё с того, что я обнаружил у себя письмо от FirstByte, где когда-то держал VDS для socionics.me, а потом там же размещал и SiteKnockerBot. Потом я тот VDS удалил, но пустой аккаунт остался. И вот FirstByte написал об акции, где бывшим клиентам дарится промокод на два месяца бесплатного VDS. Упускать халяву — это не моё, поэтому я решил использовать эту возможность, чтобы всё-таки попытаться поставить и потестировать движок сообщества Forem. Но оказалось, что это не так просто! Сначала хотел было ставить полностью вручную, но почитав мануал, понял, что это плохая идея: слишком много всего ставить и настраивать. Решил пойти более простым путём — установить через docker-compose, как уже пытался когда-то на виртуальной машине. На этот раз установка прошла чуть дальше, но всё равно без проблем не обошлось. Сначала долго писалось, что нет возможности подключиться к какому-то узлу. И в процессе начального заполнения базы посыпались ошибки. Потом это решилось, но из-за того, что база не заполнена, попытка зайти на сайт стала приводить к ошибке 500.
С docker-compose я дела особо не имел, и поэтому как перевыполнить нужную задачу, не знаю. Стал было пытаться разобраться, но тут снова случилось непредвиденное: в полночь пришло уведомление, что новый сервер превратился в тыкву отключили за неуплату! Вот тебе и обещанные два месяца халявы! Скорее всего, дело в криво настроенном биллинге, куда, видимо, забыли заложить информацию об этой акции, либо же в том, что у меня старый аккаунт с ежесуточной оплатой, а там предполагалась ежемесячная. Конечно, можно было бы написать в техподдержку и решить этот вопрос. Но я решил истолковать это как сигнал от высших сил, что нужно не распыляться, а продолжать заниматься MLFW (первый раз они давали такую подсказку через Таро), и завтра вернусь к нему.
А ещё я хотел сегодня выбраться на вечернюю прогулку, но из-за проблем с Forem упустил момент. Пришлось ограничиться созерцанием последних моментов заката через окно.

Как уложить сайт на полдня

4X_Pro
Вчера заглянул в настройки VDS и обратил внимание, что в качестве имени хоста там прописан не 4xpro.ru, который на данный момент является главным сайтом из всех расположенных там, а typologies.ru. Решил поменять это, а потом сразу же ушёл спать, будучи уверенным, что на работу сайтов это никак не повлияет. Но не тут-то было. Оказывается, если имя хоста на сервере совпадает с именем хоста в запросе, то Apache использует конфигурацию по умолчанию вместо той, где это имя хоста прописано явно. А у меня конфигурация по умолчанию вела на мои сайты на TextCMS, так как их у меня много, и прописывать ServerAlias для всех было лень. В итоге вместо моего личного сайта стал выдаваться один из них.
Это отследил мой SiteKnockerBot и начал заваливать меня уведомлениями, что с сайта пропали ключевые слова. Но тогда я ушёл спать и отключил Интернет на мобильных устройствах, а днём хотел успеть на прогулку в солнечное время, поэтому в Интернет не выходил. В итоге то, что сайт не работает, обнаружил только вечером. И ещё пришлось повозиться с настройками Apache, чтобы решить эту проблему с сохранением имени хоста.
В общем, порой даже такие мелкие изменения могут иметь серьёзные последствия!

Готовлюсь к великому обновлению VDS

4X_Pro
Собирался устроить великое обновление своего основного VDSа. Всё-таки Ubuntu 16.04, которая там стоит, уже устарела. Кроме того, с появлением TLS 1.3, где соединение происходит за меньшее число обменов данными, я всё же решил сделать у себя поддержку https. Увы, но отсутствие https сильно влияет на SEO, и не в лучшую сторону. Но решил оставить возможность заходить и по http, поэтому принудительный редирект делать не буду.
Сначала хотел вообще арендовать новый, поставить там систему с нуля (причём даже рассматривал вариант ухода на Debian в целях унификации с домашними компьютерами), а потом перенести сайты. Но всё пошло не так, как ожидалось. Во-первых, сработало автопродление старого сервера, и с карты списалась сумма ещё на год. Во-вторых, оказалось, что сейчас самый дешёвый облачный VDS стоит 380 руб/мес (у меня сейчас с учётом годичной скидки — всего 245 руб/мес). А ещё на Reg.Ru DNS-записи почему-то привязываются не к аккаунту, а к конкретной услуге (что, на мой взгляд, очень неудобно), так что мне пришлось бы их все переносить.
Поэтому я решил пойти другим путём — буду делать обновление системы через dist-upgrade, а потом поставлю certbot. Ещё была мысль поставить nginx в качестве reverse proxy, но от неё, похоже, откажусь: и в настройках слишком много менять, и памяти может не хватить. Подключил временно платное резервное копирование, и хотел было приступить сегодня, но из-за слишком глючного дня решил отложить.

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

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