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

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


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

t.me/4x_pro

Лог жизни

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


Насыщенный день

4X_Pro
Сегодня день получился очень насыщенный. Началось всё с того, что без видимых причин я встал в 9 утра, что очень рано по моим меркам, но при этом относительно бодрый. Воспользовавшись ранним подъёмом, отправился играть в Ведьмака через GeForce PlayNow, так как в это время почти нет ожидания в очереди. Обследовал там один остров с разрушенной башней и потом выполнил один второстепенный квест.
После стал дочитывать серию статей про протокол QUIC. Из одной из них узнал, что в TLS 1.3 время установки соединения меньше, чем в предыдущих версиях за счёт того, что происходит всего один обмен данными (round trip), а не два, как раньше. Стал проверять, можно ли включить его у меня на socionics.me, но оказалось, что там слишком старая версия OpenSSL. А вот на сервере Corsico всё получилось сразу без проблем. Правда, оценить ускорение на глаз достаточно трудно.
Потом 10geek рассказал мне про интересный проект DevDocs.Io, где вся документация для разработчиков собрана в одном месте, и самое главное, есть возможность выгрузить её в оффлайн, но так, что при этом будет работать поиск. В общем, для людей вроде меня, которым для сосредоточенности нужен оффлайн, — это отличное решение! Выгрузил документацию по Python, PHP, NGinx, Apache, HTML, CSS. Главное только не забыть о его существовании.
Затем наткнулся на упоминание о приложении GCam, которое Google делал изначально для своих смартфонов Pixel, и в котором вроде бы фото получаются гораздо лучше за счёт постобработки с помощью машинного обучения. Стал выяснить, можно ли поставить её на мой мобильник. Оказалось, что да, но со стороннего сайта. Поставил, испытал дома, но первое впечатление было не очень. Цвета более насыщенные, но в доме — немного неестественные. И чёткость фото вроде бы хуже. Но вот снимки природы, может быть, будут лучше (так как 10geek показывал, как можно «вытянуть» постобработкой даже те, что я снимал встроенным приложением). И, главное, возможностей настройки побольше, а то встроенное приложение совсем уж примитивное.
Потом Tella уговорила поехать в одно кафе в районе Курской с очень БСной обстановкой. Я от этой идеи был не в восторге, тем более уже тогда начинал сказываться недосып. Добрались без приключений. Оказывается, за Курским вокзалом есть очень необычный район, где я прежде никогда не был. В самом кафе не нашлось свободных мест. Я предложил взять что-нибудь с собой и пойти куда-нибудь ещё, но Tella настояла на том, чтобы дождаться, когда места освободятся. На это ушло более получаса. Потом заказали еды: я взял себе бургер, Tella — суп в тыкве и какао, которое подавалось в виде шара из бельгийского шоколада с маршмеллоу внутри. Было весьма вкусно, но жутко дорого.
После этого мы решили прогуляться по городу — дойти до Таганской. Но увы, идея оказалась не очень:  и погода не способствовала прогулке, и Tella после коронавируса ходит очень медленно. Из-за этого очень устала спина, и путь домой был настоящим кошмаром. Но зато во время прогулки испытывал GCam в режиме ночной съёмки. Результат противоречивый: с одной стороны, вроде детализация снимков гораздо лучше, чем обычной камерой, с другой — шумы всё же очень даже видны.
Остаток дня отлёживался, приходил в себя и писал эту и предыдущую заметки. Увы, несмотря на желание лечь пораньше и наладить режим, опять не получается это сделать.

«Остров кошек» и расталкивание задолженностей перед жизнью

4X_Pro
В субботу удачно сходил на настолки. Один раз сыграли в «Роскошь», где я наконец-то оказался не на последнем месте, а на предпоследнем. Но зато наконец-то почувствовал, как нужно выстраивать долгосрочную стратегию. А то прежде набирал ресурсы по жадному алгоритму — чтобы получить ту карту, для которой нужно меньше всего жетонов прямо сейчас.
Затем Ал.С. собрала всех на игру «Остров кошек», с которой она недавно зафанатела. Вникнуть в правила игры достаточно непросто, так как нужно понять, когда кто что делает. Хотя когда понимание пришло, игра становится простой. Главное — не путаться, что на каком шаге делать. Но пока разбирались, времени прошло очень много, и из положенных пяти раундов успели отыграть только неполные три. И по-моему, все закончили с отрицательными результатами. Но всё равно, с нетерпением жду, когда сыграем снова.
Вернувшись домой, снова засиделся до глубокой ночи. В воскресенье встал с трудом и поздно. Зато остаток дня потратил на то, чтобы разобраться с «задолженностями перед жизнью»: доделал всё, что оставалось по freelance-деятельности и теперь могу почувствовать себя свободным человеком. А ещё сходил на выборы, так как подать вовремя заявку на участие в электронном голосовании не смог. И наконец-то вернулся к книжке по файловым системам. Ещё немного и её дочитаю.

Образовательные сны и прогулка

4X_Pro
В последние дни с самочувствием творится что-то странное. В ночь со среды на четверг отлично отоспался, показатели Welltory были просто великолепные. Но день прошёл куда-то мимо, а под вечер возникло ощущение какой-то липкости сознания. Ни на чём не мог сосредоточиться. Причем Welltory вечером показывала вполне приемлемые результаты, то есть дело было не в переутомлении. В пятницу ситуация повторилась (только показатели Welltory были вполне типичные).
Ещё уже третий день подряд снятся сны на образовательную тематику. Сначала — вполне типичный сон про то, что прошло уже полсеместра, а я никак не мог определиться с предметом по выбору, и в итоге прогуливал их. В конце концов выбрал какой-то дополнительный курс математики, пришёл взять задание, а преподавательница продиктовала его очень быстро и нехотя, и я не успел записать. А повторять — не стала. Хотя вот что необычно: как решать — знал (и даже сейчас помню, что нужно было записать систему уравнений), но вот из-за того, что не успел записать точно, понимал, что задание сделать не могу. И из-за этого проснулся.
Второй сон был интереснее. Мне приснился, если так можно выразиться, «антилицей» — учебное заведение, которое было противоположно лицею 1502. И я шёл туда с радостью и интересом. И даже когда вдруг возник конфликт с кем-то из учеников, это тоже как-то быстро решилось. И помню, что в конце сна была фраза «в нашем лицее на бывшей Марьинской улице вражды не бывает» (тут я задумался, когда это Марьинскую улицу успели переименовать и почему, и от этого проснулся). Оффтоп: интереса ради проверил по Яндекс.Карте, оказывается просто Марьинской улицы в Москве нет, есть только Большая Марьинская, причём в район проспекта Мира, а не Марьино, как можно было бы предположить из названия.
Третий сон был про Институт. Там я должен был сделать две лабораторных работы то ли по физике, то ли по электротехнике. Первую сделал, но там возникли какие-то проблемы с защитой (эх, напоминает реальную ситуацию с химией в Первом семестре). А во второй всем достались нормальные лабораторные установки, которые были именно такие, как в описании работы, а мне — вроде похожая, но немного другая и без каких-либо обозначений, по которым можно было бы понять, что куда подключить. И главное, спросить не у кого и помочь никто не может. В итоге когда проснулся, испытал огромное облегчение по этому поводу.
А проснувшись, увидел, что за окном отличный день, и решил выбраться на прогулку в Измайловский парк. Обычно предпочитаю не гулять в выходные, но подумал, что у моста над Серебрянкой в самом центре парка народа будет немного. Как выяснилось, я был не совсем прав: народа даже там хватало. У моста увидел, что вдоль реки протоптана достаточно хорошая тропинка по левому берегу реки, который прежде был достаточно диким. Пошёл по ней вверх по течению, и добрался до места напротив устья Косинского ручья. Но увы, ничего особо интересного на том берегу нет, лучше бы пошёл по правому — смог бы посмотреть и ручей. Взял с собой фотокамеру сэра Мика, попробовал снимать ей, но результаты на компьютере пока ещё не смотрел.
В общем, прогулялся неплохо, разгрузил голову как следует, повспоминал прошлое, в частности, 2002—2003 годы, когда Серебрянка была для меня своего рода убежищем от постоянно висящих над душой «надо» и страха не успеть вовремя. Местом, где я чувствовал себя по-настоящему свободным. Самочувствие вроде улучшилось, больше нет той липкости. Сейчас испытываю некоторый внутренний подъём и хочу даже выбраться на настольные игры ненадолго!

Свой сайт или сообщество?

4X_Pro
Продолжаю сидеть на Яндекс.Кью. С одной стороны, узнаю немало интересного — реализую ту самую ценность Познания, о которой писал на странице «Обо мне». С другой — переживаю по поводу того, что этот процесс Познания весьма бессистемный, и большая часть узнанного, в общем-то, нигде и никак мне не пригодится. В общем, извечное моё противоречие: с одной стороны, негативно отношусь к вопросу практической полезности, ибо не хочу быть похожим на «ускорителей жизни», с другой — не могу полностью его игнорировать…
Также задумался над тем, что Яндекс.Кью во многом напоминает то, каким я хотел бы видеть своё сообщество идеалистов Интернета. И из-за этого снова начал переживать, не зря ли я пытаюсь сделать что-то своё, что будет слабым подобием того, что сделано таким крутым игроком как Яндекс, превзойти которого даже самому талантливому одиночке малореально. (Кстати, это навело на очередной вопрос для Кью: где может реализоваться одиночка, для которого работа в команде неприемлема.) Из-за этого снова задумался над вопросом, а не попытаться ли сделать своё сообщество на Кью в ближайшее время вместо того, чтобы ждать неизвестно сколько, когда я допишу MLCE.
Правда, сайт идеалистов Интернета я рассматривал как место единомышленников с широким кругом тем по общению, а на Кью уместным будет несколько другой, более узкий формат, который я назвал «Жизнь по уму». Сегодня даже набросал контент-план и попытался сформулировать, что же в эту самую жизнь по уму входит. (Подсказка для знающих типологии: внеценностные ЧС и БИ, высокая Вечность и 6 ТУАИ — наше всё).
Но с другой стороны, опять возникает вечная дилемма: что круче — быть владельцем малоизвестного, но полностью своего сайта или же администратором более многолюдного сообщества на чужой площадке. Второй момент — это свой сайт был бы местом единомышленников, точнее, людей со сходной системой ценностей, тогда как сообщество в Яндексе — всё же в меньшей степени. Третий — на своём сайте я могу реализовать идеи по созданию самоуправляемого сообщества, тогда как Кью управляется с помощью традиционной модерации нескольких уровней. Ну и последнее — мне категорически не нравится, как Яндекс принуждает к использованию оффлайнового имени. (Кстати, я из-за этого не могу комментировать ответы и опросы.)

Вторая прививка прошла тяжелее

4X_Pro
Мда, вторую прививку я перенёс гораздо тяжелее. Ночью температура поднялась до 38.4 и держалась так почти десять часов. Спал урывками по часу. В итоге день прошёл мимо, только сейчас начинаю приходить в себя. Но голова соображает плохо, всё раздражает, и ещё усталость сильная…

Непростое обновление, превратившееся в бессонную ночь

4X_Pro
Вчера договорились с corsico заняться обновлением его сервера. Планировали поставить версию PHP 7.x. Заранее протестировали код на временном сервере, и я думал, что всё пройдёт достаточно легко и просто, за час-полтора справлюсь. Но не тут то было! Типичное обновление превратилось в весьма непростой IT-квест.
Первая неприятность вылезла уже в пакетном менеджере: он не хотел ставить никакой новый софт и выдавал кучу непонятных предупреждений на все пакеты. После более тщательного изучения вопроса оказалось, что предупреждения безвредны (просто слишком старая версия apt), а работать он отказывается из-за неудачных предыдущих попыток поставить PHP 7.3. Применив force-директивы dpkg, я удалил остатки этого пакета, после чего заработал apt update и появилась возможность поставить более новый софт, включая PHP 7.4.
Казалось бы, всё хорошо, ещё немного и всё заработает. Но увы: PHP 7 потребовал обновления Apache до 2.x. Поставил, попытался запустить, и тут ошибка: не удаётся инициализировать генератор случайных чисел. Первая реакция — «чё?». После непродолжительного поиска выясняется, что это из-за старой версии ядра. Делаю apt update && apt upgrade. Вижу, что обновляется почти вся система (причём часть пакетов появляется в предлагаемых к обновлению не сразу, а после повторного выполнения команды), в том числе и ядро. Становится ясно, что нужно перезагрузиться, но и у меня, и у corsico по этому поводу были самые нехорошие предчувствия.
corsico связался с датацентром, на всякий случай запросил доступ по KVM. Те предоставили, и мы отправили сервер на перезагрузку. Как выяснилось, это было очень правильное решение: после перезагрузки сервер перестал пинговаться. Зайдя по KVM, я увидел, что загрузка оборвалась на этапе запуска GRUB, который ушёл в rescue mode. Причём GRUB все диски видел, но при попытке подцепить модули normal и linux выдавал ошибку missing symbol или что-то подобное. По всей видимости, он обновился но криво.
Стало ясно, что дело попахивает крупными неприятностями: чтобы восстановить сервер, нужно загружаться со стороннего носителя. Но сервер стоит далеко, ночью к нему не факт что пустят, а время идёт, сайт недоступен, пользователи паникуют. Тут я обратил внимание, что в меню KVM-приложения есть пункт для монтирования ISO-образов CD-ROM. Сначала даже не поверил, что это сработает: слишком уж фантастичным это казалось: грузить физический сервер с виртуального диска. Срочно скачала Puppy Linux и отправил сервер в перезагрузку. Следующая пара минут прошла в напряжённом ожидании. Время тянулось очень медленно… И всё же экране возникло изображение загрузочного экрана Puppy. Вот оно, спасение!
Загрузка длилась очень долго. Видимо, виртуальный CD-ROM работает медленно. Но вот появилась GUI (выбрать текстовый вариант загрузки я на эмоциях не сообразил), я запустил терминал и напечатал долгожданное grub-install /dev/sdb. И вроде даже сработало, но вывод сильно отличался от обычного и выдалось сообщение, что какого-то пакета не хватает. Было опасение, что что-то опять пошло не так.
Снова перезагрузка. На этот раз grub запускается в нормальном режиме, но вместо меню показывает свою командную строку. Пытаюсь ещё раз загрузиться в Puppy в надежде, что получится доустановить недостающие пакеты и сгенерировать нормальный конфиг, но упираюсь в то, что IP-адрес и прочие параметры нужно настраивать статически. IP-адрес я знаю, а вот шлюз, DNS и прочее — нет. В итоге отказался от этой затеи, вместо Puppy решил загрузиться с образа Ubuntu mini. Увы, тот просто не увидел /dev/sdb, возможно, из-за того, что там используется RAID-контроллер.
Делать нечего, пришлось снова перезагрузиться и в командной строке GRUB вводить вручную команды root, initrd, kernel. Точных имён файлов я, естественно, не помнил (иначе бы не стал заниматься всеми этими сложностями с повторной загрузкой Puppy и Ubuntu Mini). Но оказалось, что GRUB умеет делать автодополнение имён по Tab. Это меня и спасло!
Вроде бы процесс загрузки начался, но длился он недолго. Дальше я попал в оболочку busybox, запущенную с initrd. Пытаюсь монтировать диск, но безрезультатно: пишет path not found (точное сообщение уже не помню). Минут 20, наверное, ломал мозг, как такое может быть: вот он, файл /dev/sdb2, на него можно cat даже сделать (заглючив в процессе терминал), но вот mount его не видит. Потом оказалось, что дело было не в этом. Нужно было явно указать тип файловой системы. После этого наконец-то всё смонтировалось и загрузилось.
Первым делом побежал проверять Apache. Ура, запускается! Но сайт всё равно недоступен. Оказалось, не подцепились настройки Интернета, да и сам интерфейс отключен. Перезапускаю networking, вроде заработало. Делаю снова grub-install и grub-mkconfig и облегчённо вздыхаю: вот оно, спасение!
Дальше было более прозаично: обновлял конфиги Apache, перенастраивал модули, так как у 2.4 хватает отличий в настройках, но вскоре сайт запустился. Оставалось только проверить, что теперь сервер корректно переживёт перезагрузку.
Но не тут то было: на следующей перезагрузке сеть снова не подключилась. Почему — так и не понял, по всей видимости, из-за того, что раньше её инициализировала служба System V, которая из-за обновления перестала запускаться. В итоге нашёл конфиг с сетевыми настройками и переписал его под systemd. Но проверка работоспособности всего этого потребовала ещё нескольких перезагрузок, а сервер там запускается ну очень не быстро…
Потом ещё очень долго возился к кодировкой главной страницы сайта. Я думал, она на статике, пытался прописать charset везде, где только можно, но без толку. Был момент, когда хотелось биться головой о клавиатуру от непонимания. Потом оказалось, что corsico когда-то сделал index.php, где проверял, с какого устройства заходит пользователь, и который потом включал в себя эту статическую страницу. Только после этого вопрос решился!
В итоге всё закончилось около 5 утра. И ещё раз убедился, что я — человек, который всё делает со второго раза (и хорошо если со второго), предварительно «собрав» все неподходящие варианты действий. Например, если бы я перед запуском выполнил grub-update, этап с плясками с виртуальным CD-ROM и Puppy Linux бы не потребовался. (Но с другой стороны, не узнал бы про возможность загрузки с виртуального образа.)

Сделал вторую прививку

4X_Pro
Сегодня сделал вторую прививку от COVID-19. На этот раз очереди почти не было, заполнил документы, после чего сразу же сделали укол, и я отправился домой. Последствия примерно такие же, как прошлый раз: где-то через 20 минут появилось чувство загаженности организма, к вечеру чуть подросла температура и заболело горло. И какая-то апатия, делать толком ничего не хочется… Даже в блог хотел написать ещё в 19 часов, но никак не мог собраться. По этому поводу даже опять вспомнилась фраза: «жизнь — это то, что с тобой происходит, когда у тебя совсем другие планы».
Но зато есть надежда, что к октябрю можно будет перемещаться по городу и ходить на настолки без страха заразиться!

Снова играю в «Меч самурая»

4X_Pro
Сегодня снова съездил на настолки. Из дома выбираться как-то не хотелось, поэтому приехал поздно. После долгого перерыва увиделся с Ал.С. и К.Ш. Присоединился к «японскому бэнгу» (он же Меч самурая) на шестерых, и в первую партию начал очень мощно, за один из ходов сразу отжав два жетона чести. Но увы, дальше дело застопорилось. Тем не менее, первую партию мы выиграли с отрывом в одно очко от К.Ш., которая тогда была ронином. Потом ещё пару раз сыграли на семерых, но увы, дальше не везло: проигрывал всё время. Тем не менее, играми остался доволен, хотя и в меньшей степени, чем в прошлый раз. Хотел было ещё сыграть в «Роскошь» или «Project L», но один из присутствующих сманил большинство в Codenames. Участвовать в этом не стали только наиболее ярые сторонники бэнга, и мы стали дальше играть в бэнг впятером. Но и там мне не везло… В итоге после двух партий все как-то резко решили расходиться.

Антикоучинг и ещё одно противоречие

4X_Pro
Я придумал название тому, что я хочу нести в мир — «антикоучинг» (по аналогии с «антикафе»). Суть его в следующем: учить людей не ставить всё новые и новые цели и переживать по поводу недостигнутого, а быть довольным тем, что есть. Не гнаться за финансовыми успехами или статусом, а действовать в соответствии со своими истинными целями. Не заниматься «пробиванием стеклянных потолков», а спокойно дожидаться, когда накопится достаточно личной силы и мудрости, чтобы потолок исчез сам собой. Не заморачиваться тайм-менеджментом, а жить в своём естественном ритме. И так далее.
Но обдумывая это, осознал сегодня, что и сам постоянно занимаюсь «пробиванием стеклянного потолка», только по другому показателю: посещаемости своих сайтов, которые обычно легко дорастают до 100—120 человек/сутки, а дальше останавливаются. (Исключением был только разве что ЕТП в свой лучший период.) И если доводить это до логического  завершения, то получается, что мне самому надо отложить попытки выйти на более высокие показатели, а просто заниматься, чем нравится.

Преветнтивные баны ВК

4X_Pro
Забавно: нашёл в Сети сайт, с помощью которого можно просканировать список людей ВКонтакте, добавивших меня в чёрный список. Оказалось, это сделали 7 человек. Из них двоих я вообще не знаю от слова совсем: один — какой-то 1Фный обыватель (судя по интересам), вторая — психолог из Санкт-Петербурга. Интересно, в чём смысл таких «превентивных банов»?

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

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