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

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


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

t.me/4x_pro

Лог жизни

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


Бестолковая неделя

4X_Pro
На прошлой неделе был биоритмический максимум. Успевал и framewokrом для сайта-каталога заниматься, и вернулся к изучению машинного обучения, и статью про «мир школы и мир улицы» начал писать (правда, пока только на бумаге), и разбирал задачи от позапрошлого Yandex.Cup в тренировочном режиме.
С понедельника снова снесло потоком жизни в сторону. Сначала сделал несколько задач по freelance, потом два дня вне дома из-за затмения и прогулки, а на следующий день — настолок. В четверг из-за жёсткого недосыпа ничего не мог делать, только избавился от последней задачи по freelance. А вчера получился какой-то день быта, и только вечером поиграл в Heroine's Quest.
Сегодня опять весь день в состоянии жёсткого недосыпа. Вчера вернулся к вопросу покупки компьютера. Изучал, можно ли под wine или Proton запускать нужные мне игры. Как выяснилось, можно, но чтобы работало нормально, нужно ставить закрытый драйвер от nVidia вместо nouveau, что мне не особо нравится. Ещё нашёл руководство по пробросу в виртуалку одиночной видеокарты, но для этого всё равно потребуется останавливать X Server, что мало отличается от перезагрузки. В общем, всё же вариант с отдельным компьютером только для игр и ноутбуком для работы и повседневных нужд кажется мне более привлекательным.
Вдруг ночью возникла мысль, а что если не покупать б/у, а собрать новый, но с процессором не самого последнего поколения (всё равно я принципиально играю в игры, которые вышли пять лет назад и более). Поизучал, что есть в продаже. Обнаружил, что есть процессоры 10100F и 10105F ценой 5.5 тыс рублей, и возникла мысль собрать конфигурацию на нём и видеокарте 1660 Super. Идея так меня захватила, что не мог уснуть до 8 утра, всё крутил её в голове!
Встал в ужасном состоянии, весь день ничего делать не мог (хорошо, хоть над душой не висит никаких внешних задач). Но когда просчитал конфигурацию со всеми комплектующими, воодушевление сменилось разочарованием: в итоге получилось 52 тысячи рублей. А чтобы уложиться в 45 (психологический верхний предел для «дополнительного» компьютера), нужно во-первых, отказаться от NVMe, во-вторых, взять совсем дешёвые и примитивные матплату и блок питания — те части, на которых экономить на самом деле не желательно.
В общем, вернулся к тому, с чего начинал ещё в августе: либо всё же новый мощный компьютер на 12400, и пытаться гонять игры под wine/Proton, либо покупка того самого б/у на процессоре 4771, смирившись с памятью DDR3, но в три раза дешевле. Все остальные варианты как-то радости не приносят. В итоге остаток дня смотрел видео по сравнению производительности DDR33 и DDR4 в играх. Судя по всему, разница не такая уж и большая — где-то 2-4 FPS в большинстве случаев.

Солнечное затмение и прогулка в Кусково

4X_Pro
Сегодня я третий раз в жизни наблюдал солнечное затмение. Вчера опасался, что будет облачно, и ничего не удастся увидеть, как это было в 1999 году. Но день выдался солнечный, небо было почти идеально чистым. Стал искать, что можно использовать в качестве светофильтра. Вспомнилось, что пару лет назад видел в Сети, как кто-то додумался использовать дискеты. Начал их искать, но безрезультатно: судя по всему, их увезли на дачу, где есть единственный компьютер с дисководом.
Пришлось включать ЧИ и искать другие варианты. 10geek вчера советовал использовать старую фотоплёнку, но её тоже найти не удалось. В какой-то момент я запаниковал, что время идёт, затмение уже началось, а я всё никак не найду ничего подходящего. К тому же из-за жёсткого недосыпа сложно было сконцентрироваться. В итоге нашёл старые солнечные очки и старый пузырёк из под одеколона из дымчатого стекла. Думал, что этого может оказаться достаточно (в 2008 году хватало трёх пар солнечных очков) и отправился на улицу. Но там ждало жестокое разочарование: даже через всё это свет был слишком ярким.
Пришлось снова возвращаться домой и искать другие варианты. В какой-то момент хотел даже мешок для мусора использовать. Но вместо этого остановился на другом варианте — пластиковом поддоне от овсяного печенья. Как это ни странно, помогло! Получилось разглядеть «надкушенный» солнечный диск. Но вот сфокусировать фотоаппарат на такое и сфотографировать не смог. С несколькими перерывами я наблюдал это до достижения максимальной фазы (если верить Wikipedia), потом отправился вынести мусор и вернулся домой.
Но пока наблюдал, решил, что в такой замечательный день золотой осени не следует сидеть дома. Решил съездить в Кусково. Увы, как всегда, пообедать и собраться заняло очень много времени. Из дома выбрался только около 16 часов, когда уже самая солнечная часть дня осталась позади. И всё же прогулка получилась отличной. У меня получилось уйти в себя, и как бы впустить внутрь красоту и спокойствие осеннего леса. Домой вернулся совершенно умиротворённый, хотя до этого несколько дней был какой-то беспричинно раздражительный. И даже в Welltory были весьма впечатляющие показатели: 79% энергии, что для вечера совершенно нетипично.

Первый шаг сделан

4X_Pro
Хоть и с некоторым опозданием, но сделал первый шаг по созданию своего frameworkа. Сделал его основной «скелет», позволивший запустить простейший Hello world. Правда, пока без каких-либо проверок корректности, обработок ошибок и т.п. Немного необычно реализовал идею environments — для каждой — свой каталог www-что-нибудь для точки входа, типа www-dev, www-prod, и в тамошнем index.php загружается нужный конфиг. Это сразу же и мультисайтовость
Решил не писать свой autoloader, а использовать готовый из composer в соответствии с PSR-4. И тут столкнулся с первой неприятностью: ему нужно, чтобы регистр букв namespace совпадал с регистром букв каталогов с файлами. Но namespaces принято писать с заглавной буквы, а каталоги — полностью строчными. И теперь опять оказался перед мучительным выбором: либо писать namespces со строчной типа \MLFW\routers\Default, то ли каталоги переименовывать, чтобы назывались с заглавной буквы. И то, и другое мне кажется неэстетичным. Можно, конечно, отказаться от PSR-4 вообще и сделать свой autoloader или прописать пути для всех namespaces второго уровня вручную, но это тоже какие-то кривые решения.
Узнал, что для типовых задач frameworkа — кеширования, логгирования, обрабтки событий и т.п. существуют стандартные интерфейсы, описанные в разных PSR. Хорошо, что это произошло сейчас, а не после того, как уже сделал бы свои.
Пока не могу определиться с названием проекта (каталога сайтов). По-русски я решил назвать его «Народный обозреватель каталог», но вот с названием репозитория и доменом под него всё сложно. Сначала рассматривал вариант narcat, но очень уж неблагозвучно. Пока остановился его pcatalog (от people's catalog).
Ещё была мысль создать ВК группу, в которой вести dev-блог, где описывать то, что делаю.

День определённостей

4X_Pro
Сегодня на связь вышла Kitsune. Её появление помогло мне определиться с некоторыми вопросами, которые не дают мне покоя в последнее время. Во-первых, с тем, на какой Linux переходить: Arch, Manjaro или Debian testing. Kitsune спросила, есть среди них тот, который мне бы просто нравился, без всяких соображений по поводу совместимости софта, идеологии НК и т.п. Ответ был простой: Manjaro. На что она мне ответила «ну вот его и ставь!». Потом зашла речь о покупке компьютера. Она удивилась, как я могу столько времени планировать и не покупать. Хотя ответ очень прост: покупка б/у для меня — действие новое, а поэтому страшное, из-за чего всё время откладывается.
Потом посоветовала проверить, не появилось ли на Авито что-нибудь новое. Я сначала думал, что за неделю ничего стоящего не появится. Но оказался неправ: нашёл интересный вариант с процессором 10-ого поколения (правда, i3) и вполне приемлемой матплатой на H-чипсете и даже с NVMe-разъёмом (но пустым, диски — только обычные SATA). Только вот цена такая, что опасаюсь, нет ли там подвоха. И ещё блок питания сильно не нравится. Но тем не менее, этот вариант кажется более перспективным, чем тот, который я рассмаривал ранее с процессором 4-ого поколения.
А ещё сегодня совсем было собрался сесть за написание своего frameworkа и скрипта для каталога. Но с подачи Evgа решил было посмотреть один готовый вариант под названием OsClass. Сначала он было мне понравился. Я насоздавал категории, вместо формата попытался было использовать свойство «местоположение». Но когда начал создавать сами сайты, оказалось, что делать это ну очень неудобно. Так что завтра всё же сажусь за свой framework.

Размышления о свободе

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 делай… (Но для этого опять пришлось бы отложить мои основные задачи — каталог сайтов и сообщество идеалистов).
А вообще, вся эта ситуация — отличный пример, почему я никогда ничего не успеваю…

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

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