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

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


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

t.me/4x_pro

Лог жизни

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


Зима и очередной приезд на квартиру

4X_Pro
Забавно: мой очередной приезд на новую квартиру совпал с наступлением зимы. Зимой тут замечательно! Вид из окна — почти открыточный: голые деревья, чуть присыпанные снегом, стена леса над горизонтом и множество дымков, поднимающихся над трубами частных домов… И огромное небо над всем этим. Тем более, так получилось, что ехал я ранним утром (которое при моём образе жизни было поздним-поздним вечером), и на месте оказался как раз тогда, когда солнце поднимается над лесом.
При приезде в очередной раз сработал портальный эффект: всё то, что я собирался делать в городе, кажется каким-то далёким и не особо актуальным. Хочется просто отключиться от всего и заниматься созерцанием Внутреннего Безмолвия, выпав из потока реального времени. Но, увы, в полной мере не получается. Слишком многим от меня что-то нужно: решить вопрос с платежами через SuperMon_Bot для GoRo, написать Keynol мнение по поводу его материалов, помочь ещё одному человеку на сайте IntB с непонятной проблемой с форумом.
Ещё и опять проблемы со сбитым режимом и сном: то не высыпаюсь нормально, то сплю весь день, как сегодня. Видимо, из-за снега. Но зато Welltory даёт отличные показатели: сегодня было 94 энергии!

Получил Half-Life бесплатно

4X_Pro
Вот она, сила Fediverse: сегодня зашёл на сообщество Идеалистов и увидел в ленте информацию о том, что в честь 25-летия выхода игры Half Life она раздаётся в Steam бесплатно. Не упустил возможности, и приобрёл. Заодно и репост к себе в ленту сделал. Глядишь, и допройду когда-нибудь (много лет назад начинал играть, но застрял примерно на трети, да и компьютер тогда был слабоват). Вообще, в последнее время думаю о том, чтобы сосредоточиться на закрытии незакрытого, дополучении недополученного… Только сначала надо бы Starcraft допройти, а то снесло потоком жизни.

Попытался сделать камеру из старого телефона

4X_Pro
Решил сегодня попробовать сделать IP-камеру из своего старого Sony Ericsson Neo V, который лежит у меня в запасе с 2016 года. Но, увы, не получилось. Сначала долго не мог поставить программу DroidCam. В Google Play это устройство просто не пускают, скачать напрямую с сайта разработчика тоже не получается из-за проблем с HTTPS, видимо, устарели корневые сертификаты. (Хех, вот почему я так негативно отношусь к повсеместному шифрованию: чистый http будет работать всегда и везде, а вот с https то и дело какие-то проблемы вылезают). Наконец, пошёл другим путём: скачал APK с планшета и закинул по Bluetooth. Со второй попытки сработало (с первой — перепутал версию Android: думал, на телефоне 4.4, а на самом деле 4.0.4).
Но увы, камера так и не заработала. Сначала вроде приложение запустилось, но подключиться не смог. А само приложение стало писать ошибку address in use. Решил, что, видимо, остались в фоне какие-то процессы от предыдущей версии apk (которая была для 4.4), ушёл в перезагрузку в надежде, что на свежезагруженной системе ничего не будет мешать. Но уйти — ушёл, а обратно не вернулся: устройство почему-то ушло в bootloop. Теперь нужно будет его перешивать (а для этого ещё бы вспомнить, как это делается).

Полдня оффлайна и падение сайта

4X_Pro
Мда… Стоило устроить себе полдня оффлайна, как посыпались проблемы. Включил Интернет, и обнаружил сообщение от 10geekа о том, что сайт идеалистов лежит с ошибкой 500. Стал разбираться, и оказалось, что дело было вот чём: я решил для Postgres немного уменьшить лимит памяти, а то он забрал больше 1 Гб, из-за чего начался swap и медленная работа сайта. Прописал в конфиге для одного параметра значение 512Mb. А оказалось, что Postgres корректно воспринимает значения, только если обе буквы заглавные, т.е. нужно было писать 512MB. А я вместо полноценного рестарта Postgres после правки конфига сделал systemctl reload, поэтому тогда это не всплыло. А сегодня ночью написал в техподдержку просьбу разблокировать порты для почты, после которой они, видимо, сервер перезагрузили, и из-за этой ошибки Postgres не стартовал.
Теперь добавил сайт идеалистов в SiteKnockerBot. Впрочем, даже если бы сделал это раньше, всё равно бы не особо помогло: я же полдня сидел в оффлайне.
А ещё ломаю голову: уместно ли написать в сообщество заметку «как глупо уронить Postgres», где в более кратком формате рассказать про эту ошибку в конфиге, или не очень, с учётом того, что она уйдёт в Fediverse. Эх, вечная моя проблема: оценить, что уместно писать, а что будет не в тему…

Учусь жить без планов

4X_Pro
Прихожу в себя после пуска сообщества. И снова учусь жить без планов, в режиме открытости тому, что принесёт река времени, жизнью, про которую есть замечательная цитата: «Каждое утро тебя встречает день, в котором ты никогда не был. Каждое утро тебя ожидает мир, который ты никогда не видел.» Так непривычно! Но хорошо, нет постоянного мучения своего третьего Будущего по темпористике различными «надо, надо, надо, а то столько времени прошло, а ты так мало сделал»!
Весь день прожил в режиме slow life. Впервые с весны побегал на дорожке, разобрал закладки в броузере (снова думаю о переходе под Edge, всё-таки синхронизация с мобильными устройствами — штука полезная, а Iron этого не умеет). Поизучал Web-клиенты для Fediverse, нашёл даже такую экзотику как Brutaldon — клиент для броузеров типа lynx, links или dillo. Правда, с Akkoma он не заработал, в ней сработала защита от CSRF. Потом наконец-то определился с компьютерным столом и креслом для новой квартиры и сделал заказ. И просто много сидел и размышлял. В ближайшее время, наверное, буду всё же приучать себя меньше времени проводить за компьютером, а больше выходить в Сеть с мобильных устройств. Они всё же не так цепляют внимание, возможно, из-за отсутствия многооконности. (Хех, я это собирался делать каждый раз, когда планировал покупать мобильник или планшет.)

Размышления об игре Sir Brante

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

Сообщество Идеалистов Интернета запущено!

4X_Pro
В субботу запустил своё сообщество идеалистов! Первый пуск с 2018 года, если считать только новые домены (ещё был перезапуск xxxxpro.ru в прошлом году).
Долго не мог определится с названием домена. Изначально, ещё в 2021 году, я хотел взять адрес idealisty.net. Но регистрировать домен в зоне .net дороже и сложнее, поэтому в последний момент пришла в голову другая идея — взять домен idealists.ru.net и переименовать сообщество в «Идеалисты Рунета». Решил обсудить эту идею с 10geekом и участниками чата. 10geek предложил идею idealists.su, потом эту идею поддержала goblincat. И в итоге я решил, что правильное написание и «самый коммунистический домен» для такого сайта — вполне хорошее сочетание!
Запуск шёл вполне нормально. Я создал свой аккаунт, выложил те сообщения, которые подготовил за последние дни, создал двух ботов: Idealists — для общих новостей сообщества и Catalog — для каталога бесплатностей. Его я тоже решил делать не отдельным сайтом, а внутри сообщества. Правда, для этого придётся пожертвовать социальными функциями и автоматической проверкой ссылок…
И вот пуск состоялся! Остался только последний крошечный шаг — перенести свой профиль с lor.sh. Но вот тут-то и полезли проблемы.
Началось всё с того, что я не мог прописать alias в свой профиль для переноса. Стал искать причины, разбираться, что сервер отдаёт при просмотре моего пользователя. И оказалось, что зря я сначала делал сайт на временном домене третьего уровня (idealists.4xpro.ru)! Теперь этот домен оказался «прошит» в идентификаторе пользователя.
Пришлось менять его прямыми запросами к базе данных. Но дальше — хуже. После того, как это сделал, пропали все опубликованные сообщения. Стал разбираться, и оказалось, что идентификаторы там тоже привязаны к домену. Более того, в базе в одних местах идентификаторы они хранятся как строки, в других — лежат в массивах или JSON.
Пришлось на ходу изучать структуру базы данных Akkoma и разбираться в работе с JSON и массивами в Postgres. С JSON сначала напутал, и в итоге сначала получилось, что в базе настоящего JSON стала храниться строка, содержащая экранированные данные. Пришлось разбираться, как преобразовать это дело обратно.
После где-то полутора часов вроде всё сделал правильно, но сообщения так и не появились. Долго ломал голову, пытаясь понять, что же не так. По несколько раз перепроверил каждую таблицу в базе, написал несколько новых сообщений, чтобы посмотреть, в чём будут различия. Но без толку!
И только спустя два часа совершенно случайно заметил, что случайно в один из столбцов с обычным текстом в конец адреса пользователя добавил кавычки! Видимо, ошибся после того, когда спасал JSON в других столбцах. Когда исправил, сообщения появились. А ещё починилось редактирование сообщений. Но это уже была глубокая-глубокая ночь.
После этого осталось только закончить перенос аккаунта (там тоже пришлось в базу залезть вручную) и смотреть, как начала наполняться federated-лента…
Так что всё, теперь у меня есть не только сайт с поддержкой IndieWeb, собственный узел i2p и yggdrasil, но и собственный instance Fediverse! А ещё сервер синхронизации данных, и даже в какой-то момент поднимал собственное облако на NextCloud, но потом отказался. В общем, как сейчас принято говорить, полная цифровая автономность! Разве что ещё свой сервер Matrix поднять осталось, впрочем, я Matrixом всё равно не пользуюсь.

Знак свыше на запуск сообщества

4X_Pro
В последние дни думал о том, что надо бы установить Akkoma уже на боевой сервер для сообщества идеалистов, но всё никак не решался. Всё время колебался между тем, сделать отдельный сервер, и поставить туда, или добавить памяти на основной. Как вдруг сегодня (вернее, уже вчера) прилетело письмо от TimeWeb о том, что они решили сделать свою «чёрную пятницу», и до 19 часов удваивают скидку при пополнении баланса на полгода или год вперёд. Я решил, что такая халява — это знак свыше для поддержания меня в моём намерении, быстро зарегистрировал ещё один сервер и тут же проплатил год вперёд. Получил скидку в 20%! Причём баланс там общий для всего аккаунта, и даже если я решу избавиться от нового сервера, деньги пойдут на оплату основного.
Потом занялся установкой Akkomы на новый сервер. Прошло всё на удивление легко и хорошо! (Видимо, и правда высшие силы благоприятствуют.) Только на этапе компиляции файла с сообщениями был вылет из-за нехватки памяти. Но я быстро сообразил, в чём дело, сделал swap-файл на 2 Гб, после чего процесс прошёл нормально. Теперь осталось только определиться с доменным именем (хотя я с 2021 года присмотрел один вариант, сейчас пришло в голову ещё два новых), дописать вводные тексты. И, скорее всего, завтра сделаю официальный запуск!
А ещё я воспользовался DALL-E, чтобы сгенерировать логотип и несколько фоновых картинок. Получилось симпатично, но на выходе размер картинок всего 1024x1024, что маловато. И ещё нейросеть часто неправильно прорисовывает глаза.

Разорванность жизни

4X_Pro
Никак не получается переехать окончательно. Всё тормозит этот строительный мусор в кабинете: из-за него не могу купить ни диван (потому что ставить некуда, да и грязным станет быстро), ни компьютерный стол (потому что его нужно покупать с учётом размера дивана). Из-за этого на новой квартире приходится сидеть за старым столиком, очень низким и неудобным.
Из-за этого езжу то туда, то сюда. В частности, последний раз заезжал на квартиру в воскресенье. Наконец-то сделал то, что хотел ещё с момента покупки квартиры: помыл окна в кабинете и спальне, благо высшие силы мне благоприятствовали, обеспечив температуру 10 °C в ноябре, при которой мыть окна вполне комфортно.
И впервые подключил проводной Интернет. Правда, он оказался весьма не впечатляющим — 22 Мбит/с даже на проводе (при том, что в тарифе заявлено 60 Мбит/с). Но, возможно, проблема не в провайдере, а в старом роутере, который и раньше-то выше 40 Мбит/с не тянул, потому что железо не позволяло. А во время ремонта ещё и пыли наглотался, и скорее всего, сейчас перегревается. Да ещё и какие-то глюки с DNS-серверами, которые провайдер даёт через DHCP: первый из них просто не отвечает, поэтому name resolving делается через второй с ощутимой задержкой, что раздражает. Попытался прописать в настройках роутера публичные сервера 1.1.1.1 и 9.9.9.9, но без толку. Так и пришлось идти путём костылей — прописывать их непосредственно в настройках компьютера. После этого задержки исчезли.
И стоило выйти в безлимитный Интернет с компьютера, как всё вернулось на круги своя: стало ни до квартиры, ни до видов из окна, Интернет поглотил внимание целиком и полностью. Причём я ничего серьёзного не делал, только поэкспериментировал с броузером Edge под Linux (да, и такое существует). В целом он даже мне понравился, но память жрёт активнее, чем Iron, поэтому переходить на него не буду. Да и встроенного блокировщика рекламы там не нашёл.
Тем не менее, во вторник выбрался на прогулку к Клязьме. Но слишком поздно, уже когда солнце заходило. Из-за этого даже сосновый бор казался мрачным и неприветливым.
Потом попытался собрать стол для гостиной. И даже почти получилось. Но потом обнаружилось, что нужно кое-где просверлить отверстия для шурупов, а свёрла куда-то делись: то ли на даче остались, то ли куда-то завалились во время ремонта кладовки. Так и лежит до сих пор стол в полусобранном состоянии.
В среду, наоборот, успел поймать момент, когда выглянуло солнце. Выбрался буквально на 10 минут (и даже не на прогулку, а по другим делам), но реально было такое чувство радости и лёгкости! И ещё тишины, которую нарушали только птицы. Что-то подобное я испытывал в марте, в первый приезд, когда ещё смотрел квартиру в Филимоново, но не сложилось.
И тогда же, в среду, поехал обратно в Москву. Из-за этих постоянных переездов чувствую какую-то разорванность жизни на две части, ни в одной из которых не могу ничем нормально заниматься. Время уходит неизвестно куда, и нет ощущения прогресса, движения вперёд.

Развернул направление трансляции блога

4X_Pro
Решил развернуть трансляцию: если раньше писал у себя на сайте, а потом это автоматически транслировалось в ЖЖ, то теперь будет наоборот. Это даст возможность использовать мобильный ЖЖ-клиент и писать сообщения в оффлайн-режиме. Это сообщение будет первым, которое так отправится. Правда, ради этого придётся пожертвовать тегами…
Конечно, идеологически правильно было сделать из своего сайта PWA с оффлайн-кешированием. Но времени это займёт много, а плюсов, кроме опыта и некоторого чувства гордости собой, никаких не даёт. Тогда как трансляцию из ЖЖ я сделал за пару минут через IFTTT. (Даже пароль дольше восстанавливал.)
Интересно, когда и почему всё-таки так поменялось моё мировоззрение, что сэкономить время стало важнее, чем сделать самому? Впрочем, на вопрос «когда» вполне могу ответить: после Великого Выгорания, когда понял, что силы весьма и весьма ограничены, а написание и, главное, отладка любого кода занимает в разы больше, чем кажется сначала. И поэтому сделать самому всё, что хотелось бы, никогда не получится.

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

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