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

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


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

t.me/4x_pro

Лог жизни

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


Очень насыщенный день

4X_Pro
Вчера получился непростой, но очень насыщенный день. Ночью пришла в голову идея собственной MMORPG, которая сочетала бы Diablo-подобную боевую часть с развитой экономической, как в Ultima Online, и общественной, как в WiW (Wizards World). В частности, одним из отличий было бы то, что dungeons генерировались бы не под каждую party, а на фиксированное время, и их можно было бы делать общедоступными для всего города (за вознаграждение). Ещё отличие — число воскрешений персонажа было бы ограничено, равно как и время его жизни в принципе, а дальше, чтобы иметь возможность продолжить игру, нужно было обзаводиться наследниками, как в Crusader Kings 2. Причём эта ограниченность позволяла бы избежать искусственных задержек при сборе ресурсов: вместо них отнималось бы время жизни персонажа. А ещё во избежание унылого задротства, которым грешит большинство MMORPG, в игре должна быть возможность предусмотреть персонажу распорядок дня, по которому тот будет выполнять типовые действия тогда, когда игрок в оффлайне (например, с утра или на сбор ресурсов, потом — на прокачку силы, потом — на изучение навыка).
В общем, где-то час сидел и описывал в блокноте ключевые особенности. Получилось 20 пунктов, и то кое-что недоописал. И правильно сделал, так как уже сейчас та целостная картина, которую я года видел, из головы пропала. (Кстати, подумалось тут: то, что я снова могу такое придумывать — это следствие восстановления канала с ЕИВП в результате более-менее регулярных медитаций в последнее время.)
Жаль только, что реализовать сам я это не смогу: не хватит ни знаний, ни терпения. Максимум, что можно сделать — это расписать более детально, и выложить сюда в раздел «Идеи», а также продублировать на какой-нибудь сайт типа DTF.
Вообще, осознаю то, что мне придумывать идеи нравится куда больше, чем их реализовать. Во время реализации я слишком тону в деталях и теряю из вида картину целиком, а именно это целостное видение и мотивирует меня что-то делать.
Из-за этого лёг спать в 4:40, а около 9 утра меня без видимых причин выбросило из сна. Два часа сначала просто лежал, потом читал книжку, и только потом ненадолго смог уснуть снова. А в 13 разбудил отец SMSкой, спросив, готов ли я идти на лыжах.
Лыжная прогулка получилась весьма неплохой! Казалось, что лыжи летят сами собой, особенно если идти коньковым ходом. Правда, день во не такой солнечный, как позавчера, только к концу прогулки немного прояснилось. И недосып всё же сказывался: и ритм для конькового хода было сложно поймать, и с другими лыжниками разъезжаться. Кстати, людей было просто на удивление много! Не думал, что в городе столько любителей ла лыж можно найти в наше время!
Вернувшись, я хотел час доспать, а потом поехать к DarLik вместе с Tellой. Но увы, не сложилось. Поэтому к DarLik приехал в ужасном состоянии: уставший, голодный, не выспавшийся. А ещё там было душно. Несмотря на это, встреча прошла в целом хорошо. Но домой приехал просто никакой.
А сегодня предстоит поездка в Суздаль. С одной стороны, жду с нетерпением и думаю о том, реально ли есть у меня дар «раскрывать» города, находя в каждом что-то интересное (даже в таком непримечательном, например, как Ногинск) или же это просто это просто так везло в предыдущие поездки + результат малой выборки. Ещё переживаю, что опять придётся ехать невыспавшимся: из сна снова выкинуло около 6 утра, и с тех пор не понимаю, засыпал ли снова или нет (браслет считает что да, но он иногда за сон принимает просто спокойное лежание в кровати).

Неожиданный поворот

4X_Pro
Только мне показалось, что определился, куда и как двигаться дальше, как жизнь вдруг выкинула неожиданный кульбит. Показал DarLik одну давнюю заметку в разделе «Мировоззренческое», после чего зашла речь о том, что когда-то в 2014 и 2018 годах я хотел написать целую книгу, но дальше оглавления, введения и набросков первой главы дело не пошло. С одной стороны, когда задумывал, не понимал, насколько я вообще тяжело пишу. С другой — было несколько разрозненных кусков того, что я хотел рассказать, но не было целостного понимания «к чему всё это», что я в целом хочу сказать миру, кроме банального призыва «не надо быть карьеристом-ускорителем жизни, не надо жить слишком быстро и в гонке за успехом забывать о мире вокруг».
И вдруг, уже ночью, пришло понимание про что должна быть моя книга! Про то, как стать/быть самим собой. И стало понятно, к кому я хочу обратиться: к тем, кто либо испытывает кризис перехода со второго уровня Подводного на третий, либо уже перешёл и не знает, что делать дальше. Причём ночью даже было понимание, как сплести теорию, практические рекомендации по выживанию в мире, который не даёт быть собой, и историю своей жизни воедино. Но есть одно «но»: невозможно призывать быть собой и в то же время позиционировать свою систему этики как единственно правильную.
Правда, дальше получилось как всегда: из-за эмоционального перегруза долго не мог уснуть, а когда проснулся, желания что-то делать уже не было. И теперь пытаюсь понять, в каком же направлении мне идти: заниматься книгой или проектами. Или же попытаться сделать так, чтобы эти два направления в жизни уравновешивали друг друга: прокрастинация в одном из них приводила бы к активной работе над другим.

Утро ответов

4X_Pro
Сегодня внезапно получил ответы на многие вопросы, которые не давали мне покоя в последнее время. Уж не знаю, от высших сил, или бессознательного или ещё откуда, но внезапно проснулся рано утром с твёрдым пониманием, что и как. Самым главным было понимание, как быть с тем, что при разработке крупного проекта в одиночку всегда будет отставание от аналогов. Ответ был предельно простым: ниша для одиночек — это super lightweight-проекты, а не feature rich (эх, не знаю, как сформулировать по-русски, но ничего, программисты поймут), то есть важны минимализм, простота и возможность работать на любой хостинг-помойке. И которые можно написать за один раз, чтобы в дальнейшем не требовалось заниматься поддержкой. (Хотя опыт TextCMS показывает, что с течением времени может начать устаревать даже такой простой код, как в ней.) Например, не имеет смысла пытаться написать систему комментариев, которая будет сопоставима с чем-нибудь типа TolstoyComments, но при этом будет бесплатной и self-hosted, а написать предельно простую систему на текстовых файлах (как когда-то обещал Aksionу). Или доделать ту же гостевую или движок личного архива (хотя сначала нужно посмотреть, возможно, под это имеет смысл задействовать какие-то из готовых CMS, созданных в IndieWeb, например, ту же Known, хоть она работает с СУБД).
Потом возникла мысль, как удобно хранить комментарии и записи в гостевой в текстовых файлах так, чтобы с одной стороны, не валить всё в один каталог, с другой, чтобы было просто извлекать и делать выборки по периодам. И что пароли, если нет БД, имеет смысл хранить в .htpasswd-файле, даже если проверка идёт на PHP, а не Позже напишу об этом в профблоге.
Ещё понял, что когда выпущу release IntB 3.05, нужно вернуться к работе над MLFW, и делать все последующие проекты на нём, не писать что-либо с нуля. И нашлось решение той проблемы, на которой я застрял летом — как переделать шаблонизатор так, чтобы передавать туда не класс вложенного шаблона, а файл с ним так, чтобы можно было использовать разные шаблонизаторы.
И последнее — стала проскакивать мысль снова попробовать полифазный сон: ставить будильник на утро, проводить час-другой в размышлениях и, возможно, медитации, потом засыпать снова, и уже отоспавшись нормально, приступать к реализации идей, которые утром приходят в голову.

Когда-то существовавшие идеи личного архива

4X_Pro
Продолжаю крутить в голове идею сайта-личного архива. Уже примерно сложилась в голове цельная картина, как всё должно быть. Только вот никак не могу решить, делать его на базе MLFW, либо же полностью с нуля. И до сих пор не написал ни строчки кода.
Решил поискать, нет ли чего подобного в англоязычном Интернете. Наткнулся на четыре разных проекта, существовавшие в первой половине 2010-х годов: ThinkUp, egoArchive, Memolane, Greplin. Но все они уже прекратили своё существование. Правда, делались они как коммерческие стартапы и централизованные платформы (и с рядом дополнительных функций, до которых я бы так просто не додумался, например, индексацией приложенных к сообщениям файлов для их более удобного поиска), тогда как в моём понимании личный архив обязательно должен быть либо self-hosted и с акцентом на сохранение данных и преодоление цифровой фрагментации, чтобы вся Сетевая жизнь была не разбросана по десятку площадок, а собрана в одном месте. Впрочем, недавно пришёл в голову более радикальный вариант: вместо Web-скрипта делать мобильное приложение. С одной стороны, это расширит целевую аудиторию, но с другой — это сделает архив личным, а не публичным, что несколько противоречит тому, что я хочу.

О бодрости и первой мысли дня

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

Два дня, прошедших мимо

4X_Pro
В пятницу получился жуткий день. Причём во многом по глупой причине — в четверг поленился сготовить на ужин мясо нормально, перекусил наскоро пельменями и лёг поздно. В пятницу проснулся после одного цикла (видимо, от голода), посидел в Интернете, размышляя над возможностью перевода idealists.su с Akkoma на движок FireFish, у которого вроде интерфейс получше. Но всё упирается в вопрос переноса данных без потерь…
Потом заснул снова. Через некоторое время Tella разбудила телефонным звонком. Проснулся голодный, злой, голова не соображает. Через это основательно поругались, и сильно разогнался эмоционально. В итоге день прошёл мимо от слова совсем, не сделал вообще ничего. И думал о том, что достала эта хаотичная жизнь, хочу хоть какого-то порядка. Единственный плюс — вечером лёг спать рано по своим меркам: около 2 часов ночи. Но всё равно позже, чем хотел.
А вчера отмечали с отцом Старый Новый Год. Обычно Старый НГ бывает даже лучше, чем обычный, но в этот раз получилось как-то странно. Но в целом, как это ни странно, доволен, что к нему выбрался. Правда, опять за весь день почти не садился за компьютер.

Наедине с собой

4X_Pro
Почти всю посленовогоднюю неделю я из-за холодов сидел дома на новой квартире безвылазно, но при этом мало времени проводил за компьютером. В Сеть выходил, в основном, с планшета и мобильника. Отчасти этому поспособствовало то, что Tella подарила мне Bluetooth-клавиатуру, что сделало возможным тот самый эксперимент, о котором я писал в прошлом году: проверить, влияет ли способ ввода на то, насколько устройство цепляет моё внимание. Как выяснилось, нет. На планшете, даже печатая с физической клавиатуры, я всё равно так не «застреваю», как на компьютере.
В результате входящий поток информации уменьшился, и я стал больше размышлять о своей жизни. В один из дней проснулся очень рано, и тут мне пришло осознание, что вся моя жизнь — это попытка доказать всему миру всего четыре утверждения:
  1. «Информационный коммунизм», когда каждый творит какой-то контент и бесплатно этим делится в обмен на свободное пользование чужими творениями, всё-таки возможен.
  2. Талантливый одиночка, по настоящему увлечённый своим делом, может сделать для мира больше, чем группа профессионалов, просто отрабатывающих зарплату.
  3. Если сохранить детско-подростковое восприятие мира, то можно быть счастливым и довольным жизнью с небольшими доходами. Это даёт возможность меньше работать, меньше участвовать в конкуренции, и больше времени тратить на то, что реально приносит удовольствие.
  4. Что я достоин уважения (а также пропускания без очереди) больше, чем большинство лицеистов и, особенно, лицеисток, в частности, Hanzirы.
А основные проблемы, которые не дают мне покоя, заключаются в следующем:
  1. Я слишком мало даю миру, а то, что даю, большей частью остаётся невостребованным.
  2. Понимание, что у творений таких одиночек есть и обратные стороны, например, хуже документация и техподдержка, чем у командных проектов.
  3. Никак не могу найти в жизни баланс между результативностью (для которой нужна самодисциплина), дающей ощущение «живу не зря», и счастьем (для которого нужна, наоборот, спонтанность и беззаботность).
Ещё в поисках ответа на вопрос Tellы, почему вокруг меня подбираются люди определённого склада, я осознал одну масштабную берновскую игру, в которую играю в течение всей жизни. Заключается она в том, что я пытаюсь сделать что-то для мира, что большинством людей просто не востребовано. Например, создавая тот же IntB, я не умею ориентироваться на тупых пользователей, а исхожу из того, что управлять форумом на нём будет человек, с сопоставимой с моей квалификацией. А потом обвиняю мир в том, что он плох (чередуя позиции Жертвы и Агрессора, при этом на роль внешнего Агрессора могут назначаться те, кто критикует с позиций соционической ЧЛ), потому что не могу заставить всех развиться до такого уровня, и ищу тех, кто поддержит меня в этом (выступит с позиции Спасителя).

Заметка в 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 годы в этом плане) я чувствовал себя более живым именно потому, что там почти всегда висели какие-то «надо»?

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

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