Портрет 4X_Pro
Был в Сети 9 нояб. 2024 г., 19:32
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Лог жизни

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


Еще о страхе перед выступлениями

4X_Pro
Пару дней назад осознал, откуда у меня берется торопливость и страх пауз при выступлениях/съемке на камеру. Вспомнил, что в 5—6 классах у меня нередко бывала такая ситуация: на уроке английского, когда учительница меня спрашивала что-то, я начинал в голове строить ответ, делал это достаточно медленно, и к тому моменту, когда достраивал и начинал открывать рот, чтобы сказать, она успевала решить, что я просто ничего не знаю, и спрашивала следующего. (Кстати, хороший пример различия восприятия рационалов/иррационалов по соционике, да и каталогов из КЛ — тоже.) А потом меня дома ругали за плохие оценки (тем более, что отец был просто помешан на важности двух предметов: английского и физики). И, по всей видимости, где-то в бессознательном отложилась установка «молчать нельзя, а то лишат слова вообще».

О программировании и личной неэффективности

4X_Pro
В последние дни как-то совершенно не хочется ничего писать в блог. Возможно, потому что особо не о чем, кроме того, что в последние дни снова стало возвращаться чувство гармонии с миром, включенности в жизнь, полноты Бытия.
В пятницу занимался изучением frameworkа Flask для Python. В отличие от большинства PHP-шных, он мне очень понравился. Фактически, там создается Web-сервер прямо в самом скрипте, и все соединения обслуживаются одним процессом, что позволяет использовать общую память (прадва, есть и обратная строна: любая утечка ресурсов тут же будет давать о себе знать). Очень удобно для тех случаев, когда нужны динамические скрипты, но при этом связка Apache+PHP является слишком тяжелой.
Framework оказался на удивление простым. Фактически, нужно написать несколько строчек кода инициализации + навесить декоратор на функцию-обработчик того или иного URL. Правда, я чуть было не сломал мозг в начале, не понимая, почему же код примера не работает. Оказалось, нужно еще было добавить app.run(), который почему-то во всех примерах отсутствует. (Хотя, возможно, дело в версиях.)
Правда, получилось как всегда: в то, как работать с frameworkом, я въехал быстро, но весь день откладывал и откладывал попытку попробовать сделать на его основе что-то свое. И первый скрипт с его использованием запустил только на следующий день, в субботу. Эх, а ведь когда-то были времена, когда я, узнав что-то новое, сразу же начинал пробовать это в действии! Интересно, как их вернуть? А не ждать непонятно чего, как сейчас…
Кстати, и с freelance-задачей, о которой я уже упоминал, ситуация та же самая: сегодня днем в голове сложилось четкое понимание, что и как нужно сделать, но вот никак не соберусь взять это и сделать.

Опять распыляю силы

4X_Pro
В последние дни опять такое чувство, что меня разрывает на куски между множеством всего, что я хотел бы сделать, но при этом ни одно из этих желаний не дотягивает до полноценного «хочу», ради которого можно было бы все бросить и заняться прямо сейчас. Плюс еще постоянно вылезают какие-то мелочи, которые я на самом деле делать совершенно не хочу, но надо, в основном, тот же freelance. И получается так: висит какое-нибудь «надо», я из-за него откладываю остальные дела, но из-за внутреннего протеста против планов заняться никак не могу до самого позднего вечера. И получается, что дело, на которое нужно минут 20—30, реально приводит к тому, что из-за него вникуда уходит целый день.
Сегодня в попытках хоть как-то избавиться от этого снова уехал за город (а еще из-за отключения горячей воды). И теперь снова думаю над вопросом, чем же заниматься в жизни, если учитывать следующее:
1) Я не умею легко и быстро, играючи, излагать свои мысли ни на бумаге, ни тем более устно, любой процесс написания (даже вот этого текста) для меня именно муки творчества.
2) У меня нет коммуникативных навыков (и по идейным причинам нет желания их приобретать), что накладывает довольно много ограничений.
3) Чтобы быть замеченным в условиях современного «мира наизнанку», нужно либо делать что-то совсем необычное, что вызывало бы удивление и желание об этом рассказать, либо заниматься целенаправленной раскруткой. Но раскрутка, во-первых, вызывает у меня глубокое внутреннее неприятие, во-вторых, создает необходимость коммерциализировать свою деятельность. Но коммерциализация сразу же повышает уровень ответственности за сделанное. А вот ответственность-то я брать на себя не хочу.
Впрочем, недавно произошло нечто, что можно считать указанием высших сил на то, что делать. На встрече по настольным играм я пересекся с давним знакомым С.Ш. и узнал, что он, оказывается, написал и издал небольшую книгу, причем тоже по саморазвитию. Он подарил мне один экземпляр. Увы, ничего особо прорывного я из его книги не узнал, она будет полезна, в основном, школьникам 8—9 классов, и то не всем, а только тем, кому ближе янская модальность жизни. И самое главное, он повторяет типичную ошибку нашего времени: подает янскую модальность жизни как единственно возможную.
Но сам факт того, что раз у него получилось (причем книга по объему раза в два меньше, чем я задумывал для своей), мотивирует меня пытаться тоже. Тем более, что на мой взгляд, есть немало тем, которые он либо не раскрыл в достаточной мере, либо написал слишком мало конкретики.

Настольные игры и мелкие неприятности

4X_Pro
Сегодня сходил на настолки, которые проводились на той же квартире, что и в январе. Изначально хотел было прийти к 15 часам, но, как водится, сначала проспал, потом прособирался, и до места доехал только в 17:15. Как только пришел, сразу же позвали играть в «Нечто». Сыграли несколько конов, но в этот раз почти все время побеждали мирные. Сам я Нечто был только один раз, причем в тот кон смог сделать всего один ход, остальное время были то пересадки, то смена направления, то выпадала паника. Впрочем, потом одной участнице вообще «повезло»: она была нечто, но за всю игру ход до нее не дошел. Отчасти с моей подачи: я сидел рядом с ней, и на своем ходу сделал смену направления движения. Еще дважды были моменты, когда подавляющее большинство было уверено, что в роли Нечто снова оказался я, но это было не так.
Потом еще сыграли в японский вариант Бэнга. Очень понравилось, хотя в первый кон я сразу выдал свою роль (а играл я ронином, который один против всех), в результате многие сыграли против меня. Второй раз играл за самураев, но там получилось так: ниндзя и и ронин объединились (плюс еще сидели еще очень удачно) и весьма эффективно сыграли против сегуна, устранением которого игра и закончилась.
В общем, очень сегодняшней игрой доволен, жалею только об одном: не поиграли в Кондотьеров и в обычный Бэнг (хотя в последнйи — была возможность).  Заигрались примерно до 0:25. Я собирался вернуться по МЦК, поэтому думал, что по времени не особо критично. И вот тут-то и начались неприятности. Я не поверил своей белой интуиции, которая требовала оторваться ото всех и идти на МЦК как можно быстрее, а пошел со всеми до метро. Но народ шел медленно, и в результате к МЦК добрался только в 0:46. Сотрудники у входа сказали мне, что подходит последний поезд в нужную мне сторону. Я бросился бежать, но там длинный переход, и когда я бежал по нему, увидел, что поезд уже стоит на станции. Я пытался успеть на него изо всех сил, но увы, не хватило где-то 20—25 секунд на то, чтобы спуститься вниз. Кто же знал, что МЦК закрывается раньше часа ночи!
Вообще, какой-то период постоянного опоздания последней минуты…
Было очень обидно и что не успел, и что напрасно потратил поездку на вход в МЦК. Но делать было нечего, пришлось идти обратно к метро, благо оно еще было открыто. Было ясно, что на свою линию я не успеваю никак, и придется ехать на ночном автобусе. Было два варианта: ехать до Лубянки, а оттуда идти пешком до Китай-Города, или же пытаться поймать последний поезд на пересадке Чистые Пруды — Сретенский Бульвар, а на автобус пересаживаться на Римской. Уже совсем было приготовился выйти на Чистых Прудах, но в последний момент передумал и поехал на Лубянку. Там вдруг понял, что не знаю, сколько по времени идти от нее до южного выхода из КГ (а автобусы уходят именно от него) и запаниковал по этому поводу. Но, как выяснилось, зря: до нужного места добежал  с запасом в 8 минут до отправления автобуса. Но домой добрался только в 2 часа ночи и в последний момент немного попал под дождь.

Испытание электросамоката

4X_Pro
Днем прошел еще задание №14 в КСИ. Но увы, на этот раз оно мне не понравилось совершенно. Простые и понятные вопросы, и в то же время какие-то совершенно неадекватные ответы: такое ощущение, что ни одного правильного нет в принципе. В общем, никакого удовольствия…
Сегодня DarLik уговорила меня покататься на электросамокатах. Идею эту она предлагала уже пару недель, но меня как-то не очень это интересовало, тем более для этого нужно было регистрироваться в приложении и загружать туда паспортные данные и скан паспорта, в отличие от велосипедов, где для проката достаточно просто зарегистрироваться на сайте и оплатить суточный абонемент.
Мы договорились встретиться в 18 часов, но получилось как всегда: и я немного прособирался, и она опоздала. Потом еще зашли в McDonalds, посидели какое-то время там. Обсудили предстоящий маршрут. Я предлагал ехать от Трубной по Бульварному кольцу и далее к Третьяковской, но в итоге решили наоборот: от Третьяковской к Трубной, а если не будем успевать, то доедем только до Чистых Прудов.
И когда мы уже собирались было отправиться на Третьяковскую, DarLik вдруг спросила меня, взял ли я с собой паспорт. Оказалось, что он необходим для получения самоката. Вот ведь идиотизм: я же загружал его при регистрации, почему нельзя вывести фото оттуда, и проверять по нему? Паспорта у меня, естественно, не было. Я хотел было забить на всю эту затею вообще, но DarLik уговорила быстро съездить домой, взять паспорт и поехать на Третьяковскую.
Пока мы все это проделали, было уже почти 21 час. На Третьяковской мы без особых проблем получили самокаты, но заняло это почти 10 минут. Совершив пару небольших кругов по площади близ входа в метро, мы отправились в путь.
В первый момент было довольно непросто привыкнуть к новому способу перемещения. Во-первых, самокаты достаточно тяжелые, во-вторых, с места они не стартуют, нужно сначала растолкаться, а уже потом переходить на электропривод. В третьих, на брусчатке ощутимо трясет, да и вообще неровности дороги отзываются очень и очень ощутимо. Но вот мы вырвались из толпы близ Третьяковской на более-менее свободные улицы, покрытые асфальтом. Тут ехать стало гораздо приятнее. Но сильно мешало то, что при пересечении улиц приходилось соскакивать, сводить самокат, а потом заново расталкиваться.
Более-менее комфортно ехать я приспособился только к тому моменту, когда мы пересекали реку по Большому Устьинскому мосту. На нем я впервые разогнался до довольно приличной скорости, но мешали какие-то металлические желоба, уложенные на нем в нескольких местах: на них очень ощутимо подбрасывало.
Дальше мы без особых проблем проехали мимо сквера Яузские ворота и выбрались на Бульварное кольцо. На нем ждала неприятная неожиданность: дорожка в середине бульвара была не асфальтовой, а гравийной. Ехать по ней было не очень приятно, поэтому приходилось ехать по узкой полосе плитки вдоль бордюра, постоянно рискуя задеть его либо ногой, либо колесом.
В общем, получить по-настоящему удовольствие от езды получилось только в самом конце, уже у Чистых прудов, где и дорога хорошая, и разгоняться я уже приучился. Но там было слишком многолюдно. До Трубной мы не поехали, так как я слишком опасался, что не успеем уложиться в оплаченный час. Но потом выяснилось, что времени у нас было с запасом, вполне могли бы и успеть… Но увы, я слишком переживаю в ситуациях, когда есть ограничения по времени.
Подводя итог, можно сказать следующее: электросамокат реально ускоряет перемещение по городу примерно в 2 раза: 3.5 км мы проехали за 37 минут, при этом еще сначала ехали медленно, плюс еще около памятника Расулу Гамзатову несколько минут постояли, изучая окружающие здания через Wikimapia. Но в то же время, поездка на электросамокате требует концентрации внимания на дороге, все остальное просто перестаешь замечать. Да и просто покататься — слишком дорого, а  для постоянных поездок (в частности, чтобы доезжать от дома до МЦК) выгоднее купить достаточно какой-нибудь достаточно простой.

Доделки и работа над сайтом

4X_Pro
После трех дней, проведенных наполовину вне дома настал момент, когда идти никуда не надо. Весь день сижу дома и понемногу разгребаю накопившиеся долги и недоделки. Но процесс идет довольно медленно, слишком много отвлекаюсь… Как всегда, делаю что угодно, кроме того, что должен по плану.
Зато занялся всерьез своим сайтом. Посмотрел ситуацию на нем через Google.Webmaster, обнаружил множество ошибок 404, возникших из-за переезда сайта. Часть дня потратил на их исправление, а также прописывание тегов для тех записей, для которых они исчезли. Еще узнал об одной мелкой ошибке IntB: я заголовок Content-Type выдавал как Content-Type: text/html; charset="utf-8", что, как выяснилось, неправильно: кавычек быть не должно. Причем узнал это от техподдержки сервиса pr-cy.ru, куда написал bug report, считая, что это их сервис как-то неправильно воспринимает мой сайт и ругается на кодировку.
Будем надеяться, Яндекс это оценит, а то заходы с него упали до минимума в последнее время.
Еще узнал, что оказывается, любой желающий может зарегистрироваться на Яндекс.Дзен и писать статьи для этого сервиса, получая большое количество читателей. Возникнет какая-нибудь интересная идея для статьи — попробую!

Возвращение в Город

4X_Pro
Сегодня вернулся в Город. Вчера представлял, как напишу сообщение с подведением итогов и описанием того, как еду домой и постепенно вижу все больше и больше признаков цивилизации, и как наконец появляется город, потом над головой неторопливо проплывает мост через МКАД, о том чувстве растерянности, которое возникает в толпе после долгой жизни практически в одиночестве. А еще о радостях возвращения к цивилизации: Интернету с маленьким pingом, хорошей воде из под крана и возможности помыться с комфортом. Но увы, все пошло не так…
Я решил встать рано, собраться не спеша и поехать на маршрутке, которая заходит в дальнюю часть деревни, расположенной недалеко от дачного поселка. Сначала все было нормально: проснулся по звонку будильника, вставал не спеша. Проверил обстановку в Интернете. Решил поесть чуть побольше, чем собирался изначально, так как времени было еще много (в какой-то момент даже хотел поехать поменять план и поехать через Ногинск).
Но я был бы не я, если бы не умудрился прособираться. И обнаружил, что уже крайнее время выхода (12:25), а я еще не переоделся и не закрыл дом. Занервничал, и начал делать ошибки: сначала сумку на втором этаже забыл, то замок от калитки на крыльце. В итоге набрал ещё пару минут опоздания. От поселка до деревни я шел максимально быстрым шагом, кое-где даже бежал. Но увы, все было напрасно. И именно этих двух потерянных минут мне не хватило, чтобы успеть на ту маршрутку, на которую хотел. Я даже видел, как она отъезжает, но ничего не мог сделать…
Дальше — хуже. Следующая электричка была через 10 минут, и было непонятно, успею ли я на нее на следующем автобусе. По закону мировой подлости, это была не маршрутка, а именно большой автобус, который едет медленно. В итоге и на следующую электричку я тоже не успел. А еще пока ждал автобуса, чуть было не потерял чехол с банковскими картами и «Тройкой» и «Стрелкой» (в том числе и картой, которая используется для ИП-счета, перевыпуск которой обошелся бы в большую сумму). Стал готовиться к посадке в автобус, хотел достать «Стрелку», иобнаружил, что его в кармане нет. Думал уже возвращаться тем же же путем, что и шел от поселка (а путь там не близкий), но к счастью, в последний момент огляделся и обнаружил, что чехол выпал уже на остановке.
На вторую электричку я тоже не успел. К счастью, еще через 14 минут шла следующая, но она — одна из самых медленных, что есть в расписании из-за 12-минутной стоянки во Фрязево. Но выбирать не приходилось. Впрочем, во время стоянки я занялся тем, что описывал произошедшее в своем закрытом чате.
Дальше вроде все наладилось, если не считать, что в дороге то ли от переживаний, то ли от бега по жаре заболела голова. Но настроение было испорчено, и весь остаток дня прошел мимо, я ничего не сделал вообще, только сидел в Интернете, «догоняя жизнь».
Но все же некоторые итоги я все же подведу: сделал очень многое, но количество задуманного, но не сделанного еще больше. И делать что-то получается только тогда, когда загорелся идеей и сразу же сел ее реализовывать. А любые планы приводят к тому, что делаю что угодно, кроме того, что написано в этом плане. А еще было немало прогулок и впечатлений! И если обычно я уезжал с чувством сожаления, что уезжать приходится, а не успел сходить туда-то, то теперь уезжал с чувством вполне завршенного периода жизни.
Еще этот заезд стал самым длинным моим отсутствием дома за всю более-менее сознательную жизнь (по крайней мере, с 1992 года точно).

Генератор цепей Маркова и ночные кошмары

4X_Pro
Вчера вечером с подачи сэра Мика решил написать генератор цепей Маркова. Получилось как всегда: базовые функции сделал быстро, а потом засиделся до четырех часов ночи, отлаживая второстепенные детали, в частности, обработку начала и конца предложений. Плюс еще писал на Python, который все же знаю хуже PHP и JavaScript, поэтому в некоторых вещах приходилось доразбираться на ходу. Например, очень удивился, что всякие map, filter, reduce там сделаны как функции, а не как методы массива (а точнее, объектов типа list), как в JavaScript. Впрочем, в PHP это тоже функции, но там это воспринимается нормально, так как массивы вообще не имеют методов. А вообще, по-хорошему, следовало бы попробовать написать его на Kotlin. Но как-то не сложилось.
Сейчас обучил этот генератор на своем файле черновиков для блога, и вот один из забавных результатов:
Вчера лег спать. Встал и подъемы. Избыток информации. Добавить обработчик ситуаций когда я за то ли вы никак не определена.знакомиться в гармонии. Я не так что в жизни за очередные мелкие детали и подставлять в тесно взаимосвязаны между двумя ритмами. Но штрафы будут.

Правда, непонятно, как быть с запятыми, двоеточиями и другими смысло-зависимыми знаками препинания. Впрочем, можно попробовать в качестве элементов для цепей брать не отдельные слова, а куски предложений между этими знаками. (Яндекс.Весна, скорее всего, работает именно так.)
Теперь возникла мысль обучить генератор на текстах мятежников и сделать ботов, которые будут генерировать на Tipiruem.Ru сообщения от их имени!
А ночью мне опять приснился кошмар на тему «учусь в Институте, семестр подходит к концу, а я на куче предметов вообще даже не появлялся». Причем если обычно в таких кошмарах это бывает один-два предмета, то в этот раз было по всем. Правда, до конца семестра оставалось еще две недели, поэтому были какие-то шансы что-то сделать. И все время сна я лихорадочно прикидывал, что и в каком порядке делать… Интересно, почему мне эти кошмары снятся регулярно, хотя в реальности таких ситуаций просто не было?

Нелегкое это дело — писательство

4X_Pro
Снова взялся за написание книги. Дошел до пятой страницы первой главы, дальше дело пока заглохло. Зато понял многое о самом процессе написания. Во-первых, нашел удобный для себя способ писать: сначала на бумаге, а потом вместо того, чтобы перепечатывать, надиктовывать в Google Docs с помощью планшета или мобильника. Во-вторых, понял, что оптимальное время для написания — это вечер или даже ночь. (В идеале нужно вернуться к тому, чтобы где-то в 21 час выключать компьютер и оставшуюся часть суток тратить то, чтобы писать.) А вот надиктовывать и редактировать лучше утром. И в-третьих, все больше и больше осознаю, что процесс написания похож на путешествие без карты и компаса: хотя в целом понятно, что ждет впереди,но нельзя заранее сказать, когда и в каком порядке оно будет появляться. В частности, сейчас получается так, что в первой главе я поменял местами два ключевых момента, и понял, что вторую надо переставить местами с третьей и четвертой.
Еще начинаю немного загоняться на тему того, не будет ли то, что получится, очередной вариацией на тему «человек из Беверли-Хиллс советует работяге из Хабаровска выйти из зоны комфорта». Впрочем, я выйти из зоны комфорта никому советовать не собираюсь, скорее наоборот, пишу об обратном, как построить жизнь так, чтобы этого просто не требовалось. Но все равно, вопрос в том, окажется ли мой опыт полезен другим людям…

Интернет становится дальше

4X_Pro
Уже не раз писал о том, что при жизни за городом Интернет становится как бы дальше. Все, связанное с ним, уходит куда-то в фон, оказывается вне сферы внимания. В частности, так дело обстоит с доработкой IntB и дописыванием тех сообщений, которые когда-то намечал для других разделов этого мультиблога. И вообще много времени провожу в состоянии созерцания и ухода в себя, появляется больше сосредоточенности. Правда, иногда возникает «портальный эффект»: сижу в оффлайне и возникает мысль, что надо бы уточнить ту или иную информацию в Интернете, но как только туда выхожу, внимание расфокусируется, и забываю, за чем именно вышел.
Жизнь в таких условиях дает возможность вспомнить то, что я когда-то начинал делать, но потом забросил, потому что снесло потоком жизни. В частности, дочитал книгу Р. Флориды «Креативный класс». Книга вызвала противоречивые впечатления: многое из нее для условий России просто не актуально. Зато из этой книги получил подтврждение двум своим наблюдениям. Во-первых, то, что успех (терпеть не могу это слово, но другое тут никак не подходит) на копировании чужого без креативности, привнесения каких-то своих новых идей маловероятен. Во-вторых, то, что активной генерации новых идей способствует разнообразие стимулов в окружающей среде. (Я в свое время описывал это как преобразование ЧЭ в ЧИ.) Ну и еще книга убедила меня в значимости места. Теперь вот думаю, какие идеи оттуда применимы и к Сетевым сообществам…
Сейчас же взялся за чтение огромного мануала по низкоуровневому программированию процессоров Intel, а также изучению исходного кода проекта FreeDOS-32. Все-таки интерес к подобным темам у меня не исчезает, и возвращется каждый раз, когда меня перестает сносить потоком новой информации из Сети.
Попытался наладить режим дня. Встал несколько раз подряд рано утром. Понял, что на самом деле мне нужны не постоянные ранние подъемы (все равно утром делать ничего не хочется), а скорее гибкость, возможность без особых усилий встать рано, если это потребуется для каких-то целей, например, поездок или прогулок. Так что имеет смысл вставать рано не чаще одного-двух раз в неделю для своего рода тренировок.
Совершил пару ночных прогулок. И в ходе второй из них смог за один день понаблюдать целых три планеты Солнечной системы: Венеру, Юпитер и Сатурн. Точнее, первые две видел еще до этой прогулки (они яркие и не заметить их сложно), а вот Сатурн удалось рассмотреть впервые, и только за счет того, что вел наблдение с высокого открытого места, откуда он был виден как маленькая звездочка над лесом над горизонтом.
Еще удивительно, насколько при жизни на природе настроение оказывается зависимо от погоды. Пока она была отличной, настроение тоже было все время на подъеме. А сегодня вдруг резко похолодало, и сразу же и настроение стало более нейтральным.

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

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