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

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


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

t.me/4x_pro

Лог жизни

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


Hashcode — всё опять придумано до нас

4X_Pro
Сегодня в Telegram-канале IndieWeb узнал, что существует проект под названием Hashnode, в котором уже реализованы мои идеи о сообществе, управляемом тегами. Более того, там пошли дальше: дали возможность каждому участнику подключать собственный домен, чтобы вести блог на нём. При этом основной сайт проекта выступает в роли инфохаба, где есть лента с рекомендациями, список активных хеш-тегов, рейтинг блогов и т.п. И даже есть должность тег-модераторов! В общем, всё почти так, как я себе и представлял, кроме разве что рейтинговых голосований — вместо них обычные лайки.
В результате задумался, а не сделать ли сообщество идеалистов Интернета в виде коллективного блога там. Правда, будет та же проблема, что и на Pikabu: сообщество внутри сообщества несколько ограничивает возможности и не оставляет места для чего-то более личного (типа фотографий котиков, видов с прогулки или просто дневника участника без трансляции в основную ленту).
Сообщество полностью англоязычное и ориентировано на tech writing. Хотя иногда попадаются блоги на китайском и ещё каком-то азиатском языке.
Жаль, что сам движок там вроде бы закрытый. Будь он open source, я бы просто взял отдельный VDS, поднял бы на нём свою копию, и получилось бы именно то, что нужно. А пока, видимо, просто придётся использовать его как образец для вдохновения в плане frontend-части. Ну или если вдруг уйду на Рестарт, то под новым я сайт-блог сделаю именно там.

Бронзовая лига взята

4X_Pro
Что ж, после ещё одного вечера программирования я вышел на CodinGame в бронзовую лигу (на данный момент это высшая, серебряная откроется только 30 мая). Причём из «дубовой» лиги выходил очень тяжело, никак не мог понять, в чём дело. Один раз почти получилось, но потом посыпалась череда поражений, и в итоге застрял на 13 месте. А потом выяснилось, что в программе была ошибка: я не реализовал сохранение уже построенных маршрутов в свойствах игрока. Из-за этого новые маршруты добавлялись далеко не всегда оптимальным образом. Как только с этим разобрался, сразу же прорвался в бронзовую лигу (на данный момент более высокие ещё не открыты) и поднялся там до 431 места. Завтра буду пробовать дальше: уже есть мысли, что ещё можно сделать…

CodinGame: новое соревнование

4X_Pro
Вчера зарегистрировался на новом конкурсе CodinGame. Долго не мог определиться, стоит ли ради него отвлекаться от разработки MLFW. С одной стороны, раз отвлёкшись, сложно вернуться. С другой — сейчас всё равно период, когда плохо представляю, что именно делать дальше. В итоге решил сделать то же, что и в 2021 году: выйти хотя бы в серебряную лигу, а дальше — как пойдёт, но не устраивать себе бессонных ночей с одержимостью, как это было в 2018—2019 годах.
Но вчера день оказался какой-то неэффективный: кое-как вник в условия конкурса, но не написал ни одной строчки кода. Занялся этим только сегодня, и то как-то весьма неспешно. Но зато понял, что изучение алгоритмов зря не прошло: сам подход существенно поменялся. Хотя и сама конкурсная задача тоже стала сложнее. Раньше я в бронзовую лигу выходил легко (однажды даже написал код, который сразу проскочил и первый, и второй дивизион дубовой). А сегодня писал и отлаживал код весь день. Из второй дубовой вышел после первой же отправки, а вот в первой с тем же кодом даже до середины не поднялся. Правда, там и существенные изменения в условиях игры происходят: появляются новые правила и более жёсткие ограничения. В общем, судя по всему, завтра придётся код основательно переписывать. Заодно и в плане оформления улучшу… Правда, не знаю, хватит ли времени: кроме этого, собирались с отцом съездить на новую квартиру.

Заметка в Instagram от May 24, 2023 at 09:11PM

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

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

На нас напали!

4X_Pro
Недавний скан сайта не прошёл бесследно. Сегодня зашёл в Метрику и обнаружил, что просел траффик, а 19-ого числа было 20 тысяч заходов! И все — боты из Эстонии, проведшие на сайте по 5 секунд. Пришлось срочно добавить тег rel=canonical на сайт, и теперь ещё несколько дней займёт переиндексация. А сегодня утром прилетело уведомление от ВК о том, что кто-то попытался зайти в мой аккаунт с iPhone. Проверка последних сессий показала, что безрезультатно.
В общем, кто-то решил в Сети со мной повоевать. Судя по данным Метрики, это лицо в возрасте 24-35 лет мужского пола и явный эпплузер (заходы с компа тоже с Apple-техники, если только у него не хватило мозгов подделать User-Agent). Остаётся только вопрос, кто это и что ему вообще нужно. Пока рабочая версия — та же команда, что докопалась до abrbusа.
А пока предупреждаю всех: если вдруг получите сообщение от моего имени и оно покажется вам каким-то странным (например, просьба денег в долг) — задавайте контрольный вопрос, чтобы удостовериться, что это действительно я. Так победим.

Об MLFW и slow life

4X_Pro
В конце прошлой недели вернулся к работе над MLFW (MindLife framework) и достаточно неплохо продвинулся. Сделал авторизацию по фиксированному списку пользователей (когда список хранится не в базе, а задаётся непосредственно в настройках приложения) и подключение логгеров по стандарту PSR-3. Причём когда делал авторизацию, пришлось принять тяжелое решение — увеличить минимально требуемую версию PHP с 7.0 до 7.1, чтобы можно было делать type hinting для нескольких типов сразу.
Когда решал этот вопрос, заглянул на официальный сайт PHP и с удивлением обнаружил, что там последняя официально поддерживамая версия уже давно вообще 7.4. Какой кошмар! Куда все так торопятся? В том же Ubuntu 18.04, срок жизни которого ещё не закончился, официальная версия — 7.2 (и без костылей типа PPA её не обновить), у какого-нибудь CentOSа, наверное, ещё более старая. Мир стал слишком быстро меняться, и непонятно, как его притормозить!
Ещё понял, что моя работа над MLFW — это как раз то самое творение в режиме slow life, каковым оно и должно быть: с долгим размышлением над тем, какое решение будет максимально правильным, с изучением стандартов и мнений, как делать лучше. А ещё возврат и переделка неудачных решений.
В частности, вчера половину вечера потратил на то, чтобы определиться, в каком формате нужно писать лог. В итоге пришёл к выводу, что лучше использовать tsv вместо csv, предусмотрел возможность указывать не просто имя файла, а с возможностью подстановки даты, хоста и серьёзности лога. А также выбрал формат даты, который автоматически распознаётся LibreOffice Calc при импорте tsv.
В общем, из серьёзных доделок, по сути, остаётся только работа с формами, планировщик с поддержкой надёжных задач и кеширование. Из более мелких — лента RSS, всякие минификаторы CSS (и склейка в один файл) и HTML, но это можно позаимствовать из разработок 10geekа или моего проекта 2seconds (нужно будет ещё сравнить, чей вариант эффективнее). Начинаю верить, что когда-то я всё это всё же доделаю! Вообще, написание этого frameworkа подобно строительству средневекового собора: результат будет виден очень нескоро, но само занятие этим даёт чувство наполненности жизни смыслом.

Как потерять полчаса напрасно

4X_Pro
Сейчас попытался улучшить Интернет на даче. Сначала думал, проблема в недостаточной мощности WiFi в роутере. Спустил его на первый этаж, подключил к ноутбуку через USB, но лучше от этого не стало. Решил переключиться с 4G на 3G из соображений, что последний меньше загружен. Сначала скорость выросла, но через пару минут связь отвалилась вообще и наглухо. Обратно роутер тоже отказался переключаться с неведомой ошибкой. В итоге попытался включить/выключить передачу данных через Web-интерфейс, но получилось только отключить. Потом роутер перезагрузил, 4G снова включился, но я очень долго не мог понять, почему траффик не идёт. Перезагружал несколько раз роутер, компьютер, снова переключался на 3G и обратно, но ничего не помогало: траффик был нулевой. И только потом увидел в Web-интерфейсе, что мобильная передача данных выключена. Включил — и всё заработало!

Перебрался на первый этаж

4X_Pro
Опять не успеваю писать в блог. То дни настолько эффективные, что на это не остаётся времени. Так, в частности, было 17-ого (в тот день, когда я писал про рассвет) и вчера (об этом ещё напишу сообщение). То, наоборот, дни проходят мимо, и не успеваю почти ничего, да ещё и не высыпаюсь. Так, например, было в пятницу. Впрочем, тогда кое-что успел: выбрались с Tellой в Посад и посмотрели там часть города западнее площади Революции. Место там очень уютное и какое-то радостное, если можно так выразиться: старые двухэтажные деревянные домики и тихая речка Вохонка.
А сегодня начал лето досрочно: перенёс ноутбук на первый этаж. Обычно делаю это 1-2 июня (и именно этот момент и считаю началом лета), но теперь решил, что первый этаж уже достаточно прогрелся. Насколько же тут комфортнее: и кресло нормальное, и экран большой, и клавиатура внешняя.

Рассветное созерцание

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

Заметка в Instagram от May 15, 2023 at 10:50PM

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

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

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

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