Портрет 4X_Pro
Был в Сети 13 дек. 2025 г., 00:21
4X_Pro
Идеалист Интернета
  • Программист
  • Блоггер
  • Фотограф
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+Cinnamon). Сторонник IndieWeb, slow lifer.

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


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

t.me/4x_pro

Лог жизни

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


Начал работу над новым движком

4X_Pro
26-ое число было очень непростым днём. Лунное затмение + сильная магнитная буря. Впрочем, перенёс я всё это достаточно легко, только в тот день был какой-то нервный, дёрганый и хаотичный. Перечитал кучу материала, но без толку. А вот вечером 25-ого реально болела голова и ни на чём не мог сосредоточиться. Из-за этого даже отложил freelance-задачу одну. Хотя, может быть, такая хаотичная активность и была связана с тем, что не хотел за неё браться.
Читать далее…

Непростые размышления

4X_Pro
Последние несколько дней горю идеей создать то самое тег-управляемое сообщество. Вчера продумал, как это реализовать технически, и даже пришёл к выводу, что можно всё сделать только на файлах, даже без REDISа. Правда, чтобы избежать проблем с перезаписью файлов из-за одновременных обращений, придётся сделать отдельный процесс для операций, затрагивающих многопользовательские списки, и повесить его либо на cron, либо запускать как отдельный systemd-unit. Ещё непонятно, что лучше использовать для внутренней системы перекрёстных ссылок (например, в каталоге с тегами — на файлы с текстами, лежащие в каталогах пользователей) — symlinks или обычные txt-файлы с указанием пути и прочей мета-информации. Symlinks на первый взгляд, кажутся хорошим решением, но снижают легкость переноса сайта и делают невозможным размещение его на Windows-хостингах.
Читать далее…

Затишье в жизни после нескольких отличных дней

4X_Pro
Опять перестал писать в блог. Впрочем, писать особо не о чем. После нескольких очень результативных дней наступило затишье. Видимо, биоритмический максимум кончился. Подумывал было над тем, чтобы сделать паузу в разработке IntB и за это время написать движок для того формата сообществ, про которые писал в статье. Но понял, что пока ещё в голове нет цельной картины в техническом плане. Главный вопрос — как делать кеширование: только ли на REDISе или же что-то более универсальное, что могло бы работать и на NoSQL, и на SQLite, и на REDIS. Зато в процессе поиска готовых решений узнал о CMS под названием TextPattern, которая является хорошей альтернативой WordPress.
Читать далее…

Один счастливый день

4X_Pro
Сегодняшний день можно назвать одним из самых счастливых дней моей жизни. У меня в голове сложилась картина, какими я вижу сообщества, которые могут заменить собой традиционные форумы! Бросив всё, я сел писать об этом заметку, и вскоре она была готова. Ещё я продумал, как могла бы быть устроена CMS для реализации такого сообщества. Как это ни странно, её имеет смысл пользователе-центричной, то есть по принципу: всё есть действия пользователя — и статьи, и комментарии, и лайки, и репосты. Причем все действия хранятся в текстовых файлах в каталоге каждого пользователя с упорядочиванием по времени. А для кеширования метаинформации, например, списка всех статей для тега, и хранения всяких OAuth tokens использовать что-нибудь типа REDIS или SQLite. (Хех, сказывается тлетворное влияние сообщества IndieWeb.) Плюс тогда пользователю можно будет дать возможность выгрузки своих данных для простого переноса на другой сайт.
Читать далее…

События последних дней

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

Ещё вечером того же дня опробовал было одну идею для конкурса на CodinGame, но она себя не оправдала: результат стал хуже почти 300 позиций. Пришлось вернуть исходную версию. И в итоге в понедельник закончил соревнования на 1465 месте из 6867 участников, второй раз за всё время добравшись до золотой лиги. Причём в этот раз участвовал достаточно лениво, а не как в предыдущие, сидя все десять дней за компьютером безвылазно.
Читать далее…

День настоящей slow life

4X_Pro
Вчера получился день самой настоящей slow life. Проснувшись, я вышел на участок и где-то почти час сидел и созерцал природу. Удалось почувствовать гармонию с миром и то самое ощущение, что всё идёт как надо, и некуда спешить! Потом сел за компьютер и занялся доделкой алгоритма для соревнования на CodinGame. После нескольких улучшений удалось подняться в серебряной лиге с 70—80-х мест до 30-х. Потом решил существенно переделать алгоритм выбора места для посадки новых деревьев (и тут пригодились алгоритмы поиска пути в графе, которые изучал в 2019 году), но он что-то не хотел работать. Решил прерваться и поесть, тем более по времени было уже около 18 часов, а я за день нормально не ел. Не знаю почему, но когда я на даче один, обеды/ужины растягиваются просто на какое-то нереально огромное время. То ли из-за того, что в процессе ухожу в созерцание и размышления, то ли ещё по каким-то причинам. Но есть я закончил в 19:40.
Читать далее…

Смешная ошибка

4X_Pro
Продолжаю участвовать в конкурсе на CodinGame. Вчера открылась серебряная лига, куда я сразу же прошёл. А вот дальше откатился на 1200-1300 места и ничего не мог с этим поделать. Два дня ломал голову, что же улучшить в алгоритме, почему такие плохие результаты. Потом стал сравнивать свои действия и действия противника на первых ходах (у меня до 6-ого хода последовательность действий закодирована жёстко) и обнаружил, что даже когда я пытаюсь дублировать действия противника один в один, это не получается. Стал разбираться и обнаружил глупейшую ошибку. У меня проверка возможности совершить то или иное действие была сделана криво: количество sun points (очков действий) проверялось на строго больше, а не больше или равно. Как только это исправил, сразу же подпрыгнул до 860 места.
Читать далее…

Прогулка к устью Плотни

4X_Pro
Наконец-то холода закончились, и появилась возможность выбраться на прогулку. На этот раз я решил отправиться к водоёму к югу от Буньково, а затем — к устью реки Плотня. Настроение было просто отличное: солнечный весенний день, совсем недавно появившиеся светло-зелёные листья на деревьях, и ощущение легкости и беззаботности. Ещё когда только подходил к реке, удивился, как много солнечных бликов видно сквозь деревья. Оказалось, что и Клязьма, и Плотня очень разлились из-за последних дождей, и значительная часть луга возле устья Плотни затоплена водой. А ещё там образовался небольшой островок, и кто-то положил доску, чтобы на него можно было перебраться. Я хотел было забраться туда, но доска оказалась слишком ненадёжной, и от этой идеи пришлось отказаться.
Читать далее…

Новый конкурс на CodinGame

4X_Pro
В четверг днём успел сделать ещё один небольшой шаг в плане поддержки IndieWeb — написал код для endpoint discovery.

А потом начался конкурс на CodinGame! Задача про засев леса меня очень порадовала! Как и ожидалось, в бронзовую лигу я поднялся в тот же вечер, буквально с двух commitов (точнее, на CodinGame правильнее называть их submitами), написав совершенно простенький алгоритм. А вот дальше немного замедлился. Попытался было написать алгоритм, играющий перебором, но при большой глубине поиска нарывался на таймаут, а при маленькой — оказался на 1700-ых местах из 4000.
Читать далее…

Поездка к Карпятнику

4X_Pro
Вчера заехал на дачу, и сегодня решил отправиться на велопрогулку на озеро Карпятник. У этого озера есть одна особенность: оно наиболее красиво именно в начале мая, когда вода прозрачна. Потом озеро зацветает, вода делается зелёной и мутной, что сильно портит впечатление. Поэтому я и решил отправиться туда именно сегодня.

С утра оказался перед выбором: либо ехать сразу, но на голодный желудок, отчего сильно уменьшается выносливость, либо всё же сначала поесть. Выбрал второе. Но пока собирался, пока доехал, погода начала меняться: большая часть неба закрылась облаками. Поэтому первая серия фотографий получилась какой-то мрачноватой. А озере было немноголюдно (что бывает не так уж часто), поэтому решил немного посидеть на берегу, посмотреть на воду. И тут мне повезло: буквально на пару минут тучи разошлись, выглянуло солнце, и я смог сделать несколько фотографий этого места именно так, как задумывал в самом начале (они выложены первыми).
Читать далее…