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

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


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

t.me/4x_pro

Лог жизни

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


Уехал из города предаваться slow life

4X_Pro

Вчера снова уехал на дачу. Буду предаваться slow life. В частности, сегодня сам собой получился день информационной разгрузки: уже 17 часов дня, а я до сих пор не выходил в Интернет (если не считать отправки результатов замера в Welltory на старом мобильнике). Как всегда в таких случаях, сначала мысли неслись в голове просто бешеным потоком, а потом вдруг пришла такая ясность создания, сфокусированность и ощущение внутренней целостности, какого не было уже очень давно.
Но в то же время понимаю, что это — до поры до времени. Как только снова включу Интернет, множество потоков информации снова начнёт разрывать мою психику на куски. (Это сообщение я пишу в виде оффлайновой заметки.) Может, когда-нибудь человечество напишет ИИ, который будет стражем границы между психикой отдельного человека и бурлящим хаосом Интернета, и будет приоретизировать всю входящую информацию и впускать её строго дозировано с учётом состояния получателя так, чтобы она не вызывала расфокусировки и растерянности. Но сейчас об этом можно только мечтать...
А пока что созерцаю природу. Несмотря на то, что на улице почти +30 градусов, и солнце очень жгучее, приближение осени уже чувствуется. И в общем настроении — чувстве чего-то невозвратно уходящего, и в деталях вроде пожелтевших листьев, огромных ягод черноплодки или удлиннившейся тени от дома даже в середине дня.
А ещё сейчас просто идеальное время, чтобы смотреть на звёзды: ночи ещё тёплые, но уже достаточно тёмные. И звёзды кажутся очень и очень яркими!

Очень тяжёлая доработка бота

4X_Pro

Вчера немного доработал SiteKnockerBot. Сделал выгрузку лога в CSV (заодно и разобрался, как в TG отправлять файлы с помощью php curl) вместо обычных сообщений, а также предусмотрел возможность логгирования запросов и ответов в случае необходимости. И ещё немного поменял настройки бота, чтобы уменьшить число ложных собрани срабатываний (но толком не помогло: сегодня утром опять случилось). Хотя на первый взгляд, доработки казались очень простыми: выяснить, как в Go получить полный текст HTTP-запроса и ответа, создать несколько полей в таблицах и обеспечить запись туда, проблемы сыпались одна за другой. Постоянно были какие-то проблемы с сохранением запросов в таблицу. В Go строке нельзя взять и присвоить nil, и я долго не мог понять, как сохранить в базу null. Пытался применить NullString, но не работало. Так и сдался, применил костыль с двумя вариантами sql-запроса.
После этого дописал генерацию CSV-файла уже на PHP (на нём написана интерфейсная часть бота, которая отвечает на запросы пользователя), но и тут посыпались проблемы, и весьма серьёзные: начал падать сам PHP с segmentation fault. Долго не мог понять, почему. Попробовал скопировать тот код, который мне сгенерировал ChatGPT при ответе на вопрос, как отправить файл в Telegram — всё работает. Добавляю с минимальными изменениями в бот — нет. Ошибка оказалась предельно дурацкой: я передавал класс CurlFile в curl_setopt не как элемент хеш массива с параметрами, а вместо него. Но на то, чтобы это найти, ушло часа полтора.
Кстати, тут надо бы изучить получше, что именно приводит к segmentation fault: сама передача этого класса в качестве параметра или ошибочное добавление к нему лишних полей, а также выяснить, осталось ли это в последних версиях, и сделать bug report разработчкам самого PHP.
Потом опять начались проблемы с сохранением в базу данных, но уже не на локали, а на сервере. Опять долго не мог понять, почему, думал, дело в боте. Оказалось, что нет, в кодировке таблицы в MySQL: нужно было поменять её с utf8 на utf8mb4. И только после этого всё почти заработало. Но вылез last minute bug: я решил вынести количество запрашиваемых с сервера байтов из hard-coded в заголовке Range в константу. И тут внезапно полезли проблемы на ровном месте. Как известно, Go — строго типизированный язык, и там присоединить число к строке, написав что-то вроде "Range: 0-"+MAX_LEN нельзя. (Это вам не JavaScript). Я по привычке из Python или PHP написал string(MAX_LEN) и думал, что всё в порядке. Но потом с удивлением обнаружил то, что резко выросло число ошибок со статусом 416, которые я не видел прежде. В том числе и а на моих собственных сайтах, для которых я включил сохранение отладочной информации. И там я увидел, что в заголовке Range вместо 128000 стоит непонятный Unicode-символ. Оказывается, в отличие от скриптовых языков, Go преобразует число в Unicode-символ, а не строковое представление. Стал это исправлять, но было уже 5 часов, голова соображала плохо, и ещё несколько раз допускал глупые ошибки, прежде чем сделал всё как надо.
В общем, день закончился с очень противоречивыми впечатлениями: с одной стороны, доволен, что всё же сделал задуманное. С другой — злостью на себя, что провозился так долго и не поиграл в The Council, и вообще лёг спать слишком поздно, тогда как завтра надо было рано вставать. С третьей — понимаю, что дело просто в недостатке опыта, так как на Go я пишу редко и мало (по сути, только этот бот и пара задач на CodinGame).

Неделя «болота жизни» позади

4X_Pro

Прошлая неделя была какой-то неудачной. Опять возникло ощущение, что буксую в «болоте жизни»: вроде дни (кроме понедельника, там особый случай) были чем-то заняты, а по итогу — непонятно, куда время делось. Вроде и не сделал ничего стоящего, и удовольствия особо не получил (за исключением разве что перепрохождения The Council и решения пары заданий на CodeBy). Да ещё с показателями в Welltory что-то непонятное творится: после пробуждения вроде хорошие, но уже через пару часов падают, и такими остаются до конца дня. Да и реально усталость непонятная присутствует. А от прогулок усталость стала появляться уже после 3000 шагов. Думал, что дело в сбитом режиме дня, но когда удалось его относительно наладить, лучше не стало. В общем, то ли какой-то биоритмический спад по всем показателям, то ли бессимптомно болею коронавирусом в третий раз. Да ещё и на переписку уходить стало слишком много времени, мысли форумулирую медленнее, да и печатать стал «грязнее». Видимо, потому что давно на Клавогонках не тренировался.
А ещё для полного счастья стал глючить игровой NVME-диск. То ли перегревается (он прямо под видеокартой расположен), то ли сам по себе плохой. Эх, нужно было в качестве второго диска брать всё же SATA, как планировал изначально. Для игр разница несущественна, а так за те же деньги мог бы взять 1.5 Гб вместо 1, и расположен бы он был в самой нижней части системного блока.
Только позавчера ближе к вечеру жизнь стала налаживаться. Прошёл очередное тестирование в NeuroNation (кстати, тренироваться тоже стал реже — просто времени не остаётся), показатели подросли! А вчера как следует отоспался (83 балла сна), а потом получился день отдыха и информационной разгрузки, большую часть провёл вообще не за компьютером.

Посмотрел вебинар по группам ВК

4X_Pro

Вчера и сегодня посмотрел первые два дня вебинара по группам ВКонтакте. Редкий случай, когда от вебинара осталось очень даже положительное впечатление. Даже реклама платного курса была встроена так, что не раздражала.
Но в целом полезных знаний вынес не сказать, чтобы много. Всю реально полезную информацию идёт было бы, наверное, уложить минут в 20. Самым важным был список типичных ошибок, которые мешают попасть в ленту рекомендаций, и то, что для соцсетей сейчас главным критерием качества являются прежде всего комментарии и, отчасти, репосты. Ну и то, что при слишком большом количестве сообщений в день группа начинает оцениваться как назойливая, и меньше показываться в ленте. А вот о самом главном — как писать цепляющие посты, не скатываясь в кликбейт, — толком не рассказали. Только несколько общих приёмов, которые могли бы пригодиться для коммерческих групп, типа «статья должна предлагать решение какой-то проблему клиента» или хорошо заходят списки вида «N способов сделать НЁХ в домашних условиях». Только вот как это к slow life применить – ума не приложу.
Хотел было поискать информацию в других источниках, но тоже не особо результативно. Ещё возникла мысль применить НЛП-моделирование, и попытаться с его помощью представить мышление человека, который легко и свободно пишет такие статьи. Но не очень получается... Точнее, самоощущение такого человека слишком уж отличается от моего, чтобы сколь-нибудь долго быть в этой роли. Он какой-то гораздо более внутренне подвижный, лёгкий на подъём, оптимистичный. В нём нет моей вязкости.
Ещё попытался поднабросить в чате, когда ведущий начал двигать идею о том, что чтобы продавать что-то, нужно не вещать в группе что-то вроде «налетай, торопись, покупай живопись», а выступать в роли эксперта, и тогда люди сами захотят купить. Я написал, что для того, чтобы выступать в роли эксперта, нужно внутренне чувствовать себя экспертом, иначе будет неубедительно. Но увы, мой комментарий остался без внимания. Может, потому, что надо было явно добавить, что «а этому мешает синдром самозванца».
Но вообще, вебинар неплохо так мотивирует. После его окончания даже была мысль попробовать свои силы в создании какой-нибудь чисто коммерческой группы, например, сделать Tellе группу «Стихи и песни на заказ» (она иногда этим подрабатывает). И только когда посидел в медитации и вернулся в своё обычное состояние, это желание как-то потускнело. Вот, кстати, моя вечная проблема: как научиться консервировать мотивацию, сохранять такое собранное состояние.

«Дайте мне другой Интернет!»

4X_Pro

Вчера в переписке в TG DarLik выдала такую фразу: «[Нужно] Найти своё место, своё дело и своё окружение».
И тут я задумался, о том, что в 2000-х годах, которые я так люблю вспоминать как Истинные Времена, у меня всё это было. Место — это «талантливый мальчик, которому не повезло оказаться в поломавшемся мире, но который, в отличие от многих окружающих, остался собой, а не стал участвовать в гонке за успехом». Дело — собственные сайты и форумный движок. Вот с окружением было гораздо хуже. По сути, оно стало появляться только в 2006, когда сделал Социоклуб. И вообще, была простая и ясная картина мира с чётким пониманием, что такое хорошо, что такое плохо, каким надо быть, а каким — нет. По сути, она сводилась к следующему: копирасты и торговцы информацией — это зло, а мы, свободные творцы, построим параллельно оффлайну свой собственный мир — Интернет, где всё будет бесплатно (ну кроме «железа», хостинга и, собственно, самого подключения).
А сейчас… Сейчас хочется взять и заорать «дайте мне новый Интернет, этот испортился!» Потому что даже если есть возможность творить бесплатно, непонятно, что с этим делать. Куда вообще вообще выкладывать, чтобы быть хоть как-то замеченным. Раньше-то было всё просто: пишешь, попадаешь на главную, другие участники заходят, если нравится — подписываются, комментируют. Да и даже просто потреблять контент стало сложнее, потому что в условиях постоянно подключенного Интернета просто не получается сосредоточиться нормально на прочтении и осмыслении. И даже выкачать что-то в оффлайн и отключить сетевой интерфейс — тоже сложно, потому что стало много сайтов, сделанных с подгрузкой контента через JavaScript на всяких React, Vue и тому подобном. А ещё ужасно то, что большинство людей как-то легко приучили к тому, что платить за информацию и цифровые услуги — норма.
Так что теперь получается всё наоборот: постепенно сформировалось окружение, а вот места таким, как я, в этом новом мире просто не осталось. Оно тут есть только тем, кто готов вкладываться в раскрутку (что автоматом означает коммерциализацию). Которую к тому же полностью своими силами вряд ли сделаешь: нужно и тексты писать, и визуальное оформление делать, и таргетировать, для чего нужны совершенно разные типы мышления и навыки. И поэтому получается, что нет никакой разницы, делаешь ты что-то или нет, если никто этого не увидит и не оценит… И как жить в таких условиях — непонятно. И даже непонятно, кто виноват, потому что переход произошёл как бы сам собой, а не по чьей-то злой воле.
P.S. Впрочем, «другой Интернет» для меня всё же есть. Таковым можно считать i2p и yggdrasil. Только вот i2p очень криво сделан с технической точки зрения, а в yggdrasil активности не просто мало, а очень мало. Настолько, что отобразив туда два своих сайта, я за всё время получил только три хоть каких-то реакции…

Ранний подъём

4X_Pro

Вчера из-за плохого самочувствия проснулся рано, но весь день прошёл мимо. В результате очень рано ушёл спать, и сегодня (вернее, это уже вчера) сумел впервые за уже не знаю сколько времени проснуться в 9 утра естественным образом и при этом быть выспавшимся. Правда, днём всё равно на полчаса вырубился.
В результате день показался очень длинным, и успел многое. Но всё равно не всё (в частности, так и не поиграл в Prince of Persia или The Council, хотя собирался). А под вечер наглухо застрял на Неолурке, поэтому повторить, чтобы нормализовать режим в долгосрочной перспективе не получилось.

Запустил группу по slow life

4X_Pro

Неделя получилась весьма бестолковой: то недосыпы (как во вторник и четверг), то дни вне дома. Тем не менее, в четверг вечером сумел пройти несколько простых заданий на CodeBy. Мне начинает это нравиться!
А сегодня запустил группу по slow life. Уже есть первые 10 подписчиков, причём это только по ссылке с моей стены. А ещё есть мысль задействовать старые соционические группы, только нужно связать slow life с соционикой. Скорее всего, сделаю опрос на тему связи с квадрами, чтобы не выглядело как спам.
Не знаю, можно ли считать группу ВК полноценным пуском (всё же это не настоящий сайт), но если да, то получается, что это уже третий пуск за год. А если всё же доделаю каталог бесплатностей (я всё-таки остановился на варианте делать его как часть этого сайта), то этот год можно будет и вовсе назвать Годом Великих Свершений. Вопрос только в том, делать ли отдельный тип раздела под него или ограничиться обычным блогом.

На самокатах по Тверской

4X_Pro

В среду вечером DarLik вытащила меня на продолжение фотосессии возле «Одеона». Ей всё же очень хотелось поснимать меня на фоне этого театра тогда, когда включена подсветка. Идти до него пешком от метро было лень, поэтому мы взяли самокаты. А когда возвращались обратно, DarLik предложила покататься ещё, например, доехать до Третьяковской. Только вот как ехать от Белорусской до Третьяковской, я не знал. Но посмотрев на улицу Тверскую прямо перед собой, вспомнил, что центральные станции Замоскворецкой линии расположены под ней, и предложил ехать чуть ближе — до Театральной. И мы помчались! Время было около полуночи, народа было мало, а улица прямая и достаточно ровная. Промчались очень быстро, но доехать до Театральной так и не удалось — в самом конце улицы (точнее, наоборот, это начало), уже недалеко от метро висит знак, запрещающий движение самокатов. Хотели было оставить самокаты на парковке чуть не доезжая до него, но не получилось из-за проблем с геолокацией: приложение считало, что мы находимся в зоне, запрещённой для самокатов, и отказывалось завершать поездку. Решили вопрос просто: поехали обратно к метро Тверская, и оставили самокаты там. К тому времени уже было что-то около 0:40, и я стал опасаться, что не успеем на пересадку на Таганской. Но успели, причём даже на предпоследний поезд! В общем, впечатлений масса, и весьма позитивных!

Заглянул на socionics.me

4X_Pro

Заглянул сегодня на socionics.me, где не был уже больше месяца, с момента, когда занялся Preambula. Как и следовало ожидать, всё подзаглохло. Эх, не хватает у меня ресурса на два форума + какой-то ещё проект. В какой-то момент даже боялся, что ушёл даже Keynol, но нет, он и Anush там периодически появляются, но пишут очень мало.

Глючный день

4X_Pro

Вчера получился замечательный и очень эффективный день. Редкий случай, когда успел почти всё задуманное, кроме самого главного — провести инвентаризацию статей, чтобы понять, что включить в сборник PDF, и поиграть либо в The Council, либо в Prince of Persia 2. В частности, сгенерировал фоновую картинку и логотип для будущей группы по slow life с помощью нейросети Fooocus. Правда самый удачный вариант получился тогда, когда в настройках сбилось соотношение ширины и высоты, в результате вышла картина неправильного размера. И сколько я потом не пытался её перегенерировать (даже используя тот же самый random seed), получить то же самое, но нужного размера не удалось.
Но, как всегда, за днём высокой эффективности следует спад. Сегодняшний день получился каким-то кривым. Начался он с телефонного звонка, а это, как известно, ни к чему хорошему не приводит. Звонила Tella в каком-то очень странном эмоциональном состоянии. Потом увидел сообщение от DarLik «посмотри, что творится на рынках». Я полез на SmartLab, посмотреть показатели своего портфеля, и увидел то, чего не видел, кажется, с сентября 2022: все бумаги стройными красными рядами маршируют на юг (идут на понижение). Стал смотреть новости, и понял, что похоже, начинается новый мировой кризис.
Остаток дня ушёл на кучу переписок (у всех какой-то всплеск активности сегодня, или же, наоборот, я был заторможен, поэтому не успевал реагировать), а уже когда стало темнеть, выбрался на небольшую прогулку по району. Хотя прошёл чуть меньше четырёх тысяч шагов, устал очень сильно: Welltory показывала 29% энергии. (И это при том, что после пробуждения было 68%.) Видимо, сказывается солнечная вспышка класса X и начинающийся протонный шторм.
Поэтому остаток дня даже не стал пытаться что-то делать, а ограничился тем, что дочитал книжку про диету для здоровья зубов и посмотрел фильм «Одержимость», который советовал сэр Мик. Ещё поставил Scribus для создания сборника PDF, но попробовав им пользоваться, быстро пришёл к выводу, что для моих целей лучше подойдёт LibreOffice Writer.


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

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