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

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


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

t.me/4x_pro

Лог жизни

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


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

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, но так и не успел. А вот вернуться к своим проектам не получается. Но об этом — в следующем сообщении.

Об обесценивании прожитого дня

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

Почти весенний день, который прошёл мимо

4X_Pro
День сегодня получился очень глючный и бестолковый. Изначально собирался встать и сразу поехать в Посад, на новую квартиру — встречать весну и самый необычный день года — 29 февраля.
Но потом на связь вышла Tella, котору.ю чего-то сильно занесло эмоционально. Пришлось успокаивать. В итоге всё пошло не по плану, и на квартиру добрался только вечером. Да ещё весь день чувствовал сильную усталость, в какой-то момент Welltory показывла всего 28% энергии. И непонятно, то ли я всё же реально полузаболавший, то ли последствия вспышек на Солнце, то ли просто перегрузил себя в последние дни. В общем, день прошёл мимо. Хотя с другой стороны, день, когда я еду с места на место, из жизни выпдает почти всегда.

Седьмая прогулка на лыжах

4X_Pro
Всё-таки я не заболел. Сегодня встал вполне здоровым и пошёл с отцом на лыжах ещё раз. Седьмой за эту зиму, что для меня достаточно много (в предыдущие годы 4-5 выходов уже было хорошим результатом, даже несмотря на то, что не было второй квартиры).
Температура на улице была почти плюсовая, небо — серое и очень мрачное, поэтому идея выбраться на лыжах сначала казалась весьма неудачной. К тому же, опасаясь всё же разболеться, решил не нагружать себя слишком сильно, а покататься спокойно и неспешно. Так и сделал. И почти не пытался ехать коньковым ходом.
Но каково же было моё удивление, когда финишировав и посмотрев в геотрекере статистику, я обнаружил, что средняя скорость в движении была всего лишь на 0.14 км/ч меньше, чем в прошлый раз. Отец объяснил это тем, что лыжня обледенела, поэтому, толкаясь двумя палками одновременно, на некоторых участках можно было набрать хорошую скорость, не особо уставая. В общем, в отличие от предыдущей прогулки, когда я укатался, в этот домой пришёл весьма бодрый и довольный! Правда, сейчас опять чувство, что не успеваю всё, что хотел сделать за день…

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

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