Портрет 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
С IntB дело медленно, но верно движется. В списке из 11 пунктов невыполненными остались только четыре. Вчера доделал одну из самых сложных задач — блочные ссылки (правда, на сайты пока не выкладывал) с поддержкой OpenGraph и асинхронной подгрузкой данных.
Но сегодня ресурс закончился. Встал очень поздно с мыслью, что совершенно не хочется делать что-то дальше. Посидел немного в медитации, стало легче. Но потом поехал на новую квартиру (планово), на это ушло много времени, так как из соображений экономии возвращался через Буньково, чтобы не тратиться на такси. К тому же на обратном пути ещё устроил себе мини-прогулку: спустился к водоёму и какое-то время созерцал его и звёзды над ним. Но увы, в полной мере достичь того состояния Внутреннего Безмолвия не получилось.
А сейчас никак не могу определиться: что лучше — устроить себе полный день отдыха, а завтра взяться с новыми силами, или всё же попытаться сделать хоть что-то, чтобы было чувство «день прожит не зря, сделан шаг вперёд». Впрочем, пока писал это, нашёл мелкие недоработки с блочными ссылками и занялся их исправлениями.
Ещё обнаружил, что после обновления шаблонизатор Twig стал потреблять гораздо меньше памяти и работать быстрее. Сейчас каждый скрипт IntB с ним занимает чуть меньше 1 Мб памяти, тогда как раньше — полтора. Непонятно, то ли тут дело в PSR-4 совместимом загрузчике, который теперь грузит только нужные для данного шаблона классы, тогда как старый грузил всё, то ли сам Twig так хорошо оптимизировали, то ли это заслуга PHP 8.2. Но в любом случае, я задумался над тем, а не зря ли я отказался от шаблонизации в MLFW…

Intellect Board 3.05 — быть

4X_Pro
В понедельник принял важное решение: всё же выпустить версию Intellect Board 3.05. Всё-таки с 2019 года (когда вышла предыдущая версия) сделано было немало, и как-то неправильно, что это так и остаётся неопубликованным. Да и когда попытался запустить его на PHP 8.2, обнаружил огромное количество предупреждений.
Но из серьёзных доделок сначала собирался закончить только кураторов темы и фотогалерею. Но потом как-то набралось ещё несколько доработок помельче: интеграция с Telegram (для отправки уведомлений о новых темах и записях в блог), блочные ссылки и, возможно, переделка CAPTCHA. В итоге окончательный список составил целых 11 пунктов (правда, четыре я за сегодня уже сделал, в том числе и адаптацию к PHP 8.2).
В какой-то момент даже начал думать о том, а не реализовать ли на базе IntB движок мобильно-ориентированного сообщества, идея которого приходила мне прошлым летом. По сути, для этого всё есть, нужно только блоговый раздел немного переделать + предусмотреть двухуровневые комментарии.
Но одной из ключевых идей такого сообщества была минималистичная регистрация. То есть от пользователя просят только имя при отправке первого сообщения (даже без пароля и Emailа), а дальше движок генерирует токен OAuth, который хранится на устройстве в cookies, и опознаёт пользователя по нему. И только по желанию пользователь может либо сгенерировать ссылку для входа с другого устройства, либо привязать профили соцсетей. Но увы, IntB для такого не предназначен, слишком многое придётся перделывать.

Заметка в Instagram от September 03, 2023 at 06:26PM

4X_Pro
Сегодня сам собой получился день информационной разгрузки. Сначала сидел дома и погружался в то самое состояние Внутреннего Безмолвия,о котором неловко писал в основном блоге. Потом решил выбраться на прогулку по окрестностям, сходил к Клязьме. И, надо сказать, не зря. Давно не было такого состояния кристальной чистоты сознания, как сегодня!
Но увы, полного умиротворения достичь не получается. Слишком много неопределённостей в будущем, вопросов без ответа. И, главное, нет возможности отложить решение на потом, дождаться момента когда «сойдутся звёзды», и я увижу, что вот это решение — единственно верное...
#прогулка #отдых #клязьма #спокойствие #размышления #осень2023

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

Небольшие доделки IntB

4X_Pro
Кажется, у меня биоритмический максимум. За вчерашний день успел очень много всего.
А под вечер внезапно решил заняться IntB. Начал с малой задачи — скрыть кнопку «Развернуть», если в ней нет необходимости. Потом стал наводить порядок в комментариях, заодно нашёл пару багов с модерацией. И в конце концов решил сделать цитирование через всплывающее меню, как недавно предложил Aksion. Но получилось как всегда: базовый работоспособный вариант сделал быстро, но сегодня полдня возился с разными мелкими доделками. В частности, нужно было сделать так, чтобы меню не вылезало, когда выбранный текст не в сообщении, а где-то ещё. Плюс ещё решил добавить возможность копирования в буфер обмена и отправки ВК. Плюс ещё почему-то много проблем возникло при выгрузке изменений на сайты. Но в итоге работает! Кстати, в процессе написания немало помог ChatGPT, сэкономив массу времени на поиск нужных свойств для DOM-элементов.
С одной стороны, очень доволен сделанным, плюс приобрёл новый опыт. С другой — немного переживаю, что неизвестно, соберу ли когда-нибудь новый дистрибутив IntB, куда всё это войдёт, или это так и останется только на моих сайтах. Ещё нужно бы в блог написать заметку о том, как делать такое меню, но что-то ресурса на это нет.

Последний день тяжёлого лета

4X_Pro
Вот и всё, лето прошло. Впечатления остались очень противоречивые. Насколько прекрасной в этом году была весна, настолько тяжёлым получилось лето, причём без явных на то причин. То ли непонятная ситуация с ремонтом, которому изо всех сил противятся высшие силы, влияла, то ли просто время такое, то ли природа мстит за надругательство над ней. Впрочем, и хорошего тоже хватало: поездки в Ногинск, прогулки в Зарядье и Кузьминки в Москве, несколько обычных и велопрогулок тут. Жаль только, что ягоды упустил, да и за грибами пока ни разу не выбрался.
В последний день лето решило порадовать просто идеальной погодой: очень приятная температура (около 20 °C), полностью чистое небо и ощущение полного спокойствия в природе. Выбрался на прогулку, сделал круг по посёлку, который уже опустел. Только в небольшой части домов люди готовятся к завершению дачного сезона. Почувствовал то самое Внутреннее Безмолвие, о котором писал в предыдущем сообщении. Эх, хорошо!

Внутреннее безмолвие

4X_Pro
Более-менее выздоровел. Сегодня посмотрел видео «10 признаков что ты живешь не свою жизнь», которое прислала DarLik, а потом даже выбрался на велопрогулку к Клязьме и в сосновый бор за соседним СНТ. У Клязьмы посидел на берегу реки, уйдя в себя и размышляя.
Вспоминал это видео, думал о том, к чему стремлюсь я, и вдруг осознал: именно к тому самому состоянию спокойной сосредоточенности на чём-то, в котором я тогда сидел на берегу реки. И даже придумалось название этому состоянию: Внутреннее Безмолвие.
Стал крутить в голове, когда я его испытываю. Оказалось, что либо во время таких вот медитативных прогулок (причём даже не во время движения, а когда останавливаюсь и сижу на одном месте), либо когда играю в некоторые компьютерные игры, либо когда продумываю реализацию какой-либо идеи, представляю себе будущий проект, его архитектуру или какие-то отдельные компоненты.
Но вот когда начинаю писать код или, тем более, его отлаживать, состояние Внутреннего Безмолвия сменяется состоянием «внутреннего мата» — эмоциональной реакции раздражения то на опечатки (со слепой печатью при программировании, где активно используются спецсимволы, у меня плоховато), то на ошибки, то просто на необходимость постоянно обновлять страницу и переключаться между окнами.
Так что придумывать что-то мне нравится, а заниматься реализацией — не очень. Правда, возникает вопрос: что с этим делать…
А ещё то видео помогло мне осознать, что мой заваленный 5 уровень ТУАИ — гораздо бо́льшая проблема, чем я считал ранее. Именно он отвечает за страх рисковать, умение импровизировать и делать выбор в условиях неопределённости, что сильно блокирует творческие способности и растягивает время принятия решения в разы, когда я работаю над своими проектами. По сути, сейчас получается так: делаю несколько шагов, натыкаюсь на проблему, для которой сложившегося представления, что делать, у меня нет, и останавливаюсь до тех пор, пока оно не найдётся. Именно так сейчас с MLFW дело обстоит: постоянно откладываю, не зная, как быть: делать рефакторинг класса Template, чтобы полностью вынести шаблон в отдельный файл, или нет.

О YouTube и том, чего же я хочу на самом деле

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

Заметка в Instagram от August 27, 2023 at 07:39PM

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

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

Вчера был ужасный день

4X_Pro
Вчера был просто ужасный день! Мой организм не выдержал перегрузок и недосыпов последних дней и свалился в болезнь. Так плохо я себя не чувствовал с августа 2004 года, когда точно так же заболел от переутомления! В результате весь день просто пролежал, не вставая. Сегодня более-менее прихожу в норму, но состояние ещё далеко от идеального.

Intellect Board или MLFW

4X_Pro
Продолжаю крутить в голове идею Aksionа о том, чтобы сделать вариант движка IntB только для блогов. В принципе, если встроить в него тот же код очистки HTML-тегов, который я писал для MLFW, то исчезнет главное препятствие — невозможность использовать более продвинутые WYSIWIG-редакторы. В остальном же backend-часть IntB достаточно гибка, чтобы можно было встроить в него всё, чего сейчас не хватает до полноценного блогового движка, кроме разве что иерархических комментариев (хотя при должной степени упорства можно был бы и с этим справиться). Например, отдельные поля для SEO title, description и Open Graph можно хранить в сериализованном виде в универсальной таблице prefix_text.  А вот стиль для блога, видимо, лучше сверстать полностью с нуля, и чтобы выглядел современно и без jQuery. Заодно можно будет сразу предусмотреть в нём возможность перевода на другие языки, которой я когда-то пожертвовал в IntB 3.x для ускорения разработки. (Помню, сколько глюков вылезало из-за этих переводов во времена 2.x)
Но возникает вопрос, как быть дальше. То ли делать fork и позиционировать блоговый движок как отдельный продукт (пусть даже сохранив единую кодовую базу), то ли оставить всё как есть, но на этапе установки предусмотреть выбор режима работы «форум», «блог», «мультиблог» или «мультиблог + форум», и исходя из выбранного режима, делать разное начальное наполнение базы. В частности, использовать для блога упрощённый вариант панели администрирования.
Попытался даже сделать расклад на Таро. Но они в ситуации выбора между MLFW и попытками возобновить активную работу над IntB однозначно указывают на первый вариант. Причём уже не первый раз, подобный вопрос я, кажется, уже задавал где-то в начале 2022 года.
В общем, наверное, пока возьму паузу и начну заниматься вёрсткой статики для сообщества/блога. Плюс ещё постепенно накатывает очередной поток freelance-задач, а я никак не могу на них переключиться.

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

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