Портрет 4X_Pro
Был в Сети 12 окт. 2024 г., 22:42
Мультиблог
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
Всё-таки я заболел. Температура 38 °C и выше, ничего делать нормально не могу и злюсь на то, что время проходит напрасно. Вчера попытался было писать заметку для сайта с мобильника, но безрезультатно. Точнее, всё застряло на том, что нужно скопировать и отредактировать кусок текста со своего второго сайта, а с мобильника делать это не очень-то удобно. Сейчас попытался сесть за компьютер, но сил хватило только на то, чтобы проголосовать.

Прогулка и размышления наедине с собой

4X_Pro
Выбрался сегодня на длинную прогулку в Измайловский парк. В отличие от недавней прогулки в Терлецкий, которая почти ничем не запомнилась, эта получилась в лучших традициях Истинных времён — с одной стороны, созерцание ранней весны, с другой — время, проведённое в размышлениях наедине с собой.
Изначально я вообще рассматривал возможность отправиться в Кусково. Но потом подумал, что сейчас, наверное, там ещё не сошёл снег и не освободился ото льда пруд, поэтому выбираться туда рановато, лучше где-нибудь на следующей неделе. Поэтому отправился всё же в Измайловский. Прошёл от Новогиреевской улице по косой аллее к пасеке, затем выбрался к Серебрянке — тому месту, где когда-то был мост, но потом его смыло. Его до сих пор не восстановили. Прошёл оттуда немного вверх по течению, сфотографировал несколько раз реку, потом развернулся, и пошёл в другую сторону — там есть ещё два моста. По второму из них всё же перешёл на другой берег, побродил немного там (в частности, прошёл по туевой аллее), и отправился к второму Декоративному и Красному прудам. А от Красного пруда решил возвращаться домой через лес. К этому времени солнце уже пошло к закату, и снег стал оранжево-фиолетовым: оранжевые отблески от солнечных лучей и фиолетово-синие тени там, куда лучи не попадают. Жаль, не пришло в голову это сфотографировать!
Пока шёл к пасеке, задался вопросом, чего же я хочу от жизни на самом деле. Потом стал крутить в голове заметку о том, насколько каждый может быть собой, которая вызревает у меня в голове уже два месяца, но всё никак не соберусь сесть и начать её писать. И только уйдя на другой берег Серебрянки, вдруг получил ответ, чего же я хочу на самом деле. Ответ достаточно ожидаемый: жить в мире, где оценка (в широком смысле этого слова) даётся только через аспекты БЛ, ЧИ и ЧЭ (и, может быть, БИ и БС как второстепенные), но из оценивания исключены БЭ, ЧС и ЧЛ. Но увы, если раньше эти аспекты были важны только в оффлайновом мире, но без них прекрасно можно было обходиться в Сети, то сейчас это не так, и надежд на какое-либо улучшение не видно…

И ещё три дня вне дома

4X_Pro
Опять несколько дней провёл вне дома. В субботу сначала отправился на короткую прогулку в Терлецкий парк, а вечером — на настолки. Прогулка получилось не столь короткой, как планировал изначально. Во время неё пытался максимально сосредоточиться на здесь и сейчас, но периодически «улетал» в свои мысли, особенно когда уже шёл обратно.
На настолках тоже ничего интересного не было. Причём получилось так: я никак не мог собраться и приехал достаточно поздно (около 20 часов), но играть ещё толком не начинали. И вообще, успели сыграть только два раза в «Меч самурая», и всё. Потом хотели пойти в ближайший KFC и продолжить игру там, но что-то слишком уж долго собирались, и в итоге я решил уехать домой.
В воскресенье снова сходили с отцом на лыжах. Я повторил тот же результат, что показал в пятницу. И была даже идея поехать на третий круг, но тогда нужно было первые два ехать спокойнее. В общем, результаты тренировки сказываются.
Но из-за того, что слишком мало сижу за компьютером, накапливается внутренняя напряжённость из-за чувства, что опять отстаю от жизни. Поэтому сегодня даже возникла некоторая внутренняя борьба: с одной стороны, хотелось не упускать весну и съездить либо в Кусково, либо куда-нибудь в Нескучный сад или на Воробьевы горы, с другой — отсидеться дома, заняться наконец-то мобильным сообществом, поиграть в StarCraft, в общем, всем тем, что называется «догнать жизнь».

Непонятное состояние

4X_Pro
В последние дни со мной творится что-то непонятное. Сплю по 6–6.5 часов в сутки, потом просто выкидывает из сна без видимых причин. Как это ни странно, голова более-менее работает, нет того ощущения «шестерёнки в мозге еле скрипят», которое обычно бывает при недосыпе. Но постоянно испытываю ощущение «не успеваю, ничего не успеваю». И физически почти всё время чувствую сильную усталость, и Welltory даже сразу после пробуждения показывает меньше 60% энергии (хотя стресс и здоровье в норме). Никак не могу понять, то ли со мной что-то не так, то ли просто организм на смену сезонов так оперируе реагирует и более раннее начало светового дня. Или же это просто результат слишком большой затраты ресурсов на разработку мобильного сообщества...

Хаотичная активность последних дней

4X_Pro
Как всегда, после дня активного продвижения вперёд наступил спад эффективности. Вместо этого занимаюсь какой-то хаотичной активностью. В среду вместе с Tellой съездил на встречу с RauRом. Сначала общались очень классно и позитивно, но потом RauRу не понравилось, что я его считаю на самом деле СЛИ-«Габеном» (и зачем тогда было спрашивать версию вообще?). Ну и плюс, как выяснилось, непонятно, чего он вообще хочет от встреч.
В четверг хотел было вернуться к работе над движком сообщества, но получилось только подобрать несколько вариантов цветовой гаммы с помощью MyColor.Space и нарисовать прототип главного экрана карандашом в блокноте. Также решил вопрос, как быть с репостами: понял, что нет смысла делать локальные репосты вообще, так как движок предназначен для небольших сообществ без персонализированной ленты в принципе. (Только возможность подписыаться уведомления о новых записях по пользователю/хештегу). Вот когда вернусь к работе над MLCE, там всё будет иначе…
Сегодня ходили с отцом на лыжах. Снова прибавил в скорости! Но тут сказывается обледенелось лыжни: и толкаясь двумя палками, и идя коньковым ходом, легко получить мощный прирост в скорости. Правда, из-за такого темпа совершенно не было ресурса на созерцание природы, за исключением одного момента возле Красного пруда.
Остаток дня прошёл мимо. Пытался заняться frontend-частью сообщества, но почти без толку. Даже шрифт со значками на каком-нибудь Fontello не сделал. Зато наткнулся на сайт LocalFirstWeb.dev/. Оказывается, не я один являюсь сторонником того, что приложения должны уметь работать в оффлайне. Правда, у меня причина другая, чем у большинства: нормально могу сосредоточиться только с выключенным Интернетом. Что ж, будем надеяться эта тенденция победит, по крайней мере, в среде технически продвинутых людей.
Ещё прошёл ту карту в Starcraft, на которой застрял полгода назад, и следующую за ней. Вернее, даже не застрял, а просто как-то перестал в него играть (отчасти из-за возникших проблем с Wine, отчасти из-за увлечения игрой Sir Brante, отчасти просто из-за уплотнения жизни).

Большой шаг в работе над движком мобильного сообщества

4X_Pro
Сегодня получился очень результативный день в плане работы над движком мобильного сообщества! Сам удивляюсь, что столько можно сделать всего за день, причём ещё кучу времени потерял на то, чтобы обеспечить проброс порта с локального компьютера на сервер с добавлением HTTPS. Перепробовал Tailscape, port forwarding в Visual Studio Code, но у каждого нашлись недостатки. В итоге решил вопрос своими силами, сделав проброс на VDS, где крутится сайт идеалистов, и там получил с помощью certbot сертификат для одного из поддоменов, который и использую для тестирования.
Фактически, базовые функции (регистрация/вход/выход пользователя, написание и показ сообщений и ответов) готовы. Осталось добавить поиск сообщений и удаление, и можно будет переключиться на frontend-часть. А уже потом добавлять лайки, хештеги, профили пользователя и тому подобное.
Видимо, сказалось, что перед этим неделю обдумывал всё, когда неделю жил на той квартире, хотя при этом не написал ни единой строчки кода.

Лишился трансляции из Instagram

4X_Pro
Полез было на IFTTT, чтобы выяснить, что с трансляцией из Instagram, но долго не мог вспомнить ни пароль, ни адрес регистрации. Только приехав сюда, зашёл с этого компа, и обнаружил, что тут до сих пор залогинен. Стал разбираться, в чём дело, и обнаружилось, что IFTTT пошёл по пути Zappier — тоже сделал произвольные HTTP-запросы платными. Так что теперь надо либо переделывать систему импорта, либо просто забить на Instagram, создать фотораздел прямо тут, и публиковать в нём. Всё равно в Instagram мои записи регулярно просматривает всего человек пять…
Но вообще, эта ситуация в очередной раз показывает, как плохо зависеть от сторонних сервисов.

Большая прогулка и окончание слишком активной недели

4X_Pro
Из десяти последних дней полностью дома провёл только два: позапрошлую субботу и прошлую пятницу. Для меня это слишком! Сегодня вернулся в Москву, буду сидеть дома и приходить в себя… Впрочем, полностью не получится: в среду всё же договорился пересечься с RauRом по поводу соционических встреч.
Зато вчера выбрался просто на потрясающую прогулку по северо-западной части Посада. Вышел к Клязьме, и оказалось, что почти упустил ледоход: река была уже совершенно чистой, только иногда проплывали небольшие льдинки. Потом прошёл в какой-то новый район, где идёт активная коттеджная застройка. Причём в некоторых местах коттеджи полностью одинаковые, из-за чего складывается впечатление, будто бы находишься не в Посаде, а в каком-нибудь американском пригороде.
Затем вышел к Филимоновскому карьеру. Но там сейчас ничего интересного нет, он пока ещё весь покрыт льдом и снегом.
А оттуда — вышел в собственно Филимоново, к тем самым большим домам, в которых изначально и хотел поселиться, но высшие силы решили иначе. Как и в первый раз, то место снова дало какое-то ощущение радостности, приподнятого настроения. Но теперь обратил внимание, насколько там более шумно, оживлённо и многолюдно по сравнению с тем местом, где живу сейчас. Если сравнивать с Москвой, то разница примерно такая же, как между Перово в районе Владимирских улиц и Зелёным проспектом в Новогиреево. Так что, может быть, всё получилось и к лучшему…
В целом прогулка получилась прямо в духе Истинных времён, когда я уходил из дома на полдня, проходил огромные расстояния (и в этот раз набегал более 10 тысяч шагов). Вернулся домой прямо каким-то наполненным весной, впечатлениями и солнечным светом. Устал жутко, но очень доволен, что выбрался. Хотел выложить две серии фото с этой прогулки, но обнаружил, что перестала работать трансляция из Instagram. Поэтому и описал её в этом сообщении.

Когда избыток знаний тормозит разработку

4X_Pro
Как уже писал, никак не получается вернуться к своим проектам. Ни доделать релиз IntB (а для этого — добавить поддержку PostgreSQL и SQLite и исправить кое-какие мелочи), ни вернуться к мобильному сообществу. Причём на последнем я застрял на проблеме избыточного выбора. Нужно реализовать простейшую задачу (выборка данных о сообщениях и их авторах, самый обычный LEFT JOIN по id), но в голове крутится целых 6 вариантов реализации (не считая неприемлемого — использования стороннего ORMа), и никак не могу определиться, какой лучше. Точнее даже так: вижу плюсы и минусы каждого, но никак не могу выбрать, чем пожертвовать: красотой и логичностью кода или возможностью выдернуть все данные одним запросом, а не несколькими.
Эх, вспоминаю, как всё просто было во времена IntB 2.x: там я в каждой таблицы для каждого столбца делал префикс с одинарным или двойным подчёркиванием (например, для пользователей все поля начинались на u_ или u__ в зависимости от того, может ли их менять сам пользователь, для сообщений — на p_), и по этому префиксу на стороне PHP поля было элементарно разделить (а также это защищало от одинаковых имён столбцов в одном запросе). Сейчас такое решение воспринимается как топорное и «студенческое». Но все те решения, которые воспринимаются как нормальные, имеют свои недостатки: либо нужно делать как минимум два запроса, либо где-то хранить список полей в самом классе, либо использовать attributes, которые появились только в PHP 8. Впрочем, пока я это писал, пришла в голову новая мысль: использовать Reflection и проверять с его помощью, в каком из классов есть соответствующее поле. Для простых случаев типа мобильного сообщества этого будет достаточно.

Результативность повседневности

4X_Pro
Сегодня впервые с воскресенья просидел дома почти безвылазно. Всё-таки каждый день куда-то выбираться для меня — это слишком. Догонял жизнь, приходил в себя. В целом день получился довольно результативный (плюс ещё встал рано по своим меркам), но занимался, в основном, повседневно-бытовыми вещами, а также настройкой одного из компьютеров. Хотел ещё поиграть в StarCraft или Prince of Persia 2, но так и не успел. А вот вернуться к своим проектам не получается. Но об этом — в следующем сообщении.

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

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