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

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


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

t.me/4x_pro

Лог жизни

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


Хаотичная активность и большая прогулка

4X_Pro
В последние дни какая-то хаотичная активность. Хотя вроде нашёл решения проблем с IndieWeb, как-то нет внутреннего ресурса начать их реализовывать. Вместо этого берусь за какие-то совершенно сторонние дела: то парсер для выдачи Яндекса начал писать, то решил попробовать сделать биграммный анализатор для соционического типирования, то начал писать заметку о выживании в Интернете для своего первого Дзен канала. Причём в каждом из этих направлений делаю шаг, упираюсь в какую-то проблему и бросаю.
Например, парсер для Яндекса с первого же запроса получает CAPTCHA. Видимо, нужно сначала сделать запрос главной страницы, получить скрытые поля формы, а потом уже обращаться к серверу.
Биграммный анализатор я сделал (использовав для этого NLTK), но, наученный прежними экспериментами, сначала решил проверить на устойчивость результатов на разных текстах одного автора. На своих результаты оказались довольно стабильны, а вот когда взял стихи Tellы и сравнил с её же сообщениями ВК, разброс оказался огромный. И теперь не уверен, стоит ли продолжать эксперименты. К тому же, наверное, нужно не «в лоб» сопоставлять результаты, а считать сначала разницу со среднестатистическим распределением биграмм в русском языке. Но вот где их взять?
В написании заметки сформулировал пять главных принципов, и продумал, как их раскрыть, но увяз на вводной части.
Ещё попытался было поднять собственную копию OwnYourGram на VDS, где стоит socionics.me, но и тут ждала неудача. Когда стал подтягивать зависимости через composer, тот ругнулся, что им требуется PHP 7.1. А чтобы поставить 7.1, нужно либо всю систему обновлять, либо ставить PHP из стороннего репозитория (что мне ну очень не нравится).
Пожалуй, единственное, что довёл до конца за эти три дня — это добавил в SiteKnockerBot удаление из списка мониторинга сайтов, если пользователь заблокировал бота. Хотел написать об этом заметку в компьютерный блог, но так и не собрался…
Зато сегодня выбрался на прогулку к Первому Декоративному (aka Собачьему) и Ольнянному прудам. Изначально думал, что она займёт не так уж много времени, но в итоге прогулял два часа. Понял, что Первый Декоративный пруд недооценивал: считал его неинтересным, но там достаточно классно. И это, наверное, самый безлюдный пруд в парке. Посидел там некоторое время на скамейке, понаблюдал за чайками, которые его облюбовали, и парой уток.

IndieWeb — решения найдены!

4X_Pro
Вчера нашёл решение тех проблем с IndieWeb, о которых писал в прежних сообщениях.
Во-первых, решил вопрос, что делать с endpoints в подразделах, которые не видны на главной. Решение оказалось очень простым: добавить поддержку авторизации не только с адресом главной страницы, но и с адресом подраздела, если авторизуемый пользователь прописан как его владелец. То есть я смогу заходить, используя не только адрес 4xpro.ru, как сейчас, но и 4xpro.ru/lytdybr/, 4xpro.ru/news/ и тому подобное. Правда, в этом случае для каждого раздела на сторонних сервисах придётся делать настройки отдельно, но на то это и мультиблог с независимыми разделами. Ну и придётся переделывать уже сделанный код авторизации, что тоже не особо радует.
Во-вторых, понял, как всё же решить вопрос с репостингом в социальные сети. Всё же не встраивать его в IntB, а сделать на поддомене аналог Bridgy, но с поддержкой ЖЖ и ВКонтакте, который будет выполнять репост в каждый из сервисов по приходу Webmention. А дальше для каждого раздела сделать возможность в настройках задавать список предлагаемых Webmentions, для которых будут выводиться галочки при отправке сообщения. Таким образом, репостинг будет полностью управляемым (что для меня важно), и общее решение полностью соответствует духу IndieWeb.
И даже с Facebook придумал решение, правда, довольно кривое. В Facebook можно отправлять соообщения через RSS с помощью dlvr.it. И тогда получается такая схема: я делаю Webmention с сайта на сервис, тот сохраняет его в RSS, и скармливает его dlvr.it, который репостит на Facebook.
Кстати, попробовал было найти какой-нибудь бесплатный сервис, аналогичный dlvr.it, но ориентированный на Рунет, но так и не нашёл. Уже не первый раз с удивлением обнаруживаю, что сейчас найти что-то бесплатное (пусть и с существенными ограничениями, но для частного некоммерческого проекта их обычно достаточно) в англоязычном Интернете проще! Кроме уже упоминавшегося dlvr.it, в своё время так находил как минимум бесплатную базу PostgreSQL. Воистину, мы оказались в мире наизнанку!

Две прогулки в Кусково

4X_Pro
Вчера выбрались с Tellой в Кусково. Я очень хотел поймать момент, когда активно тает снег, и все ручьи и канавы заполнены водой. И, надо сказать, это удалось. Увы, не учёл только одного: в парке, особенно у пруда, значительно холоднее, чем в городе, поэтому быстро замёрз. А Tella устала, поэтому прогулка получилась достаточно короткой: мы прошли вдоль пруда, потом по аллее вдоль канала. На какой-то момент хотели выйти к Сухому пруду, но передумали и ненадолго углубились в лес. Немного посидели на скамейке (и я вспомнил, как в 2007—2008 годах сидели там с Миком и строили огромные планы по работе с бессознательным) и ушли на берёзовую аллею, начинающуюся недалеко от самого дальнего залива, хотели дойти до дубов. Но увы, там было слишком грязно, и поэтому повернули назад. Прошли по дальнему берегу пруда и решили возвращаться. В целом впечатления от прогулки остались весьма позитивными, а вот фото я почти не делал: небо было всё же мрачноватое. Вместо этого снял несколько видео ручьёв и выложил в Instagram, и пару раз сфотографировал Tellу, причём из одной из фотографий она сделала себе новый аватар.
За остаток дня толком ничего не сделал, кроме мелкой доделки SiteKnockerBot для одного из давних пользователей. А ночью впервые за последнее время случился приступ бессонницы. Не мог уснуть до 6 утра примерно. Утром проснулся, и в голове сложилась картина, что же делать с теми проблемами IndieWeb, в которых писал в предыдущих сообщениях. А потом, выглянув на улицу, я принял совершенно неожиданное для себя решение: отправиться в Кусково второй день подряд! Только вот собирался долго, из дома вышел только около 16 часов. И на этот раз отправился в Кусково пешком. Но позже выяснилось, что это и к лучшему.
Увы, вынословость у меня стала хуже, и когда дошёл до Дворцового пруда, уже ощутимо устал. Стал было искать скамейку, чтобы сесть и отдохнуть, но это оказалось не так-то просто: сегодня в Кусково было гораздо многолюднее. Пришлось обойти полпруда, прежде чем скамейка нашлась. Пока сидел и отдыхал, вспомнил одну свою старую идею — жизнь в режиме свободного скитания по городу, так, чтобы домой приходить только поспать. Возникла эта идея в 2012 году, когда у меня появился смартфон, и я ушёл с работы. И понял, насколько я переоцнивал свои силы тогда: всё-таки делиться впечатлениями на ходу с телефона — это совершенно не моё. Чтобы написать хоть сколько-то развёрнутую заметку, мне нужен компьютер, покой и замкнутое пространство. Кстати, думаю, ещё бы и просто весь день находиться в людных местах мне было бы тяжело.
Отдохнув, я снова вышел к тому месту, где перед впадением в пруд сливается несколько ручьёв. Правильно я сделал, что выбрался вчера: сегодня воды в них было уже ощутимо меньше. Зато на ручье кто-то установил игрушечное водяное колесо, которое даже вращалось! Потом снова отправился на ту аллею, о которой уже упоминал. На этот раз всё же дошёл до поляны со старыми дубами и сделал несколько фотографий. Но дальше идти не решился, вернулся немного назад и свернул на более-менее сухую тропинку, по которой вышел на дорогу, которая пересекает Собчачий ручей. Осмотрел его, сделал несколько фотографий лесных луж, которые там просто огромны. И понял, что правильно сделал, что вышел так поздно: когда солнце клонится к закату, можно сделать куда более интересные фотографии отражений, чем просто в дневное время. Перед уходом решил всё же дойти до Сухого пруда. Оказалось, что весной он не такой уж и сухой — на дне скапливается вода, затапливает выросшие там деревья и кусты, среди которых прячется множество уток. А ещё осмотрел ещё один ручей.
В общем, очень доволен и той, и другой прогулками! Правда, во второй по-настоящему интересной была только вторая часть (ручьи, аллея и далее). А ещё и там, и там было то, чего мне часто не хватает: ощущение того, что спешить некуда и незачем, всё идёт как надо, включенность в здесь и сейчас.
Ещё во время второй прогулки устроил проверку приложения-шагомера. Писал маршрут Геотрекером, и потом сравнил показания. Расходились они существенно: по Геотрекеру получилось почти 8 км, а приложение-шагомер насчитало чуть меньше 7 км. Только вот непонятно, в чём ошибка: в размере шага или в подсчёте их количества. Приложение считает, что при моих параметрах шаг должен составлять 74 см. Но если взять, и поделить правильное расстояние на число шагов, которое приложение насчитало, то получается, что шаг составляет 87 см.

Дальнейшие размышления о моём пути в IndieWeb

4X_Pro
В конце прошлой недели испытал ещё одно небольшое разочарование в IndieWeb: сервис OwnYourGram пишет, что Instagram блокирует обращения с него, поэтому добавление новых пользователей прекращено. Впрочем, его исходный код есть в свободном доступе, и можно будет поднять собственный экземпляр. Но опять могут быть сложности с тем, что у меня Micropub endpoint будет видна только в подразделе «Лог жизни», куда и нужно транслировать записи из Instagram.
Но, поразмыслив в пятницу и субботу, пришёл к выводу, что на самом деле не всё так плохо. В общем-то, изначально планы у меня были не такие уж большие: делать репосты новостей в Twitter, статей из блога — в VK и Facebook (и, выборочно, тоже можно в Twitter), импорт сообщений из Instagram в раздел «Лог жизни» и экспорт этого же раздела в ЖЖ (и, возможно, в другие блоги типа Privet.Ru). Но всё, кроме Facebookа, можно сделать своими силами: для работы с Instagram API модуль у меня уже есть, с VK API тоже знаком, в Twitter, хоть там и сложно получить аккаунт разработчика, можно всё же слать через Bridgy. Правда, с Twitterом что-то непонятное: почему-то и через Bridgy, и через Dlvr.It режутся внешние ссылки. С ЖЖ тоже вопрос решён, только довольно криво. Ну а на Facebook — попробовать использовать всё тот же dlvr.it.
Вопрос только в том, как лучше сделать — встраивать всё это в IntB или вынести в отдельный сервис, аналогичный Brid.Gy, но с поправкой на особенности IntB, в частности, расположение endpoints в подразделах…

Прошёл Heroine's Quest

4X_Pro
Сегодня прошёл игру Heroine's Quest за rogue (воровку/барда). Чувствую с одной стороны, мощный эмоциональный подъём, с другой — небольшую грусть по поводу того, что игра закончена. Эх, такая красивая история и такой замечательный игровой мир, выдержанный в лучших традициях Quest for Glory — одной из самых значимых для меня игр. Впрочем, потом ещё пройду за воительницу и волшебницу, там немало отличий, да и дополнительные квесты разгадал далеко не все. Так что буду возвращаться ещё не раз, но первое прохождение — это первое прохождение!

Кошмары исчезающего времени продолжаются

4X_Pro
В среду и первую половину четверга чувствовал себя отвратительно, и сил и желания ни на что не было. В какой-то момент даже боялся, что снова заболел COVIDом. Из-за этого до сегодняшнего дня безвылазно сидел дома и отменил уже было намеченную встречу с Tellой. Плюс ещё усилился кошмар выпадающего времени и, как следствие, компульсии. (Или наоборот, компульсии создают ощущение выпадающего времени?)  И ещё ощущение, что за последний месяц нет никакого движения в жизни, а какое-то вязкое болото (привет, третье Будущее по темпористике).
В четверг сделал сделал то, что называю «лёг на дно реки жизни» — ушёл в полуоффлайн и почти всё время либо играл в Heroes II и Heroine's Quest, либо читал книжки. И как только это сделал, забив на всякие «надо», сразу такое ощущение облегчения наступило! А в пятницу и самочувствие улучшилось. Плюс ещё повезло, что сейчас затишье с freelance-деятельностью (то, что висело надо мной до этого, всё же доделал утром четверга).
Ещё как-то странно реагирую на постоянные щелчки мессенджеров, звуки звонков и SMSок: очень раздражают. А тут ещё и мошенники точно взбесились: за пятницу целых 12 звонков. Причём только сброшу один, тут же идёт новый, с совершенно другого номера. Приходится отправлять телефон в полётный режим, чтобы переждать, но потом сыплются SMS «вам звонили» от провайдера. Эх, надо бы найти какое-то приложение-автоответчик, которое говорило бы что-то вроде «если вы надеетесь получить с меня денег мошенническим путём — пойдите и сдайтесь в правоохранительные органы, если хотите предложить мне приобрести товар или услугу — нажмите кнопку „положить трубку”, если реально хотите со мной связаться — напишите сначала SMS, зачем именно».
Сегодня, увидев, какая за окном погода, всё же решил выбраться на прогулку. И, надо сказать, не зря. Отправился к Большому Перовскому пруду, возле которого бываю не так уж часто. По дороге ещё нашёл очень тихий дворик, зайдя в который, испытал ощущение, будто нахожусь не в Москве, а где-то далеко от неё и в каких-нибудь 1980-х годах, так там было спокойно и неспешно.
На пруду тоже неплохо: ощущение солнца, простора и какой-то лёгкости и радости жизни. Уток на пруду почти нет, зато много чаек. Как это ни странно, пруд всё ещё покрыт льдом, только у самых берегов чуть-чуть протаял, а лёд из-за неба тоже кажется синеватым. И просто огромное количество шашлычников на берегах пруда!
Прогулка оставила двоякое впечатление. С одной стороны, очень доволен, что выбрался, получил массу позитивных эмоций. С другой — вернулся домой только в 18 часов, и получается, что опять весь день пролетел куда-то мимо. Но всё же кое-что сделал — выложил в Indieweb Wiki заметку о себе и в примеры на странице про протокол IndieAuth добавил информацию о том, что тоже реализовал его у себя.

Некоторое разочарование в IndieWeb

4X_Pro
В последние дни начались какие-то разочарования, связанные с IndieWeb. Сначала перепутал MicroSub с WebSub. Хотел было сделать возможность читать уведомления в мобильном приложении Indigenos. Прочитал описание WebSub, подумал «надо же, как легко реализовать», а потом оказалось, что для Indigenos нужен MicroSub, который значительно сложнее.
Сегодня решил наладить ретрансляцию сообщений через сервис Bridgy.io Но оказалось, что там далеко не всё так хорошо. Для тех же Instagram и Facebook нужно ставить «костыль» в виде web-расширения для броузера. VK он не поддерживает в принципе. По сути, из того, что мне нужно, там нормально работает только взаимодействие с Twitterом. Но и тут возникли сложности: там нельзя явно указать адрес сайта, а Bridgy берёт его из аккаунта в Twitter. И в результате начинаются сложности из-за того, что у меня мультиблог: endpointы для WebMention находятся в подразделах, а не на главной, и Bridgy их просто не видит (хотя отчасти это можно обойти через явную отправку WebMention-запроса к Bridgy).
В общем, возвращаюсь примерно к тому, с чего когда-то начинал: нужно делать ретрансляцию сообщений в соцсети (POSSE в терминах IndieWeb) своими силами. Только вот для Facebook, насколько я понимаю, получить такие права на приложение можно только после прохождения идентификации, что для меня не вариант. В Twitter нужно писать запрос в свободной форме, но неизвестно, дадут права или нет…
А самое главное, видна тенденция на то, что доступ к API у крупных площадок всё более и более ограничивается. И не окажется ли так, что со временем его закроют вообще, и все мои усилия пропадут напрасно.

Жизнь на одну четверть

4X_Pro
Открыл свой старый файл с замыслами и планами, который создал ещё в 2019 году, но с Недели Кошмаров, если не раньше, туда не заглядывал. Оказалось, что из 52 пунктов, которые там были, полностью сделаны только 12, ещё по 4 есть некоторое продвижение и 3 вычеркнуто по причине утраты актуальности. Впрочем, сейчас подумываю вычеркнуть ещё один (хотел было написать легкий, не перегруженный аналог Postmanа на Qt или wxWidgets, но нашёл сайт ReqBin, где это реализовано онлайн). И сегодня добавил ещё 5 пунктов (правда, один из них — это как раз та самая заметка для IndieWeb, о которой упоминал в предыдущем сообщении).
Вот такая вот личная эффективность: реализую всего чуть больше четверти от задуманного… Впрочем, эта самая одна четверть появляется много где. Во-первых, субъективная скорость течения времени у меня примерно в три-четыре раза меньше объективной (то есть кажется, что с событий, бывших год назад, прошло 3—4 месяца). Во-вторых, сегодня задумался над тем, что по-настоящему живу где-то чуть больше недели в месяц (как раз ¼), когда на биоритмическом максимуме появляется избыток ресурса, чтобы «взлететь» над повседневной текучкой и заняться чем-то действительно стоящим и интересным. Но максимум проходит, и потом вместо полёта снова происходит приземление в болото сиюминутности и повседневности. И это несмотря на то, что в жизни всё лишнее (работа за деньги, быт и т.п.) сведены к минимуму!
Эх, и почему высшие силы дали мне такой сильный разброс по биоритмам? На подъёме IQ уходит за 140, а на минимуме чуть ли не до 110 падает… И насколько же ужасна жизнь простых людей, у которых даже этой недели взлёта нет…

Написал заметку для IndieWeb Wiki

4X_Pro
Кажется, у меня начинается новый биоритмический максимум!
Сегодня проснулся и сделал то, что собирался почти весь март, — написал о себе и своих разработках для личной страницы в IndieWeb Wiki. Indieweb — сообщество англоязычное, поэтому писать требовалось in English. Но вот объяснить по английски мне концепцию инфохаба или мультиблога было сложно, из-за этого и откладывал. А в случае с мультиблогом смущало ещё то, что никто до подобного не додумался. Правда, перед публикацией решил отправить Tellе и 10geekу с целью убедиться, что написано хоть сколько-то понятно и нет явных ляпов. Но они пока не отписались.

Дни низкой эффективности

4X_Pro
Опять начались какие-то дни низкой эффективности. В среду очень сильно тормозил, а время девалось непонятно куда, почти как в моих кошмарах про выпадающее время. В четверг с утра чувствовал себя отвратительно, из-за чего даже отменил встречу с DarLik. Часам к 14 немного ожил, но остаток дня всё равно прошёл мимо. Сегодня вроде всё получше, но тоже особо ничего не сделал. Поработал немного над freelance-сайтом, потом остаток дня играл в Heroine's Quest. А вот поддержкой WebPub пока прогресса нет…

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

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