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

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


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

t.me/4x_pro

Лог жизни

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


Испытание робота-пылесоса

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

Удачный игровой день

4X_Pro
Сегодня впервые за последнее время выиграл в шахматы онлайн. Точнее, у противника закончилось время тогда, когда из фигур остались только ферзи +  у меня было преимущество в три пешки.
Затем отправился на настолки. И тут всё прошло весьма неплохо, если не считать того, что сам клуб, где проводятся игры, переехал в другое место неподалёку, но я об этом не знал, и придя на старое место, очень удивился, обнаружив пустое помещение. Но написал Ал.С., она сказала, где искать новое, плюс пришла так, что мы встретились прямо у входа. Сегодня наконец-то появилась возможность сыграть в «Остров кошек». Эта игра предполагает большое количество вариантов набора очков. Я решил идти через «уроки» — карты с заданиями, так как мне на начальном этапе попалась карта, которая начисляла очки за каждую карту урока + похожая была на столе. В итоге насобирал их 9 штук и большую часть выполнил. Но увы, одно из заданий понял с точностью до наоборот: вместо того, чтобы оставить одно из помещений на корабле пустым, наоборот, заполнил его полностью. В итоге недополучил 15 очков и остался на втором месте: у меня было 99 очков, у победительницы — 110.
Потом успели сыграть один раз в «Меч самурая» aka Японский бэнг. Было два новых игрока, поэтому играли очень медленно. Причём как раз эти новые игроки оказались в одной команде — сёгун и самурай. Но тем не менее, результат они показали не такой уж и плохой — 6 жетонов чести против 10 у нас (ниндзя), а ронина разгромили в ноль. Ещё пофотографировал одну из участниц встречи, которая хотела новый аватар. Правда, снимали в спешке и для фото она расположилась так, что у неё за спиной всё время была Ал.С. или кто-то ещё, поэтому пришли к выводу, что аватар лучше оставить старый (кстати, сделанный тоже мной на одной из весенних встреч).
Вернувшись домой, снова стал разбираться с Progressive Web Applications. Хотел было сделать простейшее приложение, которое позволяет писать текст в оффлайне и отправлять его на сервер потом, при выходе в Сеть. Но так и не доделал — вместо этого вспомнил о своей идее сделать приложение списка дел с учётом моих особенностей отношения ко времени, а также правила трёх и показателей Важно/Срочно из книги Стивена Кови. Но делать нормальные интерфейсы я не умею, поэтому решил поискать готовые компоненты. Нашёл подборку компонентных библиотек, из которых понравились Elix и UI5 Web Components. И почти вся ночь ушла на их изучение, только сейчас, в 7 утра, ложусь спать.

Пожертвование на развитие бота

4X_Pro
Сегодня получился вполне удачный день. Началось всё с того, что получил очень щедрое пожертвование на развитие SiteKnockerBot. После него даже задумался о том, не вынести ли бота на отдельный облачный сервер где-нибудь в AWS или Яндекс.Облаке. Правда, выяснилось, что вчера SiteKnockerBot падал из-за того, что я уменьшил количество параллельных проверок, и из-за этого он не успевал уложить полный цикл проверки в 300 секунд. Зато это навело меня на мысль отредактировать systemd unit так, чтобы бот перезапускался автоматически в случае падения. А в AWS, как выяснилось, можно даже получить бесплатную маломощную виртуальную машину, если я правильно понял.

Бестолковый день

4X_Pro
Проснулся сегодня на удивление рано — около 9 часов. Хотел было написать заметку про мышление инженера и бизнесмена, так как вчера наткнулся на Телеграм-канал «Индекс Дятла», который очень хорошо иллюстрирует второе. Но увы, с недосыпа формулировать мысли тяжело. И вообще, в последнее время часто переживаю по поводу того, что пишу очень медленно и тяжело. И не я управляю текстом, а текст — мной. А ещё, наблюдая за другими блоггерами в том же Instagram, удивляюсь, как они умудряются почти любую стороннюю тему привязать к основной тематике своего блога, из-за чего сообщение на эту тему не выглядит неуместным. Мне бы такое умение… Не пришлось бы изобретать мультиблог, и мог бы пользоваться каким-нибудь Known в качестве CMS.
В общем, вместо заметки сел играть в Ведьмака, пользуясь тем, что утром время ожидания невелико. Неплохо продвинулся, в частности, выполнил заказ на жальницу aka кладбищенскую бабу. Потом снова заснул и проспал до 15 часов с лишним. Видимо, сказались последствия магнитной бури. Вечер тоже прошёл куда-то мимо: то читал книжку, то решил вдруг посмотреть, что есть на Amazon Web Services. Нашёл сервис с названием HoneyCode для создания мобильных приложений без программирования. (Эх, деградирую: стал смотреть в сторону конструкторов, хотя всегда презирал тех, кто ими пользуется.)
Но увы, когда разобрался детальнее, как оно устроено, оказалось, что такие приложения нельзя сделать публично доступными (они предназначены только для командной работы). Плюс это обычные Web-приложения, даже без PWA-составляющей. В общем, разочаровался.

Халява в метро

4X_Pro
Случайно узнал, что в метро проходит акция — до 31 декабря при оплате мобильным устройством через NFC и карту Мир 20 рублей возвращается назад, и 10 — если платить самой картой. Когда-то в начале 2020-ого года уже такая акция была, но тогда у меня не было карты с поддержкой бесконтактных платежей. Теперь пошёл другим путём: выпустил виртуальную карту, привязал её к приложению и вчера пошёл испытывать. На этот раз всё сработало отлично! Только cashback происходит с задержкой где-то в час. Но это не столь важно. И ещё нужно протестировать, будет ли всё это работать, если Интернет на мобильнике выключен.
Так что теперь до конца года могу ездить в метро по ценам начала 2010-х годов! Но «Тройку» (на которой ещё с прошлого года остаётся немного халявы от «Миллиона призов») на всякий случай с собой вожу. Ибо, в отличие от DarLik, понимаю, что мобильник в этом плане штука ненадёжная: может разрядиться, сломаться, закончиться Интернет, а ещё могут закончиться деньги на виртуальной карте.

Солнцезависимость

4X_Pro
Мда, стоило закончиться солнечным дням, как настроение сразу же пошло вниз. Как всегда, хочется уйти в состояние «не кантовать»: отключить все каналы связи, чтобы никто не трогал, и уйти в себя по-максимуму. Но не получается. В частности, внезапно Tella с каким-то странным упорством потащила меня на прогулку. В итоге, чтобы не выбираться слишком уж далеко, договорились сходить в Измайловский парк. Там я с моста, который расположен рядом с местом, где в реку впадает Красный ручей, кинул в Серебрянку второй камешек из Балтийского моря. Теперь осталось пристроить только один — в Москва-реку, и путешествие камней можно будет считать завершённым.
Кроме этого только продлил хостинг и домены. Эх, сколько же их сейчас висит почти бесполезным грузом! Когда-то я регистрировал их с надеждой на великое соционическое будущее, потом — делал сайты и радовался шагам на пути к этому будущему. А сейчас ощущение в жизни, что идти некуда. Задумался было, не сбросить ли Reinin.Ru и Intertype.Ru вообще, но так и не решился.
Ещё исправил маленький баг в IntB: проверку на стоп-слова. Надеюсь, это поможет защитить Типач от мусора про спам-рассылки, который сыплется туда с завидной регулярностью. Также подумываю о том, чтобы попытаться доделать импорт записей из Instagram, но пока не хватает ресурса.

Ещё один шаг к Великой Автоматизации

4X_Pro
Всё! Я сделал трансляцию статей из разделов своего мультиблога в Twitter и на стену ВК! В Twitter (и оттуда в Mastodon на lor.sh) трансляция идёт через RSS с помощью сервиса Zappier. В отличие от IFTTT и dlvr.it, которые я использовал раньше, он позволяет управлять что именно из RSS идёт в Twitter: название, описание или ссылка. В частности, для разделов «Новости» и «Интересные материалы» мне нужна трансляция только самого текста без ссылок, а IFTTT и dlvr.it вставляли их принудительно, из-за чего лента выглядела ужасно: под каждым твитом — мой портрет и ссылка на главную 4xpro.ru. Теперь же всё работает как надо: из микроблогов — только текст, из больших блогов — название статьи и ссылка на неё.
От Facebook пришлось отказаться — там некоторое время назад поменялись правила, и теперь автоматическая трансляция на стену профиля то ли вообще невозможна, то ли сильно усложнена. По крайней мере, все сервисы предлагают транслировать только в группы (Facebook Pages, как их сейчас называют). Можно было бы создать такую, но с другой стороны, а так ли мне нужен Facebook вообще?
Ещё создал канал в Telegram и настроил трансляцию и туда с помощью ManyBot. Но у него есть ограничение: не более 5 потоков RSS, поэтому от трансляции микроблогов пришлось отказаться. Впрочем, возможно, потом напишу своего бота для этих целей, а также для отправки объявлений о создании новых тем на форуме.
Для ВКонтакте добавил процедуру через API прямо в код IntB (так же, как раньше и для отправки в ЖЖ из раздела «Лог жизни»), а также возможность отключить экспорт для отдельно взятых сообщений. Смущает, конечно, такая разнородность: где-то средствами IntB, где-то сторонними сервисами. Но зато получилось решение, которое работает уже сейчас, а не когда-нибудь. Ну и плюс не нужно писать запрос на получение доступа к Twitter API (собственно, это и есть главная причина).
Теперь ещё осталось доделать импорт из Instagram в раздел «Лог жизни» и Великую Автоматизацию можно будет считать завершённой! Хотя нет предела совершенству: верхние уровни соответствия принципам IndieWeb предполагают ещё и сбор комментариев и лайков, а также динамическое связывание, чтобы транслировалось не только исходное сообщение, но и последующие правки. Но на данный момент я воспринимаю это как бессмысленную работу, так как для моих блогов правки обычно несущественны.
Правда, как всегда, это оставляет двоякое чувство. Слишком по-разному сделанное оценивают мои субличности. Одна (которой соответствует архетип Тота из Эль-Тат) довольна тем, что решена очередная инженерная задача. Но другая (Гор по Эль-Тат) понимает, что в должной степени оценить важность этого могут только те, у кого тоже есть сайты на самописных CMS. Но много ли таких людей осталось в Интернете и в моём окружении? А всякие пользователи Joomla, Drupal и прочих Wordpressов давно могли поставить соответствующие plug-ins. Про тех, у кого есть только соцсети, а полноценных сайтов и вовсе нет, и говорить не приходится…

Возвращаюсь к идее трансляции блога

4X_Pro
Несколько дней приходил в себя после поездки. Выложил фото в Instagram, ВКонтакте и опубликовал в блоге первые две заметки из написанных в бумажном блокноте. Задумался над тем, что занимаюсь, по сути, бессмысленным дублированием информации вручную. Идеологически правильнее было бы постить всё только на своём сайте. Но увы, мы живём в мире наизнанку: лайков и просмотров из социальных сетей в том же Instagram я получаю в разы больше, чем на своём сайте или даже ВК. Поэтому отказаться от публикации там нет возможности, даже несмотря на все неудобство Instagram.
В какой-то момент я так распереживался по этому поводу, что даже задумался о том, чтобы уйти на Рестарт: начать жизнь под новым именем и вместо личного сайта просто купить доменное имя, привязать его к ЖЖ и настроить автоматический импорт из Instagram. А ещё вместо мультиблога + форума ограничиться структурированием информации в блоге только по хештегам. Только вот опыт с созданием новых аккаунтов ЖЖ и у меня, и у Tellы и у DarLik показывает, что сейчас там естественного прироста друзей и подписчиков нет…
Когда немного подуспокоился, решил вернуться к идее автоматизировать трансляцию контента в соцсети, к которой подходил весной. Тогда всё упёрлось в то, что OwnYourGram не работал на хостингах, и я забросил эту идею. Сейчас же возникла мысль прибегнуть к сервисам типа IFTTT. Но когда я туда зашёл, обнаружил, что не всё так просто. Оказывается, там нет универсальных решений типа «в ответ на событие сделать POST-запрос по такому-то адресу», а есть только виджеты, заточенные под конкретные сервисы типа GMail, Facebook и т.п. Или нужно разбираться, как создать свой виджет.
Потом нашёл решение под названием Huginn — self-hosted аналог IFTTT. Казалось бы, то, что нужно, и идеологически всё верно! Но есть одно маленькое но: для Facebook там нужно создавать своё приложение и проходить подтверждение (app review), чтобы получить возможность отправлять сообщения на стену. То же касается и Twitter.
В итоге нашёл другой сервис — Ayrshare. Там есть бесплатный тариф на 50 сообщений в месяц. С учётом того, как «активно» я пишу во все разделы, кроме «Лога жизни», этого вполне должно хватить. А самое
Но и тут есть сложности: он не поддерживает ВКонтакте. Впрочем, для ВК я могу написать и своё решение, так как там вроде нет всяких app review. Тем более, нужна трансляция материалов блога в виде статей, а новостей — в виде обычных записей на стену. В общем, сейчас собираюсь тестировать…

Ещё немного об СПб

4X_Pro
В дополнение к предыдущему сообщению решил добавить ещё несколько выводов, теперь уже конкретно по Санкт-Петербургу aka Городу-на-Краю-Земли:
1) Современный Петербург — город с духом какой-то внутренней свободы. Её там чувствуется гораздо больше, чем в Москве. Tella просто в восторге, а у меня порой этот избыток свободы вызывает некоторое раздражение. Но теперь понятно, почему так много школоты мечтает жить там!
2) Мне в СПб нужно ездить только в рабочие дни. По выходным там слишком уж шумно: то байкеры на ревущих мотоциклах, то уличные музыканты, то ещё что.
3) И всё-таки нужно не забывать, что СПб — город с интуитивным интерфейсом, и больше гулять, куда глаза глядят, а не ехать куда-то с конкретной целью. Так можно получить гораздо больше удовольствия от того, что удалось найти что-то интересное!

Итоги путешествия

4X_Pro
Вот и закончилось моё путешествие в Город-на-Краю-Земли с целью поиска себя. Настало время подвести итоги. Итак, поездка в целом была замечательной! Много впечатлений, кроме Санкт-Петербурга удалось посмотреть ещё два города: Выборг (который ОЧЕНЬ мне понравился) и Кронштадт (причём второй — внепланово), встретиться с Kitsune и сделать то, что не сделал в 2017 году: отправить в путешествие камни с побережья Балтийского моря. Но увы, главная цель поездки — поиск себя, так и не достигнута. Тем не менее, я сделал немало ценных выводов:
  1. Ожидания очень сильно разошлись с реальностью. Я представлял себе путешествие так: полдня неспешно брожу по городу с фотоаппаратом, потом сажусь где-нибудь с блокнотом, пишу какие-то возвышенные интеллектуальные размышления и впечатления от увиденного, а вечером переношу их и фотографии в блог и Instagram. По факту всё было иначе: утром долго раскачиваемся и собираемся, потом остаток дня носимся по городу, а к вечеру устаю настолько, что в лучшем случае могу просто описать события дня и перечислить, что видел. На отвлечённые размышления об увиденном просто нет ресурса. А попытки выкладывать фото в Instagram на ходу (как делает Tella) приводят к тому, что возникает многозадачность. А многозадачность для меня зло. В лучшем случае от неё просто пропадают впечатления от поездки, в худшем — начинает болеть голова.
  2. Мне нужно время на разгрузку от впечатлений и их переработку. И часа в день, как я предполагал раньше, для этого недостаточно. А если такое время не выделить, бессознательное оторвёт его ото сна: просто не смогу заснуть, как было в день третий. Причём это верно даже в случае усталости и недосыпа. Так что зря я задавался вопросом, правильно ли поступаю, что отмеряю жизнь аптекарскими весами. Если не буду этого делать, психика просто не выдержит.
  3. Если всё же перегруз произошёл, нужно отправиться куда-нибудь в монастырь или на кладбище. (Как это было в день четвёртый). Это очень успокваиает.
  4. Нельзя допускать обезвоживание. От него очень легко сваливает в агрессию по любому поводу на всех вокруг.
На этом пока всё. В ближайшие дни займусь тем, что буду выкладывать сделанные во время путешествия записи и фотографии.

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

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