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

Лог жизни

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


Спокойный и гармоничный день

4X_Pro
В пятницу получился на редкость спокойный и гармоничный день. С утра снова размышлял над своей главной проблемой — стать кем-то, о чём и написал подробное предыдущее сообщение. Потом хотел было доделать вёрстку главной страницы своего будущего сообщества. Но вместо этого вдруг получилось написать вводный текст про то, людей с какими ценностями мы в нём ждём. И ещё пришло в голову переименовать сообщество в «Идеалисты Интернета», так как рабочее название «Жизнь по уму» отражает только часть того, что я в сообществе хочу видеть. Обсудил это с Tellой и 10geekом, но Tella идею несколько не одобрила и заметила, что формулировка «возрождение духа Старого Доброго Интернета» попахивает олдфажеством и может отпугивать. В итоге заменил на «Мы — сообщество тех, кому близок дух идеализма раннего Интернета.». Вроде почти то же самое, но слово «ранний» вызывает совсем другие ассоциации. Говоря языком соционики, не дельтийские, а альфийские.
И вот это понимание вернуло мотивацию заниматься сообществом. Снова почувствовал себя на правильном пути. И сегодня почти доверстал главную страницу, осталось только подобрать иллюстрации четырёх главных принципов сообщества, выводимых внизу. Теперь осталось совсем немного: сделать верхнее меню для залогиненого пользователя. И можно будет заняться интеграцией макета в сам движок.

Немного самоанализа

4X_Pro
Задумался на тему, что же не даёт мне быть полностью счастливым на данный момент. На мой взгляд, то, что я никак не могу стать кем-то, человеком которому есть чем представиться. Причём с одной стороны, я хочу стать этим кем-то, с другой — категорически не хочу брать каких-либо обязательств, создавать привязок к будущему или каким-то иным способом допускать, чтобы созданное мной как-то меня же ограничивало. Иными словами, в рамках дихотомии Работа—Халява созидание того, что сделает меня кем-то быть ближе к поиску Халявы. Второй вопрос, который не даёт мне покоя — с чем это связано. Это я делаю всё плохо, или же Интернет поменялся настолько, что без раскрутки сейчас даже бесплатное останется незамеченным?
Ещё проанализировал, что же из сделанного мной за последнее время было хоть как-то замечено. Список получился такой:Что у них общего? Почти всё это я делал с наскока, за пару дней и для каких-то своих нужд, а потом уже делился с миром. И по идее, мне и нужно заниматься именно такими небольшими проектами, которые делаются разово и особо не требуют дальнейшей поддержки. Но тут есть две проблемы. Первая — такие проекты не могут помочь мне создать круг своих людей, таких же идеалистов Интернета, каковым являюсь я сам. Вторая — мои ограниченные потребности имеют обратную сторону: слишком редко возникают ситуации, когда требуется придумать какое-то решение, которое и приводит к появлению очередного мини-проекта.

Сделал главную страницу MLCE и зарегистрировался на Pexels

4X_Pro
Несколько дней назад искал фотографии для очередной статьи на Дзене на сайте Pexels.com. И вдруг пришла в голову мысль: а ведь я могу и свои фото там выкладывать! И тем самым вносить вклад не только в мир open source кода, но и его аналога в мире фотографии! Решено — сделано: я зарегистрировался там и стал перетряхивать свою коллекцию фотографий в поисках того, что могло бы пригодиться не только мне, но и другим пользователям. Пересмотрел все весенне-летние фото за период с 2016 года (того момента, как купил новую камеру), и в итоге выбрал и загрузил 40 фотографий. Точнее, 38 выбрал и две сделал новых — смородины и вишни на садовом участке (воспользовавшись камерой Мика). Теперь периодически посматриваю статистику…
А ещё в процессе перебора фотографий вспомнил очень много эпизодов из жизни, о которых уже успел забыть. Например, прогулку в Царицыно осенью 2017 года или в Коломенское — весной 2018, или то, как DarLik вытащила меня на какой-то небольшой концерт весной 2016. Ну и конечно же, пересмотрел фото с поездки в Переславль с Миком в 2018 году! С одной стороны, воспоминания — это круто. С другой, пересматривая старые фотографии, увидел множество технических несовершенств, которых просто не замечал раньше. И ещё, глядя чужие фотографии на том же Pexels, понимаю, что большинству моих чего-то не хватает. Но никак не могу понять, чего именно, и вообще дело во мне самом или в технических ограничениях камеры.
Сегодня почти доделал главную страницу сообщества MindLife в статике. Осталось только решить вопрос с previews статей. Общий замысел этой страницы был у меня давно: слева — краткая информация о сообществе, количество участников, список активистов и присутствующих, справа — статистика по сообщениям, список самых важных тегов и самых активных за последнюю неделю (с этими самыми previews для статей). А внизу — блок с главными отличительными чертами сообщества.
Первый вариант я сверстал ещё в воскресенье, но выглядел он ну очень уныло. А сегодня вдруг пришла в голову мысль, что нужно поставить большое фото на фон, а блоки сделать с полупрозрачным фоном. И ещё вынес название сообщества из левого блока на самый верх. В итоге стало смотреться совсем иначе!
Также собирался пересечься с Миком, он хотел дать попробовать ещё одну свою камеру. Но увы, болтаюсь в полузаболевшем состоянии, и поездку до Посада и обратно на велосипеде просто не выдержал бы. Пришлось встречу отменить. Вместо этого пошёл на относительно небольшую прогулку вдоль Клязьмы, но устал даже от такой (хотя, может быть, дело было в обезвоживании из-за жары). В итоге за вечер ничего толком не сделал.

Решил вопрос с HTML-формами

4X_Pro
В субботу вернулся к работе над движком нового сообщества. С названием пока всё плохо, поэтому пока буду называть его MLCE (MindLife Community Engine) — по названию самого сообщества, которое хочу создать. Долго думал, за что взяться, и в итоге занялся одной из самых неинтересных частей — работой с формами. Впервые о том, чтобы автоматизировать работу с ними, я задумывался ещё 10 лет назад, когда сделал Yaml Form Generator. Всегда хотелось сдлеать так, чтобы поля, значения по умолчанию для них и правила валидации прописывались только в одном месте. Но получалось либо не гибко (как в Yaml Generator), либо недостаточно эффективно, как в IntB, где для HTML-части полей приходилось подключать макросы из шаблонизатора, а для checkboxов делать проверки if (!empty($_POST['что-то-там'])).
Теперь же сделал отдельный класс для формы и отдельные классы для каждого вида полей, причём класс сразу умеет выводить себя через __toString(). А класс формы просто получает массив полей на входе и делает по нему итерацию, когда надо + содержит метод printField для быстрого вывода поля с нужным именем. Правда, после некоторых размышлений отказался от «обвязки» — автоматическог вывода label с описанием, решив оставить его в шаблоне для большей гибкости. Но до сих пор не уверен, правильно ли сделал. А ещё сделал так, что заполнение формы происходит единообразно хоть данными из базы, хоть данными из формы.
Ещё собирался сверстать главную страницу сообщества, но вот тут пока не продвинулся. Отчасти из-за того, что сегодня спал плохо, встал невсыпавшийся, и утром ничего не хотелось делать совершенно.

Борьба с телефонным спамом

4X_Pro
Несколько дней назад озаботился всё-таки поиском приложения для защиты от мошеннических звонков. Но большинству таких приложений требуется доступ в Интернет в момент звонка, поэтому они мне не подходили. Потом всё же нашёл одно: «Не бери трубку». Обрадовался, поставил, настроил, включил активную защиту и … следующим утром был разбужен звонком. Причём не неизвестным, а вполне корректно распознанным приложением как телемаркетер. Стал разбираться и оказалось, что ещё нужно включить в настройках «Блокировать спам, сообщаемый сообществом».

Асинхронный выход в Интернет

4X_Pro
Я понял, что мне нужно, чтобы решить проблему «жизнь в Сети или для Сети»! Асинхронный выход в Интернет. То есть набор скриптов, которым я, сидя в оффлайне, мог бы ставить задачи типа «выложить вот это в свой блог, скачать то видео с YouTube, загрузить 5 результатов поиска по такому-то запросу, установить такой-то пакет в систему, выгрузить фотографии». Потом на короткое время включать Интернет, скрипт бы отрабатывал поставленные задачи, и сразу бы отключал соединение. Тогда бы удалось избавиться от главной проблемы — расфокусировки внимания и сноса «потоком жизни», но при этом не лишать себя плюсов Интернета.
Вопрос только в том, как реализовать это технически. Для своего сайта я могу написать скрипт, для почты использовать Sylpheed. Telegram, как выяснилось, позволяет писать сообщения в оффлайне (что очень порадовало). Для выгрузки фото ВК, теоретически, тоже можно написать скрипт, хотя и сложно: нужно кешировать список альбомов. Основной сложностью является Instagram из-за его закрытой API, поиск и самый обычный серфинг, когда нужно задать отложенную загрузку страницы. Впрочем, надо поискать, может быть, подходящие extensions для броузеров всё же найдутся.
А ещё точно понял, что в моём новом движке нужно сделать возможность писать сообщения в оффлайне. Только пока плохо представляю, как именно. По идее, тут должен помочь Application Cache, но не очень понятно, как встроить его в обычный сайт, а не приложение, где всё подгружается через JavaScript.

День полного оффлайна

4X_Pro
Вчера во время прогулки возникло какое-то чувство тоски и безысходности. Решил, что выгорел от того, что слишком много работал над движком и слишком много переписывался в Сети. Решил устроить себе день оффлайна. Перед этим с вечера доделал оставшиеся freelance-задачи, чтобы уйти в оффлайн с чистой совестью. В процессе ещё нашёл небольшой lifehack: если исправления касаются только вёрстки, можно сохранить страницу в статику, и редактировать её локально. Это экономит и время (не надо постоянно подтверждать замену файла при загрузке на сервер и сбрасывать кеш), и траффик. Причём CSS потом можно просто скопировать со всеми правками (если на сервере нет никаких скриптов склейки, как InstantCMS). Изменения в шаблонах приходится переносить вручную, но всё равно это в итоге оказывается легче, чем редактировать на живом сервере. И самое главное, можно делать правки не торопясь!
Но как всегда, засиделся до глубокой ночи, поэтому сегодня встал очень поздно даже по своим меркам. Облился холодной водой, и сел за компьютер. Сначала не знал, за что браться. С одной стороны, чётких целей не было, с другой — просто раздирало на куски от противоречивых желаний: и поиграть, и книжку почитать, и поехать на велопрогулку, и посидеть помедитировать, и ещё много чего. При этом совершенно не понимал, за что браться сначала. В итоге занялся тем, что всегда меня успокаивало и давало внутреннюю целостность — перепрохождением Rockman IV. Причём на этот раз пользуясь исключительно R.Busterом и R.Coilом. Потом читал большую книгу о Linux API, играл в Battle for Wesnoth. Когда надоело, поднялся на второй этаж, и довольно долго просто лежал на кровати, глядя в окно. Как всегда в таких ситуациях, в голове сначала очень интенсивно крутились мысли, но через некоторое время пришло внутреннее спокойствие, которого мне так не хватает в последнее время. Всё-таки дни оффлайна нужно устраивать чаще. Я бы вообще ушёл на неделю в полуоффлайновый режим, выходя в Сеть только по вечерам, где-нибудь с 19 до 21, но увы, нет такой возможности.
Разгрузив так голову, выбрался на велопрогулку. Погода была так себе, день довольно мрачный, поэтому решил далеко не ехать, а просто наматывать круги по окрестностям. Один раз спустился к большому водоёму, и долго стоял на его берегу. Ветер гнал мне навстречу небольшие волны, серое небо отражалось в воде. Природа была суровой и мрачной, и почему-то я представлял себя далеко на Севере, где-нибудь в Карелии, на берегах какого-нибудь малоизвестного озера. Потом доехал до другого пруда. Тот пруд в прошлом году почти пересох, но в этом из-за строительства дороги ему перекрыли сток, и он с весны полон водой. Постоял немного и на его берегу, но на этот раз особых впечатлений не осталось.
Вернувшись домой, обнаружил, что приложение-геотрекер отключилось где-то после получаса прогулки (реально я катался где-то час двадцать). Из-за этого не получилось узнать статистику: среднюю скорость и суммарное расстояние. Впрочем, расстояние можно приикинуть и так — должно получиться что-то около 12—13 км.
Потом после долгого перерыва попытался было поиграть в Arcanum. Но, как выяснилось, под wine он ощутимо тормозит. Хотя странно: когда-то ведь вполне получалось. Возможно, есть какой-то конфликт с чем-то из запущенного софта. Нужно будет попробовать как-нибудь на свежезапущенной системе. Зато, загрузив сохранение, вспомнил, что в свой прошлый уход в оффлайн я всё же прошёл игру до конца тем персонажем, которого тогда создал. Хотя до этого думал, что забросил.
А вечером возникло то самое чувство уединённости и удалённости от цивилизации, которое было так знакомо мне в первые годы жизни на даче, до того, как я купил WiFi-роутер. До сих пор не знаю, правильным ли решением была эта покупка. Или лучше было поступать как и раньше: приезжать на дачу только на несколько дней и использовать Интернет по-минимуму, проводя всё время в прогулках и размышлениях.

День спокойствия

4X_Pro
Кажется, отоспался и пришёл в норму. По крайней мере, теперь снова спокойный и довольный жизнью. Только какая-то повышенная потребность в уходе в себя. Устроил себе день отдыха от разработки. Играл в игры, размышлял о жизни. Много (даже больше, чем хотел бы) времени ушло на общение в Сети. А вечером довольно долго сидел в беседке и созерцал дождь. Изначально хотел было выбраться сфотографировать закат, но этот дождь спутал все планы. Зато стало прохладнее!
В общем, день обошёлся без значимых прорывов, но в целом я им доволен. Только вот время летело как-то неестественно быстро. Постоянно оказывалось, что уже на час-полтора больше, чем ожидал.

Побочный эффект жары

4X_Pro
У жары выявился один неприятный эффект: из-за неё стал просыпаться раньше. Уже второй день хожу не выспавшийся и на всё раздражаюсь. Только где-то около 17 часов заснул минут на 20, и хоть немного пришёл в себя. Но всё равно, звуки мессенджеров всё ещё очень раздражают. Welltory показывает весьма высокую продуктивность, но низкий (даже по моим меркам) уровень энергии: около 50%.
Вечером даже смог доделать вёрстку списка сообщений в новом движке. Долго не мог определиться, как лучше сделать. Пытался в качестве примера смотреть и Яндекс.Q, и QNA Хабра, но как-то в голове цельной картины не складывается. В итоге сделал четыре разных варианта, но никак не могу определиться, какой лучше всего подходит. У каждого находится какой-либо недостаток. По-хорошему, надо бы их в свой чат закинуть и опрос провести, но лень делать скриншоты. Также опять подумываю о dev-блоге, но пока никак не решаюсь.
Ночью выбрался посмотреть на звёзды, и только это немного успокоило…

Неожиданный поворот Сетевого пути

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

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

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