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

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


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

t.me/4x_pro

Лог жизни

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


Вчерашний суперэффективный день

4X_Pro
Вчера был просто суперэффективный день: успел почти всё, что хотел, за исключением одной небольшой доделки для SuperMon_Bot. И даже больше: нашёл на Coursera курс по UI/UX и прошёл первую неделю. Решил, что может быть, тогда интерфейсная часть любого проекта будет вызывать меньше неприятия. Правда, курс, похоже, совсем обзорный, без углубления. Видел также материалы от Google, но там другая крайность — специализация на несколько курсов (и не уверен, можно ли пройти её бесплатно).
Вечером посмотрел ещё первое видео курса «Биология поведения», ссылку на который прислала И.Х.
А сегодня, видимо, как обычно, будет обратная крайность: день пройдёт мимо. Тем более погода на улице ужасная, и это дополнительно давит на психику UPD: Но, как оказалось, нет. Посмотрел второе видео курса «Биология поведения», успел кое-что из домашних дел, и ещё посмотрел видео про использование node.js для выдачи server side events. И поиграл ещё немного в Heronie's Quest, но там давно уже нет продвижения вперёд.
Единственный минус — это перегруз общением, впервые за последнее время выключил мессенджеры. Хотя, возможно, дело не в общении как таковом, а в постоянном переключении между видео и сообщениями.

Первые разочарования в Mastodon

4X_Pro
Вчера попытался с наскока сделать те три исправления в Mastodon, но не получилось. Долго ломал голову над роутингом: оба URL (для локальной ленты и для пользовательской) вызывали один и тот же контроллер home#index, где в самом файле вообще почти ничего не было. И только потом дошло, что подгрузка ленты сообщений делается с помощью JavaScript! Это сразу заставило задаться вопросом: а будет ли работать без него. Оказалось, что нет. И это было серьёзным разочарованием. Одно дело отступить от принципа «на моём сайте только мой код» (от него я уже пару раз отступал, когда создавал tipiruem, typforum и socionics.me), а совсем другое — от принципа graceful degradation и того, что хорошо сделанный сайт должен работать без JavaScript. В общем, теперь даже не знаю, что делать…
Попытался даже сделать расклад на Таро с вопросом «как повлияет уход на Mastodon на мой Путь». Выпал перевёрнутый Иерофант (VI аркан), а также самопроизвольно выпали перевёрнутый Король Мечей и прямая Королева Пентаклей (хотя сейчас точно не помню, реально прямая или я перевернул). С учётом того, что Иерофант — это, вообще-то мой сигнификатор, это очень плохой знак…
Но есть и позитивный момент. Изучая код Mastodon, узнал про формат HAML и нашёл для него парсер на PHP. Причём очень экономный в плане памяти: тестовый пример с его использованием занимает всего 560 Kb памяти! Если вернусь к работе над своим frameworkом, буду его использовать, так как он значительно ускоряет то, чего я терпеть не могу — написание HTML-кода.

Ещё немного о сообществе на Mastodon

4X_Pro
Продолжаю размышлять о создании сообщества идеалистов на базе Mastodon. В принципе, все те недостатки, о которых я уже писал, можно исправить самостоятельно. Ещё выяснилось, что Mastodon изначально поддерживает PWA, но только на базовом уровне: позволяет добавить значок на рабочий стол и делать PUSH-уведомления. А кешировать просмотренные записи или писать сообщение в оффлайне — увы, нет. Потестировал ещё пару мобильных приложений — официальное, которое так и называется Mastodon, и Tusky. В них можно готовить черновик в оффлайне (примерно так же, как в Instagram), но нельзя его сохранить и вернуться к просмотру ленты. То есть действовать придётся так: написал, сразу включил Интернет и отправил, иначе может потеряться.
Кроме того, выяснилось, что есть desktop-приложение Whalebird, которое позволяет работать с несколькими аккаунтами одновременно. Это важно, так как уже задумал сделать отдельно официальный аккаунт сообщества, аккаунт с каталогом сайтов, каталогом страниц идеалистов и канал халявой. И перелогиниваться всё время было бы очень неудобно, а отслеживать ЛС нужно для приёма заявок в каталоги.
Ещё выяснил, что для работы Mastodon требуется примерно 860 Мб памяти. И это я ещё не ставил Elastic Search для полноценного поиска с морфологией (я бы предпочёл Sphinx, но он вроде не поддерживается). То есть VDS с 1 Гб будет хватать впритык, если пользователей станет больше. Стал смотреть, сколько сейчас стоят VDSы с 2 Гб, и оказалось, что они весьма подорожали: в большинстве мест — от 700 руб и выше. Только на FirstByte, где я когда-то держал socionics.me и ботов, нашлась пара приемлемых тарифов: 1.2 Гб с двумя ядрами за 248 руб и 1.5 Гб с тремя — за 300. И ещё на FirstVDS нашёл вариант с 2 Гб за примерно 272 руб, но всего одним ядром. Правда, не знаю, что Mastodonу нужнее — ядра или память. UPD: установил Elastic Search, и оказалось, что на 2 Гб он даже стартовать не может: падает по OOM killer. Пришлось увеличить память для виртуалки до 4 Гб.
И ещё всё же понял, какой формат будет там у личного аккаунта. В основном, Сетевые находки (статьи, книги, игры) и свои комментарии/размышления по поводу них и некоторые мысли, не тянущие на полноценные статьи. Правда, это будет дублировать разделы «Общество», «Личность» и «Сиюминутное» на форуме при этом сайте. Но с другой стороны, туда всё равно слишком редко кто заглядывает, да и сам зачастую не хочу создавать темы, которые содержали бы по сути только внешнюю ссылку + пару строк от меня.
В общем, всё больше и больше прихожу к выводу, что если смогу быстро разобраться, как сделать нужные исправления в Mastodon, то решение запускать сайт идеалистов на нём — правильное!

О Web-программировании и идентичности

4X_Pro
Позавчера ночью осознал, что заниматься Web-программированием давно уже не является моим истинным желанием. Исключением, да и то с оговорками, было создание личного сайта летом, но там скорее было интересно придумывать «пасхалки». Вот, скажем, копаться в настройках системы, экспериментировать с измерением их влияния на производительность или там изучать одноплатники, чтобы сделать домашний файл-сервер, писать скрипты для автоматизации чего-либо — да, по-прежнему интересно и даёт чувство морального удовлетворения от сделанного. А с Web — такого ощущения нет.
Вообще, с Web-разработкой у меня было так: самой первой причиной, почему я этим занялся, было желание показать бывшим лицеистам, что я могу с этим справиться. Потом — желание иметь возможность транслировать в мир свои «антиускорительские» идеи. Я считал, что в будущем человек, который умеет делать сайты, будет иметь такое же преимущество, как грамотный перед неграмотными в прежние времена.  Дальше я сосредоточился именно на форумах  как средстве создания сообщества своих единомышленников, проекта с собственным лицом (какими и были в своё время openproj.ru и socioclub.org).
А ещё Web-программирование было для меня возможностью сделать что-то, что позволило бы встать в один ряд с Брэдом Фицпатриком (создателем ЖЖ), Джеймсом Аткинсоном (автором PHPbb), Алексисом Оганяном (один из основателей Reddit)  и другими личностями, чьи творения серьёзно повлияли на Интернет.
Но увы, сейчас всё это потеряло актуальность. Умением делать сайты на чистом HTML+PHP без frameworkов теперь уже никого не впечатлишь. Транслировать идеи эффективнее не через личный сайт, а через крупные площадки (либо хотя бы автоматизировать репосты туда). Проект, сделанным одиночкой без большого сообщества, в наше время либо просто не заметят, либо не рискнут воспользоваться из соображения «есть риск, что поддержка может прекратиться в любой момент». А для создания того же сообщества идеалистов мне достаточно создать отдельный instance того же Mastodon и сразу получить готовое решение с красивым интерфейсом, без нескольких месяцев разработки. (Кстати, интерфейсы — это моя отдельная боль: будучи аскетом по мировоззрению, терпеть не могу ими заниматься потому что воспринимаю время, потраченное на них, как бесполезное, но с другой стороны, часто именно интерфейс  решает, будут ли люди этим пользоваться.)
И поэтому бессознательная часть психики, которая следит за вопросами эффективности, во всю саботирует то, чтобы я занимался Web-разработкой, переключая моё внимание на другие задачи.
С другой стороны, на Web-программирование и мои проекты во многом завязана моя идентичность, ответ на вопрос «кто я». Даже на личном сайте это идёт первым пунктом. Отказавшись от неё, я лишусь возможности чувствовать себя творцом, и скачусь в простые потребители. Собственно, именно из-за этого проваливались все мои прежние попытки отказаться от больших замыслов и заниматься только малыми проектами, которые можно полностью сделать за пару дней. К тому же есть несколько идей, которые я считаю нужным всё же принести в мир: каталог бесплатностей и личных страниц, мобильное сообщество с возможностью писать записи в оффлайне, open soruce-аналог движка Pikabu.
Но каталог можно реализовать в виде бот-аккаунта на том же Mastodon, систематизировав его с помощью хеш-тегов. Да и для мобильного сообщества доработать его же, добавив возможности Progressive Web Application.
А что касается свободного аналога Pikabu, то я воспринимаю его в первую очередь как инструмент публичного асинхронного общения. Но сейчас в Интернете всё больше и больше наблюдается обратная негативная тенденция: уход в закрытые реалтаймовые чаты. И можно ли её переломить, просто создав хороший инструмент, — это большой вопрос… Либо даже не переломить, а просто собрать вместе всех тех, кому это не нравится.
В общем, решения, как быть со всем вышеперечисленным, пока не видно. Но зато побочным эффектом от всех этих размышлений стала статья о личной силе. Впрочем, задумывал я её существенно раньше, но именно мысль о самообмане про Web-программирование и подтолкнула к тому, чтобы сесть и написать её.

Жизнь в режиме полярной ночи продолжается

4X_Pro
Эх, опять живу в режиме полярной ночи: ложусь то в 7, то 8 утра и просыпаюсь в 15—16, когда за окном уже начинает темнеть. В результате время девается непонятно куда, почти как в моих кошмарах, и не успеваю фиксировать всё, что происходит в жизни. И, похоже, у меня сейчас снова биоритмический спад.
А произошло довольно много всего интересного. Во-первых, в пятницу обновился Яндекс ИКС. Впервые почти за два года у меня наблюдается рост показателей у типологических сайтов: по +10 получили typtest.ru, typologies.ru и tipiruem.ru.
В субботу снова сходил на игры. Попробовал две новых: Azul и Dobble, разок сыграл в «японский бэнг», а потом был «Остров кошек». Правда, в «Острове» на предпоследнем раунде допустил серьёзную ошибку: попытался использовать четыре корзины, но понял, что на это не хватит ресурсов, и две просто пропадут. В добавок к этому повторялась ситуация с множеством незаполненых кают. К счастью, Ал.С. пошла навстречу разрешили вернуть эту карту в закрытые и использовать на следующем раунде. Там я смог разыграть всё как надо и более-менее спасти ситуацию. Но посчитать результаты игры мы так и не успели: пришло время закрытия клуба.
В воскресенье планировал сделать набросок итогов года. Но как всегда, бессознательное взбрыкнуло. Вместо запланированного стал заниматься совсем другим — вернулся к своей давней идее сделать умную стартовую страницу броузера с модульным подходом, куда можно будет собирать всю важную для меня информацию: уведомления о новых сообщениях на своих форумах, напоминания из списка дел, курсы валют и металлов, поток интересных репозиториев с GitHub и напоминания о скачанных файлах. Сделал «скелет» для такой страницы, тестовый модуль «Hello world» и выложил это дело на GitHub. В понедельник хотел вернуться и продолжить, но снова всё пошло не так: весь день был не выспавшийся, делать ничего не хотелось. И только под вечер смог заняться другим: восстановил выгрузку backupов со своих VDS и сделал новый скрипт синхронизации данных с ноутбуков через второй VDS. Теперь, благодаря тому, что реорганизовал хранение файлов, на сервер будет уходить почти всё содержимое домашнего каталога, кроме наиболее критичных личных данных, загрузок, кешей и специального каталога NoSync. И ещё разделил скрипт на два: один выполняет push-операцию (т.е. выгрузку файлов на сервер), другой — pull. Причём push хочу повесить на systemd.timer, чтобы тот выполнялся каждые два часа после включения компьютера, а pull — на момент после входа в систему и подключения к сети. И ещё предусмотрел в push возможность удаления на сервере тех файлов, которые удалены на ноутбуке. Правда, только в ручном режиме — автоматизация тут всё-таки достаточно опасна. Но на этом большую переустановку системы можно считать завершённой!
Также вчера приходил отец и починил витую пару, которая проложена очень кривым способом под порогами двух комнат и где-то месяца два назад повредилась. Теперь снова могу сидеть на проводном подключении, а не WiFi, и очень этим доволен!
Ещё почитал статью на Хабре про ЖЖ и удивился: подумать только, то, что мной воспринималось как часть жизни, которая просто стала чуть менее актуальной, потому что в это наигрались (тот же олбанский язык, например), кем-то воспринимается как часть истории, причём весьма давней.

Проброс диска через yggdrasil не удался

4X_Pro
Поставил эксперимент с пробросом каталога с играми по SMB со своего компьютера на облачный сервер с Windows через yggdrasil. К такому извращению пришлось прибегнуть из-за того, что мой провайдер закрывает порт 139.
Увы, эксперимент провалился. Yggdrasil под Windows установился и сначала даже работал (по крайней мере, я мог пропинговать другие свои компы по ygg-адресам и зайти на свой сайт). Но когда попытался смонтировать диск, система по каким-то причинам решила выключиться (причём не по BSOD, а штатно). После повторной загрузки всё повторилось, возможно, потому что я поставил галочку «Восстанавливать подключения при запуске». Хотя под другим VDS на Linux всё работало. Допускаю, что облачный хостер счёл yggdrasil подозрительной активностью и остановил машину из-за этого.
В общем, буду экспериментировать дальше… Hippo посоветовал поставить ssh-сервер и сделать обратный проброс порта. Я ещё рассматриваю вариант попробовать подключение по NFS (его провайдер вроде не блокирует).

Включенность в жизнь и неприятные дела

4X_Pro
Осознал сегодня, что происходит, когда надо мной висит какое-то мелкое неприятное «надо», с которым я мог бы справиться за час, а то и меньше, но вместо этого растягиваю это дело на неделю и больше. Оказывается, у этого есть вторичная психологическая выгода. Когда над  душой висит неприятное дело, резко повышается вовлечённость и осознанность в любые другие занятия, в которые я бегу от этого надо. От них я получают больше удовлетворения и включенности в жизнь, которую в обычное время я и почувствовать толком не могу без помощи извне. Выработалось это ещё в школьные времена, когда с одной стороны, мысль «опять завтра/в понедельник в школу, опять там будет плохо» вызывала чувство тоски и безысходности, с другой — желание по-максимуму прожить то время, которое остаётся до этого момента. Школа давно осталась позади, а вот вредная установка в бессознательном «живи по полной только когда впереди неприятности» — закрепилась.

Последний день осени

4X_Pro
Вот и всё: самое тяжёлое время года — осень — позади! Осталось вытерпеть ещё месяц, и этот год с непростым характером закончится.
Сегодня выбрался на короткую прогулку в Терлецкий парк. Как всегда, солнечную часть дня упустил, до парка дошагал уже когда солнце уже было совсем низко над горизонтом. Собственно, и прогулка запомнилась снегом на ветвях и зимним закатом. Закат зимой, конечно, не такой роскошный как летом, но тоже по-своему красив. Особенно когда вокруг не хватает других ярких красок.
Вечером попытался разобрать робот-пылесос, который несколько месяцев назад перестал работать. Вынул аккумулятор и обнаружил на нём, помимо стандартных указаний ёмкости, напряжения и т.п. странную надпись: 23/05/08. Это что же получается, в пылесосе 2021 года изготовления стоит аккумулятор 2008 года? Сложно поверить. Хотя сам аккумулятор вообще похож на 4 обычных батарейки, обмотанных синим пластиком, похожим на изоленту. Но в целом это ясности не добавило. Измерил напряжение на выходе аккумулятора — полный ноль. Решил проверить, что будет, если запитать пылесос не аккумулятором, а блоком питания на 12В, оставшимся от ADSL-модема. Кое-как нацепил его разъём на штыри, но так ничего и не произошло. То ли не удалось обеспечить нормальный контакт, то ли 12 В недостаточно (хотя на аккумуляторе написано напряжение 8-14 В). В общем, не знаю, что делать: то ли заказывать новый аккумулятор для пылелоса в надежде, что дело в нём, то ли смириться с тем, что он больше не работает.

Немного о Познании

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

Пытаюсь вернуться к разработке IntB

4X_Pro
Сегодня занимался обновлением IntB для совместимости с PHP 8. (Эх, готов заниматься чем угодно, кроме того, что запланировано.) И подумал, что в IntB есть ведь почти всё, чтобы реализовать каталог сайтов в том виде, в котором я его задумал. Группировать сайты по типам можно с помощью поля status, а фильтры реализовать через теги + хранение описания фильтра в расширенных настройках раздела. В какой-то момент даже замотивировался на то, чтобы сделать версию 3.05, куда добавить каталог и фотогалерею, но опять потоком жизни понесло куда-то мимо: день прошёл, но так даже не открыл редактор. Только попытался обновить Twig, и то возникли проблемы с тем, что последние версии ставятся только через composer, а я в IntB использовать его не хочу.

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

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