Портрет 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
Где-то с начала декабря дни стали какими-то совершенно одинаковыми. Даже писать особо не о чем. Встаю около 15 часов, прохожу тренировку в Wikium, затем играю пару игр в приложении «Что? Где? Когда?», затем тренируюсь на Клавогонках, работаю немного над IntB, иногда играю в World of Tanks или читаю книжку, а по выходным — прохожу задания КСИ. А потом вдруг обнаруживаю, что уже четыре часа ночи и надо бы идти спать, но пока собираюсь это сделать, проходит еще час или полтора.
С одной стороны, для периода «старости года», когда на что-либо новое просто нет сил, и главная цель — это просто дотерпеть до Нового года, это вполне подходящий режим. С другой, тут начинается некоторая навязчивость, которая меня несколько пугает. Кроме того, копятся долги по freelance-деятельности (на нее ресурса просто не хватает, особенно на тот сайт, который мне очень сильно не нравится) и по записям в свой блог. В частности, сегодня осознал, что так и не написал про социальный desktop, хотя уже больше недели собираюсь. И еще сознательно решил пропустить очередной конкурс на CodinGame: на него нет ни сил, ни желания. Тем более выяснилось, что в общем рейтинге считаются только три лучших результата конкурса, поэтому участвовать ради дополнительных code points нет смысла.
Зато по описанным направлениям деятельности есть довольно ощутимый прогресс. В Wikium все же вернулся к показателю индекса производительнсти выше 1250. Как выяснилось, там итоговые результаты зависят не столько от изменения ИП отдельных тренажеров, сколько от количества набранных очков за день. Поэтому нужно просто проходить то, что получается хорошо (хоть это и противоречит идее тренировки как таковой).
В IntB тоже закончил все крупные доделки, в том числе и редактор вспомогательных блоков. Осталось только сделать SQL-файлы для обновления с предыдущей версии, оттестировать этот режим в инсталляторе, и доделать еще некоторые мелочи. Так что если не случится ничего непредвиденного, я выложу новую версию IntB до Нового Года, как и планировал.
В КСИ пока нет ничего интересного. На «подумать» было только задание (и то какое-то странное: на второй его вопрос правильного ответа не было в принципе), остальные — скорее направлены на изучение ценностей и приоритетов самих КСИшников.
Пару дней назад вдруг понял, почему на бессознательном уровне идея второго высшего образования, о чем я иногда задумывался, не вызывала у меня никакого внутреннего одобрения. Бессознательное, видимо, помнило, как ужасно в этот период активно заставлять себя что-то делать (особенно курсовые, на которые нет явно выделенного времени), вот и стремилось избежать повторения этого.

Неожиданно определился со своим типом в КЛ

4X_Pro
Вчера с подачи goblincat прочитал новые (относительно) описания каталогов в типологии «Кроме людей» от molnija. А сегодня, поразмышляв над ними и вспомнив себя-прежнего, осознал, что все же изначально был ярко выраженным Оборотнем. Просто у knjazna в их описаниях было слишком много акцентировано внимание на второстепенных признаках, типа хорошей связи с телом (что, скорее, вообще определяется соционикой и психософской Физикой). То, что molnija образно назвала «наступлением полнолуния» у меня было выражено всегда и называлось «перейти в состояние внутренней готовности» (недавно я его описывал в отдельной заметке). Да и стремление к целостному глубокому видению ситуации тоже всегда присутствовало. А бестийные качества и характерное для Бестий схематическое мышление стали нарабатываться уже потом, в студенческие годы, в результате необходимости адаптироваться к слишком плотному потоку информации (как и в самом Институте, так и в Интернете).
Таким образом, мое изначальное самотипирование в Мышь, сделанное еще в далеком 2008 году, оказалось правильным. Это потом меня некоторые «знатоки» сбили с толку. Впрочем, с другой стороны, версии типологии по knjazna и по molnija разошлись уже настолько, что возникает вопрос: можно ли продолжать считать, что это одна типология?
Но самое интересное, что мои идеи о slow life и мире без графиков и расписаний — это тоже прямое следствие оборотневости. Они как раз формировались в студенческие времена как реакция на необходимость что-то делать без того состояния «внутренней готовности», о котором я упоминал выше, и эта необходимость воспринималась как несовершенство мира, которое нужно как-то исправить.
А вот Elementel была реально представительницей Бестий, причем очень ярко выраженной. К тому же бестийные качества еще и усиливались высоким Будущим по темпористике и Правда, конкретный тип определить все же затрудняюсь.

Поездка на канатной дороге

4X_Pro
В конце ноября я узнал, что в Москве открыли канатную дорогу. Возникло желание съездить и посмотреть ее вживую. Но только сегодня (вернее, уже вчера) его удалось осуществить, так как несколько раз . Ехать я решил не один, а договорился с с Tellой. Встретиться мы решили в 15:00 на станции метро Воробьевы Горы, чтобы успеть проехать засветло. Но из-за того, что я описывал в предыдущем сообщении, все пошло несколько не так. Встал я с огромным трудом и жестким недосыпом, приехал на место встречи на 10 минут позже, а когда вышли из метро, осознал, что не очень представляю, куда идти. Точнее, я думал, что канатную дорогу будет видно от метро, но за прошедшее время с моей последней поездки на Воробьевы Горы там очень многое изменилось. Там, где раньше был прямой выход к реке, теперь поставили забор, и, как мне казалось, прямого прохода там нет (потом выяснилось, что все же есть, но надо было пройти через КПП в ближайшем здании). Поэтому мы с Tellой пошли в направлении стадиона, так как по карте я помнил, что станция где-то рядом с ним. Было на удивление безлюдно, что заставило меня сомневаться, а туда ли мы вообще идем, и будет ли у стадиона проход к реке.  К тому же Tella непрерывно болтала, мешая мне сосредоточиться на основной задаче (и как у нее так получается?). Но в итоге проход нашелся, мы свернули к реке, а вскоре и увидели станцию и сами кабинки, поднимающиеся над ней. Впрочем, и тут не сразу попали куда надо, а сначала зашли через боковой вход и попали в расположенный ресторан. Но тем не менее, все же добрались. Оказалось, что хотя дорога работает бесплатно, все равно для входа нужна «Тройка» или проездной или социальная карта. Но, к счастью, и у меня, и у Tellы «Тройки» при себе были. И вот мы оказались на посадочной площадке. Меня очень впечатлил огромный механизм, приводящий кабинки в движение: Осторожно, много фото!

О Web OS и социальных desktopах

4X_Pro
Вчера один мой сетевой знакомый прислал ссылку на шуточный проект Windows 93. Это Web-сайт, а точнее даже вполне себе Web OS, которая во многом воспроизводит интерфейс Windows 95/98 (только экран загрузки почему-то позаимствован у XP). Мне это понравилось. Даже поиграл немного в тамошний аналог Wolfenstein 3D, а потом написал ему, что были и серьезные попытки сделать OS в броузере.
Потом мы обсудили эту тему с моим знакомым. Я рассказал, что идея вынести систему в броузер, в принципе, не нова, первые попытки делались еще лет 10 назад, но особо оно не прижилось. Он нашел OS-JS, интерфейс которой очень похож на старый Gnome, я тоже ее немного потестировал. А потом вдруг пришла в голову мысль, что просто воспроизводить интерфейс существующих OS смысла нет, нужно предлагать что-то новое. Тут я вспомнил свою давнюю идею — социальный desktop. То есть систему, где существуют как частные рабочие столы, так и совместные, куда можно быстро скидывать файлы или делать заметки (sticky notes). Вот для этих целей Web-системы подходят просто идеально!
Этой идеей я прямо-таки загорелся, чего не было уже давно. Представил все ярко и в деталях, и понял, что вот программированием чего мне надо заниматься, чтобы получить шанс реально изменить мир. Увы, вместе с тем есть и понимание, что в одиночку я этого не осилю, максимум, что могу сделать — это описать ее в своем блоге для идей, продумать API и систему безопасности и сделать прототип. Потом пришла в голову мысль, что можно это описание перевести на английский и либо попытаться собрать денег на каком-нибудь kickstarter, чтобы нанять команду (правда, тут еще проблема в том, что у меня есть куча ограничений), либо написать разработчикам той же OS-JS в надежде, что они заинтересуются и внесут изменения в свой проект.
Идея вызвала у меня такой эмоциональный подъем, что уснуть я не мог где-то до семи утра. А дальше получилось как всегда: днем встал с недосыпом, потом переключился на другие события в жизни, и от того состояния цельного ви́дения сверхмотивированности не осталось и следа.

Новая клавиатура и опечатки

4X_Pro
Привыкание к новой клавиатуре на Клавогонках заняло существенно больше времени, чем я ожидал изначально. Только сегодня в безошибочном режиме стало что-то получаться: три раза показал результаты со скоростью выше 420 зн/мин. Причем, как это ни странно, негативный эффект дало то, что на ней нажатие клавиши происходит гораздо быстрее. Раньше было так: при опечатке я часто успевал поймать себя, что хочу нажать что-то не то, и остановить палец на ходу. А с новой клавиатурой я это «не то» успеваю нажать раньше, чем осознать сам факт и затормозить палец.
А еще это заставило меня задуматься над вопросом: а откуда вообще берутся опечатки? И почему я тренируюсь уже почти два месяца, скорость растет, и существенно, а «чистота» — нет (то есть процент ошибок как минимум не уменьшается). Причем опечатки — не те, которые вызваны невнимательностью (когда додумываю не то слово или пропускаю союз или предлог) или перестановкой букв местами из-за несинхронной работы рук, а нелогичные и необъяснимые.
У меня есть несколько версий. Первая — это когда глаза «убегают» вперед относительно того места, где я печатаю, и в результате я нахожу и ввожу похожую букву (например, «а» вместо «о» или «е»). Вторая — это когда сначала идет какая-то очень привычная и часто встречающаяся последовательность, а потом — буква, встречающаяся относительно редко. И третья — это лезет какая-то ерунда из бессознательного.

Выпадение из жизни и размышления о темпористике

4X_Pro
С субботы выпал в какое-то странное состояние. Категорически не хочется делать ничего, что с точки зрения темпористики можно охарактеризовать как работа по Будущему. То есть любых действий, которые дают результаты не здесь и сейчас, а требуют планирования наперед, например, работы над IntB или freelance-задачами. Но при этом вполне нормально справляюсь с текущими задачами, типа оплаты взносов ИП или настройки принтера. Наконец-то понял, в чем там проблема была: роутер работал по протоколу 802.11n, а принтер поддерживает только 802.11g, а режим обратной совместимости как-то не включался. После того, как я сообразил переключить роутер в 802.11g явно, все заработало как надо, даже адрес стал выдаваться по DHCP, как полагается.
Все же если использовать подход по уровням энергии, то у меня Будущее — это самая слабая область, на работу по которой уходит больше всего усилий, то есть однозначно четвертая функция, чтобы там ни говорили. А то, что жизненная позиция хорошо стыкуется с описанием 2Б, можно списать на то, что под 2Б создатель темпористики в свое время описал творческую ЧИ из-за неправильно проведенных границ между типологиями. Так что у меня получается либо ПВНБ, либо, в крайнем случае, ПНВБ. И заниматься мне следовало бы тем, что требует работы не по Будущему, а по Прошлому. Но плохо представляю, что это может быть в компьютерной области (кроме разве что форензики или, возможно, анализа данных).

Wikium и кривой подсчет результатов

4X_Pro
Wikium меня выбесил окончательно! Сегодня опять попалось упражнение, в котором в режиме программы развития результаты получаются в разы хуже, чем в обычной тренировке из-за кривого подсчета очков, хотя я нормально справился с более сложным, чем обычно, заданием. Словил на этом ощутимый минус (-10 к вниманию, -50 к мышлению), потеряв все то, что крошечными шагами отыгрывал в последние дни. Потом еще попытался пройти несколько упражнений, на одном отыграл +10 к мышлению (несмотря на отличный результат), потом взял одно упражнение на внимание, но пару раз ошибся и в результате набрал к вниманию -56. Потом прошел его еще два раза, но из-за этого минуса сильно разозлился, и результаты были тоже так себе, в результате минус почти не убавился. А потом кончились бесплатные попытки.
Вообще, складывается впечатление, что у них подсчет специально сделан как-то криво так, что один неудачный результат перечеркивает штук пять-шесть удачных, чтобы вынудить после такого неудачного результата покупать премиум-режим, так как исправить провал за 4 бесплатных попытки в сутки при такой системе подсчета просто невозможно (а в ряде случаев еще и то упражнение, на котором получил минус, в режиме тренажеров недоступно).
В общем, не знаю, что делать: то ли сказать «жадные уроды» и уйти оттуда вообще, то ли все же попытаться еще раз довести индекс производительности до 1300 (до этого доходил до 1260 и 1245, а потом откатывался обратно), а потом сделать скриншот и повесить это на страницу личных достижений.

Предварительные итоги года

4X_Pro
Недавно задумался о том, что буду писать об итогах этого года перед НГ, и осознал некоторые моменты, поделиться которыми решил уже сейчас. Пожалуй, главная особенность этого года — это отмирание и уход из моей жизни многого того, что раньше было важным и значимым. Один только сброс целых пяти доменов чего стоит! (Хотя сброс не всегда означал полное закрытие проекта, например, 2seconds.ru и сайт с таблицами Шульте продолжили свое существование на доменах третьего уровня моего основного сайта.) Кроме этого, я свернул типологическую деятельность и ушел с Ask.Fm. Также со многими людьми либо разошлись пути совсем, либо общение сократилось до минимума.
А еще в этом году, поучаствовав во множестве конкурсов, я впервые столкнулся с пределом своего развития. За счет способностей во многих видах интеллектуальной деятельности я легко показываю результаты лучше, чем 70%, а то и 90% людей (недавно, например, узнал, что в Wikium обхожу как минимум 88% участников). Но вот дальше рост заканчивается и возникает выбор: либо расти не за счет способностей, а за счет упорства и регулярных тренировок, что противоречит моему фундаментальному убеждению, что все в жизни должно даваться легко и без усилий, а усилия — это индикатор неправильности, либо остановиться на достигнутом. Я бы выбрал второе, но только вот общественное внимание распределяется слишком неравномерно: почти все достатется только самым-самым первым, а даже десятый из сотни его почти не получает.
Зато решилась другая проблема. Если в начале года я разрывался между множеством направлений возможной самореализации, не зная и не понимая, какое из них предпочесть, то сейчас выстроилась некоторая иерархия приоритетов. Есть три основных направления, которыми я готов заниматься сам: блоггерство на своем сайте + работа над IntB для его нужд, изучение data science + программрование на CodinGame и Kaggle, и собственное учение о жизни без слова надо. И условно четвертым можно считать роль «искателя халявы» и погоню за формальным призанием. Еще есть то, что в общем,мне интересно, и я не готов заниматься этим один, без поддержки извне: типологический коучинг или консультирование (впрочем, к этому я уже потерял интерес), оптимизация времени загрузки сайтов на коммерческой основе, разработка собственного Интернет магазина или системы мониторинга сайтов. И, наконец, есть области, которые мне в целом интересны, но в которых ни хватает знаний, ни мотивации делать что-то регулярно. Это, например, графология, изучение операционных систем «вглубь» (написание драйверов, копание в коде ядра и т.п.), когнитивистка, benchmarking и т.п. Ими просто нужно заниматься, когда есть время и интерес, не рассчитывая ни на какие особые результаты в плане признания. Максимум — сделать тему или раздел на своем же сайте, где написать о возникших идеях или полученных результатах. (Вот он, плюс рецентрализации и того, что все снова на одном сайте!)
Но самое главное — у меня по-прежнему нет ответа на главный вопрос: «кто я?». Раньше он был — сначала это была идеология Настоящего Компьютерщика и человека, не поддавшегося влиянию «мира наизнанку» (хоть я в те времена и не использовал это словосочетание), потом — вера в то, что я наведу порядок в соционике. А вот с 2015 года примерно такого ответа нет, и это не дает мне покоя…
Еще иногда я задумываюсь: а что если отказаться от попыток получить признание вообще, обесценить его так же, как я в свое время обесценил материальные блага? Но увы, в полной мере сделать это не получается. Или я просто не знаю, как.

Новые устройства и их настройка

4X_Pro
В понедельник привезли все то, что мы с отцом заказывали: SSD-диск, наушники и клавиатуры с мышками. В первый момент я испытал некоторое разочарование. Клавиатура, которую я заказывал для себя, оказалась по весу раза в два тяжелее прежней, и с прорезиненными ножками. Само по себе это не так плохо, но поскольку у меня нет отдельного письменного стола, я в качестве него использую компьютерный, просто отодвигая на это время клавиатуру подальше. Но теперь делать это стало не так удобно, как раньше. Впрочем, плюсов тоже немало: во-первых, в клавиатуре есть встроенный USB-hub, к которому я подключил мышь и наушники и освободил лишний порт в ноутбуке. Кроме того, теперь можно быстро переключаться на старый стационарный компьютер: достаточно вынуть и вставить всего один провод. Во-вторых, клавиши разделены между собой, что уменьшает вероятность попадания крошек и волос внутрь клавиатуры. В-третьих, глубина нажатия гораздо меньше, чем на предыдущей, что дает определенный бонус к скорости печати: палец быстрее вовзращается . Впрочем, на Клавогонках я ее еще толком не испытывал, только вчера немного потренировался в режиме марафона, чтобы привыкнуть.
В самом начале случилась также еще одна неприятность. Потестировав клавиатуру в Linux, и убедившись, что все работает, я решил перезагрузиться в Windows и поиграть в World of Tanks, чтобы оценить работу наушников. Каково же было мое удивление, когда после запуска World of Tanks все начало тормозить и глючить, причем в наушниках постоянно был слышен звук обнаружения нового устройства. Сначала я подумал, что клавиатурный USB-hub «не тянет» слишком большой звуковой поток на наушники. Но их отключение проблемы не решило. Методом тыка понял, что проблема в USB-порте. Судя по всему, на одном и портов ноутбука проседает напряжение при большой нагрузке то ли на процессор, то ли на видеокарту. И предыдущая мышка (которая была подключена к тому же порту) глючила, скорее всего, именно из-за этого. Так что мышку я менял зря, получается, старая может еще работать…
С наушниками тоже все было не слишком гладко. Поскольку заказ делался в спешке, я не обратил внимание, что они не с обычным штекером, а с USB-разъемом, то есть, по сути, работают как отдельная звуковая карта. Сначала возникли опасения, что Linux их вообще не распознает. Но обошлось: распознались сразу же. Но вот звук на них получалось выводить только с помощью плееров, которые позволяют явно указать, какой звуковой вывод использовать. А вот как перенаправить все звуки — так и оставалось непонятным. Два дня я бился над этой проблемой, пока вдруг не пришло в голову, что копаться нужно не в настройках ALSA, а в настройках PulseAudio. После этого звук стал выводиться куда требовалось. Но одна проблема еще остается: если наушники вынуть, а потом вставить обратно, звук все равно продолжает идти на обычный вывод. И нужно вручную перезапускать сервер PulseAudio.
Я попытался было написать правило для UDev, которое срабатывает по включению наушников (и даже получилось!), но оказалось, что сервер PulseAudio должен запускаться не как системный daemon, а в сеансе текущего пользователя, поэтому рестартовать его как надо не получается. Пока с этим смирился. Зато, отлаживая правило, с удивлением обнаружил, какое огромное их количество загружается в сервер udev, причем из множества обычных текстовых файлов! И именно это забирает много времени при загрузке системы. Интересно, почему не стали делать их кеширование в чем-нибудь типа SQLite? Это же, по идее, дало бы хороший прирост к времени загрузки!
Довольно много времени ушло на перенос данных на отцовском ноутбуке и перенос системы. Но результат того стоил! Ноутбук стал просто летать, и покупка нового не потребовалась! А я поверил, что Windows 10 может не тормозить. Причем переустановка прошла весьма гладко, если не считать, что BIOS ноутбука напрочь отказывался загружаться с установочной флешки Windows 10. Причем до записи на нее дистрибутива она распознавалась совершенно корректно. Перепробовал несколько флешек, но в итоге так и пришлось писать образ на диск (хорошо еще болванки нашлись и отца есть DVD-RW). Еще с удивлением обнаружил, что Windows 10 отказывается устанавливаться на устройства, подключенные через USB, что меня немало удивило.
Еще один неприятный сюрприз ждал меня в самом конце: внезапно принтер перестал получать IP-адрес по DHCP. Почему такое происходит, и кто виноват: роутер МГТСа или сам принтер, для меня так и осталось загадкой. Но повозившись с этой проблемой несколько часов, я сдался и решил вопрос через ЧЛ, а не БЛ: прописал ему статический IP-адрес в настройки. (Белологичным решением было бы поставить сниффер и отследить, что же происходит в сети.)

Дела вебмастерские

4X_Pro
Вчера случайно узнал о том, что в РСЯ изменился лимит для подключения сайта: если раньше требовалось 500 уник/виз в сутки, то сейчас порог снизился до 100. Я решил этим воспользоваться и перевести в РСЯ свои сайты Sociomodel.Ru и SocType.Ru, которые прежде были подключены к SAPE.RTB. Но эффект от SAPE.RTB был незначительный, а «утяжеление» сайтов из-за долгой загрузки рекламы — очень и очень ощутимым. Поэтому я надеялся, что после перехода в РСЯ, помимо всего прочего, улучшится и скорость загрузки, так как у Яндекса все же есть довольно приличный CDN. Вчера подал заявку, и сегодня, выйдя в Сеть, обнаружил подтверждение, что сайты приняты.
Разборавшись, как добавить блоки (за прошедшие с того момента, когда я добавлял Typtest.Ru, три года там довольно многое поменялось), я решил посмотреть, как результат скажется на показателях Page Speed Insights. Тем более что недавно я узнал, что его очень переделали, как в плане дизайна, так и алгоритма подсчета: теперь вместо набора формальных правил он учитывает реальное время загрузки + научился отслеживать множество новых параметров.
Изучив результаты, нашел, что еще можно оптимизировать (например, с удивлением обнаружил, что на этом сайте не было включено кэширование шрифтов), я остаток дня потратил на эти доделки. Но увы, хотя на desktop-версиях почти везде удалось добиться показателя 100% без особых усилий, на мобильных результаты существенно хуже. Отчасти — из-за рекламы, отчасти — из-за виджета ВКонтакте, который довольно ощутимо ухудшает показатели. В итоге пришлось доработать модуль так, чтобы отключить его на мобильных версиях. Не обошлось и без глюков: на Soctype я начал экспериментировать с выбором блока в зависимости от того, идет показ на мобильное устройство или нет, и по ошибке вставил идентификатор блока от Sociomodel. Долго потом ломал голову, пытаясь понять, что не так, и почему вдруг Яндекс отдает ошибку 403. И только к ночи догадался проверить, а правильно ли я идентификаторы прописал.
Еще вчера узнал о том, что существует сайт, где можно стать наставником у людей, изучающих основы PHP и HTML. Даже думал, не попробовать ли подработать таким образом, но сильно смущает то, что нужна голосовая связь.

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

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