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

Лог жизни

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


Первые разочарования в 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 использовать его не хочу.

Пытаюсь вернуться к нормальной жизни

4X_Pro
Второй день пытаюсь вернуться к нормальной жизни. Заняться фрилансом, продолжить изучать ML, дописать давно задуманную статью. Но как всегда после уплотнения, это сделать не очень-то получается. Вчера ещё хотел было выбраться на настолки второй раз за неделю. Первый был в среду, и игры были очень удачные — я дважды очень эпично выиграл в «японский бэнг» за сёгуна и ронина. Точнее, за ронина в какой-то момент слишком открылся и меня спасло только чудо, а точнее, завершение колоды. Но увы, в субботу засиделся до семи утра, встал слишком поздно и невыспавшийся. День прошёл куда-то мимо, поэтому так и не собрался выехать до 20:30. А потом уже ехать не было никакого смысла — слишком поздно, и слишком мало времени провёл бы за игрой.
Вместо этого решил поиграть в Ведьмака. И неплохо продвинулся. Дошёл до эпизода, где ведьмак спасает поэта Лютика, а также выполнил ещё несколько вспомогательных квестов. А перед этим ещё появилась возможность взять задание на ликвидацию Радовида, которое поставило, наверное, перед самым непростым выбором в игре. С одной стороны Радовид похож на меня по характеру и мотивации, с другой — творит лютую дичь, которую следует остановить…
Узнал, что скоро выйдет большое обновление Ведьмака с улучшением графики и поддержкой RTX. Порадовался, что так и не купил б/у компьютер, а то сейчас бы переживал, что он не тянет новую версию. А так — просто придётся чуть больше тратить на облачный сервер, чтобы брать не GeForce 2080 Ti, как сейчас, а 3090. Его-то, надеюсь, должно хватить!
Ещё нашёл на Ali интересное решение для домашнего файл-сервера — мини-компьютер Orange Pi с USB 3.0 и Ethernet 1000. Получается универсальное устройство: можно использовать и как полностью бесшумный компьютер уровня «печатная машинка», и как переносное устройство, и как файл-сервер, и цеплять к GPIO что-нибудь, если всерьёз захочу заняться электроникой. Но дороговато и само устройство, и доставка (впрочем, на Яндексе существенно дороже).
И сегодня впервые после долгого перерыва побегал на дорожке.

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

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