Портрет 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
Как уже писал, никак не получается вернуться к своим проектам. Ни доделать релиз 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 км/ч меньше, чем в прошлый раз. Отец объяснил это тем, что лыжня обледенела, поэтому, толкаясь двумя палками одновременно, на некоторых участках можно было набрать хорошую скорость, не особо уставая. В общем, в отличие от предыдущей прогулки, когда я укатался, в этот домой пришёл весьма бодрый и довольный! Правда, сейчас опять чувство, что не успеваю всё, что хотел сделать за день…

Перебегал на лыжах

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

Глючный день и вспышки на Солнце

4X_Pro
Сегодня проснулся с беспричиннвм раздражением. Попытался настроить проброс локального сайта с движком для мобильного сообщества наружу, чтобы можно отлаживать внешнюю авторизацию через Яндекс.ID. Сделать это можно двумя способами: либо поднять Caddy и потом сделать port forwarding через один из своих VDS, либо через сервис TailScale в режиме funnel. Второе оказалось быстрее, хоть и требовало установки стороннего софта.
Потом пошёл гулять в Терлецкий парк. Прогулка особо не запомнилась, кроме пары моментов тишины и уединения... Плюс большую часть пути размышлял о том, что всё-таки было идеологически правильнее: пользоваться сторонним сервисом или настроить всё самому, пусть и провозившись дольше.
Вечером всё же почти сделал авторизацию. Но день всё равно какой-то глючный. К тому же не успел поиграть ни в Prince of Persia, ни в Arcanum, и не ответил на несколько сообщений.
А ещё творится какой-то кошмар с солнечными вспышками: прошлой ночью были две X1, а сегодня — вообще X6 (сначала как увидел, подумал приложение сглючило). Неужели они так на самочувствие влияют?

Осознал, чего хочу на уровне внутреннего состояния

4X_Pro
Недавно DarLik, нахватавшись идей Трансерфинга, задала мне вопрос: если конечной целью любой деятельности является то или иное внутреннее состояние, то к какому состоянию в итоге стремлюсь я? Поразмыслив немного, я понял, что это состояние можно описать так: чувство собственной значимости и компетентности. Того, что с моим мнением считаются, к моим словам прислушиваются, меня или сделанное мной обсуждают за пределами подконтрольного информационного пространства и на меня хотят быть похожим. Последнее, помимо всего прочего, даёт ощущение, что я «толкаю мир в нужную сторону», то есть вызываю изменения, которые считаю правильными.
И, собственно, уже давно хотел написать, что многие мои переживания связаны как раз с тем, что я ни в какой области такой компетентности не чувствую. Даже в старых компьютерных играх: многие даже весьма известные серии прошли когда-то мимо меня (например, Elder Scrolls или GTA или Civilization), к тому же попадалось немало людей, которые знают (и писали обзоры) на гораздо большее количество игр, чем видел я. Да и в других областях знания либо устарели из-за того, что меняется мир, либо просто подзабылись из-за долгого неиспользования.

Очередной снос потоком жизни

4X_Pro
И опять меня сносит потоком жизни. Третий день не получается заняться движком мобильного сообщества: в субботу снова ходил на игры (и игры получились классные), вчера — выбрался на лыжах с отцом (и откатал так же, как прошлый раз, даже очень незначительно прибавил в скорости), а сегодня слетел с режима и слишком поздно встал, а потом вместо движка стал возиться с цифровой подписью под Linux, хотя особо острой необходимости в этом не было. Скорее хотелось просто убедиться, что это реально может работать. В общем, классика жанра: сначала сильная мотивация, потом что-то отвлекает, потом не могу вернуться к начатому и хватаюсь за что угодно, кроме него. А итог — отсутствие результативности…

ЭЦП под Linux

4X_Pro
Разобрался с установкой софта для КриптоПро ЭЦП. Порадовало то, что есть версия и для Linux! Даже государство стало считаться с OS-меньшинствами! Причём установилось всё достаточно легко (если не считать того, что пришлось устанавливать несколько пакетов по отдельности, причём с соблюдением порядка). Правда, для получения квалифицированной подписи нужно либо покупать соответствующий USB Token и идти ногами в налоговую, либо подключать биометрию через банк (что мне как-то не особо нравится).
Добавлено позже: как оказалось, не всё так просто. При попытке отправить запрос на ЭЦП оказалось, что нужен броузер, умеющий работать с шифрованием по ГОСТ. Как выяснилось, их существует всего 2 штуки: chromium-gost (который у меня не установился из из-за конфликта с Iron) и Yandex.Браузер, в котором ещё должно стоять соответствующее дополнение. Пришлось повозиться ещё немного. Сейчас почти всё работает. Только вот действующая подпись у меня облачная (т.е. нельзя получить закрытый ключ) и выдана на физическое лицо без указания ОГРНИП.
Но тем не менее, хотя бы разобрался, как всё это делается. Теоретически, теперь мог бы подрабатывать настройкой этого дела, но это нужно ездить по конторам, которые в этом нуждаются, а ездить я не хочу…

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

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