Портрет 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
Сегодня приснился очень неприятный сон. Как будто мы с Tellой пошли в какой-то музей военной техники (не тот, что в Кубинке, а какой-то поменьше). Причём инициатива была её, а я как-то желания идти туда не испытывал (в реальности такое очень маловероятно: Tellе не интересны как музеи вообще, так и военная техника в частности).
Там стали ходить, смотреть экспозицию. Tella спросила меня что-то о тактике применения БТРов. В военном деле я, как известно, не разбираюсь от слова совсем, но что-то ей ответил из общих соображений. Потом ушёл смотреть какую-то другую часть музея, а когда вернулся, обнаружил, что она разговорилась с каким-то другим посетителем. Он был одет в гражданское, но по манере держаться и говорить было видно, что это опытный кадровый военный, судя по всему, с реальным боевым опытом.
Tella пересказывает ему то, что я ей рассказал (причём с точностью чуть ли не слово в слово, как она умеет). А тот спокойно и аргументированно громит все мои умопостроения и подробно рассказывает, что и как в реальных условиях. И в конце добавляет «ваш „друг“ показал себя человеком абсолютно некомпетентным, у нас с такими разговор короткий», и дальше в характерных для военных выражениях объясняет, что дали бы пару раз в рыло, чтобы не воображал о себе слишком много, потом держались бы подальше. И что вообще, из таких обычно получаются политработники, а из-за таких командиров множество людей гибнет напрасно.
После этого меня выкинуло из сна с чувством жуткого стыда, таким всепоглощающим, какого я, наверное, не испытывал с подросткового возраста.
Но немного успокоившись, я вдруг задался неожиданным вопросом: ведь если это мой сон, то все персонажи в нём — это порождения моей психики. А значит, где-то в её глубине есть часть, которая знает, как надо на самом деле (если не рассматривать вариант установления во сне канала с ЕИВП), и умеет излагать это убедительно, связно и аргументированно, как тот военный. Но почему-то в сознательном состоянии я доступа к её ресурсам не имею, а вынужден взаимодействовать с миром из роли некомпетентного пустобрёха. И этот сон отразил мой бессознательный страх, что как только сказанное мной попадётся на глаза компетентному специалисту, я буду разоблачен и осмеян. И именно этот страх сковывает меня и не даёт развиваться.

Опять выбросило из потока жизни

4X_Pro
Проблемы со сном наконец-то позади! Более того, в последние дни даже режим наладился, стал вставать по своим меркам очень рано. И сразу дни стали казаться гораздо длиннее! Но всё равно ничего не успеваю. И опять произошло то, что я теперь называю «выбросило из потока жизни». То есть пропал настрой на прежние задачи, в частности, изучение Svelte Kit. Сегодня попытался вернуться, но дело не идёт... Эх, научиться бы этими потоками управлять, запрыгивая в нужный, когда требуется, чтобы всё время несло в одном направлении.
А вчера весь день провёл в полузаболевшем состоянии. Сегодня, правда, чувствую себя вполне приемлемо. Но всё равно, отложил возвращение в квартиру в Области как минимум до вторника, а то и четверга.

Ещё шаг в самопознании и жуткий сон

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

Не получается уместить в жизнь всё

4X_Pro
Вчера опять получилась бессонная ночь. В результате таки и не пошёл на настолки (в лучшем случае бы просто тупил, в худшем — выбесился бы на кого-то нибудь из-за проигрыша), зато выбрался на прогулку в Терлецкий парк в малореальное для меня время — 9 утра. И правильно сделал — поймал ещё один солнечный день! А вечером наконец-то вернулся на CodeBy. Взялся за один сложный квест, в котором сначала вроде бы неплохо двигался, но потом застрял.
Сегодня режим более-менее начал налаживаться. Постепенно прихожу в себя и занимаюсь тем, что называется «догоняю жизнь». И размышляю над тем, что уместить в один день даже половину того, что я хотел бы успеть, не получается, а всё, что я ни делаю, занимает в разы больше времени, чем ожидаю изначально. Даже просто медитация + простые упражнения + Клавогонки + тренировки на NeuroNation + замеры и внесение данных в файл для методики самовосстановления съедают очень много времени.
А ещё снова кручу в голове мысль о возвращении к написанию своего движка сообщества. Причём отказался от идеи, что информацию нужно структурировать только хеш-тегами, пришёл к выводу, что предусмотреть возможность деления её на каналы тоже нужно, более того, сделать набор каналов по умолчанию по типам контента: статьи, заметки (аналог gists), фото, ссылки, места (и, возможно, встречи с привязкой ко времени), проекты/портфолио, а также канал для вопросов/ответов (возможно, анонимных). Только вот не могу определиться, то ли Svelte Kit изучать дальше (попробовал пару дней назад, весьма понравилось, да и по ресурсам относительно приемлемо) или же возвращаться к MLFW, только переделать в нём систему шаблонизации (а то я прихожу к выводу, что всё же с ней перемудрил в 2022 году).

Переход на 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 с лишним минут до электрички. От нечего делать поснимал красиво подсвеченные дома соседнего ЖК.
Потом приехала электричка до Купавны. От нечего делать я решил поехать на ней, а в Купавне дождаться уже той, которая идёт до Посада. Плюс с детства знаю, что подобное даёт возможность доехать в более комфортных условиях: на ближних электричках обычно меньше народа, а зачастую и подвижной состав лучше. И в целом идея оказалась хорошей. Только вот ехать на электричке, когда за окном темно, очень скучно. Плюс ещё от недосыпа и усталости голова была совершенно пуста, не хотелось ни размышлять, ни делать что-то ещё. Пытался читать книжку, но тоже удовольствия не доставило: несмотря на многообещающее название про путешествия во времени, в книжке оказалось слишком много БЭ. А может, просто настроение было такое.
В остальном же оставшаяся часть поездки прошла совершенно благополучно: и до Посада нормально добрался, и на автобус удачно пересел. А приехав домой, просто вырубился на полтора часа, едва успев разобрать рюкзак. И теперь снова не получится режим наладить…

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

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