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

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


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

t.me/4x_pro

Лог жизни

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


Жизнь налаживается

4X_Pro
Жизнь понемногу налаживается. В воскресенье выбрались с Tellой в Ногинск, в этот раз посмотрели городской парк. А ещё Tella подарила мне две компьютерных игры на Steam: Life and Suffering of sir Brante и Tale of Two Kingdoms. Изначально она планировала подарить только одну, но тут очень удачно случилась распродажа с падением цены более чем вдвое, поэтому на разницу удалось купить и вторую. Скачал сегодня обе игры, и даже немного поиграл в Tale of Two Kingdoms. Давно хотел это сделать, так как её делала та же фирма, что делала и Heroine's Quest. И в целом игра по духу и оформлению во многом похожа!
Также обновил сегодня Twig в Intellect Board. Теперь исчез этот глюк с пробелами. Да и под 8.2 всё работает более-менее нормально, только выдаёт много warnings про то, что динамические свойства класса теперь deprecated, и нужно от них избавляться. По-хорошему, надо бы собрать новый release, но это нужно доделать кураторов темы и создание баз под PostgreSQL и SQLite в инсталляторе, и фотогалерею. А работа над MLFW сейчас важнее.
К самому MLFW тоже удалось вернуться вчера. Всё-таки большие перерывы — это плохо. Где-то час ушёл просто на то, чтобы вспомнить, что к чему, на чём я остановился и т.п. По-хорошему, нужно заниматься каждый день (с редкими перерывами на один день типа настолок или поездок). Но для этого нужно сделать, чтобы ничего не происходило, чтобы не сносило потоком жизни. Но как это сделать — увы, непонятно. Эх, вечная моя мечта: возможность ставить Интернет на паузу. (Ну или более реалистичный вариант — уйти «с головой» в yggdrasil и i2p-сети, там как раз поток новой информации очень небольшой.)

Лето проходит…

4X_Pro
Уже почти треть августа позади! А казалось, что он только-только начался… В природе пока что не чувствуется каких-либо отличий от июля, кроме разве что того, что темнеет раньше, и на берёзах кое-где появились отдельные жёлтые листочки. Но изменилось главное — появилось ощущение того, что скоро всё это закончится…
В этом году это вдвойне неприятно, потому что так и висит нерешённым вопрос переезда в Область. И успею ли я решить его до октября — неизвестно. А оставаться на зимовку в Москве — как-то очень печально…
Одно только радует: ночное небо стало темнее, и теперь гораздо лучше видны звёзды! Созерцаю их по вечерам, это успокаивает и возвращает внутреннюю гармонию.

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

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!
Но теперь окончательно и бесповоротно слетел режим. Второй день производительность просто никакая.

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

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