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

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


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

t.me/4x_pro

Лог жизни

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


Welltory как альтернатива биоритмам

4X_Pro
Вчера узнал от Tellы о приложении под названием Welltory. Оно измеряет такой параметр как вариабельность сердечного ритма, и на основе его оценивает состояние организма: уровни энергии, продуктивности и стресса. Измеряет необычным образом: палец кладётся на камеру телефона и вспышку, и приложение измеряет цвет изображения на камере. Количество проходящего сквозь палец света от вспышки зависит от того, сколько крови идёт через палец в данный момент, и дальше это обрабатывается нейросетью. Эх, впечатляет, что кто-то придумал такое необычное использование возможностей смартфона. А ещё это приложение умеет собирать данные, которые могут повлиять на самочувствие, из других источников: о тренировках из Google Fit, о погоде (для выявления метеозависимостей) и так далее.
На мой взгляд, хорошая альтернатива биоритмам, которые получалось определить только «на глазок», так как приложениям по их расчёту я перестал доверять, после того, как прочёл книгу Уинфри «Время по биологическим часам». Теперь можно изучать своё состояние вполне научно обоснованным образом, и браться за дела с поправкой на него. И если верить приложению, уровень энергии у меня не поднимается выше 65%, а большую часть времени вообще колеблется около 50%. Так что реально живу наполовину мощности… А вот производительность доходит до 79%.

Непримечательный день

4X_Pro
Странное дело: о сегодняшнем дне как-то писать нечего. Вроде и успел немало, в частности, разобрался с аggregated queries в MongoDB и понял, как делать запрос для выборки зависимых тегов, и на короткую прогулку по посёлку сходил, но всё равно писать не о чем. Пожалуй, самый запомнившийся момент — это проигрыш в шахматы, когда глупо зевнул ферзя. После чего сразу же сдался, хотя до этого имел все шансы выиграть. А ещё весь день мёрзну, хотя в комнатах вроде вполне приемлемая температура — 17—18 °C. В общем, день медленного и скрытого движения вперёд.

Вынужденный день отдыха

4X_Pro
Несколько дней занимался тем, что писал движок для нового формата сообщества, о котором упоминал в предыдущих записях (никак не могу придумать название). До воскресенья дело шло хорошо. Сделал мини-framework и вывод списка контента по тегу. Потом как-то застопорилось. Отчасти из-за нехватки знаний по MongoDB, отчасти — из-за моей вечной проблемы — если есть неопределённость, что делать в первую очередь, не сделаю в итоге ничего. Зато написал план того, как в таком сообществе должны начисляться/списываться очки активности и доделал задачу по freelance
Ещё снова похолодало, и холод загнал меня на второй этаж. Поэтому сегодня получился день отдыха: сидел за старым ноутбуком и играл в Heroes II, ещё пожарил шашлык. Впрочем, всё же нашёл кое-какие ответы на возникшие вопросы по MongoDB.
А ещё сегодня был какой-то просто день повышенной травматичности. Четыре раза попадал себе в руку шампуром, а потом чуть было не порезался ножом. Но вроде обошлось.

Вторая большая закупка завершена

4X_Pro
Ещё вчера закончил вторую большую закупку на бирже, которую начал ещё в феврале, — закончились свободные деньги. Хотя ещё остаётся возможность продать FXWO, но я это рассматриваю как резерв на тот случай, если вдруг что-то резко подешевеет и нужно будет хватать.
А закончилось всё так: я не выдержал, и откупил обратно по текущей цене акции Алроса, которые когда-то давно продал по цене 85 руб. в надежде, что упадут и потом куплю обратно дешевле. Увы, надежды не оправдались. Точнее, был короткий момент, когда действительно падали, но я его упустил, ожидая, что просядут ещё больше. Но пройти мимо дивиденда в 8.4% даже при текущей цене я не мог. В общем, ещё раз убедился, что нужно придерживаться стратегии «купил и держи», а не пытаться трейдерствовать. В конце концов, моя конечная цель — это всё-таки дивиденды.
Так что теперь меньше времени буду уделять рынку. Вместо напряжённого ожидания «а вдруг снижение и пора ловить момент» буду только изредка заглядывать, чтобы посмотреть, что там произошло за это время.

Связь Таро и Четверицы

4X_Pro
Вчера очень порадовала Tella. Она придумала связать масти Таро с элементами Четверицы Хайдеггера, что позволяет делать расклады на проявление миссии и опор личности. Интереса ради сделали на неё и меня. У меня одной из опор оказалась 8-ка Мечей. Сначала это удивило, но потом выяснил, что одно из толкований этой карты — несвобода. И тогда всё стало на свои места: для меня действительно запреты и ограничения вполне могут служить опорами личности (равно как и тот факт, что я им соответствую), а вот избыток свободы дезориентирует и вызывает растерянность. Впрочем, то же самое объясняется моим типом по типологии «Кроме людей» — Мышь.

Начал работу над новым движком

4X_Pro
26-ое число было очень непростым днём. Лунное затмение + сильная магнитная буря. Впрочем, перенёс я всё это достаточно легко, только в тот день был какой-то нервный, дёрганый и хаотичный. Перечитал кучу материала, но без толку. А вот вечером 25-ого реально болела голова и ни на чём не мог сосредоточиться. Из-за этого даже отложил freelance-задачу одну. Хотя, может быть, такая хаотичная активность и была связана с тем, что не хотел за неё браться.
Когда буря закончилась, и в голове восстановилась ясность, я решил, что не стоит выпендриваться с текстовыми файлами, и лучше сделать движок для сообщества, о котором я уже писал, на noSQL-базе MongoBD. Она просто идеально подходит для задач такого рода. В итоге весь вчерашний день прозанимался движком, и в общих чертах набросал мини-framework, на основе которого всё это будет работать. В отличие от монолитного IntB, где весь общий функционал собран в гигантском файле app.php, разбил его на несколько мелких классов, а также стал активно использовать exceptions и autoloader. Это реально облегчает разработку! Плюс понял преимущества camelCase в именах методов: не нужно всё время тянуться мизинцем до клавиши прочерка, да ещё с одновременным нажаитем Shift. Набор идёт быстрее, меньше опечаток и раздражения по этому поводу. И нашёл красивое решение, как обойтись без шаблонизаторов, но при этом автоматически экранировать HTML в выводимых данных. Позже напишу про него заметку в раздел «компьютерное»… Но самое главное, снова чувствую себя настоящим разрабочтиком, творцом! Давно такого не было!
Впрочем, немало вопросов ещё остаётся. Например, как быть с тем, что большинство тегов будет писаться по-русски: допустить ли кириллицу в URL (что я всегда считал дурным стилем) или же как-то приделывать транслитерацию. То же касается и имён пользователей…

Непростые размышления

4X_Pro
Последние несколько дней горю идеей создать то самое тег-управляемое сообщество. Вчера продумал, как это реализовать технически, и даже пришёл к выводу, что можно всё сделать только на файлах, даже без REDISа. Правда, чтобы избежать проблем с перезаписью файлов из-за одновременных обращений, придётся сделать отдельный процесс для операций, затрагивающих многопользовательские списки, и повесить его либо на cron, либо запускать как отдельный systemd-unit. Ещё непонятно, что лучше использовать для внутренней системы перекрёстных ссылок (например, в каталоге с тегами — на файлы с текстами, лежащие в каталогах пользователей) — symlinks или обычные txt-файлы с указанием пути и прочей мета-информации. Symlinks на первый взгляд, кажутся хорошим решением, но снижают легкость переноса сайта и делают невозможным размещение его на Windows-хостингах.
Ещё перечитал массу самой разнообразной информации по темам, которые могут пригодиться, так что теперь голова идёт кругом. Пересмотрел кучу WYSIWYG-редакторов, пытаясь найти бесплатный и с файл-менеджером. Искал готовые CMS на файлах, в надежде, что можно будет их использовать для моих целей без существенной переделки. В частности, посмотрел Grav и HTMLy. Но первый у меня просто отказался работать, потребовав PHP 7.3, а вторая — это, по сути, файловый аналог Wordpress. Если бы мне нужен был просто блог, то, может быть, была бы хорошим решением. Но когда я узнал, как там устроено хранение файлов, сразу понял, что работать будет очень неэффективно.
Потом пришла в голову мысль, что то, что я задумал, может быть слишком похоже на Reddit. Залез туда, поизучал, как там всё устроено, но нет. Местные subreddits — это всё же скорее аналог групп в соцсетях, а не тегов. Ещё выяснил, что движок Reddit — open source, думал даже, не приспособить ли его, но когда зашёл на GitHub и увидел, сколько там всего в репозитории, отказался от этой мысли.
Узнал ещё, что тот подход, который я когда-то назвал StaJAX — «главный контент генерируем в статику, второстепенную динамику подгружаем через AJAX» и кратко описал в одной из своих заметок — действительно постепенно становится одним из ключевых в Интернете. Правда, под другим названием: JAM-stack. Даже не знаю, радоваться, что удалось спрогнозировать будущее, или переживать, что При этом его ещё как-то умудряются совмещать с React, Angular и прочей подобной гадостью. Вычитал про такое интересное явление, как headless CMS, где на первом месте стоит создание API.
Также пришла мысль, что поскольку почти в любом социально-ориентированном проекте нужна система внутреннего обмена сообщениями, то нельзя ли интегрировать готовый децентрализованный мессенджер типа Matrix.net. Но пока ещё не нашёл ответа на этот вопрос.
Но вообще, хотя узнал много интересного, это повергло меня в уныние. Как жить при том, что моя скорость жизни столь несовместима с миром? Сейчас за 5—7 лет многие технологии морально устаревают, в то время как мне только чтобы решить, что технология имеет ценность, нужен год-полтора, потом несколько месяцев на первичное освоение, и пару лет — для того, чтобы пользоваться уверенно.
С подачи Tellы возникла даже идея создать оффлайновую комунну, где технологии будут искусственно заморожены на уровне 2007—2008 годов: никаких смартфонов (только кнопочные мобильники), интрасесть только с личными сайтам без фреймворков, только чистый JavaScript, HTML, CSS и PHP (или другой серверный язык) с очень ограниченным Интернетом, и т.д. Плюс из-за ограниченности числа людей каждый может получить свою долю общественного внимания и нет гигантского расслоения, когда у одного — миллионы подписчиков, а у другого — три посетителя в месяц. Но самое главное, чтобы в коммунну отбирались только люди с мышлением инженеров, а не маркетологов, то есть те, кто ставит перед собой цель решить какую-то задачу, а не менять цели на ходу в поисках того, что будет продаваться.

Затишье в жизни после нескольких отличных дней

4X_Pro
Опять перестал писать в блог. Впрочем, писать особо не о чем. После нескольких очень результативных дней наступило затишье. Видимо, биоритмический максимум кончился. Подумывал было над тем, чтобы сделать паузу в разработке IntB и за это время написать движок для того формата сообществ, про которые писал в статье. Но понял, что пока ещё в голове нет цельной картины в техническом плане. Главный вопрос — как делать кеширование: только ли на REDISе или же что-то более универсальное, что могло бы работать и на NoSQL, и на SQLite, и на REDIS. Зато в процессе поиска готовых решений узнал о CMS под названием TextPattern, которая является хорошей альтернативой WordPress.
Как всегда в тех случаях, когда я не могу избавиться от неопределённости, решил пока не делать ничего вообще, и вернуться к разработке IntB. Вчера добавил для админа возможность вывода списка тем, которые просматривал пользователь, а сегодня — вернулся к разделу-фотогалерее и немного продвинулся — сверстал вывод первых фото из всех фотосерий на главной странице раздела.
В последние дни (кроме четверга) сижу дома. Только в четверг сходил ещё раз к устью Плотни. Там уже уровень воды уменьшился. Хотел было пройти вдоль самой Плотни, но попробовав идти по траве после дождя, понял, что быстро промочу ноги, и отказался от этой идеи. Вместо этого зашёл на полустров на бывшем песчаном карьере, и посидел там, созерцая воду и радуясь тишине и покою в жизни.

Один счастливый день

4X_Pro
Сегодняшний день можно назвать одним из самых счастливых дней моей жизни. У меня в голове сложилась картина, какими я вижу сообщества, которые могут заменить собой традиционные форумы! Бросив всё, я сел писать об этом заметку, и вскоре она была готова. Ещё я продумал, как могла бы быть устроена CMS для реализации такого сообщества. Как это ни странно, её имеет смысл пользователе-центричной, то есть по принципу: всё есть действия пользователя — и статьи, и комментарии, и лайки, и репосты. Причем все действия хранятся в текстовых файлах в каталоге каждого пользователя с упорядочиванием по времени. А для кеширования метаинформации, например, списка всех статей для тега, и хранения всяких OAuth tokens использовать что-нибудь типа REDIS или SQLite. (Хех, сказывается тлетворное влияние сообщества IndieWeb.) Плюс тогда пользователю можно будет дать возможность выгрузки своих данных для простого переноса на другой сайт.
В общем, написал об этом статью, а также выложил вчерашнюю заметку про 7 полезных привычек для «человека настроения» вроде меня. Затем купил несколько акций Сбербанка, пользуясь их просадкой, и пошёл жарить шашлык. Но перед этим ещё сфотографировал яблони, которые вчера зацвели, и выложил их в Instagram. А пока жарил шашлык, наслаждался тишиной, спокойствием и неспешностью природы.
Вечером хотел было поискать, нет ли готовой CMS для того, что я придумал. Но не мог сосредоточиться: слишком много написывали в мессенджеры. А я только-только настроился на дачный режим, когда потребности в Интернете просто нет. В какой-то момент хотелось удалиться из ВК. Но вместо этого просто ушёл в оффлайн, сел играть сначла в Heroine's Quest, потом — в Transport Tycoon, и спокойствие и удовлетворённость жизнью тут же вернулись.

События последних дней

4X_Pro
Опять не успеваю фиксировать в блоге всё происходящее. А интересного происходит немало. В воскресенье хотел было дописать материал для канала о выживании в Сети. Но получилось как всегда: делаю всё, что угодно, кроме запланированного. Поэтому вместо него написал заметку об условиях существования такого явления, как Старый Добрый Интернет. И ещё даже продумал, каким должно быть сообщество, которое в наше время соответствовало бы его духу. Но увы, тут опять всё упирается в то, чтобы набрать начальную критическую массу участников.
Ещё вечером того же дня опробовал было одну идею для конкурса на CodinGame, но она себя не оправдала: результат стал хуже почти 300 позиций. Пришлось вернуть исходную версию. И в итоге в понедельник закончил соревнования на 1465 месте из 6867 участников, второй раз за всё время добравшись до золотой лиги. Причём в этот раз участвовал достаточно лениво, а не как в предыдущие, сидя все десять дней за компьютером безвылазно.
Понедельник решил сделать днём отдыха и отправиться на длинную велопрогулку. Сначала хотел было поехать вдоль Клязьмы на Великий Луг. Но оказалось, что там строят мост для будущего шоссе, и проезд перекрыт. Эх, воистину, «бойся своих желаний» — в первые годы жизни на даче я и мечтал о том, чтобы мост через Клязьму был, чтобы можно было посмотреть лес на другом берегу. Причем как раз примерно в том же месте. Но увы, есть и обратная сторона: для строительства шоссе насыпали высоченную насыпь, из-за которой оказалась перерезана короткая дорога к Большим Дворам и Карпятнику.
Кое-как перебравшись через эту насыпь, я очутился в сосновом бору. Том самом, где когда-то снимал видео про пирамиду типологий. К счастью, его дальняя часть в целом осталась нетронутой, только старые деревья кое-где спилили. Посидел немного там, потом отправился на Великий Луг. По пути старался сделать прогулку максимально осознанной, сосредоточиться в здесь и сейчас и максимально полно почувствовать происходящее. (Впрочем, вся эта «осознанность» гораздо проще описывается языком соционики: переключится с БИ на БС.) Но в полной мере мне удалось это только у Карпятника. Я доехал до самой дальней его части, откуда вытекает ручей, который потом впадает в Клязьму, и долго сидел на его берегу, предаваясь созерцанию. В частности, смотрел на то, как рыбы из озера то выплывают в ручей, то, увидев меня, быстро бросаются обратно. Потом вернулся домой, сделав большой крюк, чтобы объехать насыпь.
Во вторник начал день с обливания холодной водой. Это очень бодрит! Правда, потом полдня мёрз, несмотря на жару. И за день успел написать (но пока не выложить) заметку про привычки для повышения личной эффективности для тех, кто подобно мне не может жить по плану. И ещё немного продвинулся с написанием статьи про выживание в Интернете. Ещё нашёл было приложение Hacker X — курс для изучения кибербезопасности, и начал проходить, но увы, оказалось, что с третьего раздела там доступ платный. В итоге так и снёс это приложение. А ночью с подачи DarLik дважды наблюдал пролёт спутников Starlink (группы 26 и 27). Это весьма необычное зрелище: похоже на цепочку метеоров, летящих один за другим на небольших расстояниях.

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

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