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

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


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

t.me/4x_pro

Лог жизни

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


Заметка в Instagram от January 10, 2024 at 06:11PM

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

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

Возвращаюсь к идее личного архива

4X_Pro
Сегодня понял, чем буду заниматься после того, как доделаю релиз IntB 3.05. Кстати, это случится уже скоро: я нашёл утилиту для конвертации базы из MySQL в Postgres и вчера начал тестирование под ним. Заодно обнаружил, что для некоторых столбцов не заданы значения по умолчанию, что могло приводить к ошибкам, если в MySQL включен strict mode. Возможно, именно с этим была связана ошибка, о которой месяц назад писал один пользователь в личке, но тогда я так и не мог понять причину, а он — предоставить более-менее внятную информацию об ошибке, кроме того, что сайт выдаёт 503.
А делать я буду движок личного архива — реализовывать ту самую идею, о которой писал два года назад. По-моему, такого ещё никто толком не делал, в отличие от тех же форумных и блоговых движков, которых более чем достаточно. А ещё это всё же не такой масштабный проект, как движок сообщества.
Сегодня наконец-то в голове сложилась картина, каким он должен быть, и как хранить информацию так, чтобы с одной стороны была поддержка хеш-тегов и полнотекстового поиска, а с другой — формат хранения был бы максимально простым и антихрупким. Нужно просто следовать рекомендациям из IndieWeb: хранить основные данные в текстовых файлах в формате YAML+Markdown (как это делается в Jekyll), а метаданные (хештеги, потоки, сведения об источниках) — в базе SQLite с возможностью её пересборки на основе данных в текстовых файлах.
И тогда проект, по сути будет состоять из трёх независимых частей. Первая — принимать публикации по протоколу MicroPub и сохранять их в эти файлы и базу, а также обеспечивать аутентификацию через IndieAuth, генерацию токенов и базовые функции управления сайтом. Вторая — отвечает за непосредственно вывод страниц сайта-архива. Причём главная страница и первые страницы каждого из потоков информации и календарные страницы будут в виде статики, а прочая информация (скажем, вывод хештегов или результатов поиска) — подгружаться через AJAX. И третья будет отвечать за сбор данных с внешних источников и преобразование их в формат MicroPub с последующим обращением к первой. Впрочем, на начальном этапе для этих целей можно вообще задействовать внешние сервисы типа IFTTT.
Ещё пришла в голову мысль сделать аутентификацию по ключу вместо пароля. Т.е. если на сервере нет файла-ключа, предлагается сгенерировать пару приватный-публичный, где публичный ключ пойдёт на сервер, а приватный сохранится в LocalStorage броузера (с возможностью импорта/экспорта в файл, конечно же). А если файл уже есть, то он будет использоваться для проверки того, что запрос подписан правильным приватным ключом. Правда, тогда в интерфейсе управления сайтом все запросы придётся делать через AJAX, чтобы эти самые подписи генерировать.

Рассвет в электричке

4X_Pro
Возвращаюсь с новой квартиры в Москву. Вчера почему-то проспал почти весь день, поэтому решил устроить себе бессонную ночь (после которой Welltory стала выдавать какие-то совершенно нереальные показатели, например, намерила всего 3% стресса) и встретить рассвет в поезде. Увы, не учёл, что в такое время в рабочий день народу достаточно много даже на электрогорской электричке, поэтому сесть возле окна не получается, да и само окно изрисовано граффити... К тому же от духоты начинает хотеться спать. Впрочем, пока писал это, пришло контролёры, и место около окна освободилось.
Пока добирался до вокзала на автобусе, думал о том, что в Москве хуже, но привычнее, это воспринимается как своё. А на новой квартире я чувствую себя так, как будто удалось ухватить кусок чьей-то чужой жизни, совсем другойи лучше, чем моя. Что-то подобное у меня было в 2017 году, когда ездил в Санкт-Петербург к Kitsune.
А сейчас думаю о том, что восприятие поездок как-то притупилось по сравнению с первыми годами дачи. Тогда поездка давала мне ощущение включённости в жизнь, а сейчас во многом оставляет равнодушным. И непонятно, как это вернуть. Хотя тогда поездки были временем, когда я мог почувствовать себя свободным от постоянно висящих надо мной «задолженностей перед жизнью», временем, когда я избавлялся от внутреннего конфликта «хочу одно, а надо другое», потому что во время поездки объективно нельзя заниматься этими самыми «надо». (Интересно, как некоторые люди в поездах могут достать ноутбук и поработать? Для меня это всегда было чем-то запредельным: совершенно не понимаю, как можно сосредоточиться при таком количестве раздражителей и отвлекающих факторов.) Возможно, в этом и кроется разгадка: именно постоянно висящие «надо» и заставляют лучше чувствовать жизнь тогда, когда на какое-то время удаётся их отложить? И в этом и есть вторичная выгода от того, что я постоянно затягиваю избавление от этих «надо»?
Может, поэтому и в более ранние периоды (чаще всего я вспоминаю 2003-2004 годы в этом плане) я чувствовал себя более живым именно потому, что там почти всегда висели какие-то «надо»?

Закончил настройку OPKG на роутере

4X_Pro
Вчера всё-таки разобрался с установкой OPKG на роутер. Оказалось, на моём роутере под него выделено даже немного места в основной флеш-памяти, то есть его не обязательно ставить на внешнюю флешку. Сама установка тоже прошла очень легко, нужно было только положить архив с OPKG в нужное место. Больше всего ушло времени на то, чтобы понять, что по ssh для работы с OPKG нужно коннектиться не на 22 порт, а на 222.
Потом стал тестировать копирование с серверов по SFTP. Сначала поймал непонятную ошибку. Стал искать и выяснил, что scp на роутере требует ключей в формате dropbear, а не openssh. Пришлось разбираться, как конвертировать. Когда разобрался, всё заработало. Осталось только написать скрипт и повесить его на cron. Завтра увижу первые результаты работы (если не уеду домой раньше). Ещё добавил в скрипт проверку на то, что флешка вставлена, и на то, что на ней достаточно свободного места. Если остаётся меньше 1 Гб, скрипт отправит сообщение в Telegram.
Так что всё, настройка домашнего сервера полностью завершена! Разве что осталось только вернуться к идее yggdrasil на него поставить, но как-то не вижу особой необходимости.

Выход из уплотнения жизни

4X_Pro
Первые два дня Нового Года, как это часто бывает, прошли мимо. Утром первого числа проснулся ненадолго, посмотрел на яркий и солнечный день, потом снова вырубился до самого вечера. Ночь решил не спать, а утром снова отправился на новую кваритру. Перевозку компьютера опять пришлось отложить, но теперь это уже не особо важно: раз до НГ не успел, то теперь можно не торопиться до следующего НГ.
Сегодня встал в совершенно нереальное для себя время: около 7 утра и встречл рассвет, глядя на то, как соседними домами поднимаются дымки и полосу леса на горизонте... Такое умиротворяющее зрелище!
А сейчас испытываю какую-то растерянность, как это часто бывает при выходе из "уплотнения жизни". Вроде и сделать нужно много чего, но совершенно непонятно, за что браться. Впрочем, как уже не раз наблюдал, самое рзумное в таких случаях — это устроить себе день информационной разгрузки и отдыха. Тогда как-то всё само сложится в голове.
Будь погода потеплее, я бы выбрался на прогулку, например, сходил бы снова к Клязьме, как в один из первых заездов после ремонта, или даже сразу в центр Посада. Но увы, на улице ни много ни мало -27 °C, а по ощущению и того меньше, так как влажность остаётся всё ещё высокой. Так что приходится ограничиваться созерцанием зимы в окно.

Солнечное утро 1 января

4X_Pro
Проспал всего 3 часа, потом из сна просто выкинуло. Но тем не менее, я этому рад: впервые за много лет первое января выдалось не серыми мрачным днём, а очень ярким и солнечным! Да и просто наконец-то увидел дневной свет, а то весь декабрь жил в режиме полярной ночи.

Новый Год в Сети, часть третья, последняя

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

Новый год в Сети, часть вторая

4X_Pro
Час до Нового Года! Состояние странное: с одной стороны, нет предвкушения, ожидания, что вот-вот совершится какой-то поворот в жизни, и она начнёт менятьсяк лучшему. С другой — спокойствие и удовлетворённость, что всё идёт как надо. Давно такого не было!

Новый Год в Сети, часть первая

4X_Pro
Вот и всё, то, что можно было доделать — доделал, с тем, что не успевал — смирился, и отправился праздновать Новый Год. На этот раз в достаточно необычном месте: на Пустой квартире вместес отцом. Как-то так получалось, что за всю свою жизнь я здесь Новый год никогда не отмечал (да и отец тоже всего один раз — в прошлом году).
Увы, ноутбука я с собой не взял (всё равно ставить толком некуда), поэтому в Сеть буду выходить только с телефона. Впрочем, это можно считать ещё одним шагом к цели, поставленной в этом году: приучить себя жить с мобильника, а не компьютера (кстати, об этом, равно как и о покупке телефона специально для этих целей, я забыл написать в итогах года). Но, в конце концов, главное, что я — на своём посту на своём сайте, а не с какого я устройства.
Сейчас на связь вышла Kitsune. Как всегда, порадовала своим замечательным поздравлением! А то её столько времени не было на связи, чтоя стал опасаться, что то ли она обо мне забыла, то ли обиделась.

Официальные итоги 2023 года. Часть 2, внешние события

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

На втором месте по важности стоят пуски этого года. Я реализовал давнее намерение — создал сообщество Идеалистов Интернета, которое работает как часть Fediverse. Хотя на данный момент это скорее ещё один блог для меня и 10geekа. Но тем не менее, Fediverse — одно из тех немногих мест, где сейчас можно быть замеченным без специальной раскрутки.
Также выложил Release Candidate для своего форумного движка Intellect Board. В него вошли все те изменения, которые я делал с 2020 года. Также изменения затронули и остальные сайты: перенёс их на новый VDS, и наконец-то подключил https и поддержку HTTP/2. Теперь теоретически могу сделать поддержку PWA с возможностью написания сообщений в блог в оффлайне.
Кроме того, в первой половине года я неплохо продвинулся в работе над собственным frameworkом под названием MLFW, на котором я сделал прототип первого проекта — гостевой книги.

Третье по важности событие — покупка новой квартиры в Области и то, что я своими силами справился с организационной частью ремонта, хотя раньше для меня само это слово было кошмаром. И надо сказать, в итоге всё получилось вполне хорошо. Так что теперь у меня есть место, которое я воспринимаю как Убежище, где я реально чувствую себя в комфорте и безопасности. А ещё новая квартира стала радикальной формой расхламления: на новое место я вывез те вещи, которые действительно требуются регулярно.

Также я впервые сделал многоцелевой домашний сервер для раздачи файлов, видео по DLNA, выкачиванию и раздаче torrentов в постоянном режиме и ещё ряда функций. На старой квартире в его роли выступает старый ноутбук, на новой — роутер с флешкой.

После двухлетнего перерыва я в очередной раз принял участие в конкурсе на CodinGame. Результаты остались примерно такие же, как и в прошлый раз: 725 место среди 5290 участников.

В типологической деятельности тоже наметилось некоторое оживление. Во-первых, я опубликовал черновик своей типологии эволюционных стратегий, придуманной ещё в 2021 году. Во-вторых, благодаря пользователям Keynol и golblincat наметилось некоторое оживление на socionics.me.

Летом этого года я получил статус квалифицированного инвестора — какое-никакое формальное признание.

Самым неприятным событием года было заболевание в конце августа. Давно мне не было так плохо, как тогда! 

Год был весьма неэффективным в финансовом плане: многих трат можно было бы избежать, а полученные дивиденды оказались существенно меньше, чем проценты по банковскому вкладу на ту же сумму. Также совершил одну весьма неудачную сделку на бирже: продал акции БСП. Хоть и получил прибыль более чем в 100%, но лишился дивидендов, а потом эти акции выросли ещё вдвое.

Самые запомнившиеся впечатления — поездка в Павловский Посад в начале марта этого года, и потом ещё одна — в мае, а также ночное возвращение на разваливающемся велосипеде с квартиры на дачу. Кроме того, в этом году был самый ранний заезд на дачу (22 апреля) и самое долгое суммарное проживание (с апреля по октябрь с возвращением в Москву всего на месяц в июне/июле).

Книгой года для меня стала «Жизнь Клима Самгина» М. Горького. Это огромный роман о человеке, которого я бы по характеру, типу личности и образу жизни мог бы назвать своей копией, живущей в других условиях. Жаль, что роман так и остался неоконченным, поэтому неизвестно, нашёл ли главный герой своё место в жизни в итоге или нет.
Компьютерной игрой года я назову, пожалуй, «Жизнь и страдания господина Бранте». Эта игра тоже во многом заставила задуматься о своих ценностях и выборе, который делается на их основе.

В этом году было два знакомства с весьма интересными людьми: StarGrave и Hottabych39. Увы, привести их на какой-либо из своих сайтов так и не получилось, и через какое-то время общение заглохло, когда изначальные темы исчерпали себя.

Несмотря на то, что год чем-то напоминал 2020, который я провожал с радостью избавления, в целом 2023-ьим я вполне доволен. Исключение — период с июля по середину сентября. В историю моей жизни этот год войдёт как Эпоха Великих Трат (за него я потратил денег чуть ли не столько же, сколько за предыдущую жизнь), Год Прекрасной Весны (часть года до начала июня действительно была одним из лучших периодов с 2019 года) и Год Тяжёлого Лета. Ещё его можно назвать Годом Недоделанных Дел, так как многое из того, что я хотел закончить к Новому году, в итоге пришлось перенести на 2024 год. В частности, я не успел закончить переезд (перевезти новый компьютер на новую квартиру), не выпустил официальный релиз Intellect Board 3.05 (никак не добавлю поддержку PostgreSQL в инсталлятор), не успел пройти StarCraft Broodwars. 

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

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