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

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


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

t.me/4x_pro

Лог жизни

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


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

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 для компенсации покупки. (Вот почему кэшбек в конце месяца — лучше.) Но увы, такова жизнь. Я не тот человек, который может себе позволить такую экономически необоснованную трату.

Неэффективная жизнь и мой тип по темпористике

4X_Pro
Неделя проходит совершенно бестолково. В понедельник Tella вытащила на прогулку. Спускаться в метро я отказался категорически, поэтому решили отправиться в Измайловский парк. Когда выходил из дома казалось, что за окном отличный весенний день. Но очень скоро выяснилось, что это только лишь видимость: ветер на улице дул просто ледяной. Да еще и шли мы очень медленно. Я показал Tellе Серебрянку и Просянскую плотину, потом мы прошли парк насквозь и вышли к Измайловской. После чего я вспомнил шутку из Arcanumа (точнее, в самой игре этого нет, шутка с одного форума по нему): «вы обходите метро стороной — всё равно магов туда не пускают» и отправился назад.
Обратно шел на максимальной скорости, что позволило хоть чуть-чуть согреться, но всё равно не помогло: домой пришел сильно замерзший, и весь вторник меня температурило. А еще узнал, что одновременно заболела и DarLik. В какой-то момент даже запаниковал из-за этого, решив, что мы с ней заразились коронавирусом, когда ездили на «Остров мечты». Но вроде обошлось. В среду проспал до очень позднего времени, но чувствовал себя почти здоровым. Только под вечер вернулась боль в горле, которая остается и сегодня.
Еще попытался было принять участие в новом соревновании на CodinGame, но голова не соображала совершенно. В результате только прочитал условие, продумал, что как вообще можно играть в такое, но так и не написал ни строчки кода.
Вчера тоже день прошел бестолково. Просто не понимаю, куда делось время (хотя еще сказался поздний подъем). Единственное, что за день было позитивного — помог Kitsune решить вопрос с сервером (у них админ учудил — хотел для контроллера домена в небольшую контору на 15—20 компов взять навороченный сервер ценой свыше 400 тыс.) и еще немного продвинулся в Ultima IX.
Также узнал об очередной упущенной возможности: пока я думал, что делать, серебро уже ушло со своих минимумов и подорожало примерно до $14.5 за унцию. Еще раз убедился: там, где все решает скорость принятия решения, я всегда буду в числе проигравших…
Впрочем, не это в жизни главное. Это просто лишний раз напоминает, что заниматься нужно тем, что важно в долгосрочной перспективе, а не сиюминутной. Но и с этим тоже как-то не очень. В последнее время слишком много времени трачу на всякую ерунду: либо на ругань на Яндекс.Районе или Яндекс.Дзене, либо на бессмысленное чтение новостей. В результате уже какой день получается так: весь день провожу в Сети, и только вечером, выключив компьютер, думаю о том, сколько всего мог бы сделать — написать несколько заметок в другие разделы мультиблога, дописать новую версию IntB, переписать на Go бота для проверки сайтов, пройти еще один курс по машинному обучению. Но на следующий день выхожу в Сеть, и всё повторяется снова. Помогает только ограничение Интернета, но некоторые вещи без него делать нельзя в принципе (тот же CodinGame, например). А для некоторых — требуется обращаться периодически за ответами на какие-то вопросы (например, как что-то сделать в том же Go). И еще проблема в том, что избыток выбора вариантов не позволяет определиться и остановиться на каком-то одном… А только остановка и концентрация помогает преодолеть страх неуверенности.
Пока же единственное что я сделал — это запретил себе застревать в Яндекс.Районе. И надо бы на мобильных устройствах уведомления от него скрыть, а то приложение Яндекса превращается в хронофага: то Диск предложит посмотреть старые фото, то Район, то еще что-нибудь. А из новостей смотреть только статистику по числу заболевших в Москве и мире, чтобы представлять общую динамику эпидемии. Да и на сайтах по акциям застревать нет смысла. Все равно в ближайшее время выхода из минуса не предвидится, на новые акции нет свободных денег, да сумма убытков стала восприниматься сейчас скорее как справочная информация.
Еще перечитал сейчас некоторые материалы по темпористике и окончательно понял, что я все же ПВБН (куда себя типировал изначально). Описание конфликта Прошлого и Будущего — это прямо как с меня писалось! Да и по «Тайне третьего аспекта» 3Б без вариантов получается. И таки да, моя шутка про то, оцениваю не столько саму кривую качества жизни, сколько её производную — это как раз таки Будущее в третьей, критериальной позиции! И, кстати, скрытая составляющая конфликта с Elementel как раз на этом основывалась: я ожидал, что она поможет мне двигаться в нужном направлении (запрос на 2Б), а она просто шла туда одна (поскольку на самом деле была 1Б). В общем, еще раз убедился: если в какой-то типологии долго не удается определиться, то это значит, что именно в её области много непроработанных проблем.

Неожиданная поездка на настолки

4X_Pro
Сегодня планировал посмотреть видео, присланное мне Миком и дописать материал про алгоритм социального доверия для блога. Но, как всегда, стоит мне запланировать что-то, как всё получается иначе. Началось всё с того проснулся очень поздно даже по своим меркам. Проснувшись, вспомнил вчерашний разговор о субличностях, и вдруг в голове сложилась картина, какие субличности есть у меня (и еще я проассоциировал их с архетипами Эль-Тат). Встав, сразу же написал про них Tellе.
Потом на связь вышла К.Ш. (почему-то в Instagram, а не ВК) и стала уговаривать приехать на настолки. Я ответил ей, что боюсь вируса, и поэтому собирался отсиживаться дома, и вообще думал, что на этой неделе ничего не будет. На это К.Ш. ответила «прислушайся к своей интуиции и доверься ей» или что-то в этом духе. Через несколько минут написала Ал.С., сказав, что это последняя встреча, и потом будет две недели перерыва, а от судьбы все равно не уйдешь.
В итоге я все же согласился, но решил ехать на автобусе, поскольку, на мой взгляд, за день в нем людей едет меньше, чем  в вагоне метро, и поэтому шансов заразиться тоже меньше. Поездка получилась очень атмосферной: почти пустой автобус, а за окном — мрачный, почти апокалиптический город. Только у Авиамоторной попали в пробку из-за ремонта дороги, а потом, когда вышел, еще очень не везло со светофорами на переходах, что вызвало легкое раздражение.
Придя на игры, обнаружил нечто странное. Народа вроде много (чуть меньше десятка человек), на столе разложена какая-то игра, но никто не играет, а все стоят и чего-то обсуждают. Несколько минут я смотрел на это дело, потом хотел было предложить одному из хорошо знакомых мне участников поиграть в «Колонизаторов» (т.к. знаю, что в них играл не раз и относится хорошо), как он сам предложил мне то же самое. Затем к нам присоединился Dexter и еще один игрок.
Расклад получился ну очень плохой: на 6 и 8 — овцы и пшеница, а камни — на 2, 3 и 9, расположенной с самого края, причем один из игроков встал так, что остальным становиться на нее не имело смысла — слишком большие потери были по другим ресурсам.
Я занял достаточно удачный стартовый расклад и быстро отстроил все 5 поселений, а также взял бонус за самую длинную дорогу. Итого набрал 7 очков и ощутимо вырвался вперед. Но вот что делать дальше — не знал. Камни — только на 2, которая выпадает очень редко, обменник только 3:1, приходит много дерева, глины и пшеницы. Да еще и есть риск, что бонус за дорогу отберут. И тут я заметался: стал распылять ресурсы, пытаясь и дорогу дальше строить, и карты развития покупать, меняя камни по курсу 3:1. Я купил две карты развития, но это оказалось плохим решением. Обе карты оказались рыцарями, но к тому времени у белого игрока (того самого, который предложил в «Колонизацию») было уже два сыгранных рыцаря и еще две закрытых карты развития. Было ясно, что получить бонус за самую большую армию шансов мало. Пришлось все же строить города. Точнее, удалось построить один город, что освободило поселение. В итоге у меня стало 8 очков. На следующем круге были шансы построить и город (на него ресурсы накопились), и, возможно, поселение (там было под вопросом), но тут белый игрок разыграл 3-ьего рыцаря и закончил игру. Я остался на втором месте.
Потом я хотел было перебраться играть в «Меч самурая» aka «японский бенг», но там мест не нашлось. В результате с К.Ш. и все тем же игроком, который выиграл в «Колонизаторов», стали играть в «Карту сокровищ». Я еще предлагал «Каркассон», но никто не поддержал. Сыграли пару раз, причем один я выиграл, потом в «бэнге» освободилось место, и мы с К.Ш. переместились туда. Но в «бэнг» сегодня игра шла очень медленно и тяжело. И новичков было много, и никак договориться не могли. Один раз я был сегуном, но сыграл неудачно. Точнее, там было так: я играл неудачно, но один из моих самураев громил всех подряд. Но в конце победила Ал.С., которая была ронином, но притворилась ниндзя. У нее было 3 жетона чести, мы думали, что это даст команде ниндзя 3 очка, но у нас-то больше. Но у ронина 3 жетона — это 9 очков, а у нас суммарно получилось 8… Потом еще раз я сыграл за ниндзю совершенно неэффективно. Потом хотел было уже идти домой, но решили быстренько сыграть еще раз. Увы, это быстренько растянулось с 23:15 до 0:30, так, что в конце я даже занервничал и начал уже высказываться на тему «определитесь и заканчивайте уже». В итоге получилось так: в конце лидировал опять ронин (но уже не Ал.С.), я был самураем, сегун тоже неплохо себя проявил, а еще одним самураем была новенькая участница. Мне удалось отбить у ронина один жетон, затем ход дошел до этой новенькой. Но добить кого-либо из ниндзя у нее никак не получалась. В итоге закончили игру по колоде: она сыграла две «чайных церемонии», в колоде осталась одна карта, ход перешел к К.Ш., и на ней закончился. Мы победили!
В общем, вполне доволен играми, даже несмотря на то, что четвертый день на этой неделе оказался вычеркнутым, плюс лишний раз поездил по городу, подвергая себя ненужному риску заражения.

Упущенные возможности

4X_Pro
В прошлый четверг подумывал о том, чтобы продать серебро с ОМС и хоть на небольшую сумму (там получилось бы примерно 10% от «дня большой закупки» — 21 февраля) закупиться акциями по низким ценам. Но так и не решился. Во-первых, помнил, как вышло с евро и долларами, во-вторых, не хватило решимости тратить последний резерв, ибо кто знает, как дальше будет развиваться кризис.
Вечером того же дня серебро начало падать и к понедельнику свалилось до $12 за унцию, в отдельные моменты просаживаясь даже ниже. Я воспринял это как то, что высшие силы дарят мне шанс изменить прошлое: переиграть ситуацию конца 2015 — начала 2016 года, когда серебро падало до $13.6, и я сначала удачно сыграл на Forex на его повышение, а потом потерял почти все, сыграв на понижение золото. Проблема была только в том, что теперь в WebMoney у меня было примерно в 2.5 раза меньше денег, чем тогда, в 2015. Из-за этого я никак не мог решить, что делать. Было несколько вариантов. Первый — вводить то, что есть, и играть на совсем крошечных объемах меньше 0.1. Но малейшее колебание курса вниз привело бы к потере всего. Второй — ввести деньги из оффлайна. Но на Alpari сделать это можно либо через долларовую карту (которой у меня никогда не было), либо через SWIFT-перевод, за который берется просто огромная комиссия. Третий вариант — попытаться найти freelance-заказы, оплачиваемые именно в WMZ и попытаться за несколько дней набрать недостающую сумму.
Но пока я думал, что делать, ситуация вновь поменялась. Сегодня вдруг и рынок акций, и курс серебра пошли вверх. В частности, сейчас оно стоит $12.84 (а когда начинал писать это сообщение, было даже $12.97).
Еще сходная ситуация была с облигациями. В феврале я сильно переживал, что вот если бы в прошлом году про них знал и купил, то мог бы зафиксировать доходность на уровне 7—7.5% на несколько лет вперед, тогда как по вкладам она упала очень ощутимо. И вот теперь был момент, когда облигации ощутимо просели в цене (некоторые даже ниже номинала), что снова воспринималось как возможность исправить прошлое. Но для этого нужно было досрочно закрыть вклад и перевести его из другого банка, на что я так и не решился (ибо хоть какая-то диверсификация). Решил, что кризис продлится до лета, в то время закончится еще один вклад, и вот его я и сконвертирую. Но сегодня облигации тоже двинулись вверх.
В общем, выражаясь языком типологий, трудно быть Оборотнем по КЛ с третьим Будущим по темпористике: пока получится накопить ощущение значимости сигнала, на который надо реагировать, и пока получится преодолеть свой страх перед неопределенностью будущего, ситуация уже успеет поменяться.

Глючный день, переросший в очередное осознание противоречий

4X_Pro
День сегодня какой-то глючный… Собирались встретиться с Миком в Перово, но не сложилось, перенесли на завтра. Зато на Яндекс.Районе попалась на глаза тема, мимо которой я никогда пройти не мог: о стоянии на эскалаторе слева. Я, как человек вечно опаздывающий, если еду куда-то один, по эскалаторам всегда поднимаюсь пешком. Во многом из-за того, что это дает возможность не стоять в общей очереди. И когда призывают становиться слева всегда, а не по команде дежурного, как полагается по правилам, пройти мимо не могу. Итог: час активной переписки в комментариях, куча минусов, розданных мной сторонникам левостояния, несколько минусов от них, эмоциональный негатив по поводу одной вспомненной ситуации из 2014 года.
Потом на связь вышла Tella и стала очень настойчиво предложить встретиться на Третьяковской, чем весьма удивила. Мне это казалось плохой идеей: я на нервах по поводу разборки, плюс сейчас лишний раз соваться в метро плохая идея, да и уже настроился на то, чтобы еще один день отсидеться дома. Но тем не менее, согласился.
Прогулка получилась странной. Пошли по Пятницкой, я сделал несколько фотографий. Обратил внимания на здания, мимо которых прежде проходил не раз, но как-то не обращал внимания, а они весьма красивые. Потом у меня опять возникли проблемы с самочувствием, из-за которых гулять много расхотелось, и мы решили засесть в какое-нибудь заведение. Попалась какая-то кондитерская. Tellе там понравилось: очень БСная обстановка, а ближе к вечеру на столах расставили маленькие свечки и приглушили верхний свет. У меня впечатления были нейтральные: обстановка приятная, но торты по моим меркам слишком уж жирные, и цены слишком уж дорогие. Но тем не менее, мы там просидели часа полтора, потом вышли к Добрынинской и там разъехались.
А потом, уже дома, очень активно переписывались и обсуждали сегодняшнюю встречу. Оттуда перешли к моей жизненной позиции вообще, в результате чего я расписал, как представляю свою идеальную жизнь, и какова реальная, и был очень удивлен тем, что разрыв гораздо больше, чем я ожидал. В результате переписывалсиь до часа ночи, и только сейчас я смог сделать эту запись.

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

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