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

Лог жизни

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


Решение большой проблемы

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

Три поездки в Заозерье

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

На следующий день всё же решено было встретиться втроём и провести намеченную фотосессию. К нам ещё должна была присоединиться к нам Т. — та самая знакомая Мика (ЛИЭ по соционике), чьё Сетевое имя не сохранила история. После такой долгой прогулки выбираться куда-то на следующий день не хотелось соврешенно. Да ещё накопилось отставание по тому курсу из пяти вебинаров, про который я уже поминал. Даже подумывал было отказаться, но всё же выбрался. У Т. есть машина, и Мик договорился, что они за мной заедут. Приехали они минут на 10 раньше, чем я ожидал. Из-за этого собирался в спешке и забыл взять с собой воду (хотя планировал) и карту «Стрелка». Встретились, всё хорошо. Мик зачем-то решил поснимать Т. прямо на фоне того леска у посёлка. Я удивился: вроде фон никакой и мусора много. Ещё подтроллил его: смотри, чтобы в кадр не попала табличка «Откачка ям и туалетов». Но он всё же решил поснимать, и дело затянулось почти на полчаса.
Когда всем это надоело, стали решать, куда едем дальше. Т. спросила, где тут можно купаться. Я сказал, что купаться лучше всего в новом карьере, который выкопали в прошлом году, но и в озере Данилищевом тоже купаются. Она сказала, что хочет на настоящее озеро, а все предупреждения, что там вода цветёт и может быть не очень чистой, предпочла проигнорировать.
В итоге собрались и поехали. Приехали на место. Тут Т. говорит, что озеро хорошее, можно и купаться, и вечером будет рыбу ловить.Я с лёгким недоумением: «это мы тут до темноты сидеть собираемся?». И вспомнил, что с собой нет ни денег, ни карт, ни маски, чтобы в автобус сесть, чтобы вернуться одному. В голове стала крутиться мысль о «весёлой» прогулке от Заозёрья до дома по жаре и с обезвоживанием.
Т. пошла купаться, а Мик стал фотографировать то меня, то собачку, которую привезла с собой Т. Кстати, у собачки необычное имя: Кис-Кисыч. Параллельно мы с Миком что-то обсуждали, а я пытался изобразить из себя бетанца, но мне не давала покоя мысль о возвращении. Так прошло довольно долго: потом выяснилось, что Т. обплыла почти всё озеро по периметру.
Где-то часам к 17-ти Мик забеспокоился, что свет уйдёт, поэтому начали готовиться делать то, ради чего приехали: Мик — снимать Таню в образе ведьмы, а я — делать фоторепортаж «фотограф Мик за работой». Для этого Мик дал мне ещё одну зеркалку, но, как мне кажется, там тоже проблемы с фокусировкой. Кроме того, там объектив с большим фокусным расстоянием, и всё, что я мог им сделать — это либо портрет Мика по пояс, либо отойти подальше и снять в полный рост. Но на полноценный репортаж это как-то не тянуло. В конце концов, я на эту камеру забил и стал снимать своим фотоаппаратом. У него угол широкий, поэтому вполне получалось сделать так, чтобы в кадр попадали и Мик, и Т.
В общем, снимали довольно долго. Параллельно обсуждали ещё всякие системы архетипов и т.п. Я рассказал про то, как DarLik пыталась сделать мне фотосессию, в которой «приклеить» мне внутренне несвойственный образ делового человека. Т. привезла с собой кучу ведьминских предметов: ступу, книжку-ежедневник с соответствующим оформлением, полотняный мешочек, перстни и ещё кучу всякой мелочёвки. Также там нашёлся ритуальный ножи.
Этот нож навёл Т. на мысль: ведьма же может не просто колдовать, но делать ритуальное жертвоприношение! Объектом жертвоприношения оказался в итоге Кис-Кисыч (забегая вперёд: ни один Кис-Кисыч при съёмке не пострадал), а целью — сбить жару и вызвать дождь. Идею все одобрили, но оказалось, что с фиксовым объективом Мика это не так-то просто снять: от Кис-Кисыча были видны, в лучшем случае, только два глаза в траве. Пришлось перебираться на другое место.
Потом Т. поделилась со мной бутылкой воды и жизнь наладилась: переживания по поводу жары, обезвоживания и прочих неприятностей ушли. Впрочем, жертвоприношение было сделано не зря: набежали тучи и жара спала. Поэтому я перестал переживать, и мы снимали ещё долго. В итоге досидели до заката, и именно там получились самые удачные фото (по крайней мере, мои, сделанное Миком ещё не видел)! Я сделал отличный портрет Мика (если не считать забытой маски на подбородке), снял закат над водой, волны на озере и радугу.
Ещё там неподалёку какие-то ребята жгли небольшой костёр. Т. пошла к ним с просьбой, можно ли сделать пару кадров рядом с их костром. Они согласились, и она пару раз прыгнула через него. Мик стал говорить, что ничего не получится из-а того, что объектив без автофокуса. Тогда я на всякий случай снял ещё своим фотоаппаратом. Но стоял так, что в кадр попал велосипед, который там несколько неуместен. Впрочем, у Т. была мысль пофотографироваться в образе ведьмы с удочкой (что у меня вызвало разрыв шаблона), так что ведьма с велосипедом — это примерно того же уровня. Зато несколько кадров реально очень динамичные, передающие полёт.
К вечеру пошёл дождь. Из-за этого рыбалку отменили, и Т. с Миком отвезли меня обратно к посёлку, а сами поехали в Посад. По пути единодушно сошлись во мнении, что это был один из лучших дней лета! В общем, классно провели время! Правда, домой я вернулся настолько уставший, что сил на вебинар не хватило, и завалился спать раньше обычного.

Хаотичная активность на Дзене

4X_Pro
Вчера весь день ни на чём не мог сосредоточиться. И только уже ночью наконец-то доверстал страницу профиля пользователя для MLCE. Как всегда, кучу времени потратил на мелкие доделки, в частности, выпадающее меню с дополнительными действиями.
Из-за этого спать ушёл глубокой ночью, но из-за жары опять нормально не выспался. Зато, как только проснулся, пришла в голову идея. На Дзене не раз натыкался на хорошо раскрученные каналы просто с жизненными историями. И вот на таких каналах можно писать комментарии с разбором ситуации с точки зрения нашего Псибазиса, причём не от своего имени, а от имени канала, в надежде, что часть читателей, увидев толковый комментарий заинтересуется и зайдёт. Решил было её реализовать. Написал два комментария, потом наткнулся на статью про социализм и долго спорил там в комментариях. Но зато по итогам спора создал уже на своём форуме тему с некоторыми выводами. Ещё вчера подсчитал, как соотносятся дочитывания, лайки и комментарии. Оказалось, что на большинстве рассмотренных мной каналов лайки составляют 5—8% от дочитываний, а комментарии — 0.5—0.3%.
А вообще, день сегодня был каким-то тягостным. Да ещё и «день когда глючат компьютеры» получился. То ли недосып сказывался, то магнитный фон (сегодня индекс доходил до 4-х, что уже ощутимо), то ли это обычный эффект после завершения чего-то крупного. Хотя показатели состояния организма — в пределах нормы, только энергии маловато по данным Welltory. И только около полуночи, когда вышел из дома взглянуть на звёзды, пришло вдруг какое-то внутреннее спокойствие.
Ещё наткнулся было какой-то курс, сделанный очень любопытно — в виде игры-расследования, где ведущий усиленно изображает из себя Шерлока Холмса, который расследует дело по утечке жизненной энергии. Решил даже записаться, выполнил несколько предварительных заданий, но сегодня так и не посмотрел вебинар из-за траффика. Потом его выложили ВК, где, по идее, траффик безлимитный (да и вообще, вебинары в записи смотреть лучше в плане экономии времени), но увы, так пока и не собрался.

Недостаток глубокого сна

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

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

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.

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

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