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

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


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

t.me/4x_pro

Лог жизни

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


Возвращаюсь к идее каталога сайтов

4X_Pro
В последние дни снова крутил в голове идею сделать каталог сайтов. Но долгое время не было в голове цельной картины, какова же должна быть его структура. Создал в Obsidian заметку, где попытался систематизировать сайты из раздела «Интересные материалы» или просто те, которыми хотел бы поделиться, и быстро понял, что простая древовидная не подходит. Думал на тему фасетов, активным сторонником которых является Evg, но они — хорошее решение для больших каталогов уровня YaCa и DMOZ, тогда как я на такие масштабы не замахиваюсь.
А в ночь с четверга на пятницу случился приступ бессонницы, когда я лежал и крутил в голове эту тему. И вроде решение пришло! Нужно предусмотреть выбор по двум параметрам: формат (официальный сайт, онлайн-сервис, канал в ТГ, блог, видеоблог и т.п.) и тематическая категория. Причём тематические категории — одноуровневые, но с возможностью создания для каждой категории набора фильтров. Например, для программного обеспечения это будут «Платформа», «Лицензия» и «Тематика». И ещё нужно сделать хороший поиск, который учитывал бы и название сайта, и URL, и описание и фильтры.
Из-за необходимости поиска я даже подумывал о том, чтобы вместо MySQL использовать MongoDB (там легко настроить поиск с учётом морфологии), но потом пришла в голову мысль сделать иначе — задействовать MySQL + Sphinx.
А ещё в этот же каталог можно встроить мою давнюю-давнюю идею [социального поиска](http://4xpro.ru/ideas/social-search/), предусмотрев для зарегистрированных пользователей возможность составлять свои подборки и рейтинговать их.
Интереса ради попробовал поискать на GitHubе и в Google современные скрипты каталогов сайтов, но ничего толком не нашлось! Теперь вот думаю, взяться за эту задачу или нет.

Противоречивые настолки

4X_Pro
Сегодня впервые с мая съездил на настольные игры. Из того заведения, где они проводились прежде, нас выжили (слишком мало денег приносим). Теперь собираемся в ДК ЗИЛ на Автозаводской. Я там был впервые, вход нашёл не сразу, и само здание оставило какое-то неприятное впечатление очень странной и неудобной планировки. Кроме того, ДК закрывается в 22 часа, поэтому и на игры приходится приезжать раньше. Мы договорились начать в 18, я опоздал минут на 20, но всё равно приехал вторым, вскоре после Ал.С. Мы с ней сыграли в «Каркассон», причём я выиграл с большим отрывом. Потом пришёл ещё один человек (причём из тех, кто присоединился недавно), сели играть в «Меч самурая» (в просторечии японский бэнг). Новый участник в японский бэнг не умел, поэтому Ал.С. посадила его и села сама играть за ниндзю, а меня — за сёгуна, который при игре втроём получает целый ряд преимуществ: дополнительную атаку, дополнительную карту, неуязвимость к «Бусидо» и целых шесть жетонов чести. На начальном этапе мне ещё очень повезло: пришло несколько карт усиления и «чайных церемоний». В итоге я сходу отобрал ещё три жетона чести у ниндзя, но дальше дело встало. Дальше всё время приходила одна-две карты защиты, и ещё какая-нибудь малополезная в моей ситуации, изредка — оружие. Я их разыгрывал, и оставался без карт, в результате чего ниндзя ничего не могли мне сделать, но и я тоже не мог развить успех. Но после очередной пересдачи колоды ко мне снова пришло несколько карт «чайной церемонии». С одной стороны, я получил возможность атаковать противника (и постепенно выбил все защиты), с другой — не успевал тратить всё оружие за ход (а синие карты усиления к тому времени мне все снесли) и стал получать ответные атаки. В какой-то момент даже стал бояться, что проиграю, но через некоторое время смог выбить все защиты у нового игрока и отобрать у него последний жетон чести, закончив игру, кажется, с шестью жетонами.
Потом долго разбирались с новой игрой под названием «Дедуля винчестер». Когда уже готовы были приступить к игре, пришёл YKrop Ukropovich, у которого был «Остров кошек», и мы с Ал.С. переместились туда, а оставшиеся игроки решили сыграть вместо этого в «Каркассон», решив, что в «Дедулю» на троих неинтересно.
В «Остров кошек» я начал неплохо. Но дальше допустил ряд ошибок. Во-первых, взял задание «оставить средний ряд корабля полностью пустым», которое стоит целых 25 баллов. На первый взгляд кажется, что это легко, но оказалось, что в этом случае быстро становится негде размещать кошек. Но самое обидное — я отказался от карты, которая давала возможность размещать кошек и сверху, и снизу корабля, оставляя этот средний ряд пустым. В третьем раунде место закончилось от слова совсем, поэтому я принял тяжёлое решение на это задание забить. Но к этому времени уже успел наразмещать кошек очень неэффективно, не думая о заполнении кают.
Во-вторых, вспоминая впечатления от прошлых игр, когда на последних ходах сильно не хватало корзин, ударился в другую крайность: начал активно на них тратиться. В итоге набрал целых три штуки, но потратил на это слишком много рыб. В итоге последняя корзина постоянно оставалась незадействованной из-за их нехватки. В общем, моя вечная проблема, что в «Кошках», что в «Роскоши», что в «Project L»: не могу поймать момент, когда нужно переходить от вкладывания ресурсов в развитие «инфраструктуры» к их трате на основную задачу.
Ну и третьим просчётом была ставка на сокровища. У меня была карта, дающая 7 очков, если я к концу игры буду обладателем самого большого их количества. В итоге каждый ход я тратил как минимум одну карту на их получение, плюс ещё дважды потратился на кошек неподходящих цветов только ради сокровищ и закрытия каюты. Но каким-то образом у того же YKrop Ukropovich в итоге сокровищ оказалось всё равно больше!
Итог — полнейший разгром с таким счётом, что я был в полном шоке, и пришлось всё пересчитывать дважды, так как думал, что кто-то где-то ошибся. Но безрезультатно. Огромные минусы из-за незаполненных кают, плюс в этот раз я мало набрал там, где беру обычно максимум — на картах заданий. Они мне просто не шли (плюс несколько я сбросил в начале ради корзины).
В итоге домой возвращался сильно злой на всё вокруг. Плюс ещё удручали новости из Интернета. Да ещё, оказывается, сегодня день города, и в метро просто толпы народа. Но, видимо, высшие силы меня оберегали: и сидячее место в поезде оба раза удачно занял сразу же, и люди кругом были спокойные и миролюбивые, ни с кем цапаться не хотелось. Плюс Ал.С. успела всё же частично снять негатив (не знаю только, осознанно или нет).

Настройка роутера

4X_Pro
Сегодня ходил к отцу на вторую квартиру. Он купил новый роутер, и нужно было помочь с настройкой. Я думал, что всё это займёт минут пять, но получилось как всегда: постоянно вылезали какие-то мелочи, и провозился почти час. Сначала попытался настроить статический IP-адрес, который указан в приложении к договору. Траффик не пошёл. Выключил новый роутер (чтобы не было конфликта двух сетей с одинаковым названием), включил старый, залез в его настройки, там стояло получение адреса по DHCP. Поставил так же на новом, но снова без толку: вроде IP-адрес дали, но траффик наружу не идёт. В какой-то момент даже стал думать, не кончились ли деньги на счету, но зайти в личный кабинет тоже не получалось. Стал думать, что делать. Отец уже хотел звонить в техподдержку провайдера, но это не есть путь Настоящего Компьютерщика. Потом вдруг вспомнил, что при подключении мастер записывал MAC-адрес роутера. Подумал, что, возможно, есть привязка подключения к MAC. К счастью, новый роутер позволял легко делать подмену MAC-адреса программным путём. Вбил в него старый адрес, и всё заработало!
Потом пришлось повозиться с принтером, который не умеет подключаться к сети в 5 ГГц-диапазоне. Сеть со старым названием я сделал именно там, а в 2.4 ГГц назвал по-другому, и нужно было вновь ввести эти данные. Долго вспоминал, где вообще это настраивается на принтере, потом пытался подключить его по PIN-коду WPS, но не сработало. Причём во время попытки принтер никак не позволяет отметить это действие: только либо дождаться таймаута, либо включить/выключить (и загружаться он будет примерно то же самое время). В итоге пришлось вбивать ключ сети с самого принтера. Там система ввода такая же, как на кнопочных телефонах, а после принтер перезагружается. Со второго раза получилось. Потом ещё делал привязку IP к MAC, чтобы принтеру всегда давался один и тот же адрес, пришлось ещё раз перезагрузить. В общем, на всё это час и ушёл.
В итоге домой шёл несколько недовольный, несмотря на то, что всё было сделано, и даже без нервотрёпки. Кстати, второй раз за неделю вожусь с чужими компьютерами, и оба раза всё получается спокойно, без нервов, хоть и долго, и с непредвиденными сложностями.

День размышлений

4X_Pro
В последние дни жизнь замедлилась до комфортного уровня, и это радует. Наконец-то живу в своём ритме, без необходимости ломать его, чтобы успеть отреагировать на что-то внешнее. А сегодня сам собой получился день размышлений.
Началось всё с того, что проснувшись, я вдруг осознал ответ на свой извечный вопрос «куда девается время, почему я всё время живу в вечном отставании». Всё оказалось достаточно просто: я совершенно не учитываю время на переработку впечатлений и разгрузку мозга. Между тем, это настолько важно для моей психики, что бессознательное просто не даёт мне не делать этого.
Ещё я не могу бросить какое-либо действие без хоть какого-то логического завершения. Поэтому часто бывает так: заинтересуюсь каким-то вопросом, который, как кажется сначала, займёт пару минут, открываю кучу вкладок, а потом не могу прерваться, не дочитав (или хотя бы бегло просмотрев) их все. Собственно, это основная причина, почему и спать ложусь всё время позже, и из дома выхожу с опозданием. Помогает только начать завершать процессы заранее… (Эх, вспомнился Windows 2000 с его медленным выключением.)
Потом на связь вышла DarLik. Переслала мне цитату из книги Бейтсона «Экология разума» о том, что человека может приводить в движение «безымянная, бесформенная нелокализованная надежда на грандиозное достижение». В ответ я написал ей огромное сообщение про то, почему у меня теперь нет таких надежд: и сам мир поменялся, и я стал понимать, почему именно сейчас то, на что я надеялся раньше, не работает. И снова вылез давний вопрос: это я плохой, потому что не могу ничего сделать стоящего в последнее время, или Интернет плохой, потому стало слишком сложно стать замеченным.
А в ходе написания случайно сформулировал свою истинную цель жизни, хотя до этого много лет ходил вокруг да около. Цель такова: доказать, что мир, где люди творят и созидают что-то ради самой идеи, не думая о личной выгоде и материальных благах, лучше, чем мир баблорубов и ускорителей жизни. На самом деле именно это для меня важнее, чем slow life, антиускорительство и тому подобное.
И ещё придумался образ, который можно использовать как метафору идеально свободной жизни, к которой следует стремиться: это подросток на каникулах между школой и универом, когда все волнения, связанные с поступлением, позади, до занятий ещё далеко, нет никаких других обязательств, и можно чувствовать себя свободным как ветер.

Бесшумность достигнута

4X_Pro
И всё-таки я решил проблему бесшумного ноутбука без переустановки системы! Сегодня нашёл, как включить управление вентилятором в той версии ядра, которой пользуюсь. Оказалось, для этого нужен модуль asus_nb_wmi, а чтобы была возможность его включить, нужно добавить поддержку PCI hotplug. После этого пересобрал ядро и появился файл для ручного управления вентилятором, где задаётся коэффициент от 0 до 100. Поэкспериментировав, обнаружил, что при значении 40 вентиляторы начинают включаться до слышимых значений только при температуре порядка 60 °C. А без них при обычном серфинге в Интернете температура устойчиво держится в диапазоне 53—55 °C.
Правда, есть и обратная сторона: если всё же нагрузка возникнет и ноутбук прогреется выше 60, то остывать будет долго. По-хорошему, нужно либо thermald настраивать (но у него слишком уж мозголомный конфиг), либо набросать на C свою простенькую утилиту, которая будет при превышении 60 °C менять этот коэффициент на тот же 85, который выставляется по умолчанию.
Ещё интересная особенность: если переключиться на ручное управление вентилятором, посмотреть его скорость становится невозможно. Не очень понимаю, чем это вызвано, но это так.
Теперь сижу и наслаждаюсь полной тишиной. А ещё снова задумался, не купить ли под него подставку для лучшего охлаждения.
А ещё разобрался, как решить проблему со встроенной встроенной панелью. Нужно просто дать команду на её отключение и последующее включение. Только вот когда я написал скрипт, который это делает и попытался добавить его в systemd, оказалось, что он не видит соответствующих файлов в /sys (хотя если запустить его вручную после загрузки системы, всё отрабатывает нормально). Экспериментировал с различными targets, но безрезультатно… В чём причина — так и не понял.

Испытания Manjaro с xfce4

4X_Pro
Поробовал сегодня запустить Manjaro с xfce4 с флешки на основном ноутбуке. Как всегда, возникли проблемы при старте с подключенным внешним монитором. Пришлось отключать его на момент запуска. В целом впечатления сложились вполне благпориятные. Во-первых, корректно распознался датчик вентилятора. Во-вторых, температура процессора каким-то образом получается существенно меньше: с запущенным броузером (правда, это Firefox, а не Chromium) всего 51 градус даже при запущенном ВК. Видимо, более корректно отключается дискретная карта. И вентилятора почти не слышно. Только если ухо как следует напрячь, можно разобрать лёгкое высокочастотное гудение (он крутится на 3000-3200 rpm). Попытался замерить приложением-шумометром в мобильнике, разница между включённым и выключенным компьютером составляет где-то 6-7 dB, при этом я спокойно различаю уличные шумы с закрытым окном.
Интерфейс производит двоякое впечатление. С одной стороны, у Lubuntu тема гораздо красивее. С другой — тема по умолчанию xfce выглядит куда современнее, а значки напоминают оболочку EMUI на планшете. Ещё обнаружилось, что можно вынести на панель задач аналог командной строки! Я об этом мечтал со времён, кажется, Windows 2000 или XP. Причём туда можно вводить как названия исполняемых файлов, так и пути, URLы и даже поисковые запросы для DuckDuckGo (правда, последним я всё равно не пользуюсь).
Кое-что остаётся непривычным. В частности, то, что окно терминала закрывалось после запуска какого-либо приложения. (Потом нашёл, как это отключить.) Пока не нашёл, где настроить опцию typo для клавиатуры, без которой уже чувствую себя как без рук. Ну и памяти съедает всё же многовато: после загрузки — 510 Mb (LXDE, кажется, 280, если запускаться без MySQL и Apache).

Заметка в Instagram от September 03, 2022 at 03:08AM

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

Смотреть все фото

Размышления об Arcanum и жизни

4X_Pro
Вчера всё же прошёл модуль Wormantown для Arcanum. Концовка весьма неожиданная! Удивляюсь отсутствию логики воскрешения в Arcanum: вроде такая возможность есть, но для многих NPC выдаётся «эта жизнь не может быть восстановлена». Причём критерии не ясны. Хотя сколько бы новых сюжетных ходов это открывало!
Ещё впечатлило, насколько сильно правильное распределение очков умений меняет прохождение. Я играл на максимальном уровне сложности. И первая попытка прохождения была существованием на грани выживания: всё время не хватало то денег на доспех и оружие, то зелий, то ещё чего-нибудь, а бои были просто мучительными из-за постоянных промахов. Второй раз дело шло лучше, но в гномьих шахтах тоже стало тяжеловато. А вот третий раз, когда я уже знал, какие навыки нужнее всего (в Wormantown, по сути, нужны только боевые, торговля и кое-какие технологические типа «заряженного кольца», «коктейля Молотова» и оглушающей гранаты), прохождение стало лёгкой прогулкой, кроме разве что последнего боя (и то только потому что я слишком торопился закончить быстрее).
Отсюда вывод: если чувствуешь, что застреваешь в игре из-за нехватки ресурсов, лучше бросить и начать заново. Второй раз уже будет опыт распределения навыков, и дело пойдёт куда быстрее. Жаль, в жизни такое невозможно. А ещё возникает вопрос: как научиться заранее прогнозировать, как лучше распределить навыки?

Замедление жизни и итоги лета

4X_Pro
Осень наступила точно по расписанию! Похолодало, на улице уже как-то темнее и мрачнее. Жалею, что лето прошло. Хотя оно было замечательным, если не считать перегрузов в июне и августе. Зато столько интересного произошло: и поездка на дачу к П.Т. и DarLik, и две поездки в Ногинск (особенно утренняя запомнилась), и самокатная прогулка в Измайловском парке, и прогулки к Новодевичьему пруду, и поездка в Ярославль. И конечно же, пуск личного сайта, а также процесс выбора нового компьютера.
Сейчас наконец-то вроде бы жизнь стала замедляться. Сегодня, проснувшись, около часа лежал и просто разгружал мозг, перерабатывая впечатления от поездки. До этого не получалось — всё время находилось что-то, что требовало реакции и занимало внимание. Да и бытовые проблемы решились более-менее.

Заметка в Instagram от August 31, 2022 at 02:28AM

4X_Pro
Путешествие в Ярославль, день первый

В Ярославль мы ехали в плацкарте. Вагон был современный и гораздо удобнее, чем я ожидал. Но от жары и недосыпа самочувствие было не очень. Даже в окно первую часть пути почти не смотрел. Потом сходили с Tellой за кофе, подвигался и более-менее пришёл в себя. Пройти пришлось 7 вагонов. По расстоянию это около 200 метров, но времени заняло немало: в каждом вагоне нужно открыть/закрыть 4 двери, а Tella ещё сначала боялась проходить через тамбуры.
Ярославль «порадовал» нас пробками, напомнившими мне времена Лужкова. До гостиницы добирались полчаса, из них десять минут простояли в месте с ужасно организованным круговым движением в несколько полос. Но наконец-то заселились. Номер очень понравился: большой и просторный, почти как квартира-студия!
Потом отправились в магазин, а затем — на набережную, к главной достопримечательности Ярославля — Волге. Спуск был необычный: средняя часть улицы с проезжей частью уходила вниз, а по бокам, где стояли дома, наоборот, повышалась. И возле самого выхода к Волге над улицей был перекинут мост. Я подумал, что видимо, раньше на месте улицы был овраг. Но каково же было моё удивление, когда на соседней улице я обнаружил то же самое. Оказывается, город стоит на очень крутом берегу, и у него две набережных: верхняя — у самого обрыва, и нижняя — непосредственно у реки. И над улицами, ведущими на нижнюю набережную, перекинуты мосты! Причём по верхней набережной есть автомобильное движение, нижняя — полностью пешеходная. Впервые такое вижу! (Обычно я изучаю карту и особенности города заранее перед поездкой, но с Ярославлем на это не хватило времени.)
Tella предложила дойти до Стрелки — полуострова возле слияния Волги и Которосли. Но увы, я переоценил свои силы и недооценил усталость от поездки. И когда дошли, устал так, что было уже не до красот города и реки, а хотелось добраться поскорее до гостиницы, лечь и лежать.
P.S. Увы, забыл фотоаппарат в номере и снимать пришлось только мобильником.
#ярославль #набережная #мост #волга

Смотреть все фото

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

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