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

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


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

t.me/4x_pro

Лог жизни

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


Неудачный день

4X_Pro
Опять день начался с телефонного звонка в непотребное время (10 утра). В итоге не смог уснуть, и день прошёл почти мимо. Весь день был очень усталый и злой, ругался со всеми. Поставил последнюю точку в переносе сайтов (удалил старый сервер и ключи доступа от него), ответил на пару Emailов и прошёл ещё одну карту в Starcraftе (и то сделал это очень криво и с огромными потерями).

Солнечная вспышка

4X_Pro
Уфф, наконец-то в очередное «уплотнение жизни» заканчивается и намечается период затишья. Закончил с переносом сайтов и более-менее исправил появившиеся из-за этого проблемы (кроме той, которая связана с Twigом), растолкал freelance-задачи, наконец-то ответил Stargrave. Но потом началось что-то странное: вечером сходил на мини-прогулку, посмотрел закат. Пришёл домой и буквально сразу вырубился на час, а когда проснулся, болела голова и всё злило. И только около двух часов ночи узнал причину, посмотрев приложение Space Weather. Оказывается, на Солнце была вспышка класса X1.6, что очень и очень много!

Заметка в Instagram от August 05, 2023 at 12:18AM

4X_Pro
Сегодня (вернее, теперь уже это вчера) какой-то глючный день. Не выспался и всё валилось из рук. Сел было за компьютер, но ничего сделать не смог — на ровном месте возникли проблемы с входом на сервер. Через какое-то время решил всё отложить и поехать на велопрогулку в лес.
Но и во время прогулки сначала переживал, что в этом году упустил ягодное время: и землянику, и малину. Землянику — потому что в это время был в Москве, а малину — из-за проблем с переселением. Впрочем, одну ягоду каким-то чудом всё же удалось найти и сфотографировать!
Но потом, посидев немного в том самом сосновом бору, успокоился и вернулся домой довольный. Всё же нужно хотя бы раз в десять дней выбираться на длинную прогулку на природе в одиночестве.
Но когда вернулся домой, всё снова стало по-прежнему. Помогли только старые компьютерные игры, а еесли конкретно, Rockman IV на эмуляторе Dendy. Только поиграв в него, успокоился и смог всё доделать, что собирался.
#малина #лето2023

Смотреть все фото

Очень нервный день

4X_Pro
Ну и денёк сегодня! Началось всё с того, что проснувшись, я обнаружил несколько уведомлений от SiteKnockerBot, что перенесённые вчера сайты либо работают медленно, либо есть разовые перебои с доступностью. Решил, что проблема в каналах у хостера и начал было жалеть о том, что переехал к нему. Но на всякий случай решил зайти на сервер и глянуть, всё ли в порядке. Оказалось, что нет! Загрузка процессора была на уровне 90-96%.
Стал разбираться, и выяснилось, что когда техподдержка хостинга разблокировала сегодня утром SMTP-порт (он разблокируется только по заявке), начал работу антивирус clamav, который я поставил вместе с Hestia просто так, на всякий случай. Именно он и загрузил процессор так сильно.  Я попытался остановить его через панель, потом — через systemctl, но безрезультано. В итоге разозлился и пошёл на крайние меры — apt purge. После этого и бот перестал сообщать о проблемах, и сайты визуально заработали быстрее.
Днём занимался настройкой почты. Теперь у меня всё по уму: почта с DKIM, DMARK и нормальным SSL-сертификатом от Let's Encrypt. Ещё обнаружил, что переход на новую версию PHP вызвал очень странный глюк Twig: он стал в каких-то случаях «съедать» пробелы возле конструкций {{ выражение }}. В частности, так случилось с формой ввода комментариев, из-за чего она стала отображаться некорректно: склеились два имени CSS-классов. Пришлось сделать жуткий костыль вида {{ ' ' }}, до которого додумался не сразу.
Вечером на связь вышел Corsico и сказал, что его сервер стал тормозить. По описанию было похоже на перегруз канала. Захожу на сервер, запускаю nload, и оказывается, что так и есть: исходящий траффик — 130 Мбит/с. Запускаю netstat и вижу большое количество соединений, большинство из которых нулевые (локальное обращение от nginx к Apache), но есть и к каким-то внешним адресам с просто огромным количеством переданных данных. Смотрю адреса через WhoIs, они разбросаны по всему миру: Бельгия, Канада, Вьетнам, Корея, Китай и ещё какие-то страны. Посовещавшись с Corsico, решили как всё подозрительное перебанить.
Я написал однострочник, который выводил наиболее активные соединения, и начал прописывать правила в iptables. Писать какие-либо скрипты в такой горячке не было возможности, поэтому просто перебанили ботов руками, благо их оказалось всего около трёх десятков (точнее, в двух случаях я забанил целые подсети). После этого загрузка канала снизилась до 10-20 Мбит/с, что вполне обычно для этого сервера.
Пока этим занимались, случилась ещё одна неприятность. Для ускорения процесса я переключился с роутера, где Интернет безлимитный, но медленный, на мобильник в режиме точки доступа. Но через какое-то время телефон просто вырубился. Я сначала подумал, что он разрядился, поставил на зарядку. Но даже через полчаса обнаружил, что не могу его включить. И уже был решил, что телефон помер, не дожив несколько месяцев до плановой замены (она намечена на конец октября или ноябрь). И только сейчас, спустя несколько часов, мне удалось заставить его зайти сначала в recovery-режим, а потом и загрузиться нормально.

Великое обновление состоялось!

4X_Pro
Великое обновление состоялось! Сегодня создал новый сервер на TimeWeb.cloud, поставил туда Hestia в качестве панели управления и весь остаток дня переносил свои сайты. Только сейчас закончил (и то ещё не протестировал socionics.me — обновляется DNS). В целом переезд прошёл хорошо, но всё равно под вечер устал так, что болела спина. Зато как следует на новом сервере теперь порядок! Всё аккуратно разложено по каталогам, соответствующим названиям доменов. И вообще, пересмотрел свои владения, проверив те проекты, на которые давно не заглядывал, типа tabshulte.4xpro.ru или 2seconds.4xpro.ru. Хотя мелкие глюки кое-где вылезают ещё, в частности, на этом сайте какие-то проблемы с формой комментариев. Ещё ошибся при переносе sociomodel.ru — забыл прописать его в список доменов, поэтому открывалась страница-заглушка, но это своевременно отследил SiteKnockerBot.
С https решил следующее: хоть я и считаю идею бездумного шифрования всего и вся неоправданной, всё же поддержку https у себя сделаю, но без принудительного редиректа. Пусть каждый сам решает, нужно оно ему или нет. Плюс так сайты останутся доступными для тех же downgraderов или в случае каких-то глобальных проблем с сертификатами. Кстати, к моему удивлению оказалось, что плюсы HTTP/2 в итоге часто перекрывают дополнительные затраты на установку TLS-соединения. Впрочем, возможно, это верно только для TLS 1.3 (который софт, установленный Hestia, поддерживает из коробки).
Также думал перевести TextCMS на PHP 8 и заявить, что хорошо написанный софт может пережить 3 major updates без необходимости в обновлении. Но увы, оказался неправ. Оказалось, что в самом начале TextCMS стоит вызов древней функции get_magic_quotes_gpc, которую удалили в PHP 7.4, и делается он без проверки версии. Поэтому сразу же возникает ошибка 500 (кстати, чем порадовала Hestia, так это возможностью смотреть логи через Web-интерфейс). Плюс ещё оказалось, что в модуле фотогалереи используется create_function — ещё одна устаревшая функция. В общем, по-хорошему, нужно бы собрать новый релиз TextCMS (а заодно и обновить wyswyg-редакторы в его составе), но вот где взять на это время? И будет ли это кому-нибудь нужно?

Попробовал RustDesk

4X_Pro
Решил попробовать приложения удалённого администрирования RustDesk (его мне когда-то советовал 10geek) и RPort.
У первого, как выяснилось, нет 32-битной версии, поэтому на старые ноутбуки поставить не получится. Решил установить мобильный клиент и подключиться с него, зашёл в Google Play, и увидел там рейтинг 1.5. Очень удивился, так как слышал о нём много хорошего. Стал читать отзывы. Оказывается, много единиц наставили те, кому звонили мошенники от имени банка с просьбой установить это приложение. Вот так чей-то низкий уровень компьютерной грамотности приводит к искажениям. А само приложение понравилось! Отзывчивость интерфейса весьма неплохая даже на моём весьма тормозном подключении! Внешне напоминает TeamViewer, но интерфейс чуть похуже (хотя очень сложно формализовать, в чём это заключается). Не хватает только возможности прямого подключения по IP-адресу в LAN, без сторонних серверов.
RPort оказался куда сложнее в настройке, поэтому решил пока отложить. Займусь им в домашней сети, а не на даче…

О Bodhi Linux и «компьютерном выживании»

4X_Pro
В жизни по-прежнему всё плохо. Сбит режим, дни пролетают куда-то мимо, ничего не успеваю и злюсь на всё. Стал уже бояться, что от постоянных недосыпаний поедет крыша (или просто здоровье ухудшится).
Вчера и позавчера занимался переустановкой Linux на старых ноутбуках. Снёс давно переставший обновляться ArchLinux и поставил вместо него BodhiLinux — один из немногих дистрибутивов, которые ещё можно запустить на 512 Мб памяти. Впечатления достаточно противоречивые. Сначала при установке вылезла мелкая проблема: при выборе файловой системы можно было указать jfs, но из-за отсутствия mkfs.jfs сформатировать раздел в неё было нельзя, и установка просто вставала. Минус почти час на то, чтобы в этом разобраться. Пришлось ставить на обычную ext4, которая более требовательна по ресурсам, что для таких компьютеров важно. Но когда с этим разобрался, всё встало и заработало достаточно быстро. Только на моём ноутбуке 2003 года покупки периодически перегревается и перестаёт работать WiFi-модуль, который вставляется в USB.
А вот DE Moksha мне категорически не понравилась! Хотя по ресурсам получается даже чуть экономнее, чем LXDE, но на разрешении 1024x768 плоско-примитивные одноцветные значки смотрятся отвратительно. Плюс ещё добавление значков на рабочий стол — нетривиальная задача. Сначала нужно включить в настройках plug-in под названием «Файлы на рабочем столе», потом вручную скопировать ярылки нужных приложений из /usr/share/applications. Нет, я, конечно, понимаю, что это защита от любителей кидать на рабочий стол всё подряд, включая фильмы и 40-мегапиксельные фото. Но всё-таки это перебор… На мой взгляд, на рабочем столе уместны только ярлыки, ссылки и, возможно, текстовые файлы.
Потом настроил принтер и печать по сети. Правда, с этим обнаружилась небольшая проблема: в дачном роутере нельзя прописать постоянную привязку IP-адреса к MAC. Так что придётся каждый раз лазить в настройки, чтобы поменять адрес принт-сервера.
Затем на свой старый ноутбук поставил LXDE и стал оптимизировать время загрузки. Вынес /tmp и /var/log в tmpfs, чуть уменьшил initrd.img и поменял алгоритм сжатия на lzop. В итоге добился времени загрузки порядка 30 секунд (с момента запуска GRUB до ввода пароля). Ещё обнаружил, что в нём благополучно померла не только CMOS-батарейка, но и основной аккумулятор.
Потом снова занялся принт-серверным ноутбуком. Попытался там поднять VNC-сервер, вроде даже получилось. Но при попытке соединения — пустой экран. Потом решил там тоже вынести /tmp и /var/log в tmpfs, и вот тут-то посыпались проблемы на ровном месте. Решил заодно прописать несколько параметров монтирования корневому разделу, допустил там опечатку. В результате загрузка зацикливалась, даже не выбрасывая в emergency shell. Пришлось снова искать флешку, грузиться с неё (а загрузка через Ventoy на старом компьютере — это ой как не быстро), исправлять fstab. После этого вроде заработало, но через некоторое время вылезла новая проблема: при загрузке полторы минуты крутилась какая-то непонятная задача, связанная с разделом с uuid, которого у меня вообще не было. И ещё часа два я ломал голову, что же происходит. Потом оказалось, что дело в swap-разделе. Я его отформатировал и обнаружил, что при форматировании UUID меняется, а в fstab он у меня именно по UUID и монтировался, и UUID был указан старый.
В итоге хотел попробовать уйти спать в полночь, но из-за всего этого засиделся до двух ночи. Когда уже выключил оба ноутбука и хотел отправить в спячку и основной компьютер, на связь вышла Tella, из-за переписки с которой засиделся до 3:30. Но и на этом «приключения» не кончились: случился приступ бессонницы, заснул в шесть, а около 9 разбудили телефонным звонком. Теперь снова весь день торможу.
И главное — никак не решу, что делать с рассылкой для Socionics.Me. Нужно пользоваться моментом, пока на форуме хоть, какое-то оживление, и попытаться вренуть рассылкой других зарегистрированных пользователей. Но вот отправлять её непосредственно с хостинга не получится из-за лимита на 150 писем в час, да и spam reputation у хостинга не очень. Хотел было воспользоваться сторонними сервисами, но там на бесплатных тарифах тоже есть лимит по письмам в час, даже если умещаюсь по количеству в месяц. Нужно либо наскоро делать какое-то решение, которое отправляет порциями по crontab, либо быстрее регистрировать новый VDS и перебрасывать socionics.me туда с обычного хостинга. Но это лучше делать на свежую голову, а добиться этого состояния не получается. Ещё висит небольшая freelance-задача, но всё опять же упирается в вопрос работоспсобности.
А ещё, занимаясь перестановкой Linux, я думал о том, что, как это ни странно звучит, я реально получаюсь человеком, которому чем хуже вокруг, тем лучше. Когда железо стоит дешёво, а рабочее время компьютерщика — дорого, мои навыки «компьютерного выживания», то есть умение хоть как-то использовать старые компьютеры в современных условиях и оптимизировать всё и вся, никому не нужны. А вот если повторится аналог 90-х, да ещё в условиях каких-нибудь санкций, когда вообще ввоз процессоров в страну запрещён, я бы быстро стал востребованным специалистом и уважаемым человеком.

Ужасный день

4X_Pro
Позавчера был ужасный день. Точнее, начиналось всё хорошо: получил статус квалифицированного инвестора. А потом узнал, сколько будет стоить доделка ванной и кухни в новой квартире (из-за чего до сих пор подвисает вопрос с переселением). Сумма оказалась более чем в два раза больше той, которую я ожидал! И если приплюсовать её к начальной стоимости квартиры, то окажется, что я по сравнению с рыночной ценой выиграл всего в лучшем случае 1-2% от стоимости. И ещё опять смещаются сроки…
Остаток дня истерил по этому поводу, только ночью успокоился и занялся переустановкой Linux на старом отцовском ноутбуке, который теперь играет роль принт-сервера на даче. Поставил туда Bodhi Linux как один из немногих дистрибутивов, которые могут запускаться на 512 Mb RAM. Главный плюс — система ставится почти голая, всё нужно доустанавливать самому. Провозился дольше, чем ожидал из-за того, что сначала пытался использовать jfs, для которой нет утилиты форматирования диска, но зато успокоился. Эх, как же я отвык от компьютеров середины 2000-х годов с их однопроцессорностью и медленной загрузкой с HDD!
Но теперь окончательно и бесповоротно слетел режим. Второй день производительность просто никакая.

Выбрался из минуса по акциям

4X_Pro
Вчера впервые с февраля 2022 года выбрался из минуса по акциям. Правда, общий итог всё равно пока отрицательный: висит ещё большой убыток по ETF ФПР (одно из самых неудачных моих вложений) и облигации в цене просели из-за изменения ключевой ставки (хотя и минус чисто формальный — продавать я их всё равно не собираюсь, буду держать до погашения).
Ещё узнал, что закрылся фонд ПНК Рентал, в который я рассматривал возможность вложиться. Точнее, даже когда-то вкладывался, но потом продал с незначительным убытком, чтобы освободить деньги для закупки подешевевших акций, но планировал со временем откупить обратно. А теперь вот уже не получится… Впрочем, поищу что-нибудь аналогичное.

События последних дней, Geek Code и HackerKey

4X_Pro
Опять не успеваю всё фиксировать в блог. А между тем в последние дни произошло немало интересного. Во-первых, с подачи goblincat я снова занялся сайтом Socionics.me и выложил туда черновик моей типологии эволюционных стратегий (это та, в которой семейные/идейные инь/ян аскеты/жизнелюбы). Плюс там ещё зарегистрировался один новый пользователь — Keynol и написал заметку про одну из линеек типологии «Кроме людей» (линейка Власти) с весьма интересными размышлениями про Бездну.
Во-вторых, закончил эксперименты с панелями управления хостингом и даже написал мини-обзор. Видимо, себе поставлю всё же Hestia. Теперь можно считать, что готов к Великому Обновлению сервера (точнее, вообще переезду на другой хостинг). Сегодня даже хотел было приступить, но не сложилось.
А сегодня почти весь день ушёл на неспешное блуждание по yggdrasil-сайтам. Наткнулся на сайт некоего stargrave, из которого узнал про такие явления, как Geek Code и HackerKey. Сгенерировал себе соответствующие:
GIT/GP d? s+: a+ C++ L++ P+ E-- W+++ N? o? K- w-- O? M-- V? PS PE-- Y- PGP t? 5? X R tv-- b+ DI? D+ G 
и
v5sw6hw4/5pr5/6ISWck5edu8ln5Ama6os6UedGcr1bo6/7ga5Ca40geMh5et5 hackerkey.com
и повесил на главной странице своего личного сайта.
Эх, как же там классно: преобладают технически продвинутые люди, которые делятся своими проектами, никакой рекламы, всплывающих блоков и т.п.! И при этом никакого перегруза информацией, истинный slow life! Всё в полном соответствии с моей статьёй о духе Старого Доброго Интернета: сложность подключения и отсутствие возможности коммерциализации являются естественным фильтром, который отбирает сто́ящих людей. Единственный минус — сайты статичные, даже без возможности комментариев, поэтому как-то повзаимодействовать не получается.

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

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