Портрет 4X_Pro
Был в Сети 24 окт. 2024 г., 01:03
Мультиблог
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
Неделя оказалась какой-то пустой, даже писать особо не о чем. Пятница была каким-то тягостным днём, весь день болела голова, ничего толком не сделал. Вчера пришёл в себя, и немного поработал над очередной статьёй для канала. Увы, прежней радости нет — показатели перестали расти. Если бы не Tella, которая ещё верит, что канал взлетит, нужно только больше времени, получилось бы, наверное, как всегда: не видя результатов, сменил бы направление деятельности.
А вот сегодня день оказался довольно результативный. Встал в 10:30, но при этом выспавшийся, вернулся к экспериментам с WordPress, поставил несколько социальных plugins. Больше всего понравились PeepSo и WP Recall, но по количеству shortcodes (и, соответственно, гибкости настроек) явно лидирует другой — WP Simposium. Но у него документация в видеоформате, что, на мой взгляд, неудобно, и интерфейс хуже. И все они построены по принципу «базовая часть — бесплатно, остальные — за деньги».
Интересно, есть ли plugin для вывода нескольких сообщений из каждой категории на главной странице? Если да, то, по сути, окажется, что есть всё необходимое, кроме импорта потока данных из Mastodon (хотя надо будет проверить, может он тоже есть). Правда, как и всё, построенное на plug-inах, это будет криво-костыльное решение. Но с другой стороны, такая сборка нужна всего лишь для тестирования и демонстрации идей децентрализованной соцсети, а нормальное решение буду потом писать на Intellect Board.
Ещё почитал наконец-то «Теоретический минимум» Сасскинда, немного покопался в документации на kernel.org, и несколько раз сыграл в «Колонизаторов» онлайн, оба раза оказался на втором месте. А ещё неплохо продвинулся в HearthStone! В общем, про сегодняшний день точно прожит не зря!

О Дзене и балансе между хорошо и быстро

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

День полуоффлайна

4X_Pro
Вчерашний день оказался довольно эффективным: убрал ёлку (впервые без участия отца), побегал на дорожке, отправил декларацию по УСН. Наконец-то для её подписания не надо перезагружаться в Windows! Ещё прочитал кучу материалов на Дзене и неплохо поиграл в HearthStone. В общем, делал всё, кроме того, что нужно по плану: сайта для Л.Кст. и краткого введения в информионику. Только спать лёг снова поздно: никак не мог закончить всё, что собирался, в частности, очень долго мыл посуду.
А сегодня утром проснулся в состоянии какого-то ухода в себя, когда делать ничего не хотелось от слова вообще. Просто ушёл в себя и так и сидел несколько часов. Потом ненадолго вышел прогуляться по району, сфотографировал ели, красиво присыпанные снегом. Но вынужден был скоро вернуться обратно. Потом сидел в оффлайне, читал книжку, играл в Walk Master (и прошёл ещё две тропы), Heroine's Quest (тоже неплохо продвинулся). И только вечером вернулся в Сеть.

Децентрализованные соцсети и Wordpress

4X_Pro
Ситуация с идеям, о которой писал в прошлом сообщении, продолжается. Видимо, минимум по интеллектуальному биоритму наложился на максимум по интуитивному.
В частности, ночью пришла ещё идея: написать plugin для взаимодействия с Mastodon и прочими сетями на протоколе ActivityPub для Wordpress. Для начала хотя бы такой, который позволяет просто подписываться и транслировать записи блога в Mastodon.
Но получилось как всегда: сразу не приступил, а лёг спать дальше. Утром же, когда встал, идея казалась не столь привлекательной. Плюс куча всего отвлекала от основного замысла. В итоге только к вечеру поставил на поддомен WordPress и настроил https на хостинге, где стоят мои старые сайты. Причём провозился по очень глупой причине: настраивая поддомен, сразу включал в настройках https, а уже потом пытался получить сертификат от Let's encrypt.
Когда всё сделал, на всякий случай решил поискать, а нет ли готового plug-in. Как выяснилось, есть! Эх, и тут меня опередили!
Поставил. Вроде работает, но кнопки «Подписаться через Mastodon» или чего-то подобного не появилось. И тут я чуть не сломал мозг, как сделать это в самом Mastodon. Полез в раздел «Подписки и подписчики», но там были только действующие подписки, без кнопки «Добавить новую». Облазил весь интерфейс, долго ругался, и только после этого обратил внимание на подсказку в строке поиска, что туда можно вводить не только ключевые слова, но и URL. Ввёл адрес поддомена и всё получилось! Сейчас вижу в ленте сообщения из блога WordPress. Нужно ещё попробовать подписки на отдельные категории.
Ещё узнал, что для Wordpress есть plug-inы, добавляющие функциональность соцсетей. Если их доработать на поддержку получения данных из Mastodon, то получится примерно то, как я представляю себе децентрализованную сеть из личных сайтов! К тому же узнал, что в Wordpress с версии 3.x можно создавать свои типы сообщений, а не только обычные записи в блоге.
Всё это поставило меня перед непростым выбором. С одной стороны, я всегда хотел делать децентрализованную соцсеть на своём собственном движке. С другой — если взять Wordpress за базу, то это может значительно поспособствовать популяризации децентрализованных соцсетей среди блоггеров. А именно с их среды, на мой взгляд, и может начаться уход от традиционных соцсетей.

Очередной биоритмический минимум

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

Тягостные дни

4X_Pro
Последние два дня были какими-то очень тягостными. Всё из рук валилось, как в прямом, так и переносном смысле, особенно вчера (вернее, уже позавчера). Сегодня с утра вроде всё было нормально, но ближе к вечеру опять начала ерунда творится. В частности, сильно глючило SiteKnockerBot, не хотел обновляться Windows и ещё много чего шло не так. Да ещё был момент, когда голова не соображала, мир воспринимался как сквозь мутное стекло. И только где-то около 21 часа всё резко стало налаживаться. А с ботом оказалось, что я загрузил версию, которая делает проверку в 100 потоков одновременно. Когда вернул на обычные 30, да ещё сделал их запуск с небольшой задержкой, всё заработало нормально.
Интересно, в чём тут дело? Погода (сегодня начался сильный снегопад), магнитные бури, биоритмический спад?

Броузер Beaker и Старый Добрый Интернет

4X_Pro
Пару дней назад с подачи 10geekа узнал про броузер Beaker. Его главная особенность — поддержка P2P-протокола Dat, позволяющего децентрализовано хранить данные и хостить сайты. Идея меня заинтересовала. Возникла мысль, что именно в подобных сетях может сохраниться (или наоборот, возродиться) дух Старого Доброго Интернета, так как там выполняются два необходимых для этого условия: 1) требуется хоть какой-то уровень знаний и заинтересованности, чтобы воспользоваться, что отсекает совсем уж обывателей, 2) сведена к минимуму возможность коммерциализации, благодаря чему там не будет баблорубов. В итоге есть шанс, что там сформируется сообщество технически продвинутых идеалистов-бессребреников, как это и было в старом Интернете. Кроме того, протокол подразумевает децентрализованное хранение данных, благодаря чему можно не боятся исчезновения сайта из-за непроплаченности хостинга или домена.
Под впечатлением от этого сделал статическую версию своего сайта и разместил там. Но увы, оказалось, что там нет ни чего-либо вроде каталога сайтов, ни тем более поиска. И попасть на такой сайт можно только по точной ссылке. Поэтому такая система больше подходит в качестве средства быстрого расшаривания данных, чем как альтернатива привычному Интернету. Впрочем, есть ещё проект HashBase.io, куда можно выложить копию сайта на хранение, и где что-то вроде каталога есть. Но при попытке это сделать что-то пошло не так. То ли влияет то, что я за NATом сижу, то ли что-то не работает как надо в самом Beaker.

Опять переделываю SiteKnockerBot

4X_Pro
Несколько дней назад попытался переделать SiteKnockerBot для Telegram. Хотел сделать количество работающих goroutines управляемым, для чего запускать нужное их количество при старте бота, а затем передавать им данные о сайтах для проверки через канал. Но увы, такой вариант почему-то оказался даже хуже того, что есть сейчас. Во-первых, медленнее: 1600 сайтов проверяются почти 40 секунд, во-вторых, после пары проверок падает из-за нехватки оперативной памяти. Пришлось вернуть всё как было. Хорошо хоть не забыл сделать резервную копию исходника (к gitу себя приучить по-прежнему не могу).
Сегодня решил пойти другим путём: переписал простукивающую часть для Node.JS. Но увы, результат оказался ещё хуже. Во-первых, полная проверка всех сайтов в списке занимает куда больше времени, чем на Go. Во-вторых, потребляет чуть ли не всю доступную оперативную память.
Расстроившись по этому поводу, вернулся к версии на Go. Но решил ещё раз посмотреть исходный код версии с каналами и нашёл причину утечки памяти! У меня resp.Body.Close() вызывалось через defer. Но если в старой версии каждая goroutine заканчивала работу после проверки одного сайта, то в новой был бесконечный цикл с чтением данных из канала, поэтому resp.Body.Close() просто никогда не вызывалась. В итоге убрал defer и стал закрывать и занулять resp.Body сразу после преобразования в строку. И теперь бот заработал как надо! И вроде ушла ошибка с DNS, из-за которой и начались все эти переделки. Только пришлось количество потоков параллельных проверок сократить до 25, из-за чего количество проверяемых сайтов за цикл сократится всего до 20 тысяч.

Дзен-канал: рейтинг растёт

4X_Pro
В понедельник со страхом заходил на Дзен-канал, ожидая, что карму ещё понизят, так как на прошлой неделе была всего одна публикация. Каково же было моё удивление, когда обнаружилось, что она подросла. Почему-то Дзен поменял мнение об уникальности и качестве материлов: теперь оценивает их на 11 и 7 соответственно. И теперь канал занимает 2651 место среди 361958 новичков! То есть результат получается выше 99%!
Тогда же я начал писать ещё одну статью, и написал первый вариант в бумажном виде. Сегодня хотел набрать на компьютере, но по разным причинам не сложилось. Но, думаю, до конца недели всё же сделаю.

Первый день Нового года — 2021

4X_Pro
Впервые за последние лет десять сумел проснуться первого января раньше полудня, если конкретно, в 11:30. Причём проснулся на удивление бодрым! Хотел было воспользоваться этим и отправиться на прогулку, как в далеком то ли 1989, то ли 1990 году, когда прогулка запомнилась и принесла кучу позитивных эмоций. Но выйдя на улицу, обнаружил, что там всё серо и мрачно, и даже в середине дня кажется, будто сейчас вечер. А ещё ночью прошёл ледяной дождь и улицы превратились в самый настоящий каток. Ходить приходится примерно в такой позе, в которой герой Quest for Glory ходит в режиме stealth. Поэтому вместо прогулки ограничился выносом мусора на ближайшую помойку.
Потом вернулся домой, посидел какое-то время, занимаясь мелкими доделками IntB. Затем стал смотреть розыгрыш «Русского лото», билеты которого получил от отца в качестве новогоднего подарка. Увы, это оказалось не самой удачной идеей. Обычно розыгрыш длится где-то минут тридцать, а в этот раз растянули на полтора часа, да ещё с кучей рекламы. Знал бы, что так будет, просто посмотрел бы результат в Интернете вечером, да и всё. Где-то к началу третьего тура обратил внимание, что во всех трёх билетах есть числа 52, 72 и 87, и в голове проскочила мысль, что либо 52, либо 72 точно не выпадет. Так и вышло: невыпавшим оказалось число 72.
Остаток дня всё равно прошёл мимо. Во-первых, снова навалилась усталость и ни на чём не мог сосредоточиться. Затем пришёл отец, помог убрать стол и забрал часть лишней еды, оставшейся от НГ. Потом в какой-то момент я просто заснул. Потом сыграл в HearthStone и сел писать это сообщение. Так и прошёл этот первый день года…

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

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