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

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


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

t.me/4x_pro

Лог жизни

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


Большая закупка и весенняя прогулка

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

Прощай, МинБ!

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

Циклическая смена интересов продолжается

4X_Pro
Опять у меня циклическое переключение интересов. Всю эту неделю занимался ядром Linux: сначала оптимизировал свое самосборное (и вышел на время загрузки 1.5 секунд ядро, 3.2 секунды userspace без отключения MySQL, который добавляет секунду). Потом наткнулся на несколько интересных статей про драйвера Linux. Изучил и понял, что в общем-то, теперь в голове сложилась картина, как писать драйвер сложнее, чем printk("Hello world"). В частности, более-менее разобрался со стеком USB и обработчиками прерываний.
Но теперь меня с одной стороны сносит на возврат к работе над IntB (накопились мысли о том, что можно доделать), с другой — опять накатило небольшое уплотнение жизни.

О «хочу», «надо» и «страшно»

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

О налоговой декларации, неприятностях и белой интуиции

4X_Pro
Сегодня сдал налоговую декларацию УСН. Обычно я это делаю в январе. Но в прошлом году Эльба.Контур перешла на другую систему цифровых подписей, которая работает только из под Windows и Mac (эх, пора создавать лигу борьбу с дискриминацией пользователей Linux, а то уже какой раз сталкиваюсь, что что-то делают даже под Mac, но не под Linux!). А перезагружаться лишний раз не хотелось. Плюс бессознательное подсказывало, что будут какие-то проблемы, и из-за этого все тянул время и откладывал. Так и вышло! Когда все же перезагрузился и стал подписывать декларацию, система стала ругаться на отсутствие сертификата. Запустил программу для просмотра сертификатов, она стала показывать, что хранилище пустое. Попытался найти резервную копию сертификата, но безуспешно. Точнее нашел копию, как потом выяснилось, этого самого хранилища на внешнем жестком диске. Но не помогло. В итоге так и пришлось писать в техподдержку.
Ответили на удивление оперативно. Оказалось, что когда я в сентябре делал этот сертификат, не прошел последний этап — его скачивание и установку (т.к. думал, что это происходит автоматически, а там нужно было еще целых два раза код из SMS ввести). Хорошо, что сертификат был уже готов, и не требовалось использования старой подписи, которая к этому времени давным давно закончилась.
Но увы, и тут обнаружилась неприятность. Для доступа к хранилищу сертификатов требовался пароль, который я благополучно забыл. Уже совсем было приготовился писать в техподдержку еще раз, но потом вспомнил, где он может быть записан (поскольку я знаю, что пароли, которые используются раз-два в год, забываются очень легко, был уже такой опыт с сертификатами WebMoney). И таки пароль нашелся и подошел! Так что сейчас уже отчет ушел по назначению, и даже пришла SMS, что он сменил статус на «получен инспекцией».
В общем, как всегда, на простое действие в очередной раз ушло гораздо больше времени, чем планировалось. И, главное, уже в какой раз замечаю: если я без видимых причин тяну с началом какого-то дела, то, скорее всего, в этом деле вылезут неожиданные проблемы. Видимо, неосознанная четырехмерная БИ даёт о себе знать.

Продолжаю эксперименты с ActivityPub

4X_Pro
Продолжаю разбираться с протоколом ActivityPub. Перечитал пример в блоге Mastodon и наконец-то разобрался с тем, как сообщение-объект вкладывается в сообщение-действие. У меня-то REST API головного мозга, и я привык, что действие определяется либо HTTP-методом, либо URLом, а в ActivityPub это не так. В результате получается несколько многословно, но зато в стиле 1Л.
Начал писать простейший клиент на PHP для взаимодействия сервер-сервер, который с моего виртуального пользователя на этом сайте пытается отправить сообщение на мой настоящий аккаунт на lor.sh. Но увы, пока что-то делаю не так: получаю ошибку "Public key not found for key http://4xpro.ru/activity_pub/me#main-key", хотя по логам видно, что lor файл скачивает. Видимо, по каким-то причинам не может извлечь из него ключы. Главная сложность в том, что посмотреть, что происходит на сервере, я не могу, разве что поставлю на второй VDS свою копию mastodonа, но это решение на крайний случай.
Еще в процессе тестирования опять столкнулся с тем, что gmdate('r') возвращает дату почти в нужном формате, только часовой пояс выводит как +0000 вместо GMT, из-за чего на приемной стороне не могут ее нормально разобрать. Эх, ну почему нельзя было сделать именно для gmdate нормальную выдачу с GMT? Уже какой раз сталкиваюсь. Приходится идти кривым путем: заменять +0000 на GTM через str_replace, чтобы не возиться с форматом.

Несколько дней вне дома

4X_Pro
Опять слишком много времени провожу вне дома. В четверг встретился с DarLik. Встреча получилась довольно странной, но в целом позитивной.
В пятницу отправились на прогулку с Tellой в парк Горького. Но увы, прогулку мы спланировали еще почти неделю назад, и не учли, что пятница окажется одним из самых холодных дней. В результате я успел замерзнуть еще до того момента, как дошли до парка. Tella тоже мерзла, но ей это совершенно не мешало болтать всю дорогу. Как выяснилось, зимой в парке Горького делать особо нечего: из интересного там разве что большой каток (но ставить на коньки меня или Tellу — идея чуть более чем неудачная, поэтому оставалось только смотреть), в самой дальней части парка, — домик, где зимуют две пары лебедей: черные и белые. Потом мы решили отправиться к Фрунзенской. Пока поднимались на мост, я вспоминал о том, как прятался на этом мосту от внезапного снега весной 2017 года. И о том, как ездил делать с него фотографии для конкурса летом 2018. На той стороне моста оказались огромные ворота с солнечным символом. Когда-то давно я их видел, но уже благополучно забыл об их существовании, и теперь снова увидел. Потом мы наконец-то добрались до Фрунзенской, засели в пиццерии, и я стал согреваться.
В субботу не пошел на игры из-за того, что во-первых, с отцом собирались в воскресенье на лыжах (но так и не сложилось), во-вторых, в то же воскресенье планировался какой-то игровой фестиваль, поэтому я ожидал, что народу в субботу будет мало.
А в понедельник, проснувшись, я увидел за окном очень яркий солнечный день и сразу же решил отправиться на прогулку в Терлецкий парк. Сначала, когда вышел, ощущения были такие, как будто уже весна! Добрался до первого Терлецкого пруда, сделал вокруг него полный круг, немного пофотографировал. Потом отправился домой, пройдя мимо Декоративного (на современных картах Утиного) пруда. По дороге вспоминал весну 2009 года, когда Мик искусственно отправил меня в состояние Я+Ты+. Думал о том, насколько все же тогда лучше я чувствовал включенность в жизнь. Сейчас же мне снова не хватает этого, возможно, из-за слишком смещенного режима сна.
А вечером наконец-то прошел игру Sentence, и получил то же чувство завершености и того, что все стало в поярдке, как было когда-то после прохождения Quest for Glory. Хорошо, что там нет привязки к реальному времени, так как прохождение растянулось более чем на месяц, хотя по сюжету проходит максимум две недели.

Снова о децентрализованной соцсети

4X_Pro
Сегодня неожиданно для себя вернулся к размышлениям о децентрализованной социальной сети, о чем немало писал в августе-сентябре. И теперь вроде сложилась в голове картина, как все должно быть устроено. Все же то, что я называю инфохабом, должно быть отдельно, идея насильственно интегировать его с Intellect Board — не очень хорошая. А в IntB нужно просто предусмотреть возможность указать в контактах свою страницу, поддерживающую ActivityPub, и, если она указана, выводить кнопки для подписок на тему/раздел/форум, где каждая тема будет выступать в роли виртуального пользователя, а точнее, в терминах ActivityPub, агента. Ну и возможность отправки уведомлений об активности типа «Создал новую тему на форуме» (для этого, возможно, создать отдельный канал). А дальше — все как я и задумывал раньше: блочный вывод на главной странице инфохаба с возможностью подписаться на каждый из каналов в отдельности или на весь поток событий в целом. И в качестве отдельных независимых сервисов реализовать шлюзы с ВК, Facebook и т.п. (Кстати, для Twitter и Instagram они уже есть.)
С другой стороны, проблема заключается в том, что некоторые типы каналов будут дублироваться и в IntB, и в инфохабе. Например, раздел со списком задач, раздел анонимных вопросов и т.п. И тогда имеет смысл подумать об еще одном варианте — двух разных сборках на основе общего кода, различие которых будет, в основном, в инсталляторе и начальных настройках. В общем, опять не могу определиться…
Впрочем, кое-что все-таки ясно: сервисы-шлюзы можно делать уже сейчас. Равно как и поддержку подписки в IntB. А еще можно сверстать статическую страницу для того, чтобы понять, как все должно выглядеть…

Бесолезный, но интересный опыт с Linux

4X_Pro
«Уплотнение жизни» закончилось, и в последние дни опять занимался тем, что получал бесполезный, но интересный опыт. (Впрочем, если рассматривать его с позиции «доказать, что можно жить под Linux и за счет этого реже обновлять железо», то не такой уж бесполезный.) Сначала попытался установить Windows 95/98 в DosBox. И даже отчасти получилось, о чем писал на форуме, но в итоге результат оказался совсем не тот, на который я рассчитывал. Потом тестировал работу старых игр под пятой версией wine. Вот там результаты порадовали: заработало почти все, кроме Majento PositionMeter. Впрочем, нашел ему альтернативу под Linux — RankTracker. Правда, приложение жутко громоздкое — 200 Мб (для сравнения, PositionMeter всего 7 Mb). И самое главное, не позволяет сохранять историю позиций, то есть придется их руками в Excel перебивать.
А еще не выдержал и поставил LXDE вместо Mate, и тему Lubuntu для неё. Уж очень меня достало неудобное меню в Mate, и то, что для Win+D и Win+L (сворачивание окон и блокировка) нужно переключать раскладку, тогда как LXDE воспринимает эти комбинации хоть на русской, хоть на английской. Так что теперь собрал плюсы и дистрибутива Mint (корректная работа с принтером и подключаемыми наушниками) и LXDE (легкий и привычный интерфейс).
Сегодня занялся дооптимизацией ядра. Вынес почти все возможное в основную часть, кроме модулей WiFi, nouveau и zram, вынос которых из модулей приводит к глюкам, избавился от initramfs. В результате время загрузки теперь снова составляет всего 5.1 секунды!
Пытался еще экспериментировать с выигрышем в плане скорости работы Интернета за счет смены протокола congestion control, но безрезультатно. До сервера провайдера скорость почти не меняется. А если выбрать в качестве цели что-нибудь дальнее (я выбрал сервер в Сиэтле, так как там же находится сервер CodinGame), то разбросы в скоростях получаются такие, что непонятно, что тут больше влияет: мои настройки или текущая загруженность канала.
Еще окончательно достала нехватка места, поэтому поступил радикально: снёс recovery-раздел, который производитель почему-то разместил на SSD, а не втором диске. В результате Linux-раздел стал почти вдвое больше: 25 Гб вместо 13. И теперь могу поставить Postgres, MongoDB и NodeJS, а так же тот же wine.
Утром также была мысль попробовать поставить фильтрующий proxy под названием privoxy (точнее, сначала вообще хотел написать сам что-то такое на go), чтобы резать рекламу, счетчики, виджеты, автоматическое видео и всякие надоедливые штуки типа Chatra/Jivosite. Но пока так и не решил, будет ли это лучше, чем использование встроенных средств Opera + JavaScript по белому списку с помощью расширения ScriptSafe.

Инфоголизм и циклическое сканнерство

4X_Pro
Несколько дней назад пришло совершенно неожиданное осознание, почему я все время переключаюсь с одних жизненных задач на другие и не могу заниматься чем-либо более трех дней подряд, за исключением разве что отключения Интернета, и возвращаюсь к исходной задаче только спустя несколько месяцев, а то и лет. (В терминологии Барбары Шер это называется циклическим сканнерством.) Причем возвращение происходит обычно тогда, когда мне снова попадется какая-то информация по этой теме.
Все оказалось достаточно просто. Это не столько результат проблем с самодисциплиной, как я думал раньше, сколько избегание попаданий в зоны неуверенности. Таких зон у меня несколько. Первая — необходимость делать что-то в условиях отсутствия твердого понимания, как нужно действовать, необходимости экспериментировать, импровизировать, действовать вслепую. Например, писать что-то сложнее программ школьного уровня на языке программирования, в котором пока еще толком не знаешь возможностей стандартных библиотек. Вторая — искать какую-то неконкретную информацию с высоким риском наткнуться на ненадежный источник. И третья — взаимодействовать с людьми за пределами каких-то стандартных (либо для меня, либо для них) сценариев взаимодействия. Кстати, сейчас, расписав все это, понял, что во всех этих случаях так или иначе задействуется пятый уровень ТУАИ.
Работает это крайне просто: каждый раз, когда предстоит что-то подобное, бессознательное резко снижает интерес к этой задаче и резко повышает — к любой другой информации. Начинается тот самый «информационный запой» или «инфоголизм», когда поглощаю кучу бесполезного контента, понимаю это, но не могу оторваться. Иногда бывает другой вариант — бессознательное просто вытесняет то или иное намерение так, что потом я о нем вспоминаю только если увижу запись в блоге или списке «замыслы и планы». Развиваться эта стратегия стала где-то в 2003—2004 годах, когда я стал выходить в Интернет через GPRS, а не модем, и время пребывания в Сети перестало быть ограниченным, а в серьезную проблему переросла после Второго Подключения.
Таким образом, получается, что проблема не в избытке информации в современном мире, как я думал раньше, а именно в этой деструктивной стратегии убегания. Просто в условиях, когда переключаться не на что, эта стратегия не срабатывает, поэтому и кажется, что отключение Интернета помогает. Впрочем, не всегда, так, например, в период ухода в оффлайн в прошлом году я целыми днями играл в Arcanum и не мог оторваться.
И теперь понятно, как происходит возвращение: повторный интерес к теме возникает не просто тогда, когда попадается новая информация, а когда приходит та информация, которая дает ответы на те вопросы, из-за неуверенности в которых произошло переключение. Ну или решение найдется само, после того, как я покручу задачу в голове достаточно времени.
Реально же решить проблему, по идее, должно выделение специального времени на обдумывание, в течение которого я прокрутил бы задачу в голове и нашел бы решение, которое перевело бы ее в зону уверенности — то самое состояние целостного видения, которое я описывал где-то в конце прошлого лета. И, в общем-то, решение я тоже тогда нашел: выделять вечером часа полтора-два просто на обдумывание имеющихся проблем и задач. Впрочем, против неуверенности, связанной со взаимодействием с людьми, это не поможет. А вот против остальных — вполне.

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

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