23 грудня 2013

Измененное сознание или Точка невозврата 2

Логично писать этот пост в измененном сознании, не так ли? На что способен человек в этом состоянии? Вы скажете, всё зависит от того, "под чем" он находится? Да, каждая вещь меняет состояние по-своему, но что их всех объединяет?

Как бы там ни было, нужна "страховка". Я писал об этом в точке невозврата - иногда "звонок другу" становится последним шансом. Если хочется... если трезвое восприятие мира становится в тягость - что остается? Скажете, наркотики запрещены - но почему тогда алкоголь и табак так легко доступны? ГАИ контролирует водителей, а кто проконтролирует просто пьяных людей? Все знают, что пьяный человек - это потенциальный риск. Риск даже не столько для общества, сколько в первую очередь для себя.

Когда больного человека забирают в больницу, то не просто так просят, чтоб с ним кто-нибудь остался. Потому что больному может стать плохо? Потому что нужно снять ответственность с врачей? Больному вкалывают кучу препаратов. Я не медик - не знаю, почему эти препараты работают, но я знаю, что они тоже меняют сознание, а за человеком в измененном состоянии нужен присмотр...

Вам приходилось наблюдать поддатого, который говорит, что готов "свернуть горы"? Может, вы даже бывали на его месте? Когда человек еле передвигается, и при этом предлагает идти "к девушкам", или сесть за руль... Что может его остановить? Нужна страховка, нужен человек рядом, который способен вас остановить в этом состоянии, который будет терпелив. У всех вас есть такой человек?

Не читайте этот пост в трезвом состоянии - иначе вам не понять. Сейчас вам кажется, что вы знаете, сколько можно выпить, что вы умеете "вовремя остановиться", что вас сложно "склонить" (к разным вещам). Я скажу вам нет - вы не застрахованы, никто не застрахован. Сегодня вы планируете будущее, копите деньги, готовитесь к праздникам - а уже завтра встречаете рассвет на карнизе. А всё из-за того, что некому было вас остановить. Остановить в тот самый нужный момент, когда "точка невозврата" осталась позади. Не важно, что именно заставило вас эту границу пересечь - ведь чаще всего это какая-нибудь случайность, банальность, которую вы не предвидели, не в ваших силах было её предвидеть...

Читатель, я верю, что у тебя есть тот, кому ты позвонишь в этот момент. Поставь его номер на "быстрый дозвон". Ты думаешь, это твоя девушка (парень, муж, жена)? Что, если твое состояние будет вызвано именно ним (нею)? Ты думаешь, это твои родители? А смогут ли они приехать вовремя? Что, если твои родители уже сами не могут свободно передвигаться?

Чей номер внести мне? Кому я дорог? Кто заметит мое отсутствие? Сразу же приходит в голову работа... Но в канун праздников даже этот вариант находится под сомнением: когда офис пустой, когда все взяли отпуск и уехали отдыхать, когда в офисе лишь дежурные лица, разве кто-то на помощь придет?

Введите в гугл "служба помощи в Киеве". Вам милиция нужна? Или пожарники? Вдруг вам даже не скорая нужна? Кто поможет? Может, тогда и жизнь твоя никому не нужна, если не к кому обратиться за помощью?

Порой бывает, что помощь приходит не от близких, не от друзей, не от сотрудников, и даже не от специалистов каких-то служб. Это мягкое пушистое существо запрыгивает на тебя, начинает мурлыкать - и твоя жизнь наполняется смыслом. Это существо никогда не "соберет вещи", чтоб уйти от тебя. Это существо простит тебе любые ваши ссоры. Она способна вернуть меня из "точки невозврата" - а это самое главное. Это существо - всё, что у меня есть здесь и сейчас...

"Любовь - это лежать на неудобных скользких коленях неудобного скользкого, постоянно шевелящегося любимого существа, сползать с них каждые несколько минут, но не выпускать отросшие после стрижки когти, не цепляться, а шмякаться на пол, вздыхать, запрыгивать обратно на скользкие неудобные колени, сворачиваться клубком и снова сползать на пол, но не выпускать когти, не цепляться, падать, вздыхать и возвращаться - и так до бесконечности ..." (с) Макс Фрай.

18 грудня 2013

Точка невозврата

Любое наше действие - это изменение окружающего мира. Каждый наш шаг превращает одно состояние Вселенной в другое. И для многих из действий очень важно, в каком состоянии мы уже находимся сейчас. Пусть наше преобразование выглядит как функция f(x)=x2. Если наше положение x будет меньше 1, то мы приблизимся к 0. Стоит лишь на долю сделать x бóльшим 1 - и мы с каждым таким преобразованием будем уходить в бесконечность. Точка x=1 в данном случае - точка невозврата.

В мире много вещей имеют точку невозврата. Для кого-то этой точкой может стать первый поцелуй, для кого-то - поездка в другую страну, а кто-то не сможет остановиться после очередной дозы...

Все люди разные. Кто-то может дольше противостоять изменениям, а кто-то проявляет слабость к определенным вещам. У всех разные коэффициенты функций - и как результат, разные точки невозврата.

Мы можем сами доводить себя до точки, либо действие может быть внешним (болезнь, окружение), но суть точки невозврата в том, что вернуться без внешней помощи мы не можем никогда. Благо мир состоит из бесконечного множества факторов, способных повлиять на наше состояние. Чаще всего вернуться нам помогают близкие люди - ведь именно их влияние самое сильное и постоянное, а потому даёт намного лучшие результаты.

Но вектор действия может быть направлен и в другую сторону: примерный семьянин начинает флиртовать на корпоративе, ответственный сотрудник забивает на работу, всегда послушный мальчик-ботан становится убийцей. Мы порой сами не осознаем, как мы меняем людей. У нас ведь другие коэффициенты. Мы можем не догадываться, что невинные для нас 200 грамм виски для кого-то могут стать началом зависимости, контролируемый нами занос автомобиля для другого превышают пределы возможностей. Какой мы подаем пример? Антуан де Сент-Экзюпери писал, что мы в ответе за тех, кого приручили. Я бы слово "приручили" заменил на "приблизили" - ведь именно оно больше подходит по отношению к близким нам людям.

Человек - разумное существо. Он понимает, что выйдя за пределы, можно не вернуться. Но многие экспериментируют с этим пределом. Интересно ведь знать, сколько ты сможешь выпить, сколько пролежать в горячей ванне, как долго сможешь не спать. Иногда мы это делаем ради интереса, иногда ради удовольствия, иногда, чтоб что-то доказать, а иногда лишь для того, чтоб нас заметили - вены режут не аутисты. Если вовремя не остановиться, не изменить что-то, может стать слишком поздно. В таком случае "звонок другу" становится нашим последним шансом...

01 листопада 2013

Не о тебе

Я буду писать не о тебе. Потому что не могу писать о тебе, не раскрывшись, не написав чего-нибудь лишнего. (Или не лишнего, как ты считаешь?)

Да, написав пост о море, я выкинул всё личное - и получил тем самым очень сухое изложение. Это совершенно не соответствует тому, что реально со мной происходило.

Ты говорила, что у меня с тобой будет ассоциироваться фраза "Привет, Шах", а на самом деле, я на всю жизнь запомню в первую очередь твои серо-голубые (как и у меня) глаза. А чего только стоит наш с тобой заказ: виски и "секс на пляже"! - Лиза таки ошиблась, подавая его ☺. Да, "Jack" - это дешевый напиток. Но именно благодаря тебе я полюбил виски (о чем и написал в "17 дней в Крыму"). Балет, литература, кулинария - есть темы, которые мы с тобой не затрагивали? Помню, я даже рассказывал тебе анекдоты из области физики. Три дня в моей жизни оставили больший след, нежели годы общения с другими людьми.

Буквально сегодня рассказывал лучшему другу про Севастополь, бутики, загс и паспорт (это еще одна из вещей, о которых я не писал в блоге). Не писал об этом, потому что лишь у меня это вызывает определенные переживания. Рядовому читателю это будет абсолютно неинтересно. Действительно ли я хочу, чтоб этот пост читали все, или я не хочу, чтобы его прочитала ты?

Пытаюсь не думать о тебе, убеждаю себя в том, что я тебе не нужен: у меня живет цветок в горшке, я не знаю многих экзотических слов, которые ты употребляешь, живем мы далеко друг от друга, у меня дома голые стены, в моей жизни пока что не было мотоциклов и я люблю весну... Но я ли это? Ведь я писал, что на 90% я состою из людей, с которыми общаюсь.

"Боже, какой пустяк - сделать хоть раз что-нибудь не так", - пел А. Иванов. Но для меня это не пустяк: я на самом деле не так часто "готов на всё". А иногда одно твое слово, один намёк может меня подтолкнуть к тому, чтобы сделать шаг...

Помню, как мы говорили о том, что тяжело впустить человека в свою жизнь - особенно, когда ты уже долго живешь сам, делаешь, что хочешь. Если появляется кто-то, кто навязывает свои ограничения, либо делает то, что к чему ты не привык, или что тебя раздражает - это всегда приводит к ссорам, или минимум к недовольству. А такие вещи всегда будут... Да-да-да - это очередная "отмазка", способ оправдать свое бездействие, оправдать нежелание строить новые отношения. Но этого ли мы хотим в конце концов?..

Тебе нравятся слова написанные (не произнесенные). А я всегда считал бóльшим вызовом открыть свои чувства словами, нежели на письме. Помню из детства: писать записки было легко, подойти и сказать хоть слово - сложно, будто мир при этом переворачивался.

Ты говорила, что я был очень сдержан в своем описании Крыма. Сегодня я попытался быть более открытым. Чувствую, что это не всё, что я мог бы и хотел бы сказать... А остальное - либо читай между строк, или же я тебе скажу при встрече.

23 жовтня 2013

Не обо мне

У меня живет цветок в горшке. Это подарок. Вряд ли я купил бы сам себе цветок. Моя литература для чтения - это либо подаренные книги, либо посоветованные кем-нибудь. Вот так и получается: термос - от компании, наручные часы - подарили, кошка - осталась у меня, потому что бывший сосед не смог ее забрать с собой. Большая часть моей жизни состоит не из меня, а из людей, с которыми пересекалась моя жизнь. Есть на эту тему поговорки: "скажи мне, кто твой друг - и я скажу, кто ты", "с кем поведешься - от того и наберешься".

В социальных сетях (Twitter, Facebook, Vk), если посмотреть на thread сообщений человека, то 90% - это re-post. Где рождается новый content? Кто его придумывает? Когда подписываешься на ленту сообщений контакта, что ты ожидаешь увидеть? Его мысли, мечты, чувства? Ты увидишь то, чем он интересуется, увидишь, что ему понравилось, что рассмешило... Разве от того, что появились social networks, в мире прибавилось писателей и творцов? Когда-то мы общались с реальными людьми. Потом пришла эра IM. Мы смогли общаться с людьми всего мира. Главное - это было найти собеседника или чат, в котором тебя бы выслушали. Социальная сеть даёт еще больше возможностей (иллюзий) - тебе кажется, что тебя читает весь мир! Писать сайты, блоги - кому это нужно? Кто оценит? Лучше напиши 120 символов в Twitter - и будь популярен. Главное, не забудь поставить #hash-tag!

Ссылка, ссылка, ссылка, smile, ссылка, ссылка, thumbs up - так выглядит история сообщений в тематических чатах. Мы состоим почти полностью из ре-постов. Принимая важное решение, мы советуемся с близкими нам людьми. Даже выбирая фильм, или делая покупку, спрашиваем мнения и отзывов. Нам важно мнение окружающих. Мы делаем то, что от нас требуют нормы закона, морали, этикета. Как узнать человека по-настоящему? Когда проводишь время с кем-нибудь, откуда ты знаешь, что он не притворяется, не пытается выглядеть тем, кем не является?

Удивительно: нам часто не о чем поговорить с людьми, которые с нами рядом все время. Да, они о нас всё знают - потому нам сложно придумать, что нового мы можем им сказать. Чужим же людям мы можем долго и много рассказывать о себе. Более того, завоевать внимание постороннего человека - намного большее достижение (challenge accepted). Обратить же на себя внимание близкого человека всегда легко. Но когда рядом с тобой нету близкого человека?

Идешь утром на кухню - не для того, чтоб выпить кофе, а на перекур - не для того, чтоб выкурить сигарету. Не просто же так ты при этом всегда ищешь себе компанию. Когда человек проводит много времени в одиночестве, он жаждет общения. Мне часто в связи с этим вспоминается картинка "интроверт в отпуске":
Аскеты, которые проводили в одиночестве всю жизнь, были счастливы? А не было ли это сделано лишь ради того, чтоб о них говорили, чтоб их помнили? Будь я на месте космонавта на картинке, я был бы рад узнать, что моя фотография разошлась многомиллионным тиражом. "Trolls" - люди, которые всего лишь жаждут внимания, пусть оно будет даже отрицательным. В наше время, когда близкие люди уделяют большую часть времени не нам, а малознакомым friends в интернете, компьютерным играм, чатам в скайпе, передачам и сериалам, когда телефонный звонок важнее разговора с другом, которого не видел с детства... Таким образом мы пытаемся успеть везде, но при этом теряем себя.

14 жовтня 2013

Мы не умеем любить

Мы не умеем любить. Мы никогда не любим конкретного человека, мы любим что-то другое. Когда вначале отношений (или даже до них) мы начинаем испытывать чувства, эти чувства хоть и направлены на конкретную личность, все же основаны они на нереальном образе, достроенным нашим воображением на основании реальности. Ведь есть сотня, тысяча, миллион нюансов, о которых мы не знаем. Из этих миллиона нюансов есть тысяча, которые вполне могли бы испортить чувство влюбленности. Можно вспомнить хотя бы фильм "Трасса 60", когда герой впервые встречает свою возлюбленную в реальности...

Раньше я писал, что можно любить воображаемый образ, персонаж из мультфильма/фильма/игры. Я ошибался: на самом деле, только так и можно любить. Нельзя любить реального человека. Даже о самых близких тебе людях ты знаешь максимум три четверти их реальности. Да что говорить о близких - ведь даже о себе ты не помнишь многого: как вел себя во втором классе, как общался с родителями в детстве, как впервые сказал слово... Кто ты на самом деле? Тот человек, которым ты себя сейчас представляешь - это может быть совсем не то, что находится в голове любящих тебя людей.

У всех есть свой "скелет в шкафу". И даже, представим, ты поделился этим "скелетом" со своей половинкой. Ведь то, что тебе кажется изъяном, для твоей половинки может показаться лишь глупой мелочью по сравнению с другими твоими недостатками, которые день за днём подтачивают ваши отношения изнутри. Порой вещи, на которые мы не обращаем внимания, досаждают нашим близким больше, чем всё остальное. И со временем наступает момент, когда чаша переполняется.

Мы не умеем любить. Даже в самых длительных отношениях наступает момент, когда надо чем-нибудь эти отношения укрепить: пусть это будет мелочь в виде букета цветов, вкусно приготовленного ужина, незапланированного свидания или всего лишь искры желания в глазах. Но порой и это заканчивается. Тогда на помощь приходят воспоминания. Тёплые воспоминания о приятных моментах в вашей жизни. Тогда они не казались столь важными - вы просто были вместе, были счастливы. А сейчас, возможно, именно этими моментами держатся ваши отношения. И это не значит, что не будет больше таких моментов - это всего лишь значит, что мы не умеем любить здесь и сейчас. Мы любим те моменты, мы любим свои воспоминания, а не человека, который с нами. Но ведь тогда, в минуты счастья вы любили? Вы всецело любили того человека, который рядом с вами, или же любили того человека, кем он есть лишь в тот самый момент? Ведь нет гарантии, что послезавтра вы не узнаете о нем что-то, из-за чего ваши чувства полностью пропадут. Это не любовь, какими бы сильными не были чувства в тот самый момент.

Тёплые приятные воспоминания... Именно о них вы будете жалеть и вспоминать после расставания с человеком. Будут другие моменты счастья, но они никогда не повторяются.

Это не должно и не будет мешать людям признаваться в любви. Любовь - это "теорема, которую нужно доказывать каждый день" (из фильма «Тот самый Мюнхгаузен»). Если наступает тот день, когда "теорема" будет опровергнута, значит это была не любовь, а вы лишь очередной раз нарушили обещание. Признание в любви - это и есть то самое обещание любви, но не сама любовь - ведь мы не умеем любить!

Продолжение - Paula rhei

13 вересня 2013

17 дней в Крыму

My Chemical Romance - Mama

Дорога

Разумеется, любая поездка начинается с дороги. Зачем-то все меня отговаривали ехать на машине. Родители волновались, что в Крыму сложные серпантинные дороги, друзья говорили, что комфортнее за эту цену уже самолетом лететь. Даже в Крыму, когда снимал жилье, хозяева удивлялись, что я приехал сам на автомобиле.

Из Киева в Крым GPS предлагал ехать через Смелу, Кировоград, Николаев, Херсон. Если я не ошибаюсь, это основная дорога в этом направлении. Но некоторые ее участки просто не предназначены для такого пользования. Первый момент - это очень узкий мост. На нем даже две легковые машины не поместятся одновременно. Но самая большая боль автомобилиста - участок дороги с полным отсутствием дороги. Google считает, что его можно проехать за 20 минут. Реально же это займет чуть меньше часа. Компьютер в машине мне показал, что средняя скорость на этом участке у меня была 25 км/ч. Если водитель любит свой автомобиль, быстрее ехать не будет. Обочина здесь ровнее самой дороги. И даже рейсовые автобусы едут по встречной обочине...

"Как ты, Бель?" ©


21 липня 2013

Авто-тест, запускающий себя через GitHub

Сразу хочу предупредить, что данный код писался для собсвенного удовольствия и практического применения не имеет. Авто-тест открывает в браузере GitHub репозиторий самого себя, находит свой код на странице - и запускает его. Для написания авто-теста использовался PHPUnit, phpunit-selenium (Webdriver), и велосипед самописный "микро-фреймворк". Для ознакомления с реализацией, возможностями и скринкастом моего велосипеда прошу под кат.

Немного предыстории

Как показала практика, львиную долю времени при написании авто-тестов занимает написание и поддержка локаторов для элементов страниц, в каком бы виде они не были у вас представлены: XPath, CSS selector, etc. Почему бы не позволить добавлять, редактировать и удалять их прямо во время запуска теста? С этой идеи и началась разработка моего авто-фреймворка.

Что мой фреймворк умеет?

Умеет быть Объектно-Ориентированным. Не хочу сказать, что это лучшая парадигма в программировании, но как показывает мой опыт, ООП подход неплохо себя зарекомендовал. Напротив, процедурный код часто приходилось переписывать с нуля из-за невозможности дальнейшей поддержки. В моем велосипеде каждая страница тестируемого сайта - класс, имеющий те и только те методы, которые нужны на данной странице.

Покрыт unit-тестами. А также позволяет покрывать unit-тестами добавляемые классы страниц. Фреймворк старается следовать принципам SOLID, и класс страницы содержит тяжелый класс сессии (PHPUnit_Extensions_Selenium2TestCase) лишь как внешнюю зависимость.

Имеет все "плюшки" PHPUnit фреймворка. Нужен метод setUp() или tearDown()? - Пожалуйста. Нужен метод setUpBeforeClass() или tearDownAfterClass()? - Пожалуйста (В этом случае используется статический метод для создания объекта сессии). В любом из этих методов мы можем продолжать обращаться к selenium серверу.

Использует Composer для установки компонент. Вряд ли это можно преподносить как "фишку" (это уже мейнстрим). Но все же приятно в одну комманду иметь подготовленное для авто-тестов окружение.

Ну и самая главная фича моего маленького фреймворка - возможность редактировать локаторы в runtime. Нужно лишь у объекта страницы вызвать метод debug(). Авто-тест приостанавливает дальнейшее выполнение тест-кейса, открывает popup, позволяющий редактировать локаторы. Все изменения тут же попадают в файловую систему в сериализированном виде (предполагается, что в эти файлы нет нужды заглядывать). При закрытии popup окна тест автоматически продолжает свое выполнение. В общем, лучше один раз увидеть...

Пару слов о рекурсии...

Тех, кто не поленится склонить проект прошу обратить внимание, сколь мало усилий и изменений потребовалось, чтоб написать тест-кейс для двух страниц на GitHub. Файлы в папке var были сгенерированы с помощью описанной выше фичи фреймворка. При написании пришлось столкнуться с тем, что иногда при нажатии на папку/файл навечно зависает лоадер - и не подгружается контент выбранного элемента (для этого были добавлены try-catch блоки в код). Также на Firefox в данном тест-кейсе вылетает исключение "waiting for evaluate.js load failed" (на других сайтах, кроме GitHub, данной проблемы не было). Есть подозрение, что это баг Firefox драйвера, поскольку в Chrome все нормально. Сам тест-кейс определяет свой относительный путь в репозитории, идет по этому пути в GitHub, открывает raw (для упрощения) исходник самого себя, определяет, с какой по какую строчку нужно себя запустить, и запускает с помощью eval().

Послесловие

Четких планов по поводу дальнейшего развития "микро-фреймворка" нету. Как я уже писал выше, код писался лишь для собственного удовольствия. Но предложения, конструктивная критика и push-request-ы будут обязательно рассмотрены.

Скринкаст



P. S. Копия статьи на habrahabr.ru. Мой аккаунт ждет твоего инвайта.