Портрет 4X_Pro
Был в Сети 30 окт. 2024 г., 09:34
Мультиблог
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
Где-то с 20-х числе марта рынок начал расти, и к началу этой недели мои убытки сократились в два раза, а по облигациям и ETF FXIT и вовсе в плюс ушёл. Сначала я думал, что это просто отскок, который скоро прекратится и пойдём на второе дно. Но он всё не прекращался и не прекращался, что вызывало у меня недоумение: откуда, за счет чего растём, если вокруг всё так плохо. Стал даже думать, что оказался неправ, когда считал, что провал рынка затянется до лета и не стал срывать один из вкладов для покупки облигаций.
Наконец, вчера не выдержал и купил немного акций ФСК ЕЭС. Итог немного предсказуем: проснувшись сегодня, обнаружил, что рынок ощутимо просел. В частности, те акции, которые я брал по 0.178, сегодня стоили 0.171. Одно радует: наученный прежним опытом, я не стал закупаться на все деньги, которые были выделены для этого, а потратил примерно треть.

День «сноса потоком жизни»

4X_Pro
Вчерашний день был просто образцово-показательным в плане «сноса потоком жизни», когда я планировал делать одно, а в итоге занимался совсем другим. Встал рано в состоянии жесткого недосыпа. Голова соображала плохо, поэтому решил начать с небольшой тренировки на Клавогонках. И даже открыл сайт. Но параллельно в другой вкладке открыл главную страницу Яндекса, вспомнил о том, что мне для некоторых целей хорошо бы создать и идентифицировать Яндекс.Кошелек на втором аккаунте. Тут вдруг из памяти всплыло то, что когда-то я верифицировал ГосУслуги через один из банков, и возник вопрос, нельзя ли сделать такое для Яндекс.Денег. Как выяснилось, можно — через Сбербанк.Онлайн. Точнее, так: в Яндексе делается запрос  на идентификацию, после чего тот присылает запрос на перевод 10 рублей через сбербанковскую систему быстрых переводов по номеру телефона (не путать с межбанковской Системой Быстрых Платежей), после чего через несколько дней Яндекс.Деньги ставит статус, что кошелек подтвержден.
Но год назад я такие переводы отключил через чат техподдержки. Попытался было написать, чтобы включили обратно, но получил ответ бота, а потом — сообщение, что чат с поддержкой недоступен, звоните персональному менеджеру. Голосовые звонки, как известно, не мой путь, поэтому решил сделать иначе — попробовал то же самое сделать с планшета. Результат тот же самый. Решил подождать какое-то время, предполагая, что это какой-то сбой на сайте банка. Но, поскольку уже взял планшет, внимание переключилось на него — стал отвечать на сообщения в Telegram там, играть в Farmassone и т.д.
Потом, видя, что ситуация не решается, хотел написать по Email. Но и тут вылезла неприятность: единственный EMail с ФИО, который я указываю как контактный в банках, у меня на сервере Института, и его пару недель назад заблокировали. Причем до сих пор не знаю, то ли это результат того, что сам Институт ушел в удаленный режим, то ли заблокировали конкретно меня по каким-то причинам. Но в любом случае, пока ситуация не нормализуется, этот ящик мне недоступен. В общем, ситуация «повисла». Забегая вперед, скажу, что сегодня она решилась: я таки нашёл, где в настройках Сбера можно включить быстрые переводы самостоятельно: оказалось, там для этого есть очень маленькая и неприметная ссылка, которую я сначала принял за ссылку на условия обслуживания или что-то подобное.
Около полуночи, когда стало ясно, что день прошел мимо, а из-за недосыпа и плохо соображающей головы даже не имеет пытаться браться за что-то серьёзное, решил так: сейчас поиграю часик в Ultima IX, потом лягу спать пораньше, в надежде, что завтра и проснусь рано, и голова будет работать. Но получилось как всегда: внезапно пришло в голову что-то поискать в Интернете, наткнулся на тему с интересными и смешными жизненными историями на форуме guns.ru, и не мог оторваться от них до 2:30. И только потом сыграл в Ultima IX и в 4:30 лег спать. А до Клавогонок так за весь день и не добрался…

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

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 — нет. Обычные кавычки там используются для обозначения имени столбца или таблицы, строковые значения в них брать нельзя, обязательно должны быть апострофы. И теперь приходится исправлять просто огромное количество запросов, так как я везде использовал кавычки из соображений удобства. На данный момент удалось обеспечить работу только главной страницы и псевдостатического раздела. Интересно, с другими СУБД подобное не вылезет?

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

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