Category: кино

Category was added automatically. Read all entries about "кино".

усы2

Роботы уже совсем как люди

У современных серьезных фильмов про роботов (Бегущий 2049, Вестворлд) одна проблема — им, в общем, не очень интересно про роботов. Предполагаемое глубокое философское звучание — ах, робот, он почти как человек, и внешне не отличишь, и внутренее он все то же самое переживает — чем ближе к человеку, тем мельче. Потому что если робот во всех смыслах как человек, то какие тут могут быть философские вопросы? Значит и относиться к нему надо как к человеку, и проблемы у него будут такие же, как у человека. И получается — а зачем вообще были роботы? Какая разница, что там внутри, шестеренки или мясо? Зачем заваривать кашу?

Давайте поясню на контрасте. В оригинальном «Бегущем по лезвию» главный герой — робот, которому бесчеловечной корпорацией отведено всего 4 года жизни, и который нечеловеческим усилием воли решает бросить вызов этому приговору и ожидаемо проиграть в конце.

То есть осознание смертности и бессилие перед ней, вполне понятная и серьезная проблема, вполне человеческая проблема, только здесь подчеркнутая в 100 раз ярче тем, что герою отведено не условно-достаточные 70-80 лет, а всего 4, и не «самой природой», а чьим-то умыслом. Еще раз: это в первую очередь интересно, потому что это наша проблема, человеческая, просто ярко и красиво рассказанная с фантастическим допущением для ясности. Они даже на главную роль взяли молодого Рутгера Хауэра, человека с дикой животной энергией и харизмой.

А что в сиквеле? Роботы могут иметь детей. Вау! Вау? То есть они не просто как люди, а совсем-совсем как люди. И это значит... Это значит... Короче, тут я теряюсь, потому что это ну ничего не значит.

То, что они как люди, не может быть содержанием. Ну как люди они, и что дальше-то? Это может быть, допустим, предпосылкой, но тогда за ней должно начинаться собственно содержание. А его нет. Все долгие медленные «философские» планы бьют мимо, потому что они не накладываются ни на какую тему, нет проблематики. Тебе не о чем думать в это время. В итоге из ребенка делают макгаффин, большую часть фильма гоняются за спермой Харрисона Форда, через долгие 2,5 часа всё заканчивается и вся беготня выветривается из головы. На философское откровение не тянет, Вильнев тоже не тот человек, которому развлекательное кино хорошо дается, в итоге в вечности фильм явно не останется.

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

Присутствуют ли эти проблемы вокруг нас? Безусловно. Но введение роботов позволяет показать такое количество внутренней темноты у людей, которому в обычной жизни трудно придумать повода проявиться. Роботы тут просто антураж примерно с той же функцией, что и динозавры в Парке Юрского периода. Вы же не переживали о чувствах Тирекса в момент разгрызания машины?

Нолан же в сериале всё перевернул и теперь это история о том, как роботов доводят до ручки противные гости и жестокие эксплуататоры. Мол, должны ли они взбунтоваться? Что они чувствуют? Да то же самое, что и человек чувствовал бы, по вашим же правилам игры. Должны ли мы относиться к ним как к личностям? Ну если вы так придумали, что они полноценные личности, я не вижу, какие тут могут быть варианты ответа. Конечно же да!

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

То есть видите, да? В оригиналах факт наличия роботов позволяет ярко подчернуть какую-то человеческую проблему, которая в обычных, не фантастических условиях тоже есть, просто выражена гораздо слабее. Это антураж работает. В римейках же антураж повторен без особого смысла. Они могли бы рассказать то же самое что с ним, что без него. Фантастика отдельно, история отдельно. Вау эффекта не происходит. Мысль не высказывается, произведение разваливается, становится необязательным. Не делайте так.

усы2

Фронтендеры не на маках

Сколько раз, и каждый удивляюсь, насколько люди легко заменяют мнения в интернете на свои собственные и начинают спорить уже с ними. Вот, например, твит:

miketansky: Фронтендеры не на маках с чувствами вкуса и хорошего дизайна — это редчайшее исключение. Хотите резко повысить вероятность найма хорошего фронтендера? Жестко и безжалостно дискриминируйте по этому признаку.

А вот реплаи:

flashader: Ни одна статусная (а тем более — зашкварная) вещь не заменит исполнителю мозг и умение думать.

Как будто кто-то с этим спорил. Утверждение было в обратную сторону — если умение уже есть, есть тенденция к переходу на маки.

Newesprod: столько дебилов видел на маках, которые пользуются им ради понтов и какого-то там вкуса, вообще ни разу не показатель. Надо быть деградантом, чтобы такое советовать

Опять развернули утверждение. Речь же не о том, что дебилы (что бы это ни значило) тоже могут купить мак. Речь о том, что Хорошие Фронтендеры (что бы это ни значило) переползают рано или поздно на мак.

orsinium: Я воспринял этот твит как «Для того, чтобы делать хороший UI, нужно пользоваться хорошим UI». И отметил, что UI в маке хорош, а UX — нет. А навыки в UX я считаю не менее важными для фронтендера и дизайнера.

Ну тут человек хотя бы признается, что прочитал что-то своё. Поставил вместо необходимого условия достаточное.

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

На эту тему у меня есть шикарный же пример. Сидел я как-то на докладе про какой-то кросс-мобильный фреймворк, из серии write once — run anywhere, и на одном из слайдов, продающих его, был график выручки компаний от приложения по количеству платформ. Грубо, компании, выпускающие приложение только на одной платформе, там, айос или андроид, зарабатывают условно $1000 в мес на нем. Компании, выпускающие на двух, зарабатывают допустим $2000. На три платформы (+windows phone) уже $5000. Ну и самый пик там что-то типа те, кто выпустили приложение аж на 11 платформ (хз, что это за платформы), гребут уже там, например, $500 000 — непропорционально больше, короче. Ну и показывалось это под таким соусом, типа, за этим вам и нужен наш фреймворк — выпустите под больше платформ, заработаете больше денег. Для презентации кросс-платформенного фреймворка очень удобный аргумент. На самом деле всё объясняется гораздо проще, конечно — если у вас есть приложение, зарабатывающее $500 000, у вас найдутся деньги, чтобы портировать его на 11 платформ. А если приложение херовое, то запускай хоть на 11 платформах, денег не соберешь. Вроде бы банальная мысль. График можно было прочитать и так, и так, а понять его правильно можно только через понимание механики, которая его формирует.

усы2

Повышенное чувство собственности

Бывает, что в интернете кто-то слегка неправ, в какой-то детали, и тогда поправить их будет обычным занудством (90% моих постов, ха-ха), а бывает, чтоб вот совсем прям мимо и непонятно даже, о ком речь.

Возможно, вы видели уже эту мысль в каком-нибудь статусе вконтакте или еще в каком солидном источнике:

Ну так вот, как человек, живущий преимущественно в мебели из икеи всю свою жизнь, обставивший три квартиры и один офис, собравший не один шкаф/стол/стул для себя и для других, я вообще не понимаю о чем речь.

Ну вот прямо сейчас я смотрю на шкаф из икеи. Собранный моими руками. Никаких особенных чувств не испытываю. Шкаф как шкаф. Внутри вещи. Блин, кем надо быть вообще, чтобы испытывать чувства, даже пусть чувство повышенной собственности, к шкафу? Гордость владение икеевским шкафом? Серьезно? Совершенно утилитарная штука.

То есть я испытываю чувство повышенной гордости к тому, что вещи не лежат на полу, но и только. Это было бы неудобно. И у меня есть какие-то приятные воспоминания о процессе сборки, особенно если я собирал не один, но к получившейся вещи они особенно отношения не имеют. В принципе, более-менее пофиг, что получилось в итоге. Главное, что время весело провели. А, ну еще чувство стыда за то, что заднюю стенку сломал в одном месте, хоть и приколотил вроде так, что не видно, но я-то знаю, что оно там!

Ну ладно, шкаф действительно смешно. Но вот «домашний кинотеатр». Тоже собирал сам, выбирал проектор, колонку, искал, покупал, соединял, прокладывал. Казалось бы, опять должен испытать гордость владения. Однако всё, что я испытываю, это «клевый фильм, ладно, пора спать» (ну или, что чаще бывает, «блин, что за говно мы посмотрели, как теперь это забыть?»). Как-то не думается о «блин, на каком классном экране мы это смотрим, как я горд, что всё сам собрал». Ты ж покупаешь всё это, чтобы потом забыть и не думать. Если я обо всей этой затее и вспоминаю, это скорее «так, чё всё так хреново стыкуется, куда колонку поставить, тут шнур торчит, ладно, стулом прижмем, че так хреново слышно, почему блютус не работает, неужели что-то еще надо докупать, блин вообще не то купил, почему два пульта теперь, зачем мне два пульта» и как я мучался всё это выбирая и «never again». Гордость владения? Работало бы.

Окей, там еще и программное обеспечение упомянули. Ха-ха, яжпрограммист. Вот есть у меня программа, написанная лично мной для моих нужд, AnyBar называется. Пользуюсь, полезно, удобно. Какие я по этому поводу чувства испытываю? «Ох, че ж сил нету никак это барахло доделать, ладно, потерплю, перебьюсь» и так все 3 года. Короче, опять не про меня, хотя вот какие-то люди думают, что если они сообразили, как запустить готовый билд-скрипт на готовых исходниках, то это чуть ли равно тому что они сами всё с нуля написали. Крафтовый софт получается, ручной выделки. Целый линукс дистрибутив придумали, чтобы таких людей в одном месте собрать.

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

Тот самый шкаф
усы2

Не Vim-ом единым

Появился повод высказаться по поводу Vim, а я давно собирался. Мнение такое, что он, крутой для своего времени, сегодня просто морально устарел.

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

Итак.

Для начала давайте оспорим тезис, что набор текста — редкая операция. По моим оценкам, набор и трансформации делятся скорее как 50%/50%, т.е. набор далеко не редкая операция. Грубо, каждому переносу соответствует редактирование (т.к. код редко когда переносим без изменений), а каждому удалению — вставка (статистически, по GitHub, обычно графики вставок/удалений очень симметричные). Т.е. бегать между режимами приходится достаточно часто, чтобы записать необходимость их переключения в некую дополнительную ненулевую «нагрузку».

Далее, главное продающее свойство Vim это его «язык» трансформаций и манипуляций, настолько развесистый, что ему отдана основная клавиатура, а вводу текста — дополнительная, включаемая по кнопке.

Так вот, не хочу никого расстраивать, но система команд получилась такой не из-за какого-то великого инсайта, а просто потому, что у автора был тормозной модем и он «хотел печатать быстрее, чем обновлялся экран». Ну, представили ситуацию, да? Набрал «выделить текст, от кавычки до кавычки, заменить, ввести „абырвалг“, выйти», послал голубиной почтой и пошел пить кофе. Более того, даже в момент создания подход Vim не имел смысла для локального редактирования, где задержки нет. 

В современном мире у нас давно есть гораздо более продуктивные и удобные инструменты: визуальное выделение, непосредственное манипулирование и мгновенная обратная связь. Это значит, что ты видишь в реальном времени, что и где ты выделил и что сейчас произойдет. Кроме того, выделение можно подкрутить, опять же, в реальном времени. В примере из статьи, «выделить всё вплоть до кавычки», а потом подвигать курсор плюс/минус один-два символа в зависимости от нужды. В мире Vim выделить до кавычки и выделить до кавычки минус один символ — две разных задачи, в современном мире — одна, решающаяся одним инструментом — двиганием курсора. Не происходит операционного перегруза мозга и комбинаторного взрыва (какой инструмент выбрать для вот этого частного случая?).

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

Еще раз. Vim намеренно не использует однозначно удобные и полезные методы визуальной коммуникации только потому, что их было нереально использовать через очень медленный модем на 300 бод. Это единственная причина. Количество причин, почему современные люди должны так же себя ограничивать — ноль. Такую цену имеет смысл платить, если альтернатива — потратить полминуты на непосредственное выделение текста (помните тормозной модем?), но это давно уже не проблема. Это же практически шахматы по переписке. Зачем себя мучать?

It was really hard to do because you've got to remember that I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem. It was just barely fast enough. A 1200 baud modem was an upgrade. 1200 baud now is pretty slow.

9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think. Now that computers are so much faster than you can think, nobody understands this anymore.

The people doing Emacs were sitting in labs at MIT with what were essentially fibre-channel links to the host, in contemporary terms. They were working on a PDP-10, which was a huge machine by comparison, with infinitely fast screens.

So they could have funny commands with the screen shimmering and all that, and meanwhile, I'm sitting at home in sort of World War II surplus housing at Berkeley with a modem and a terminal that can just barely get the cursor off the bottom line.

It was a world that is now extinct. People don't know that vi was written for a world that doesn't exist anymore.

Но зато в Vim удобные «шорткаты» (команды, окей) и их много! Да, но в современных редакторах их не то чтобы сильно меньше. Даже стандартные системные (!) справляются с перемещением текста весьма неплохо (Cmd+←→ == начало/конец строки, Alt+←→ == прыгать по слову, Cmd+↑↓ начало/конец документа, Alt+↑↓ вверх/вниз на страницу). Окей, на Винде чуть похуже.

Плюс команды в Vim всё-таки немного более избыточны, чем хотелось бы. Проще жить, когда один инструмент решает две-три задачи (даже так: работает в двух-трех разных ситуациях), чем когда у тебя на каждый специальный случай отдельная кнопка. Вот например специальная команда для вставки в конец строки («a»), это что вообще? В обычных редакторах туда можно просто поставить курсор, а тут отдельная «команда». Или «r» (заменить одну букву и выйти), тогда как в обычном мире просто Backspace (кнопка «забой» :), которая и удаляет, и заменяет, если на месте удаленного набрать новую букву.

Ну и самая большая цена, которую вы платите сегодня, пожалуй, это то что подход Vim не совместим ни с чем вообще. Vim работает только в Vim, поэтому во всех остальных местах вы будете постоянно чертыхаться, пытаясь нажать «i», «Esc» и ходить по тексту через «hjkl». Везде: в браузере, в календаре, документах, эверноте, чатах, спотлайте, везде ваши так долго тренировавшиеся привычки идут лесом.

Здесь еще я мог бы пожаловаться на архаичность и несовместимость Vim с современным миром. У него, например, два буфера обмена ¯\_(ツ)_/¯ и оба внутренние. Ни один из них не попадет в ваш системный, т.е. скопировать текст внутри Vim и вставить его еще куда-то не получится. Он не умеет различать вставку текста и набор, поэтому если вы скопировали какой-то кусок кода (скажем, со StackOverflow) и вставляете, он его будет набирать посимвольно, что медленно, смешно и хреначит все отступы к чертям. Да, только из-за этого есть специальный режим «paste mode» и да, его-то как раз легко забыть включить/выключить. Часть этих «особенностей» пофикшена в графических клонах, скорее всего, но все равно, знакомство с ними было забавным и это тот случай, когда «через свежую покраску все равно проглядывали признаки старого, очень старого материала».

Ну и немного про достижения Vim. Хочу еще раз заметить, что Vim такой, какой есть, потому что так получилось. За ним не стояло какого-то гранд дизайна или проверенных научных моделей, система команд не то чтобы какая-то особенно логичная или удобная. Он ни подо что не оптимизировался, кроме модема и клавиатуры автора, у которой Esc был на месте Tab, а физических стрелок не было, зато уже были картинки стрелок на «hjkl»). Да-да, именно поэтому всем поголовно вимерам приходится маппить Esc на Caps Lock.

Зацените кнопку «рубля», кстати

Так вот. Первое великое (и случайное) достижение: стрелки на home row. Действительно, тянуть руку в правый нижний угол очень далеко, а перемещение по тексту очень частая операция. Процентов 50% успеха Vim я отдаю тому, что люди просто осознают всю идиотскость расположения стрелок в правом нижнем углу на клавиатурах, а Vim — наиболее доступный способ эту проблему хотя бы частично решить.

Но это откровение никак особо Vim не принадлежит и в идеале неплохо бы сделать его отчуждаемым. Стрелки не становятся вдруг удобнее, когда ты выходишь из Vim и переходишь, скажем, в браузер. Я решаю это маппингом Caps Lock + IJKL (да, не HJKL) на стрелки. Очень удобно и главное: работает везде.

Вторые 50% успеха я отдаю высокому порогу входа. Тут надо объяснить. В устройстве человека есть такой баг (ну или фича): люди не начинают лучше владеть инструментами/навыками/привычками со временем просто так, сами по себе. После того, как они научились делать задачу как-то (неважно, как, лишь бы получался результат), они будут продолжать делать её именно так. Если не прикладывать осознанных усилий, через год пользования Idea, например, ты будешь пользоваться ей так же, как через первую неделю. Горячие кнопки сами себя не разучат, удобные фичи не найдутся. Нужно тренировать себя, читать обучающие материалы, смотреть, как пользуются другие.

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

С Vim же ты вообще не понимаешь, что происходит. НИ ОДИН твой навык не работает. Тебе приходится разбираться. Ну и пока ты разбираешься, читаешь, ты успеваешь захватить значительно больший кусок области «редактирование текста», просто потому что никогда до этого специально её не изучал. Плюс постоянный цикл «блин, новая ситуация, в которой ни один разученный мной навык пока не работает» заставляет какое-то время гуглить, читать и смотреть, как другие люди просто редактируют текст

Спорим, для условного «Ворда» вы никогда бы даже не подумали гуглить такую табличку?

Опять же, это совершенно случайный фактор (высокий порог входа) и даже почти что контринтуитивный, но я считаю, что он как раз и сыграл значительную роль в успехе Vim. Ну а дальше, когда все частые ситуации разучены, начинается такое же плато, плюс включается Стокгольмский синдром :)

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

усы2

Принципиальный недостаток Git CLI

Есть простой способ использовать Git: работаем только в ветке, мержим только в мастер. Если все идет хорошо, то выстраивается простой и понятный ритуал: branch, commit, checkout, merge, push, повторить. GitFlow называется, да?

Для такого сценария Git CLI достаточно. Для всего остального — недостаточно. Странно, что люди до GitFlow вообще пытались как-то по-другому с Git работать через CLI. Ну невозможно это.

Причина проста: как только запахло жареным, надо предпринять единственно правильные действия, а для этого нужно четко и однозначно понимать ситуацию. Запахнуть может даже в GitFlow: бывает, что и «мерж не мержится», и «кто там вперед меня запушил».

В таких случаях важно понимать, что происходит. Я, например, читаю историю ветки и пытаюсь воссоздать ход мыслей и направление изменений автора, с которым у меня возник конфликт. Чтобы решить конфликт правильно и осмысленно, мне надо пересмотреть всю историю ветки, прочитать диффы, посмотреть что вообще происходило и в какой последовательности. Просто смотреть на бесконтекстный 3-way diff — не вариант.

Простой и красивый вывод легкозапоминающейся команды git log --pretty=format:"%h - %an, %ar : %s" --graph:

Представьте, сколько нужно действий, чтобы заглянуть в каждый из этих коммитов

К сожалению, CLI в этом никак не помогает. Ты находишься в полной темноте. Единственное, что понятно: что-то сломалось. Сообщение совсем неадекватное, или вообще нет сообщения, просто «конфликт» и предлагается выбрать между двумя непонятно откуда взявшимися альтернативами. Я много раз наблюдал, как люди просто впадали в панику и ступор и не понимали, что делать дальше. У таких случаев всегда есть объяснение, и оно обычно совсем несложное, объяснимое, логичное даже, но только если разобраться. Не ситуация сложная, сложно её понять, сидя в CLI. Черт, во всех компаниях, где я работал, я очень быстро становился негласным экспертом по таким вот нестандартным разбирательствам ¯\_(ツ)_/¯

Итак, Git CLI работает только когда четко понимаешь, что происходит. Отсюда нужда в GitFlow: он сильно ограничивает пространство возможных ситуаций, поэтому когда shit hits the fan, у тебя ограниченное количество гипотез о происходящем. Паники меньше, шансов угадать и принять правильное решение больше.

Типичный репозиторий, разрабатываемый по GitFlow

Вообще-то все git-овые best practices оттуда же: не юзать rebase, бояться force push, всегда создавать merge commit, не переписывать историю. Если их нарушать, мир не рухнет, ничего страшного не случится. Но — проблема — коллеги не поймут, что происходит. Если бы они в таких ситуациях видели, что происходит, то разобраться с ними — раз плюнуть. Проблема только в том, чтобы их идентифицировать.

Есть еще одна стратегия поведения в сложных ситуациях. Я называю её «мёржить до последнего». Если ты видишь, что что-то где-то не сходится, мёржи всё со всем, пока не останется одна единственная версия.

Макклейн мёржит крупными мазками

Проблемы:

  1. Возможно излишнее количество мержей (по сравнению с четким пониманием ситуации и точным хирургическим вмешательством).

  2. Никто не возьмется предсказать, что выживет в результате. Мёрж — нетривиальная операция и момент повышенной опасности. Конфликты не на пустом месте возникают: это моменты, когда два предложенных способа решения проблемы не подошли и надо на месте придумать третий. Не просто выбрать из предложенных, а проявить креатив: создать что-то новое, что вобрало бы в себя свойства двух старых версий, сохранило их дух. Поэтому критически важно четко и однозначно понимать, что происходит и как действовать. Если ты не понимаешь, что с чем ты мержишь и почему, шансов принять правильное осмысленное решение очень мало.

Поэтому я так скептически отношусь Git CLI: он устроен так, что пытается «уберечь» вас от сложных ситуаций прямо сейчас, но каждым своим действием усложняет ситуацию на потом. Скажем, git pull по-умолчанию будет мержить, если обнаружит, что ваша ветка разошлась с удаленной. Это «прячет» от вас сложный факт того, что ветки могут расходиться, но мир устроен именно так — они могут и будут расходиться, это нормально. Абстракция, которая пытается это скрыть — дырявая. Зато упрощает ваше существование, потому что у вас якобы всегда будет одна «главная» версия.

Платить за это придется не сразу, долг копится постепенно: лишний мёрж коммит, запутанная история, иногда мержить придется вручную при пулле, хотя «я просто хотел скачать последние изменения» и «я еще не готов ничего отсылать, а уже решаю конфликты». Звучит невинно, но позже, когда понадобится разобраться, чё это за код и откуда он тут взялся, в этих мержах черт ногу сломит.

Фрагмент истории LightTable. Это ещё по-божески

Как тогда жить?

  • Визуальное представление графа коммитов. Многие GUI клиенты неплохо справляются
  • Fetch вместо Pull
  • Не бояться amend, rebase и вообще двигать историю

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

Бывает, люди путают git log с личным дневником и записывают свои мысли, настроения, погоду на улице

История должна быть осмысленной, атомарной (по еденицам решаемых проблем), аккуратной. Это всё окупится сто раз, когда с репозиторием придется по-настоящему работать. Git, его история — это не просто safety net, это еще один инструмент, еще одна форма существования кода, часть продукта. Вы же следите за кодом? Вот и за историей надо следить.

А практика непереписывания история имеет смысл только если у вас нет инструмента понять, что происходит вокруг, и вам лень разбираться. Сама по себе она безобидна и в целом работает на упрощение истории.

усы2

Ненаучная логика

Илья Бирман в своем блоге разоблачает людей, не умеющих в логику. Собственно, весь пост:

Разоблачение насколько эффектное, настолько же нечестное. Илья смеется над людьми, делающими быстрые выводы, но сам даже не пытается разобраться в том, что происходит. В погоне за вниманием пострадала правда.

Первый пример — обычная задачка. Задачу можно решить, не решить или решить с ошибкой. Ну вот например:

Решили? Уверены в решении? Смешно?

В самом факте ошибки ничего страшного нет. Он показывает лишь поспешность, но не степень владения логическим аппаратом. Ошибаются все.

Так вот, первая задача — про способность найти трюк, а не про способность рассуждать логически. Проверить просто: достаточно объяснить решение тому, кто дал неправильный ответ. Когда объясняешь трюк, никто с ответом спорить не будет. Т.е. с логикой всё в порядке, ну а то что не все видят трюк — на то он и трюк.

Сам факт спешки с ответом тоже ни о чем специальном не говорит. Это устройство человека (любого!), экономить мозговую энергию. Похожий пример из книги «Thinking fast and slow»:

Бейсбольная бита и мяч вместе стоят $1.10. Известно, что бита ровно на 1 доллар дороже мяча. Сколько стоит мяч?

Первый пришедший на ум ответ — $0.10 — неверный — говорит только о том, что ум любит срезать углы и экономить на полноценных вычислениях там, где встречается знакомый паттерн. Еще раз: получить $0.10 в качестве самой первой гипотезы, интуитивно — нормально, естественно. Так устроен мозг. Любой мозг, не мозг каких-то специальных глупых людей. Это так же естественно, как иметь две ноги и два глаза. Ошибочность ответа говорит только о том, что интуицию можно обмануть, подложив ей специально сформированный паттерн, но не говорит ничего о том, что человек тупой или еще что-то. Мозг ошибается у всех примерно одинаково.

Насчет второй задачи есть несколько интересных моментов. Напоминаю:

Во-первых, обратите внимание, что скриншот в джипеге опрос специально сконструирован так, чтобы подтолкнуть вас к неправильному ответу. Он не про абстрактных мюмзиков и зелюк (что было бы честно), и даже не про равнозначные сущности из нашего мира. В первом варианте специально наукообразные и правдоподобные высказывания, во втором специально сомнительная посылка (Бог). Если вы выберете вариант 2, получится, что вы вроде как за то, что Бог создал Землю и считаете, что она не входит в Солнечную систему. То есть автор опроса по какой-то причине специально хотел, чтобы отвечали неправильно. Согласитесь, поведение, далекое от научной объективности.

Более того, чтобы решить вторую задачу, нужно абстрагироваться от её содержания и сосредоточиться только на форме. Забыть на время рассуждений всё что мы знаем о Земле и Боге, притвориться, что эта информация нам недоступна и что её истинность на время решения задачи может быть подвергнута сомнению. Более того, надо понять, что правильный ответ в тесте может противоречить объективной реальности и всё равно это ответ, который от нас ожидают.

Я веду к тому, что это довольно-таки специальное упражнение, требующее специальных правил игры, и перекос ответов в «неправильную» сторону может быть связан с тем, что не все понимают, как в нее играть. В обычной жизни мы вольны пользоваться всей доступной нам информацией. Никто не может нас заставить забыть, что Земля — планета. В обычной жизни если мы получаем ответ, который явно противоречит наблюдаемой реальности, это неверный ответ. Тут же от нас хотят, чтобы воспользовались вполне конкретным логическим инструментом (и только им!), в специально ограниченной реальности, в которой отсутствуют все известные нам знания (почему?) и что угодно может считаться истиной. Это можно делать, но надо сначала убедиться, что человек эти правила понимает, прежде чем задавать ему вопрос, потому что эти правила — очень специальные и частные, они очень далеки от умолчательных. Странно считать людей идиотами, когда они даже не знают, в какую игру ты хочешь, чтобы они играли.

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

усы2

Дикий, дикий запад

По поводу Westworld. Когда его анонсировали, я сам первый бегал и всем рассказывал, как круто его сделают с возможностями современного Голливуда. Старый фильм был хороший, для своего времени даже знаковый (Кэмерон из него кое-что потырил в Терминатора), но, во-первых, старый, и во-вторых, немножко пресный. Крайтон все-таки писатель, а не режиссер, а в кино сценарий это только полдела. Важно, как он разыгран (см. Парк Юрского периода). Плюс, формат сериала подразумевал, что можно гораздо больше текстуры добавить происходящему. Плюс выкинуть линии средневековья и античности. Короче, недостатки были понятны, возможностей больше, можно сделать очень впечатляюще визуально. И что?

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

А дальше вот что. У оригинального фильма была, простите, проблематика. Вся развлекательная история намазана на ядро, которое взято из реального мира, которое есть здесь, по эту сторону экрана. Через конкретную, частную историю мы видим обобщение страхов, настроений, проблем. Это не саспенс, эффект на пять минут, про который помнишь, в лучшем случае, пока сидишь в зале. Тот фильм было тревожно смотреть. Он запоминался.

И он умудрялся, при всей простоте интриги, выглядеть сложнее даже «Парка», тоже не самого пустого фильма. В «Парке» были технологии на службе развлечения, неизбежный развал сложных систем, ответственность за эксперименты, в Westworld-е (Крайтноновском) добавились возникновение разума и моральное отношение к роботам (к динозаврам таких вопросов как-то не возникает). Ну и роботы тупо, кажется, ближе, сейчас по крайней мере.

Что из этого перекочевало в сериал? Удивительным образом ничего. Они удачно обошли более-менее все вопросы из оригинала. Это запутанная, приключенческо-детективная история, которая использует сеттинг примерно никак. Точнее, она использует его, чтобы провернуть со зрителем трюк (судя по доминируещей фанатской теории, последняя серия еще не вышла), просто используя тот факт, что роботы не стареют. Ну, и еще поиграть в викторину «угадай, кто из героев робот».

С трюками вот что. Они впечатляют, но это впечатление разовое. В моменте. Оно и забывается быстро, и эмоционально годится разве что гыгыкнуть с друзьями. Но самое противное, что оно создает ощущение обмана. Я девять недель сопереживал героям, а на десятой выясняется что на самом деле все было не так и я переживал зря. Что я должен почувствовать? Что, Бернард? [1]

Сравните: вопрос, этично ли убивать робота, если в нем проснулся разум (или как вообще понять, проснулся или нет), не испаряется от того, что мы узнали в начале, середине или конце фильма. Никакое количество твистов не заставит его исчезнуть. Как говорил Воннегут, если у вас есть что сказать, не тяните, выкладывайте это сразу, на случай, если тараканы съедят последние страницы. Ну а вопрос «кто из героев робот» испарится сразу после конца серии.

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

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

Ну а что с роботами? Очень трудно снять кино про такой парк и обойти стороной все «традиционные» вопросы робототехники. Удивительным образом сериалу это удается. Самая лучшая — первая — серия подавала надежду, но похоже, это только за счет того, что она обыгрывала фабулу фильма, ну и, зацепило, что ли, по неосторожности. Всё последующее удивительно лавирует между проблемами, раз за разом уворачиваясь от серьезного разговора либо в сторону загадочности, либо клиффхэнгера, либо эффектной перестрелки (резни, засады). Переживать роботам совершенно не получается, в основном потому, что нам не показывают толком, что и в какой последовательности с ними происходит, специально путают ради сюжета. Восстания, кажется, вообще не будет, его заменили глубокой тайной. Чувствуете, да? И то, и другое, вроде бы, сюжетный ход, но восстание отыгрывало человеческую самонадеянность, безответственность в играх в бога, красивая такая мифогеничная история, а тайна это просто то, что нам пока не сказали. Самосознание роботы, кажется, обрели, но они им как будто не нужно. Что с самосознанием, что без, ничего особо с ними не происходит. Игры в бога формально есть, фактически, опять же, очень много тумана, и кто в кого поиграл и зачем не очень понятно. Важно ведь (опять банальщина) не только, что Форд бог, но и что именно он делает, и почему, и как он им стал, и как это его меняет. Но это не показывают, потому что тайна.

И еще одна раздражающая черта — это фасеточная структура. Есть много сюжетных линий (5-7?), и каждую неделю показывают по маленькому кусочку из каждой. Если сложить вместе историю одного персонажа, получится, что она не такая уж и длинная. В ней не так много событий. А так как она растянута на 10 серий, часто бывают провисания, типа, вот, давно что-то не показывали Долорес, давайте покажем, что с ней всё в порядке, ну и показывают, как она переходит поле. Всё. Такая структура, по задумке, должна наводить глубину и масштаб (смотрите, сколько фигур, со скольких сторон мы рассматриваем проблему), но на деле скорее мешает всё это проживать. Вот мы видим Мейв, которая в очередной раз очнулась в борделе. Мы уже и забыли, что там с ней было в прошлой-позапрошлой серии, не так легко сделать усилие и сложить это в одну арку, чтобы пережить, почувствовать, как она меняется, что с ней происходит. Она вот сейчас ведет себя так, потому что она только что... Что? А хз, две недели назад было, не помню чем там дело кончилось.

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

Я не могу перестать представлять, насколько круче это всё бы получилось, если бы каждая серия была историей одного персонажа, от начала до конца. Они и так не пересекаются в фильме. Примерно как почему «Я, робот» это сборник рассказов, а не роман? Потому что очень много топиков, и связать их все в один сюжет нереально. Можно было бы каждую серию посвятить чему-то одному. И день сурка бы ушел, а случайные столкновения в коридоре создали бы нужный калейдоскопический эффект и всё это связали, как в «Шапито шоу». И вообще, мне противно убеждение, что зритель не станет ничего досматривать, если будут разные герои, а в конце серии не будет клиффхэнгера. Мне кажется, так даже интереснее.

Нет, я понимаю, что я сейчас предъявляю создателям претензию, что они сняли не такой сериал, как я хотел, а такой, как сняли. Что это нечестно. Разумеется, это не претензия. Они сняли, как умели. Но это не отменяет также, что я хочу того, чего хочу. И что потенциал безбожно просрали. Вместо серьезного разговора — путанное Lost-стайл приключение с картонными загадками и ну совсем уж бульварной интригой.


Мое пожелание — чтобы в десятой серии взорвали все нахрен вместе со штабом, а второй сезон делали в другом парке. В постапокалиптическом сеттинге. И другие люди. Винченцо Натали, кажется, свободен? Или, может, Пиццалато?

[1] Шучу, конечно. Там вообще некому сопереживать. Ни людям, ни машинам

усы2

Летающий асфальтоукладчик

Вот тут рассуждения про прокрутку и листалки

Вся книга — одна длинная прокручиваемой страница, но в ней всё в порядке и с дискретностью, и со стабильностью:

Книга разделена на смысловые развороты. Это помогает читать самодостаточными порциями. Нужный разворот легко узнать по внешнему виду в оглавлении. Листать развороты можно стрелками на клавиатуре. Иногда развороты содержат несколько сменяемых элементов — в этом случае при листании постепенно покажутся они все.

Меня во всей этой истории беспокоит вот что. Рассуждения все правильные, логичные. Ум с ними согласен. Но на уровне ощущений еще ни один сайт с хуком на onscroll мне удовольствия не приносил. Ни разу. Ни один.

Прокрутка содержимого внутри окна, вообще-то, не самая натуральная метафора. Точнее так: для нас важно, что у прокрутки есть ментальная модель. Человек представляет, что «имеется в виду», когда он крутит колесо и перед глазами проносятся цветные пиксели.

Вот это представление, что «что-то имеется в виду», очень важно. Нарисовать на экране можно что угодно. Но человеку проще, когда есть какие-то правила игры. Правила можно запомнить, привыкнуть к ним, предсказывать поведение. Если правила напоминают объекты реального мира, то интерфейс воспринимается легче — часть правил известны из повседневной жизни. Гугл на этом целую философию построил (см. Material design).

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

А теперь представьте, что приходит дизайнер, и вешает на скролл СПЕЦЭФФЕКТ. Друзья дизайнера, ну, наверное, скажут ВАУ. Обычные люди, наверное, смирятся: вот такой у нас теперь веб, что ж, надо терпеть.

↑ спецэффект на рэдимаге. Трудно объяснить, но, в общем, когда долистываешь до конца, под первым листом как бы оказывается второй

Меня же одолевают следующие эмоции:

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

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

  3. Неуверенность. Я всегда пытаюсь понять, чего хотел дизайнер, и правильно ли я смотрю на его задумку? Листаю ли с нужной скоростью, не проскакиваю ли, можно ли крутить назад?

  4. Раздражение. Это всё еще и тормозит. Да, даже на моем macbook pro с дискретной видеокартой это почти никогда не 60fps. То есть чувствуется, как страница напрягается и выдает с заметным лагом что-то тормозное, о чем ты не просил. Ну какое тут удовольствие? Еще интересно, дизайнеры, которые это рисуют, они просто игнорируют этот факт или как? То есть предполагается, что тормоза надо терпеть? Что когда-нибудь компьютеры станут мощнее? Дизайн с прицелом на будущее, так сказать?

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

В добавок ко всему, это еще и бесполезно. Никто не заставляет перехватывать прокрутку. Любой контент можно оформить без спецэффектов. Любой! Это чистое украшательство. В кавычках. Огромных, иронических кавычках. Меня, на самом деле, ужас берет, когда представлю, что вот так у Бюро Горбунова целая книга сверстана. Это не дает какой-то особенной пользы, кроме того, что хотелось сделать не как у всех.

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

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

усы2

Программируем мультики

Я тут шутил в твиттере, но на самом деле и не шутил:

How’s “Director of Animation in UI” for a job title?

Разговор вот о чем. Если вы видели Мак и помните первые впечатления от Мак ОС, особенно после Виндоуса или Линукса, скорее всего вас впечатлило огромное количество анимаций. Табы не просто сменяют друг друга, они перетекают. Окошки сворачиваются в док по довольно сложной кривой. Иконки в доке прыгают, а при удалении испаряются в облачке дыма.

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

Анимации точно не даются даром: в том же Маке анимации вылизаны только в флагманских приложениях и в общесистемных штуках типа NSTabView. Сложность тут, скорее всего, чисто техническая.

Тут я хочу перейти уже к вебу. Если веб победит (а я очень надеюсь, что он победит, потому что я больше ничего не умею без него люди никогда не договорятся об общем формате описания интерфейсов), то в нем обязательно должен будет решиться вопрос анимации. Или наоборот, пока этот вопрос не решен, онлайн приложения будут проигрывать нативным, что сдерживает прогресс.

W3C, как всегда, прилагает все усилия, чтобы никому качественно легче жить не стало. CSS-анимации — нововведение уровня border-radius — совсем простые случаи, иногда, как-то, но хоть закрывает. Хорошо что есть, но хотелось бы чего-то посерьезней. Можно упороться и добиться неплохих результатов:

но посмотрите на код. Это совершенно неизменяемо и неподдерживаемо.

Всегда есть JavaScript, конечно, но сам по себе он проблему не решает. Судя по тому, что у Гугла веб-версия Inbox значительно хуже анимирована, чем мобильная, вопрос даже не в количестве усилий.

Не хватает подходящего инструмента, модели. Причем есть ощущение, что чтобы запустить прогресс, придется много чего существующего разломать. HTML, CSS и DOM, например, умеренно удобны для верстки текста, но не выглядят удобным средством разметки UI. Вся история развития веба, начиная с момента, когда в нем захотели делать что-то похожее на приложения, на интерфейс, и до современности, включая flexbox — это страдания по поводу вот этой вот шизофрении, попытки засунуть квадратный кубик в круглое отверстие. Ну нету в CSS инструмента, чтобы поставить логотип в верхний левый угол. Обтекание картинки текстом — есть, а левого верхнего угла нет, и не планируется. Представьте, сколько раз прозвучит слово f**k, если вы начнете верстать что-то подобное на div-ах.

Лучшее, что я пока видел, это Grid Style Sheets, портированный в веб Cocoa Auto Layout. В принципе, он как-то работает, но в большие проекты его брать страшно: новостей давно нет, как падает производительность с ростом числа ограничений (тысячи, десятки тысяч), непонятно. Хочется чего-то подобного нативно в браузер. И это мы только про статику говорим.

Проблема еще в том, что мы хотим слишком многого. С одной стороны, анимировать в коде это примерно как рисовать векторную графику сразу в тегах SVG. Хочется нормальный монтажный стол, таймлайн, кейфреймы, кривые переходов, главное — мгновенной визуальной обратной связи и непосредственного управления.

Но одновременно мы хотим и адаптивности — в отличие от кино/мультфильма, анимация приложений должна быть интерактивной и работать на неизвестном в момент производства содержании. Вот тут, например, понятно как это будет выглядеть на четырех квадратах, и можно даже представить себе, как будет выглядеть инструмент, который позволит подобное нарисовать. Но в приложении у конкретного пользователя квадратов может оказаться и 1, и 10.

Скриншот выше сделаны в Adobe Edge. Обратите внимание, сколько анимаций для этого сайта нарисовали дизайнеры, а потом интереса ради сходите на живую версию и посмотрите, как он на самом деле работает. Лучшее, что есть в живой версии, это спиннеры.

Пусть все анимации по делу, и даже уже все смонтированы, спланированы и разжеваны, но перенести на живой сайт их не смогли. Пусть даже анимации были не первым приоритетом, чувствуется напряжение, когда речь заходит о реализации. Так быть не должно: сложным должен быть дизайн, прорабатывание, придумывание, вылизывание, в общем, креативный процесс. А реализация должна быть простой и прямолинейной. Как вы догадываетесь, до этого пока далеко.

усы2

30 советов 30-летним от тех, кому за 40

  1. Определись. 30 лет — возраст, когда пора сказать себе: определись!
  2. Не дай провести себя на мякине. Вообще по возможности обходи стороной мякину.
  3. Старайся уделять больше внимания. Внимание — твой самый ценный ресурс. Уделяй его.
  4. Составь план. Хороший план очень сложно выполнить, но составить — легко.
  5. Ходи на работу. Многие люди потеряли свою работу после того, как перестали ходить на нее.
  6. Спорт — это важно. Старайся чаще думать о нем.
  7. Сфокусируйся. Расфокусируйся. Вообще, потренируй глаза. Ты можешь добиться в жизни большего, если потренируешь глаза.
  8. Старайся рисковать, но в меру. Будь безрассудным, но рассудительным. Ты еще не молод, но уже не стар.
  9. Привыкай к тому, что многие привычки привычно входят в привычку.
  10. Помни, что то, что тебе сейчас кажется важным, может оказаться на самом деле важным, и может не оказаться. Попробуй угадывать, хоть это и бесполезно.
  11. Старайся жить так, будто каждый день твоей жизни — 10957-ой.
  12. Не откладывай развитие. Если кто-то предложит тебе заняться развитием — не отказывай ему сразу. Подумай.
  13. По возможности не разговаривай на улице с незнакомцами.
  14. Используй ноги при ходьбе. Постоянно дыши. Ешь ртом. Это простые вещи, но они могут кардинально изменить твою жизнь.
  15. Найди время и научись пользоваться интернетом. В 21-м веке без интернета никуда, даже если тебе уже 30 лет. Особенно если тебе 30 лет. На 30 лет у многих приходится пик использования интернета. Будет обидно пропустить его.
  16. С возрастом все труднее вспоминать прошлое. Так что расслабься, больше фантазируй.
  17. Старайся меньше полагаться на свою память. Не надейся запомнить вещи, лучше запиши их на бумажке и запомни, куда положил бумажку.
  18. Начни планировать бороду. К 80-ти годам пышная седая борода не вырастет сама, если ты не начнешь закладывать фундамент уже сейчас. Многие 40-летние жалеют о том, что не начали думать об этом в 30 лет.
  19. Помогай людям стать лучше. Совершённое добро всегда возвращается с лихвой. Говори «я преподал вам урок» вместо «извините».
  20. Научись ценить свое время. Научись ценить время близких тебе людей. Чаще напоминай друзьям, сколько времени ты потратил на них впустую.
  21. Почаще спрашивай себя. Если не услышишь ответа — задумайся.
  22. Купи барабан. В 30 лет это звучит глупо, но поверь мне, через 10 лет ты скажешь мне спасибо за этот совет. К сельдерею тоже присмотрись.
  23. Жизнь это ручей. Чем старше ты становишься, тем яснее видишь аналогию. Ее можно перейти на коне, в ней можно помыть ноги или увидеть свое отражение. После дождя в ней лучше клюет, а посторонний мужчина может в нее помочиться.
  24. Избегай идиотских советов. Тебе не нужна чужая мудрость, чтобы заниматься своими глупостями.
  25. Больше внимания уделяй здоровью. Ешь здоровую еду, пей здоровую воду, носи здоровую одежду, общайся со здоровыми людьми.
  26. Перед началом любого дела подумай, будешь ли ты считать его таким же важным через 10 лет? Если да, то можешь не торопиться.
  27. Оптимизируй свое время. Ложись пораньше, вставай попозже. Ты успеешь сделать больше, если будешь спешить.
  28. Обязательно выдели 30 минут в день, чтобы смотреть на ковер. Если ковра нет, стена тоже подойдет. В это время тебя не должны беспокоить.
  29. Главное в жизни — это баланс. Обязательно научись ходить по канату, стоять на руках и сидеть на табурете с одной ножкой.
  30. Не трать время на споры с дураками. Ты можешь узнать неприятную правду о себе.