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

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


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

t.me/4x_pro

Лог жизни

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


Выпустил IntB 3.05

4X_Pro
Ну всё, релиз Intellect Board 3.05 позади. Последние несколько дней жил в состоянии предрелизной гонки, только вчера выбрался на настолки. Но, как это ни странно, на этот раз всё шло достаточно хорошо, почти без перенапряжения, которое бывало во времена 2.x. Только сегодня несколько занервничал, испугавшись, что всё-таки не успею, особенно когда внезапно вылезли баги при редактировании прав доступа под Postgres.
Вообще, больше всего сложностей было именно с поддержкой Postgres. Впрочем, скорее всего, дело в плохом знании его администрирования. В частности, сегодня почти полдня разбирался, как там ставить права на таблицы в том случае, если новый пользователь создаётся в процессе установки форума. Оказывается, там есть такое понятие, как привилегии по умолчанию, и выставлять надо именно их, если таблицы создаются после установки привилегий.
На SQLIte переход оказался гораздо проще. Хотя и там не обошлось без сюрпризов, например, отсутствия функций VERSION и CONCAT. Пришлось городить костыли в виде пользовательских функций. А ещё оказалось, что такая простая задача, как извлечь расширение из имени файла, средствами SQL кроссплатформенно не решается. В каждой из СУБД что-то оказывается не так. Так и вынес это в постобработку данных на PHP.
И к вечеру всё же убедился, что форум более-менее стабильно работает на всех трёх СУБД. В процессе не обошлось без смешного: когда я тестировал групповое изменение настроек разделов, то случайно выключил опцию «Показывать на главной странице». А потом, увидев, что разделы пропали с главной, подумал, что в последний момент вылез новый баг. Даже запаниковал, что из-за него не успею. Потом создал новый раздел — смотрю, он появился. И только когда сделал прямой SQL-запрос к базе из командной строки, понял, в чём дело.
Потом обновил оба своих сайта, собрал и выложил дистрибутив. Но и тут не обошлось без проблем. Ссылки на скачивание файла у меня со стародавних времён начинались с http:, поэтому при заходе на сайт через https: скачивание просто блокировалось. Хорошо, что я это заметил, иначе бы снова сидел и гадал, почему нет новых пользователей.
Но теперь можно будет вздохнуть спокойно! Сам удивляюсь тому, какой огромный объём работы проделан. Не знаю, как сложится судьба IntB дальше, но в любом случае, тем фактом, что я написал такой проект, можно гордиться.
Ещё собираюсь создать всё-таки репозиторий на GitHub и собрать package для composer, но это — позже…

Очередные настолки, игра в «Дедулю Винчестера»

4X_Pro
Вчера выбрался на настолки. Изначально ехать не очень хотел: вчерашний день пошёл сильно не по плану, и теперь боюсь не успеть выпустить завтра IntB 3.05. Да и вообще, накатила вечная паника «не успеваю, опять ничего не успеваю!». Но, как уже не раз бывало, именно когда я сомневаюсь, идти или не идти, встречи получаются одними из самых лучших. Так было и сегодня. Сначала играли в «Дедулю Винчестера». Это экономическая стратегия, отдалённо напоминающая «Монополию». Когда-то давно Ал.С. уже предлагала сыграть в неё и начинала рассказывать правила, но потом что-то отвлекло, и тогда так и не сыграли, а о самой игре впечатление сложилось не очень. Но, как выяснилось, зря: когда я вник в игру как следует, оказалось, что она весьма интересная!
Правда, на начальном этапе я допустил ошибку: не понимая до конца, как возобновляется запас денег у игроков, слишком экономил и быстро пасовал на аукционах. А как раз тогда раскупали те участки на карте, которые соответствовали моим обеим скрытым целям. Потом, когда стало ясно, что таких участков почти не осталось, я поменял тактику: стал «подсаживать» других игроков — повышать цену на аукционе с целью спасовать в последний момент и заставить других покупать всё дороже. (Деньги за проданный участок там делятся между всеми остальными игроками, кроме купившего.) И это принесло свои плоды: к концу игры я скопил больше всего наличных денег, плюс пару личных целей всё же смог выполнить. В итоге — второе место (хотя боялся, что буду последним, так как купил меньше всех участков и не выполнил ни одной общей цели). А выиграла Ал.С. Причём, по её словам, в эту игру она выиграла впервые, и была этим очень довольна.
Потом, как всегда, был «японский бэнг» aka «Меч самурая». В этот раз всего лишь на троих: я, Я.Ш. (за ниндзя) и Ал.С. (за сёгуна). Вначале игра шла не очень, но мне повезло с персонажем, которым я играл — Кодзиро, который может доставать до любого игрока, невзирая на доспехи. Изначально я считал, что при малом числе игроков этот персонаж не очень-то полезен, но в этот раз Ал.С. обложилась доспехами, и Я.Ш. большую часть ходов ничего не мог сделать, а я за счёт этого свойства вполне результативно атаковал. И в итоге мы победили, а я ещё придержал целых две карты Даймё, дающие дополнительные очки.
Правда, под конец почему-то ощутимо устал (возможно, от духоты) и поехал домой всего после двух часов игры, хотя была возможность перебраться в другое место и продолжить игру там. Но тем не менее, очень доволен, что выбрался, улучшилось настроение и вообще как-то изменилось восприятие мира!

Не халява, а разочарование

4X_Pro
Сегодня попалась реклама, где Cloud.Ru обещал пожизненную виртуальную машину с весьма приличной конфигурацией: 4 Гб RAM, 30 Гб места на SSD. В какой-то момент я даже подумал, не перенести ли туда сообщество идеалистов или не приспособить её для каких-то других нужд. Но увы, когда стал разбираться, наступило полное разочарование. Во-первых, дают всего 10% гарантированного процессорного времени. Использовать её как сервер в такой ситуации не получится (уже был подобный печальный опыт, правда, там времени давалось 5%), но с этим можно было бы примириться, приспособив её, скажем, под сбор backupов, сервер синхронизации или удалённое рабочее место. Но дальше оказалось ещё хуже: хотя машина бесплатная, но IPv4-адрес для неё — нет (а IPv6 не дают в принципе). А при его отсутствии нет ни бесплатного NAT (платный стоит даже дороже, чем «белый» IP), ни даже шлюза для подключения по SSH, как в Amazon. По сути, всё, что можно сделать — это подключиться по VNC и немного поиграться в консоли. В общем, тот редкий случай, когда можно сказать «такая халява мне и даром не нужна».

Долгая прогулка в Нескучный сад

4X_Pro
Вчера впервые за последнее время выбрался на дальнюю прогулку по городу. Решил ехать в Нескучный сад — место, с которым у меня связано множество самых разных воспоминаний, и куда я почему-то выбираюсь либо ранней весной (как в 2018 году), либо осенью. Впрочем, зимой пару раз тоже был, но зимой там делать нечего. Как, впрочем, и в Городе в целом…
И, надо сказать, прогулка реально удалась! Непередаваемое ощущение весны, солнца, полноты жизни и гармонии с миром! Давно такого не было! Ещё вспоминал прогулки 2008 года — и большую совместную с сэром Миком, Глемой, vortex777, и Kath (хотя тогда мы до Нескучного не дошли, ограничившись Воробьёвыми горами), посвящённую приезду двух последних в Москву, и вторую, чуть более позднюю — когда с тем же Миком и Hippo обсуждали планы по созданию ЕТП. В голове не укладывается, сколько времени прошло с тех пор! И, главное, почти всё задуманное тогда реально создали, пусть и немного иначе, чем представлялось в то время. Только вот толп сторонников и почитателей (или хотя бы просто участников форума) так и не появилось…
Ещё думал о том, что несмотря на всю эту радость жизни, я прямо чувствую, как мой внутренний ритм не совпадает с ритмом Города. Не знаю, как это описать (это что-то БИшное), но это проявляется, например, в том, что я не могу плыть в общем ритме в человеческом потоке, обязательно то натыкаюсь на впереди идущих, то торможу.
С этими мыслями я дошёл от метро Шаболовская до Пушкинской набережной, посмотрел на парк Горького с моста, потом двинулся вверх по течению. Потом идти вдоль набережной надоело, поднялся на какое-то время на холмы. Побродил по ним, снова спустился на набережную, и отправился к Андреевским прудам. Возле них гораздо спокойнее и почти безлюдно. Вот куда нужно выбираться на медитацию вместо Новодевичьего монастыря — и добираться проще, и спокойнее. Но с другой стороны, возле Новодевичьего энергия совсем другая, это сложно передать.
От прудов сначала было хотел пройти до станции Воробьёвы горы, но потом подумал, что ехать в метро — не самое лучшее время (было около 18 часов), поэтому отправился на МЦК — это дольше, но тише и спокойнее, и с сидячими местами проблем нет. По дороге прошёл мимо здания Российской Академии Наук. Прежде я видел его только издалека, а тут выдалась возможность рассмотреть вблизи. Надо сказать, весьма впечатляет! А ещё там есть смотровая площадка с неплохим видом на город, только постройки внизу несколько портят обзор. На Воробьёвых горах вид лучше.
Домой приехал очень уставший, но довольный! В общем, получилась прогулка прямо как в старые добрые времена.

Разобрался с прокрастинацией

4X_Pro
За последнее время DarLik прислала несколько видео про прокрастинацию. И вот одно из них дало разгадку, почему же я так живу и ничего не могу с этим поделать.
Во-первых, я всё-таки никакой не циклический сканер, а несчастный дайвер, который и хотел бы сосредоточиться на какой-то одной теме, уйти в неё с головой и потом гордиться полученными знаниями.
Я долго не мог выяснить, почему же не получается, пока в одном из видео не услышал утверждение, что прокрастинация часто работает на то, чтобы защитить самооценку. А вспомнив, на чём стоит моя самооценка, я легко смог понять, от чего же именно пытается защитить меня бессознательное: от столкновения с Великим Страхом. Вместо этого оно выбирает меньшее из зол: отложить задачу до момента, когда я буду к ней готов.
Само по себе это не так уж и плохо, но есть одно но: это полностью лишает меня возможности планировать что-либо по срокам. И в итоге когда я что-то заканчиваю, я заканчиваю с мыслью «это должно было быть сделано позавчера (неделю/месяц/полгода) назад» вместо удовольствия от «теперь у меня есть...» и происходит самообесценивание сделанного. Из-за этого я и постоянно недоволен собой на тему «делаю мало, делаю долго, и гордиться в жизни нечем».

Внезапно вернулся к доделке IntB

4X_Pro
Несколько дней назад почувствовал себя здоровым, но всё руки не доходили сесть и написать в блог — слишком много времени уходило на то, чтобы догнать жизнь. Сначала вернулся было к движку мобильного сообщества (эх, надо бы ему название придумать). Занимался интерфейсной частью, и наконец-то он хоть сколько-то начинает походить на то, что я задумывал.
Но дальше получилось как всегда: внезапно меня перекинуло на то, чтобы доделать дистрибутив IntB. Быстро исправил пару мелких недоделок, а потом решил собрать дистрибутив с поддержкой PostgreSQL. Но вот последнее пошло как-то очень тяжело (видимо, бессознательное понимает, что что-то я делаю не так, только вот что). Сначала полдня просто настраивал и делал перенос базы с помощью pgloader. Он отказался корректно работать с одной из таблиц, в которой было поле from (совпадающее с ключевым словом из SQL). Пришлось переименовывать и исправлять код. Дальше начались какие-то проблемы со schema, из-за которых не проходит запрос к таблице prefix_user_ext. С ними я так и не разобрался, поэтому сегодня дело заглохло. Зато сам собой получился день разгрузки мозга… Даже несмотря на то, что в отличие от предыдущих дней просидел дома безвылазно.
Ещё с подачи Aksion недавно зарегистрировался в сети Bastyon. Закинул туда несколько заметок, набрал 4 очка репутации и десяток комментариев. В общем, ещё одно место, где есть хоть какие-то шансы быть услышанным, так как там все новые публикации попадают в ленту на главной, как это было в старом ЖЖ. Правда, сама лента там похожа больше на кладбище человеческого интеллекта: то антиваксеры вылезают, то очередные любители вещать про эру водолея и повышение вибраций, то борцы с вышками 5G. Только когда я потратил час на то, чтобы отправить в игнор несколько десятков наиболее неадекватных пользователей, ленту стало хоть сколько-то можно смотреть без facepalmов и страха за свой рассудок. Впрочем, когда я нашёл интервью с создателем самой сети, я понял, откуда всё это: он сам — тот ещё мракобес (интересно, как человек с таким мусором в голове вообще осилил такой сложный проект), да ещё, к тому же 3Л по психософии.

Равноденствие позади

4X_Pro
Сегодня (вернее, уже вчера) был потрясающий день. Правда, большую часть я просидел дома, и только любовался в окно небом, которое было того глубоко голубого цвета, который бывает только в это время — в марте и начале апреля, полоской леса у горизонта и пением птиц. Только под вечер выбрался ненадолго в Посад, но прогулка тоже запомнилась каким-то сильным ощущением включенности в жизнь и того, что всё идёт как надо! И только сейчас, начав писать это сообщение, я вспомнил, что уже сегодня день весеннего равноденствия. Всё, теперь окончательно можно сказать, что зима позади!

Необычный сон про выпускной

4X_Pro
Сегодня казалось, что проснулся почти здоровым (только лёгкий насморк). Но когда замерился Welltory, результаты оказались весьма печальные: 39% энергии, и это сразу после подъёма. И стоило посидеть немного за компьютером, реально почувствовал слабость. Мда, ехать в Посад в таком состоянии точно не надо…
Уже третий день подряд около 12 часов дня меня просто выкидывает из сна, и никак не могу понять, почему. Хотя казалось бы, после болезни надо, наоборот, спать больше (сейчас получается 6.5 — 7 часов сна всего), чтобы быстрее восстановиться.
Ещё приснился очень странный сон. Как будто я снова оказался на выпускном, но не в лицее, а, судя по планировке здания, в той школе, в которой учился до него. И вот я брожу там, но никак не могу найти свой класс. В результате даже аттестат получаю один, в промежутке между другими классами (причём сам аттестат почему-то тёмно-красного цвета, хотя в те времена, когда я оканчивал школу, они были зелёными). И, что любопытно, других выпускных классов было много, почти как в лицее (там было десять параллельных классов, в отличие от трёх в обычной школе). И основное ощущение от сна — это чувство «я как бы не на своём месте», но при этом полное отсутствие переживаний по этому поводу, а вместо них — позиция «ну и ладно, зато понаблюдаю, порадуюсь жизни и да ещё и перекушу на халяву». И ещё, что любопытно, во сне было совершенно непонятно, в какую эпоху всё происходит, например, у многих, включая меня, были смартфоны.

Пробую HTMX в деле

4X_Pro
Вчера, наконец-то температура снизилась. Вернулся к работе над сообществом. Подключил к нему библиотеку HTMX и начал делать frontend-часть. Но дело идёт очень медленно. Хотя общая идея в HTMX очень простая, но всё быстро запомнить все hx-атрибуты и вообще привыкнуть к новому стилю — требует времени. Плюс по мере чтения документации вылезают всякие нюансы, например, необходимость выдачи Vary-заголовка, если результат обычной загрузки страницы должен отличаться от запроса через HTMX. (Такое, например, бывает при обработке пользовательского лайка: обычный запрос должен приводить к 302 редиректу на ту же страницу, а AJAX — отдавать кусок HTML-кода со значком поставленного лайка и новым значением счётчика.) Да и вообще frontend — само по себе дело не быстрое: на принятие решения, что должно быть и как в плане внешнего вида сайта времени уходит куда больше, чем на написание очередного action или helperа в севрверной части.

Снова болею

4X_Pro
Всё-таки я заболел. Температура 38 °C и выше, ничего делать нормально не могу и злюсь на то, что время проходит напрасно. Вчера попытался было писать заметку для сайта с мобильника, но безрезультатно. Точнее, всё застряло на том, что нужно скопировать и отредактировать кусок текста со своего второго сайта, а с мобильника делать это не очень-то удобно. Сейчас попытался сесть за компьютер, но сил хватило только на то, чтобы проголосовать.

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

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