Портрет 4X_Pro
Онлайн
Мультиблог
4X_Pro
Записки лишнего человека

Сиюминутное и повседневное

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

Жизнь внезапно стала улучшаться

4X_Pro
С воскресенья жизнь внезапно стала улучшаться. Во-первых, пришло письмо о том, что я прошел во второй раунд КСИ. Во-вторых, добавление Sitemap дало свой эффект: траффик из Google вырос, и уже второй день посещаемость превышает 100 уник.виз./сутки, вернувшись таким образом к показателям, которые были у xpro.su до начала всей этой реорганизации. В-третьих, определился с тем, как автоматизировать экспорт в ЖЖ самым простым образом: сделаю отправку сообщений через Email, да и все. Тогда можно будет ограничиться тем, что добавить для блога возможность вводить логин и PIN для владельца раздела.
В четвертых, поставил новый рекорд на Клавогонках: 488 знаков в минуту! Правда, в безошибочном режиме, а не в обычном, так что на картинке в разделе «Страница личных достижений» это не отобразится. Но все равно, результаты регулярных тренировок видны!
И, наконец, стабилизировались показатели на Wikium. А еще мне там дали скидку за обращение в техподдержку с предложением по улучшению одного из тренажеров. Правда, скидка действует всего три дня, поэтому накопить такими скидками хотя бы на месяц премиум-доступа не получится. Эх!
На эмоциональном подъеме от всего этого я вчера занялся и другими доделками сайта: сделал Turbo-страницы для Яндекса. Правда, напутал с экранированием HTML-тегов и сначала засиделся до глубокой ночи с отладкой, а потом, уже сегодня, выяснил, что у меня они, оказывается, дважды прогоняются через parse_msg, из-за чего я не мог понять, почему все так криво экранируется. Когда понял — исправил буквально за двадцать минут. (Все же хорошо бы развить навык вовремя отвлекаться и переключаться: если бы я вчера пошел спать, не пытаясь во что бы то ни стало доделать, то сэкономил бы кучу времени.) Так что сайт сделал еще небольшой шаг вперед к соответствию тому, каким я хотел бы его видеть.
Еще наблюдается прямо какая-то череда синхроний. Сначала в Facebook нашел описание системы акцентуаций, в которой очень четко увидел две своих (точнее даже три, но третья проявлена очень слабо). А сегодня на связь вышла Kitsune. Сначала очень позитивно обменивались произошедшими за это время новостями (умеет же она настроение улучшать!), потом разговор свернул куда-то не туда, и снова пришел к этой же теме (правда, в неявном виде, в смысле, без психологических терминов).

Снова о Wikium

4X_Pro
Вчера заставил себя лечь спать на 40 минут раньше обычного. И встал сегодня тоже раньше. Первым делом отправился на все тот же Wikium, но он меня очень неприятно удивил. Хотя на этот раз прошел все упражнения тренировки без крупных провалов: по двум добился прироста ИП более сотни, по одному — небольшая просадка: -6, по второму — побольше: -35. Но тем не менее, общий итог каким-то образом нарисовали -68! Как они вообще все считают? Возникает подозрение, что там не честный подсчет, а какой-то маркетинговый ход с целью заставить меня купить премиум, чтобы стали доступны все тренажеры и появилась возможность исправить результат там, где я наловил минусов. Потом, правда, я в режиме тренажеров сумел улучшить этот показатель до -2, но все равно неприятно.

Отсутствие сосредоточенности и немного самопознания

4X_Pro
После относительно удачных вчерашнего и позавчерашнего дня все снова валится из рук. В частности, на WIkium и в Клавогонках опять иду вниз по показателям. Причем на Клавогонках никак не могу поймать то состояние сосредоточенности только на текущей букве, которое позволяет добиться высоких скоростей, из-за чего получается много «грязи», то есть совершенно нелогичных и неожиданных опечаток. Плюс еще постоянно нажимаю пробел раньше, чем последнюю букву предыдущего слова.
Интересно, что со мной происходит? Есть четыре версии:
  1. пройден максимум по биоритмам (особенно интеллектуальному), на котором я и добился максимальных результатов, а сейчас начался закономерный спад;
  2. сказывается «старость года» и сокращение светового дня, из-за чего падает работоспособность вообще;
  3. влияет еще больше сбившийся режим дня (вчера вообще лег после 6 часов утра);
  4. то, что я называю «трансформацией целей».
Об «трансформации целей», пожалуй, нужно написать подробнее. Заключается она вот в чем: часто я начинаю делать что-то ради удовольствия, но потом обнаруживаю какие-то формальные показатели, и начинаю гнаться за ними. Так было в Travian, так было в CodinGame, в World of Tanks, на том же Wikium, да и еще много где. Но самое главное, как только я переключаюсь на результат, дело сразу перестает быть для меня удовольствием. Теперь это именно гонка за результатом. И самое главное, меняется отношение к неудачам: если изначально когда что-то не получалось, я воспринимал это так «ну ничего, следующий раз повезет и все получится», то теперь любая неудача ведет к снижению показателей, что вызывает страх отрицательной динамики, ощущение напрасно потерянного времени, что еще хуже сказывается на результатах.
К тому же я недавно осознал еще одну свою особенность. В ситуациях, которые я воспринимаю не как просто надо что-то сделать, а сделать с целью демонстрации своих умений я начинаю, наоборот, ошибаться, «косячить» по-черному (за очень редкими исключениями, когда негативный результат столь опасен, что получается войти в ЭСП). С чем это связано — пока не знаю, полагаю, опять вылезли какие-то деструктивные установки в бессознательном.

Sitemap для личного сайта

4X_Pro
Сегодня как-то сама собой возникла идея устроить себе день информационной разгрузки. И утром, загрузив компьютер, я сразу же отключил сетевой интерфейс, и стал думать, чем займусь. Дело нашлось быстро: уже недели две я раздумывал о том, что надо бы сделать генератор Sitemap для форумного движка. К тому же об этом постоянно напоминал Яндекс.Webmaster. (Забавно: я-то думал, что Sitemap — это пережиток прошлого, и сейчас, в эпоху нормальных URL, поисковики прекрасно обходятся без него, но оказалось, нет.) Но все никак не получалось сосредоточиться: когда включен Интернет, постоянно что-то отвлекает.
Теперь же я довольно быстро сделал его основную часть, которая генерировала список URL форума, и повесил ее на планировщик задач. Но дальше столкнулся с двумя проблемами. Во-первых, в стандарте Sitemap есть ограничение на 50000 URLов в одном файле, что для форума не такая уж большая цифра. Но сложность в том, что узнать их количество можно только тогда, когда уже все сгенерированы. И я долго не знал, что с этим делать. А во-вторых, URLы в Sitemap должны быть полными (интересно, чем вызвано столь странное решение?) планировщик может выполняться через системный crontab, то есть в режиме CLI, и в этом случае он просто не знает домена и пути к сайту. (А в настройках я его принципиально не храню.)
После недолгих раздумий нашлось достаточно красивое решение: генерирую все URL в один временный файл  с относительными путями через планировщик, а в еще один сохраняю их общее количество. И отдельно кладу в каталог www скрипт sitemap.php, который считает, какое число Sitemap-файлов нужно для отображения всех этих URL и отдает либо список этих файлов, либо нужную часть URL. Но, как всегда, доделав это, остановиться не мог, и остаток ночи провозился с мелкими доработками сайта: добавил еще немного микроразметки, нашел и исправил несколько мелких ошибок в HTML-коде. И сейчас с удивлением обнаружил, что опять засиделся до 5 утра.
А еще выяснил, что Socionics.Me в Яндексе поднялся до 4—5 места по запросу «соционический форум» (и подвинул Зверофорум, о чем мечтал в далеком 2006 году) и вернулся на 10-е по «соционическим знакомствам», но толку от этого почти нет: число запросов по данным Wordstat составляет 100 и 300 показов в месяц.

Неэффективный день мелких неприятностей

4X_Pro
На какие уловки иногда идет бессознательное, чтобы не завершать день! Вчера около трех часов ночи вдруг задался вопросом: можно ли в Windows 10 отключить «плитки» и какой эффект это даст в плане производительности. В результате нашел видео, где рассказывалось, как это сделать, и давалось еще пара советов. Решил попробовать на старом стационарном компьютере, который до этого за весь год включал два раза. Итог: сидел и возился с оптимизацией до 6 утра, а потом еще и сегодня днем продолжил.
Правда, результат особо не порадовал: все равно работает тяжеловато, особенно в первую минуту после загрузки. Да и время загрузки изменилось очень несущественно. Пожалуй, единственный плюс — удалось убрать lock screen, который меня бесил с самого момента своего появления: ну почему для того, чтобы ввести пароль, нужно сначала щелкнуть мышкой, да еще и дождаться смены картинки? Почему нельзя показать ввода поле сразу? Ну и заметку про сделанную оптимизацию написал.
Еще кучу времени убил на установку обновлений. Они сначала ставились, а после перезагрузки откатывались обратно. Видимо, пытались удалить старые версии чего-то там, но не могли, так как не сохранились установочные файлы этих старых версий. В общем, еще раз убедился, что правильно сделал, что перешел под Linux. На том же самом компьютере интерфейс там гораздо легче и отзывчивее… Да и если с обновлениями что-то пойдет не так, легко понять, что именно и поправить вручную. А Windows даже никаких сообщений об ошибке не выдает нормально, по которым можно было понять, что не так! (Пожалуй, именно это я и всегда считал его главным недостатком.)
Под вечер решил зайти на Wikium, чтобы не нарушать цепь непрерывных тренировок. Лучше бы я этого не делал! То ли недосып сказался, то ли весь день работы под грохот системного блока вместо почти бесшумного ноутбука (интересно, как я раньше такое выдерживал), но подтормаживал я ощутимо, и в ряде случаев просто не мог сосредоточиться. Итог — ощутимо просадил главный показатель — Индекс Производительности, даже несмотря на то, что в паре тренажеров, наоборот, поставил рекорды. И это очень сильно демотивировало заниматься дальше… Знал бы такое дело, вообще не стал бы сегодня ничего делать. Эх, и почему нет возможности вычеркивать плохие результаты? И не только в Wikium или Clash of Code, но и в жизни вообще?

Странный сон

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

Зависимость от солнечного света

4X_Pro
Все-таки насколько я зависим от солнечного света! Два дня (во вторник и среду) была хорошая погода, и уровень активности был высокий, и настроение на подъеме, хотелось что-то делать. Потом погода поменялась, и уровень активности тоже пошел на спад. Но по закону мировой подлости, опять много пишут и чего-то от меня хотят. У меня же наоборот, желание уйти в спячку и стать недоступным, чтобы все отстали.
Впрочем, этот спад активности касается именно желания общаться. Cо всякими CodinGame, Wikium и Клавогонками все в порядке, и времени уделяю им достаточно. Только вот на Wikium небольшой облом: первые несколько дней показывался результат относительно других людей, а теперь перестал, вместо этого навязчиво предлагают перейти на Премиум. Еще пытался дописать заметку для личного сайта про избыточный выбор и сделать для него же генератор Sitemap, но не получалось от слова совсем: бессознательное просто переключает мое внимание. В частности, сегодня полдня зачем-то просидел на Хабре.

Babylon Tower — достижение взято

4X_Pro
Вчера после долгих поисков нашел на CodinGame задачу, которую легко можно было решить с помощью bash-скрипта. Все-таки сколько я, оказывается, о bash не знаю! В частности, не знал, что там можно использовать массивы, правда, с крайне неудобным синтаксисом. Потом тут же решил легкую задачку на C++ (заодно понял, что ощутим его подзабыл, в отличие от чистого C, на котором хотя бы иногда что-то пишу). В результате до достижения Babylon Tower, которое дают за решение задач на 15 разных языках программирования, осталось использовать всего один язык программирования. Им, как и планировалось, стал Kotlin, изучением которого я хотел заняться уже давно, но, как всегда, бессознательное протестовало против планов, поэтому вместо него стал писать на Lua и Ruby.
Требовалось решить задачу, которая сначала казалась предельно простой: найти минимальное N при котором a^N оказывается меньше N!. Казалось бы, достаточно пройтись циклом, и решение будет найдено. Но я не учел одного: того, что тесты для решения содержали весьма большие числа (такие,что N уходил за тысячу). И для подсчета «в лоб» попросту не хватало разрядности чисел (тем более в Kotlin, как и в Java, максимальная разрядность для чисел с плавающей точкой — 64 бита, а не 80).
Пришлось включать мозг и искать обходное решение. Оно нашлось довольно быстро. Сначала я решил попытаться получить результат через аппроксимацию факториала. Но увы, аппроксимация есть аппроксимация: N находилось с точностью до нескольких соседних чисел. По сути дела, ее можно было использовать как верхнюю оценку N, и дальше уменьшать его, проверяя выполнение неравенства на каждом шаге. Но как проверить неравенство, если и справа и слева значение вылезает за пределы допустимого? Поломав голову, вспомнил совет, когда-то давно виденный на Хабре: работать не с самими числами, а с их логарифмами. Тут я сообразил, что нужно взять логарифм от факториала можно посчитать как сумму логарифмов отдельных множителей. А с другой частью — все и того проще: N*ln(A).
Как только я это реализовал, программа тут же заработала как надо, и я получил долгожданное достижение Babylon Tower (впервые о нем я начал думать еще с лета, если не раньше).

Изменение в себе: обесценивание сделанного самостоятельно

4X_Pro
Ночью осознал одно интересное изменение в себе. Раньше, видя какой-нибудь простой, но полезный онлайн-инструмент, типа кодирования/раскодирования base64 или Punycode, калькулятора хеша, генератора паролей и т.п., я думал «надо бы и у себя такой сделать». И потом, если делал, гордился тем фактом, что могу пользоваться своим, а не чужим. Сейчас же реакция совершенно противоположная: «ну вот, такое уже есть, смысла нет делать что-то аналогичное, все равно там посетителей будет больше». А если и сделать, то все равно особого повода для гордости от того, что теперь есть свое, не будет. Не знаю почему, но как-то в моем восприятии сам факт возможности сделать что-то самому (равно как и владеть потом этим) обесценился почти до нуля.
Пожалуй, это самое худшее изменение в себе за последние 10 лет. И многие мои нынешние проблемы им и вызваны.

Бестолковый день

4X_Pro
Опять чувствую растерянность в жизни. Возможно, из-за отсутствия четких целей, когда хочу заниматься одним, надо заниматься другим, а по факту — занимаюсь третьим. В частности, сегодня учудил Р.Л. У него вдруг стал медленнее работать сайт. Сначала он пытался оптимизировать картинки товаров, но из-за того, что мы не учли то, что их перегенерация вызовет скачок нагрузки на сервер, получилось еще хуже: часть их них стала просто недоступна с ошибкой 503. Пока я думал, что к чему, и что с этим делать, он успел взять и откатить сайт до ночного backupа, отменив тем самым результаты своей оптимизации. Но даже это не помогло: сайт все равно продолжал подтормаживать, а некоторые картинки — не отображаться.
Из переписки с техподдержкой мы узнали, что проблема в том, что картинки с параметром отдаются не nginxом, а передаются на обработку Apache, число процессов которого на хостинге весьма жестко лимитировано. Пришлось срочно придумывать, как избавиться от этого параметра (в нем передавался token для генерации уменьшенной картинки) так, чтобы не пострадала безопасность. Но зато результат порадовал: сайт с кучей картинок и тяжелых скриптов без кеша стал грузиться всего за 3.1 секунду! Правда, тут еще сказывается, что хостинг недавно наконец-то сделал поддержку HTTP/2. Но вот загружать оптимизированные картинки Р.Л. придется теперь заново.
Потом я занялся доработкой своего алгоритма для Code vs Zombies на CodinGame. Реализовал две идеи, но одна из них себя в целом не оправдала. На паре карт она позволяла спасти больше людей, но на остальных результат становился только хуже, и итоговый показатель был на 2000 очков меньше примерно. Пришлось от нее пока отказаться, и попробовать другую — поправить алгоритм так, чтобы игрок уничтожал зомби не последовательно, одного за другим, а старался накрыть одним ходом несколько (за это дается существенный бонус). Отчасти получилось, но результат оказался меньше ожидамого: ~56000 вместо 50600 и подъем в рейтинге примерно на сотню позиций. В общем, рост есть, прорыва нет. И вообще, видимо, надо пока переключиться на другие игры, так как тут пока больше идей нет, что еще можно попробовать.
А вообще, конечно, чувствую, как мне не хватает знаний именно по чисто математическим алгоритмам типа проверки принадлежности точки многоугольнику или пересечения двух отрезков.
Сегодня ночью наткнулся на очередной сайт по тренировке внимания, памяти и интеллекта — Wikium. Но если все предыдущие были почти полностью платными, тут вроде по одной из трех программ можно тренироваться бесплатно. (Впрочем, ничто не мешает сделать несколько аккаунтов.)

Страницы:
Задать вопрос

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