Был в Сети 8 дек. 2024 г., 00:47
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.
- Перово, Москва, Россия
- me@4xpro.ru
- x4_pro
- XXXXPro
Новости сайта в Telegram
t.me/4x_proЛог жизни
Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.
Обновление Яндекс.ИКС
Сегодня узнал, что 27-ого случилось очередное обновление Яндекс.ИКС. Правила в очередной раз поменялись: теперь ИКС перестал былть кратным десяти. И большинству моих сайтов дали по единичке, а этому — сразу +11, в итоге вместо 110 стало 121. Исключением стал typtest.ru, который наоборот, просел с 90 до 81. В общем, это радует!
Прогулка в дальнюю часть Измайловского парка
Сегодня заставил встать себя по будильнику гораздо раньше обычного, и не зря: за окном был потрясающий солнечный день, один из тех, когда кажется, что жизнь прекрасна, как ни крути, и ничего не может ее испортить. Я решил отправиться на прогулку в Измайловский парк, дойти до истоков Липитинского ручья, где не был уже давно. Правда, как всегда, прособирался очень долго (и куда только время девается?) и из дома вышел чуть раньше 14 часов. Но несмотря на это, успел застать солнечную часть дня.
Несмотря на отличное настроение, недосып все же давал о себе знать. Во-первых, я не мог уйти в свои мысли полностью, как это бывает на большинстве прогулок, во-вторых, раздражало присутствие других людей ближе чем в 10 метрах от меня. Поэтому к Лебедянскому пруду я пошел не по дорожке, а через лес, несмотря на то, что там было еще много снега, на котором очень скользили ботинки. Но зато увидел больше, например, болото возле одной из просек, которое уже сейчас очистилось от снега и заполнились водой. Во время прогулки жалел только об одном: что эту легкую прозрачность и солнечность весеннего леса на фотографии толком передать не получится: получится та самая ситуация, когда за деревьями леса не видно.
Потом добрался до Лебедянского пруда, в одном месте возле него ухнув в снег чуть ли не по колено. Взобрался на гору, сделал несколько снимков оттуда. Потом спустился к Черному ручью и Серебрянке, постоял немного, глядя на место их слияния, перешел мост и отправился по дорожке к Харигозинскому ручью. Это та самая часть парка, в которой я бываю реже всего!
Потом вышел на Большой круг, а с него свернул на дорожку, ведущую к истокам Липитинского ручья. Там сделал еще несколько фотографий, удачно дождавшись выхода солнца из-за облаков (к тому времени, когда я туда добрался, вся западная половина неба оказалась затянута ими, в полном соответствии с прогнозом Gismeteo), а потом отправился домой.
Несмотря на отличное настроение, недосып все же давал о себе знать. Во-первых, я не мог уйти в свои мысли полностью, как это бывает на большинстве прогулок, во-вторых, раздражало присутствие других людей ближе чем в 10 метрах от меня. Поэтому к Лебедянскому пруду я пошел не по дорожке, а через лес, несмотря на то, что там было еще много снега, на котором очень скользили ботинки. Но зато увидел больше, например, болото возле одной из просек, которое уже сейчас очистилось от снега и заполнились водой. Во время прогулки жалел только об одном: что эту легкую прозрачность и солнечность весеннего леса на фотографии толком передать не получится: получится та самая ситуация, когда за деревьями леса не видно.
Потом добрался до Лебедянского пруда, в одном месте возле него ухнув в снег чуть ли не по колено. Взобрался на гору, сделал несколько снимков оттуда. Потом спустился к Черному ручью и Серебрянке, постоял немного, глядя на место их слияния, перешел мост и отправился по дорожке к Харигозинскому ручью. Это та самая часть парка, в которой я бываю реже всего!
Потом вышел на Большой круг, а с него свернул на дорожку, ведущую к истокам Липитинского ручья. Там сделал еще несколько фотографий, удачно дождавшись выхода солнца из-за облаков (к тому времени, когда я туда добрался, вся западная половина неба оказалась затянута ими, в полном соответствии с прогнозом Gismeteo), а потом отправился домой.
Потрясающий фильм и выпавший день
Сегодня (вернее, уже вчера) сходили с Tellой в кино на фильм «Дамбо». Сначала, когда я только прочитал описание фильма, меня как-то не заинтересовало. Но когда посмотрел, оказалось, что фильм потрясающий! И совершенно не жалею, что пошел. Впечатление было настолько сильным, что когда вышли из кинотеатра, я первые минут десять толком не мог ни на чем сосредоточиться, даже просто сориентироваться на местности. Поэтому мы пошли гулять просто куда глаза глядят, и в итоге вышли сначала к Добрынинской, а потом — к Октябрьской. Там еще час просидели в заведении под названием «Хлеб насущный», а потом разошлись по домам. В целом все было классно, но под конец я все же получил перегрузку от постоянной болтовни Tellы (интересно, как она сама не устает столько говорить), и поэтому остаток дня приходил в себя. Хотел даже лечь спать пораньше, но получилось как всегда…
В общем, опять получается, что если иду куда-то даже сравнительно ненадлого, весь день можно считать выпавшим.
В общем, опять получается, что если иду куда-то даже сравнительно ненадлого, весь день можно считать выпавшим.
Настолки и день троллинга
Сегодня в очередной раз сходил на настолки. Причем, скорее всего, в «Гарцующем дредноуте» я был в последний раз — с апреля заведение закрывается. А жаль!
Поиграли в целом неплохо. Сначала два раза сыграли в «Японский бенг». Первый раз я играл за самурая. В целом всё шло нормально, но в самом конце прикончили нашего сёгуна, а потом он же попал на карту Бусидо. И сразу же лишился двух жетонов, и на его же ходе кончилась колода. Итог — 4:4, но в таких случаях по правилам ниндзя побеждают. В следующий раз играли вшестером, и я попал в команду ниндзя. При таком раскладе игра оказывается тяжелой для самурая — ему приходится отдуваться за двоих в прямом смысле, и ему желательно как можно дольше себя не выдавать. Из-за этого все атаковали сёгуна, и никто никак не мог вычислить, кто ронин. Наконец я не выдержал, и атаковал соседа справа. Редкий случай: у меня оказалось две карты хладнокровия и куча оружия, и я за один ход снял с него жетон. Причем он даже не пытался кидать защиты, из-за чего все решили, что он ниндзя, а ронин — другой игрок. Причем все шло к тому, что тот выигрывает (у него было 4 жетона), но когда игра закончилась, и вскрыли карты, то оказалось, что ниндзя все же победили с перевесом в одно очко — тот самый жетон, который я отобрал у соседа справа.
Потом играли в «Нечто». Сначала впятером, я был Нечто, и быстро заразил двоих, один из зараженных быстро ликвидировал Ал.С. из огнемета, а дальше карты заражения все не шли и не шли. Но потом тот же игрок раздобыл второй огнемет и ликвидировал последнего мирного, и на этом игра завершилась победой Нечто. Второй раз стали играть уже вдесятером. На этот раз игра пошла не очень. У меня почти с самого начала был огнемет, но было непонятно, на кого его использовать. Почему-то интуитивно хотелось применить на соседку справа, но обосновать я этого не мог. Наконец, когда ход дошел до нее и мы провели обмен картами, я получил от нее заражение. Теперь мне предстояло играть за Нечто уже в роли зараженного. Тут я чуть было не «засветился», в свой ход проведя с ней еще один обмен с помощью специальной карты, чтобы передать взятую из колоды карту заражения: Ал.С. сочла такой странный обмен подозрительным. Но привело это к тому, что подозревать стали меня, а участница, которая была Нечто, вскоре применила карту смены места и от меня отсела. В результате многие решили, что Нечто — это я, и стали искать способ подобраться ко мне с огнеметом. Я отгородился от них дверью, и приготовился применить огнемет, но до этого не дошло. Пока все это происходило, участница, игравшая за Нечто, успела заразить еще двоих. Но дальше случилось то, что нельзя назвать иначе, чем epic fail: одна из зараженных зачем-то сыграла карту анализа на участницу-Нечто. В результате последняя просто отказалась доигрывать, так как это резко ломало весь расклад (незараженных еще оставалось шестеро). А начать новую игру мы не успевали. Поэтому на этом решили разойтись.
Еще меня крайне напрягло то, что когда только собирались играть в Нечто в послдений раз, кто-то спросил чем я занимаюсь по жизни, а когда я ответил, что Web-программированием на PHP и Python, решил докопаться на тему «ПХП говорить неправильно, нужно говорить ПиЭйчПи» (про то, что Python правильно читается «Пайтон» он, видимо, не знал). Это привлекло интерес еще нескольких людей, которые начали задавать всякие провокационные вопросы, что меня малость подразозлило.
Но самое неприятное было позже. Я решил вернуться в основной чат (из которого временно выходил вчера). И обнаружил, что тут снова кого-то поздравляют с днями рождения. Выругавшись, выломился с чата. А потом выяснилось, что это была провокация, придуманная А.Ш. (вот уж от кого не ожидал): он поздравил человека, которого реально в чате нет, специально, чтобы посмотреть, как я на это среагирую. И был дико рад тому, что моя реакция совпала с его ожиданиями. В общем, крайне неприятно.
И еще уже несколько дней мне не дает покоя вопрос: не занмаюсь ли я предательством себя? В старые добрые времена я в таких ситуациях шел на конфликт со всем чатом/форумом, требуя запретить распространение зла (каковым я считаю дни рождения), а теперь просто мирно пережидаю, когда это закончится. Когда я поступал правильнее: тогда или сейчас?
Поиграли в целом неплохо. Сначала два раза сыграли в «Японский бенг». Первый раз я играл за самурая. В целом всё шло нормально, но в самом конце прикончили нашего сёгуна, а потом он же попал на карту Бусидо. И сразу же лишился двух жетонов, и на его же ходе кончилась колода. Итог — 4:4, но в таких случаях по правилам ниндзя побеждают. В следующий раз играли вшестером, и я попал в команду ниндзя. При таком раскладе игра оказывается тяжелой для самурая — ему приходится отдуваться за двоих в прямом смысле, и ему желательно как можно дольше себя не выдавать. Из-за этого все атаковали сёгуна, и никто никак не мог вычислить, кто ронин. Наконец я не выдержал, и атаковал соседа справа. Редкий случай: у меня оказалось две карты хладнокровия и куча оружия, и я за один ход снял с него жетон. Причем он даже не пытался кидать защиты, из-за чего все решили, что он ниндзя, а ронин — другой игрок. Причем все шло к тому, что тот выигрывает (у него было 4 жетона), но когда игра закончилась, и вскрыли карты, то оказалось, что ниндзя все же победили с перевесом в одно очко — тот самый жетон, который я отобрал у соседа справа.
Потом играли в «Нечто». Сначала впятером, я был Нечто, и быстро заразил двоих, один из зараженных быстро ликвидировал Ал.С. из огнемета, а дальше карты заражения все не шли и не шли. Но потом тот же игрок раздобыл второй огнемет и ликвидировал последнего мирного, и на этом игра завершилась победой Нечто. Второй раз стали играть уже вдесятером. На этот раз игра пошла не очень. У меня почти с самого начала был огнемет, но было непонятно, на кого его использовать. Почему-то интуитивно хотелось применить на соседку справа, но обосновать я этого не мог. Наконец, когда ход дошел до нее и мы провели обмен картами, я получил от нее заражение. Теперь мне предстояло играть за Нечто уже в роли зараженного. Тут я чуть было не «засветился», в свой ход проведя с ней еще один обмен с помощью специальной карты, чтобы передать взятую из колоды карту заражения: Ал.С. сочла такой странный обмен подозрительным. Но привело это к тому, что подозревать стали меня, а участница, которая была Нечто, вскоре применила карту смены места и от меня отсела. В результате многие решили, что Нечто — это я, и стали искать способ подобраться ко мне с огнеметом. Я отгородился от них дверью, и приготовился применить огнемет, но до этого не дошло. Пока все это происходило, участница, игравшая за Нечто, успела заразить еще двоих. Но дальше случилось то, что нельзя назвать иначе, чем epic fail: одна из зараженных зачем-то сыграла карту анализа на участницу-Нечто. В результате последняя просто отказалась доигрывать, так как это резко ломало весь расклад (незараженных еще оставалось шестеро). А начать новую игру мы не успевали. Поэтому на этом решили разойтись.
Еще меня крайне напрягло то, что когда только собирались играть в Нечто в послдений раз, кто-то спросил чем я занимаюсь по жизни, а когда я ответил, что Web-программированием на PHP и Python, решил докопаться на тему «ПХП говорить неправильно, нужно говорить ПиЭйчПи» (про то, что Python правильно читается «Пайтон» он, видимо, не знал). Это привлекло интерес еще нескольких людей, которые начали задавать всякие провокационные вопросы, что меня малость подразозлило.
Но самое неприятное было позже. Я решил вернуться в основной чат (из которого временно выходил вчера). И обнаружил, что тут снова кого-то поздравляют с днями рождения. Выругавшись, выломился с чата. А потом выяснилось, что это была провокация, придуманная А.Ш. (вот уж от кого не ожидал): он поздравил человека, которого реально в чате нет, специально, чтобы посмотреть, как я на это среагирую. И был дико рад тому, что моя реакция совпала с его ожиданиями. В общем, крайне неприятно.
И еще уже несколько дней мне не дает покоя вопрос: не занмаюсь ли я предательством себя? В старые добрые времена я в таких ситуациях шел на конфликт со всем чатом/форумом, требуя запретить распространение зла (каковым я считаю дни рождения), а теперь просто мирно пережидаю, когда это закончится. Когда я поступал правильнее: тогда или сейчас?
Осознание одного из самых больших страхов
Кажется, вчера я осознал один из своих главных страхов, который прежде был неосознанным. Произошло это так: я читал «Алмазную колесницу» Акунина, и зацепила одна фраза: «это одно из множеств тех искусств, в которых японцы любят практиковаться в течение всей жизни» (цитирую по памяти и неточно). Тут я подумал: а ведь раньше мне удовлетворение от жизни тоже приносило именно это — совершествование в чем-либо путем многократного повторения и максимального вникания в детали. Для тех, кто знает типологии, можно сказать иначе — деятельность по третьему уровню ТУАИ, который, у меня, пожалуй, самый проявленный среди всех.
Но проблема том, что в слишком быстро меняющемся мире часто происходит обесценивание тех или иных знаний или навыков. Например, в свое время я гордился умением писать CONFIG.SYS и AUTOEXEC.BAT так, чтобы загружались все нужные драйвера, но при этом оставалось еще более 625 Кб основной оперативной памяти. Потом — делал Advanced Recovery Diskette, на которую всеми возможными способами старался уместить по-максимуму разных утилит для восстановления системы или информации или даже просто работы с компьютером в ситуациях, когда основная система упала. Да и даже просто развивал умение ставить Windows так, чтобы он не глючил и оптимизировать его производительность. Потом — изучение Perl и работа с CGI на самом низком уровне — с самостоятельным парсингом данных из STDIN или QUERY_STRING в целях экономии памяти.
Но кому теперь все это нужно? Уже выросло поколение, которое не застало не только MS-DOS, но и даже дискет. Windows поставляется предустановленным со всеми необходимыми дравейрами, да и не глючит из коробки, а запас производительности такой, что смысла в оптимизации практически нет. Perl почти перестал использоваться в Web, равно как и чистый CGI, на смену котором пришли FastCGI, SCGI и WSGI.
И, видимо, в какой-то момент бессознательное поняло, что вкладывать ресурсы в глубокое изучение чего-либо не очень-то рационально, так как оно все равно может обесцениться, и стало удерживать меня от этого. И в результате я из человека, который «тысячу раз отработал один удар» стал превращаться в человека, который «попробовал по разу тысячу ударов». И хотя это более-менее позволяет решать мне разные задачи, с которыми я сталкиваюсь, того ощущения «знание делает меня сильнее», которое было раньше, у меня больше не появляется. И только возвращаясь к старым компьютерным играм, где нет возможности сохраняться и нужно каждый раз начинать почти с нуля, я снова перехожу в режим совершенствования по третьему уровню ТУАИ…
В общем, опять задаюсь вопросом: как заниматься чем-то, что во-первых, имело бы четкий индикатор прогресса, во-вторых, подходило бы под мои личностные ограничения и не требовало бы материальных вложений, и в-третьих, не было бы угрозы устаревания этих навыков со временем…
Но проблема том, что в слишком быстро меняющемся мире часто происходит обесценивание тех или иных знаний или навыков. Например, в свое время я гордился умением писать CONFIG.SYS и AUTOEXEC.BAT так, чтобы загружались все нужные драйвера, но при этом оставалось еще более 625 Кб основной оперативной памяти. Потом — делал Advanced Recovery Diskette, на которую всеми возможными способами старался уместить по-максимуму разных утилит для восстановления системы или информации или даже просто работы с компьютером в ситуациях, когда основная система упала. Да и даже просто развивал умение ставить Windows так, чтобы он не глючил и оптимизировать его производительность. Потом — изучение Perl и работа с CGI на самом низком уровне — с самостоятельным парсингом данных из STDIN или QUERY_STRING в целях экономии памяти.
Но кому теперь все это нужно? Уже выросло поколение, которое не застало не только MS-DOS, но и даже дискет. Windows поставляется предустановленным со всеми необходимыми дравейрами, да и не глючит из коробки, а запас производительности такой, что смысла в оптимизации практически нет. Perl почти перестал использоваться в Web, равно как и чистый CGI, на смену котором пришли FastCGI, SCGI и WSGI.
И, видимо, в какой-то момент бессознательное поняло, что вкладывать ресурсы в глубокое изучение чего-либо не очень-то рационально, так как оно все равно может обесцениться, и стало удерживать меня от этого. И в результате я из человека, который «тысячу раз отработал один удар» стал превращаться в человека, который «попробовал по разу тысячу ударов». И хотя это более-менее позволяет решать мне разные задачи, с которыми я сталкиваюсь, того ощущения «знание делает меня сильнее», которое было раньше, у меня больше не появляется. И только возвращаясь к старым компьютерным играм, где нет возможности сохраняться и нужно каждый раз начинать почти с нуля, я снова перехожу в режим совершенствования по третьему уровню ТУАИ…
В общем, опять задаюсь вопросом: как заниматься чем-то, что во-первых, имело бы четкий индикатор прогресса, во-вторых, подходило бы под мои личностные ограничения и не требовало бы материальных вложений, и в-третьих, не было бы угрозы устаревания этих навыков со временем…
День, когда лучше было бы остаться дома
Несколько дней назад мы договорились с Tellой, что в пятницу отправимся на прогулку в район Проспекта Мира. Но сегодня с самого начала все пошло не так. Во-первых, я проснулся поздно даже по своим меркам. Во-вторых, за окном была совершенно ужасная погода. В какой-то момент я даже хотел предложить Tellе никуда не идти, а отложить встречу на другой день. Но потом подумал, что в такую ужасную погоду идем не первый раз, так что ладно. Поэтому ограничился тем, что предложил сдвинуть встречу на час позже и стал спешно собираться.
Увы, это оказалось плохой идеей. Приехал на место весь на нервах и с плохим самочувствием. Казалось, что люди в метро еле ноги переставляют и то и дело лезут в зону личного комфорта даже тогда, когда в вагоне места более чем достаточно. В общем бесило вообще все. Tella видела меня таким впервые и даже отчасти испугалась. Впрочем, она сама тоже была в далеком от идеального состоянии: по каким-то причинам встала в 7 утра и испытывала слабость от недосыпа.
В итоге решили сначала посидеть в «Шоколаднице». Где-то через час я успокоился (причем Tella утверждает, что ей на какой-то момент передалось мое состояние, как я потом сказал «ты с меня дурную энергию сняла»), и все же решили пойти гулять. Но за это время погода испортилась еще больше: пошел снег, и похолодало так, что мерзнуть стала даже Tella (хотя обычно ей жарко даже зимой). Она показала мне церковь Митрополита Филиппа, а дальше просто отправились по району. В районе проспекта Мира я был до этого всего всего пару раз в жизни, и то очень давно, поэтому прогулка была в режиме «куда глаза глядят» в полном смысле этого слова. Все, что я знал, так это то, что скорее всего идем куда-то на север.
Через какое-то время замерзли окончательно, и стало ясно, что надо выбираться. Пришлось воспользоваться Яндекс.Картой, по которой я понял, как выйти к метро Рижская, куда мы и направились. По дороге решили подойти к Рижскому вокзалу, осмотреть который я хотел давно, но ехать только ради него не хватало мотивации, а с какими-либо другими целями я в этом районе не оказывался. И вот теперь это было исправлено!
В общем, прогулка получилась довольно странная (хотя, за исключением начала, нельзя сказать, что совсем уж плохая), но, наверное, остаться дома было бы все же лучше.
Увы, это оказалось плохой идеей. Приехал на место весь на нервах и с плохим самочувствием. Казалось, что люди в метро еле ноги переставляют и то и дело лезут в зону личного комфорта даже тогда, когда в вагоне места более чем достаточно. В общем бесило вообще все. Tella видела меня таким впервые и даже отчасти испугалась. Впрочем, она сама тоже была в далеком от идеального состоянии: по каким-то причинам встала в 7 утра и испытывала слабость от недосыпа.
В итоге решили сначала посидеть в «Шоколаднице». Где-то через час я успокоился (причем Tella утверждает, что ей на какой-то момент передалось мое состояние, как я потом сказал «ты с меня дурную энергию сняла»), и все же решили пойти гулять. Но за это время погода испортилась еще больше: пошел снег, и похолодало так, что мерзнуть стала даже Tella (хотя обычно ей жарко даже зимой). Она показала мне церковь Митрополита Филиппа, а дальше просто отправились по району. В районе проспекта Мира я был до этого всего всего пару раз в жизни, и то очень давно, поэтому прогулка была в режиме «куда глаза глядят» в полном смысле этого слова. Все, что я знал, так это то, что скорее всего идем куда-то на север.
Через какое-то время замерзли окончательно, и стало ясно, что надо выбираться. Пришлось воспользоваться Яндекс.Картой, по которой я понял, как выйти к метро Рижская, куда мы и направились. По дороге решили подойти к Рижскому вокзалу, осмотреть который я хотел давно, но ехать только ради него не хватало мотивации, а с какими-либо другими целями я в этом районе не оказывался. И вот теперь это было исправлено!
В общем, прогулка получилась довольно странная (хотя, за исключением начала, нельзя сказать, что совсем уж плохая), но, наверное, остаться дома было бы все же лучше.
Кошмар с backupом
Не прошло и полгода, как я все же собрался сделать выгрузку backupов баз своих сайтов на бесплатный FTP, который в свое время дали на хостинге, где расположена моя соционическая социальная сеть. (Сейчас специально нашел письмо и проверил — его прислали 8 ноября.) Полез на сервер, и оказалось, что не могу подключиться к нему по SSH, хотя HTTP и ping проходят. Сначала думал, какие-то чудеса с IPv6. Переключился на второго провайдера, где подключение идет только по IPv4, но и там — то же самое.
Стал разбираться. К счастью, у этого хостера есть виртуальная консоль, правда, малость тормозная. Но уж лучше такая, чем никакой, как у Reg.Ru. Стал разбираться в чем дело, и оказалось, что не запускался сервис sshd из-за того, что нет каталога /var/run/sshd. Куда делся этот каталог, для меня так и осталось загадкой (он, по идее, должен создаваться автоматически при запуске службы sshd), но как только я его воссоздал и запустил sshd, все заработало. Заодно обновил на сервере софт.
Но крайне неприятно было осознавать, что все это время соционический сайт работал без внешних backupов (на ноутбук они у меня вытягиваются через scp, которая тоже работает через ssh)!
Стал разбираться. К счастью, у этого хостера есть виртуальная консоль, правда, малость тормозная. Но уж лучше такая, чем никакой, как у Reg.Ru. Стал разбираться в чем дело, и оказалось, что не запускался сервис sshd из-за того, что нет каталога /var/run/sshd. Куда делся этот каталог, для меня так и осталось загадкой (он, по идее, должен создаваться автоматически при запуске службы sshd), но как только я его воссоздал и запустил sshd, все заработало. Заодно обновил на сервере софт.
Но крайне неприятно было осознавать, что все это время соционический сайт работал без внешних backupов (на ноутбук они у меня вытягиваются через scp, которая тоже работает через ssh)!
Нечто с огнеметом или Отжиг на настолках
Вчера получился какой-то странный день. Во-первых, встал очень поздно, повторив свой антирекорд сна. Во-вторых, сглючило планшет: он то ли разрядился, то ли просто самопроизвольно выключился. И в итоге я потерял uptime в 5 тысяч часов, если не больше, и даже скриншот не сделал.
За оставшуюся часть дня я успел только посмотреть обстановку в Интернете и пообедать, и тут наступило время ехать на настолки. Долго сомневался, стоит ли ехать вообще, или лучше остаться дома и поиграть в Open Transport Tycoon в гордом одиночестве. Но в итоге решил поехать. На этот раз пришла Ал.С., принесла «японский Бэнг», и мы стали играть в него. Но сначала дело шло плохо. В первой игре Ал.С. была сегуном, а я — самурем, и она «подорвала» меня на первом же ходу с помощью карты Бусидо (аналог динамита в обычном Бэнге). Потом мы какое-то время пытались спасти ситуацию, но в итоге проиграли. Потом сыграли еще несколько раз, в этот раз и я и Ал.С. оказались ниндзя, но в итоге тоже проиграли, хоть и не так эпично, как в первый. И, наконец, в последний раз мне досталась роль сегуна и очень хорошо сбалансированный набор карт на старте: было и оружие, и карты дополнительных возможностей (Хладнокровие, Стремительность), правда, не было защит. Я сразу же этим воспользовался и атаковал соседа слева, хотя даже не знал, кто он по роли, и на первом же ходу отобрал у него жетон чести. Но оказалось, что он был ниндзей, так что все было сделано правильно. А дальше разыгрывал так: в свой ход разыгрывал все карты, которые были на руках, и поэтому оставался неуязвимым к атакам (по правилам игрока, у которого нет ни одной карты, атаковать нельзя). И за счет этого и победил. Причем от э того вдруг почувстовал мощный эмоциональный подъем. А, судя по фото со встречи, зашел в какой-то Темный архетип. (Вообще, фото иногда позволяет взглянуть на себя со стороны и осознать то, что напрямую осознать не получается.)
Потом играли в Нечто. И вот тут я отжигал в прямом и переносном смысле. Успели сыграть три раза. На первый раз я был Нечто, но ловко прикинулся мирным, быстро заразил одного новичка и собирался — второго, достаточно серьезного игрока, но тут новичок напутал: дал карту заражения другому игроку. Решили пересдать и начать заново. На этот раз Нечто оказалась К.Ш. И получилось очень странно: то ли на первом, то ли на втором круге, когда еще вообще ничего не было ясно в плане кто есть кто, ее сжег из огнемета сосед справа. Я никак не мог понять, как он сумел ее вычислить, а он сказал, что просто в шутку спросил ее «Ты — Нечто?», а она так же в шутку ответила «Да». До закрытия заведения оставалось всего 10 минут, но мы решили попробовать успеть сыграть еще раз. И снова я оказался Нечто! Снова заразил того серьезного игрока, о котором упоминал выше, а дальше карт заражения не было, но был огнемент. Поэтому его я сыграл на К.Ш., чтобы уменьшить количество мирных и побыстрее закончить игру. А дальше тот новичок снова напутал: сыграл карту пересадки, подсел ко мне, и дал огнемет в качестве обмена (изначально он хотел на меня его сыграть, но не учел, что две карты за ход разыгрывать нельзя). В ответ он получил карту заражения, а огнемет я тут же сыграл на последнего из оставшихся «мирных», и на этом игра закончилась.
А вернувшись домой, я до глубокой ночи играл все же в Open Trasnport Tycoon, где наконец-то получилось построить сеть железных дорог с высокой загруженностью.
В общем, получился отличный игровой день!
За оставшуюся часть дня я успел только посмотреть обстановку в Интернете и пообедать, и тут наступило время ехать на настолки. Долго сомневался, стоит ли ехать вообще, или лучше остаться дома и поиграть в Open Transport Tycoon в гордом одиночестве. Но в итоге решил поехать. На этот раз пришла Ал.С., принесла «японский Бэнг», и мы стали играть в него. Но сначала дело шло плохо. В первой игре Ал.С. была сегуном, а я — самурем, и она «подорвала» меня на первом же ходу с помощью карты Бусидо (аналог динамита в обычном Бэнге). Потом мы какое-то время пытались спасти ситуацию, но в итоге проиграли. Потом сыграли еще несколько раз, в этот раз и я и Ал.С. оказались ниндзя, но в итоге тоже проиграли, хоть и не так эпично, как в первый. И, наконец, в последний раз мне досталась роль сегуна и очень хорошо сбалансированный набор карт на старте: было и оружие, и карты дополнительных возможностей (Хладнокровие, Стремительность), правда, не было защит. Я сразу же этим воспользовался и атаковал соседа слева, хотя даже не знал, кто он по роли, и на первом же ходу отобрал у него жетон чести. Но оказалось, что он был ниндзей, так что все было сделано правильно. А дальше разыгрывал так: в свой ход разыгрывал все карты, которые были на руках, и поэтому оставался неуязвимым к атакам (по правилам игрока, у которого нет ни одной карты, атаковать нельзя). И за счет этого и победил. Причем от э того вдруг почувстовал мощный эмоциональный подъем. А, судя по фото со встречи, зашел в какой-то Темный архетип. (Вообще, фото иногда позволяет взглянуть на себя со стороны и осознать то, что напрямую осознать не получается.)
Потом играли в Нечто. И вот тут я отжигал в прямом и переносном смысле. Успели сыграть три раза. На первый раз я был Нечто, но ловко прикинулся мирным, быстро заразил одного новичка и собирался — второго, достаточно серьезного игрока, но тут новичок напутал: дал карту заражения другому игроку. Решили пересдать и начать заново. На этот раз Нечто оказалась К.Ш. И получилось очень странно: то ли на первом, то ли на втором круге, когда еще вообще ничего не было ясно в плане кто есть кто, ее сжег из огнемета сосед справа. Я никак не мог понять, как он сумел ее вычислить, а он сказал, что просто в шутку спросил ее «Ты — Нечто?», а она так же в шутку ответила «Да». До закрытия заведения оставалось всего 10 минут, но мы решили попробовать успеть сыграть еще раз. И снова я оказался Нечто! Снова заразил того серьезного игрока, о котором упоминал выше, а дальше карт заражения не было, но был огнемент. Поэтому его я сыграл на К.Ш., чтобы уменьшить количество мирных и побыстрее закончить игру. А дальше тот новичок снова напутал: сыграл карту пересадки, подсел ко мне, и дал огнемет в качестве обмена (изначально он хотел на меня его сыграть, но не учел, что две карты за ход разыгрывать нельзя). В ответ он получил карту заражения, а огнемет я тут же сыграл на последнего из оставшихся «мирных», и на этом игра закончилась.
А вернувшись домой, я до глубокой ночи играл все же в Open Trasnport Tycoon, где наконец-то получилось построить сеть железных дорог с высокой загруженностью.
В общем, получился отличный игровой день!
CodinGame: я в золотой лиге
Вот и все, конкурс Code a la Mode на CodinGame закончился. Мне удалось совершить качественный скачок! Впервые поднялся в золотую лигу и существенно улучшил результат как в абсолютных, так и в относительных показателях. Итог — 326 место из 1548. Кроме этого, впервые применил алгоритм поиска вширь, а не вглубь, для построения пути. Почему-то раньше мне он казался намного более сложным, хотя потом оказалось, что реализуется он элементарно на основе банального списка, работающего в режиме очереди, без всяких рекурсий (видимо, сказались стереотипы, оставшиеся со времен изучения Pascal и C, где нужно было заниматься реализацией списков самостоятельно). Кроме этого, реализовал один относительно новый для себя подход, который прежде в этих конкурсах не использовал: построение своего рода «виртуальной программы».
Что любопытно, в этом конкурсе я участвовал как-то лениво. Самый первый «жесткий» алгоритм сделал только на третий день. Как это ни странно, его вполне хватило, чтобы подняться в «бронзу» до 24 места. Впрочем, если бы я его адаптировал для последнего типа заказов (TARTS), которые появились в бронзовой лиге, то вышел бы и в серебро.
А потом до четверга не было вообще никаких продвижений. В четверг более-менее серьезно засел за написание более «умного» кода, но только в субботу его закончил, и потом еще весь вечер ушел на отладку. Но сначала результат разочаровал: 42 место в бронзе, хуже, чем у «жесткого». После нескольких доработок удалось повысить позиции до первой десятки, но дальше — никак. Потом добавил одно упрощение: вместо анализа того, что есть на столах, код просто запоминал, куда он сбрасывал незаконченное блюдо, а потом забирал его обратно. И после этого произошел качественный скачок. Когда я сделал submit кода, он еще на 50% игр вышел на первое место (обычно это случается на последних 80-90%), я перешел в серебряную лигу и там тоже сразу оказался достаточно высоко: в районе 40-ой позиции (точно не помню). После некоторых мелких доработок удалось подняться на второе место, но вот бота серебряной лиги победить не получалось. Тут возник сложный выбор: либо довести до ума ту часть кода, которая анализирует столы с блюдами, либо сначала поэкспериментировать с алгоримтмом выбора заказов. Я выбрал второе и после небольших доделок все же прорвался в золотую лигу!
Но вот там алгоритм быстро уперся в предел своих возможностей: примерно 200-ая позиция. Я стал пытаться сделать некоторые мелкие усовершенствования, но эффект был незначителен, так как не понимал, за счет чего другие игроки проявляют себя лучше, что нужно добавить в алгоритм. Потом выявил один баг с расчетом дистанций, но и это помогло не сильно.
Было еще несколько идей, что можно сделать: рекурсивный поиск лучшего пути при разном порядке сбора компонентов вместо «жадного» алгоритма, который хватал то, что было ближе всего в данный момент, довести до ума тот самый алгоритм анализа столов, а также исправить ситуацию, когда мой персонаж берет блюдо, а потом снова ставит его на стол, так как для второго компонента тоже нужны свободные руки, но голова уже не соображала от слова совсем, сказывалась и эмоциональная перегрузка от прорыва, и поздняя ночь, и просто усталость. Поэтому я так и не стал их реализовывать, а взял ту версию, которая показала лучшие результаты, добавил туда пару мелких правок и сделал финальный submit где-то в районе 3:30. И первый раз за все время участия в конкурсах не сидел до последнего, а лег спать как обычно.
Еще тогда же, вечером, пришла в голову мысль, какой вообще должна быть идеальная тактика: один персонаж работает только верхней линии, другой — только на нижней, а все передачи компонентов идут через центральный стол. В этом случае значительно сокращается время на пробег вверх/вниз. Но как реализовать такое в случае, если поведение второго игрока непредсказуемо, пока за пределами моих возможностей.
Тем не менее, конкурсом я очень доволен! Жаль только, что самые интересные идеи пришли в голову слишком поздно. В принципе, их можно было бы реализовать, когда появится multiplayer-версия, но, скорее всего, к тому времени опять снесет потоком жизни, и будет не до этого… Все-таки конкурс своей ограниченностью во времени создает гораздо большую мотивацию, чем просто решение задачи в режиме multiplayerа. Отличный пример того, о чем я писал некоторое время о планах и дефиците времени.
Что любопытно, в этом конкурсе я участвовал как-то лениво. Самый первый «жесткий» алгоритм сделал только на третий день. Как это ни странно, его вполне хватило, чтобы подняться в «бронзу» до 24 места. Впрочем, если бы я его адаптировал для последнего типа заказов (TARTS), которые появились в бронзовой лиге, то вышел бы и в серебро.
А потом до четверга не было вообще никаких продвижений. В четверг более-менее серьезно засел за написание более «умного» кода, но только в субботу его закончил, и потом еще весь вечер ушел на отладку. Но сначала результат разочаровал: 42 место в бронзе, хуже, чем у «жесткого». После нескольких доработок удалось повысить позиции до первой десятки, но дальше — никак. Потом добавил одно упрощение: вместо анализа того, что есть на столах, код просто запоминал, куда он сбрасывал незаконченное блюдо, а потом забирал его обратно. И после этого произошел качественный скачок. Когда я сделал submit кода, он еще на 50% игр вышел на первое место (обычно это случается на последних 80-90%), я перешел в серебряную лигу и там тоже сразу оказался достаточно высоко: в районе 40-ой позиции (точно не помню). После некоторых мелких доработок удалось подняться на второе место, но вот бота серебряной лиги победить не получалось. Тут возник сложный выбор: либо довести до ума ту часть кода, которая анализирует столы с блюдами, либо сначала поэкспериментировать с алгоримтмом выбора заказов. Я выбрал второе и после небольших доделок все же прорвался в золотую лигу!
Но вот там алгоритм быстро уперся в предел своих возможностей: примерно 200-ая позиция. Я стал пытаться сделать некоторые мелкие усовершенствования, но эффект был незначителен, так как не понимал, за счет чего другие игроки проявляют себя лучше, что нужно добавить в алгоритм. Потом выявил один баг с расчетом дистанций, но и это помогло не сильно.
Было еще несколько идей, что можно сделать: рекурсивный поиск лучшего пути при разном порядке сбора компонентов вместо «жадного» алгоритма, который хватал то, что было ближе всего в данный момент, довести до ума тот самый алгоритм анализа столов, а также исправить ситуацию, когда мой персонаж берет блюдо, а потом снова ставит его на стол, так как для второго компонента тоже нужны свободные руки, но голова уже не соображала от слова совсем, сказывалась и эмоциональная перегрузка от прорыва, и поздняя ночь, и просто усталость. Поэтому я так и не стал их реализовывать, а взял ту версию, которая показала лучшие результаты, добавил туда пару мелких правок и сделал финальный submit где-то в районе 3:30. И первый раз за все время участия в конкурсах не сидел до последнего, а лег спать как обычно.
Еще тогда же, вечером, пришла в голову мысль, какой вообще должна быть идеальная тактика: один персонаж работает только верхней линии, другой — только на нижней, а все передачи компонентов идут через центральный стол. В этом случае значительно сокращается время на пробег вверх/вниз. Но как реализовать такое в случае, если поведение второго игрока непредсказуемо, пока за пределами моих возможностей.
Тем не менее, конкурсом я очень доволен! Жаль только, что самые интересные идеи пришли в голову слишком поздно. В принципе, их можно было бы реализовать, когда появится multiplayer-версия, но, скорее всего, к тому времени опять снесет потоком жизни, и будет не до этого… Все-таки конкурс своей ограниченностью во времени создает гораздо большую мотивацию, чем просто решение задачи в режиме multiplayerа. Отличный пример того, о чем я писал некоторое время о планах и дефиците времени.
Прогулки и CodinGame
Опять не успеваю писать в блог. Во многом из-за конкурса, но и других причин тоже хватает. А произошло за эти дни немало интересного.
Во-первых, в среду S0m3Th1nG_AwFul! прислал потрясающую статью про старушку, которая живет практически тем образом жизни, который я пропагандирую: умеет довольствоваться очень малым количеством денег да и вообще всего материального, занимается бесплатной общественно-полезной деятельностью и при этом вполне довольна жизнью. Пожалуй, надо подобные истории собирать, чтобы показывать людям, что жить так — действительно реально.
В среду же я снова ездил на настолки. Но на этот раз впечатления остались противоречивые. Было гораздо более шумно чем обычно. Кроме того, в «Колонизацию» я сел играть с двумя людьми, которые матерились так, что нам даже администраторша заведения сделала замечание, пообещав, что если это не прекратится, то нас просто выгонят из клуба. Было весьма неприятно!
А играли в тот день в «Нечто» и в «Колонизацию» (и еще в CodeNames, но это без меня). В «Нечто» оба раза побеждали мирные (что, впрочем, и не удивительно при таком количестве игроков), но мой вклад в победу был оба раза незначителен. Во второй раз вообще получилось так: нечто был А.Ш., но за всю игру ему не пришла ни одна карта заражения (почему-то большая их часть шла мне).
В «Колонизации» первый раз я особо себя не показал, а вот во второй складывалась ситуация, когда вырвался в лидеры: было 9 победных очков из 10. 6 за города, 2 за самую длинную дорогу и еще одна карта развития с +1 очком в закрытом виде. Но увы, чтобы получить последнее очко, нужно было построить еще две дороги и поселение, а ресурсы для этого шли совершенно неподходящие: пшеница и камни. Глина за игру выпадала всего один раз, а дерево — очень неравномерно: то за один ход приходит 4 штуки, то долго нет. И тут один из игроков, который до этого был в отстающих, за один ход построил дорогу и поселение. В результате у него получилась дорога из 7 частей, он отобрал 2 очка за дорогу у меня, а потом еще вскрыл карту развития. И в результате за один ход с 6 очков переместился до 10, а меня отбросил до 7.
В четверг я проснулся по будильнику достаточно рано (в своем понимании) и собирался было воспользоваться отличной погодой и отправиться на прогулку на Воробьевы горы. Но с другой стороны, хотелось отложить, так как с одной стороны, слишком сильно не выспался, а с другой — нужно было писать код для CodinGame. В результате остановился на промежуточном варианте: решил отправиться на Терлецкие пруды, а по дороге еще зайти на почту и отправить документы, связанные с ИП-деятельностью. Но как всегда, прособирался, и пришел в парк тогда, когда уже начинало темнеть, что значительно уменьшило впечатления от прогулки.
А в пятницу мы с Tellой решили прогуляться в районе Китай-города. Она была там незадолго до этого и нашла немало интересных мест, и решила показать их мне. Сначала планировалось, что прогулка будет небольшой: час или полтора, а потом я отправлюсь домой и займусь доделкой программы для CodinGame. Но получилось как всегда все не так как ожидалось. Сначала нормально прогулялись, увидели несколько старых церквей, впервые побывали на легендарной Хитровке, потом вышли к Чистым Прудам и решили найти какое-нибудь кафе, где можно было бы засесть. Но пока шли, случился крайне неприятный для меня момент в разговоре, причем, как обычно, сразу она этого не заметила (вот, она, обратная сторона психософского квазиэроса). В результате Tella распереживалась до крайности, а я наоборот, пытался уйти в себя по максимуму, чтобы успокоиться, но не получалось. И потом мы еще долго сидели и обсуждали этот момент. Нельзя сказать, чтобы прямо так ругались, но получилась эмоциональная перегрузка.
В результате я и домой позже вернулся, чем рассчитывал, и совершенно не мог сосредоточиться на коде. И только в субботу вечером удалось заставить алгоритм работать. Но об этом — в следующем сообщении
Во-первых, в среду S0m3Th1nG_AwFul! прислал потрясающую статью про старушку, которая живет практически тем образом жизни, который я пропагандирую: умеет довольствоваться очень малым количеством денег да и вообще всего материального, занимается бесплатной общественно-полезной деятельностью и при этом вполне довольна жизнью. Пожалуй, надо подобные истории собирать, чтобы показывать людям, что жить так — действительно реально.
В среду же я снова ездил на настолки. Но на этот раз впечатления остались противоречивые. Было гораздо более шумно чем обычно. Кроме того, в «Колонизацию» я сел играть с двумя людьми, которые матерились так, что нам даже администраторша заведения сделала замечание, пообещав, что если это не прекратится, то нас просто выгонят из клуба. Было весьма неприятно!
А играли в тот день в «Нечто» и в «Колонизацию» (и еще в CodeNames, но это без меня). В «Нечто» оба раза побеждали мирные (что, впрочем, и не удивительно при таком количестве игроков), но мой вклад в победу был оба раза незначителен. Во второй раз вообще получилось так: нечто был А.Ш., но за всю игру ему не пришла ни одна карта заражения (почему-то большая их часть шла мне).
В «Колонизации» первый раз я особо себя не показал, а вот во второй складывалась ситуация, когда вырвался в лидеры: было 9 победных очков из 10. 6 за города, 2 за самую длинную дорогу и еще одна карта развития с +1 очком в закрытом виде. Но увы, чтобы получить последнее очко, нужно было построить еще две дороги и поселение, а ресурсы для этого шли совершенно неподходящие: пшеница и камни. Глина за игру выпадала всего один раз, а дерево — очень неравномерно: то за один ход приходит 4 штуки, то долго нет. И тут один из игроков, который до этого был в отстающих, за один ход построил дорогу и поселение. В результате у него получилась дорога из 7 частей, он отобрал 2 очка за дорогу у меня, а потом еще вскрыл карту развития. И в результате за один ход с 6 очков переместился до 10, а меня отбросил до 7.
В четверг я проснулся по будильнику достаточно рано (в своем понимании) и собирался было воспользоваться отличной погодой и отправиться на прогулку на Воробьевы горы. Но с другой стороны, хотелось отложить, так как с одной стороны, слишком сильно не выспался, а с другой — нужно было писать код для CodinGame. В результате остановился на промежуточном варианте: решил отправиться на Терлецкие пруды, а по дороге еще зайти на почту и отправить документы, связанные с ИП-деятельностью. Но как всегда, прособирался, и пришел в парк тогда, когда уже начинало темнеть, что значительно уменьшило впечатления от прогулки.
А в пятницу мы с Tellой решили прогуляться в районе Китай-города. Она была там незадолго до этого и нашла немало интересных мест, и решила показать их мне. Сначала планировалось, что прогулка будет небольшой: час или полтора, а потом я отправлюсь домой и займусь доделкой программы для CodinGame. Но получилось как всегда все не так как ожидалось. Сначала нормально прогулялись, увидели несколько старых церквей, впервые побывали на легендарной Хитровке, потом вышли к Чистым Прудам и решили найти какое-нибудь кафе, где можно было бы засесть. Но пока шли, случился крайне неприятный для меня момент в разговоре, причем, как обычно, сразу она этого не заметила (вот, она, обратная сторона психософского квазиэроса). В результате Tella распереживалась до крайности, а я наоборот, пытался уйти в себя по максимуму, чтобы успокоиться, но не получалось. И потом мы еще долго сидели и обсуждали этот момент. Нельзя сказать, чтобы прямо так ругались, но получилась эмоциональная перегрузка.
В результате я и домой позже вернулся, чем рассчитывал, и совершенно не мог сосредоточиться на коде. И только в субботу вечером удалось заставить алгоритм работать. Но об этом — в следующем сообщении
Страницы:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141