Портрет 4X_Pro
Был в Сети сегодня, 03:55
Мультиблог
4X_Pro
Записки лишнего человека

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

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

CodinGame: конкурс A*Craft завершился

4X_Pro
Сегодня закончился конкурс A*Craft на CodinGame. В отличие от предыдущих, он длился всего два с половиной дня и был не на игры, а на оптимизацию: нужно было расставить стрелки на карте так, чтобы сделать суммарный путь роботов по ней максимальным. Я занял 150-ое место из 2456! (Правда, примерно последние 500 участников — те, кто зарегистрировался, но даже не попытался прислать хоть какой-то код, и поэтому получившие 0 очков.) Это гораздо лучший показатель, чем во всех предыдущих конкурсах. Если считать в относительных показателях, то до этого мне максимум удавалось подняться до 84%, а в этот раз — до 93%, что близко к моему верхнему порогу амбициозности!
И это несмотря на то, что толком на конкурс не настроился, и до воскресенья подходил к нему как-то лениво. Впрочем, задачи по оптимизации даются мне проще сами по себе. Кроме того, код был основан примерно на том же рекурсивном алгоритме, который я впервые пытался применить еще в Code of Ctulu. Написал я его достаточно быстро, но потом обнаружился какой-то совершенно непонятный баг, на борьбу с которым ушла половина воскресенья. А причина оказалась банальной: я дважды использовал одно и то же имя result в одной функции, но подразумевая при этом две совершенно разных переменных: одну для поиска максимума, вторую — для хранения значения, которое будет возвращено из функции. В результате вместо максимума возвращался последний результат.
Из-за этого я только вечером воскресенья обнаружил, что хотя алгоритм хорошо справляется с картами из узких длинных коридоров, но дает довольно посредственные результаты на картах с большими смежными областями. Для таких карт я задумал было еще один алгоритм с совершенно другим подходом, но так его и не реализовал. Во-первых, не хватало времени, чтобы тщательно его обдумать и вытащить из зоны неуверенности. Во-вторых, нашел один случай, когда первый алгоритм (который рекурсивный) давал неоптимальный результат. Сначала казалось, что ошибка простая и ее удастся устранить быстро. Но все оказалось не так: я провозился с ней до глубокой ночи. А потом выяснилось, что ошибка действительно примитивная: я забываю вызвать .copy() при рекурсивном вызове функции, в результате чего вместо копии карты для поиска на следующем шаге передается ее исходный вариант и результаты поиска пути в разных направлениях начинают влиять друг на друга. Странно, что на остальных картах это работало! Причем выяснилось, что если на каждом шаге создавать копию карты, это занимает много времени, и в итоге на многих тестах начинается вылет по таймауту. Пришлось применить «костыльное» решение: написать условие, по которому принимается решение, делать копию или нет.
Поэтому вместо второго алгоритма сделал простую проверку: если карта с большими смежными областями, и роботов много, то для последних строить путь только до ближайшей уже размещенной стрелки. И, как это ни странно, это дало определенный результат: вместо 5400 очков, которые я набирал изначально, стало получаться 5700! А вот исправление того бага с копией дало всего лишь жалких 17 очков (впрочем, их оказалось достаточно, чтобы подняться еще на несколько мест).
Но вообще, наверное, надо было писать не на Python, а на PHP. Там и код быстрее выполняется (если в PHP 7), и копии массивов создаются автоматически (так что я бы не возился полдня с первым багом и, может быть, успел бы и второй алгоритм реализовать), причем в режиме copy-on-write, что тоже дало бы неплохую оптимизацию. Но увы, нельзя применять в качестве ключей для хеша связки из нескольких значений (то, что в Python называется tuples). Впрочем, при желании это можно было бы легко обойти.
Но в любом случае, я доволен результатом!

Почти выздоровел

4X_Pro
Наконец-то выздоровел. Причем сегодня еще сумел встать раньше 11 часов, впервые за последние два месяца, и застать момент, когда солнце еще заходит в окно моей комнаты. Все же утро создает совсем другое настроение!
Еще задумался, что в последнее время живу в каком-то совершенно расхлябанном режиме: день проходит за днем без каких-либо четких целей. И никак не могу понять, что это: то ли обретение той самой свободы и жизни без забот, о которой я мечтал в 2000-х годах, то ли я сорвался с жизненных рельс и лечу куда-то в пропасть, и кончится все это плохо.
Пожалуй, только вчерашний день был некоторым исключением: я отключил Интернет на ноутбуке, что дало возможность написать две заметки: про взросление, и про то, как импортировать контакты со старого мобильника по Bluetooth. Но на это ушел почти весь день: закончил я где-то в 22 часа, потом даже на CodinGame не успел зайти.
В общем, все больше и больше задумываюсь, что все же надо перейти на режим жизни «в Интернет — только из метро». Так как при включенном Интернете время летит вообще вникуда, и ни на чем толком сосредоточиться не получается.

Болею

4X_Pro
В субботу меня угораздило заболеть. Как обычно, из-за сквозняков, которые возникли из-за постоянно открытого окна из-за слишком теплой погоды. (Из-за этого даже задумался, есть ли возможность сделать принудительную вентиляцию в квартире так, чтобы можно было держать окна закрытыми.) Причем если обычно в таких случаях я болтаюсь на грани между болен и здоров, то в этот раз разболелся всерьез. В субботу был сильный насморк, а вчера полезла вверх температура, и, судя по всему, шел какой-то воспалительный процесс. Сегодня, наоборот, чувство какого-то внутреннего холода. Из-за этого вчера почти весь день прошел мимо. Да и сегодня тоже как-то ни на чем не могу сосредоточиться.
А еще разозлила некая Эвелина Странная, зачем-то зашедшая на мою страницу ВК. Она считает себя ЛИИ-ЛВЭФ, но при этом озвучивает гаммийско-ускорительские позиции, аналогичные тем, которое в свое время высказывала Harriet Specter aka HH. Терпеть не могу подобное! И теперь думаю, что сделать: забанить сразу или промолчать, в надежде, что сама сбежит.

Отличный день

4X_Pro
На удивление сегодня получился отличный день! Проспал очень допоздна, а встав, долго думал, что лучше сделать — досмотреть вебинар про протокол IPv6 или отправиться на прогулку в Измайловский парк. В итоге решил, что погода может поменяться, а вебинар никуда не денется, и выбрал второе. Решил дойти до острова на Серебряно-Виноградном пруде, на котором не бывал со злополучного 2013 года. В парке замечательно! Золотая осень в самом разгаре. Сделал по дороге несколько фотографий деревьев, потом — поснимал на самом острове. Обратно тоже решил идти пешком, в результате в сумме прошагал целых 12 км, в результате чего довольно ощутимо устал.
Вечером объяснял отцу, который купил новый телефон, как пользоваться Android и перенес ему контакты со старого. (Кстати, сделать это оказалось не так-то просто.) Потом прошел несколько Clash of Code и поднялся с 127 до 61 места. Причем очень легко, голова соображала просто супер! Затем поиграл в World of Tanks и выполнил дневную норму в 5 безошибочных заездов на Клавогонках.
Не успел только две вещи: досмотреть-таки этот вебинар, и написать пару заметок в другие разделы своего мультиблога (уже который раз это откладываю).

Малоинтересный период жизни

4X_Pro
Опять не успеваю писать в блог. Впрочем, слишком поздно встаю, и из-за этого вообще много чего не успеваю. Да еще осень и сокращение светового дня давит на психику… К тому же до вчерашнего дня ничего особо интересного не происходило. Тренируюсь то в Клавогонках (и там довел среднюю скорость в безошибочном режиме до 399 знаков/минуту), то в Clash of Code, где поднялся было до 90 места, но после пары весьма эпичных промахов «отъехал» до 140 места, и только сегодня немного отыгрался. Обнаружил интересную закономерность: если пытаться идти на Клавогонки сразу после CodinGame или наоборот, резльутаты получаются в разы хуже. Видимо, задействуются какие-то взаимоисключающие области мозга.
Пожалуй, исключением был только весьма активный диалог с Миком в ЖЖ, по итогам которого я несколько прояснил свою позицию про то, что такое «хорошее взросление» и «плохое взросление», о чем, наверное, сделаю скоро запись в мировоззренческий раздел. (Эх, сколько же у меня задуманного, но недописанного накопилось! Только вот мотивации сесть и дописать мало.)
Вчера после достаточно долгого сидения дома выбрался в Измайловский парк, к Лебедянскому пруду. Сделал там фотографию почти с той же точки, что и ту, которая долгое время была у меня заставкой на рабочем столе. Но поскольку снимал осенью, а не в яркий слонечный день, по атмосфере новая фотография получилась совсем иной.
Сегодня встал очень поздно, проспав более десяти часов. И за остаток дня толком ничего не успел, а вечером сходили с Tellой на фильм «Тайна дома с часами». Фильм мне очень понравился, пожалуй, один из лучших, что я смотрел за последнее время. Возможно, потому, что в нем поднимается одна из главных тем третьего уровня развития личности — поиск себя и своих внутренних ресурсов.
Еще в последнее время уже второй раз пишут с вопросами про подключение Google Pay. Дело в том, что год назад я опубликовал статью про то, как это делается. Но описал там только настройки на client-side, так как в серверной части все зависит от используемой CMS и платежного шлюза. Тогда надеялся, что буду одним из первых, написавших на эту тему, и вылезу в ТОП.  И теперь мне пишут то по поводу OpenCart, то по поводу Joomla, но я-то ни с тем, ни с другим дела почти не имел. Плюс, подразобравшись более детально в этой теме, понял, что небольшим магазинам нет смысла настраивать его непосредственно у себя на сайте вообще, а проще использовать агрегатора платежей. Но вот объяснять это каждый раз как-то напрягает…

Еще одна встреча по настольным играм

4X_Pro
В четверг долго думал, как лучше поступить: съездить последний раз в этом году на дачу или отправиться в субботу на настольные игры. По-хорошему, первый вариант был бы правильнее. Но перспектива холодной ночевки как-то не радовала, да и несколько дней не очень быстрого Интернета — тоже. Поэтому остался, несмотря на то, что из-за этого год получился без послденего заезда и связанных с ним размышлений и своего рода подведения итогов.
А настолки прошли как-то неоднозначно. Сначала разок сыграли в «Пес попутал». Впервые видел эту игру. Она чем-то похожа на «Кондотьеров» по игровому процессу, но, на мой взгляд, не столь захватывающая. Занял там второе место, причем в результате довольно жесткой борьбы, собрал 7 объектов, тогда как лидер — 8. Потом играли в «японский бенг», но вот в него я сегодня играл на удивление плохо, делал много явных ляпов. Потом сыграли пару конов в «Средневековую академию». Вот там я реализовал ту стратегию, которую продумывал с прошлой встречи. И результат не заставил себя ждать: первое место в первом кону, и второе — во втором. Хотя там я тоже пару раз сделал пару явных ляпов, дважды набрав на некоторых раздачах по 4 из 5 карт одной масти.  Но сумел использовать их в свою пользу. Только вот на втором кону никак не мог определиться между финансами и драконоборчеством, вкладывал и туда, и туда понемногу, и в результате на финансах оказался предпоследним (-5 очков), а на драконе — 3-ьим (всего 4 очка).
А потом сыграли в «Бэнг» обычный, но там меня вынесли на первом же круге (как-то там на удивление мало и карт, и жизней дается), еще до того, как до меня дошел ход. Впрочем, потом игра затянулась, стало ясно, что придется расходиться, не доиграв, и в итоге признали ничью. И, надо сказать, вовремя это сделали: на МЦК мы с Н.П. пришли за две минуты до прибытия последнего поезда, а Н.П. потом еще пришлось бежать на метро. Но в целом я доволен в эмоциональном плане, только не понимаю, что со мной происходило, почему вдруг столько ошибок, хотя вроде бы даже выспался и утром был бодрый (правда, потом ехал почти час в трамвае с плохой вентиляцией, от чего начала болеть голова).
Более того, уже ночью, придя домой, сумел показать неплохие результаты и в Code Clash на Codingame.

Терлецкий парк и размышления о погоне за признанием

4X_Pro
Сегодня, воспользовавшись кратковременным улучшением погоды, выбрался прогулятся в Терлецкий парк после почти недели безвылазного сидения дома. Обычно я хожу туда тогда, когда времени на большую прогулку нет, делаю круг вдоль Первого и Декоративного прудов и возвращаюсь домой. Но сегодня торопиться было некуда, поэтому обошел почти весь парк целиком. Прошел сначала, как обычно, к Первому пруду, от него — к Четвертому (на современных картах он называется Ольховым). Посмотрел на исток Черного ручья, затем вышел вообще к самой дальней точке парка — перекрестку Шоссе Энтузиастов и Свободного проспекта, потом вернулся к Третьему пруду, зашел на его остров (который когда-то был полуостровом). Постоял там над водой, поразмышлял о жизни, и затем отправился по дороге, которая считается остатками Владимирского тракта.
По дороге сделал несколько фотографий дубов с начинающими желтать листьями, нашел пару удачных ракурсов, с которых не снимал прежде, хотя думал, что уж где-где, а в Терлецкой дубраве точно знаю все. Еще в очередной раз подумал о том, что надо придти сюда как-нибудь на прогулку утром. От этой мысли перешел к тому, что с одной стороны, хотелось бы ходить на прогулки чаще, но с другой, стоит начать гулять несколько дней подряд, как тут же появляется паника по поводу «не успеваю!». (Или даже «не успеваааююю!», как сказала бы Kitsune. Впрочем, она со временем дружила, в отличие от меня.)
Причем не раз я говорил себе, что все, бросаю заниматься чем-то ради признания и результатов, и буду делать что-то только ради удовольствия, и тогда совершенно не важно будет, сколько времени у меня это займет. Но увы, все попытки приводили к тому, что проходила пара дней, и то, чем я занимался ради Познания и удовольствия, превращается в новый способ достижения результатов и признания. Или же просто переставало быть интересным. Например, весной я забросил типологии и занялся своим сайтом. Придумал почти десяток тем, по которым хотел бы высказаться, и все — сразу появилось новое направление, в котором захотелось получить признание — блоггерство. И сразу же начались переживания по поводу того, что тем много, а процесс написания идет как-то слишком уж медленно.
Или тот же самый CodinGame. Сначала я пришел туда, в основном, для получения опыта и расширения знаний в алгоритмике. Но стоило подняться до TOP-5000 в общем рейтинге, как тут же стал задумываться над тем, что надо войти в TOP-1000 и получить звание «Вавилонская башня», которое дают за решение задач на 15 разных языках программирования. Сегодня, кстати, сделал еще шаг в этом направлении: решил одну задачу middle-сложности на Java, которая стала 12 по счету языком. Причем, как всегда, не обошлось без невнимательности. Задача была на подсчет количества возможных путей в лабиринте. Алгоритм я сделал быстро (он похож на тот, который летом делал для Call of Ctulu), но на больших объемах данных не укладывался в отведенное время. Часа два ломал голову, пытаясь понять, что там можно закешировать и оптимизировать. А потом заметил, что в условии скзаано, что движение по лабиринут возможно только вправо и вниз, что исключало множество путей. После этого тут же все тесты были пройдены.
И даже попытку устроить себе период ограниченного доступа в Интернет только из метро/МЦК, про что писал недавно, тоже стал воспринимать как еще один нетривиальный способ попытаться получить общественное внимание.

Замедление жизни

4X_Pro
В последние дни наконец-то появилась возможность посидеть дома, растолкать все ненужные дела, и замедлить темп жизни до приемлемого. В результате сейчас успеваю в день примерно 80% из того, чем хотел бы заняться, и это, по моим меркам, весьма высокий показатель. Но все равно очень много времени уходит на переключение между разными видами деятельности. Не могу просто взять закончить одно и тут же сесть за другое (причем касается это не только серьезных дел, но и развлечений), обязательно какой-то период буду заниматься непойми чем. Еще никак не получается начать ложиться и вставать раньше. Даже если удается выключить компьютер до трех часов ночи, все равно как-то так получается, что либо ложусь спать в 4:30, либо, даже если и ложусь раньше, уснуть все равно не могу.
Но даже такой высокий показатель не дает особого чувства удовлетворенности жизнью. Точнее, дает на короткие моменты, например, когда решение на CodinGame проходит все тесты, или выкладываю дописанную заметку, оно, конечно, появляется. Но вот от самого процесса — нет. Удовлетворенность от самого процесса с полным вовлечением в здесь и сейчас приносят разве что старые компьютерные игры и иногда поездки в новые места (как, например, прогулка в Строгино или поездка в Переславль). Интересно, с чем это связано? Были ли игры тогда объективно лучше или же просто я, играя в них, возвращаюсь к тому себе, каким был в 1990-х годах, до всех жизненных разочарований: Декабрьской Трагедии, Великого излома, Черной Вести и прочих? Или просто старые игры ориентированы на третий уровень ТУАИ, который у меня в ценностях (где из-за отсутствия возможности сохраняться приходилось регулярно повторять прохождение одного и того же участка и максимально совершенствоваться, чтобы дойти до конца), а более поздние — на 4, 5, 6?
Еще в последнее время много задумываюсь над вопросом: чем я отличаюсь от тех людей, которых заметили? Возникло целое множество версий:
  1. разбросанность между кучей направлений, тогда как те, у кого есть результат в виде признания, концентрируются на чем-то одном;
  2. более быстрым темпом жизни и тратой жизненных ресурсов, из-за которого они в единицу времени успевают делать гораздо больше чем я (пусть и ценой комфорта и качества жизни). Образно говоря, они горят, я — тлею.
  3. более низким уровнем жизненной энергии, и выносливостью на всех трех уровнях: физическом, эмоциональном, интеллектуальном. Я все же достаточно быстро выдыхаюсь, говорю «все, не могу больше» и на неделю переключаюсь на что-то совсем другое, они продолжают «пахать» как проклятые и получают результат в разы раньше, чем я.
  4. слишком высоким уровнем неуверенности, когда надо пробовать что-то новое (сказывается C-тип по DISC ).
  5. на самом деле дело не во мне, а просто те, кого заметили, активно вкладывались в раскрутку.
  6. известность на самом деле вообще своего рода лотерея: есть множество людей, которые делают примерно одно и то же, но везет быть замеченными только части из них (например, сделанное ими попалось на глаза кому-то из уже раскрученных).
Но какая из них истинна — для меня пока так и остается загадкой…

Шаг в сторону четвертого уровня

4X_Pro
Смотрел сегодня в окно на постоянно меняющуюся погоду (а менялась она от солнечной до дождя с градом) и думал о жизни. Недавно нашел на SbUp человека, который консультировал по развитию групп, показал ему свою группу «Конкурсы для программистов», и спросил, что там нужно улучшить и как вообще развивать ее, не вкладывая денег. Рекомендации были стандартные: конкурсы, развлектательный контент и обмен ссылками с группами смежной тематики. Но все перечисленное для меня не вариант по разным причинам. В общем, опять бесперспективность полная…
Зато, кажется, я наконец-то стал делать шаги к возвращению на четвертый уровень развития личности. По крайней мере, в голове начала выкристаллизовываться система приоритетов в тех направлениях, которыми я занимаюсь. Все-таки на первом месте получается программирование и ML, так как в этой области можно проявить себя на сайтах типа CodinGame и Kaggle, не занимаясь раскруткой. На втором, наверное, созерцательная составляющая жизни и компьютерные игры. А сайт и развитие IntB — на третьем: записывать мысли по мере их возникновения, но не пытаться заставлять себя что-то делать по плану. И сюда же — доделывать те функции IntB, которые нужны непосредственно для моих сайтов. А дальше — работа над книгой и познание по второстепенным областям (не связанным с программированием) типа той же когнитивистики или графологии. И еще все-таки надо как-то ограничить себе Интернет с компьютера, чтобы меня не сносило так потоком жизни.

Несколько дней слишком быстрой жизни

4X_Pro
Несколько дней поток жизни был слишком быстрым, и только сегодня появилась возможность замедлиться до приемлемого уровня и отсидеться дома (причем, как раз по закону мировой подлости после нескольких дней дождей наступила просто прекрасная погода для прогулки). И то только потому что сорвалась встреча  с Andrey_Thinking — участником моего самого первого соционического форума, который недавно приехал  в Москву и вспомнил обо мне спустя столько лет.
А за эти дни произошло немало всего. Во-первых, я несколько дней прожил в режиме «в Интернет с компьютера выхожу вечером, а днем — только с планшета». Это дало свои результаты: я доделал вывод тегов в своем блоге, за что никак не получалось взяться с момента его пуска в конце апреля. Теперь осталась еще пара доделок, а также дописать инсталлятор, и можно будет делать релиз версии 3.02. Еще посмотрел видео про преобразования Фурье, многое вспомнил и понял лучше, а еще разобрался, что такое вейвлет-преобразования. Также нашел блог по SDL (Simple Direct Media) и стал его изучать! Очень понравилось: позволяет кроссплатформенно программировать графику почти так же, как это делалось на Turbo Pascal в старые добрые времена.
В понедельник с Tellой побывали на «Круге света». Погода была ужасная, весь день лил дождь, и я даже подумывал отменить поездку, но у двух низких Воль получилось как всегда: никто не захотел брать на себя ответственность за это решение, поэтому ситуация развивалась по умолчанию. Поехали мы на Театральную. Впечатления оказались очень противоречивыми: с одной стороны, было немало реально красивых моментов, с другой — ужасное качество звука и просто зашкаливающее количество рекламы портили все впечатление. В общем, нас хватило на 20 минут, потом ушли искать кафе, чтобы согреться. А на выходе из кафе перепутали куда идти, в результате вместо метро Театральная пошли к Тверской (вернее, вышли в итоге к Чеховской). Причем из-за дождя и зонтов не было возможности посмотреть карту, поэтому шли на авось, только в общих чертах представляя, где примерно окажемся. Еще был смешной эпизод: идя по городу, мы увидели девушку, которая шла под дождем (причем без зонта) и что-то пела на ходу. Я удивился:  погода такая, что сдохнуть хочется, а она поет. На что Tella ответила «я тоже так могу», и реально что-то спела.
А сегодня на Ask я с подачи анонима сформулировал восемь основных правил своей жизни.

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

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