Портрет 4X_Pro
Был в Сети 15 дек. 2024 г., 00:24
Мультиблог
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
В последнее время что-то странное происходит с блогом в ЖЖ. Очень большое количество заходов на записи 2010—2011 годов по тегу Travian. Причём не из поиска (что легко объяснялось бы тем, что на Первом или Третьем сервере, где я играл когда-то и писал об этом, снова появились артефакты), а то с Twitter, то с Instagram, то из каких-то рекомендательных систем, то с YouTube.
Причем конкретную страницу, откуда был переход, Метрика не показывает! Впрочем, это вина не Метрики, а существования так называемых away-страниц на самих этих ресурсах, которые выдают предупреждение «вы покидаете сайт такой-то», из-за чего не передаётся правильный заголовок HTTP_REFERER.
Интересно, с чем это связано?
P.S. Если вы один из таких перешедших — отпишитесь в комментариях, как вы тут оказались и что искали на самом деле.

Упущенные возможности в играх

4X_Pro
В играх за последнее время как минимум трижды повторилась ситуация «упустил победу, стоя в одном шаге от неё». Просто не увидел нужный вариант. Сначала это случилось в Колонизаторах: не сообразил правильно разменять ресурсы, чтобы построить город и получить последнее очко, вместо этого попытался построить дорогу + поселение, но одной карты ресурсов не хватило, а на следующем круге один из игроков опередил. А вчера в шахматах упустил момент, когда имел преимущество по позиции и мог сделать конём вилку на короля и ферзя, причём осознал это сразу же после того, как сделал ход. А через пару ходов проиграл по ещё более глупой причине: упустил тот факт, что пешка рядом с королём была под атакой не двумя фигурами, а тремя. И вчера же в Farmassone отстал от противника всего на два очка. Правда, там такого явного момента упущенной возможности не помню.

Игра Cendric пройдена!

4X_Pro
Только что закончил прохождение игры Cendric! Причём в последнем бою сумел спасти всех трёх второстепенных персонажей.
Игра потрясающе интересная, жаль только, что такая маленькая — всего пять глав сюжета, один большой город и одна небольшая деревня. Я-то думал, потом герой и до других городов доберётся… Но больше всего понравилась система магии: все четыре стихии используются для решения загадок при прохождении уровней, а ледяная и огненная — ещё как боевые. И сами загадки при прохождении уровней очень хорошо продуманы! Сразу вспомнились времена The Lost Vikings или StoneAge. В общем, вот где нужно искать игры для думающих людей: в мире open source!
Еще порадовала система checkpointов! Это гораздо лучше, чем сохранения. Правда, позволяют делать один маленький обманный трюк: дойти до checkpointа на минимуме жизней, активировать его и сделать откат.
В общем, очень доволен, что поиграл в эту игру! Возможно, со временем попробую перепройти, вступая в другую гильдию в конце главы 2, посмотреть, как это скажется на прохождении.

День ужасного самочувствия

4X_Pro
Несколько дней прожил, наслаждаясь ощущением свободы. Большую часть времени играл в игру Cendric (о ней, наверное, потом напишу отдельное сообщение). Вчера уже стал подумывать о том, чтобы наконец-то взяться за написание контента для канала. И ночью даже наконец-то сложилось в голове то, как написать про иньскую и янскую модальности. Думал, что утром встану и приступлю.
Но увы, стоит мне только что-то запланировать, как тут же начинает происходить что-то, что эти планы рушит. Вот и сегодня вышло так. Вроде бы проснулся бодрым и здоровым, но с каким-то ощущением внутреннего жара и воспоминанием, что снилась какая-то фигня, где я зачем-то преследовал Inkwine, считая её ведьмой (видимо, «Дозоров» перечитал). А стоило встать, как почувствовал себя отвратительно, такого со мной с 2008 или 2009 года, кажется, не было. И потом отлеживался до 17:30. Только тогда на какой-то момент ожил. Но к вечеру начало температурить, и в итоге сил сесть за компьютер хватило только сейчас.
Теперь вот думаю, это совпадение или же какой-то сигнал от высших сил: то ли время ещё не пришло, то ли занимаюсь не тем, то ли ещё чего.

Снова свободен!

4X_Pro
Вчера все же закончил основные работы над тем сайтом, про который столько писал в последнее время. И снова убедился, что сделать просто сайт — легко, а вот сделать хороший сайт требует очень много времени и внимания к мелочам. Так что впервые за последнее время могу почувствовать себя свободным человеком!
Теперь столько планов: вернуться к Quest for Glory II и Heroine's Quest, закончить прохождение Rockman III, написать в блог заметку о том, как сделать улетающий в корзину товар без jQuery, перечитать все «Дозоры». И ещё пройти игру Cendric. Недавно решил поискать, есть ли нормальные open-source игры, наткнулся на её описание, и решил скачать. Это классическая двухмерная RPG, но, в отличие от старых игр, графика прорисована под FullHD-разрешение. Правда, бои примитивно сделаны и физика немного нереалистичная.
А когда останется позади биоритмический минимум (завтра или послезавтра будет его нижняя точка), то заняться контентом для своего канала. А то план всё растёт и растёт, а вот с основной частью движения как-то нет.
Сегодня то ли из-за эмоционального подъёма по этому поводу, то ли из-за сильного дождя даже проснулся гораздо раньше, чем обычно. Глянул обстановку на рынке, докупил ещё несколько акций. А теперь, как всегда после окончания чего-то очень долгого, испытываю растерянность: вроде отложенных желаний много, но не знаю, за что браться в первую очередь.
Ещё радуюсь тому, что правильно сделал, что выбрался на прогулку во вторник. А то теперь начались дожди…

Возможная причина, почему сайт 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-деятельность не интересна именно из-за того, что стараюсь сделать задачу как можно быстрее и сообщить об этом заказчику. Нет этого этапа «полировки», в ходе которого я убеждаюсь, что сделано по-настоящему хорошо.
Только вот от того, что столько времени уделяю сайту, начала уже пухнуть голова и слетел режим, ложусь уже почти в шесть утра. Поэтому сегодня решил устроить день отдыха. Была мысль сходить в Кусково, но вчера не пошёл из-за того, что в выходные там слишком многолюдно, а сегодня — испортилась погода, и на улицу не хотелось выбираться вообще. Тем не менее, из вчера дома всё же выбрался — потребовалось сходить на Пустую квартиру. Только вот солнечную часть дня застать не удалось — как всегда, долго прособирался, и когда вышел, солнце уже было за облаками.

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

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