Портрет 4X_Pro
Был в Сети 30 окт. 2024 г., 09:34
Мультиблог
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
Довольно странный сон сегодня приснился. Как будто я создал какое-то учение, которое позволило мне набрать достаточно сторонников для войны с Социофорумом. Что любопытно, во сне я его Социопомойкой не называл. Помню, как выступал с речью про то, что Социофорум должен быть уничтожен (причем не текстом, а именно голосом). А потом получилось так, что сторонники Социофорума вычислили меня в оффлайне, пришли ко мне домой, выломали дверь и то ли вынудили отречься от учения, то ли просто уничтожили все его экземпляры. И я понял, что нужно начинать все с нуля. Попытался собрать сторонников еще раз, но не получалось, и из-за этого чувствовал себя потерянным. В итоге проснулся гораздо раньше обычного, примерно в 10:40, и в довольно агрессивном настроении. Но быстро успокоился, правда, весь остаток дня теперь подтормаживаю из-за серьезного недосыпа. Но, может быть, это будет первым шагом к тому, чтобы ложиться спать раньше.

День иррациональности

4X_Pro
Вчера получился какой-то днеь иррациональности. Я сидел дома и никуда не собирался, когда на связь вышла DarLik и уговорила меня отправиться в кино. Сначала хотели на сеанс в 18:50, но когда я добрался до метро, стало ясно, что не успеваю (там еще от метро до ТЦ минут 10 шагать было), передоговорились на 19:05. В результате когда я к 19:03 подбежал к входу в этот ТЦ, обнаружилось, что DarLik еще нет, но есть от нее сообщение, что она тоже опаздывает. (Хех, DarLik — единственный человек, способный переопоздать меня.) И приехала только в 19:15. Потом решили просто прогуляться, но потом опять она передумала, в итоге отправились в другой ТЦ. Но даже несмотря на это, встреча с DarLik меня как-то успокоила, а то после той ситуации во вторник я все же как-то чувствовал себя не так. Еще впервые в жизни попробовал смузи и начал превращаться в хипстера, но не понравилось.
В общем, на прошлой неделе я целых четыре дня провел вне дома. С одной стороны, как-то много. Но с другой — во-первых, сейчас весна, один из лучших месяцев в году — апрель, и это нужно использовать по-максимуму. Тем более уже совсем скоро будет первый заезд на дачу, и по Городу гулять уже не получится. (В субботу даже подготовкой ноутбука занялся.) А во-вторых, сейчас необычный период: после того, как доделал сравнительно большой заказ по freelance, практически нет каких-либо внешних «надо», и поэтому не возникает того чувства «не успеееваю!», из-за которого я оставался дома.
А еще сейчас какие-либо долгосрочные собственные цели просто отвалились из-за того, что я перестал верить, что в современном Интернете можно чего-то добиться без раскрутки. И пришло какое-то противоестественное чувство свободы, построенной на отказе, из-за чего не могу понять, куда меня несет по жизни: то ли я взлетел, то ли наоборот, падаю в пропасть.

Поездка в Коломенское

4X_Pro
Сегодня отправился в Коломенское. Посмотрев вчера прогноз погоды, увидел, что с середины дня будет облачно, и поэтому хотел поехать утром. Но получилось как всегда: засиделся в Интернете до примерно 5:30 (никак не мог закончить тему с впечатлениями от книги М. Мэнсона). Поставил будильник на 11:15, но удивительное дело: несколько раз просыпался раньше, где-то в 9:00 и в 10:30. Но оба раза понимал, что если встану, то буду никакой, и поэтому засыпал снова. Причем второй раз, выглянув в окно, понял, что солнечная погода сохранится и на вторую половину дня, и переставил будильник на 13:00.
В итоге из дома выбрался только в 14:30. Сначала хотел ехать на Каширскую, чтобы пройти весь парк насквозь и выйти к Коломенской, но по дороге передумал, и вышел на Коломенской. Решил начать осмотр с северо-восточной части парка, куда заглядывал достаточно редко. И, надо сказать, не зря: добрался до музея деревянного зодчества, где собрано несколько старинных построек: церковь откуда-то из под Архангельска, надвратная башня какого-то северного монастыря, а также два острога. Жаль только, что сфотографировать их нормально не получалось: солнце было прямо за ними, и они получались черными. Еще раз убеждаюсь, что в Коломенском надо бывать по утрам. Сложность только в одном: я и выбраться из дома утром — понятия плохо совместимые.
Дальше спустился к реке. Прошел вдоль нее до Коломенского ручья, за ним поднялся на гору, откуда несколько минут созерцал тот вид, ради которого, собственно в Коломенское и поехал. Потом прошел через кладбище, впервые вблизи сфотографировал церковь Георгия Победоносца, и спустился в овраг — посмотреть ручей и родники. Решил пройти по оврагу до самого верха, чтобы найти исток ручья. И таки до него добрался. Точнее, не до самого истока, а до места, где ручей выходит из трубы. Удивительное дело, но в этой части оврага создается впечатление, что ты не в Городе, а где-то далеко-далеко, настолько все вокруг пустынно. Но зато наконец-то пришло чувство гармонии с миром, которого мне не хватало на первой части прогулки, и какого-то внутреннего покоя, которого не было уже вообще достаточно давно.
В дальнюю часть Коломенского я решил в этот раз не идти, и вернувшись по оврагу вниз, поднялся на левый склон и вышел к Конюшенному двору. Побыв недолго там (с улицы, без экскурсии, все равно много не разглядишь, пожалуй, самое интересное, что удалось увидеть — это живую лошадь, которая подошла к воротам, и высунула голову), решил, что пора уже отправляться к выходу, так как к этому времени только по Коломенскому ходил уже полтора часа. Потом вышел ко второй части яблоневого сада, и сделал удачную фотографию, которую можно назвать «дорога к храму». И затем уже отправился к выходу.
В общем, теперь можно считать, что Коломенское я обошел все (кроме разве что самой дальней части Дьякова оврага). А померив свой путь по Яндекс.Карте, с удивлением обнаружил, что прошел не так уж и много: примерно 7.3 км.

Неудачные игры

4X_Pro
Удивительно, как за буквально пять минут день может из вполне хорошего превратиться в отвратительный. (Впрочем, до Черной Вести 2013 года ему все же еще далеко.) Дело было так: списался сегодня с Tellой на предмет того, когда пойдем на настолки на этой неделе — в среду или субботу. И прикола ради добавил «можно и сегодня, но это уж совсем экстремальный вариант». И, видимо, высшие силы услышали меня и поняли по-своему. Короче, Tella оценила эту идею, и уговорила меня идти именно сегодня. Впрочем, уговорила все же в данном случае некорректно, скорее поставила перед фактом «решай сам» (вот она, обратная сторона 4В: помочь в ситуациях выбора с раскладом 50/50 они не могут). В итоге решил идти. И оказалось, что это было не просто плохое решение, а ОЧЕНЬ ПЛОХОЕ РЕШЕНИЕ.
Началось все вполне нормально. Мы с Tellой встретились на станции «Китай-Город» (и, редкий случай, я приехал раньше нее), пришли на место. Там уже было три человека, которые играли в Концепт. Tella присоединилась к ним, я пока изучал, какие еще есть игры. Потом решили играть в «Бэнг». Я пытался было уговорить народ на «Цитадели» или «Кондотьера», но эти игры знали не все, и желающих не находилось, а в «Колонизаторов» не получалось по причине того, что нас было пятеро.
В «Бэнг» игра шла плоховато. В первый раз я был помощником шерифа, но игра не шла: то карт не было, но ни до кого дострелить не мог, а четыре хода в конце вообще получал карту «Тюрьма». В итоге так шерифа и убили. Во второй раз мне досталась роль ренегата. Проблема в том, что в обычном «Бэнге» у него более сложная задача, чем у ронина в «японском»: нужно постоянно держать баланс между бандитами и командой шерифа, а не просто играть против тех и других сразу. Из-за неучета этой разницы я пару раз сыграл не очень удачно. И нашелся один придурок, который начал надо мной по этому поводу стебаться и говорить, что у меня с логикой проблемы. Это меня очень сильно разозлило, а дальше вообще началось то, что назвать иначе как «лютый треш», не получается. Во-первых, «удружила» Tella, которая нашла где-то в Интернете какой-то совершенно идиотский прикол и стала его всем показывать. Я, будучи на негативе, совершенно не въехал, в чем там дело, что вызвало у того придурка еще приступ смеха. В третьих, тут же рядом оказался тот самый тип, который в марте подкалывал меня по поводу PHP. До сих пор удивляюсь, как я не психанул после этого окончательно, и не начал крушить все вокруг!
Хотел было уйти, но там стали играть в ту новую игру, про которую я писал в субботу, и я решил переметнуться туда. Причем хотел отсесть подальше от тех, кто раздражает, для этого предложил поменяться Tellе местами, но та сначала тоже начала стала упираться, а я был настолько эмоционально заведен, что не мог объяснить ей внятно, зачем. В той игре дело тоже дело шло плохо. На начальном этапе я из-за злости с трудом соображал (плюс еще боялся, что подколы по поводу отсутствия логики будут продолжаться из-за ошибок уже в этой игре), более-менее в суть въехал только к третьему раунду. Но к этому времени уже было очевидно, что я — в отстающих. И тут случилась неприятность №4. Нашелся еще один человек, который, вспомнив мою реакцию на дни рождения, стал троллить тем, что у одного из присутствующих сегодня день рождения, рассказывать, как его поздравили, что подарили, и т.п. (И что в голове у таких людей происходит?) В обычном состоянии я бы его относительно вежливо потроллил в ответ + воспользовался бы возможностью прочитать проповедь на тему «дни рождения — зло», раз уж кто-то эту тему поднял, но в том, в котором я был тогда, на это просто не было ресурса.
Тут я понял, что то ли сегодня в мире какая-то дисгармония, то ли все с ума посходили, то ли еще что-то не так, но в любом случае, ничего хорошего ждать не приходится, нужно сделать то, что я называю «залечь на дно реки времени» до момента, когда мир снова не придет в гармоничное состояние. И чем быстрее это сделать, тем лучше. Встал и заявил, что ухожу, прямо посреди игры. Чуть было мобильник не забыл, хорошо хоть есть привычка проверять наличие основных перед уходом. Впрочем, один позитивный момент все же был: одна из участниц, выяснив про подкол с PHP, помирила меня с этим человеком. Он повел себя достойно: извинился, сказав, что не думал, что меня это так заденет, и пообещал так больше не делать.
Tella, увидев, что я ухожу в каком-то неадекватном состоянии, тоже пошла со мной. Попыталась успокоить, но увы, психософские интертипные и суггестивная ЧЭ дали обратный эффект. Когда я заявил, что зря она уговорила меня пойти, она стала что-то пытаться доказать через свою 2Л, но при этом еще и сильно эмоционально. Трудно придумать худшее сочетание: с одной стороны, мне настолько отрубило мозг, что не мог даже сообразить, в какую сторону идти к метро (в итоге так и вышли к Тургеневской вместо КГ), а тут еще пытаться понять какие-то ее доводы. В общем, началась открутка Сценария: я пытался добиться от нее согласия «да, зря», она пыталась мне там что-то объяснить и доказать, но эффект получался только обратный за счет подзавода по суггестивной ЧЭ.
Еще пару раз пытался затеять конфликты со случайными прохожими с целью хоть куда-то выплеснуть свой негатив, но высшие силы благополучно все отвели.
Зато пока ехал домой, понял, что категорически не хочу тратить один из дней на встречи с сэром Миком, и вообще, в последнее время слишком много времени провожу вне дома. В частности, сегодня так и не написал заметку про психологическую цену действия и ее суммарную минимизацию.

Позитивный весенний день

4X_Pro
Удивительное дело: резко изменилась погода, а с ней — и качество жизни, и настроение. Сегодня, глядя на улицу, решил пойти прогуляться. Сначала хотел отправиться в Терлецкий парк, потом передумал и пошел в Измайловский, к Красному и Декоративным прудам, в том числе и к первому (aka Собачий aka Желтый), а потом еще ненадолго вышел к Серебрянке. Прогулка в целом оставила приятное впечатление, но в начале я слишком уж сильно уходил в свои мысли и не замечал ничего вокруг.
Отчасти сказалось то, что уже почти когда я собирался уходить, на связь со мной вышел один человек по поводу моего бота SiteKnockerBot для мониторинга сайтов. Он сделал пожертвование на 15 WMZ и попросил меня увеличить для него лимит сайтов и добавить возможность проверять страницы приложений в Google Play. А еще я увидел, что количество сайтов на мониторинге у SiteKnockerBot уже достигло 750! Надо же, а я думал, им никто толком не пользуется…
Но еще выяснилось, что сайты с https он проверяет очень медленно. Да и вообще, полный цикл проверки всех этих 750 сайтов занимает около 140 секунд, несмотря на попытки распараллеливания средствами CURL. Задумался над тем, что надо бы переписать «простукивающую» часть на Go. Даже начал разбираться, как там работать с MySQL, и понял, что Go забыл практически совсем.
А вечером просто отлично поиграл в World of Tanks. Если до этого то и дело шли серии проигрышей, то сегодня все было наоборот: множество побед на ПТ и ЛТ, основательно подправил статистику, сильно просевшую за предыдущие две недели, но зато трижды проиграл на артиллерии.
Вечером еще стал смотреть Wikimapia на предмет того, какой же из прудов называется Совхозным — второй или третий Декоративный. Истину так установить не удалось: на Яндексе указано одно, на Wikimapia — другое, в Google Maps все три пруда называются Декоративными (как в старые добрые времена), возле самих прудов таблички переставили: там где раньше был Совхозный, теперь написано Декоративный и наоборот (собственно, с этого вопрос и возник). Но зато нашел в Wikimapia просьбу выложить фото одного болота, расположенного на хорошо известном мне месте (я там часто бывал раньше, пока его совсем не загадили), и выложил туда фотографии 2004 и 2007 годов. Так что хоть и небольшой вклад, но сделал.

Унылый день или внезапное возвращение зимы

4X_Pro
Сижу и смотрю в окно. За окном серый унылый серый день и противный снег, под которым мокрый голубь клюет половину булки белого хлеба, выброшенную кем-то из окна. Эх, а еще неделю назад казалось, что весна пришла окончательно и бесповоротно. Впрочем, бывало и хуже: в 2017 году снег выпал на 8 мая.
Вчера долго не мог уснуть. Сначала приходил в себя после настолок, потом долго пытался понять, почему на клиентском облачном сервере (куда я перенес сайты с того самого VDS, о котором писал на прошлой неделе) никак не работает подписывание писем с помощью openDKIM. Точнее, с этой проблемой я боролся еще с четверга. Сначала opendkim не подпсиывал их вообще, но с этим я разобрался быстро, а потом почему-то всякие Mail-Tester и ему подобные сервисы считали подпись неправильной. Причем много времени ушло на то, чтобы понять, что если слать через sendmail из командной строки, то все хорошо, а если через PHP-скрипт, то подпись оказывается некорректной. И только когда я это обнаружил, стало ясно, что копаться надо именно в скрипте отправки. Добавил туда заголовки Sender, Reply-To, Return-Path и после этого все заработало как надо. Но почему не работало сразу — так и осталось для меня загадкой.
Но к тому времени, как я с этим разобрался, было уже где-то 5:30. Решил, что хватит уже просыпать по полдня, и поставил будильник на относительно раннее (по своим меркам) время, но в итоге получилось почти по методу двойного будильника: я проснулся, выключил его, и залег спать еще на полтора часа. В результате за сегодняшний день успел только пообедать, посмотреть обстановку в чатах и на сайтах и написать эту и предыдущую записи в блог.

Первые настольные игры на новом месте

4X_Pro
Как я уже упоминал, «Гарцующий дредноут» 1 апреля закрылся, но наши организаторы нашли два новых места: в клубе Goldfish для субботних встреч и в заведении «Папа Вейдер» по средам и вторникам. Первую неделю я пропустил (и так три дня вне дома получилось), а на второй, посмотрев отзывы и фотографии тех, кто пришел, решил, что в Goldfish мне нравится больше.
Но идти одному в незнакомое место для меня всегда психологчески сложно, поэтому договорился с Tellой встретиться на Марксистской в 17:45. В итоге получилось очень своеобразно: я не смог не опоздать и приехал в 17:52, до места дошли в 18:14, и оказалось, что там еще никого нет! Я кинул в чат вопрос, кто когда будет, и только один человек отозвался, что уже на подходе с кем-то еще. Стали думать, что делать дальше — либо сидеть и ждать их, либо прогуляться по району. В итоге выбрали второе, и начали нарезать круги по местным улицам. Район там странноватый — тихие и довольно кривые улицы с полной мешаниной домов самых разных эпох: от небольших зданий, оставшихся то ли с XIX века, то ли с начала XX до типичных панельных домов 70-х — 80-х, и иногда попадается и что-то более современное. Пожалуй, единственное, чего не удалось найти — это как раз пятиэтажек. Еще попалось несколько весьма красивых церквей (впрочем, одну из них я видел прежде, когда проезжал мимо нее на ночном автобусе).
Где-то минут через 30 мы вернулись в Goldfish. К этому времени там уже было два человека, которые играли в игру под названием «Шакал» про поиски пиратских кладов. Решили, что когда они доиграют, будем играть вчетвером, я стал изучать правила, Tella — просто наблюдать. Игра мне весьма понравилась, но поиграть в нее так и не сложилось: потом пришел еще один человек, и мы с ним и Tellой «сообразили на троих» в «Карту сокровищ», причем один раз выиграл я, а второй — Tella. А когда первые двое доиграли в «Шакала», решили играть в «Бэнг». Увы, Ал.С. в тот день не было, а К.Ш. пришла позже, поэтому победили сторонники обычного «Бэнга», не японского (хотя он там тоже есть).
В «Бэнге» мне досталась роль ренегата (аналог «Ронина» в японском, но с немного другой задачей — устранить всех так, чтобы остаться один на один с шерифом). Сначала даже дело шло неплохо: совместными усилиями с бандитами грохнули помощника, потом я, хоть и не с первой попытки, смог устранить одну из опытных участниц, игравших за бандитов, и в итоге остался я, шериф и Tella, игравшая за бандитов. К этому времени все уже вычислили, кто есть кто, и вопрос был в том, кто кого быстрее успеет ликвидировать. Шерифу в этой игре повезло: у него был персонаж со встроенной способностью на неограниченное количество выстрелов за ход и винтовка с дальностью то ли 4, то ли 5. У меня одно время был пистолет Volcanic, который тоже обладал такой способностью, но дальность у него всего на 1, поэтому в какой-то момент я поменял его на другое оружие с дальностью 2, но одним выстрелом за ход. Это, видимо, было моей главной ошибкой за игру, так как в конце концов, шериф, накопив несколько бенгов, грохнул меня всего за два хода, а потом ликвидировал и Tellу. Но, по крайней мере, впервые в обычном «Бэнге» я смог продержаться большую часть игры, а не быть вынесенным сразу.
Потом пришел еще народ, и разделились на несколько групп: стали играть в «Колонизаторов» и «Имаджинариум». Последний — это та игра, которую я категорически избегаю (особенно там, где много малознакомых людей), поэтому я стал играть в «Колонизаторов». Карта получилась весьма непростая (причем винить некого: расстановку делал я сам): ресурсы распределились очень неравномерно, особенно камень и овцы. Причем я еще и ходил первый, поэтому для первого поселения выбрал вполне удачное место, а вот второе ставил последним и пришлось ставить куда придется. Впрочем, первую половину игры шел неплохо, достаточно быстро основал третье возле порта, взял две карты развития (это оказались рыцари, и я нацелился на то, чтобы получить бонус за самую большую армию), а потом дело встало. Начали часто падать 5 и 9, которые давали кучу ресурсов соперникам, а мне — ничего, но при этом перестали выпадать 6, 10, которые нужны были мне. А 3, которая дала бы мне кучу ресурсов, за всю игру не выпала ни разу, хотя даже 2 и 12 выпадали неоднократно. В общем, в «Колонизаторах» знание теории вероятности помогает не всегда, гораздо больше зависит от везения попасть на те числа, которых будет много именно в этот раз. Единственное что спасало — это более-менее регулярное выпадение 8, в результате которой я получал большое количество пшеницы сразу, которую затем менял через порт на другие ресурсы. Кое-как удалось поставить еще одно поселение, затем взять карту развития, которая позволила провести две дороги. Но за это время двое моих соперников ощутимо вырвались вперед. И в итоге я даже пятое поселение поставить не успел. Кстати, во время игры случился еще один довольно странный конфликт. Когда я поставил еще одно поселение рядом с пшеницей на числе 8, у меня появилась возможность получать три пшеницы вместо двух. Но поскольку 8 выпадала часто, я по привычке сначала взял две пшеницы. Потом вспомнил про третью, но участник, на чьем ходу выпала 8, начал возникать на тему того, что раз прозевал, значит прозевал (хотя я вспомнил еще до момента, когда он ход закончил, и на его действия это никак не влияло). В общем, чуть было не поругались всерьез. Эх, насколько же это отличается от ранних настолок у Н.П. и А.Ш., где все, наоборот, даже будучи соперниками по игре, в таких случаях подсказывали друг другу…
Потом играли в «Нечто» и снова в «Бэнг», но ни там, ни там особо интересного ничего не было, кроме разве что того, что Нечто окзалась К.Ш., и сожгли ее достаточно быстро, а я, оказавшись рядом с ней, поучаствовал тем, что вовремя развернул ход так, что до нее он не дошел, а потом посодействовал передаче одного из огнеметов нужному игроку через карту «Соблазн». (Впрочем, тот огнемет все равно сыграть не удалось, у К.Ш. была карта антишашлыка). После «Бэнга» я решил пойти домой, на дожидаясь остальных, так как при всех достоинствах у Goldfish есть один недостаток: плохая вентиляция, и от духоты я уже с трудом соображал. И по этой же причине не поучаствовал в освоении какой-то новой игры, которая, судя по фото, которые затем выложили, была весьма интересной.
В общем, от встречи осталось какое-то довольно противоречивое впечатление. С одной стороны, вроде и поиграли весьма неплохо (да еще к тому же в субботу был день бесплатных игр), с другой — я с самого утра, еще когда ехал на игры, был в каком-то немного заторможенном состоянии (да и не только я, тормозили многие, а остальные, наоборот, раздражались по этому поводу), а потом еще от недостатка кислорода стала болеть голова.

Вторая встреча с Миком

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

День вчерашний

4X_Pro
Вчера, решив проблему с «упавшими» сайтами, я лег спать. Проснувшись, соображал с трудом. На связь вышла Tella, стали обсуждать, что делать с прогулкой, которую мы наметили еще несколько дней назад на этот день. Я хотел было перенести все на субботу, но у Tellы получилось изобразить процессионную Волю и все же уговорить встретиться именно в пятницу. Сошлись на том, что перенесли время встречи на час позже, и я стал собираться.
Вопреки моим ожиданиям, прогулка получилась вполне спокойной и приятной. Мы снова отправились на север центра Москвы, на этот раз в район Трубной. Там свернули в 4-ый Колобовский переулок (да, опять бродим по всяким переулкам), вышли к Знаменской церкви, которую, собственно, и хотела показать мне Tella. Оттуда выбрались на улицу Петровка, к знаментому дому 38, где у одного из входов обнаружили памятник Жеглову и Шарапову. Затем ушли на Садовое кольцо, там увидели памятник М. Калашникову, причем установленный недавно. Дальше свернули на еще одну небольшую улицу (она называлась ул. Фадеева), и в итоге вышли к метро Белорусская, где потратили еще как-то время на фотографирование. И на этом разошлись.
Когда вернулся домой, в очередной раз пообещал себе, что ну уж сегодня точно лягу спать раньше. Но получилось как всегда: глубокой ночью я нашел необычный онлайн-квест под названием «Я тебя по IP вычислю» и решил его пройти. Сначала никак не мог понять, что к чему, но потом вспомнил описание прохождения другого квеста на Хабре, и дело сдвинулось с мертвой точки. Потом все уперлось в то, что не знал, как получить нужные данные из Redisа, так как простой GET не работал, а на большее не хватало знаний. Но где-то через час, почитав мануалы и попробовав разные варианты, все же справился. Следующий шаг требовал подключения к MongoDB. Это можно было сделать двумя способами: либо доделать полученный в ходе квеста кусок кода на PHP, либо через командную строку. И оба варианта не получались!
Но почему-то MongoDB — штука очень проблемная в плане работы с ней. В Ubuntu для нее по умолчанию ставится клиент древней версии 2.10, который не поддерживает механизма аутентифкации CRAM-SHA-1, который использовался на сервере, с которого требовалось вытянуть данные. А в PHP 7 полностью переделали extension для работы с MongoDB, сделав интерфейс из простого и логичного крайне сложным и неудобным, да еще с использованием кучи namespaces (как я ненавижу namespaces в PHP — это отдельная тема).
В результате в тот день я так и не прошел квест. Вернулся к нему сегодня (точнее, теперь уже это вчера). Вспомнил, что у меня есть виртуальная машина с Fedora Core, и поставил Mongo там. Оказалось, что там в дистрибутиве версия 3.x, которая поддерживает нужный метод аутентификации, и я наконец-то смог подключиться к серверу. Но и дальше было непросто: поскольку Mongo я знаю почти никак, пришлось потратить какое-то время на то, чтобы переделать код в PHP в запрос из командной строки, да еще и исправить недоделки. К тому же как всегда, в процессе я постоянно отвлекался. Но все-таки нужный запрос был написан, и данные получены, и, введя их на странице квеста, я получил радостное сообщение о том, что квест пройден!

Ну и ночь!

4X_Pro
Сегодня потребовалось обновить один клиентский VDS. Там стоит очень-очень старый Debian, который давно уже перестал обновляться. Но рисковать, переходя на новый релиз, да еще и не на следующий, не хотелось. Стал искать, что делать, и наткнулся на описание трюка, как можно обмануть систему и поставить пакеты из следующих версий.
Увы, это оказалось не просто плохой идеей. Это оказалось ОЧЕНЬ ПЛОХОЙ идеей. Началось все с того, что старая версия dpkg не понимала команду activate-nowait в пост-установочных триггерах и отказывалась ставить такие пакеты. Но не зря же я называюсь Настоящим Компьютерщиком. После недолгого поиска я узнал, как переупаковать deb-файлы (да и вообще про то, как они устроены, и как их собирать), и стал вручную в них исправлять activate-nowait на просто activate. После замены в нескольких библиотеках и ручной установки из исправленной версии выяснилась новая неприятность: в новых deb пути к библиотекам указывались иначе: не просто /lib, а /lib/i386-linux-gnu. Обнаружил я это не сразу, и к этому времени несколько утилит уже не работало. Пришлось немного почудить с symlinks, но в итоге все исправил почти со всем, кроме самой последней из установленных таким образом библиотек, про которую просто забыл.
Я уже собирался было идти спать, набрал exit и перешел из root-режима под обычного пользователя, как вдруг пришла в голову мысль проверить, работает ли ssh. И оказалось, что нет! Более того, отказал не только он, но еще и команда su, и одновременно обнаружилось, что на клиентских сайтах тоже все не работает.
Главное, сообрази я это минут на пять раньше, до того момента, как вышел из rootа, я бы исправил это элементарно. А теперь было непонятно что делать. Где-то час я лихорадочно пытался придумать различные обходные пути (например, запустить sshd под обычным пользователем на другом порту), но увы, все было бесполезно. Оставалось только написать в техподдержку хостинга в надежде, что там помогут, и лечь спать.
Заснуть так и не удалось. В голову лезли мысли о том, что backup на хостинге отключился из-за превышения квоты, а свой собственный у меня довольно-таки старый, и неизвестно, чем все это кончится. Около 7 утра я встал снова, проверил ответ от техподдержки, и о счастье: вопрос решили! Поставили Dropbear — более простой ssh-сервер, почти ни от каких библиотек не зависящий, и я снова смог подключиться к серверу и решить остальные вопросы.
В общем, узнал много нового (к счастью, не о себе), но ценой кучи нервов и бессонной ночи.

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

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