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

Лог жизни

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


Нашёл подходящий образец дизайна

4X_Pro
Сегодня продолжил бродить по Интернету в поисках движка социальной сети, дизайн от которого можно было бы взять в качестве базы для своего проекта, и, кажется нашёл! Проект называется Anahita. Дизайн там весьма простенький, но в плане функциональности — именно то, что надо! Правда, на мой взгляд, мелковаты шрифты и область контента узковата даже для монитора 1680px, не говоря уж о стандартном 1920px, но это легко исправить. Впрочем, верстать, наверное, проще всё-таки с нуля, просто использовать страницы Anahitы как образцы, и с масштабированием под ширину экрана.
В какой-то момент была мысль даже использовать сам движок Anahita для своих целей: там тоже можно сделать тег-управляемое сообщество. Но потом передумал. Во-первых, там нет инструментов снятия тега голосованием (что задумывается как одна из ключевых возможностей моего проекта), роли tag beautificator (так и не придумал, как это обозвать по-русски) и управления тремя уровнями видимости записи. Во-вторых, хочется что-то своё, да и сделано уже немало. Впрочем, окончательное решение позволил принять расклад на Таро: на вариант продолжать делать свой движок выпала шестерка Жезлов, а на использование Anahitы — перевернутый Повешенный (аркан XII), после чего я сказал «вопросов больше нет».

О рейтинге в ЖЖ

4X_Pro
С удивлением обнаружил, что в ЖЖ нахожусь на 3 093 месте в рейтинге из 124 тыс. участников, а социальный капитал вырос до 252. Хотя думал, что меня тут никто не читает, кроме нескольких знакомых. Интересно, социальный капитал для всех считается или только для пользователей с платным аккаунтом? Или в ЖЖ такой низкий уровень активности? А ещё понял, что рейтинг можно использовать, чтобы просто смотреть профили других пользователей, оказавшихся рядом в списке для поиска интересных блогов.

Два последних дня

4X_Pro
Вчера решил поискать ещё бесплатных тем для BuddyPress в надежде, что среди них найдётся что-то, что можно будет взять в качестве основы для своего движка. Но увы, безрезультатно! Кроме тех трёх тем, которые я нашёл позавчера, остальные либо просто неинтересные, либо совсем отвратительные. В общем, взять готовую вёртску (чем я терпеть не могу заниматься), видимо, не получится. Придётся делать самому на основе одной из бесплатных тем с HTML5up. Вопрос только, что лучше — верстать сразу или сначала попытаться что-то изобразить в Figma.
Потом 10geek написал, что у него на Типаче периодически вылезает реклама. Мы долго пытались понять, откуда она берётся. Я был уверен, что на сервере точно всё в порядке (и у меня эта проблема не воспроизводилась), он — что дело точно не в его системе. После часа совместных поисков причин выяснилось, что рекламу впихивает Ростелеком! Ругались мы в его адрес долго и тщательно… Неужели и правда придётся переходить на https? Очень не хотелось бы: лишняя (и главное, совершенно ненужная) трата ресурсов сервера и увеличение времени отклика сайта.
Потом korovyevfagot предложила доработать статью про соционику в Википедии, включив туда нашу точку зрения, что соционика явялется не самостоятельной наукой, а типологией когнитивных способностей (и, следовательно, относится к когнитивной психологии). Но оказалось, что это не так-то просто сделать: для этой страницы включена процедура медиации. И теперь, чтобы внести туда какие-то правки, нужно списываться с кем-то из посредников. Судя по их комментариям в старых дискуссиях, убедить их будет крайне сложно. Но очень удивило другое: они считают соционику малоценной даже не из-за сомнений в её научности, а из-за отсутствия интереса к ней на Западе.
Потом решил уснуть пораньше. Отключил Интернет, но всё равно, пока всё всё закончил и лёг, стало уже 3:40. (Впрочем, это действительно пораньше: обычно получается в 4 часа ночи, и то в спешке). Но спал плохо. То переживал по поводу того, что после Выгорания 2008—2011 годов удалось восстановить более-менее работоспособность, но не удалось — интерес и вовлечённость. То в голове крутились мысли о том, что нужно делать свою типологию на замену соционике, где будет 8 типов + непрерывная шкала лабильности/ригидности мышления (которая заменит дихотомию рац/иррац). Потом пришло осознание, о котором писал в предыдущем сообщении. Да и сны снились весьма неприятные.
Тем не менее, проснулся поздно, но выспавшийся и бодрый. Но день опять ушёл куда-то мимо. Сначала описывал то ночное осознание, потом — жарили с отцом шашлык, потом — сходил на короткую прогулку к Клязьме. Но особых впечатлений не осталось, только нашагал чуть больше 2 км и покусали комары.
Ещё смотрю на график заболеваемости COVIDом по Москве в последние дни и думаю о том, что возвращаться в город в конце июня, как я планировал изначально — плохая идея. Лучше, наверное, остаться тут ещё на какое-то время.

Осознание разброса по уровням

4X_Pro
Ночью вспоминал дискуссию с Zexhом на своей стене ВК, где, помимо всего прочего, речь шла об уровне Подводного. И вдруг понял, что с точки зрения этой типологии то, что я пытаюсь нести в мир — это мешанина сразу из трёх разных уровней. Идея «живи без графиков, планов и обязательств, будь открыт миру, и он сам найдёт способ дать тебе то, что нужно» — это первый уровень в чистом виде с его огромной, но бестолковой свободой. Идея быть собой, жить в гармонии с собой и развиваться духовно — это третий уровень. Идея заниматься тем, в чём чувствуешь внутреннюю потребность (желательно с минимальной оплатой, либо вовсе бесплатно, если есть источник пассивных доходов) — это четвёртый. И вот такой разброс по уровням и приводит к внутреннему противоречию, из-за которого в полной мере не получается реализовать ни один из этих подходов. Плюс в добавок к этому — неприятие второго уровня и волевых качеств.
Сейчас, когда я всё это писал, подумалось, что это тоже можно связать с архетипами-субличностиями по Эль-Тат: жизни по первому уровеню хочет Гор, по третьему — Анубис, по четвёртому — Тот. Вопрос только, как синтезировать это в единое целое…

Самореализация и типология Эль-Тат

4X_Pro
Сегодня пришло интересное осознание. Каждое из трёх направлений самореализации, которое я осознал после курса по поиску дела жизни в 2019 году, соответствует одному из архетипов из типологии Эль-Тат. Различные оптимизации и экономия ресурсов (в частности, ускорение загрузки сайтов) — Тот. Создание сообществ, объединение людей — Гор (и, в связке с Тотом, создание инструментов для реализации этих сообществ). Проповедничество, несение в мир идей о гармоничной жизни без излишеств и конкуренции — Анубис.

Мрачный день

4X_Pro
Весь день сидел дома, только пару раз выходил на крыльцо посмотреть на дождь. И продолжал заниматься поиском шаблонов для своего нового движка. Наткнулся на сайт с набором шаблонов для BuddyPress (plugin социальной сети для Wordpress). Шаблоны, увы, платные и сделанные на Bootstrap, поэтому в готовом виде использовать не получится. Зато более-менее пришло понимание, как должно выглядеть то, чего хочу получить в итоге в плане организации пространства. А в качестве основы для цветовой гаммы возьму один из тех шаблонов, которые видел вчера. И вообще, прихожу к выводу, что любой проект нужно начинать с HTML-части (или, как сейчас говорят, frontendа), а уже потом дописывать серверную. Особенно когда нет готового ТЗ.
Ещё проблема в том, что когда слишком углубляюсь в процесс разработки, теряю из виду общую картину, чего и зачем я хотел на самом деле. Из-за чего и мотивация снижается. Интересно, как удерживать в голове и то, и другое сразу?
Ещё вечером помог corsico с оптимизацией времени загрузки его сайта. А во вчерашней дискуссии по поводу отказа от трат на статус внезапно отметился Zexh (о существовании которого я уже успел подзабыть) и ещё один человек, которого я не знаю. А ещё кто-то переслал её кому-то в личном сообщении. В общем, вопрос задел людей за живое, давно не видел такой бурной реакции.

Солнечное затмение

4X_Pro
Сегодня — день солнечного затмения, причём необычного — кольцеобразного. Впрочем, над Москвой была бы видна только его небольшая фаза. Но увы, даже такое увидеть не получается — слишком плотный слой облачности. Единственное, что изменилось — небо чуть потемнело, стало ощутимо холоднее, и птицы затихли (кроме ворон, которые наоборот, каркают тревожно). Впрочем, сейчас попробую посмотреть затмение на YouTube.

День усталости

4X_Pro
Вчера в первые за последнее время засиделся до 5 утра. Какая-то компульсия: никак не мог оторваться от компьютера, пока не дочитаю всё, что наоткрывал, хотя понимал, что смысла в этом нет и вообще пора идти спать. Сегодня весь день чувствую себя уставшим и обессиленным. Делать ничего не хочется от слова вообще. Давно такого не было. Под вечер еле-еле заставил себя вынести мусор и немного прогуляться. На какой-то момент вроде оживился, но сейчас опять спад.
Ещё совершенно ужасно работает Интернет. 4G перестал работать вообще, в лучшем случае виден только H+, и ping огромный. Видимо, ближайшая к нам вышка по каким-то причинам работать перестала. Сначала я думал, что это приоритет понизили из-за того, что у меня траффик кончился, но сегодня начался новый платежный период, а скорость всё та же. Кстати, халява от МТС действительно кончилась: в этот раз абонентскую плату списали. Придётся, когда вернусь в город, перейти на другой тариф. Эх, жаль!
Попытался было найти шаблоны, которые можно использовать для моего нового движка. Но главная сложность в том, что он сочетает в себе черты соцсети и коллективного блога. Для соцсетей нормального дизайна я не видел вообще. Почему-то у всех бесплатных движков один дизайн уродливее другого. А для блогов — не хватает некоторых нужных элементов, в первую очередь блока с информацией о залогиненном пользователе. Плюс никак не могу решить, какой макет нужен — двухколоночный или трёх. По изначальному замыслу планировался двух, а справа может появляться всплывающий блок с фильтрами по типу контента (статья, вопрос, комментарий) и дате публикации. Но с другой стороны, в большинстве дизайнов, которые я видел, колонка с контеном получается слишком широкой.
Пожалуй, всё, что порадовало — это количество комментариев под моей вчерашней заметкой, которую я продублировал к себе на стену ВК. Реакцию она вызвала довольно бурную. Правда, обладатели ЧЛ в ценностях, в основном, спорят. А я смотрю на это и искренне удивляюсь: «люди, неужели вы не хотите меньше жизни терять напрасно, тратя её на работу». Впрочем, один из участников дискуссии высказал точку зрения, что дело на самом деле в том, что большинство людей просто само не знает что хочет. Ещё высказывали точку зрения, что власти и экономическому строю невыгодно допускать, чтобы люди были думающими, склонными к рефлексии и понимающими свои истинные цели. Может оно и так, но, на мой взгляд, пока есть Интернет, пытаться изменить ситуацию имеет смысл. Вопрос только в том, как и в какой форме это делать, чтобы это было не несколько человек в ближайшем окружении, а реально массово…

День отдыха и полуоффлайна

4X_Pro
Как всегда, после очень результативного дня следует день нерезультативный. Раньше в таких ситуациях я переживал, но потом понял, что это закономерно и нужно давать себе отдых.
Утром непонятно куда делись последние 500 Мб траффика. Причём когда я зашёл с телефона, доступ ещё был, а когда подключил компьютер и попытался зайти на личный сайт — уже нет. Из-за этого почти весь день просидел в полуоффлайне: доступными оставались только ВКонтакте, Telegram и YouTube. Не мог даже проверить обстановку на личном сайте. Хотел было сделать некоторые мелкие доделки по движку, но как-то не было настроения. Вместо этого решил посмотреть видео на YouTube с интересным экспериментом про смену личности, которое несколько дней назад прислала DarLik. На это ушёл почти час, плюс потом ещё обсуждали его с DarLik и Tellой. Впрочем, на самом деле полной смены личности в этом видео нет: автор поменял только то, что в НЛП называют субмодальностями, плюс придумал своему новому я новую личную историю и некоторые черты характера. Потом выбрался в беседку. Сидел и читал книгу «Городской монах». Эта книга поставила меня перед одним важным вопросом, который описал в отдельном сообщении в разделе «Мировоззренческое».
И только вечером всё же сел и занялся мелкими доделками движка. В частности, оттестировал вход на сайт и дописал действие для выхода. Но самое главное, в голове, кажется, сложилось понимание, как решить тот вопрос со скрытыми тегами и выборке по ним, про который я писал прошлый раз.
Когда всё это было сделано, сел играть сначала в OpenTTD, а потом — в Battle for Wesnoth. И когда играл, было то самое чувство сосредоточенности и собранности в здесь и сейчас и удовлетворённости тем, что я делаю, которое и делает «нить Дао — золотой».

Польза от Welltory и шаг вперёд в написании движка

4X_Pro
Проспал на удивление долго. Днём долго ничего не хотелось делать. Вместо этого пошёл в Instagram. Там DarLik прислала ссылку на аккаунт Tinkoff Journal, где задали провокационный вопрос «чем бы вы занимались, если бы была возможность не работать». Отписал штук шесть комментариев тем, кто считал, что без работы жить нельзя, и нужно не мечтать, а делом заниматься. А ещё в рассылке ЖЖ наткнулся на сообщение, где затрагивалась сходная тема, и тоже отметился. Правда, ответил только один упёртый дельтийский дедок.
Потом запустил Welltory, сделал очередной замер состояния. Результаты были так себе: 60-44-54%. Решил, что заставлять себя в таком состоянии смысла нет, и сел играть в Transport Tycoon. Где-то через час или полтора замерил своё состояние ещё раз, и на этот раз показатели были гораздо лучше: 80-58-46%. В общем, впервые от Welltory проявилась практически видимая польза!
После этого вновь занялся движком нового сообщества, и, надо сказать, весьма продуктивно. Почти доделал регистрацию и авторизацию пользователей. По сути, теперь осталось сделать только создание/редактирование статей, а также поиск, и будет готова основа для тестирования (то, что называют MVP — minimal viable product). Правда, пока что без дизайна от слова вообще.
Вообще, удивляюсь, насколько легко идёт написание кода! Такого даже в 2004 году не было, когда я Intellect Board 2.x писал. Там дело шло хоть и быстро, но с некоторым насилием над собой. А тут всё само собой получается. Видимо, то, что я делаю, правильно и угодно высшим силам!
Впрочем, один затык всё же был. Полтора часа провозился с тем, чтобы понять, почему не работает оператор $ne при выборке из MongoDB для проверки уникальности Email. Оказывается, я писал в условии ['login'=>['$ne',$login]], а нужно — ['login'=>['$ne'=>$login]]. А потом ещё вычитал, что в PHP 5.5 и выше для паролей нужно использовать не привычный SHA-256, а медленные хеши и специальные функции password_hash и password_verify. И какое-то время ушло на переделку.
И пока никак не могу определиться, как быть с управлением областью видимости для каждой заметки. Есть два решения. Первый способ — это хранить только обычные теги и признаки режима показа сообщения: в публичном пространстве (при выборке по тегу), на стене и в ленте событий, показываемой подписчикам. Тогда для выборок придётся делать довольно сложные запросы.
Второе — в список тегов кроме обычного #тег1, #тег2 добавлять скрытые теги вида @автор и #тег1@автор, #тег2@автор. Это создаёт избыточность (все теги дублируются дважды, а также дублируется автор, логин которого хранится в отдельном поле) и некоторое неудобство при редактировании (нужно отфильтровывать скрытые теги при выводе). Зато позволяет очень легко реализовать выборку по спискам подписки/игнора, где могут быть указаны как теги, так и пользователи и сочетания тег@пользователь. И ещё управлять легко областью видимости: если пользователь выберет показывать сообщение только в публичном пространстве, то скрытые теги просто не добавлять, если наоборот, только у себя в ленте, то оставить только скрытые теги.

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

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