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

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


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

t.me/4x_pro

Лог жизни

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


Непредсказуемы пути Сетевые

4X_Pro
Удивительно, насколько может быть непредсказуемым Сетевой путь, и как далеко может завести!
Сегодня залез на один клиентский сайт, где нужно было разобраться, почему часть категорий выводится в боковом списке, но не выводится в основном на главной. С установленной там CMS я дела имел мало, модулей в ней много, поэтому быстро стало ясно, что искать код, отвечающий за вывод списков, методом тыка — совершенно неэффективно. Захотел прибегнуть к испытанному средству — зайти по SSH и сделать рекурсивный grep по известному куску HTML-кода. Но пароль от сайта я, естественно, не помню, искать его лень. Жалею о том, что в Filezilla не сделали встроенный терминальный клиент, чтобы можно было сразу подключиться по SSH с теми же логином/паролем/ключом.
Потом вспоминаю, что уже давно собирался поискать альтернативу Filezilla, которая бы использовала GTK вместо Qt, и решаю, что это время пришло. Начинаю поиски. С удивлением обнаруживаю, что SFTP-клиентов под Linux на удивление мало. Наконец, на глаза попадается некий Muon, бывший Snowflake. Оказывается, что он написан на Java. Это плохо, но не смертельно. Качаю deb-пакет, ставлю, запускаю. Подключаюсь к личному серверу, вроде всё хорошо, но что-то не так. Через некоторое время понимаю, что именно: панель с файлами на сервере — слева, а не справа, как у всех нормальных FTP-клиентов. (Интересно, автор — левша или просто человек с альтернативным мышлением?) Лезу в настройки и пытаюсь найти, как поменять. Через какое-то время получается на правой панели открыть удалённые файлы, но вот локальные на левой — так и не получилось. Вдвойне обидно, так как в остальном приложение меня вполне устраивает (кроме мелких глюков в юзабилити): есть и терминал, и встроенный редактор, который позволяет редактировать файлы без подтверждения «загрузить изменённый файл» после каждого сохранения, что очень надоедает в Filezilla.
Решил глянуть исходный код на случай, можно ли это как-то быстро исправить. Тут должна быть история про то, как плохо зная Java, я решил найти по ней курсы, чтобы выучить нормально. Нормальных бесплатных не нашлось, поэтому решил сделать свои, и т.д. и т.п. Но нет, до этого всё же не дошло! Потратив где-то час, в итоге нашёл в коде нужное место! А заодно и там же увидел возможность исправить мелкий баг — на панели с локальными файлами открывается всегда домашний каталог, даже если в настройках соединения задан другой.
Потом выяснилось, что для пересборки нужен maven (это аналог composerа в PHP или cargo в Rust). У меня он, конечно же, не был установлен, пришлось ставить (попутно сожалея о том, что опять захламляю систему). Поставил, запустил компиляцию (а в Java это процесс не быстрый) — ошибка. Оказывается, поменяв местами правую и левую панели, я забыл исправить типы создаваемых классов. Компилирую ещё раз, запускаю, подключаюсь к серверу, и о чудо: панели располагаются как надо!
Но тут обнаруживается другое: с GitHub я скачал более новую версию, в которой отключили встроенный редактор и добавили тот самый запрос на перезапись файла, который так бесил меня в Filezilla. Ещё добавили постоянный запрос пароля от ssh-ключа, что очень раздражает. В общем, развитие программы пошло куда-то не туда. Прямо хоть fork делай… (Но для этого опять пришлось бы отложить мои основные задачи — каталог сайтов и сообщество идеалистов).
А вообще, вся эта ситуация — отличный пример, почему я никогда ничего не успеваю…

Решил проблему с внешним монитором

4X_Pro
Сегодня сделал большой шаг вперёд — сделал обходное решение для проблемы с внешним монитором при загрузке Linux (ноутбук в этом случае отправлял внутреннюю панель в какой-то кривой режим энергосбережения, из-за которого Linux не мог определить корректно её разрешение). Теперь смогу наконец-то начать пользоваться более новыми ядрами, а не сидеть на 4.4, которое могло хоть как-то грузиться в такой ситуации. Вообще, к этому решению я подходил ещё в августе, но тогда шёл обратным путём: пытался выключать внутреннюю панель ноутбука через systemd при наличии внешнего монитора. В этот раз сделал наоборот: внутреннюю панель сначала выключаю через параметр командной строки (video=eDP-1:d), чтобы не мешала грузиться, а потом включаю обратно уже через скрипт, запускаемый в systemd. Теперь ноутбук загружается нормально и с подключенным внешним монитором, и без него. Только вот без «костылей» не обошлось — в скрипте в systemd unit пришлось ставить sleep 1, иначе скрипт запускается до момента, когда в /sys/class/drm появятся нужные файлы. Так что теперь осталось определиться, на что обновляться/переходить.

+1 курс на Coursera!

4X_Pro
Закончил прохождение курса «Повествование и влияние: Эффектная коммуникация» на Coursera. Курс весьма понравился, узнал много интересного! Правда, с практической точки зрения вряд ли пригодится. С моими заваленными 5 и 8 уровнями ТУАИ сложно подобрать интересные истории по теме выступления и настроиться на конкретную аудиторию с её целями и интересами. Да и вообще речевая деятельность в оффлайне слишком много ресурсов мозга съедает. (Сейчас написал это и задумался, а не может ли одно быть связанным с другим.) Но, по крайней мере, узнал, как это работает у тех, у кого таких проблем нет.
А ещё важно то, что с этим курсом я как-то преодолел свою проблему с регулярностью. Это заставило меня задуматься, почему же в этот раз не получилось как всегда: начал что-то, потом снесло потоком жизни, а потом не смог вернуться. Дело в регулярных напоминаниях на планшете? Или в том, что в каждой неделе объём информации был не такой уж большой, поэтому казалось, что можно легко справиться и незачем откладывать? Или просто выдался период затишья, когда не было «уплотнений жизни» и достаточное количество времени сидел дома? Хотя вроде тоже не особо верно…
Но вообще, конечно, для того, чтобы чувствовать удовлетворение от жизни, нужно проходить не один курс в год, как сейчас, а хотя бы один в два месяца. Но без ответа на вопрос выше это вряд ли получится…

Наконец-то хорошие новости

4X_Pro
Никак не могу определиться, как быть с frameworkом для своих проектов. Вчера даже расклад на Таро сделал. Но постепенно склоняюсь к тому, чтобы всё-таки делать свой framework, возможно, с использованием готовых библиотек для некоторых типичных действий, например, migrations. Но пока до состояния «определиться, сесть и начать писать» не доходит. С другой стороны, вспоминаются слова Лугаира Громового Камня из игры Arcanum о том, что он проводил человеческие жизни в процессе выбора всего лишь узора для украшения стены. Вот это я понимаю, правильный подход, ориентированный на вечность, а не сиюминутное!
Но вообще, начался период хороших новостей. Во-первых, узнал, что снова доступен GeForce Now. И этой ночью после долгого перерыва поиграл в World of Tanks и Ведьмака. (И снова задался вопросом, нужно ли мне покупать мощный компьютер, если есть облачные игры, а для WoT и игр попроще достаточно б/у.) А вот в Path of Exile мой аккаунт, судя по всему, удалили за неактивность. По крайней мере, так и не смог ни войти, ни восстановить пароль от него.
Во-вторых, недавно удачно откупил акции банка СПб, которые продал летом в ожидании, что дивиденды отменят. Но их не отменили, так что даже после гэпа они стоили 92 рубля, тогда как продавал я по 90.1. И я уже думал, что всё, придётся смириться с тем, что я остался без этих акций. Но теперь удалось где-то по 75.8, что оказалось даже выгоднее дивидендов (они были 11,81 руб).
Ещё сегодня снова вышла на связь Melany Tale. С одной стороны — решила вопрос с оплатой подвисших freelance-задач. Но с другой — появились новые, так что опять может получиться как всегда: от своих проектов отвлекусь, а потом не вернусь или вернусь не скоро.

Решил вопрос с Web IDE

4X_Pro
Кажется, решил для себя вопрос с Web IDE на случай, если нахожусь за чужим компьютером. Во-первых, в GitHub есть встроенная IDE, её можно вызвать, нажав точку на клавиатуре в нужном своём репозитории. Но работает весьма медленно из-за того, что сервера GitHub находятся далеко, и нет возможности выполнять отладку.
Во-вторых, есть замечательный сервис GitPod, позволяющий открывать репозитории с GitHub и GitLab и заниматься разработкой полноценно, с возможностью запуска приложения в терминале и даже установкой MySQL. Правда, на месяц дают всего 50 часов. Но для ситуации, когда большая часть разработки делается со своего компьютера, а GitPod — это резервный вариант, этого вполне достаточно.
Теперь осталось самое главное — приучить себя пользоваться git в постоянном режиме, чтобы код всегда был на GitHub, а не только для выкладывания окончательных релизов.

Заметка в Instagram от October 08, 2022 at 09:53PM

4X_Pro
Впервые после возвращения из Ярославля выбрался на длинную (10 тысяч шагов) прогулку в Измайловский парк к Лебедянскому пруду. Как всегда, прособирался слишком долго, из-за этого упустил самую солнечную часть дня. До пруда дошёл уже когда солнце стало клониться к закату. И всё же удалось увидеть красоту золотой осени!
А ещё такая прогулка очень способствует размышлениям. Впервые задался вопросом, почему в любом оценочном споре в Интернете я принимаю систему оценивания противника «что есть хорошо, а что — плохо» как более весомую, чем моя собственная. Естественно, это даёт противнику существенное преимущество. Причём это остаётся верным, даже когда я сам не участвую в споре, а только наблюдаю со стороны, если позиция одной из сторон близка к моей позиции, а вторая, наоборот, противоположна. Но вот ответа, увы, пока не нашлось.
Зато прогулка прибавила бодрости и какой-то собранности!
#измайловскийпарк #лебедянскийпруд #золотаяосень #осенняяпрогулка #размышления

Смотреть все фото

Домены и экономия

4X_Pro
Так сложилось, что больше всего моих доменов заканчивается в ноябре. В основном, это домены соционических проектов, которые я регистрировал в далёком-далеком 2008 году. Тогда и денег было не жалко, и стоили они всего по 89 рублей. Потом наступил кризис 2014 года, и регистраторы стали считать партнёрские тарифы не по сумме всех совершённых платежей, а по обороту за последний год. Тогда я перенёс домены к Reg.Ru, чтобы в обороте учитывались платежи и за домены, и за хостинг. Какое-то время это было терпимо, но потом регистратор пошёл ещё дальше: стал считать партнёрский тариф не за год, а за полгода. А в первой половине года у меня доменов мало (по-моему, только 4xpro.ru, xxxxpro.ru, openproj.ru и socionics.me). И получается так: на вторую половину года устанавливается более дорогой тариф, и приходится продлевать домены по нему. А на первую — более дешёвый, но доменов слишком мало, чтобы этим воспользоваться.
В итоге задумался над вопросом, нельзя ли продлевать дешевле. Решил уйти в beget.com, там продление стоит всего 289 руб вместо 450 в Reg.Ru на моём тарифе. (UPD: как выяснилось, если доменов будет 11 и больше — то и ещё дешевле, так что сейчас нужно готовить вторую волну переноса.) Но оказалось, что перенос — платный и стоит 150 руб. В итоге экономия составит в этот год всего 11 рублей… Но тем не менее, перенос я всё же начал. Возни, правда, очень много: на Beget нет пакетной операции по приёму, для каждого домена приходится вводить Auth-код передачи, паспортные данные и подтверждать через Email.
Но в любом случае, вот в чём позитивная сторона кризиса: он заставляет искать варианты экономии там, где прежде было желание отмахнуться «ну и ладно, это несущественно».

Бессоница и возвращение к давнему проекту

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

Русофобия в IT

4X_Pro
Позавчера наткнулся на CMS под названием Concrete5. CMS мне понравилась, поэтому закинул ссылку на неё в раздел «Интересные материалы», откуда она автоматически ушла на Lor.sh. Вчера захожу на Lor и вижу два негативных комментария к этой записи, в одном из которых утверждается, что в CMS есть закладки от ФСБ. Удивившись, прошу кинуть ссылку, откуда это стало известно. На что получаю просто эпичный ответ: «если у этого официальный сайт в зоне .ru, значит, это говно, с которым не стоит связываться». Сначала попытался ответить этому придурку на тему необоснованных обобщений, потом просто его забанил.
Но это — не единичный случай. На Хабре в комментариях от всяких privacy-озабоченных что-то подобное я видел не раз, и по отношению к доменам в зоне .ru, и по отношению к хостингу на территории России. Один тип вообще рассказывал о том, что ВЕСЬ траффик гоняет через свой VPN-сервер в Финляндии. Я даже хотел его потроллить на тему «и как играется с таким pingом в какой-нибудь CS, Quake или WoT». Эх, надеюсь, что подобные личности свалят сейчас за границу, а обратно если их и будут пускать, то только со штампом «Враг народа» в паспорт и отношением как к гражданину 6-ого сорта в последующем.

Момент истины или снова дома

4X_Pro
Сегодня закончилось Отселение 3.1, и я вернулся домой! Наконец-то смогу нормально выспаться!
А ещё наступает момент истины: пришло время принимать решения по ряду вопросов. Во-первых, как быть с покупкой компьютера — покупать новый, покупать б/у или вообще убедить себя, что ещё год-два обойдусь без обновлений. Во-вторых, по операционной системе — переходить на Manjaro или Arch или нет. Ещё допускаю вариант перехода на Debian testing, где всё почти как в Ubuntu, но софт достаточно новый. Но с другой стороны, без rolling release это будет временное решение, и через несколько лет снова начнутся проблемы с устареванием. В-третьих, если переходить, то какую файловую систему использовать — остаться на ext4 или перейти на NILFS (которая мне субъективно кажется существенно более быстрой, хотя, возможно, это верно только для флешек) или вовсе на brtfs. Кстати, про последнюю попалась статья, что в Linux 6.1 она даёт очень ощутимый прирост производительности.
Ещё кручу в голове идею поднять где-нибудь какую-нибудь Web IDE, чтобы иметь возможность работать над своими проектами с любого компьютера, даже чужого. А также поднять файловое облако на NextCloud для хранения файлов вместо синхронизации скриптом через rsync, как сейчас. Но тут всё упирается в то, можно ли поставить лимит на размер синхронизируемых файлов.

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

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