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

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


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

t.me/4x_pro

Лог жизни

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


Никак не могу определиться с сообществом идеалистов

4X_Pro
Несколько дней метался из стороны в сторону, пытаясь понять, как же делать сообщество Идеалистов. В итоге ещё раз сделал расклад на Таро, но с другой формулировкой (т.к. дважды на один вопрос расклады делать нельзя). В итоге получилось вот что: движок Agouti — тройка Жезлов, свой движок MLCE — Рыцарь мечей, WiredCMS — Отшельник (на этот раз прямой, а то в последнее время перевёрнутый выпадает часто), сообщество на Pikabu — восемь Жезлов, забить на всё и не пытаться заниматься этим совсем — перевёрнутый Паж Чаш. В итоге решил, что нужно начать с сообщества на Pikabu, закинуть туда для начала статью по выживанию в Интернете, и может ещё пару каких-нибудь, и посмотреть на реакцию. Если сумею вписаться и набрать недостающие 900 очков рейтинга, то создавать сообщество. Впрочем, можно делать предварительный тест статей, закидывая их в сообщество Evgа и изучая реакцию там, благо сообщество небольшое.
Вчера и позавчера расталкивал навалившиеся задачи по freelance и прочие дела. В среду ещё успел выбраться на отличную прогулку в Терлецкий парк. А ещё сделал на TapLink мини-сайт со списком основных моих проектов. На сегодня даже наметил заняться статьёй, но получилось как всегда. С утра пришла в голову идея сделать TextCMS 2.0, взяв за основу идеи из Gravа, и в ней же реализовать идею view-driven CMS. Правда, покрутив идею немного в голове и выбравшись на прогулку по району, решил, что всё же не стоит бросаться заниматься этим прямо сейчас.
Когда вернулся, занялся решением вопроса с Python-клиентом для TG. В итоге нашёл и протестировал! Потом пошёл на Pikabu — посмотреть, что пишут по тем тегам, которые хочу использовать в статье. И, как это часто бывает, там и застрял, читая совершенно бесполезную информацию типа истории создания немецкого самолёта-разведчика FW189 или про то, как собаку 5 дней спасали из барсучьих нор. В итоге так ничего и не написал.
Зато осознал, что права была Kitsune, когда говорила, что у меня застой по энергиям из-за недостатка взаимодействия с миром. Просто для неё это взаимодействие идёт во многом на материальном уровне, к чему она призывала и меня, а в моём случае больше нужен на ментальном: получать приток новых идей, мыслей от других людей. Из того же сообщества Evgа я за эту неделю узнал немало интересного в плане софта и управления сообществами.

21 год назад я запустил Объединённый Открытый Проект

4X_Pro
10 февраля… Когда-то этот день был для меня значимой датой: в 2001 году я запустил свой Объединённый Открытый Проект. Изначально он был единым целым с моей домашней страницей, и только в 2005 году я их разделил и купил отдельный домен — openproj.ru. В те времена к этому дню, а также дню полугодовщины (10 августа) я всегда старался успеть что-то: либо новую версию IntB выкатить, либо крупное обновление сделать. С одной стороны, это мотивировало и вместо того, чтобы откладывать, брался и делал. С другой — появлялась спешка, насилие над собой, в результате чего падало качество сделанного и к вечеру болела спина.
Сейчас сайтов стало много, но каждый из них стал цениться гораздо меньше. Для своего нынешнего я даже точную дату пуска не помню, помню только, что это было в апреле. (Сейчас не поленился, залез во WhoIs и узнал, что домен купил 25 апреля.) Иногда хочется уйти на Рестарт и начать новую жизнь всего с одним единственным сайтом, чтобы не расфокусировать внимание и силы.
Интереса ради открыл две самые старые версии сайта в WebArchive.Org, перечитал их и понял, что сейчас вернулся к тому же, целью чего изначально был тот проект: объединять идеалистов — людей, которые хотят и могут делать что-то, и делиться бесплатно результатами своего творчества. Просто в те времена я по умолчанию считал таковыми большинство жителей Интерента, а сейчас понимаю, что нужно просеить толпы обывателей, чтобы найти таких людей.
P.S. Ещё благодаря WebArchive.Org смог найти логотип его второй версии, уже после переноса на хостинг H1.Ru (только фон почему-то неправильного цвета):

Заметка в Instagram от February 09, 2022 at 05:57PM

4X_Pro
Размышляю о своей жизни и понимаю, что мне не хватает трёх очень важных мета-навыков:
1️⃣ Умения концетрировать ресурсы. В основном, это касается времени и собственных усилий: я всё время распыляюсь между множеством дел, в каждом из которых добиваясь незначительного прогресса. В важности этого навыка я убедился ещё в 2009 году в игре Travian. Изначально я там действовал по принципу «строй то, на что хватает ресурсов прямо сейчас», чтобы увеличить население и подняться в рейтинге. Потом стал концетрировать ресурсы на конкретных целях, например, построить казарму 20 уровня и определённое количество войск, и игра пошла совсем иначе, в том числе и рейтинг стал расти быстрее. Но увы, перенести это понимание на обычную жизнь не получается.
2️⃣ Умения рисковать и не бояться сделать неправильный выбор, который может привести к каким-то потерям, но относительно небольшим, не влиющим фатально на образ жизни. На эту мысль меня навела книга «Антихрупкость» Нассима Талеба.
3️⃣ Умения легко излагать свои мысли — писать заметки в блоги и сообщества, создавать темы на форумах играючи, без долгого предварительного обдумывания и вымучивания текста из себя. (Чтобы был понятен масштаб проблемы: даже эту заметку я писал почти 45 минут.)
Причём, как мне кажется, все эти навыки тесно связаны между собой, и 1 и 3 являются следствиями проблем со вторым.
P.S. Что интересно, вчера, когда только задумывал это написать, мне попалась заметка про то, что если вы свои проблемы списываете на то, что вам чего-то в жизни очень сильно не хватает, на самом деле проблема точно не в этом. Интересно, это подсказка от высших сил или просто совпадение?
#самопознание #осебе #променя #размышления #навыки #метанавыки #умения #саморазвитие

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

Кажется, заболеваю

4X_Pro
Вчера к вечеру внезапно оказался в полузаболевшем состоянии. Вроде особых признаков болезни нет кроме усталости, и утром был слегка заложен нос. Но работоспособность сильно снижена, делать ничего не хочется. Непонятно, то ли я как-то сумел словить «омикрон», то ли просто сработала защита организма от перегрузок. В итоге забил на всё, что хотел было сделать, и часов до 16 сидел на Хабре. И, надо сказать, почувствовал от этого немалое облегчение! А ещё ночью пришла в голову мысль, что каталог личных страниц можно совместить с сайтом идеалистов: по сути, он же на таких людей и рассчитан. Ну а бота для Telegram прикрутить как нечто вспомогательное потом.
Правда, опять накатывает очередное «уплотнение жизни»: и corsico, и Melany Tale подкинули новых задач.
А ещё я, кажется, нашел CSS framework, который не вызывает у меня отвращения: ZURB Foundation. Но увы, оказалось, что он зависит от jQuery.

Трудный выбор

4X_Pro
Вчера поставил движок Agouti от Evg на свой хостинг. Несмотря на отсутствие инсталлятора, движок заработал нормально почти сразу же. Да и в коде тоже оказалось не так уж сложно разобраться: та часть, которая не относится к frameworkу Hleb, написана вполне себе в стиле CMS Истинных времён, без ненужных сложностей. Основной затык случился на создании тем — поскольку оно недоступно рядовому пользователю с trust level 1 или 2 (как у меня в основном сообществе Agouti), я ожидал, что это будет делаться из админки (так же, как у статических страниц). Но зато пока искал, что с этим делать, лучше разобрался в структуре движка.
Теперь оказался перед сложным выбором, как быть с сообществом «Идеалисты Интернета». С одной стороны, можно прямо здесь и сейчас попробовать делать его на Agouti, постепенно дописав всю ту часть, которая отвечает за расчёт activity points, голосование за снятие сообщения с темы и т.п. Вчера даже начал создавать нужную структуру тем (правда, из-за того, что управление темами не очень в плане юзабилити, дело шло крайне медленно). С другой стороны, тогда придётся забросить всё, что я сделал летом. Плюс всё-таки Agouti ориентирован на что-то вроде Reddit, где каждая тема — это мини-сообщество, а я изначально задумывал что-то близкое скорее к Pikabu, где всё основано на тегах. И ещё в Agouti используется не-иерархическая система URL (темы имеют вид /topic/название_темы, а посты — /post/id/название_публикации), да ещё без .html в конце. А я у себя хотел сделать URL вида /@author/название_публикации.html, чтобы подчеркнуть то, что движок является user-centric, а не content-centric (не знаю, как обозвать это по-русски, пользователецетричность — слишком уж тяжеловесное слово даже для меня). Хотя вроде там есть именнованые routes, а значит — возможность переделать, но всё равно есть опасения, вдруг вылезут какие проблемы. Да и других мелких доделок потребуется много, например, довести до ума мобильную версию и сделать те самые расчёты очков активности, которые по моему замыслу, должны быть основой самоуправления в сообществе.
Есть ещё промежуточный вариант: пока сделать сообщество на Agouti, но не открывать для публики, а просто использовать для написания и складирования контента (и дать ссылку в чате идеалистов в TG), а уже потом принимать решение: либо дописать MLCE и сделать конвертацию, либо придумать ещё какие-то варианты.
А тут ещё в беседе с Evgом вспомнил про WiredCMS и подумал, что она хорошо бы подошла для того каталога личных сайтов, про который я недавно упоминал. Правда, изначально я хотел сделать его в виде бота, но с другой стороны, можно сделать сайт как основу, а бота — только как средство выдачи рекомендаций и информации о новых страницах в каталоге.
В общем, опять разрывает на куски между несколькими вариантами, и не знаю, за что хвататься… И ещё куча недописанных заметок лежит.

Зигзаги Сетевого пути

4X_Pro
И опять мой Сетевой путь делает непредсказуемый зигзаг. Сегодня выбрался на короткую прогулку, а потом хотел превратить какую-нибудь из идей последних дней в полноценную заметку, а вечером заняться установкой Huginn, но опять всё пошло не так. Сначала, сидя в оффлайне, стал разгребать скачанные за последнее время книги. Нашёл там «Как писать нон-фикшн». Как оказалось, книга весьма небольшая. Решил прочитать. В первой части речь шла о том, что что нужно понять своего читателя, его интересы, уровень знаний и т.п., и правильно выстроить с ним коммуникацию. Это ввергло меня в уныние… Как мне жить в мире, где я в принципе не способен понять чужие потребности из-за отсутствия 8 ТУАИ и проблем с эмпатией? Неужели забить на попытки создать что-то своё и стать исключительно исполнителем, который делает что-то по чужим готовым ТЗ? Это слишком скучно… Вторая часть заинтересовала больше — там речь шла о любопытстве с точки зрения когнитивистики.
Потом вышел в Сеть. Зашёл на свой сайт и обнаружил комментарий от пользователя Evg, с которым я когда-то давно познакомился в сообществе Toxu. Он кинул ссылку на своё новое сообщество — Aguti на одноимённом движке. Посмотрел его, и возникла мысль взять либо этот же движок целиком, либо хотя бы только вёрстку от него (очень нравится то, как организовано пространство), и использовать для создания моего сообщества идеалистов. Правда, при более детальном изучении выяснилось, что он сделана на frameworkе, в котором есть то, что я недолюбливаю: namespaces (впрочем, сейчас вообще сложно найти код без них) и ORM. А ещё он требует PHP 7.4, из-за чего придётся ставить его не на VDS, а на хостинг. Ну или взять ещё один облачный сервер на Reg.Ru и на него же поставить и ботов.
В общем, значительную часть вечера потратил на то сообщество, чтобы оценить движок в действии. Правда, впечатления противоречивые: слишком со многими там хочется жёстко спорить, нет ощущения «своих людей». А ещё очень много корявых записей, когда читаю и не могу понять, что вообще автор хотел сказать. Зато из этого же сообщества узнал о шаблонизаторе Fenom, который по benchmarkам (правда, сделанным автором самого движка) даёт гораздо лучшие результаты, чем Smarty или Twig. Надо будет протестировать! Правда, непонятно, можно ли поставить его без composerа, традиционным способом «скачал ZIP, распаковал куда надо и прописал require». Эх, ещё одна дурная тенденция — завязывать всё на composer…
Вечером немного внимания удалось уделить ещё одной задаче, которую уже две недели обещал сделать Goro — разобраться, как взаимодействовать из Python с Telegram от имени обычного пользователя, а не бота.

Перенос SiteKnockerBot в Яндекс.Облако

4X_Pro
После той неприятной ситуации с AWS, про которую я упоминал в одном из предыдущих сообщений, решил перенести ботов SiteKnockerBot и TypograferBot на Яндекс.Облако. Собрал самую дешёвую конфигурацию ценой примерно 240 рублей/месяц. Оказалось, что обойтись без публичного IP не получится: в отличие от AWS, NAT для серверов без внешнего IP в Яндекс.Облаке является экспериментальной функцией, и чтобы его включили, нужно писать в техподдержку. Пришлось добавлять публичный адрес, что сразу добавило +110 рублей к ежемесячной стоимости.
Дальше всё было обыденно: поставил PHP + extensions + MariaDB. Перенос ботов прошёл просто на удивление легко. Правда, в этот раз я не стал заморачиваться и вешать его на отдельного пользователя. И всё почти сразу же заработало! Но увы, радость была недолгой. Скоро обнаружилось, что бот отвечает на команды с большой задержкой. Всё-таки 5% от процессорного ядра (именно столько даётся на дешёвом тарифе) явно недостаточно.
Решил поэкспериметировать: поменял тип виртуальной машины, поставил 20% от ядра и 1 Гб оперативки (мне бы и 0.5 хватило, но такую конфигурацию с 20% собрать нельзя), и всё заработало нормально. Только вот цена теперь составляет 654 руб/месяц, что для меня слишком дорого, если учесть, что на VDSе ничего, кроме ботов, держать не планируется.
Подумываю о том, не перенести ли бота на обычный VDS, но всё упирается в то, что для мониторинга сайтов нужен хороший канал связи, иначе начинаются подтормаживания и ложные срабатывания. На Яндексе с этим всё хорошо: сегодня запустил Speedtest, который показал download speed: 3800 Mbit/s, upload speed — 900 Mbit/s. А вот на обычных VDSах в лучшем случае дают скорости порядка 100 Mbit/s, и то не всегда устойчиво… Впрочем, есть ещё мысль попробовать облачный сервер от Reg.Ru, там скорости порядка 800-900 Mbit/s, что для меня вполне приемлемо, но цены существенно ниже.
Ещё узнал, что в Яндекс.Облаке по умолчанию закрыты исходящие соединения на порт 25 всюду, кроме серверов Яндекс.Почты. На мой взгляд, очень неудобно, если держать там свои сайты: придётся цеплять домены к Яндекс.Почте и слать через неё.
А ещё, пользуясь теми бонусами, которые дали на два первых месяца, завтра или послезавтра подниму в Облаке ещё один сервер, на который поставлю Huginn и всё же посмотрю его в действии.
Кстати, в SiteKnockerBot на проверке стоит уже более двух тысяч сайтов!

Ещё один день бодрости

4X_Pro
Давно не просыпался таким бодрым, как сегодня! Да ещё погода за окном была отличная. Решил выбраться в Измайловский парк.
Изначально хотел пойти к Лебедянскому пруду, куда уже месяц собираюсь выбраться. Но увы, получилось как всегда: засиделся в Интернете, долго собирался, и вышел гораздо позже, чем хотел. Из-за этого решил прогулку сократить, и вместо Лебедянского отправился на ближние пруды — Красный и второй и третий Декоративные пруды.
Самый яркий период дня, когда небо было совсем чистым, я, увы упустил. Зато увидел очень красивые облака, а небо казалось почти весенним:


Ещё побродил между ёлок возле Второго Декоративного пруда.

Кто-то выполнил мою давнюю мечту и нарядил одну из них:

А на обратном пути вспомнил вчерашний разговор с DarLik и на его основе хотел было написать заметку в раздел «Мировоззренческое» о двух мирах — «мире школы» и «мире улицы». Но увы, пока так и не собрался: как только вернулся домой, переключился на другие дела, и потом так и не смог сосредоточиться. Иногда возникает мысль, что нужно всё же приучать себя писать на мобильнике, и публиковать с него же…

Облом с AWS

4X_Pro
Получил сегодня биллинговое письмо от AWS. Был в шоке от суммы: почти $10 (при том, что раньше укладывался в $2—$3). Стал разбираться. Оказалось, что хотя там обещали в течение года выделенный сервер на ARM бесплатно, с января стали брать за него полную стоимость. Видимо, имелось в виду, что он будет бесплатен в течение 2021 года, а не 12 месяцев с момента регистрации. Теперь вот думаю, куда бежать — в Яндекс.Облако, где можно уложиться в 300 руб/месяц, или брать где-то VDS, но для задач мониторинга нужен с VDS хорошим каналом связи. Собственно, ради этого я когда-то и ушёл в AWS — там давали 5 Гб/с…

Период хаоса

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

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

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