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

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


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

t.me/4x_pro

Лог жизни

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


Переселение на первый этаж и первая пробежка в этом году

4X_Pro
Вчера целых два раза просыпался от телефонных звонков. С каким-то поразительным упорством до меня пытались достучаться три номера. Если верить сайтам типа «НеБериТрубку», то два — мошеннические, и еще один — банк. Из-за этого встал раньше 12 часов, и в очень раздраженном состоянии. К тому же, несмотря на жару, мёрз. То ли из-за того, что позавчера вечером посидел под открытым окном, то ли нарушенный сон привёл к нарушениям терморегуляции. И ещё всё очень сильно раздражало.
Первое что сделал — это решил всё же перебраться на первый этаж. Всё же тут и стол, и кресло удобнее, и есть возможность использовать большой монитор, от чего я уже успел отвыкнуть. Так что теперь можно считать, что лето наконец-то вступило в свои права.
В целом день прошёл куда-то мимо. Хотел было дописать биографию, но никак не мог настроиться. Поэтому почти весь день ушел на игру в Battle for Wesnoth.
Вечером мы с отцом решили устроить пробежку. Изначально хотели пробежаться по тому же пути, что бегали в 2016—2017 годах, но немного напутали и оббежали песчаный карьер с другой стороны, увеличив дистанцию почти на 800 метров, как потом выяснилось по результатам измерения по Яндекс.Карте. В результате устал жутко, особенно на последнем участке пути, где возвращаемся к поселку по прямой дороге. Зато лег спать раньше обычного (в 3:40), и при этом смог заснуть достаточно быстро.

Вырвался из болота жизни

4X_Pro
Кажется, удалось вырваться из болота жизни. Позавчера закончил проходить Ultima IX, о чем создал тему на форуме. А после этого снес пропиертарный nvidia-драйвер, вернувшись на nouveau+i915. Дравйер nvidia я ставил, в основном, ради того, чтобы в Ultima IX была графика красивее за счет принудительного antialiasingа, но он периодчиески вызывал подтормаживание броузеров, что раздражало.
Наконец-то потеплело, вчера снова выбрался на прогулку — на этот раз подальше, к затопленному печаному карьеру посреди поля. По дороге сделал несколько фото, да и просто получил удовольствие от того, какой передо мной открывался простор. Если погода не изменится, чеерз пару дней всё же перемещусь с ноутбуком на нижний этаж. Еще разгреб часть очередных задач по freelance-деятельности, прошёл тест по четвертой неделе курса по теории игр.
А сегодня весь день просидел в оффлайне. Читал «Семь навыков эффективных людей», причем для этого даже выбрался из дома в беседку, пользуясь наступившим теплом, потом занимался 11-ой частью биографии. Прямо чувствую, как восстанавливается внутренняя целостность, когда нет кучи факторов, постоянно разрывающих внимание в разные стороны.

Дополнение для Chrome и прогулка после дождя

4X_Pro
С тех пор, как я переехал за город, прошло уже больше месяца. Кажется, что заезд был очень-очень давно, а жизнь до эпидемии — вообще каким-то сном. Но увы, перестроиться на дачный режим жизни не получается. Видимо, дело не в том, где я нахожусь, а чем занимаюсь. Раньше, приехав на дачу, особенно весной, я выбирался и гулять, и кататься на велосипеде, а когда оставался дома, значительную часть времени проводил в оффлайновом режиме. В этот же раз всё не так.
Впрочем, в начале недели был момент, когда вроде бы начал выравнивать режим дня. Но увы, во вторник снова «сорвался», хоть и отключил Интернет рано вечером, всё равно засиделся до 5 утра, перечитыая «Драму на Ниобее» Сергея Снегова. (Хех, вот она, непредсказуемость потока жизни, которым меня вечно сносит: утром получил рассылку ЖЖ, в одном из комментариев упоминался этот автор, я решил поискать его в своем книжном архиве, и вот и результат…)
В среду проснулся поздно и был весьма недоволен этим фактом. Да и вообще, всё раздражало. По-прежнему было ощущение жуткой нехватки времени и увязания в болоте жизни: не было прогресса по своим задачам, во вторник накидали всякой фигни по freelance, да и погода сказывалась. К тому времени уже несколько дней подряд дожди шли почти непрерывно. У нас даже на участке начали грибы расти в огромных количествах, жаль только, что несъедобные. Вышел ненадолго в Сеть проверить сайты и глянуть обстановку на рынке. И вдруг понял, что всё раздражает. Решил отключить связь, и большую часть дня провёл в оффлайне. Удивительно, но это помогло: понемногу стало возвращаться ощущение внутренней целостности.
Увы, бессознательное сыграло со мной злую шутку. Оно полностью вытеснило то, что я пообещал Tellе выйти на связь в 22 часа (если бы не логи, которые могут врать, я бы и не поверил, что это было). Она кинула SMS, но её я тоже не увидел. И только где-то через час с небольшим, когда она прислала вторую, я вышел на связь. За это время она успела сильно «разогнаться» эмоционально, и ушло много времени на то, чтобы её успокоить.
Потом снова ушёл в оффлайн, поиграл немного в Ultima IX, завершил один из самых глючных побочных квестов. И наступил момент, когда все известные мне квесты выполнены, и главному герою приходит время отправляться в последний путь (в буквальном смысле этого слова) на остров Терфин. На этом я вышел из игры и уже подумывал было пойти спать, но тут случилось непредвиденное. Пока я днем сидел в оффлайне, у меня в голове снова возникала мысль о том, что хорошо бы сделать расширение для броузера, которое выделяло бы пользователей ВК с закрытым профилем. И вот в голове сложилась целостная картина, как это должно быть сделано.
Как писать расширения, я помнил очень смутно, поэтому для начала ограничился скриптом, который вставлял через консоль. Но на JavaScript я пишу мало и редко, поэтому долго провозился с отладкой. Причем большинство ошибок оказывались довольно глупыми. Самая частая, например, — это забыть об элементе верхнего уровня в присланном ответе, если он всего один, а пытаться сразу залезть в элемент следующего уровня. Из-за этого засиделся до 6 утра, а потом, когда всё заработало, еще не сразу мог уснуть из-за эмоционального подъема, который это вызвало.
Тем не менее, на следующий день проснулся даже раньше 12 часов. Естественно, состояние и работоспособность при этом были далеки от идеальных. Но тем не менее, я сел теперь уже за написание полноценного расширения. Сначала всё шло вроде бы хорошо: просто написал manifest.json, в котором прописал подключение уже написанного кода в качестве content script, сделал значки разных размеров и написал описание. Но затем решил немного всё облагородить, если так можно выразиться — вынести оформление выделенного пользователя в отдельный CSS-файл, учесть лимиты обращений к VK API, динамическую догрузку контента, сделать описание на русском и английском и т.п. Но со всем этим провозился еще несколько часов. В частности, очень надолго застрял при выносе стилей в CSS по очень глупой причине: забыл убрать кавычки вокруг значения свойства border. Из-за этого скрипт отрабатывал как надо, класс применялся, но внешне аватар пользователя никак не менялся. А из-за недосыпа была снижена внимательность, и долго не мог этого увидеть, ломая голову, что же идёт не так.
Настал момент, когда вроде бы всё заработало. Я решил отдохнуть и немного прогуляться по поселку, воспользовавшись тем, что в четверг потеплело. К этому времени как раз дождь кончился, и я отправился в путь. Идея гулять сразу после дождя оказалась очень удачной! Воздух был очень чист и прозрачен, на дороге оставалось еще много луж, в которых можно было рассматривать отражения облаков и деревьев, а на траве и кустах сирени — капли дождя. Я взял с собой фотоаппарат и отснял серию фотографий, которую так и назвал — «После дождя». Правда, выложил пока только в Instagram, где фото очень сильно уменьшаются и теряют в качестве. Но даже в таком виде фотографии очень понравились Tellе и goblincat.
Вечером вновь вернулся к работе над расширением. Стал готовить приложение к публикации, упаковал в CRX-файл. И тут меня ждала еще одна неожиданность. В какой-то момент регистрация в качестве разработчика на Chrome Store стала платной! Из-за этого пришлось отказаться от планов выложить расширение туда. К счастью, еще не всё прогнило в этом мире, и в аналогичном сервисе Opera можно выкладывать бесплатно. Но увы, у Opera пользователей гораздо меньше… Также решил выложить исходный код на GitHub. Но и тут без напрасных потерь времени не обошлось. При создании репозитория не указал, что не нужно его инициализировать файлами README и лицензией. Из-за этого никак не получалось синхронизировать его с локальным git-репозиторием. Так и пришлось удалить и создать заново пустой, и только после этого git push сработал.
Но тут меня ждала другая неприятность. Около полуночи расширение вдруг перестало работать, сначала в Opera, а потом и в Chrome. Стало выдавать ошибку, что fetch-запрос заблокирован. Писалось что-то про CORS. Я попытался было экспериментировать с режимами запроса или искать решение в Интернете, но к тому времени уже сильно хотелось спать и голова не соображала. На следующий день решение всё же нашлось. Оказалось, что совсем недавно произошло очередное ужесточение требований к безопасности: теперь из content-скриптов нельзя делать fetch-запросы вообще. Нужно выносить их в background worker. К счастью, там, где я это вычитал, приводился пример кода, который я смог быстро адаптировать для своих нужд. И вот, через несколько попыток расширение снова стало работать! Обрадовавшись, я побежал его пересобирать и выкладывать в Opera Addons. Но увы, попользовавшись им еще немного, обнаружил еще одну ошибку. Почему-то в списке участников группы оно правильно выделяло приватных пользователей только при первом заходе туда, а потом всё слетало. Ещё час, если не больше, я ломал над этим мозг. Потом причина ошибки обнаружилась: не вызывалась функция, отвечающая за само выделение аватаров, в том случае, если на странице добавлялись новые изменения в DOM-дереве, но не появлялось новых пользователей. Причем об этой ошибке я думал ещё вчера днём, хотел её исправить, но что-то отвлекло, а потом вылетело из головы. Снова пересборка crx-файла, снова выкладывание для Opera. И тут я захожу в чат и обнаруживаю, что пользователи не выделяются там. К счастью, этот вопрос решился быстро, но даже тут я не смог не сделать глупой ошибки: сначала для одного из классов забыл точку в селекторе. И вот только после этого я смог сказать «ну всё, вроде работает».
Так что сегодня у меня новый, совершенно внеплановый пуск! А еще это небольшая дополнительная опора личности (причем даже не само расширение как еще один пункт в списке моих проектов, а именно само знание, как их создавать). Ну и конечно же, избавление от того, что давно меня раздражало — заходить в чей-то профиль, и натыкаться на сообщение, что он закрыт.
Еще была мысль написать статью на Хабр, где подробно расписать весь процесс разработки и проблемы, которые я решал в процессе. Но ресурса на это уже нет: весь интерес к задаче выгорел еще сегодня утром, когда я решил проблему с CORS. Остальное доделывал уже на упорстве и принуждении себя. Эх, «проклятье трёх дней» по-прежнему действует…
А еще сегодня было лунное затмение. Увы, узнал о нём слишком поздно, и увидеть его не удалось. Зато ночью просто ненадолго вышел из дома и посмотрел на Луну и звёзды, послушал соловья. Это немного успокоило и стабилизировало эмоциональное состояние. Но быстро замёрз и вынужден был вернуться обратно.

Бесконечная осень возвращается

4X_Pro
В субботу выдался всего один день, похожий на лето, а теперь снова вернулась бесконечная осень. Дождь идёт по полдня и даже больше. Из-за этого свелись почти к нулю все плюсы жизни на даче: на улице бываю минут пять в день максимум, да и на первый этаж спускаюсь редко и ненадолго. Вспоминаю, как когда-то, когда дом только покупали, думал, что вот буду сидеть в такие дни, созерцать в окно непогоду, и творить. Но увы, творить тоже толком не получается: в последние дни эффективность очень низкая. Почти доделал несколько пунктов из своего списка, но вот в этом состоянии «почти» они болтаются уже неделю, если не больше. В частности, никак не закончу 11-ую часть своей биографии. То ли снова спад по интеллектуальному биоритму, то ли безвылазное сидение дома так влияет, то ли просто от холода голова не работает. Зато вроде бы растолкал freelance-задачи (впрочем, сегодня еще не выходил в Интернет, когда выйду, может оказаться, что накидали новых).
И ещё нормализовалось время сна. В первые дни после приезда спал по 10—11 часов, сейчас перешел на обычные 8—9. А сегодня, внезапно, проснулся в 10:30 — очень рано по своим нынешним меркам. А также начал смотреть видео по буддистским практикам, которое прислал сэр Мик.

Еще один дисгармоничный день

4X_Pro
Какой-то дисгармоничный сегодня день выдался. Встал вроде гораздо раньше, чем в последнее время, и естественным образом, но через пару часов начал сильно тормозить. Еще опять прилетела пара мелких задач по freelance. Само по себе это не так уж и плохо, но отвлекает от основных задач. Потом выбрался на прогулку вокруг поселка, но тоже впечатления остались не очень… В общем, ощущение болота жизни в очередной раз.
Зато недавно понял интересное противоречие в себе с точки зрения типологий. Мои третье Будущее и третья Воля требуют, чтобы постоянно был какой-то прогресс, движение вперед, получение результатов, ибо только это даст шанс получить чувство собственной обоснованной значимости. А Бестийность по КЛ и иньская модальность, настроенная на максимальную экономию жизненных сил, наоборот, требуют действовать только после достижения внутренней готовности, когда «сложились звезды» (а точнее, целостная картина в голове).

Первая прогулка к реке в этом году

4X_Pro
Сегодня наконец-то потеплело, и я решил отправиться на прогулку. Сначала собирался просто пройтись по посёлку. Но когда собрался и вышел, выглянуло солнце, а кроме того, подойдя к главному входу, обнаружил, что калитка открыта, и можно выйти, не трогая её руками. И вот, впервые за три недели после заезда я выбрался за пределы посёлка!
Впрочем, уходить особо далеко не стал. Пошёл к ближайшему водоёму, и вдоль него — на берег Клязьмы. По пути сделал немало фотографий: покрытую цветами яблоню возле одного из посёлков, цветущую акацию с просто огромным шмелём на ней, просто общие виды. Удивительно, но до сих пор не расцвела сирень! Раньше, когда я приезжал в середине мая, посёлок был покрыт её цветущими кустами, а сейчас уже 25-ое, но она только-только начинает распускаться.
Хотя прошёл я где-то 3 км, но, тем не менее, устал достаточно ощутимо. Зато почувствовал, что внутри реально что-то восстановилось. Правда, вечером всё равно вылезла раздражительность: опять то чувство, что разрывает потоком жизни — слишком много вариантов, за что хотелось бы взяться, и при этом совершенно не могу определиться, что же делать именно сейчас. В результате полтора часа просто пробездельничал (впрочем, не зря — в это время шла какая-то разгрузка мозга), только выложил сделанные фото в ВК и Instagram. Потом занялся тем, что начал писать 11 часть своей биографии…
Вчера выяснил, куда мог деваться траффик. Причина оказалась неожиданной: сайт Клавогонки. Он постоянно обменивается какими-то данными в фоне, даже если открыта главная страница, а не список игр, причем за минуту набегает довольно большой объем. А у меня как раз в те дни почти всё время висела вкладка с ним. Но по крайней мере, теперь можно купить ещё либо 3, либо 5 Гб траффика без опасения, что он снова улетит неизвестно куда…

Холодные дни

4X_Pro
В среду был весьма солнечный день, и я даже в какой-то момент почти решил было выбраться на прогулку, но так и не собрался. А вечером всё изменилось: пришли тучи, и ночью начался очень долгий дождь. На следующий день очень резко похолодало так, что теперь не хочется выбираться не только на улицу, но и даже просто из под одеяла. Кажется, что вся жизнь застыла, и в блог писать просто не о чем. И такое длится уже второй день. Даже в Интернет выхожу, в основном, только с планшета. Пожалуй, единственные шаги вперед — это купил еще чуть-чуть акций (на этот раз ЮниПро) и досмотрел ту часть курса по теории игр, которую скачал перед отъездом. Увы, докачать оставшуюся нет траффика — остался всего 1 Гб до 9 июня. Сижу и ломаю голову: докупить еще 3 или 5 Гб или уйти в оффлайн на последнюю неделю…

День доделки дел

4X_Pro
Сегодня получился какой-то день доделки дел. Во-первых, внезапно вчера ночью собрался и сделал поддержку reCAPTCHA для Intellect Board, а сегодня её оттестировал и выложил, во-вторых, закончил одну доделку по freelance-деятельности. И в-третьих, более-менее дописал 10-ую часть своей биографии, но пока не выкладывал (выложу вместе с 11-ой). В общем, всё то, что откладывал чуть ли не с начала переезда за город.

Необычный сон о Красном Дипломе

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

Внезапный уход в полуоффлайн

4X_Pro
Вчера (вернее, позавчера, так как пишу это уже после полуночи) был очень неудачный день: встал рано, но сильно невыспавшийся. День прошёл мимо — ни на чём толком сосредоточиться не мог. Только под вечер занялся еще одним пунктом из списка: начал проходить на Coursera курс по теории игр, который скачал еще полтора года назад. Оказалось довольно интересно. И объём информации не такой уж большой, как казалось вначале. А ночью случилась неприятность: обнаружил, что непонятно куда просадил почти 3 Гб траффика. В итоге до 9 июня, когда отсчёт начнётся заново, осталось всего 2.2 Гб.
Из-за этого сегодня ушёл в режим жесткой экономии, и большую часть дня сидел в оффлайне, выходя в Сеть только с планшета или мобильника. И, похоже, из-за этого придётся вычеркнуть один из пунктов плана, так как для него требуется регулярный выход в Интернет.

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

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