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

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


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

t.me/4x_pro

Лог жизни

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


Минус баг в IntB

4X_Pro
Мда, только что в IntB исправил очень нетривиальный баг: если у пользователя был одновременно статус и модератора, и эксперта раздела, то модераторские права в некоторых случаях просто не работали. Оказалось, что всё дело было в том, что при запросе, который загружал из базы данных информацию о правах доступа, я просто не прописал условие, что нужно грузить информацию только о статусе модератора, а не эксперта (проверку AND role=\'moderator\' в WHERE-части). Возможно, потому, что статус эксперта придумал чуть позже, уже после того, как написал ту часть кода.
Хорошо, что Keynol нашёл это на socionics.me и сообщил! А то так бы и ушло в версию 3.05.

Выпал из жизни на три дня

4X_Pro
Уехал на новую квартиру и на два с половиной дня выпал из жизни. Изначально думал, что вернусь в понедельник, после того, как доставят холодильник. Но проснувшись в тот день, зашёл на сайт и обнаружил, что доставку перенесли на вторник (и даже не удосужились прислать SMS с уведомлением, если бы не сообразил проверить сам, так и просидел бы весь день в ожидании). Пришлось оставаться ещё на день. Хорошо, что сейчас живу в режиме «до пятницы я совершенно свободен», и сделать это достаточно легко. За эти дни хотел было привести в порядок всё, кроме кабинета, из которого нужно как-то вывезти остатки стройматериалов. Двигалось дело очень медленно, успел гораздо меньше, чем рассчитывал, но тем не менее, пыль постепенно отступает.
Сегодня холодильник привезли, причём, по моим меркам достаточно рано. Но всё равно, пока распаковал его и протестировал, пока доделал всё остальное, домой поехал только в 17:40, когда было уже темно. И день, можно считать, прошёл мимо. А ночь просидел за компьютером — занимался тем, что я называю «догонять жизнь» после того, как по каким-то причинам долгое время не было возможности нормально посидеть в Интернете. Но в любом случае, теперь можно считать, что квартира готова к переселению.

Заметка в Instagram от October 31, 2023 at 07:04PM

4X_Pro
Всю вторую половину дня над Павловским Посадом — такой густой туман! Но сфотографировать его я сообразил только уже на станции перед отъездом.
#павловскийпосад #туман #поезд #железнаядорога #станция #ожиданиепоезда

Смотреть все фото

Про SMath и немного про мобильники

4X_Pro
Сегодня ходил к отцу на Пустую квартиру. Нужно было помочь ему с программой SMath. Это очень сильно упрощённый, но зато бесплатный российский аналог MathCadа. Когда шёл туда, думал, что это займёт минут 10-15: нужно было решить систему уравнений и построить график. Сначала всё казалось просто: задал две формулы, задал переменные с известными значениями, и вызвал функцию roots, которой передал матрицу, где приравнял одно к другому. Но почему-то эта функция выдала деление на ноль. Сначала думал, что ошибка где-то в формулах. Кучу времени потратил на перепроверку, использовал несколько разных вариантов, но без толку: ошибка никуда не уходила.
В какой-то момент стал уже верить, что решения не существует в принципе. Хотел было прорешать эту систему уравнений вручную, но потом бросил эту затею. Зато вспомнил про систему Wolfram Online. Возникла мысль попробовать решить в ней. Правда, давно ей не пользовался и уже забыл, как там и что, но благодаря подсказкам сообразил очень быстро. Скопировал уравнения из SMath (кстати, вставились на удивление правильно, только = нужно было на == заменить), запустил, и оказалось, что решение таки существует. Посмотрев, чему оно равно, задал в SMath начальное приближение, примерно равное значениям из Wolfram. И, о чудо, всё посчиталось! Дальше оставалось только построить график, но это заняло всего пару минут.
Видимо, дело было в нехватке точности для чисел с плавающей запятой: вместо при написании SMath где-нибудь использовали обычный float вместо double. Или просто криво реализовали численные методы.
В общем, получилось как всегда: провозился почти два часа и за остаток дня почти ничего не успел. Единственное, что сделал — это перепрошил мобильник (уже месяц как висела эта задача), после чего стал корректно работать WiFi. А вот датчик отпечатков пальца, похоже, умер окончательно и бесповоротно. Видимо, нужно всё-таки покупать новый телефон. Уже начал присматриваться, но никак не могу найти ничего похожего в приемлемом ценовом диапазоне. Либо камера хорошая, но медленный flash-накопитель, либо наоборот. Либо нужно всё же залезть немного в не свой ценовой диапазон, причём единственный подходящий телефон оттуда имеет очень плохой моно-динамик и не имеет 3.5 мм разъёма. Конечно, есть извращённое решение в виде переходника OTG=>minijack, но хотелось бы обойтись без подобного… В какой-то момент даже стал думать, не купить ли Asus Zen 8, бывший флагманом в 2021 году. Но и тут не без проблем: судя по отзывам, сильно греется (традиционная проблема ASUS), да и камера не очень.
И ещё вечером успел немного поэкспериментировать с установкой Akkoma. Вроде всё шло хорошо, но потом возникла сложность с тем, что автоматически то ли не создаётся пользователь для Postgres, то ли ему не выставляется пароль. На этом пока и застрял, будет время — вернусь и продолжу.

Первый снег

4X_Pro
Уже больше половины суток за окном идёт снег. Уже вся земля стала белой! В этом году он выпал на удивление рано, на деревьях даже ещё не все листья облетели. Редкое зрелище: ещё жёлтые листья на фоне белого снега! А ещё теперь легче будет переносить недостаток солнечного света и доживать до Нового Года.
Но и обратная сторона у снегопада тоже есть. Голова соображает хуже, спать хочется. Впрочем, последнее может быть от недосыпа в предыдущие два дня… Хочется уйти в себя, предаваться slow life и созерцать Внутреннее Безмолвие

Ремонт окончен

4X_Pro
Свершилось! Вчера в кухне выполнили последние работы, и я подписал акт приёмки. Так что кошмар под названием ремонт, можно официально считать оконченным! Впрочем, справедливости ради, замечу что кошмаром реально был только начальный этап — запуск и начальная закупка. Дальше всё шло вполне хорошо, и итогом я весьма доволен. Впрочем, неудивительно: мне повезло, что ремонт делали неравнодушные люди, которые искренне хотели сделать качественно. Приятно такое видеть! В наше время победившего баблорубства это встречается редко… Ради этого можно даже смириться с огромными тратами на доставки (наверное, 4—5% от стоимости всего ремонта ушло именно на них, позже посчитаю точнее).
Ещё теперь в квартире буквально всё покрыто строительной пылью, видимо, оставшейся от резки плитки. Теперь предстоит долго и нудно всё это протирать и убирать. А мой кабинет вообще превратился в какой-то строительный склад: от ремонта осталось 7 мешков неиспользованных материалов, с которыми непонятно что делать, а также полотенцесушитель (его так и не стали менять) и ещё некоторые мелочи. Теоретически их можно сдать обратно в магазин. Но до магазина их нужно как-то доставить. Но каждый мешок весит по 30 кг, поэтому даже на такси отвезти — проблема (их нужно как-то спустить из квартиры и погрузить в такси, а потом ещё и выгрузить у магазина). Ещё вариант — попытаться продать на Авито самовывозом за две трети цены, но слишком непредсказуемо, купят ли и когда именно.
Так что переезд из далёкой абстракции, в которую он превратился в июне, когда стало ясно, что с ремонтом всё затягивается, снова становится реальностью ближайшего времени и вызывает противоречивые чувства. С одной стороны, там гораздо лучше по почти всем параметрам. Но с другой у меня, как у человека, всю жизнь прожившего на одном месте, просто не укладывается в голове, как можно взять и уехать навсегда в совершенно другое место, где я вообще никого не знаю, пусть и с возможностью изредка возвращаться… С третьей — ведь это же возможность начать жизнь почти с нуля, этакий оффлайновый Рестарт (ещё бы и оффлайновое имя сменить, но слишком уж сложная это процедура).

Движок DIscourse и непростой выбор

4X_Pro
Несколько дней назад наткнулся на движок под названием Discourse. В первый момент он произвёл очень положительное впечатление тем, как сделан интерфейс. Возникла мысль сделать сообщество идеалистов на нём, поставившая меня перед сложным выбором.
С одной стороны, выбрав Discourse, я бы смог запустить сообщество в самое ближайшее время, причём с хорошим мобильным интерфейсом (то, что всегда будет «хромать» в моих собственных проектах), push-уведомлениями об ответах и удобной загрузкой файлов. И сделав, почувствовал бы себя свободным человеком, над которым не висит долгосрочное «надо», а который может заниматься своими проектами по настроению: есть желание что-то написать — делаю, нет — переключаюсь на что-то ещё без всяких угрызений совести и третьего Будущего. Примерно так же, как сейчас занимаюсь сайтами 4xpro.ru и socionics.me.
С другой — Discourse изначально позиционировался как форумный движок. Более того, некоторые люди (в частности, Yuri) считали его конкурентом IntB. Поэтому такой выбор в качестве движка для сообщества, фактически, означал бы капитуляцию, признание «я не справился сам, раз пользуюсь продуктами-конкурентами». А ещё он написан на весьма прожорливом Ruby, для которого пришлось бы либо арендовать отдельный VDS, либо существенно повышать тариф на уже существующем.
В общем, выбор был между «поражение, свобода и быстрый результат» и «достойный путь, гордость собой, долгий и нудный труд, и результат неведомо когда». Размышляя над этим выбором, не мог позавчера уснуть до 8 утра. А на следующий день (вчера) создал тестовый аккаунт на discourse.group и несколько разочаровался. Как выяснилось, Discourse (по крайней мере, коробочная версия) всё же не умеет работать в режиме именно сообщества (в духе Pikabu или какого-нибудь VC или DTF), когда текст каждого первого сообщения темы выводится в категории, работающей в режиме ленты. И мне не нравится ни один из режимов показа главной страницы. Да ещё открыл статическую страницу, свёрстанную ещё летом 2021 года, когда я начинал делать MLCE, и понял, что то, что я сделал тогда, мне нравится больше (если немного доработать), чем то, как выглядят темы в Discourse.
В общем, от идеи использовать Discourse всё же откажусь, скорее всего. Хотя есть мысль поступить неожиданно: взять и сделать fork Discourse, который будет ориентирован именно на создание сообществ, а не форумов.

Осень в её худших проявлениях

4X_Pro
Вот и началась осень в её худших проявлениях. На улице серо и мрачно, выходить не хочется от слова совсем. Из-за всего этого, видимо, упало давление, и весь день еле ползаю, всё из рук валится. Более-менее проснуться помог только горячий душ. Да ещё ночью долго не мог уснуть — не давал покоя вопрос, как быть с сообществом идеалистов. Но об этом напишу в отдельном сообщении, когда приду в более адекватное состояние.

Нельзя полностью полагаться на автоматизацию backupов

4X_Pro
Опять убеждаюсь: нельзя полностью полагаться на автоматизацию backupов, за всем нужно следить и периодически вручную проверять. Только что обнаружил, что после переноса сайтов на новый VDS у меня не делались backupы на домашний компьютер. Во-первых, scp отказывался соединяться из-за изменившегося host fingerprint, во-вторых, новый ключ лежал в другом файле, а в cron я это исправить, естественно, забыл. В добавок ко всему этому я так до сих пор не включил ноутбук, выполняющий роль домашнего сервера, поэтому на нём backupов нет тоже. В общем, если бы что случилось с сайтами, было бы «весело».

Немного размышлений о творцах и творениях

4X_Pro
После очередного прохождения игры Sir Brante меня заинтересовало меня, что за человек смог придумать такой сеттинг и сюжет. Посмотрел его имя в титрах (зовут его Фёдор Слюсарчук), вбил в поиск, и, о чудо, попал на его страницу ВК. Но лучше бы я этого не делал. Почитал записи на стене, комментарии, и понял, что это человек «не наших», причём не просто, а упорото-воинствующий.
Что любопытно, аналогичное чувство было летом, когда посмотрел в Fediverse аккаунт Revertronа — создателя yggdrasil. Там тоже было примерно такое же, только в ещё более агрессивно-неадекватной форме. Очень удивляюсь, как так получается, что такие люди могут делать достаточно годные вещи. Причём в случае Revertronа это был к тому же некоммерческий проект.

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

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