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

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


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

t.me/4x_pro

Лог жизни

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


Глючный день

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

Вновь вернулся к ботам

4X_Pro
Опять вернулся к теме ботов для Telegram. Сижу и разбираюсь с Amazon Gateway Service, которую хочу использовать, чтобы сделать бота легко масштабируемым. Да и вообще, вероятность падения или взлома серверов Amazon в разы меньше, чем отдельного VDS (да ещё на относительно дешёвом хостинге), а значит, можно будет не бояться уйти в оффлайн или полуоффлайн на несколько дней.
На первый взгляд, ничего сложного: нужно просто написать свои lambda-функции и подключить, но всё никак не решусь попробовать. Классика жанра: вроде всё понятно, но нужно время, чтобы новые знания перешли в зону уверенности. Ещё несколько разочаровался от того, что на Amazon не поддерживается PHP: придётся писать либо на Python, либо на JavaScript. Из-за этого даже задумался над вопросом, не перебраться ли в Яндекс.Облако или SberCloud, где и PHP есть, и документация на русском. И вроде цены подешевле. Но пока так и не решился.
Зато интереса ради подключил сегодня аналитику к TypograferBot. Оказалось, что им пользуются активнее, чем я предполагал: меньше чем за пару часов набралось более 30 вызовов! А я считал, что к нему обращается 1—2 человека от силы…

Хаос в жизни

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

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

4X_Pro
Даже просто идя по делам, можно увидеть что-то впечатляющее, если не забывать смотреть по сторонам. Например, отражение закатного солнца на строящемся доме, как сегодня. Жаль, не взял с собой фотоаппарат, пришлось снимать мобильником.
#город #стройка #лучизаката #перово #строящийсядом

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

День магнитных бурь и группа идеалистов

4X_Pro
Сегодня всё же создал группу идеалистов Интернета в OpenVK. И вдруг осознал, что не знаю, что писать, кроме вводной статьи про то, кого таковыми можно считать. Потом всё же закинул несколько материалов из разных разделов своего сайта. Посмотрел свой TG канал, где откладывал идеи для сообщества, но что-то ничего из того, что там есть, желания писать заметку не вызывает. Впрочем, работоспособность сегодня вообще никакая. Возможно из-за магнитных бурь: днём Kp-индекс доходил до 7, что очень много. Да ещё и опять спал плохо… Впрочем, главная проблема в том, что мне сложно оценить уместность. Да и то, что казалось уместным в контексте сайта, в группе на большом сайте кажется излишним (например, вопрос о путешествиях или фото кошек).
Тем не менее, в группу сразу же вступило 3 человека. Вот она, сила маленьких сообществ: когда что-то там публикуешь, это обязательно заметят. Ещё отправил на GitHub ряд предложений по улучшению CSS у OpenVK. А когда копировал текст о том, кто такие идеалисты Интернета, открыл статическую страницу MLCE и понял, что жалко его всё же забрасывать: слишком много сделано, да и на фоне OpenVK выглядит лучше… Но и сил делать дальше тоже нет. Точнее, просто в голове бардак, и непонятно, за что браться в первую очередь.

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

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