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

Лог жизни

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


Возможная причина, почему сайт IntB плохо виден в выдаче

4X_Pro
Несколько дней назад на SbUp наткнулся на тему, где один из участников предлагал проверить сайт одной коммерческой SEO-программой на предмет технических ошибок. Я попросил проверить сайт IntB. Результат был очень неожиданным. Оказалось, что приложенные файлы доступны для индексации. А в них есть код шаблонов, которой этой программой тоже воспринимался как относительные ссылки (например, конструкции вида <a href="{{ hurl(topic) }}">). В результате программа делала попытку открыть файл с именем {{ hurl(topic) }} в том же каталоге. Но у IntB есть такая особенность, что прикрепленные файлы доступны по ссылкам вида /f/up/1/ключ/загруженное_имя_файла. Но при этом, если ключ указан правильно, имя после него может быть любым. В результате по ссылке {{ hurl(topic) }} открывался тот же самый файл, программа считала его дублем и сообщала как ошибку. В итоге общий отчёт оказался на тысячу с лишним страниц, из которых большая часть — это как раз ошибки такого типа. А я-то никак не мог понять, почему в выдаче по запросу «движок форума» его не видно от слова совсем.
Впрочем, обнаружилась и ещё одна проблема: первые страницы тем дублировались с адресами, кончающимися на 0.htm и 1.htm. Причем когда-то я этот вопрос решал на этом сайте, в дистрибутив нужное правило в htaccess тоже добавлял, а вот сам форум оказался «сапожником без сапог» — туда я это прописать забыл.
Теперь всё это исправил: приложенные файлы от индексации закрыл, для дублей сделал 301 редирект. Посмотрим, насколько это улучшит показатели форума…

Прогулка вдоль Серебрянки и внутренняя гармония

4X_Pro
Опять наблюдается «эффект 92-ого процента» во всей красе: по сайту осталось совсем немного, но вот взять и закончить не получается никак. Вчера просто весь день не мог на нём сосредоточиться. Зато в беседе с Tellой ВК произошло одно интересное осознание: всякие идеи параноидального характера в духе «бей кого-то, спасай что-то» у меня появляются обычно на биоритмических спадах. На подъёмах я верю, что сейчас сделаю что-нибудь стоящее и хорошо станет всем.
Сегодня не выдержал и устроил себе день отдыха. Решил пойти на прогулку в Измайловский лесопарк, к мосту через Серебрянку, который расположен в самом его центре. Пока шёл к лесу, думал о том, как же человек привыкает ко всему. Весной я ушёл на самоизоляцию почти на неделю раньше официальной, когда заболеваемость COVID-19 только-только подходила к 500 человек/сутки. И потом на даче чуть ли не до конца мая даже боялся подойти к воротам дачного посёлка. Сейчас же иду гулять несмотря на то, что она ушла за четыре тысячи! Правда, теперь известно, что вероятность заразиться через прикосновения (а это было моим главным страхом) всё же не так высока, как считали раньше.
В парке народа оказалось на удивление много. Даже на той дорожке, которая ведёт к этому мосту, хотя обычно она — одна из самых бездлюдных. И только когда я дошёл до моста, перешёл его и свернул на тропинку вдоль берега Серебрянки, наконец-то оказался в одиночестве. Давно же я не был в этом месте! Когда-то ходил туда часто. Это было в 2002—2005 годах, когда Измайловский лес был для меня местом отдыха от постоянно висящих «надо» и вечного страха не успеть, вызванного учёбой в Институте. И вообще, местом, где я мог почувствовать себя собой-настоящим в оффлайне, а не в Интернете. Потом, когда закончил обучение и аспирантуру, стал бывать там гораздо реже. Да и вообще в Измайловском парке, так как стал добираться до других мест в Городе (того же Коломенского, Кузьминок или Сокольников), которые казались интереснее в силу новизны впечатлений.
Так, размышляя об этом и вспоминая себя того периода, те проблемы и переживания, я шёл по берегу Серебрянки, периодически останавливаясь, чтобы сделать фото. Солнце уже заходило. Я пытался сфотографировать закат над рекой, но увы, у фотоаппарата не хватало динамического диапазона. А вот мобильником вроде бы получилось.
Так я дошагал до устья Косинского ручья. Вспомнил свою прогулку вдоль него в летний полдень где-то в 2002 году (эх, тогда я ещё мог встать достаточно рано, чтобы застать полдень в лесу), блики солнца на песке на его дне, тихое гудение проводов ЛЭП и какую-то атмосферу летнего спокойствия. Увы, в этот раз всё было не так. Но тем не менее, ручей по-прежнему радовал: возле впадения в Серебрянку на нём есть небольшой водопадик, где вода несётся стремительно, и шум которого слышен на несколько сотен метров вокруг.
Дальше я планировал пойти вдоль ручья и выйти на дорожку Большого круга. Но обнаружилось, что в русле ручья чуть выше водопада застрял пенёк, из-за которого ручей разлился и затопил тропинку. Я подумал было вытолкнуть этот пенёк, чтобы дать ручью течь свободнее, но потом почему-то понял, что не надо этого делать. Попытался было найти обходной путь, и обнаружил, что часть воды из ручья, переливаясь через тропинку, нашла себе другой путь в Серебрянку. Так что теперь у Косинского ручья есть дельта!
Поэтому решил возвращаться обратно к тому же мосту, возле которого свернул к Серебрянке, и выходить на Большой круг по продолжению той дорожки, по которой пришёл. Торопился, и, как выяснилось, не зря: когда вышел на Большой круг, уже было полутемно. По нему отправился домой через мост у Просянской плотины, но за оставшуюся часть прогулки уже ничего особо интересного не происходило. Только уже когда подходил к дому, почувствовал, что восстановилась внутренняя гармония, вернулось ощущение, что всё идёт как надо. Так что очень доволен прогулкой!

Почти закончил сайт

4X_Pro
Мда, подъём в 10 утра оказался разовым. Все последующие дни я засиживался до глубокой ночи. Но увы, работа над сайтом сильно замедлилась. Да и по остальным направлениям тоже никакого прогресса. Пожалуй, единственное, что сделал за последнее время — это перечитал «Туманность Андромеды» Ефремова и «Ночной дозор» Лукьяненко. Сказывается биоримтический спад и слишком большое количество сообщений в мессенджерах.
Но всё же, сегодня вроде бы доверстал все страницы, включая даже второстепенные, страницы. Сам не верю, что это случилось! С другой стороны, сколько раз уже так было: задача казалась слишком огромной, но если была возможность растянуть её на достаточное количество времени, я всё же её решал.
Осталось только найти и навешать нужные скрипты для карточек товаров: lightbox для показа крупной фотографии, вертикальный слайдер и скрипт для создания эффекта улетающего товара в корзину. Увы, с вертикальным слайдером всё оказалось не так просто: те, которые попадались, либо требуют jQuery (а я решил твердо делать сайт без него), либо оказываются платными.
Одно радует: я сделал реально сайт, которым смогу гордиться в плане оптимизированности и проработанности!

Налаживаю режим дня

4X_Pro
Вчера заставил себя встать по будильнику, весь день провёл в жестком недосыпе и почти ничего не сделал. Зато смог лечь гораздо раньше по своим меркам, и сегодня проснулся в 10 утра. Впервые за последнее время вижу утро! Причём утро просто великолепное: почти летнее, и только падающие листья напоминают о том, что уже осень. В немного других условиях я бы бросил всё и отправился бы гулять, но увы, такой возможности нет.
Правда, стоило сесть за компьютер и попытаться чем-то заняться, как недосып тут же дал о себе знать. Опять не могу ни на чём сосредоточиться.

Есть 80 PageSpeed Insights!

4X_Pro
Все эти три дня занимался тем, что называю «полировкой» того самого сайта, про который столько пишу в последнее время. Как всегда, нашлась куча всяких мелких доделок, которые я сразу не замечал. Но, как это ни странно, именно после того, как они были сделаны, я почувствовал, что да, получается сделать что-то стоящее!
В субботу, правда, неэффективно потерял кучу времени на оптимизацию картинок для мобильника. Долго не мог понять, почему не работает атрибут scrset для тега img — броузер просто грузит самую большую картинку и всё. Потом выяснилось, img srcset — это не директивные указания, а рекомендации для броузера. А чтобы указать явно, какую картинку грузить с при каком разрешении, нужно использовать тег picture. Но зато, когда разобрался во всём этом, результат не заставил себя ждать — более 80 баллов в PageSpeed Insights и для мобильника, и для компьютера, и отличные показатели на GTMetrix! И это я ещё поддержку HTTP/2 на том сервере всё никак не соберусь сделать. Правда, это без роликов с YouTube, Метрики и JivoSite. Как только я ролики добавил, показатели несколько просели. Впрочем, видел недавно описание трюка, который может помочь с этим справиться.
Ещё придумал, как быть с тем, что клиенты всё время грузят на сайт совершенно неоптимизированные фото. Можно сделать достаточно просто: повесить на cron скрипт, который раз в несколько часов для новых картинок будет прогонять jpegoptim и делать конвертацию в webp. Конечно, проблему неподходящего размера это не решит, но даже просто прогон с параметром качества 90 иногда уменьшает объём фото в 4 раза.
В общем, тот редкий случай, когда реально чувствую, что делаю мир лучше, а Интернет — быстрее, несмотря на то, что делаю это за деньги, а не для своих сайтов. Правда, как всегда, не обходится без вечного «чтобы делать хорошо, это нужно делать долго». Кстати, в большинстве случаев мне freelance-деятельность не интересна именно из-за того, что стараюсь сделать задачу как можно быстрее и сообщить об этом заказчику. Нет этого этапа «полировки», в ходе которого я убеждаюсь, что сделано по-настоящему хорошо.
Только вот от того, что столько времени уделяю сайту, начала уже пухнуть голова и слетел режим, ложусь уже почти в шесть утра. Поэтому сегодня решил устроить день отдыха. Была мысль сходить в Кусково, но вчера не пошёл из-за того, что в выходные там слишком многолюдно, а сегодня — испортилась погода, и на улицу не хотелось выбираться вообще. Тем не менее, из вчера дома всё же выбрался — потребовалось сходить на Пустую квартиру. Только вот солнечную часть дня застать не удалось — как всегда, долго прособирался, и когда вышел, солнце уже было за облаками.

День завершений

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

Немного о лёгкости жизни

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

Ранний подъём

4X_Pro
К своему огромному удивлению, проснулся сегодня около 9 утра. Правда, на пользу это особо не пошло: сначала долго не мог определиться, вставать или доспать. Причем вот что странно: пока лежал в темноте, казалось, что бодрый и отлично выспался. Но стоило встать, раздвинуть шторы и включить свет, как спать тут же захотелось. У меня что, настолько сбились циркадные ритмы, что свет стал сигналом «пора спать»? Пожалуй, единственный плюс такого подъёма — это очень долгий световой день, я уже отвык от подобного.
Всё, что сделал за день — это немного поработал над десктопной версией сайта, и то, в основном, вечером. Дело шло с ужасным скрипом, но всё же наконец-то что-то стало получаться. Всё-таки переделывать мобильный сайт в десктопный сложнее, чем наоборот. Некоторые элементы всё же пришлось дублировать и скрывать лишние с помощью media-запросов (ну или переходить на Grid-верстку, на что нет никакого желания).

Написал контент-план

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

Пешая прогулка к Лебедянскому пруду

4X_Pro
Сегодня всё же решил отправиться на прогулку. Но в Кусково идти было далеко, да и в выходной день там слишком уж многолюдно, поэтому решил отправиться к Лебедянскому пруду, причём идти через лес пешком, без самоката.
И как выяснилось, не зря. Пешая прогулка в тишине, с полностью выключенной связью и возможностью сосредоточиться и уйти в себя — это то, чего мне очень не хватало последние три месяца. Очень скоро я почувствовал, что возвращается гармония и внутреннее равновесие. Впрочем, был момент, когда Tella сделала false call, после чего я включил на какое-то время связь. Но убедившись, что нет ничего срочного и быстро поняв, что опять втягиваюсь в бесконечно длинный диалог, который сбивает то ощущение собранности, ради которого и отправился на прогулку, снова ушёл в оффлайн.
Потом добрался до места, с которым связано много воспоминаний. Это небольшой водоём, не отмеченный ни на одной карте, кроме Wikimapia, где он подписан как эвтрофное болото. Я наткнулся на него весной 2004 года, и очень тогда удивился, так как думал, что уж что-что, а все водоёмы тут знаю. И в 2005—2006 годах часто возвращался туда, а потом, после Великого Излома и устройства на работу, как-то почти перестал бывать там.
Постоял какое-то время на его берегу и повспоминал всё это, сделал несколько фотографий и отправился дальше. К пруду вышел не сразу, а сначала какое-то время шёл по дорожке, которая идёт в лесу параллельно ему. Это одно из самых глухих и мрачных мест парка, особенно сейчас, после долгих дождей, когда влажность ещё висит в воздухе. Но зато и очень тихое: туда не доносится ни шум шоссе, ни других улиц.
И только потом свернул к пруду, так, чтобы выйти к плотине. Выбрался в очень удачный момент: клонящееся к закату солнце осветило деревья на противоположном берегу. Какое-то время постоял на берегу, сделал несколько фотографий. Потом у меня начал глючить фотоаппарат: самопроизвольно выключаться, хотя показывал, что заряда ещё много. Потом пошёл вдоль пруда. Посидел на скамейке возле его середины, потом дошёл до горы и поднялся на неё. Она кустами, а кроме того, на ней высадили несколько деревьев. Потом отправился домой. Когда добрался до Перово, обратил внимание на подсветку домов на шоссе Энтузиастов. Никак не могу понять, то ли её сделали недавно, то ли раньше я просто не обращал внимания. Даже сфотографировал и выложил отдельной записью в Instagram. Но снимал мобильником, поэтому качество получилось не очень: чуть размыто. Нужно, видимо, было выдержку вручную задать поменьше.
В целом очень доволен прогулкой. Хоть больше за день ничего толком не сделал, зато испытал то состояние внутренней гармонии, которого не хватало уже давно. Всё-таки мне нужно хотя бы раз в две недели выбираться на прогулку в одиночестве и режиме радиомолчания.

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

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