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

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


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

t.me/4x_pro

Лог жизни

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


Почему я всё-таки избегаю утра?

4X_Pro
Какой-то странный период в жизни. У многих всплеск активности и желания общаться. Или это они осенне-зимний недостаток серотонина так пытаются добрать? А у меня — наоборот, потребность уйти в себя и отключить каналы realtime-общения, отвечать только там, где общение асинхронно, и только при наличии желания и настроения.
Плюс сегодня опять не выспался, и день прошёл куда-то мимо. Только совсем под вечер успел хоть что-то сделать. И лёг спать пораньше, в надежде, что проснусь рано и новый день будет совсем другим. Но получилось как всегда: через один цикл проснулся, и снова не могу уснуть. Эх, когда же жизнь придёт в порядок… И почему вообще моё бессознательное так избегает утра?

Slow life на новой квартире

4X_Pro
Весь день вчера был сонный, никак не мог заставить себя даже просто встать с кровати. Видимо, из-за снега, который всегда плохо влиял на мою работоспособность. Сегодня тоже проснулся с таким ощущением, но стоило раздвинуть шторы и чуть приоткрыть окно, как более-менее пришёл в себя. Оказалось, что за окном снова идёт снег. Причём из-за особенностей воздушных потоков, создаваемых соседними домами, казалось, что снежинки не просто падают, а прямо танцуют на ветру, то снижаясь, то поднимаясь вновь! Минут десять созерцал это…
Видимо, на сонливость влияет ещё избыток углекислого газа, придётся окна приоткрывать даже зимой. А ещё снова задумываюсь о покупке измерителя концентрации CO2. Только вот в приемлемом ценовом диапазоне сложно что-то найти: то попадаются китайские поделки, которые меряют непойми что, то устройства с неотключаемой подсветкой или звуковым сигналом. Попался только более-менее один проверенный вариант с хорошими отзывами, но какой-то слишком уж он примитивный. И измеряет именно только CO2 температуру (причём последнее мне не очень-то нужно, так как привезу сюда обычный термометр), тогда как большинство других устройств умеют как минимум мерить концентрацию летучей органики, а то и пылевых частиц PM2.5 и PM10.
Ближе к вечеру посидел в медитации, и теперь чувствуется вполне ощутимая бодрость. Только вот делами никакими заниматься всё равно не хочется.
Вообще, эта квартира как-то сама настраивает на жизнь в режиме «поспешай медленно». С одной стороны, темп жизни ощутимо замедляется, происходит уход в себя и свои размышления. С другой — задачи из категории «срочно, но неважно» себе решаются, хоть и медленнее, чем хотелось бы. А вот с «важно, но не срочно» дело как-то не двигается.

Переустановка всего на мобильнике

4X_Pro
Вчера весь день прожил в безкомпьютерном режиме: в Сеть выходил только с планшета и мобильника. Под вечер решил наконец-то разобраться с неработающим Google Play на телефоне. Перезагрузился в recovery mode, сначала хотел очистить только кеш. Но потом увидел опцию «сбросить настройки системы, но сохранить данные», и решил воспользоваться ей.
Google Play при этом реально заработал. Но случилось несколько непредвиденных последствий: во-первых, пришлось переустанавливать все приложения. В процессе этого в очередной раз отвалился WiFi (никак не могу поймать закономерность, по которой это происходит), и качалось всё через мобильную передачу данных. Итог — минус 1.6 Гб данных за вечер, а на оставшиеся два с небольшим нужно прожить ещё полмесяца. Второй неожиданный эффект — не сохранились значки на рабочем столе. Пришлось расставлять всё заново, причём где были некоторые редкоиспользуемые приложения, я не помнил.
Третье — перестала работать тема значков, которая придавала им более-менее объемный вид, как в интерфейсах начала 2010-х. Теперь все значки плоские, в худших традициях material design.
Ну и четвёртое — без потери данных не обошлось: не могу найти приложение для заметок. Видимо, его удалили из Play, так как оно не обновлялось со времен Android 4. И «весило» при этом чуть ли не меньше мегабайта! И ещё потерялись данные о тренировках из Huawei Health. Вроде некритично, но с учётом моей тяги к полному life logging — неприятно.
Но зато наконец-то поставил мобильный Edge с блокировщиком рекламы и восстановил Яндекс.Карты. Да и всё остальное наконец-то обновил.

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

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ом всё равно не пользуюсь.

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

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