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

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


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

t.me/4x_pro

Лог жизни

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


Переход на XFCE и размышления о цене красоты

4X_Pro
Всё же признал эксперимент с KDE неудачным. В итоге перешёл на XFCE. С начальной настройкой пришлось повозиться: слишком многое по умолчанию не так, как я привык. Зато теперь всё полностью устраивает! Даже кнопку главного меню можно назвать «Пуск», как в старые добрые времена. Наконец-то избавился от двойного ввода пароля при выводе компьютера из блокировки, когда его сначала запрашивает lightdm, а потом — xscreensaver, причём последний ещё почему-то часто пытается поставить русский язык при вводе пароля. И ещё теперь корректно работают команды типа «открыть в файл-менеджере» (PcManFm в таких случаях каталог открывал, но требуемый файл не выделял, приходилось искать его вручную, что неудобно, когда в каталоге много фотографий.) В общем, теперь наконец-то воспринимаю систему как что-то цельное, а не кое-как собранное из кусков, скрепленных синей изолентой, что периодически бывало источником фонового раздражения.
Правда, оперативной памяти XFCE потребляет довольно много (если просуммировать RSS всех процессов, получается что-то порядка 350 Мб). LXDE в этом плане компактнее, в основном за счёт того, что апплеты не висят в отдельных процессах, а подгружаются как .so (аналог DLL в Windows) прямо в lxpanel. С другой, возможно, это и становится причиной мелких глюков панели, из-за которых я и задумался о смене DE.
Ещё хотел было оставить sddm в качестве display manager, очень уж понравился его интерфейс. Но когда сносил KDE, заодно удалил и тему breeze, после чего внешний вид окна приветствия стал совсем другим. Попытался было поставить обратно, но увидел, что она тянет почти 700 Мб зависимостей (включая даже зачем-то KDE Connect), и решил, что это — слишком. В итоге вернул lightdm, как было изначально.
Вообще, все эти эксперименты заставили меня вновь задуматься о «цене красоты», если так можно выразиться. Раньше у меня позиция была предельно жёсткая: «Никаких украшательств! Все эти картинки на фоне, плавная анимация интерфейсов и т.п. — напрасная трата ресурсов!» Но это было во времена медленных жёстких дисков и памяти, исчислявшейся десятками мегабайт. А ещё в те времена у меня не было проблем с моей собственной производительностью. А уже в 2011 году, после Великого Выгорания, вспомнил слова одного одногруппника, что отвлечение на красивый фон рабочего стола помогает разгрузить мозг и в целом способствует большей производительности, и решил попробовать. В целом идея себя оправдала! Зато с тех пор не даёт покоя вопрос, какую часть ресурсов компьютера можно потратить на красоту и удобство интерфейса, а что будет перебором. Хотя, по идее, ответ прост — ту, которая не требует дополнительных денежных вложений в «железо», а на скорость начальной загрузки влияет на уровне статистической погрешности.

О дыхании, напряжённости и эффективности

4X_Pro
Обнаружил, что на показатели Welltory очень сильно влияет дыхание. Когда я напряжён от того, что делаю что-то сложное и требующее концентрации или просто перегружаюсь слишком большим количеством параллельных задач, дыхание становится менее глубоким. А если же это осознать и целенаправленно расслабить тело перед замером и подышать более глубоко, то результаты замера оказываются лучше на 10-15% (я про показатель энергии). Собственно, этим и объясняется то, что в бескомпьютерные дни результаты почти всегда получаются лучше.
В общем, всё упирается в вопрос, как поймать то самое состояние сосредоточенной расслабленности, о котором я уже не раз упоминал, и заниматься программированием или написанием статей, находясь в нём, а не в состоянии сильной зажатости, как сейчас… Тогда, может быть, и проблемы с тем, чтобы себя заставлять, уйдут.

Дезориентированность во времени

4X_Pro
Слетел с режима дня от слова совсем. Сегодня лёг в 10:30, проснулся около 19 часов, плюс ещё днём будили раз пять. В результате чувство полнейшей дезориентированности во времени: с трудом понимаю, какой вообще сегодня день, и когда мне возвращаться в Москву. Тут, конечно, замечательно, и уезжать не хочется совершенно (впрочем, куда бы я не ехал: хоть из Москвы в Область, хоть обратно, хоть на дачу, переезд всегда вызывает внутреннее сопротивление), но всё же хочу после долгого перерыва выбраться на настолки.

Эксперимент с генерацией кода с помощью ИИ

4X_Pro
Сегодня меня опять потянуло в направлении Web-программирования. Интерес к информационной безопасности поутих, зато снова крутится в голове идея сделать движок для сообщества, аналогичный Pikabu или DTF, в идеале — с поддержкой PWA (и оффлайн-режима), протоколов IndieWeb и ActivityPub. Ну или для начала прикрутить PWA хотя бы к IntB.
Смотрел разные инструменты и технологии, и в итоге наткнулся на Bolt.new — генерацию приложений с помощью ИИ. К подобному я отношусь довольно скептично, но всё же решил попробовать. Запросил у него приложение, похоже на стену в социальных сетях. Увы, оказалось, что Bolt не поддерживает PHP (эх, вот теперь реально начинаю верить, что PHP может отмереть). Пришлось соглашаться на то, что дают — Node+Express и better-sqlite3 вместо просто sqlite. Всякие frameworks типа React или даже Svelte я использовать не стал, указал, что проект должен быть на чистом Javascript. Код сгенерировался, но на самом сервере запускаться отказался — какая-то ошибка с bindings для better-sqlite. Но я просто так не сдался, скачал проект к себе на компьютер и запустил там. К моему удивлению, заработало!
Правда, изначально в проекте не было почти ничего: ни разбиения на страницы (хоть какого-нибудь), ни нормальной регистрации пользователя, ни даже отправки сообщения через AJAX, без перезагрузки страницы. Можно было только ввести имя пользователя, после чего появлялось поле для отправки самого сообщения и кнопка рядом с ним. Ну и выделялись хештеги как ссылки (я сразу написал, что должна быть их поддержка), но при этом выборки постов по хештегам тоже не было.
Я стал экспериментировать дальше. Сначала запросил добавку разбиения на страницы (кстати, не знаю почему, но терпеть не могу его делать, и мои собственные проекты часто именно на этом этапе и застревают). Сработало как-то криво: кнопка появилась, но выводиться стало по 4 сообщения, а не по 10, как я запрашивал. Но вот при нажатии кнопки более старые соощения не подгружались. Потом запросил отправку сообщения через AJAX, без перезагрузки страницы — тут всё прошло хорошо. Дальше попросил бота добавить блок входа пользователя и страницу восстановления пароля, но, кажется, это оказалось за пределами его возможностей. Точнее, он написал код, который генерирует/проверяет JWT, сделал форму входа и ссылки для регистрации и восстановления пароля, но при попытке ими воспользоваться ничего не происходит. Да ещё сначала выдалась какая-то ошибка. Я так и не понял, в чём дело: то ли токены для генерации закончились, то ли задача оказалась слишком сложной для ИИ на данном этапе. Была ещё мысль дать команду на рефакторинг кода — вынести код для пользователей и код для постов в отдельные модули из server.js, но из-за того, что токены кончились, не стал экспериментировать.
В общем, пришёл к выводу, что пока что писать серьёзный код ИИ не готов. Даже для таких достаточно простых приложений. Максимум — подойдёт для быстрого прототипирования или обучения. Интересно, а есть ли self-hosted решения для таких задач? UPD: Как выяснилось, есть как минимум Tabby, FauxPilot и FireCode. Возможно, потом попробую…
Зато этот эксперимент поменял моё отношение к NodeJS. Прежде у меня было мнение, что NodeJS очень прожорлив в плане потребления памяти и поэтому не подходит для low load проектов на слабых VDS. Но запустив сгенерированное приложение у себя на компьютере, обнаружил, что RSS его процесса составляет всего 60 Мб. Для сравнения, суммарный RSS всех процессов php-fpm на VDS, где стоит этот сайт — 90 Мб.

Медитативная прогулка и размышления о том, как жить

4X_Pro
Сегодня сам собой получился день slow life и информационной разгрузки. Встал достаточно рано, и увидел, что за окном просто идеальная осенняя погода: тепло, солнечно, деревья в золотой листве, и что такой день упускать нельзя!
Сначала собирался просто дойти до северного берега ближайшего водоёма и вернуться домой. Но когда вышел, как-то само собой получилось, что пошёл более долгим путём, и в результате вышел к западному берегу. Шёл и почему-то вспоминал вступительный ролик к игре Settlers (именно самой первой части). Именно такое же ощущение лёгкости и беззаботности, и того, что всё вокруг идёт как надо, я испытывал в этот момент!
Летом на берегу этого озера обычно много отдыхающих и купающихся, но сейчас — почти безлюдно, только несколько рыбаков. Пользуясь этим, я сел на берегу и ушёл в глубокое-глубокое созерцание деревьев на противоположном берегу и самого озера. Так сидел очень долго, вспоминая то летнюю прогулку на Карпятник, то поездку на озеро Сухарь, то нашу поездку с Миком на Данилище летом 2021. И задавался вопросом, а что есть всё-таки настоящая жизнь? Как жить правильно? Проживать такие вот дни естественного slow life и созерцания красоты природы и радоваться тому, что я могу пойти на такую прогулку в любой момент, потому что надо мной не висит всяких «надо»? Или же жить правильно — это творить так, как это делал герой рассказа про один байт? Или же настоящая жизнь — это Познание, собирание мудрости по крупицам в книжной пыли библиотек (ну ладно, в современных условиях можно обойтись без пыли, а просто сидеть дома с компьютером/планшетом, главное, держать Интернет отключенным, чтобы информационный мусор сиюминутности не нарушал сосредоточенности)? Или же проводить большую часть времени в путешествиях, как предлагает DarLik? Или же вообще в жизни есть один-два момента истины, которые надо прожить определённым образом, совершив некий духовный подвиг, а всё остальное время не имеет значения? Увы, у меня нет ответа на этот вопрос… Но могу сказать одно: сегодня я был действительно счастлив!

Долгий путь в Посад

4X_Pro
Сегодня всё же поехал на новую квартиру в Посаде. Изначально хотел вообще в начале недели заехать, но по разным причинам не складывалось. Плюс в субботу хотел выбраться на настолки, но на этой неделе их тоже не было. Но дорога оказалась ну очень не прямой.
Началось всё с того, что вчера опять засиделся почти до шести утра и совершенно не выспался. А сегодня разбудил сначала курьер, а потом — звонок Tellы. Стал собираться. Включил телефон и обнаружил там сообщение от Kitsune. Она спросила заехать на пункт выдачи возле Площади Ильича и забрать там одну вещь (долго объяснять, как получилось так, что ей это прислали в Москву). Я подумал, подумал, и согласился, решив, что в Посад могу уехать со станции «Серп и Молот», а перед этим поесть не дома, а во «Вкусно и точка», чтобы сэкономить время на готовку.
На пункте выдачи всё прошло без проблема. А вот во «Вкусно и точка» — нет. Во-первых, оказалось, что там просто толпы народу (я и забыл, что сегодня — воскресенье). Во-вторых, не напечатался чек с номером заказа, а на экране я его рассмотреть не успел, потому что отвлёкся на сообщение. И пришлось ломать голову над нетривиальной задачей «как найти свой заказ, если не знаешь его номер». В итоге воспользовался тем, что в моём заказе была бутылка воды, что само по себе является редкостью для этого заведения. Встал возле выдачи и стал наблюдать, когда появится заказ с бургером, картошкой и водой, который в течение пары минут никто не заберёт. Из-за толп народа ждать пришлось минут 20, да ещё с тяжёлым рюкзаком за спиной. Но в итоге дождался, поел, сфотографировал для Kistune то, что получил на пункте выдачи, и пошёл на станцию. На станции оказался за 20 с лишним минут до электрички. От нечего делать поснимал красиво подсвеченные дома соседнего ЖК.
Потом приехала электричка до Купавны. От нечего делать я решил поехать на ней, а в Купавне дождаться уже той, которая идёт до Посада. Плюс с детства знаю, что подобное даёт возможность доехать в более комфортных условиях: на ближних электричках обычно меньше народа, а зачастую и подвижной состав лучше. И в целом идея оказалась хорошей. Только вот ехать на электричке, когда за окном темно, очень скучно. Плюс ещё от недосыпа и усталости голова была совершенно пуста, не хотелось ни размышлять, ни делать что-то ещё. Пытался читать книжку, но тоже удовольствия не доставило: несмотря на многообещающее название про путешествия во времени, в книжке оказалось слишком много БЭ. А может, просто настроение было такое.
В остальном же оставшаяся часть поездки прошла совершенно благополучно: и до Посада нормально добрался, и на автобус удачно пересел. А приехав домой, просто вырубился на полтора часа, едва успев разобрать рюкзак. И теперь снова не получится режим наладить…

Выбираюсь из очередного «болота жизни»

4X_Pro
Неделя после возвращения из Смоленска прошла куда-то мимо. Опять возникло чувство «болота жизни», когда пытаешься-пытаешься что-то делать, но нет ни результатов, ни удовлетворённости от проведённого времени. И кажется, что не успеваешь ничего, всё время уходит на повседневость и быт, а на движение вперёд — нет ресурса. Видимо, сказалось резкое наступление осени и ещё больше сбившийся режим.
Только в пятницу и вчера ситуация стала меняться. В пятницу выбрались с Tellой в Новогиреево, а в субботу наконец-то «взялся за ум» — посидел на Клавогонках, вернулся к тренировкам в NeuroNation и наконец-то продолжил просмотр видео с разбором Tinkoff CTF. В разборе одного из заданий обнаружилась весьма нетривиальная идея, до которой я сам бы не додумался. Суть там в следующем: нужно обыграть хакерскими методами бота в покер. И типовые приёмы не работают, а решение заключалось в том, что нужно было сделать два сеанса игры, и использовать один из них для подсматривания карт бота во втором, так как там забыли сделать проверку на table_id. А потом ещё и автоматизировать это дело, написав своего бота, так как вручную это сделать мешал лимит времени.
А Клавогонки реально прочищают мозг и убирают то, что я называю «дребезгом», когда вместо быстрого и последовательного перехода от одной мысли к другой с чёткими связками между ними происходит ложный шаг в одну сторону и увязание, шаг в другую, и только потом приход к правильной конечной точке, из-за чего я и живу так медленно и неэффективно. (Жаль, нет возможности это нарисовать.)

Всё же попробовал KDE

4X_Pro
И всё-таки я поставил KDE на основной компьютер, причём с использованием Wayland. Постепенно привыкаю к тому, что система выглядит почти как Windows 10 (тогда как LXDE напоминал скорее XP). Но мелкие глюки иногда наблюдаются. В частности, пришлось обновить броузер Iron, так как прежняя версия вызывала мелькание при переключении вкладок. А в новом Iron отвалилась половина расширений из-за того, что перестал поддерживаться Manifest 2. Самое неприятное — отвалились uBlock Origin и WebTime Tracker. Впрочем, последний у меня только оперативку потреблял — я почти в него не заглядывал. (Тем более, что там нельзя было посмотреть статистику за долгосрочный период, только за сутки или неделю.) Также с основного компьютера почему-то не хочет работать KDEConnect (хотя со старого ноутбука он обнаружил мобильник без проблем). UPD: разобрался, оказывается KDE включает firewall, который блокирует согласование. Впрочем, на последних версиях Android в KDEConnect слишком много всего не работает, например, доступ к SMS и доступ к файлам. Так что кроме пробороса буфера обмена и показа заряда батареи мобильника (хех, когда-то ради этого я даже своё приложение писать хотел), особой пользы от KDEConnect не предвидится. Хотя нет, ещё плеером можно управлять, но работает как-то глючно: на паузу поставить можно, а запустить воспроизведение дальше — нет.
И ещё теперь стал криво работать BOINC-клиент: не приостанавливает вычисления во время использования компьютера. Стал искать решение, и обнаружил, что за это даже bug bounty в размере $175 назначено.
Зато попробовал digiCam для хранения фотографий вместо Shotwell. Сначала вроде нравилось, но фото он импортировал ну ОЧЕНЬ долго и в какой-то момент написал, что обработка завершена, хотя перед этим было обработано всего 33%. А теперь при запуске пишет, что не может подключиться к базе данных.
В общем, пока не знаю, остаться или вернуться под LXDE (благо ничего снести не успел почти), либо попробовать XFCE. Первое впечатление было очень положительное, но дальше полезло как-то много мелких ошибок.

Задумался об уходе с LXDE

4X_Pro
Сегодня пришла в голову весьма неожиданная идея: перейти с LXDE на KDE. Надоели мелкие глюки lxpanel (которых в последнее время стало больше), да и некоторые приложения по умолчанию под KDE лучше, например, Oculus или утилита для скриншотов. И вроде Плюс ещё понравилась утилита KDE Connect, упрощающая взаимодействие мобильника и компьютера. Но смущает то, что KDE занимает существенно больше оперативки.
Сегодня запустил с флешки Kubuntu на старом ноутбуке (который одно время выступал в роли домашнего сервера). Чисто визуально интерфейс очень даже понравился. Но вот оперативки сразу после загрузки система занимала 1.4 Гб (тогда как LXDE + связка Apache+MySQL вместе занимают чуть меньше 500 Мб). В общем, пока думаю…

Осень и смена потока жизни

4X_Pro
Постепенно прихожу в себя после поездки и возвращаюсь к обычной жизни. Как я и опасался, поездка привела к «смене потоков жизни» — из «белого хакерства» меня всё же выкинуло, кто-то нет желания ни на CodeBy сидеть, ни разборы CTF смотреть на YouTube. Вместо этого вернулся интерес к Web-программированию: возникло желание сделать из этого своего сайта PWA, тем более, что недавно нашёл такое решение как WorkBox. Хочу сделать возможность писать сообщения в оффлайне, а также нормальную систему push-уведомлений и выложить всё это как IntB 3.x.
За окном — осень в её худших проявлениях: тусклый день, когда свет кажется серым. Делать нечего не хочется, поэтому устроил себе день отдыха и почти не садился за компьютер. По-хорошему, надо бы уехать в Посад, на той квартире осень переносится легче, поскольку там светлее. Но увы, желания вылезать куда-либо нет никакого, особенно с учётом завтрашней погоды. Да и в следующую субботу на настолки всё же хочу сходить...
Была ещё мысль поиграть в какие-нибудь старые игры типа Two Kingdoms, Arcanum, вернуться к прохождению Guest For Glory 2, или просто перепройти какую-нибудь из частей Rockmanа (или пройти пятую наконец-то), но так и не собрался.

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

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