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

Лог жизни

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


Мой темпористический конфликт Прошлого и Будущего

4X_Pro
В ночь с четверга на пятницу много размышлял по поводу темпористического конфликта Прошлого и Будущего (я все же остановился на версии ПВБН). С одной стороны, первое Прошлое хочет жить в иньской модальности, без усилий и напрягов, просто собирая положительные эмоции, впечатления и интересный опыт. При этом куда двигаться — совершенно неважно. Но важно фиксировать этот опыт (хотя бы в этом блоге, стене ВК или записях Instagram). С другой стороны, третьему Будущему для того, чтобы было чувство того, что жизнь идёт не зря, что в ней есть какой-то прогресс: улучшение тех или иных показателей, продвижение по какой-то шкале, получение какого-то формального признания. Но для этого движение должно быть прямолинейным, а не хаотичным. А это требует уже не иньской модальности, а янской, которая для меня неприемлема по идеологическим соображениям. Причем Будущее хорохорится и строит планы «вот сейчас избавлюсь от всего лишнего и заставлю себя работать и быстро идти куда надо», которые я раньше часто озвучивал в блоге. А Прошлое, за счет того, что оно стоит на более сильной первой позиции, просто молча берет и делает по-своему, сворачивая меня туда, где с его точки зрения в данный момент интереснее. Исключением являются периоды, когда по каким-то причинам мне не попадается того, что вызывало бы интерес у Прошлого. В частности, так было в 2003—2005 годах или же сейчас, в момент самоизоляции. В этом случае Прошлое не вмешивается и позволяет Будущему на какой-то момент получить управление. А еще, похоже, Прошлое смотрит с позиции 6+7 уровней ТУАИ, а Будущее — с позиции 2+3.
Что интересно, этот конфликт я осознавал очень давно, в блоге писал о нем с 2007 года, но только сейчас понял, что он связан именно с проявлениями темпористического типа. Но основной вопрос остаётся открытым: как же примирить Прошлое и Будущее? Как получать ощущение движения вперед, живя в иньской модальности?

Переживания по поводу ВК и избытка сообщений

4X_Pro
В среду и четверг опять стал переживать по поводу того, что слишком уж много времени уходит на переписки ВК. Из-за этого вечером четверга даже поругался с Tellой и вообще хотел было удалиться из ВК. Но есть причины, которые сделать это не давали: в первую очередь, необходимость приглядывать за группами по соционике и группой IntB. Да? как это не прискорбно, всё же приходится признать: стена ВК всё же более эффективный способ оповещения о том, что происходит у меня в жизни, чем мой личный сайт, куда даже из тех, кто меня знает хорошо, доходят (тем более, регулярно) очень немногие. После бессонной ночи пришло другое решение: наглухо закрыть личные сообщения, которые и являются основным пожирателем времени, а также источником негатива по поводу того, что туда часто ломятся с вопросами, которые следовало бы задавать в группах или на форумах. В итоге так и сделал, а также повыходил из большинства чатов, кроме настолочных и личного. Потом еще много размышлял о конфликте темпористического Прошлого и Будущего, о чем будет отдельное сообщение.
В пятницу я проснулся уже в совсем другом эмоциональном состоянии. Какое-то время наслаждался полной тишиной (в смысле, отсутствием сообщений). Потом на связь вышла Tella через SMS, а затем Telegram. Мы помирились.
Затем поиграл в Farmassone, побегал на дорожке, и занялся тем, что откладывал почти всю предыдущую неделю: прошёл курс по Git на HexLet.io. Увы, на курсе даются только самые основы, так что я просто немного упорядочил то, что уже знал. Но всё равно, приятно получить то самое ощущение завершения и продвижения вперед, которое нужно Будущему. Потом хотел было еще пройти серию курсов по Node.Js, но увы, оказалось, что большая их часть доступна только в платном режиме. Так и пришлось бросить… Конечно, можно изучить всё самому по официальной документации, но там не будет самого главного — того самого индикатора прогресса, который мотивирует Будущее.
Сегодня поставил антирекорд сна: проснулся в 17 часов, проспав чуть меньше полусуток. Но зато с совершенно иным мировосприятием: теперь все происходившее в предыдущие дни, кажется каким-то малозначимым и не стоящим таких переживаний.

Есть PostgreSQL в IntB!

4X_Pro
В ночь со вторника на среду всё же собрался и доделал поддержку PostgeSQL в IntB. Со скрипом и скрежетом, но всё-таки теперь IntB работает на Postgres! Да и с поддержкой SQLite теперь, по идее, будет проще. Да и вообще, PostgreSQL мне всё больше нравится...
Единственная проблема, которую осталось решить — это как автоматизировать преобразование начального дампа, которым создается структура базы на этапе установки. В свое время писал про модуль Sqlt для Perl, который вроде бы умеет это делать, но, как выяснилось, очень криво. Во-первых, удаляет из дампа все INSERT-запросы, и приходится возвращать их вручную. Но это можно решить выносом их в отдельный файл, который будет общим для всех СУБД.  Ещё есть мысль делать дамп в формат XML, и написать скрипт, который будет сравнивать структуру в дампе и реальной базе, и приводить в соответствие. Но это создаст дополнительное требование к хостингу: наличие SimpleXML, что не есть хорошо...
Ещё снова наткнулся на статью о Svelte. Возникла мысль попробовать сделать серию видеоуроков, транслируя только запись экрана. В этом случае я могу и текст не рассказывать по памяти, а читать по планшету, и свой дом не показывать на видео.
Ещё с подачи Ар.В. попробовал новую игру — Farmassone — чуть-чуть переделанную версию Каркассона. И, надо сказать, очень даже понравилось!

Опять увяз в болоте жизни

4X_Pro
В субботу сделал еще один шаг вперед — описал свой алгоритм расчета социального доверия. И на этом, видимо, выдохся: с воскресенья почти на всех направлениях жизни началось застревание. Не помогло даже то, что решил, что в мессенджеры теперь захожу только с мобильных устройств. И в Ultima IX наглухо застрял на одном из подземелий, и не знаю, как его пройти.
Плюс еще опять всплыли задачи по freelance, от которых возникает чувство жизненного болота, вязкости: пытаюсь их столкнуть, но всё никак — возвращаются и возвращаются.
Не знаю, что делать с CodinGame. До окончания конкурса там осталось где-то около 10 дней, а я даже не начинал. И теперь вопрос стоит так: либо бросать всё, и попытаться за оставшиеся дни выйти хотя бы в серебряную лигу, либо наоборот, понадеяться, что тех, кто ни разу не делал submit code, в конце просто удалят из списка участников конкурса вообще.
Вчера еще обнаружил, что на ноутбуке не работает встроенная клавиатура (большую часть времени пишу с внешней клавиатуры, и только вчера попытался пересесть с ноутбуком на диван, где это и обнаружилось). Стал разбираться, и обнаружил, что при настройке ядра Linux выключил поддержку AT keyboard, так как думал, что встроенная тоже подключена через USB. Оказалось, что нет, — она работает как PS/2. Пришлось еще раз пересобрать ядро.
С режимом творится непонятно что: почти перешел на полифазный сон. На пару часов засыпаю около полуночи (и да, в это время качество сна гораздо лучше), потом сижу всю ночь, пытаюсь лечь спать утром, но не получается из-за слишком яркого солнечного света, и засыпаю только ближе к середине дня. Возможно, это и сказывается плохо на производительности, но зато даёт возможность видеть раннее утро, когда мир воспринимается совсем иначе.
И опять болтаюсь в полузаболевшем состоянии: то чихаю, то насморк. Видимо, простыл в воскресенье, когда лег спать с открытым окном. А еще тогда же заснул в неудачной позе, и потом два дня болела шея (да и сейчас даёт о себе знать иногда).

Прекрасный рассвет и день отдыха

4X_Pro
Вчера ненадолго заснул около полуночи, после чего случился приступ бессонницы. Часов до 6 занимался переводом IntB на PostgreSQL. В итоге удалось вывести главную страницу и еще несколько служебных, но затем застрял на получении last_insert_id (уже сегодня выяснилось, это делается через SELECT lastval(), а не через pg_last_oid, как я пытался изначально).
Потом попытался лечь спать, но заснуть не мог совершенно. Поворочавшись где-то час, решил встать. Раздвинул шторы на окнах и увидел, что за окном потрясающее зимнее утро! Свет заполнил всю комнату, даже те части, куда не достаёт обычно, и сразу всё показалось совсем иным, чем обычно. Пришло какое-то внутреннее спокойствие, и ощущение, что в итоге всё будет хорошо. Давно такого не было…
Потом решил оживить свою ленту в Instagram и снял через окно два каких-то травянистых растения, которые успели прорасти под окнами, но теперь, с временным возвращением зимы, оказались красиво засыпаны снегом.
А еще устроил себе день полуоффлайна: почти не заходил ВК, да и Telegram держал выключенным. Перепрошёл игру Rockman 4 полностью, и как всегда это вернуло мне ощущение спокойствия и внутренней гармонии, побегал на дорожке, почитал книгу. В общем, вспомнилась старая шутка про то, в каких случаях возникают положительные эмоции.
Вечером снова занялся доделками IntB. И есть очередное продвижение: удалось зарегистрировать пользователя, зайти в админку и создать раздел. Так что еще немного, и IntB будет полноценно работать на Postgres!

Долой мессенджеры, да здравствуют EMail и форумы!

4X_Pro
Вылезла новая неприятность, совершенно неожиданная. Людям делать нечего, писать в мессенджерах стали гораздо больше, и я стал уставать уже от этого. Точнее, от постоянных переключений между потоком сообщений, на которые мне нечего ответить кроме «ясно», и основными задачами. Причем только начинает казаться «ну всё, затишье», тут же приходит что-то новое. Ненавижу синхронные средства связи! Долой мессенджеры, да здравствуют EMail и форумы! (И надо бы себе устроить пару дней если уж не полного оффлайна, то хотя бы отдыха от ВК.)
А еще обнаружил, что в PostgreSQL нет функции IF. Равно, впрочем, как и в SQLite. И теперь придется еще в IntB запросы и от нее чистить, а не только от кавычек.

Восьмой день дома

4X_Pro
Восьмой день дома (если не считать вынос мусора). Вчера внезапно пошёл снег, и теперь за окнами самая настоящая зима. Правда, если верить прогнозам, продлится недолго.
Вчера обсуждал с Kitsune то, что из-за кризиса вряд ли получится в этом году купить новый компьютер, так как покупать я его хотел из средств, полученных в качестве прибыли от акций. В итоге пришли к другому варианту: сделать апгрейд основного ноутбука, добавив оперативки и купив SSD большей емкости. Мне эта мысль понравилась, но потом вспомнил, что ноутбук у меня двухдисковый и SSD имеет очень редкий форм-фактор mSATA half size. В России сейчас такие, да еще и достаточной емкости, просто не продаются.
Теперь вот не знаю, что делать. То ли заказывать с AliExpress (там такое нашлось очень легко), но если оно и дойдёт в нынешних условиях, то только в мае. То ли купить SSD размером 1 Тб и поставить его вместо обычного жесткого диска, и вынести туда Linux. А потом, когда всё-таки куплю новый компьютер, переставить его туда. Но с другой стороны, в новый компьютер я хотел ставить вообще NVMe… В общем, не знаю, что делать.
Еще написал провокационное сообщение у себя на стене ВК про то, что сбылись мои мечты лицейских времен (ну и не упустил возможность негативно отозваться о самом лицее). Но увы, реакция пока вялая: 2 лайка, 0 комментариев.
В остальном же остаётся моя вечная проблема: трачу время совершенно неэффективно. Ни курс по машинному обучению не могу дослушать, ни книжки дочитать. И при этом не понимаю, куда это время девается…

Продолжаю работу над IntB

4X_Pro
Весь день работаю над Intellect Board. Решил добавить в него поддержку PostgreSQL. На первый взгляд, задача казалась простой: унаследовать от Database класс, необходимый для работы с БД, сконвертировать файл с созданием структуры базы и внести нужные изменения в install.php. С PostgreSQL я дела прежде почти не имел, поэтому вчера какое-то время ушло на сопоставление функций из mysqli и pgsql, установку расширения, восстановление пароля от хостинга ElephantSQL, где дают бесплатную базу, переустановку DBeaver (как выяснилось, я так его и не установил после переустановки OS) и т.п.
Но увы, оказалось, что MySQL и PostgreSQL очень по-разному работают с кавычками. В MySQL обычные кавычки и апострофы взаимозаменяемы, а в Postgres — нет. Обычные кавычки там используются для обозначения имени столбца или таблицы, строковые значения в них брать нельзя, обязательно должны быть апострофы. И теперь приходится исправлять просто огромное количество запросов, так как я везде использовал кавычки из соображений удобства. На данный момент удалось обеспечить работу только главной страницы и псевдостатического раздела. Интересно, с другими СУБД подобное не вылезет?

Пятый день дома

4X_Pro
Наконец-то несколько дней просидел дома безвылазно. Сегодня вышел ненадолго выкинуть мусор. Удивился количеству людей на улице: куча детей на детской площадке, подростков на велосипедах. Только машин вроде меньше, чем обычно. В общем, совершенно нет ощущения зараженного города. Хотя еще буквально за час до выхода думал о том, что всего неделю назад я был настолько безбашенным, что даже выбрался на настолки. (Кстати, Э.Х. сегодня в чате написал, что кто-то из наших все-таки заразился и отболел, правда, неизвестно, был ли он в субботу.)
Если раньше казалось, что субъективное время идет в разы медленнее календарного, то теперь, скорее наоборот. Кажется, что «день большой закупки» (21 февраля), который я условно считаю последним днем нормальной жизни, был когда-то давным-давно, чуть ли не в другой жизни. А прошло совсем немного больше месяца.
В остальном же всё идет как обычно. Вчера опять долго не мог определиться, за что взяться: то ли за IntB, то ли за бота для CodinGame, то ли всё же написать заметку о животном начале. Потом на связь вышел Xialtal, спросил, как двигается дело с IntB, да и еще один пользователь хорошо отозвался на форуме. Это и решило вопрос: в итоге взялся за IntB и доделал еще один из пунктов плана. И сегодня планирую заняться тем, что доделать в IntB поддержку PostgreSQL и PDO.
Также начал было нормализовывать режим дня, но вчера сорвался. Хотел было выключить компьютер в 3:20 и пойти спать, но в последний момент решил почитать рассылку ЖЖ, и засиделся до 4:15. А пока собрался и улегся, снова было почти 5 часов.

Рокетбанк: первая жертва кризиса

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

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

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