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

Лог жизни

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


Заметка в Instagram от November 23, 2021 at 08:00PM

4X_Pro
Удивительный контраст в Терлецком парке! Возле Декоративного (aka Утиного на современных картах) пруда возникает ощущение уединённости, заброшенности и неподвижности. Если бы не шум машин, который хорошо слышен сквозь лес без листьев, можно было бы подумать, что ты где-то вдали от цивилизации. Но стоит дойти до соседнего пруда, сразу возникает ощущение, что там кипит жизнь: много людей, утки громко крякают в ожидании корма, и это ощущение удалённости от всего сразу же исчезает.
#терлецкиепруды #терлецкийпарк #утиныйпруд #осеннийлес #поздняяосень #лед #леднапруду

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

Дурной день

4X_Pro
Сегодня опять получился какой-то дурной день. Эх, видимо, старость года сказывается. Какая-то повышенная дурная активность у всех. Одни только спаммеры пытались позвонить 4 раза (правда, антиспам от МТС и «Не бери трубку» благополучно их отбили). Плюс ещё выползло на связь несколько человек, о которых я забыть успел благополучно. Из-за этого под вечер накатила паника на тему «опять ничего не успеваю» (или даже так «опяяять ничего НЕ УСПЕВААААЮЮЮ», как сказала бы Kitsune).
Впрочем, было и несколько неплохих моментов: я сходил на короткую прогулку в Терлецкий парк, помог 10geekу написать текст для борьбы с дезинформацией, а Kitsune прислала интересную книжку.

Осознал причину своих метаний

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

Нашёл поворотный момент в 2007 году

4X_Pro
В последнее время часто задавался вопросом, почему я не могу творить так же, как это было в 2003—2007 годах, и что тогда изменилось в моей жизни. И вот, кажется, нашёл ответ. Раньше для меня то что я делаю, имело некоторую самоценность уже в силу того, что я сделал это сам. Даже если это была всего лишь собственная раскладка клавиатуры для Quake или подборка настроек реестра для Windows. Я воспринимал сделанное как то, что выделяет меня из толпы, которая пользуется стандартными настройками, возвышает над ней.
А где-то в конце 2007 или начале 2008 года произошло изменение: ушла эта самая самоценность того, что это — моё. Вместо неё пришло убеждение, что обязательно найдётся кто-то, кто сделал это уже до меня и лучше: либо более красивый интерфейс, либо активное сообщество, либо более качественную поддержку и документацию. А если же этого не случилось, то просто то, что я делаю, никому не нужно. И вообще, использование чего-то стандартного, будь то игровая раскладка, расположение файлов или массовая CMS — это экономия сил и времени, которые не будут потрачены на настройку и отладку. Собственно, именно это решение и стало поворотным в моей жизни, после которого начались проблемы с мотивацией на любые крупные проекты. И даже ситуации, когда я сталкивался с опровержением (например, Friendica и Oxwall, которые сначала казались мне отличными проектами, а потом я в них разочаровывался) не смогли меня избавить от него. Пожалуй, поворотным моментом был пуск сайта xpro.su, который я сделал на Wordpressе (хотя и быстро ушёл с него на b2evolution) в декабре 2007…
Хотя сейчас, когда я это дописал, пришла в голову ещё одна мысль: ведь создание своего — это добавление в жизнь антихрупкости. Отчасти — за счет того, что в массовом ПО больше шансов обнаружения уязвимости, отчасти — за счёт поддержания навыка самостоятельного устранения проблем.

Глючный день

4X_Pro
Вчера получился какой-то очень глючный день. Сначала засиделся в Сети до 6 утра — доделывал ещё одного бота для Telegram. Решил сделать эхо-бота для упрощения изучения и отладки Telegram API, который выдаёт в качестве ответного сообщения тот JSON, который приходит на webhook бота от Telegram. Вроде задача очень простая, но хотел было сначала сделать её в виде бессерверной функции lambda AWS на JavaScript. Но сломал там мозг с тем, как отправить POST-запрос без асинхронности или callbacks. И уже к утру не выдержал, переписал всё на PHP и положил в подкаталог на своём тестовом сайте. Вот там заработало всё сразу же! Потом пришла в голову ещё одна идея: отправлять боту JSON, который тот бы использовал в качестве параметров для ответа, чтобы тестировать всякие ReplyKeyboard и т.п. Но сил на реализацию этого уже не хватило. И ещё решил, что если и буду делать ботов на AWS, то либо на Python, либо на Ruby (нужно будет поэкспериментировать, что из них потребляет меньше памяти).
Проснулся поздно. Был вроде выспавшийся, но немного тормознутый. Тут позвонила Tella. (Да, в очередной раз сработала примета, что если день начинается с телефонного звонка, это будет плохой день.) Мы с ней договаривались отправиться в заведение с пончиками в районе метро Охотный Ряд в 18:00. Она стала уговаривать меня перенести встречу на час раньше. Мне это не нравилось. В итоге сошлись на 17:30. Но это тоже оказалось плохой идеей. Когда пришло время готовиться к выходу из дома, меня сначала отвлекли разговором по Telegram, потом из-за глюков SiteKnockerBot пришлось менять его настройки и перезапускать (и то не помогло, глюки продолжались и чудесным образом прекратились только в 19:31). В итоге из дома вышел только в 17:20.
Дальше получилось как всегда: спешил, злился, по переходам бежал бегом в попытке отыграть хотя бы несколько минут. Но не учёл, что носиться по эскалаторам в маске — это совсем не то, что без маски. А ещё дико тормозил ВКонтакте на мобильнике. И когда добрался до Tellы, испытывал жуткую гипоксию. Плюс ещё нахватался негатива от одного её сообщения ВК. Срочно побежал к выходу, но проблема в том, что Tella бегать не умеет, а в метро слишком много людей, которые идут ничего не видя вокруг. Под конец я был готов просто таранить всех кто попадался на пути!
На поверхность выбрался жутко злой, давно такого не было. Отдышался, дождался Tellу (она отстала), и наехал на неё на тему того, что переносить время встречи изначально было плохой идеей, и что если я говорю, что вряд ли смогу достичь состояния готовности, значит, так оно и есть. И вообще, нужно жить асинхронно, с минимумом привязок ко времени. Увы, добиться от неё согласия с этим так и не удалось. В итоге пошёл по улице злой, бесясь на людей, что не уступают мне дорогу и намереваясь с кем-нибудь от души поскандалить. Но толком не получилось (не считая того, что наорал на какого-то промоутера, который пытался нам что-то предложить). Только уже у заведения с пончиками более-менее успокоился: Tella всё-таки дала возможность выораться как следует.
Впрочем, ехали всё же не зря: пончики оказались вкусными, хотя конкретно тех, которые я хотел изначально, мне так и не досталось. Потом прогулялись немного по городу, вышли к Пушкинской, и оттуда поехали на настолки. В какой-то момент я сомневался, будет ли это хорошей идеей, но по субботам уже несколько недель выбраться не получается, поэтому пришлось ехать в среду.
Игры в этот раз проходили не в «Папе Вейдере», а в другом заведении — «Золотая вобла». В принципе, довольно симпатичное место, если бы не одно но: очень плохая вентиляция. Из-за этого пришлось уйти гораздо раньше обычного. Но несмотря на это, поиграли неплохо. Сначала играли в Свинтуса, потом пришла Ал.С. и принесла «Меч самурая» aka «японский бэнг». В него мы сыграли всего один кон: отчасти из-за того, что все подтормаживали во время игры, отчасти из-за того, что в игре было два новичка, и многое приходилось объяснять на ходу. Но в итоге выиграли за ниндзя с большим-большим отрывом. В общем, когда выходил с игр, был доволен. Но в метро снова навалилось раздражение… В общем, не понимаю, что со мной происходит.

Прощай, FirstByte!

4X_Pro
Сегодня всё-таки решился и перенёс socionics.me с отдельного VDS на хостинг с моими старыми сайты на Reg.Ru. А TypograferBot отправил на облачный сервер на Amazon. Прощай, FirstByte! Четыре года я прожил там, и хотя особых проблем не наблюдалось, канал связи был явно хуже, чем на Reg.Ru.
Увы, молниеносного переноса не получилось. Сначала долго ждал, пока обновится DNS-кеш на серверах моего провайдера. Но тот кеширует очень агрессивно (обычная A-запись обновилась где-то через 4 часа). Где-то через час я ждать устал и прописал новый IP в hosts-файл. Оказалось, что на новом месте сайт как надо не работает: ошибка 403. Долго искал, в чём причина, потом оказалось, что стоят неправильные права на файл .htaccess. Потом наконец-то заработало всё, кроме форума: забыл, что там настройки базы нужно прописывать отдельно. Но даже после этого проблемы остались: оказалось, что при импорте SQL-скрипта возникли ошибки из-за row_format=fixed и часть таблиц не импортировалась.
Потом ещё долго искал, где в панели ISPManager можно DKIM-ключ для почты, но так и не нашёл. Пришлось добывать его очень нетривиальным способом.
Но в итоге на новом месте сайт работает даже чуть ли не быстрее, чем на старом. Возможно, из-за поддержки TLS 1.3, которой у меня на VDS не было из-за слишком старой OS. А ещё наткнулся на неплохой канал на YouTube про ускорение работы сайтов, что снова вернуло к мысли заняться этой темой.

«Антихрупкость»

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

Когда не хватает ответов

4X_Pro
Продолжаю изучать Amazon Web Services. В частности, разбираюсь с базой DynamoDB. Но чем дальше продвигаюсь, тем больше возникает вопросов. В частности, никак не могу понять, стоит ли её применять для ботов или же лучше обойтись обычной реляционной СУБД, например, тем же PostgreSQL. Или вообще пока не связываться с бессерверными функциями и DynamoDB, а делать всё на обычном виртуальном сервере со связкой PHP + MySQL. В общем, моя типичная ситуация: когда возникает слишком много вопросов и неопределённостей, возникает желание всё отложить на неопределённый срок до того момента, когда ответы не найдутся, и в голове не наступит ясность. И всё было бы хорошо, если не одно но: когда ответы найдутся, пройдёт уже несколько месяцев, а то и лет, и я опять оглянусь назад и буду переживать, что за прошедшее время так мало сделал.

Заметка в Instagram от November 12, 2021 at 11:06PM

4X_Pro
Во время недавней поездки в Санкт-Петербург я взял из Финского залива три камешка с целью сделать их тоже путешественниками и отвезти в три московских реки: Серебрянку, Яузу и Москва-реку. Первые два быстро нашли свои места, а вот с третьим как-то не складывалось: никак не получалось добраться до Москвы-реки. Но сегодня я оказался на Третьяковской. И внезапно для себя решил, что это отличная возможность отправить на место назначения последний камешек. Изначально я хотел бросить его в реку с Парящего моста в Зарядье, но потом передумал: слишком уж там многолюдно и неудобно это делать. Вместо этого запустил его с Большого Москворецкого моста. Так что знайте все: на дне Москвы-реки недалеко Кремля лежит камушек из Финского залива!

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

Неплохой, но непримечательный день

4X_Pro
Сегодня впервые за последнее время снова поиграл в Ведьмака. До этого не складывалось: то вставал поздно, то что-то другое отвлекало. Но не могу сказать, чтобы особо продвинулся. Потом, пользуясь хорошей погодой, выбрался прогуляться и забрать из пункта выдачи новую крестовину для кресла. На улице, хоть и было солнечно, но холод — просто жуткий!
Остаток дня сидел дома. Помог corsico наладить автозапуск службы SphinxSearch, которая падала из-за того, что в /var/run не было нужного каталога. Оказалось, в systemd есть способ создавать такие каталоги автоматически и с нужными правами. Для этого в unit нужно прописать в секции Service параметр RuntimeDirectory=имя_каталога (без /var/run в начале).
А вечером разобрался наконец-то, как определить язык пользователя, чтобы бот сразу отвечал на нужном, и написал об этом заметку в профблог.
В общем, день был довольно неплохой, хоть и не сказать, чтобы запоминающийся.

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

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