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

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


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

t.me/4x_pro

Лог жизни

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


Продолжаю искать ответ

4X_Pro
Продолжаю задаваться вопросом, который поднял в одном из предыдущих сообщений: почему и в какой момент я перестал делать что-то легко и играючи? Крутил в голове разные периоды жизни, и понял, что это случилось где-то в период с 2000 по 2003 год. Точно помню, как на первом курсе Института я легко освоил MathCAD, Mapple и основы VBA Script, написал свою библиотеку виджетов под DOS и, чуть позже, программу, которая сглаживала линии на сканированных ч/б рисунках (это часто было нужно отцу) и удаляла грязь. По сути, та программа делала простейшие операции errode и dilate с кистью 5x5, но тогда я таких слов не знал, и придумывал всё сам на ходу. А на втором курсе верил, что легко освою lisp (хотя в итоге даже не попытался). И точно помню, что уже на пятом курсе (конец 2003 года) такой игривости не было, вместо этого было то, что я называл «кризисом программирования», когда любая незнакомая задача казалась кошмаром.
Есть несколько версий:
  1. тогда у меня не было цели прославиться и добиться признания, а следовательно, потребности в конкретном результате. Поэтому если я брался за слишком сложную для себя на тот момент задачу, я просто без сожаления её бросал и переключался на что-то другое;
  2. отсутствие избыточного выбора и перегруза информацией вместо её дефицита, которые появились после Подключения;
  3. какие-то последствия Декабрьской Трагедии, типа очередных замороженных эмоций;
  4. эффект Даннинга-Крюгера, из-за которого я верил, что тут дел-то на пару часов или дней, поэтому творение чего-то было работой по Настоящему (с точки зрения темпористики), а не по Будущему, что мне даётся легче. (Кстати, тоже несколько удивительно: Настоящее у меня четвёртое по основной версии, то есть наименее наполненное энергией).

Приступ инфоголизма

4X_Pro
Понемногу выкарабкиваюсь из нересурсного состояния, в котором был всё начало недели. Понемногу двигаюсь с переделкой личного сайта: доделываю страницы второго уровня, дописал некоторые скрипты, но никак не могу определиться, что и в каком виде вынести на главную. В четверг ещё сделал шаг по переводу SuperMon_Bot.
Ещё в последние дни просто приступ инфоголизма. Много сижу на Хабре. В частности, нашёл там подборку репозиториев на GitHub с разными полезностями. Особенно понравился сайт 30 Seconds of Code и подборка Build your own X. В частности, сейчас читаю там про то, как написать свою реализацию протокольного стека TCP/IP.
И читая это, задался вопросом: ведь я почти всё необходимое знаю (кроме того, как считается контрольная сумма заголовка IP-пакета). Протоколы IP, ICMP, TCP, UDP и ARP изучал ещё во времена NHT, а потом — курса по Сетям в Институте. Про то, как сделать TUN или TAP-интерфейс, читал совсем недавно. Но вот написать свою реализацию, пока не прочитал статью, не смог бы даже в таком простом варианте, как там (без обработки фрагментированных пакетов и т.п.) — просто не понимал, как подойти к этому вопросу. Не было той самой целостной картины в голове, появление которой обычно и даёт мощную мотивацию.

Заметка в Instagram от July 05, 2022 at 04:49PM

4X_Pro
Сегодня случился приступ бессонницы. И в голову пришла необычная идея: отправиться на утреннюю прогулку на самокате в Измайловский парк и проехать так называемый большой круг от Лебедянского пруда до Красного.
И я это сделал! Очень этим доволен, впечатлений масса! Утром мир воспринимается совсем иначе, даже самые обыденные места типа шоссе Энтузиастов (см. второе фото).
Больше всего понравилась первая часть прогулки — дорога к Лебедянскому пруду. Тогда только-только поднялось солнце, как-то совершенно особенно, по-утреннему пели птицы, дорожка в парке совсем пуста, и ехать — одно удовольствие.
В лесу было ещё сумрачно, и только перед самым прудом я выехал на открытое пространство, полностью залитое солнцем (см. фото 3). А сам пруд был покрыт туманом. К моему большому удивлению, возле прудов я оказался не один: там было несколько рыбаков и какой-то йог, занимавшийся на коврике.
Какое-то время я посидел возле пруда, стараясь максимально вобрать в себя впечатления от всего этого, потом отправился дальше. Проехал по дорожке вдоль пруда. На ней из-за просветов между деревьями образовалась интересная игра света и тени (см. фото 6). Бросил ещё один взгляд на пруд, на этот раз с северного берега, откуда можно увидеть его целиком во всём великолепии, и поехал к ручьям: Харигозинскому, Липитинскому и Косинскому. Из-за жары они сильно обмелели, поэтому ничего особо интересного там увидеть не удалось. Затем выехал к Декоративным прудам, где снял ивы, растущие по их берегам. И дальше отправился домой мимо Красного пруда. Ехал и в этот момент чувствовал полноту жизни, включенность в здесь и сейчас, и переполняло такое чувство радости, какого давно не испытывал!
#утро #летнееутро #лето2022 #измайловскийпарк #лебедянскийпруд #прогулканасамокате

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

Недостаток лёгкости творения

4X_Pro
Несколько дней назад пришло понимание, откуда же берётся моя неудовлетворённость жизнью, хотя вроде бы есть возможность жить так, как хочется. Всё очень просто: в своих представлениях как жить я всегда видел себя этаким играющим творцом, создающим что-то быстро, легко и непринуждённо, просто потому что захотелось. Но реально таковым не являюсь. Процесс создания чего-либо идёт медленно и мучительно.
Вот, например, взять ту же страницу о моих компьютерах для новой версии личного сайта. Изначально я думал, что набросаю её за 1—2 дня за время прошлого возвращения в Город. Реально же это заняло почти три недели! И это всего одна страница… (Если считать только те дни, когда я реально сидел и писал, то получается чуть меньше, 4—5 дней.) А ещё нужно добавить фотки компьютеров и какой-нибудь lightbox-скрипт (который опять же нужно найти и выбрать).
Или этой ночью пришла в голову мысль добавить на пустое место в левой части сайта пасхалки в виде случайно появляющихся персонажей старых игр, например, Pacmanа, монстров из Space Commander, ракету из Spy vs Spy, фигуру из Tetrisа и ещё несколько. Но мысль о том, что нужно найти и скачать все перечисленные игры, сделать скришноты (причём кое-где нужно поймать несколько кадров анимации), потом написать скрипты, отвечающие за их появление и уход, вызывает уныние.
И вот то, что состояние «ух ты, какая классная идея, сейчас сделаю» так легко и быстро переходит в «ой, сколько же придётся возиться» и есть моя главная проблема на данный момент.
Попытался было понять, что с этим сделать, с помощью карт Таро. Получил следующее:
«Почему я так медленно и тяжело творю» — перевернутая десятка Чаш. Истолковал как недостаток эмоционального наполнения жизни.
«Что с этим можно сделать» — прямая десятка Мечей (одна из самых частых карт в моих раскладах). Воспринял как что-то вроде «принять неизбежное, прекратить бессмысленные попытки».
«В чём заключается это бессмысленное» — перевернутое Колесо Фортуны (аркан X). Видимо, имеется в виду, какое-то движение назад.
«Чем оно вызвано» — перевёрнутое Солнце (аркан XIX) — заблуждения.
И последним вопросом было «заблуждения в какой области». Ответом стала тройка Кубков, то есть где-то в сфере эмоций (кроме того, Galaxy Taro её толкует как карту дружбы).
На этом я и остановился, но ясности это не добавило.

Удачное возвращение

4X_Pro
После двух весьма активных дней последовал спад. Да и в Welltory показатели ухудшились. То ли слишком много сил потратил, то ли накопился недосып (в предыдущие дни спал часов по 6), то ли новолуние сказывается.
Вчера большую часть времени провёл в состоянии ухода в себя, созерцания. Пытался кое-что доделать по freelance-задачам, но желания не было от слова совсем. Поэтому всё, что сделал — это написал ещё часть материала о своих компьютерах для новой версии личного сайта. Кошмар, как же медленно идёт дело. Зато если изначально я просто хотел описать конфигурации, то теперь про каждый из компьютеров — целая история, как он повлиял на мою жизнь.
Сегодня вернулся в Город. Лучшая часть лета позади. Равно как и половина этого года с непростым характером, как я назвал его ещё в январе. Или времени правды, как сказал 10geek.
Изначально хотел ехать, как обычно, через Посад. Но когда собрался и посмотрел расписание, обнаружил, что на 15:55 не успеваю, а потом больше часа электричек нет. Оказался перед выбором: либо сидеть и ждать, и приехать в Город позже, чем хотелось, либо ехать через Ногинск. Выбрал второе, причём изначально хотел дойти до дороги пешком, и там сесть либо на автобус, либо, если времени будет мало, вызвать такси.
Но снова прособирался и оказался перед выбором: либо сразу ехать в Ногинск на такси, либо бесцельно сидеть ещё 15 минут в доме, и потом ехать как обычно, через Посад. В итоге выбрал первое, но всю дорогу до Ногинска думал, правильно ли поступил и что всё-таки ценнее: 15 минут времени или 150 рублей денег (поездка до Ногинска стоит на эту сумму дороже, а цена билетов на электричку из обоих пунктов одинакова).
Поездка прошла на удивление хорошо. И такси приехало буквально через две минуты с момента вызова (так бывает редко), и на станцию приехал с таким запасом, что можно было купить билет совершенно без спешки (хотя всё равно нервничал последнюю часть пути). И в электричке занял отличное место у окна лицом вперёд (впрочем, в Ногинске народа мало садится, это не сложно). И трамвай подошёл буквально в тот момент, когда я дошёл до остановки. Как я говорю в таких случаях, высшие силы создают попутный ветер благоприятных событий.
С интересом смотрел изменения, которые произошли с 2019 года. А ещё думал о том, что когда-то, когда дачу только купили, мечтал когда-нибудь во время поездки высадиться и получше осмотреть те или иные места. Например, пруд возле Есино или реку Чёрная возле одноимённой платформы. Но всегда откладывал, потом год заканчивался, и в итоге идея так и оставалась нереализованной. Причём вроде бы ничего мне не мешает: тут не надо ни с людьми как-то взаимодействовать, ни деньги дополнительные тратить, ни ещё чего-либо. Просто действие слишком выходит за рамки привычного, вот и не делаю… Тот самый случай, когда границы — в голове, а не вовне.
Остаток дня прошёл куда-то мимо. Даже не могу вспомнить, чем занимался, кроме бытовых вопросов.

Заметка в Instagram от June 30, 2022 at 08:21PM

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

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

Насыщенные дни и сделанный прототип

4X_Pro
Эти три дня были весьма насыщенными, не успеваю фиксировать всё. В воскресенье всё же разобрался с основами Vuetify и к ночи понедельника в целом сделал большую часть прототипа. А ещё поменял своё отношение к material design. В общем-то не такая уж это и плохая штука. (Хотя всё равно во времена Android 2 и 4 интерфейс был лучше.) Осталось только разобраться, как подключить редактор Quill и расставить значки действий именно так, как мне требуется (ну и найти наиболее подходящие). Правда, вычитал на Хабре, что более перспективно использовать не Vuetify, а Quasar: он и Vue 3 поддерживает, и Server Side Rendering, и даже по размеру скриптов вроде экономнее. И как всегда, это несколько демотивировало. Впрочем, с другой стороны, какая разница, если делаю только прототип, чтобы понять, как должно выглядеть, а потом планирую всё равно всё переверстать без frameworkов, на чистый CSS и минимум JS…
Но в целом вопросов накопилось много, и главный из них — это как взаимодействовать с серверной частью. Вообще, на чём всегда застревал при освоении чего-то нового по Интернету — на том, что вроде основы понятны, но совершенно непонятно, как перейти от более простого к более сложному.
Из-за этого в понедельник переключился на другую задачу. Попалась под руку информация о том, что замена стандартной zlib на zlib-ng или версию от Cloudflare может дать прирост производительности всем приложениям, которые используют zip-сжатие. В том числе и броузерам при загрузке сжатого контента. Сначала искал benchmarkи на эту тему, чтобы убедиться, какую из этих версий лучше ставить. Потом собирал на виртуальной машине. Получилось со второй попытки (как, впрочем, и всё, что я делаю в этой жизни). К счастью, заняло это не так уж много времени, поэтому вечером вернулся к изначальному замыслу — доделке прототипа.
Ещё вечером понедельника выбрался на прогулку к ближайшему водоёму. Хотел было снять закат, но опоздал минут на десять… Зато хорошо прогулялся, почувствовал включенность в жизнь. А на обратном пути сфотографировал здоровенного жука. Поискав какое-то время в Интернете, определил, что он относится к виду окаймлённый плавунец. Потом на сайте ФотоКто это подтвердили.
Кстати, сайт ФотоКто оказался вполне дружелюбным сообществом. Изначально я боялся регистрироваться, так как он позиционируется как сайт для фотопрофессионалов, и что меня там закритикуют. Но нет, комментарии вполне дружелюбные, и для удачных фото получается соотношение 1 лайк на 12 просмотров. Сейчас хожу и смотрю чужие фотографии, пытаюсь понять, чего же мне всё-таки не хватает, чтобы снимать по-настоящему круто — таланта, знания матчасти или возможностей камеры…

Идея мобильного сообщества и эксперименты с Vuetify

4X_Pro
Как всегда, эмоциональная встряска привела к новым идеям. В частности, ночью понял, каким должно быть современное сообщество, которое будет жизнеспособно даже в условиях слишком быстрого темпа жизни, когда у большинства людей не хватает времени и внимания. Как это ни странно, нужно сделать шаг назад, к более простой форме — от форума к гостевухе, но в виде Progressive Web App с уведомлениями об ответах, поддержкой хештегов и оффлайнового просмотра кешированных материалов и написания новых сообщений (собственно, последнее — это то, чего мне больше всего не хватает сейчас на моём сайте).
Где-то часа полтора лежал, ворочался и крутил это в голове. Потом встал, спустился на первый этаж, зарисовал на листе бумаги основные идеи и то, каким я вижу интерфейс, после чего наконец-то смог заснуть.
Проснулся от телефонного звонка. Когда понял, что снова не усну, решил сделать прототип интерфейса такого приложения. Только вот верстать то, что я хотел, совсем с нуля долго и нудно, а прототип хочется быстро. Поэтому решил в качестве временной меры использовать Vue и поискать для него готовый набор компонентов. Набор нашёлся на удивление быстро. Он называется Vuetify, и вроде бы в нём есть почти всё, что потребуется. Нашёл на Хабре введение в Vuetify, но оказалось, что там нужна vue-cli.
Пофыркав на тему «опять забивать систему хламом», всё же решил поставить. Ubuntu предложила сделать это через snap-репозиторий. Я согласился. Но увы, при попытке запустить выдалась ошибка, что не хватает какого-то jar-файла. На Stack Overflow вычитал, что лучше ставить через npm.
Попытался установить через npm, и тут новая ошибка — слишком старая версия самого npm. Там нужна то ли 12.0, то ли 14.0, а в Ubuntu 20 — всего лишь 10.x. Нет, я, конечно, знал, что в мире Javascript с версионированием постоянно вылезают какие-то проблемы (и это одна из причин, почему я так плохо к нему отношусь), но не думал, что всё настолько плохо! Пришлось опять лезть в Интернет и искать, как поставить последнюю версию npm откуда-то из сторонних источников.
После этого всё заработало. Единственная проблема, с которой столкнулся — это линтер ругался на то, что имена компонентов должны быть из нескольких слов, тогда как в исходном примере был однословный List. Но это исправил быстро.

Заметка в Instagram от June 25, 2022 at 01:11PM

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

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

Болото жизни и дисгармония

4X_Pro
С прошлого вторника было какое-то ощущение болота жизни. Несмотря на все старания, не было никакого удовлетворения от сделанного. Вместо этого — ощущения увязания и бесперспективности. Ещё по фриланс-деятельности накидали слишком большое количество задач, что тоже добавило чувство тоски. Зато задумался над тем, что есть какое-то пороговое значение, после которого ощущение «сейчас быстренько сделаю эти небольшие задачки, и все будут довольны» меняется на «ой, сколько делать, не хочу даже браться за это».
Вчера (вернее, теперь уже позавчера) вообще глючный день был. То в посёлке свет отключали (как потом выяснилось, для плановых работ на трансформаторе), то никак не мог разжечь костёр и сготовил неудачный шашлык, то с Tellой поругался.
Вечером вообще снесло в жуткий негатив, какого с марта не было! Ненавидел весь мир за то, что он продолжает меняться вместо того, чтобы остановиться на лучшем решении. В частности, то, что на классический интерфейс desktop-приложений (заголовок + строка меню + панель с кнопками наиболее частых задач + рабочая область + строка состояния) сменяется чем-то мобилоподобным. Ненавидел видеоблоги за то, что они сейчас потеснили обычные текстовые. Ненавидел соцсети из-за того, что из-за них стало меньше посещаемости у обычных сайтов. Ненавидел то, что всё больше и больше пользователей ходит в Сеть с мобильных устройств, а не с компьютеров. И мечтал построить «секту свидетелей 2007» — некоторое отгороженное от остального мира пространство, где софт, интерфейсы и принципы разработки будут примерно такими же, как в те времена, а сайты будут оптимизироваться по размеру так же, как при модемах (и плевать на экономическую целесообразность этого, ненавижу, когда что-то решает экономика или, говоря языком соционики, ЧЛ). И не будет всякой гадости типа Boostrap, React, Vue и nodeJS, равно как и оптимизации сайтов под мобильные устройства. А ещё в очередной раз всплыла ненависть к лжетипологическому форуму мятежников, который всё же пару лет назад обошёл Tipiruem по показателям.
А потом вдруг произошло резкое переключение. Tella попросила показать, что же это за форум мятежников такой. Я открыл его и обнаружил, что оказывается, он благополучно загнулся. В большинстве разделов последние записи были в 2020—2021 годах, и только в нескольких — в феврале 2022 года. И тут я резко успокоился, и настроение сменилось на позитивное! Даже хотел там зарегистрироваться и повыделываться на тему «Мы вас похороним! Я — соционический могильщик, который закопал проявившие ко мне недружественность форумы Epsilon, Sarzion, форум Spyke, а теперь вот и лжетипологический, а придёт время — закопаю и Социофорум», но не стал, а то вдруг оживёт ещё.
Потом была бессонная ночь с кучей осознаний, а после — утренняя прогулка с чувством (хоть и не полным) включенности в жизнь. А вот день прошёл куда-то мимо, но я по этому поводу особо и не переживал. Но самое главное, почему-то появилось ощущение, что дисгармоничный период вот-вот закончится.

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

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