Портрет 4X_Pro
Был в Сети 24 авг. 2025 г., 01:15
Мультиблог
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

Вчера долго спорили с Tellой по идейным вопросам. В итоге выяснилось, что большая часть наших разногласий сводится к следующему. Я изначально занимаю жёсткую позицию Я+Вы- относительно способности большинства окружающих делать разумный и адекватный выбор, «жить по уму». (Хороший пример этого — существование всякого «инфоцыганства».) Поэтому считаю, что изначально свободы у каждого должен быть миниумум, но должен быть способ её заслужить через прохождение каких-то испытаний. Соответственно, в конечном итоге должно получиться иерархическое общество с несколькими уровнями гражданской свободы/ответственности. Tella же придерживается позиции, что от нарушения равенства и ограничения свободы вреда больше, чем от злоупотребления ею. А если кто-то употребляет данную свободу себе во вред (именно себе, а не окружающим), то это его проблемы.
А сегодня возникла мысль, что такие позиции — это прямое следствие дихотомии «аскет/жизнелюб». Для меня как аскета неприемлем напрасный расход ресурса (пусть даже и чужого), а для неё это не столь важно.

Неожиданность от Тинькофф

4X_Pro

Сегодня случайно обнаружил, что у меня каким-то образом 6 октября подключился «Тинькофф Pro». Непонятно, то ли сам я не туда нажал по невнимательности и включил, то ли это самодеятельность банка. Первые два месяцам там бесплатные, так что решил пока подержать и отключить только первого декабря, поскольку это даёт удвоенный процент на остаток по карте. Теперь, главное, об этом не забыть. Даже поставил себе напоминание в мобильнике на всякий случай (тот редкий случай, когда я вспоминаю об этой функции).

Непростой выбор дистрибутива

4X_Pro

Сегодня большую часть дня занимался тем, что гонял разные benchmarks под Manjaro, Arch, загружаемыми с флешки и установленным на диске Mint. Всё началось с того, что однажды на YouTube попалось видео, где утверждается, что дистрибутивы на основе Ubuntu, сильно проигрывают Arch-подобным по пропускной способности кеша. Проверил это у себя с помощью pts/cachebench, но нет — разница составила чуть меньше 1%, но таки Arch и Manjaro быстрее (между собой у них расхождение на 0.1% где-то).
Потом решил потестировать пропускную способность памяти в целом. И вот тут разница куда серьёзнее: до 33%. Интересно, с чем это связано? То ли просто под Mint ядро старое (4.04) и хуже оптимизированное, то ли я начудил при его компиляции. На всякий случай даже дважды померил, но результат тот же самый. По-хорошему, нужно бы поставить стоковое из дистрибутива и перетестировать на нём, но как-то мотивация на все эти измерения уже заканчивается.
Также попытался искать чужие сравнения производительности Manjaro и Arch, но ясности это не добавило. В большинстве случаев разница в пределах погрешности. Но нашёл видео, где Manjaro устойчиво проигрывает (хоть и немного) чистому Arch и endeavourOS.
И теперь никак не могу определиться: что для меня важнее. Либо поставить дистрибутив, который условно будет считаться более быстрым, а также лучше соответствующим идеологии Настоящего Компьютерщика. Либо поставить систему, которой можно пользоваться из коробки и сэкономить кучу времени на настройке и подборе софта, но потерять какую-то долю производительности (и, самое главное, убеждение, что я выжал из своего «железа» всё, что можно).

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

4X_Pro

Ловлю последние дни золотой осени. На этот раз ненадолго выбрался в Терлецкий парк. Из-за выходного дня было многолюдно, но тем не менее, прогулка получилась весьма приятной. Вернулся домой с каким-то чувством внутренней наполненности и внутренней гармонии.
#золотаяосень #осень #листьяжелтые #листья #деревья #терлецкийпарк

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

День вторых мест

4X_Pro

Вчера с подачи Ал.С. решил было снова выбраться на настолки — снова сыграть в «Остров кошек». Но сегодня всё пошло наперекосяк. Проснулся очень поздно и полузаболевший. В какой-то момент хотел даже написать, что не приду, но всё же не стал. Да и поездка до места (а это снова был ЗИЛ) тоже прошла не очень хорошо. Казалось, что мир изо всех сил сопротивляется тому, чтобы я на эти игры попал. Я уже стал ожидать, что на играх случится что-то совсем плохое. Но на удивление обошлось, если не считать того, что было совсем шумно, и нам пришлось перебраться на четвёртый этаж вместо того места, где сидим обычно.
Сначала быстро сыграли в «Каркассон» на пятерых. Я занял второе место, а Ал.С. вырвалась вперёд почти на 50 очков, удачно разыграв поля и присоседившись к одному моему городу. А в «Кошек» я на этот раз занял второе место с отрывом от победительницы в 11 очков. В этот раз вроде удалось найти баланс между накоплением и тратой ресурсов, за исключением второго раунда, где взял на одну кошку меньше, чем мог бы — набрал слишком мало временных корзин. Когда это осознал, попытался было разыграть карту, позволяющую получить две дополнительные, но без толку: пришло совсем не то. Зато на последнем раунде разыграл весьма сложную и неожиданную для всех комбинацию. Но в итоге у победительницы — М.Сб. обошла меня по трём параметрам: у меня было четыре разных семейства по 3-4 кошки, у неё — одно огромное, она не заполнила только одну каюту, а я — две (плюс ещё -5 очков за крыс). При этом я планировал вырваться вперёд по картам заданий, но и по ним она проявила себя неплохо. Остальные участницы отстали очень сильно (49 и 47 очков соответственно).
В общем, домой возвращался вполне довольный тем, что выбрался. Даже несмотря на то, что по сути, из-за игр весь день прошёл мимо, и больше я ничего не успел. Хотя нет: ещё успел запустить процедуру переноса доменов на Beget.

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

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, а не только для выкладывания окончательных релизов.


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

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