Был в Сети 24 янв. 2025 г., 04:35
Кратко о себе: 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 года.
Прогулка к устью Плотни
Наконец-то холода закончились, и появилась возможность выбраться на прогулку. На этот раз я решил отправиться к водоёму к югу от Буньково, а затем — к устью реки Плотня. Настроение было просто отличное: солнечный весенний день, совсем недавно появившиеся светло-зелёные листья на деревьях, и ощущение легкости и беззаботности. Ещё когда только подходил к реке, удивился, как много солнечных бликов видно сквозь деревья. Оказалось, что и Клязьма, и Плотня очень разлились из-за последних дождей, и значительная часть луга возле устья Плотни затоплена водой. А ещё там образовался небольшой островок, и кто-то положил доску, чтобы на него можно было перебраться. Я хотел было забраться туда, но доска оказалась слишком ненадёжной, и от этой идеи пришлось отказаться.
Новый конкурс на CodinGame
В четверг днём успел сделать ещё один небольшой шаг в плане поддержки IndieWeb — написал код для endpoint discovery.
А потом начался конкурс на CodinGame! Задача про засев леса меня очень порадовала! Как и ожидалось, в бронзовую лигу я поднялся в тот же вечер, буквально с двух commitов (точнее, на CodinGame правильнее называть их submitами), написав совершенно простенький алгоритм. А вот дальше немного замедлился. Попытался было написать алгоритм, играющий перебором, но при большой глубине поиска нарывался на таймаут, а при маленькой — оказался на 1700-ых местах из 4000.
Сегодня решил попробовать другой подход. Написал код с набором стратегий, где выбор между ними осуществляется по набору фиксированных правил. Сразу результат улучшился: сначала 1200-ое место, потом, после пары мелких правок, поднялся до 1000 позиции. Но всё равно код не самым оптимальным образом играет в самом начале, и продолжаю думать, что с этим делать. Но бота бронзовой лиги вроде обыгрывает без проблем, так что, скорее всего, в серебряную лигу тоже без проблем поднимусь.
А потом начался конкурс на CodinGame! Задача про засев леса меня очень порадовала! Как и ожидалось, в бронзовую лигу я поднялся в тот же вечер, буквально с двух commitов (точнее, на CodinGame правильнее называть их submitами), написав совершенно простенький алгоритм. А вот дальше немного замедлился. Попытался было написать алгоритм, играющий перебором, но при большой глубине поиска нарывался на таймаут, а при маленькой — оказался на 1700-ых местах из 4000.
Сегодня решил попробовать другой подход. Написал код с набором стратегий, где выбор между ними осуществляется по набору фиксированных правил. Сразу результат улучшился: сначала 1200-ое место, потом, после пары мелких правок, поднялся до 1000 позиции. Но всё равно код не самым оптимальным образом играет в самом начале, и продолжаю думать, что с этим делать. Но бота бронзовой лиги вроде обыгрывает без проблем, так что, скорее всего, в серебряную лигу тоже без проблем поднимусь.
Поездка к Карпятнику
Вчера заехал на дачу, и сегодня решил отправиться на велопрогулку на озеро Карпятник. У этого озера есть одна особенность: оно наиболее красиво именно в начале мая, когда вода прозрачна. Потом озеро зацветает, вода делается зелёной и мутной, что сильно портит впечатление. Поэтому я и решил отправиться туда именно сегодня.
С утра оказался перед выбором: либо ехать сразу, но на голодный желудок, отчего сильно уменьшается выносливость, либо всё же сначала поесть. Выбрал второе. Но пока собирался, пока доехал, погода начала меняться: большая часть неба закрылась облаками. Поэтому первая серия фотографий получилась какой-то мрачноватой. А озере было немноголюдно (что бывает не так уж часто), поэтому решил немного посидеть на берегу, посмотреть на воду. И тут мне повезло: буквально на пару минут тучи разошлись, выглянуло солнце, и я смог сделать несколько фотографий этого места именно так, как задумывал в самом начале (они выложены первыми).
С утра оказался перед выбором: либо ехать сразу, но на голодный желудок, отчего сильно уменьшается выносливость, либо всё же сначала поесть. Выбрал второе. Но пока собирался, пока доехал, погода начала меняться: большая часть неба закрылась облаками. Поэтому первая серия фотографий получилась какой-то мрачноватой. А озере было немноголюдно (что бывает не так уж часто), поэтому решил немного посидеть на берегу, посмотреть на воду. И тут мне повезло: буквально на пару минут тучи разошлись, выглянуло солнце, и я смог сделать несколько фотографий этого места именно так, как задумывал в самом начале (они выложены первыми).
Не совсем slow life
В последние дни вдруг стало хватать 7.5 часов сна. Не знаю, с чем это связано: то ли стал ложиться раньше, то ли уменьшил информационный поток, и поэтому меньше времени требуется на разгрузку мозга. Но даже несмотря на это, время всё равно девается непонятно куда. Вот, например, позавчера выключил компьютер в 23:40, но спать всё равно лёг только чуть раньше трёх часов. А за это время успел только поесть и собрать вещи для поездки на дачу. На следующий день встал в 10:40, а такси для поездки мы с отцом заказали в 13 ровно. А за эти два с небольшим часа успел только поесть, полить цветы и выбросить мусор. Не успел даже посидеть в медитации, как собирался изначально, для успокоения перед поездкой. Куда делось остальное время — загадка… Да и сегодня проснулся в 11:04, и всё, что сделал до 12 часов — это выпил чаю и посозерцал вид из окна.
Всё-таки slow life хороша тогда, когда каждый момент максимально осознан и прочувствован. Например, с некоторыми оговорками туда можно отнести сегодняшнее утреннее созерацание за чашкой чая. А когда время уходит непонятно куда, а сделано мало — это не столько slow life, сколько просто ерунда какая-то. Вопрос только в том, как понять, чем такие огромные потери времени вызваны.
Всё-таки slow life хороша тогда, когда каждый момент максимально осознан и прочувствован. Например, с некоторыми оговорками туда можно отнести сегодняшнее утреннее созерацание за чашкой чая. А когда время уходит непонятно куда, а сделано мало — это не столько slow life, сколько просто ерунда какая-то. Вопрос только в том, как понять, чем такие огромные потери времени вызваны.
Первый заезд на дачу в этом году
Сегодня заехали с отцом на дачу. Хотя изначально Яндекс обещал свободные дороги и всего полтора часа пути (причём от Пустой квартиры), пока ехали, внезапно сформировалась пробка, и поездка растянулась на два с лишним часа. Да ещё день был холодный, серый, мрачный. Даже желания смотреть в окно не было особо... В остальном же всё прошло на удивление буднично. Не было ни ощущения, что еду в какую-то новую жизнь, как это было в первые годы, ни радости «уфф, вырвались из обречённого города», как в прошлом году. Только когда добрался до места, стало казаться, будто отсутствовал здесь не год, а полжизни...
На даче, как обычно, год начался с изучением последствий зимы. Сначала выяснилось, что стала подтекать труба водопровода, ведущая в баню. А потом — водонагреватель в основном доме. Первое отец легко исправил, а со вторым пока остаются сложности.
В этом году я решил было сразу оставить ноутбук на первом этаже в надежде, что это поможет наладить режим дня: из-за холода буду раньше вылезать из-за него, и, соответственно, раньше ложиться спать. Но сейчас внизу слишком холодно даже днём, поэтому сегодня за ноутбук даже не садился (не считая того, что нашёл и ненадолго включил самый старый ноутбук, чтобы убедиться, что он ещё жив), а большую часть времени сидел либо с телефоном, либо с планшетом. Впрочем, именно за счёт этого и происходит устранение информационной перегрузки и связанной с ней потерей внутренней целостности — то, ради чего на самом деле я и езжу на дачу.
А сейчас предстоит первая ночь, самая холодная. Дальше будет проще: и дом прогреется, и температура на улице тоже будет выше.
На даче, как обычно, год начался с изучением последствий зимы. Сначала выяснилось, что стала подтекать труба водопровода, ведущая в баню. А потом — водонагреватель в основном доме. Первое отец легко исправил, а со вторым пока остаются сложности.
В этом году я решил было сразу оставить ноутбук на первом этаже в надежде, что это поможет наладить режим дня: из-за холода буду раньше вылезать из-за него, и, соответственно, раньше ложиться спать. Но сейчас внизу слишком холодно даже днём, поэтому сегодня за ноутбук даже не садился (не считая того, что нашёл и ненадолго включил самый старый ноутбук, чтобы убедиться, что он ещё жив), а большую часть времени сидел либо с телефоном, либо с планшетом. Впрочем, именно за счёт этого и происходит устранение информационной перегрузки и связанной с ней потерей внутренней целостности — то, ради чего на самом деле я и езжу на дачу.
А сейчас предстоит первая ночь, самая холодная. Дальше будет проще: и дом прогреется, и температура на улице тоже будет выше.
Весенние ручьи и долгая прогулка к Лебедянскому пруду
Давно собирался выбраться к Лебедянскому пруду, но всё откладывал. А сегодня была последняя возможность перед отъездом на дачу. Сначала думал, что из-за дождя не получится. Но во второй половине дня тучи разошлись, засветило солнце, и я всё же отправился в парк. И, надо сказать, не зря!
После дождя воздух был очень чистым и свежим, а все лесные ручьи, болота и канавы заполнены водой! Причём в отличие от ранней весны, когда лес ещё голый и почти одноцветный, сейчас эта вода очень красиво и гармонично сочетается с зеленью. Из-за этого вместо того, чтобы пойти напрямую к пруду, обошёл и сфотографировал несколько ручьев: Совиный, безымянный ручей, вытекающий из болота к юго-западу от Лебедянского пруда, и ещё два безымянных ручья недалеко от выхода в Южное Измайлово.
Оттуда поехал в Терлецкий парк. Там тоже сегодня много воды, а на одном из ручьёв кто-то попытался построить плотины (на последнем фото).
В общем, это одна из самых лучших прогулок за эту весну! К тому же ещё прошагал целых 10 тысяч шагов. Да и вообще, очень доволен, что этой весной обошёл почти все близкие от дома парки и водоемы.
А ещё эта запись станет первой попыткой писать сообщения в едином формате для личного блога и Instagram (пока что с ручным копированием, потом автоматизирую).
После дождя воздух был очень чистым и свежим, а все лесные ручьи, болота и канавы заполнены водой! Причём в отличие от ранней весны, когда лес ещё голый и почти одноцветный, сейчас эта вода очень красиво и гармонично сочетается с зеленью. Из-за этого вместо того, чтобы пойти напрямую к пруду, обошёл и сфотографировал несколько ручьев: Совиный, безымянный ручей, вытекающий из болота к юго-западу от Лебедянского пруда, и ещё два безымянных ручья недалеко от выхода в Южное Измайлово.
Оттуда поехал в Терлецкий парк. Там тоже сегодня много воды, а на одном из ручьёв кто-то попытался построить плотины (на последнем фото).
В общем, это одна из самых лучших прогулок за эту весну! К тому же ещё прошагал целых 10 тысяч шагов. Да и вообще, очень доволен, что этой весной обошёл почти все близкие от дома парки и водоемы.
А ещё эта запись станет первой попыткой писать сообщения в едином формате для личного блога и Instagram (пока что с ручным копированием, потом автоматизирую).
Сносит потоком жизни в сторону
Опять поток жизни сносит меня в сторону от IndieWeb. В четверг пришло письмо с CodinGame про очередной конкурс. Вернулся на сайт, зарегистрировался на конкурс, а заодно прошёл задачу недели. Увидел, что хотя откатился куда-то в район 2800-ого места в общем рейтинге из-за того, что давно не участвовал в Clash of Code, всё равно вхожу в ТОП 0.8%. Теперь испытываю двоякое чувство. С одной стороны, предвкушаю конкурс и хочу попробовать использовать те знания, которые приобрёл летом 2019 года. С другой — переживаю, что с 6 мая опять почти на десять дней выпаду из нормальной жизни. Впрочем, можно сделать иначе: выйти в серебряную лигу (обычно на это хватает двух дней), а дальше — забить.
В тот же четверг Tella внезапно вспомнила о нашем канале на Дзен и буквально за час набросала новую статью. Эх, удивляюсь, как люди умеют так быстро писать. У меня потом на редактирование и то времени ушло больше! Впрочем, большая его часть — на дополнение конкретикой. И в пятницу 12-ая статья была опубликована! И у нас появился 23-ий подписчик. Правда, мы всё дальше и дальше отступаем от изначально задуманного формата: рассказать какую-то историю, а потом уже дать объяснение, что там просиходит с точки зрения психологической составляющей.
Вчера всё же хотел вернуться к IndieWeb и написать код для endpoint discovery, чтобы потом реализовать клиентскую часть протокола WebMention, но так и не собрался. И вообще, весь день подтормаживал из-за того, что заставил себя встать раньше. Но зато исчезло ощущение слишком короткого дня. А сейчас собираюсь снова идти на настолки.
В тот же четверг Tella внезапно вспомнила о нашем канале на Дзен и буквально за час набросала новую статью. Эх, удивляюсь, как люди умеют так быстро писать. У меня потом на редактирование и то времени ушло больше! Впрочем, большая его часть — на дополнение конкретикой. И в пятницу 12-ая статья была опубликована! И у нас появился 23-ий подписчик. Правда, мы всё дальше и дальше отступаем от изначально задуманного формата: рассказать какую-то историю, а потом уже дать объяснение, что там просиходит с точки зрения психологической составляющей.
Вчера всё же хотел вернуться к IndieWeb и написать код для endpoint discovery, чтобы потом реализовать клиентскую часть протокола WebMention, но так и не собрался. И вообще, весь день подтормаживал из-за того, что заставил себя встать раньше. Но зато исчезло ощущение слишком короткого дня. А сейчас собираюсь снова идти на настолки.
Чего мне в жизни не хватает
Сегодня выбрался на небольшую прогулку по району, во время которой пришло два важных осознания. Первое — работоспособность снизилась из-за того, что «уехал» режим, и опять встаю слишком поздно. Нужно хотя бы в 11 вставать, а лучше в 10. Да, в этом случае утренние часы пролетают мимо в том плане, что не делаю ничего из того, что считаю важным. Но зато к 13 часам я уже заканчиваю с проверкой обстановке на сайтах, рынке и тому подобным. А сейчас я в это время только-только встаю. Да и качество сна всё же выше. Хотя ещё можно попробовать перейти на двухфазный сон: 3 часа сна вечером (скажем, с 21 до полуночи), потом ночь активной работы, так как после вечернего сна идёт мощный приступ бодрости, потом снова сон с 5 до 11 примерно. Но и в том, и в другом случае главная сложность — это своервеменно сказать себе «пора выключать компьютер и идти спать». Не знаю почему, но всё время не хочется отпускать прошедший день.
Второе — это то, что мне в жизни по-прежнему не хватает ответа на вопрос «Кто я», причём такого, который давал бы мне чувство собственной обоснованной значимости. Причём такого, в который с одной стороны, можно было бы вместить почти все основные направления моей деятельности, с другой — в который вписывались бы мои личностные ограничения.
Где-то до 2013 года у меня такой ответ был. Сначала, в школьно-студенческие годы — «талантливый мальчик, которому не повезло жить в эпоху перемен, где всё решают аспекты ЧС и БЭ, но который при этом остаётся собой и не предаёт свои идеалы». Потом, с 2004 года — «Web-разработчик, создатель форумного движка, который работает за идею и за то, чтобы сделать Интернет более комфортным для бедных (тех, у кого слабые компьютеры и медленный Интернет)». Потом — «владелец собственного соционического форума, который помогает людям понимать себя» (это уже 2006 год, эпоха Социоклуба). Затем — «автор пирамиды типологий, системы, с помощью которой можно навести в них порядок и разобраться, что к чему относится» (2008—2013 годы). А вот дальше начался период, где чёткого ответа не было. Хотя с тех пор перепробовал много разных видов деятельности, и в 2019 году даже был момент, когда казалось, что нашёл три подходящих пути, но почему-то сейчас опять возникло чувство, что ни один из них не даёт этого ощущения.
Второе — это то, что мне в жизни по-прежнему не хватает ответа на вопрос «Кто я», причём такого, который давал бы мне чувство собственной обоснованной значимости. Причём такого, в который с одной стороны, можно было бы вместить почти все основные направления моей деятельности, с другой — в который вписывались бы мои личностные ограничения.
Где-то до 2013 года у меня такой ответ был. Сначала, в школьно-студенческие годы — «талантливый мальчик, которому не повезло жить в эпоху перемен, где всё решают аспекты ЧС и БЭ, но который при этом остаётся собой и не предаёт свои идеалы». Потом, с 2004 года — «Web-разработчик, создатель форумного движка, который работает за идею и за то, чтобы сделать Интернет более комфортным для бедных (тех, у кого слабые компьютеры и медленный Интернет)». Потом — «владелец собственного соционического форума, который помогает людям понимать себя» (это уже 2006 год, эпоха Социоклуба). Затем — «автор пирамиды типологий, системы, с помощью которой можно навести в них порядок и разобраться, что к чему относится» (2008—2013 годы). А вот дальше начался период, где чёткого ответа не было. Хотя с тех пор перепробовал много разных видов деятельности, и в 2019 году даже был момент, когда казалось, что нашёл три подходящих пути, но почему-то сейчас опять возникло чувство, что ни один из них не даёт этого ощущения.
Ещё два противоречия
Осознал ещё два противоречия в своём мировоззрении.
Первое заключается в вопросе конкуренции. Я всегда считал её злом, которое лишает спокойствия и уверенности в будущем, а также ведёт к напрасной трате ресурсов (например, на яркую упаковку и рекламу для того, чтобы убедить покупателя выбрать именно ваш товар). С другой стороны, недавно подумалось: если бы я жил в условиях идеального социализма, где полностью запрещена конкуренция, а задачи для желающих поработать на благо общества распределяются централизованно, у меня не было бы возможности писать свой форумный движок! Вместо этого я получал бы задачи на доделку какого-нибудь условного phpBB или, ещё того хуже, Wordpress, именно для того, чтобы не создавать конкуренции. А если бы хотел что-то в них изменить существенно, пришлось бы убеждать в этом основателей проекта. В общем, вынужден признать, конкуренция — не есть зло само по себе. Более точным было бы утверждать, что злом является вынужденное участие в тех или иных её видах.
Второе противоречие — то, что с одной стороны, я мечтаю о мире, где каждый сможет быть собой. С другой — о наличии неких всеобщих стандартов «каким быть», общественной системы ценностей, в которой, в частности, осуждалось бы стремление к богатству, но поощрялась бы тяга к знаниям. А фраза в духе «если ты такой умный, почему такой бедный» делала бы сказавшего её нерукопожатным. Впрочем, это противоречие можно снять, если сделать в качестве идеологии «соответствуй своему типу личности и оценивай окружающих по их соответствию своему». И тогда путь высокие Воли и Физики из Гаммы бьются за богатство и/или достижения, а альфийцы с высокой Эмоцией — ищут возможность жить по настроению. Главное, чтобы друг друга оценивали с поправкой на типы личности.
Первое заключается в вопросе конкуренции. Я всегда считал её злом, которое лишает спокойствия и уверенности в будущем, а также ведёт к напрасной трате ресурсов (например, на яркую упаковку и рекламу для того, чтобы убедить покупателя выбрать именно ваш товар). С другой стороны, недавно подумалось: если бы я жил в условиях идеального социализма, где полностью запрещена конкуренция, а задачи для желающих поработать на благо общества распределяются централизованно, у меня не было бы возможности писать свой форумный движок! Вместо этого я получал бы задачи на доделку какого-нибудь условного phpBB или, ещё того хуже, Wordpress, именно для того, чтобы не создавать конкуренции. А если бы хотел что-то в них изменить существенно, пришлось бы убеждать в этом основателей проекта. В общем, вынужден признать, конкуренция — не есть зло само по себе. Более точным было бы утверждать, что злом является вынужденное участие в тех или иных её видах.
Второе противоречие — то, что с одной стороны, я мечтаю о мире, где каждый сможет быть собой. С другой — о наличии неких всеобщих стандартов «каким быть», общественной системы ценностей, в которой, в частности, осуждалось бы стремление к богатству, но поощрялась бы тяга к знаниям. А фраза в духе «если ты такой умный, почему такой бедный» делала бы сказавшего её нерукопожатным. Впрочем, это противоречие можно снять, если сделать в качестве идеологии «соответствуй своему типу личности и оценивай окружающих по их соответствию своему». И тогда путь высокие Воли и Физики из Гаммы бьются за богатство и/или достижения, а альфийцы с высокой Эмоцией — ищут возможность жить по настроению. Главное, чтобы друг друга оценивали с поправкой на типы личности.
Начал работу над фотогалереей для IntB
Никак не могу определиться, как же быть с OwnYourGram: то ли переделывать его так, чтобы были вызовы через API вместо парсинга, то ли просто сделать свой аналогичный сервис, никак с OYG не связанный, то ли искать способы сделать так, чтобы Instagram парсинг не блокировал. Поэтому в воскресенье решил взяться за другое — за модуль фотогалереи для сайта, сделать который хотел очень-очень давно, но всё откладывал. Там тоже всё идёт очень медленно и тяжело, как говорится, со скрипом. Хотя по серверной части уже почти всё готово, осталась, в основном, вёрстка и действие по выводу всех фотографий на одной странице.
Страницы:
- 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
- 142
- 143