Портрет 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
Увы, радость жизни сменилась периодом дисгармонии. Во вторник вечером навалилась усталость и головная боль, а в среду я проснулся в полузаболевшем состоянии. (Вообще, что-то в этом году часто в нём оказываюсь.) Из-за этого даже не поехал на озеро Данилище, хоть и собирался. Весь день просидел дома, время прошло куда-то мимо. Злился на себя, что хотя в субботу составил большой список дел на 17 пунктов, реально успел выполнить только пять, и ещё по двум немного продвинуться.
В четверг проснулся вроде бодрым, стал собираться в Москву. Но когда ехал, снова вернулось полузаболевшее состояние: начал чихать, свербило в носу, и навалилась жуткая усталость. За остаток дня ничего так и не сделал.
В пятницу вроде бы проснулся здоровым, но большую часть дня чувствовалась сильная усталость, хотелось лечь и лежать, ничего больше не делая. Видимо, из-за того, что сильно упало давление (до 108/64, что даже для меня слишком низко.) Поэтому день опять прошёл мимо, занимался только бытовыми делами, а ещё продлил домен 4xpro.ru и цифровую подпись. Под вечер чуть ожил, хотел было поиграть в Starcraft, но вместо этого навалилась другая проблема: в ванной от смесителя отвалился душевой шланг (причём так, что гайка, которой он прикручивается, осталась на месте). Я почти час потратил на то, чтобы сначала разобраться, как просунуть шланг через эту гайку, а потом ещё сделать так, чтобы нигде ничего не подтекало.
Когда закончил, решил было лечь спать пораньше, так как снова чувствовал себя ужасно уставшим. Но увы, не получилось: по разным причинам просыпался за эту ночь (если верить фитнес-браслету) целых 8 раз.
И сегодня опять получился день хаотической активности: создал пару тем на своём форуме, потом то читал статьи на Хабре, то пытался вернуться к изучению Rust на SenJun (оказывается, есть всё-таки в Сети свободные и качественные курсы!), то смотрел, какие сейчас есть альтернативные OS (и узнал о существовании Helen OS, которая во многом близка к тому, что когда-то хотел написать сам в виде «компонентной OS» — асинхронные операции с взаимодействием между OS и процессами через единую шину). А потом ещё написал небольшую программу для решения одного вида математических загадок, о которой упоминал в предыдущем сообщении. В общем, хотя чего-то особо значимого не сделал, более-менее доволен прожитым днём. Впрочем, пытаться взяться за свои проекты всё равно не вижу смысла, так как в понедельник равно с Tellой снова поедем в город-на-краю-земли aka Санкт-Петербург.
Также изначально планировал сходить на настолки, но с одной стороны, из-за всего перечисленного выше никуда ехать не хотелось, с другой — в чате тоже не было никакой информации о том, будут ли сегодня игры вообще. Поэтому так и отложил до следующей недели, тем более, что выяснилось, что начало дачного сезона перенесли на 27 апреля, поэтому 20-ого я точно буду в Москве.

Математическая загадка

4X_Pro
Сегодня в отрывном календаре попались две математических загадки. В каждой дано шесть чисел, между которыми надо расставить знаки операций (сложение, вычитание, умножение, деление) так, чтобы в результате последовательного выполнения действий получилось седьмое число. Хотя задача достаточно простая (подсказка: решать лучше с конца), но с устным счётом у меня всегда было плохо, поэтому минут через десять я эти попытки бросил. Но сдаваться не хотелось, и решил пойти другим путём: набросал на Python программу для автоматического поиска решений таких загадок с помощью рекурсии и для произвольного количества чисел. Ушло на это всего минут 15, и код занимал 55 строчек. И сразу же с помощью него нашлось решение и для первой, и для второй загадки. Причём для второй задачи нашлось более простое решение, состоящее только из сложений и вычитаний, по сравнению с тем, которое предлагалось в ответе. В общем, очень доволен сделанным! Именно в этом — творить играючи — и заключается идеал жизни Настоящего Компьютерщика!
Думал выложить код на GitHb, но создавать отдельный репозиторий под один файл — это слишком. Поэтому ограничусь тем, что приложу его к этому сообщению: mathgame.py (3 Кб).
Ещё подумал, что можно было бы написать статью на Хабр или сделать community task на CodinGame, но на это уже мотивации не хватает.

Радость жизни, но с отсутствием баланса

4X_Pro
В последние дни живу примерно так, как всегда и хотел: играю в компьютерные игры, читаю книги, хожу гулять по весеннему лесу, медитирую. В частности, вчера (вернее, уже позавчера) выбрался на прогулку на Карпятник, где, сидя на берегу ручья, ушёл в глубокий-глубокий транс, точно так же, как во время запомнившейся прогулки в мае 2021. А на обратном пути испытал такую радость жизни! Причём перед прогулкой делал расклад на Таро, пытаясь выбрать, куда лучше отправиться (или вовсе дома остаться), и на вариант с Карпятником выпала Верховная Жрица.
Но несмотря на это, всё равно остаётся недовольство собой. В частности, тем, что в субботу написал план аж на 17 пунктов, но реально из них выполнил всего четыре, и ещё по двум прогресс только частичный. Большая часть невыполненного связано с намерением написать несколько заметок в другие разделы этого мультиблога. Но вот писать ничего не хочется от слова совсем, даже просто описывать впечатления от прогулок в блоге. В общем, по-прежнему никак не удаётся найти баланс между удовольствием от жизни и результативностью…

Осознание, почему против меня работают защитные механизмы мира

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

Весенний лес

4X_Pro
Сегодня, воспользовавшись улучшением погоды, снова выбрался на прогулку. Сначала хотел было пойти на Карпятник, но день получился бестолковый, и из дома выбрался только в 16 часов. Решил, что на Карпятник лучше отправиться в другой день, когда смогу выйти пораньше, а пока просто сходить в лес поближе на небольшую прогулку.
Уже дойдя до леса, вспомнил вдруг о том, что в нём есть небольшое озеро, на котором я несколько раз бывал в дачные времена, и в самый первый заезд на новую квартиру, а потом не вспоминал о нём более чем полгода (хотя о прудах рядом с ним помнил прекрасно). И решил отправиться к нему.
И надо сказать, сделал это не зря! Возле озера сейчас совершенно безлюдно, и никто не мешает уйти в себя, погрузиться в трансовое состояние и почувствовать полное слияние с природой. Ещё поймал удивительную игру света на хвое сосен возле озера. Как будто какой-то зелёный туман или дымка!
Посидел на берегу озера, посозерцал, потом решил обойти его кругом. Но не тут-то было! Оказалось, что в озеро впадает достаточно большой поток воды. Я решил посмотреть, откуда он берётся, благо по весеннему лесу передвигаться достаточно легко: снега уже почти нет, а трава и кустарники ещё не разрослись так, чтобы мешать идти. По дороге нашёл место, которое очень напомнило мне сны из детства, когда лес (особенно весенний) снился мне достаточно часто.

А пройдя ещё несколько сотен метров, вышел к Клязьме. Она разлилась так широко, что когда увидел её издалека, сначала даже подумал, что это то затопленная низина, то ли ли ещё одно озеро. Оказалось, что тот поток воды идёт из реки!
Постоял ещё немного, посозерцал неспешно текущую воду, немного прошёл вверх по течению, и вдруг нахлынуло такое чувство полноты бытия, какого очень давно не было! Захотелось прямо таки лететь! Но лететь возможности не было, поэтому пришлось ограничиться пробежкой по лесу обратно к озеру по короткому пути.
Потом вернулся домой, стараясь сохранить в себе это состояние наполненности и внутреннего подъёма. В общем, можно с уверенностью сказать, что весну этого года я не упустил.

Как найти баланс в жизни?

4X_Pro
В последнее время много размышляю над тем, что вроде хорошо знаю, чего хочу, представляю свои цели и ценности, но никак не получается выстроить их в единую систему. Точнее, в теории всё отлично даже складывается: есть три взаимодополняющих направления жизни. Первое — вести образ жизни slowlife — играть в компьютерные игры, бродить по паркам или каким-то другим местам в городе, читать книги, неспешно самообразовываться и получать от всего этого удовольствие. Второе — это писать свободное ПО в духе истинных времён — лёгкое, без всяких frameworkов, малотребовательное к ресурсам, хорошо работающее на старых компьютерах или самых дешёвых хостингах и VDSах. Я рассматриваю это как свой вклад в создание «мира для бедных». Третье — это проповедовать идею «Вот, посмотрите, как я хорошо живу в гармонии с собой. А всё почему — потому что умею довольствоваться малым и отказался от попыток взять от жизни больше, от гонки за материальными излишествами, карьерой, статусом и т.п. Давайте все станем так делать, и мир станет лучше — в нём всего будет хватать всем, и поэтому не будет конкуренции, а значит, можно будет жить без страха перед будущим», и написать книгу-учение на эту тему.
Но при попытке реализовать это на практике никак не получается найти баланс между этими тремя направлениями. Уделяю внимание какому-то одному — страдают два остальных. Или вовсе дни проходят мимо, время тратится на всякую ерунду, не связанную ни с одним из трёх направлений.
Сэр Мик вчера, когда я рассказал ему всё это, предложил расставить приоритеты и сфокусироваться на каком-то направлении. Но когда я стал думать над этим, осознал, насколько же они между собой тесно между собой взаимосвязаны. Если отказаться от первого — радостей жизни — то пострадает и третье: станет нечего проповедовать (вернее, не будет понятно, какие плюсы у такого образа жизни). Если отказаться от второго, то опять же пострадает третье — станет нечего возразить на заявление «да ты бездельник, только ресурсы потребляешь, но сам ничего полезного не делаешь», а равно как и опровергнуть точку зрения тех, кто считает, что всё делается только ради денег, а создание чего-то только на основе сознательности и идейности, без финансовой мотивации, невозможно. Если же отказаться от третьего, то сразу возникает вопрос: а зачем тогда жить и как оставить след в истории? Остальные два направления на это никак не тянут. Время устаревания софта сейчас гораздо меньше человеческой жизни. Причём даже такого, который связан с казалось бы вечными потребностями (вспомним ICQ: в Истинные времена это был главный инструмент связи, а сейчас туда разве что поностальгировать заходят). Исключение — разве что придумывание каких-то новых фундаментальных алгоритмов, но тут нужно иметь математическое мышление, но это всё же не мой случай.
Когда-то в качестве второго направления я рассматривал ещё и типологии личности. Но оказалось, что придумать я что-то в этом направлении могу (пирамида типологий, две своих типологии — информионика и типология эволюционных стратегий, соционическая модель X), но вот пустить это в массы, чтобы оно жило и приносило пользу — нет (тогда как горе-соционики типа Дианы собирают тысячные группы). Поэтому в 2021 году я в этой деятельности разочаровался.

Обратная сторона жизни на два дома

4X_Pro
Сегодня снова приехал в Посад. Поездка прошла благополучно, но всё равно устал сильно. То ли от аномальной жары, то ли усталость после релизной гонки сказывается, то ли просто биоритмический спад. И остаток дня прошёл мимо.
Вообще, давно хотел написать, что жизнь на два дома имеет одну очень неприятную особенность. После очередного переезда понимаешь, что за то время, когда ты жил в другом месте, ты стал немного другим человеком. Чуть изменились цели, чуть сместились приоритеты. Что-то, что перед отъездом казалось важным, перестало таковым быть, или просто расхотелось этим заниматься. И это очень неприятно…

Длинная прогулка в Кусково

4X_Pro
Сегодня выбрался на длинную-длинную прогулку в Кусково. Ради неё (а также выпуска IntB) даже отъезд в Посад отложил до вторника, хотя по первоначальному плану собирался уехать ещё в воскресенье. В отличие от предпредыдущей, начиналась она не очень: сначала был раздасадован тем, что поздно встал, долго собирался, и за это время небо затянулось облаками. Потом достаточно долго ехал в душном автобусе (всё-таки идея делать в транспорте кондиционеры вместо естественной вентиляции через форточки — ужасна). И когда добрался до парка, как-то особой радости не испытывал.
Шёл и думал, как же всё тут изменилось. Так получилось, что во время прогулок в прошлом и позапрошлом году я до той части парка, которая расположена рядом с Вешняковской эстакадой, не добирался. А тут, как выяснилось, всё переблагоустроили, и стало как-то неуютно и неинтересно (единственный плюс — пруд в углу парка в порядок привели).
Добрался до Дворцового пруда, немного посидел на берегу. Удивлялся необычному сочетанию: температура воздуха — более 20 °C, а пруд ещё покрыт льдом! (Такая вот первоапрельская шутка природы, интересно, был ли сегодня рекорд температуры установлен или нет.) Потом отправился к Радужным прудам. Зашёл перешеек, который разделяет два пруда, и обнаружил, что с дальней стороны в пруд втекает мощный поток воды! Почти как Косинский ручей летом! Потом вернулся, поднялся на большой мост чуть дальше, и с него увидел, что по канавам вдоль дороги несётся ещё два таких же потока!
Пока ходил, крутил в голове диалог с DarLik на тему того, что и в жизни, и в компьютерных играх есть некий пороговый уровень ресурсов. Если их больше этого уровня, то дальнейшее накопление и развитие идёт легко, а если — меньше, то вся жизнь превращается в прозябание и борьбу за выживание. Причём иногда от перехода этого порога отделяет какая-нибудь разовая случайность (очень хорошо это наблюдается в Battle for Wesnoth, где часто складывается ситуация, когда в зависимости от удачного/неудачного удара один из бойцов либо повышает уровень и полностью восстанавливает здоровье, либо гибнет, что в дальнейшем может определить ход всей битвы в целом) или одно-два неправильных решения на начальном этапе развития (много раз наблюдал в Starcraft и в позапрошлом году — в Arcanum, когда проходил Wormantown).
А ещё думал о том, что всё-таки считать настоящей жизнью: вот такие вот прогулки, когда чувствуется максимальная включенность в мир, но не дающих ничего в долгосрочной перспективе (кроме разве что некоторых мыслей и фотографий) или же моменты, когда я сижу за компьютером и творю, но при этом полностью выпадаю из «здесь и сейчас» и лишаюсь этой самой включенности. Но ответ так и не пришёл.
Затем я дошагал до аллеи, которая отходит от пруда вглубь леса. Прошёл какое-то время по ней. Лес сейчас хорошо просматривается, и видно, как сквозь него несётся ещё несколько потоков! В общем, сейчас прямо время радости для любителя воды: ручьи и лужи везде. Кстати, та аллея — одно из немногих мест, которому благоустройство пошло на пользу: когда я здесь был весной то ли 2017, то ли 2018 года, пройти было сложно, приходилось прыгать по грязи, теперь же дорожка почти сухая. Видимо, насыпали дополнительного грунта, подняли уровень, и вся вода уходит в лес. Правда, не знаю, не вредно ли такое подтопление деревьям и кустам…
Сначала хотел было отправиться в дальнюю часть парка, к горке и Лесному пруду, но потом понял, что там, возможно, пройти просто не получится. Вернулся к Дворцовому пруду. Снова немного посидел на его другом берегу, созерцая усадьбу и вечернее небо. Потом отправился к выходу. На обратном пути обратил внимание, что вырубили все деревья, которые росли над каналом, выходящим из Дворцового пруда. На мой взгляд, очень зря сделали, теперь этот канал стал каким-то совершенно голым и неинтересным…
Домой вернулся в каком-то странном состоянии и с сильной усталостью. И остаток дня прошёл куда-то совсем мимо. Но в любом случае, теперь могу сказать: эту весну я не упустил!
А ещё набрал наконец-то 50 тысяч шагов в марафоне от Huawei Health, так что смогу поучаствовать в розыгрыше приза.

Выпустил IntB 3.05

4X_Pro
Ну всё, релиз Intellect Board 3.05 позади. Последние несколько дней жил в состоянии предрелизной гонки, только вчера выбрался на настолки. Но, как это ни странно, на этот раз всё шло достаточно хорошо, почти без перенапряжения, которое бывало во времена 2.x. Только сегодня несколько занервничал, испугавшись, что всё-таки не успею, особенно когда внезапно вылезли баги при редактировании прав доступа под Postgres.
Вообще, больше всего сложностей было именно с поддержкой Postgres. Впрочем, скорее всего, дело в плохом знании его администрирования. В частности, сегодня почти полдня разбирался, как там ставить права на таблицы в том случае, если новый пользователь создаётся в процессе установки форума. Оказывается, там есть такое понятие, как привилегии по умолчанию, и выставлять надо именно их, если таблицы создаются после установки привилегий.
На SQLIte переход оказался гораздо проще. Хотя и там не обошлось без сюрпризов, например, отсутствия функций VERSION и CONCAT. Пришлось городить костыли в виде пользовательских функций. А ещё оказалось, что такая простая задача, как извлечь расширение из имени файла, средствами SQL кроссплатформенно не решается. В каждой из СУБД что-то оказывается не так. Так и вынес это в постобработку данных на PHP.
И к вечеру всё же убедился, что форум более-менее стабильно работает на всех трёх СУБД. В процессе не обошлось без смешного: когда я тестировал групповое изменение настроек разделов, то случайно выключил опцию «Показывать на главной странице». А потом, увидев, что разделы пропали с главной, подумал, что в последний момент вылез новый баг. Даже запаниковал, что из-за него не успею. Потом создал новый раздел — смотрю, он появился. И только когда сделал прямой SQL-запрос к базе из командной строки, понял, в чём дело.
Потом обновил оба своих сайта, собрал и выложил дистрибутив. Но и тут не обошлось без проблем. Ссылки на скачивание файла у меня со стародавних времён начинались с http:, поэтому при заходе на сайт через https: скачивание просто блокировалось. Хорошо, что я это заметил, иначе бы снова сидел и гадал, почему нет новых пользователей.
Но теперь можно будет вздохнуть спокойно! Сам удивляюсь тому, какой огромный объём работы проделан. Не знаю, как сложится судьба IntB дальше, но в любом случае, тем фактом, что я написал такой проект, можно гордиться.
Ещё собираюсь создать всё-таки репозиторий на GitHub и собрать package для composer, но это — позже…

Очередные настолки, игра в «Дедулю Винчестера»

4X_Pro
Вчера выбрался на настолки. Изначально ехать не очень хотел: вчерашний день пошёл сильно не по плану, и теперь боюсь не успеть выпустить завтра IntB 3.05. Да и вообще, накатила вечная паника «не успеваю, опять ничего не успеваю!». Но, как уже не раз бывало, именно когда я сомневаюсь, идти или не идти, встречи получаются одними из самых лучших. Так было и сегодня. Сначала играли в «Дедулю Винчестера». Это экономическая стратегия, отдалённо напоминающая «Монополию». Когда-то давно Ал.С. уже предлагала сыграть в неё и начинала рассказывать правила, но потом что-то отвлекло, и тогда так и не сыграли, а о самой игре впечатление сложилось не очень. Но, как выяснилось, зря: когда я вник в игру как следует, оказалось, что она весьма интересная!
Правда, на начальном этапе я допустил ошибку: не понимая до конца, как возобновляется запас денег у игроков, слишком экономил и быстро пасовал на аукционах. А как раз тогда раскупали те участки на карте, которые соответствовали моим обеим скрытым целям. Потом, когда стало ясно, что таких участков почти не осталось, я поменял тактику: стал «подсаживать» других игроков — повышать цену на аукционе с целью спасовать в последний момент и заставить других покупать всё дороже. (Деньги за проданный участок там делятся между всеми остальными игроками, кроме купившего.) И это принесло свои плоды: к концу игры я скопил больше всего наличных денег, плюс пару личных целей всё же смог выполнить. В итоге — второе место (хотя боялся, что буду последним, так как купил меньше всех участков и не выполнил ни одной общей цели). А выиграла Ал.С. Причём, по её словам, в эту игру она выиграла впервые, и была этим очень довольна.
Потом, как всегда, был «японский бэнг» aka «Меч самурая». В этот раз всего лишь на троих: я, Я.Ш. (за ниндзя) и Ал.С. (за сёгуна). Вначале игра шла не очень, но мне повезло с персонажем, которым я играл — Кодзиро, который может доставать до любого игрока, невзирая на доспехи. Изначально я считал, что при малом числе игроков этот персонаж не очень-то полезен, но в этот раз Ал.С. обложилась доспехами, и Я.Ш. большую часть ходов ничего не мог сделать, а я за счёт этого свойства вполне результативно атаковал. И в итоге мы победили, а я ещё придержал целых две карты Даймё, дающие дополнительные очки.
Правда, под конец почему-то ощутимо устал (возможно, от духоты) и поехал домой всего после двух часов игры, хотя была возможность перебраться в другое место и продолжить игру там. Но тем не менее, очень доволен, что выбрался, улучшилось настроение и вообще как-то изменилось восприятие мира!

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

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