Портрет 4X_Pro
Был в Сети 21 дек. 2024 г., 14:10
Мультиблог
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
На основном ноутбуке вчера задумался о переходе с Opera на Яндекс.Браузер. В Opera слишком уж много проблем стало: то видео перестаёт работать (какие-то проблемы с кодеками), то при последнем обновлении стало не хватать одного пакета, которого для моей версии системы просто нет. Opera, конечно, чуть поэкономнее в плане памяти (по крайней мере, так было несколько лет назад), но сейчас, когда её на ноутбуке 12 Гб, это не столь критично. Зато у Яндекса есть другое преимущество: умеет корректно определять url даже при неправильной раскладке (например, если ввести нфюкг вместо ya.ru). С другой — менять что-то уже сложившееся не хочется.

Об Авито и апгрейде старого компьютера

4X_Pro
Доблестный сэр Мик, сам того не ведая, некоторое время назад подсадил меня на Авито: после общения с ним периодически возникает мысль купить там б/у телефон с хорошей камерой (в качестве основного варианта рассматриваю Huawei P40). Правда, пока всё упирается в то, что до плановой замены телефона ещё полтора года: я в этот раз решил выждать шесть лет вместо обычных четырёх из-за того, что прошлый раз купил телефон гораздо дороже приемлемой для себя цены.
Но мысль покупать б/у имела дальнейшее развитие. Сначала я подумывал купить карту GeForce GT1030 с пассивным охлаждением, чтобы пока поставить её в старый компьютер и хоть как-то улучшить производительность в играх, а потом — собрать новый, бесшумный, и переставить туда. Но сегодня Aksion вбросил неожиданную идею: проапгрейдить ещё и процессор. Как выяснилось, это обошлось бы очень дёшево (находил варианты за 1800 руб.), но при этом производитеьльность по данным GeekBench была бы где-то 2/3 от основного ноутбука.
Проникшись этой идеей я решил, что тогда можно взять и видеокарту помощнее. Сначала рассматривал вариант GT1050, потом решил, что маловато-то будет и перенацелился на GTX1060. Потом обсудил это с HWlife и 10geek, они убедили меня, что для старой матплаты с частотой системной шины 400 MHz ширина самой видеокарты шины гораздо важнее, чем архитектура чипа, и лучше брать GTX780. Поизучав её характеристики, я ужаснулся количеству выделяемого тепла (250 Вт), да и DirectX 12 она не поддерживает. Поэтому сейчас в качестве основной цели рассматриваю GTX980, но там смущает её длина и необходимость подключения двух дополнительных разъёмов питания, хотя HWLife утверждает, что можно будет сделать переходник с разъёма для питания IDE-диска.
В общем, сегодня весь день провёл в изучении и сравнении характеристик карт, чтении отзывов и обзоров и т.п. И впечатление двоякое: с одной стороны, такой апгрейд вполне соответствует пути Настоящего Компьютерщика — за счёт небольших вложений (суммарно видеокарта+процессор+память+маленький SSD обойдётся около 16 тысяч рублей) можно получить комп, вполне годный для игр, вышедших где-то до 2016 года (а более поздние мне и не нужны пока что) и забыть о покупке нового компьютера ещё года на четыре. А за это время ещё неизвестно что произойдёт. Кроме того, под игры будет отдельный компьютер, который можно будет грузить в Windows, а не играть из под Wine.
С другой — покупать по объявлениям всё же психологически сложно и страшно (хотя вроде там можно не звонить голосом, а писать сообщения). Плюс ещё неизвестно, не будет ли в итоге система тормозить из-за слишком медленной памяти (там DDR2) и не вылезет ли каких ещё несовместимостей. В общем, не знаю, что делать…

Продолжаю искать ответ

4X_Pro
Продолжаю задаваться вопросом, который поднял в одном из предыдущих сообщений: почему и в какой момент я перестал делать что-то легко и играючи? Крутил в голове разные периоды жизни, и понял, что это случилось где-то в период с 2000 по 2003 год. Точно помню, как на первом курсе Института я легко освоил MathCAD, Mapple и основы VBA Script, написал свою библиотеку виджетов под DOS и, чуть позже, программу, которая сглаживала линии на сканированных ч/б рисунках (это часто было нужно отцу) и удаляла грязь. По сути, та программа делала простейшие операции errode и dilate с кистью 5x5, но тогда я таких слов не знал, и придумывал всё сам на ходу. А на втором курсе верил, что легко освою lisp (хотя в итоге даже не попытался). И точно помню, что уже на пятом курсе (конец 2003 года) такой игривости не было, вместо этого было то, что я называл «кризисом программирования», когда любая незнакомая задача казалась кошмаром.
Есть несколько версий:
  1. тогда у меня не было цели прославиться и добиться признания, а следовательно, потребности в конкретном результате. Поэтому если я брался за слишком сложную для себя на тот момент задачу, я просто без сожаления её бросал и переключался на что-то другое;
  2. отсутствие избыточного выбора и перегруза информацией вместо её дефицита, которые появились после Подключения;
  3. какие-то последствия Декабрьской Трагедии, типа очередных замороженных эмоций;
  4. эффект Даннинга-Крюгера, из-за которого я верил, что тут дел-то на пару часов или дней, поэтому творение чего-то было работой по Настоящему (с точки зрения темпористики), а не по Будущему, что мне даётся легче. (Кстати, тоже несколько удивительно: Настоящее у меня четвёртое по основной версии, то есть наименее наполненное энергией).

Приступ инфоголизма

4X_Pro
Понемногу выкарабкиваюсь из нересурсного состояния, в котором был всё начало недели. Понемногу двигаюсь с переделкой личного сайта: доделываю страницы второго уровня, дописал некоторые скрипты, но никак не могу определиться, что и в каком виде вынести на главную. В четверг ещё сделал шаг по переводу SuperMon_Bot.
Ещё в последние дни просто приступ инфоголизма. Много сижу на Хабре. В частности, нашёл там подборку репозиториев на GitHub с разными полезностями. Особенно понравился сайт 30 Seconds of Code и подборка Build your own X. В частности, сейчас читаю там про то, как написать свою реализацию протокольного стека TCP/IP.
И читая это, задался вопросом: ведь я почти всё необходимое знаю (кроме того, как считается контрольная сумма заголовка IP-пакета). Протоколы IP, ICMP, TCP, UDP и ARP изучал ещё во времена NHT, а потом — курса по Сетям в Институте. Про то, как сделать TUN или TAP-интерфейс, читал совсем недавно. Но вот написать свою реализацию, пока не прочитал статью, не смог бы даже в таком простом варианте, как там (без обработки фрагментированных пакетов и т.п.) — просто не понимал, как подойти к этому вопросу. Не было той самой целостной картины в голове, появление которой обычно и даёт мощную мотивацию.

Заметка в Instagram от July 05, 2022 at 04:49PM

4X_Pro
Сегодня случился приступ бессонницы. И в голову пришла необычная идея: отправиться на утреннюю прогулку на самокате в Измайловский парк и проехать так называемый большой круг от Лебедянского пруда до Красного.
И я это сделал! Очень этим доволен, впечатлений масса! Утром мир воспринимается совсем иначе, даже самые обыденные места типа шоссе Энтузиастов (см. второе фото).
Больше всего понравилась первая часть прогулки — дорога к Лебедянскому пруду. Тогда только-только поднялось солнце, как-то совершенно особенно, по-утреннему пели птицы, дорожка в парке совсем пуста, и ехать — одно удовольствие.
В лесу было ещё сумрачно, и только перед самым прудом я выехал на открытое пространство, полностью залитое солнцем (см. фото 3). А сам пруд был покрыт туманом. К моему большому удивлению, возле прудов я оказался не один: там было несколько рыбаков и какой-то йог, занимавшийся на коврике.
Какое-то время я посидел возле пруда, стараясь максимально вобрать в себя впечатления от всего этого, потом отправился дальше. Проехал по дорожке вдоль пруда. На ней из-за просветов между деревьями образовалась интересная игра света и тени (см. фото 6). Бросил ещё один взгляд на пруд, на этот раз с северного берега, откуда можно увидеть его целиком во всём великолепии, и поехал к ручьям: Харигозинскому, Липитинскому и Косинскому. Из-за жары они сильно обмелели, поэтому ничего особо интересного там увидеть не удалось. Затем выехал к Декоративным прудам, где снял ивы, растущие по их берегам. И дальше отправился домой мимо Красного пруда. Ехал и в этот момент чувствовал полноту жизни, включенность в здесь и сейчас, и переполняло такое чувство радости, какого давно не испытывал!
#утро #летнееутро #лето2022 #измайловскийпарк #лебедянскийпруд #прогулканасамокате

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

Недостаток лёгкости творения

4X_Pro
Несколько дней назад пришло понимание, откуда же берётся моя неудовлетворённость жизнью, хотя вроде бы есть возможность жить так, как хочется. Всё очень просто: в своих представлениях как жить я всегда видел себя этаким играющим творцом, создающим что-то быстро, легко и непринуждённо, просто потому что захотелось. Но реально таковым не являюсь. Процесс создания чего-либо идёт медленно и мучительно.
Вот, например, взять ту же страницу о моих компьютерах для новой версии личного сайта. Изначально я думал, что набросаю её за 1—2 дня за время прошлого возвращения в Город. Реально же это заняло почти три недели! И это всего одна страница… (Если считать только те дни, когда я реально сидел и писал, то получается чуть меньше, 4—5 дней.) А ещё нужно добавить фотки компьютеров и какой-нибудь lightbox-скрипт (который опять же нужно найти и выбрать).
Или этой ночью пришла в голову мысль добавить на пустое место в левой части сайта пасхалки в виде случайно появляющихся персонажей старых игр, например, Pacmanа, монстров из Space Commander, ракету из Spy vs Spy, фигуру из Tetrisа и ещё несколько. Но мысль о том, что нужно найти и скачать все перечисленные игры, сделать скришноты (причём кое-где нужно поймать несколько кадров анимации), потом написать скрипты, отвечающие за их появление и уход, вызывает уныние.
И вот то, что состояние «ух ты, какая классная идея, сейчас сделаю» так легко и быстро переходит в «ой, сколько же придётся возиться» и есть моя главная проблема на данный момент.
Попытался было понять, что с этим сделать, с помощью карт Таро. Получил следующее:
«Почему я так медленно и тяжело творю» — перевернутая десятка Чаш. Истолковал как недостаток эмоционального наполнения жизни.
«Что с этим можно сделать» — прямая десятка Мечей (одна из самых частых карт в моих раскладах). Воспринял как что-то вроде «принять неизбежное, прекратить бессмысленные попытки».
«В чём заключается это бессмысленное» — перевернутое Колесо Фортуны (аркан X). Видимо, имеется в виду, какое-то движение назад.
«Чем оно вызвано» — перевёрнутое Солнце (аркан XIX) — заблуждения.
И последним вопросом было «заблуждения в какой области». Ответом стала тройка Кубков, то есть где-то в сфере эмоций (кроме того, Galaxy Taro её толкует как карту дружбы).
На этом я и остановился, но ясности это не добавило.

Удачное возвращение

4X_Pro
После двух весьма активных дней последовал спад. Да и в Welltory показатели ухудшились. То ли слишком много сил потратил, то ли накопился недосып (в предыдущие дни спал часов по 6), то ли новолуние сказывается.
Вчера большую часть времени провёл в состоянии ухода в себя, созерцания. Пытался кое-что доделать по freelance-задачам, но желания не было от слова совсем. Поэтому всё, что сделал — это написал ещё часть материала о своих компьютерах для новой версии личного сайта. Кошмар, как же медленно идёт дело. Зато если изначально я просто хотел описать конфигурации, то теперь про каждый из компьютеров — целая история, как он повлиял на мою жизнь.
Сегодня вернулся в Город. Лучшая часть лета позади. Равно как и половина этого года с непростым характером, как я назвал его ещё в январе. Или времени правды, как сказал 10geek.
Изначально хотел ехать, как обычно, через Посад. Но когда собрался и посмотрел расписание, обнаружил, что на 15:55 не успеваю, а потом больше часа электричек нет. Оказался перед выбором: либо сидеть и ждать, и приехать в Город позже, чем хотелось, либо ехать через Ногинск. Выбрал второе, причём изначально хотел дойти до дороги пешком, и там сесть либо на автобус, либо, если времени будет мало, вызвать такси.
Но снова прособирался и оказался перед выбором: либо сразу ехать в Ногинск на такси, либо бесцельно сидеть ещё 15 минут в доме, и потом ехать как обычно, через Посад. В итоге выбрал первое, но всю дорогу до Ногинска думал, правильно ли поступил и что всё-таки ценнее: 15 минут времени или 150 рублей денег (поездка до Ногинска стоит на эту сумму дороже, а цена билетов на электричку из обоих пунктов одинакова).
Поездка прошла на удивление хорошо. И такси приехало буквально через две минуты с момента вызова (так бывает редко), и на станцию приехал с таким запасом, что можно было купить билет совершенно без спешки (хотя всё равно нервничал последнюю часть пути). И в электричке занял отличное место у окна лицом вперёд (впрочем, в Ногинске народа мало садится, это не сложно). И трамвай подошёл буквально в тот момент, когда я дошёл до остановки. Как я говорю в таких случаях, высшие силы создают попутный ветер благоприятных событий.
С интересом смотрел изменения, которые произошли с 2019 года. А ещё думал о том, что когда-то, когда дачу только купили, мечтал когда-нибудь во время поездки высадиться и получше осмотреть те или иные места. Например, пруд возле Есино или реку Чёрная возле одноимённой платформы. Но всегда откладывал, потом год заканчивался, и в итоге идея так и оставалась нереализованной. Причём вроде бы ничего мне не мешает: тут не надо ни с людьми как-то взаимодействовать, ни деньги дополнительные тратить, ни ещё чего-либо. Просто действие слишком выходит за рамки привычного, вот и не делаю… Тот самый случай, когда границы — в голове, а не вовне.
Остаток дня прошёл куда-то мимо. Даже не могу вспомнить, чем занимался, кроме бытовых вопросов.

Заметка в Instagram от June 30, 2022 at 08:21PM

4X_Pro
К югу от озера Данилища есть ещё одно, поменьше. Официально оно безымянное, но местные почему-то прозвали его Байкалом. В среду я решил съездить к нему и осмотреть его восточный берег.
Увы, ничего интересного там не обнаружилось: берег топкий, болотистый, и подойти сложно. Поэтому поехал дальше и нашёл ещё одну дорогу к лесу, причём лес — достаточно влажный ельник. Надо будет вернуться туда осенью, возможно, будут грибы.
А на обратном пути нашёл одну ягоду земляники — единственную за всё это лето, но очень вкусную! Потом сделал несколько фотографий с северного берега озера.
#озеро #лето2022 #водоем #земляника #ягода

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

Насыщенные дни и сделанный прототип

4X_Pro
Эти три дня были весьма насыщенными, не успеваю фиксировать всё. В воскресенье всё же разобрался с основами Vuetify и к ночи понедельника в целом сделал большую часть прототипа. А ещё поменял своё отношение к material design. В общем-то не такая уж это и плохая штука. (Хотя всё равно во времена Android 2 и 4 интерфейс был лучше.) Осталось только разобраться, как подключить редактор Quill и расставить значки действий именно так, как мне требуется (ну и найти наиболее подходящие). Правда, вычитал на Хабре, что более перспективно использовать не Vuetify, а Quasar: он и Vue 3 поддерживает, и Server Side Rendering, и даже по размеру скриптов вроде экономнее. И как всегда, это несколько демотивировало. Впрочем, с другой стороны, какая разница, если делаю только прототип, чтобы понять, как должно выглядеть, а потом планирую всё равно всё переверстать без frameworkов, на чистый CSS и минимум JS…
Но в целом вопросов накопилось много, и главный из них — это как взаимодействовать с серверной частью. Вообще, на чём всегда застревал при освоении чего-то нового по Интернету — на том, что вроде основы понятны, но совершенно непонятно, как перейти от более простого к более сложному.
Из-за этого в понедельник переключился на другую задачу. Попалась под руку информация о том, что замена стандартной zlib на zlib-ng или версию от Cloudflare может дать прирост производительности всем приложениям, которые используют zip-сжатие. В том числе и броузерам при загрузке сжатого контента. Сначала искал benchmarkи на эту тему, чтобы убедиться, какую из этих версий лучше ставить. Потом собирал на виртуальной машине. Получилось со второй попытки (как, впрочем, и всё, что я делаю в этой жизни). К счастью, заняло это не так уж много времени, поэтому вечером вернулся к изначальному замыслу — доделке прототипа.
Ещё вечером понедельника выбрался на прогулку к ближайшему водоёму. Хотел было снять закат, но опоздал минут на десять… Зато хорошо прогулялся, почувствовал включенность в жизнь. А на обратном пути сфотографировал здоровенного жука. Поискав какое-то время в Интернете, определил, что он относится к виду окаймлённый плавунец. Потом на сайте ФотоКто это подтвердили.
Кстати, сайт ФотоКто оказался вполне дружелюбным сообществом. Изначально я боялся регистрироваться, так как он позиционируется как сайт для фотопрофессионалов, и что меня там закритикуют. Но нет, комментарии вполне дружелюбные, и для удачных фото получается соотношение 1 лайк на 12 просмотров. Сейчас хожу и смотрю чужие фотографии, пытаюсь понять, чего же мне всё-таки не хватает, чтобы снимать по-настоящему круто — таланта, знания матчасти или возможностей камеры…

Идея мобильного сообщества и эксперименты с Vuetify

4X_Pro
Как всегда, эмоциональная встряска привела к новым идеям. В частности, ночью понял, каким должно быть современное сообщество, которое будет жизнеспособно даже в условиях слишком быстрого темпа жизни, когда у большинства людей не хватает времени и внимания. Как это ни странно, нужно сделать шаг назад, к более простой форме — от форума к гостевухе, но в виде Progressive Web App с уведомлениями об ответах, поддержкой хештегов и оффлайнового просмотра кешированных материалов и написания новых сообщений (собственно, последнее — это то, чего мне больше всего не хватает сейчас на моём сайте).
Где-то часа полтора лежал, ворочался и крутил это в голове. Потом встал, спустился на первый этаж, зарисовал на листе бумаги основные идеи и то, каким я вижу интерфейс, после чего наконец-то смог заснуть.
Проснулся от телефонного звонка. Когда понял, что снова не усну, решил сделать прототип интерфейса такого приложения. Только вот верстать то, что я хотел, совсем с нуля долго и нудно, а прототип хочется быстро. Поэтому решил в качестве временной меры использовать Vue и поискать для него готовый набор компонентов. Набор нашёлся на удивление быстро. Он называется Vuetify, и вроде бы в нём есть почти всё, что потребуется. Нашёл на Хабре введение в Vuetify, но оказалось, что там нужна vue-cli.
Пофыркав на тему «опять забивать систему хламом», всё же решил поставить. Ubuntu предложила сделать это через snap-репозиторий. Я согласился. Но увы, при попытке запустить выдалась ошибка, что не хватает какого-то jar-файла. На Stack Overflow вычитал, что лучше ставить через npm.
Попытался установить через npm, и тут новая ошибка — слишком старая версия самого npm. Там нужна то ли 12.0, то ли 14.0, а в Ubuntu 20 — всего лишь 10.x. Нет, я, конечно, знал, что в мире Javascript с версионированием постоянно вылезают какие-то проблемы (и это одна из причин, почему я так плохо к нему отношусь), но не думал, что всё настолько плохо! Пришлось опять лезть в Интернет и искать, как поставить последнюю версию npm откуда-то из сторонних источников.
После этого всё заработало. Единственная проблема, с которой столкнулся — это линтер ругался на то, что имена компонентов должны быть из нескольких слов, тогда как в исходном примере был однословный List. Но это исправил быстро.

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

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