• The Darkest Dungeon

    Год назад я прошел замечательную игру The Darkest Dungeon. О ней и хочу рассказать. Я играю довольное редко: не больше одной игры в год, а то и реже. Может быть поэтому игры оставляют так много впечатлений, что хватает надолго вперед. The Darkest Dungeon запомнилась непередаваемой атмосферой, музыкой, проработанностью во всех деталях. Я до сих пор слушаю официальный саундтрек.

    Игра очень нетребовательна к ресурсам. По словам разработчиков, они использовали собственный легковесный движок. Запускается на Маке со встроенной видеокартой, что очень важно. У меня нет игрового компа и желание покупать его, поэтому увлекательная игра на рабочем Маке без видеокарты – большая редкость.

    The Darkest Dungeon выполнен в двухмерной рисованной графике с характерным стилем. Отсутствие 3D компенсируется превосходной анимацией, необычайной плавностью картинки, текстовым и голосовым сопровождением. Очень напоминает первые два Fallout, когда графика отходит на второй план и настигает полное погружение в мир игры. А когда выключишь – все еще мысленно там.

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

    В подземелье игрок управляет группой героев. Комнаты и коридоры генерируются случайно. Используя всевозможный инвентарь, например, ключи, лопаты или святую воду, отбиваясь от монстров, нужно выполнить какой-либо квест. Чаще всего это исследовать 90% помещений или убить всех монстров, но встречаются и посложнее: собрать особые предметы или убить босса. О них будет написано подробней.

    Главная особенность игры состоит в непередаваемой атмосфере ужаса и безысходности. Создатели The Darkest Dungeon вдохновлялись произведениями Лавкрафта. Не помню, писал ли я о нем в блоге или нет, но Лавкрафта я очень люблю, прочел сборник лучших его произведений. В игре действительно много отсылок к его творчеству, попадаются отдельные цитаты. Например, единожды побывав в Темнейшем подземелье, персонаж сходит с ума и отказывается туда идти вновь со словами «The geometry of that place is wrong!». Это точная цитата сумасшедшего моряка из рассказа «Зов Ктулху» о городе, вплывшем из недр океана, где жил Ктулху.

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

    От Лавкрафта игра позаимствовала не только сюжет и отдельные цитаты, но и общую концепцию ментального здоровья и психики. Нечто подобное было в предыдущих играх на тему миров Лавкрафта. Например, в Call of Cthulhu, если долго смотреть на монстров, персонаж сходит с ума, начинает задыхаться и в какой-то момент умирает от разрыва сердца или самоубийства. Но в The Darkest Dungeon процесс психических расстройств смоделирован очень точно и убедительно, и вообще является центральной точкой игры. Недостаточно вывести героев из подземелья живыми: важно, чтобы они сохранили ментальное здоровье.

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

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

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

    Если показатель стресса дойдет до 100, с большой вероятностью персонаж сойдет с ума и станет неуправляемым: начнет отказываться выполнять команды, будет атаковать себя или своих. Хуже всего, он начнет высказывать демотивирующие вещи, что будет повышать стресс у других. Если стресс дойдет до 200, персонаж умирает от разрыва сердца, неважно насколько хорошо он экипирован.

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

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

    Наконец, герой может страдать от физических болезней. Ими можно заразиться от особых монстров-разносчиков инфекций или при неосторожном исследовании зараженных тайников. Это может быть гангрена, чахотка или сифилис. Однажды моя здоровая команда вернулась больная сифилисом в полном составе, что оставляет пространство для шуток.

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

    В подземельях требуется выживать любой ценой. Слотов в инвентаре немного, половину из них занимают необходимые вещи: питание, лопаты, бинты, зелья, факелы. Без еды герои страдают от голода, а голод поднимает стресс. Лопаты нужны, чтобы расчищать завалы. Если делать это руками, герои получат стресса по полной. Отдельная история с факелами: освещение радикально влияет на игровой процесс. Чем темнее, тем хуже. В полной темноте начинается кошмар: возрастает стресс, увеличивается шанс быть застигнутыми монстрами врасплох. Даже музыка приобретает зловещий орнамент. Почти ни с одним предметом не стоит взаимодействовать голыми руками. Для раскопки могил нужны лопаты, для вскрытия сундуков – отмычки, для алтарей – святая вода.

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

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

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

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

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

    Разработчики заготовили 8 боссов в обычных подземельях, убить их требуется по ходу выполнения квестов. Еще один босс, ужасный Коллекционер, рыщет по уровням в случайном порядке. Отряд может встретиться с ним, если уровень стресса хотя бы одного персонажа выше 70 очков. Этот товарищ собирает души тех, кто вышел из подземелья. Еще один босс – Шамблер, космический зверь-шатун – остается на откуп игрока. Вступить в бой с ним можно только по желанию. В подземельях высшего, красного уровня встречаются враги-мини боссы, на убийство которых уходит много сил. Уровни Темнейшего подземелья наполнены боссами. Финальный уровень – один сплошной босс. Перечислю несколько колоритных боссов.

    Свиной Лорд. Со слов рассказчика, этот ужасный свин стал продуктом скрещивания свиней с демонами из портала. Для его откорма дед использовал крестьян из ближней деревни. На вражеской стороне два свинтуса: большой и маленький. Хитрость в том, что большой наносит урон, а маленький координирует его действия: указывает, на кого нападать. Если убить мелкого свинтуса (что довольно легко сделать случайно), жирный свин озвереет и начнет наносить двойной урон, с которым команде не выжить. При этом персонажи склоняют игрока к ошибке: в начале боя они переговариваются, мол, давайте грохнем мелкого, а потом жирного. И только потом, словив люлей, кричат: черт, надо было наоборот. Это весьма в духе той самой механики игры: подтолкнуть сперва к ошибке, а потом к исправлению.

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

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

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

    Игроку доступны 16 типов персонажей, каждый из них хорош в чем-то одном: атаке, защите или поддержке. Важно собрать устойчивые команды, где каждый персонаж вносит максимальный вклад. Например, отряд без весталки-целительницы падет от ран. Шут – единственный персонаж, способный снимать стресс прямо на поле боя. Без рыцаря команда не нанесет должного урона врагу, и так далее. Некоторые персонажи обладают способностями, о которых нигде прямо не говориться. Считается, что игрок должен узнать о них сам. Например, женщина-антиквар совершенно бесполезна в бою, зато одно ее присутствие увеличивает вместимость инвентаря и частоту выпадения ценных предметов.

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

    Цель игры, как я писал выше, состоит в том, чтобы спуститься на три этажа в Темнейшее подземелье, ведущее в потусторонни портал. Оно открыто практически с самого начала игры, и в каком-то смысле это роднит The Darkest Dungeon с Fallout. Если знаешь, что и как делать, то проходишь игру за двадцать минут. В случае с Темнейшим игра опять провоцирует игрока на ошибку: сунуться, затерпеть в первом же бою и бежать. Ах да, мелкая деталь: при бегстве из Темнейшего один из персонажей обязан пожертвовать собой, защищая товарищей при отступлении.

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

    В отличие от обычных уровней, генерируемых игрой случайно, уровни Темнейшего подземелья запрограммированы фиксировано. Это несколько облегчает задачу, поскольку в вики и руководстве описаны оптимальные маршруты, по которым нужно вести команду. Но и с подсказками пройти очень трудно: враги невероятно сильны, набегает стресс… Один лишний бой – и команда больше не может продвигаться.

    Милая особенность: герой, вернувшийся, из Темнейшего, со слов игры “has seen to much” и развидеть уже не может, а потому снова туда не пойдет. Это значит, что на каждый уровень нужна отдельная команда. В компенсацию за это мучение герой, прошедший Темнейнее, становится просветленным, и все, кто ходит с ним в команде, получают дополнительный опыт. В недрах настроек есть особая галочка, которая позволяет отправить героя в преисподнюю повторно, однако за это ему начисляется уровень стресса, близкий к критическому.

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

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

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

    Вот такая вышла игра. Признаться, я и сам не ожидал, что напишу так много. Все-таки большое впечатление она произвела. Двухмерные игры, лишенные навороченной графики, вынуждены создавать атмосферу за счет стиля, текста и озвучки. В The Darkest Dungeon все это на высоте. Игра погружает, затягивает, и кажется, что не играешь, а читаешь книгу. Наследие Лавкрафта и литературный язык рассказчика дают огромный простор для размышлений и развития сюжетных линий. Настоящий шедевр.

  • Неделя Телеграма #3

    Продолжаю писать в Телеграм, третий выпуск.


    В Твиттере спрашивают, как это я оказался контрибьютором в приватный PHP-репозиторий. Без понятия, наверное, баг Гитхаба. Забавно:


    Блин, как люди умудряются в здравом уме писать “МБОУ ДОШ” или “БУЗ ВО ВОКОБ” или прочую дичь вместо “школа” и “клиника”? Никто же так не говорит, ни родитель, ни директор. Но только открыли Ворд, и сразу беда: не школа, а МОУ ВОУ ВОУ ВОУ.

    Думаю, это вина учителей: десять лет детей учат, что писать нужно “умно”, иначе снижают оценку. Травмируют ученикам мозг. Оно может умно, да непонятно, над вами потешатся будут (с).


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

    Например, фреймворк re-frame. Его дизайн сводится простому правилу: есть события, и есть жирный глобальный словарь. На любой чих туда что-то пишется и потом вынимается. Доходит до смешного: при изменении поля оно записывает значение в базу и вызывает событие, которое читает из базы.

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

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

    В другом проекте пришлось столкнуться с огромной структурой данных, которая знает все что можно: модели, валидаторы, настройки окружения и даже текущие HTTP-запрос и подключение к БД. Только эта структура не глобальная, а передается вниз по стеку, что затрудняет разработку.

    Представьте, каждая функция, даже самая минимальная, принимает гигантский словарь, вынимает пару ключиков и что-то с ними делает.

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


    Собрался и перенес свой пет-проджект с Digital Ocean на выделенный сервер в Германии. Что могу сказать?

    Облака это дорого. Легкость настройки облака компенсируется ценой. Например, на DO нода на 8 гигабайт оперативки и 6 виртуальных процессоров стоит 80 долларов. А выделенный сервер с процессором i7-6700 Quad-Core, 64 оперативы и 500 гиг SSD стоит 39 евро.

    Основная техническая трудность была в том, чтобы написать длиннющий Ansible playbook, чтобы все развернулось в один прогон. Я даже купил на DO ноду за 5 долларов, чтобы на ней порепетировать.

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

    А в прошлом проекте я узнал, что заказчик платит 185 долларов в месяц на Heroku за весьма слабенькую ноду, где крутится только база и приложение, и полно ограничений на размер запроса, тайминги и нестандартные заголовки.

    Гуглеж на тему “dedicated server vs cloud” выдает ссылки на Квору и Стек с диаметральными мнениями. Как уяснил для себя, основное преимущество облака – масштабируемость. В любой момент можно поднять больше нод и не просесть под волнами трафика.

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

    Вот и Дропбокс уходит с Амазона на собственную инфраструктуру.


    У Digital Ocean неплохой слоган:


    А между тем Гугл кое-что подшаманил. Теперь в поиске по картинкам пропала прямая ссылка на изображение. Вместо нее появилась “Save” с иконкой закладки, которая сохраняет картинку… нет, не на диск, а в сервис Google Images, то есть прямой ссылки вам не видать.


    Смонтировал видосы с Никитой:

    Эти и другие жгучие видосики у нас на канале: https://www.youtube.com/c/deeprefactoring


    Все-таки нельзя отпускаться до такого уровня: делать из логотипа “мимимишных” персонажей. Digital Ocean ассоциирует себя с глубиной и океаном, поэтому на лого у них акула. Но когда во время загрузки акула качается на волнах или на странице фидбека говорит в микрофоны, это дичь в стиле Сберика и Сберочки.


    Вчера испытал наплыв щедрости от наших американских партнеров (с).

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

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

    Всегда можно попросить что-то и надеяться на положительный исход.


    # tor configuration for surfing speed
    ...
    ExcludeExitNodes {ru}
    

    Сначала все идет хорошо, а потом тебе делают корпоративную почту.


    В Чите и Забайкальском крае, откуда я родом, есть локальный мем – багульник. Это кустик с малиновыми листьями, который произрастает исключительно в той местности.

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

    Напечатали сборник стихов, что на обложке? Багульник. С чем подарочный календарь? Тоже с ним. Весенний фестиваль как назвали? Цветущий багульник. Какой-нибудь депутат-пидорас повесил баннер с чем? С багульником, конечно.

    Забавно, что настоящий багульник растет в Канаде, а тот, что Забайкалье – какой-то подвид, и называется он рододендрон сибирский. Но всем как-то пох. Был даже мем “сопки малиновые”, но уже лет семь назад весь лес выжгли и свезли в Китай, сопки лысые.

    Так вот, жил в Чите мой одноклассник, после школы стал музыкантом, играл “сибирский рок”. Недавно я шарился по Вконтакту и заметил, что одноклассник переехал в Питер, теперь читает рэп. Включил, а первая строчка:

    – Багульник скоро зацветет в тени будистских храмов…

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

    Справедливости ради, мы с женой тоже иногда шутим про багул, но только в особом ключе. Есть стихотворение, что я от вас в Забайкалье сбегу к багульнику. Читаю его в слух, когда дети шумят.

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


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

  • Неделя Телеграма #2

    Очередной дамп потока сознания из моего канала.


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

    Пусть вас не смущает мысль, что любой Лисп – это прежде всего какой-то самостоятельный язык, выложенный из скобок. Сомневающимся кложуристам советую сесть за Common Lisp, где все работает на указателях, структуры данных убоги и полный набор лулзов с равенством и идентичностью (=, eq, eql, equal). Это сродни тому, как европейский путешественник не отличает китайцев от японцев, хотя разница в культурах колоссальная.

    Лисп – это только форма, один из способов донести идею языка.


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

    1) Автоматический учет комиссии. У тебя на счету, скажем, 10.000 фантиков, ты хочешь перевести все. Но будет комиссия 0.015 фантика. Абсолютно любая система молча позволит ввести 10.000 фантиков, примет запрос, после чего выдаст “недостаточно средств на счете”. И как дурак начинаешь перебор: 9.999,99 фантиков, 9.999,98 фантиков и т.д. Неужели нельзя добавить кнопку – эту сумму с учетом комиссии?

    2) Ни в одном поле нет кнопки “все доступные средства”. У тебя 8.962,92 фантика на счету, система спрашивает – сколько? Приходится вводить 8.962,92. Копирование и вставка? Увы, поле не распарсит точки и запятые. Или продаешь акции. Нажимаешь кнопку, появляется диалог – сколько продаешь? А сколько у меня есть? Оно осталось на двух экранах назад.

    И такая фигня в Сбербанке, в Тиньков-банке, в Авангарде, в Яндексе, в мобильных приложениях, в сраных криптовалютах, у БКС и везде где только можно.


    Развею еще один миф: почему-то большинство считает, что каждая библиотека на Лиспе предоставляет свой DSL. Якобы типичная Лисп-программа – это смесь всевозможных DSL: для работы с БД, генерации HTML/CSS, обработки коллекций. Нет, это не так.

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

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

    По той же причине не стоит вкладываться в создание собственного DSL – потеряете кучу времени. Будет достаточно функций и нескольких вспомогательных макросов.

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


    Слать смс на латинице с транслитом – это такое днище и совок, что смешно говорить. Представить только, фирма тратит пять копеек за смс вместо десяти. Офигеть экономия. Тинькову 12 лет, а все-то шлет ахинею вроде “Vash parol dlya vhoda”. Русский сервис передает идею русскому потребителю на кракозябрах, прямо фантасмагория. Полагаю, на китайском будет еще дешевле! А вот Сбер подтянулся, все на русском.


    Приятно, что с возрастом меняется точка зрения на разные вопросы, в т.ч. профессиональные.

    Раньше я думал, что комментарии в коде не нужны. Достаточно писать понятный код, выносить неочевидные куски в функции с говорящими именам, и все будет ок. Теперь я понял, что комментарии очень нужны. Правильно написанный комментарий в разы сокращает время, необходимое на понимание кода в целом. Хороший комментарий это не Java-doc на два экрана, а короткая заметка о том, что делает эта функция или метод.

    Чтобы понять важность комментариев, нужно сперва раскачать особый навык – умение видеть собственный код чужими глазами. Я не знаю, как именно это сделать, но с ним становится ясно, что ваш “очевидный” код на самом деле очевиден только вам.

    Раньше я думал, что проекту необходима коллективная ответственность. Это когда каждый участник знает все подсистемы проекта и готов доработать любую его часть. Это неправильно и приводит к распылению и холиварам. Проект должен строиться из устойчивых подсистем, за каждой закреплены несколько разработчиков, изменения вносятся только по согласованию с ними. Тогда каждый будет заниматься только тем, что он знает лучше всего.

    Раньше я думал, что проекту нужны созвоны. Стало ясно, что т.н. дейли-колл, дневной звонок, где все по очереди отчитываются о том, что сделали вчера и намерены сделать сегодня, есть по сути способ спустить время в никуда. Люди опаздывают, начинаются обсуждения тонкостей, к которым большинство не имеет отношения. Те, кто в офисе, тупят в телефон, удаленьщики серфят в браузере. Главное –не пропустить свою очередь. Что мешает заставить участников проекта написать письма с отчетом на два предложения?


    Немного политики. Я давно не хожу на выборы и не намереваюсь делать это в дальнейшем. Коротко объясню, почему.

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

    2) С подачи Варламова тех, кто не ходит на выборы, называют мудаками и подсобниками Кремля. Спасибо, мне приятно это услышать. Это еще отвратительней, чем принуждения со стороны гос. организаций. Дело добровольное, но кто не придет, тот мудак. Прекрасно.

    3) Я не согласен играть по нечестным правилам. Конституция не дает права выдвигаться Путину на пятый срок, разрешение Конституционного суда в последний момент не в счет. У Грудинина нашли счета и должны были снять, но не сняли. Вы либо соблюдайте, либо нет, но тогда не зовите меня.

    4) Голосовать не за кого. Путин уже почти стал фараоном, Грудинин – сталинист, Собчак топит за квоты по числу женщин на предприятиях, остальные какие-то ноу-неймы, кто они и откуда повылазили – х3.

    5) Твой голос никогда не будет решающим, пока действует механизм по третированию бюджетников, массовым завозам курсантов МЧС, сгону несчастных учителей и дворников. Их зашугали так сильно, что им ничего не поможет, кроме как лишить их права голоса в принципе.


    Напомню, не путайте фриланс и удаленную работу. Вот вы заболели и работаете из дома, чтобы коллег по офису не заражать. Вы же не стали от этого фрилансером. А кто-то каждый день так работает в силу географической удаленности. У него тоже подписан трудовой договор, зарплата капает и даже стаж идет. С какого перепугу он фрилансер?

    А вот чем действительно отличается фрилансер от обычного сотрудника, неважно удаленного или в офисе – предлагаю вам обдумать на досуге.


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


    Думал, что офисные программы уже научились работать с большими файлами. Но все по-старому: случайно кликнул на CSV-файл размером в 6 гигабайт, Excel повис и вылетел, не сохранив ни одну книгу. Не пойму, что мешает, например, загружать данные по 10.000 строк и подсасывать их динамически при прокрутке. Ну и спросить при таких объемах тоже не мешает. Годы идут, юзер экспериенс на том же дне.


    Забыл добавить: отдельное спасибо криптовалютам и их создателям за майнинг. Теперь любой офисный клерк может нагрузить казенное железо и намайнить крипто-гроши. Даже в Сбербанке какой-то чудак майнил на серверах. Майнят на рекламных мониторах, в браузерах и даже научились распространять вирус в картинке. Только если раньше вирусы крали историю из Аськи, то теперь тихо майнят. Никто не понимает, зачем это делать, но делают.


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

    И была у него одна особенность: по меркам того времени Рамсес был супер-долгожителем. Он прожил 60 лет, в то время как средняя продолжительность жизни была 30 лет. В результате уже на пятидесятом году его жизни в стране физически не осталось человека, который бы жил при другом фараоне. И постепенно в глазах населения, не без помощи жрецов, Рамсес стал уже не фараоном-полубогом, а настоящим богом.

    Но однажды Рамсес умер, и население впало в отчаяние. Египтяне плакали, ожидая, что Нил наполнится кровью, что с неба падут огненные молнии, что вот-вот настанет конец света. Но проплакав сорок дней, выбрали другого прези…, извините, Рамсеса – Третьего, а там и Четвертого, и Пятого, и далее по списку. И как-то жили дальше со жрецами и пирамидами. И сейчас живут.

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

    Ничему эти страны не учатся и потому будут вечными аутсайдерами.


    Почти каждый день приходит маркетинговое письмо от того или иного сервиса: новости, просьба оценить, поток сознания менеджеров. В подвале обязательно есть ссылка “отписаться”. И я каждый день отписываюсь, но писем меньше не становится.

    А вот когда ссылки нет, это особый фашизм. Или ссылка на страницу настроек уведомлений, куда можно попасть только будучи залогиненым.

    Еще забавно, когда настройки уведомлений перекрывают друг друга. Например, ты отказался от всех рассылок, но на странице товара нажал “уведомить о поступлении”. И письмо не приходит, потому что настройки имеют более высокий приоритет, чем подписка на конкретный товар.

    Но это уже слишком сложно для некоторых разработчиков.


    Есть ли на свете что-то более бестолковое, чем заголовок “User-Agent”? Только что скопировал из Хрома:

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like
    Gecko) Chrome/65.0.3325.162 Safari/537.36
    

    Это же мрак и бред, смешались кони, люди. Почему вначале Мозилла? Почему на конце Сафари? Отчего нельзя структурировать эти данные? И нечего тыкать меня в Википедию: попробуйте сперва распарсить штук сто таких записей.

  • Неделя Телеграма #1

    На этой неделе много писал в Телеграм. Понравилось: раньше я брал одну тему и рассусоливал на пять экранов. Теперь так не могу, не хватает терпения, поэтому просто фиксирую то, что пришло в голову. Ниже – скомпилированная версия. Подписывайтесь на канал, чтобы не ждать неделю.


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


    Пожалуйста, не используйте слово “хайп”. Оно само по себе уже стало хайпом. Лучший этому показатель – баннеры мобильных операторов. Если опсос добрался до очередного мема, значит, поезд для него ушел навсегда. Ну, толстые менеджеры в галстуках теперь тоже в курилке обсуждают хайповые темы.

    Разговаривал с начинающим программистом. На чем пишешь, спрашивает меня? На кложе. А, тот хайповый язык! А ты о нем что-то читал? Нет, А кто тебе сказал, что хайповый? Хз, какие-то парни-пыхыпешники. А им кто сказал? Кто-то на форуме джавистов. Занавес.

    Не теряйте лицо, оставьте “хайп” в покое.


    Удивительные вещи я слышу про Собчак: все ее ненавидят за Дом2. Странно, вы же его и смотрели, разве нет? Для кого это говно разливали? Только Собчак уже перелистнула страницу, а вы все помните. Это как перемотать чей-то блог на 10 лет назад и смеяться, какую чушь автор тогда писал. Лицемерие.


    Без комментариев.


    Вопрос, зачем у меня на столе лежит маленький шарик из пластилина? Ответ: чтобы залеплять лампочки устройств.

    Это какой-то рак: каждый девайс стремиться показать, что он работает. На мониторе лампочка. На видео-панели. На колонках. Особая клиника – на переходника и флешках. Кажется, китайские инженеры поставили цель выжечь мне глаза.

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


    Тема для блога: нет ничего зазорного в том, чтобы хранить пароли пользователей в отдельной таблице. Пароли, хоть и связаны с пользователями по принципу один к одному, являются отдельной бизнес-сущностью. Пользователь может не меняться годами, а система регистрации, подтверждения пароля и его смены – очень даже. Это и безопасней, если у вас дыра в SQL. Не придется опасаться, что из запроса вида select * from users вы не удалили поле password. Словом, в будущем буду практиковать вынос паролей в отдельные таблицы.


    Пример редчайшей дичи в Кубернетисе. Надо быть больным на всю голову, чтобы поле “Command” маппить на “Entrypoint”:


    Удивительно мало людей обладают простым, казалось бы, навыком – не давать оценку информации, воспринимать ее нейтрально. Невозможно встретить человека, который бы мог спокойно говорить о наркотиках, сексе, неравенстве полов не добавляя поминутно “а вот я”, “а мне” и так далее. Ну или хотя бы не шутить глупо и не сводить тему в балаган. Это пугает: человек, неспособный отделить информацию от самого себя, как правило, не может мыслить системно в принципе.


    Посмотрел “Три биллборда”. Все круто, кроме одной детали: все-таки хочется, чтобы в конце у героев было какое-то неопровержимое доказательство, что тот парень – их клиент. Какая-то зацепка, которую не рассматривает полиция, но которая для матери оказывается решающей, например, деталь из одежды или поведения жертвы. Потому что к концу фильма начинаешь сопереживать героям, и хочется, чтобы их усилия были не напрасны. Это единственная недоработка, а так – шедевр, как Нелюбовь или Олдбой.


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


    На тему программирования. В коде не должно быть вызовов системных утилит вроде sed, mkdir, curl, unzip и так далее. Если таковые есть, следует первым делом освободить от них проект. На то есть веские причины.

    Вызов командных утилит уводит нас на 20 лет назад в прошлое. Ваш проект становится расширенной версией баш-скрипта. Это идет вразрез с прогрессом.

    Командная утилита это черный ящик. Ее поведение ничем не регламентировано. Код возврата, если это не ноль, ни о чем не говорит. Сообщение в stderror может быть длиной в несколько экранов и совершенно не понятно.

    Поведение утилит отличается на разных платформах. Одна и та жу тулза ведет себя по-разному на Линуксе и Маке. Бывают особые случаи, когда утилита только под Линукс, что вынуждает ставить Докер.

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

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

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


    Если оппонент не читал “Воспоминания о войне” Никулина, то говорить с ним на тему войны не имеет смысла.


    Любопытно, что в современном английском уже не используются глаголы shall и ought to. Достаточно почитать Оруэлла, чтобы увидеть разницу. Всего 50 лет прошло, а язык заметно изменился. Видимо, даже носителям языка трудно держать в голове тонкие смысловые отличия между формами. Вот лишнее и отмирает.

    В третьем Варкрафте персонажи говорят “по-книжному” и потому используют для будущего времени shall, например “Your will shall be done”, “Where shall I strike?”. А слово will употребляется только в значении “воля”.


    В детстве меня бесило (и продолжает бесить), когда героев из разных мультфильмов ставят рядом в коллажах, заставках и пр. Например, Винни-Пух, Бременские музыканты и Нильс из “путешествия с гусями”. Или Чиполлино с Микки-Маусом. Каждый раз удивляюсь этой бессистемности. Разве могут столь разные персонажи соотноситься друг с другом? Они же разных возрастов и развитий. Одни люди, другие антропоморфные животные. Они исполнены в совершенно разных стилях и не сочетаются вообще никак. Это как дуэт Паваротти и Нирваны. Как пить пиво с кефиром. Писать микросервисы на ПХП и Хаскелле. Как отношения между Бетменом и Шапокляк. Что всего хуже, те, кто составляют подобные коллажи, уверенны, что детям это нравится. А дети прекрасно понимают, что это халтура, и подобной бессистемности быть не должно. Эти персонажи – сами по себе, те – сами по себе.

  • Мнение о криптовалюте

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

    Напомню, уже была отличная статья “Прошло 10 лет, а никто не придумал, как использовать блокчейн”. В ней идет речь не только про блокчейн, но и вообще про криптовалюты. Прочитайте статью, автор очень трезво смотрит на вещи.

    Осторожней с загрузкой страницы: у читателей подгорело так, что от числа комментариев браузер тормозит. Оригинал, перевод на Хабре. Если уже прочитали, то вот мои пять копеек.

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

    • Что такое токены?
    • Как вывести токены в эфир?
    • Как оптимальней рассчитать число газа?
    • На какой бирже лучше выводить крипту в доллары?

    Задайте эти вопросы знакомому, который “разбирается” в крипте, и он просто погуглит за вас. Все придется искать самому.

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

    Чтобы вывести эти блядские токены, пришлось сначала закинуть средств на эфирный кошелек. Для меня это было шоком: ну, спишите комиссию своими токенами, в чем сложность-то? Нет, нужен эфир.

    Ладно, закинул с Биткоина (это первая комиссия). Потом переводишь токены на биржу. Комиссия. Потом продаешь токены за эфир\биток. Комиссия. Выводишь на свой кошелек. Комиссия. И каждый раз по 2.50$-3.50$

    Для сравнения, в любом банке платеж в госбюджет бесплатный. Вывод денег с ИП на собственное физлицо стоит 25 рублей, если не превышен лимит в 300.000 рублей. С физика на физика стоит 10 рублей. Операции внутри банка бесплатны.

    На кой черт мне Биткоин? На одних комиссиях можно просадить ощутимую сумму.

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

    Цифры: согласно системе учета, в момент назначения задачи мне было обещано выплатить 100$. Прием пулл-реквеста затянулся, курс упал, комиссии на каждом шаге – и я получил 66$. Мог бы и больше, если бы действовал умнее, но все равно – на треть меньше.

    Молчу о том, что комиссии на биржах за вывод крипты в настоящие доллары еще больше.

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

    Новости о том, что взломали тот или иной стартап, стали привычкой. Некогда заниматься безопасностью – тут серьезный бизнес!

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

    Мы же просиживаем штаны за доллары (ну, или кто-то за рубли) не чтобы получить доллары, а чтобы купить за них что-то. Доллар обеспечен американскими товарами и услугами. Это Айфоны, Айпады, техника, сериалы, музыка, Голливуд, игры.

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

    Когда появился интернет, потребовалось менее 10 лет, чтобы понять, зачем он нужен обычному человеку. То же самое с Вебмани, Яндекс.Мани. И с первым яблочным персональным компьютером.

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

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

    (Сейчас набросят ссылку про случай на Украине, когда купили квартиру за биткоин. Вот когда наберется тысяча таких случаев, тогда и поговорим.)

    Эфир ничем не лучше. Юрист рассказывал: одна фирма продает дорогую электронику другой фирме. Везут на кораблях, на контейнерах GPS-датчики. Смарт-контракт определяет, что как только пройдена нужная широта – перевести деньги. Внимание, как определить, что в контейнерах именно электроника, а не кирпичи? Так или иначе наняли третью сторону, чтобы предотвратить подобное.

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

    А пока-что это всего-лишь рискованные вложения, которые можно себе позволить не лишние деньги.

  • Захотеть расхотеть

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

    Удалять программы, раздавать сладкое, выбрасывать сигареты – все это преждевременная оптимизация, которая is root of all evil.

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

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

    Сигареты выбросил, зависимость осталась.

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

    Спиртное и ТВ есть, зависимости нет.

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

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

    И вот желание зайти в эти чаты ослабло. Там уже несколько тысяч реплик, контекст давно потерян. Смысл?

    По этой же причине я не ставлю программы для замера продуктивности. Я прекрасно знаю, когда туплю или прокрастинирую. Об этом говорит внутренний голос, достаточно только не заглушать его и быть честным с самим собой.

    Пусть все, что меня отвлекает, будет рядом и в больших количествах.

  • Как хочет женщина. Конспект

    Читаю занятную книгу “Как хочет женщина”. По ссылке – страница на сайте издательства: описание, об авторе, отзывы. А я тезисно изложу суть первой трети. Остальное – как дочитаю.


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

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

    В психике человека есть две педали: газ (возбуждение) и тормоз (подавление). Чувствительность педалей всегда индивидуальна.

    Одна из главный мыслей, которую можно вынести из книги: оказывается, я нормальна (я нормален).

    Два основных чувства в человеке это любовь и стресс.

    Любовь основана на привязанности.

    Стресс важен для человека. Краткосрочный стресс и благополучный выход из него – нормальная работа мозга.

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

    В борьбе со стрессом важно научиться его переживать. Полный цикл можно описать по этапам: угроза – стресс – действия – победа.

    Незавершенный стресс переходит в хронические вредные привычки: алкоголизм, сериалы или видеоигры сверх меры, навязчивое сексуальное поведение. Если мужчинам свойственно первые два (алкоголь и телевизор), то у женщин встречается обострение либидо. Удовольствия подобный секс не приносит.

    В период стресса обостряется нужда во внешней заботе о нас. Поминутная проверка почты и социальных сетей – это прямая реакция на хронический стресс. Мы ждем, что нам ответят, залайкают и перепостят, то есть проявят заботу.

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

    Лучше всего завершить стресс физической нагрузкой: фитнес, пробежка, бассейн. Подойдет любая забота о собственном теле: новая прическа, маникюр. Ежедневная зарядка равномерно снижает стресс.

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

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

    Женщины сильнее подвержены стрессу из-за сложившейся культуры. Считается, что именно на женщине лежит ответственность за отношения. Мужчинам не зазорно выпускать пар асоциальными способами: напиваться, провоцировать драку, ломать мебель. Женщина не может себе такого позволить.

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

    Существует три типа привязанности к партнеру: с уверенностью, с тревогой и с избеганием. Психотип закладывается в детстве исходя из того, как ребенок привязан к родителям: доверяет ли он им, не доверяет или боится довериться. Полноценное удовольствие от секса получают те, кто привязывается с уверенностью. Вторые два типа либо используют секс для укрепления отношений (т.н. “утешительный секс”), либо для демонстрации себя, либо занимают полярные места в нездоровых отношениях (насильник, жертва).

    Чтобы справиться с негативными эмоциями, нужно 1) проговаривать их; 2) брать за них ответственность; 3) ждать, пока они пройдут сами и 4) устранить причины их возникновения.

    Бог и собака – вот кто не станет осуждать нас. Но и не смогут заняться с нами сексом.

  • О наушниках

    Я часто слышу мнение, что пользователи Эпла переплачивают за бренд. Не только устройства, но и любой аксессуар к ним стоит дорого. Например, зарядка к ноуту 6 тысяч, гарнитура 3 тысячи. Лопушки-яболчники спускают деньги, а прошаренные ребята берут на Али то же самое по ценам втрое ниже.

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

    И вдруг выяснилось, что другими гарнитурам я пользоваться уже не могу: привык к качеству. Когда долго пользуешься отличной вещью, поднимается планка ожиданий. Что не так с другими гарнитурами? Блин, да все.

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

    Здоровенные наушники сжимают голову как тиски. Редко можно встретить конструкцию, которая не давит. Каждое ухо должно быть оснащено мягкой подкладкой толщиной хотя бы два сантиметра. Иначе колонка вжимает пластмассой ушную раковину и та начинает “гореть”. Снимаешь такие наушники, а тебя словно всем кабинетом за уши драли. К тому же в них жарко.

    У легких гарнитур вроде Logitech неоспоримое преимущество: цена соответствует качеству. За 300 рублей получаешь дрянной звук и микрофон. Дешево, но говно. Говно, но дешево. На этом преимущества заканчиваются. Тонкий ободок легко сломать в рюкзаке. Поролон на ушках изнашивается и слазит. Если покупать такую же гарнитуру, но с USB, она будет в 2.5 раза дороже. У меня такая вышла из строя через полгода: перестал работать микрофон.

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

    До сих пор трудно встретить уши со сдвоенным микрофоном. Это когда на конце джека не три насадки, а четыре. Забавно, что гарнитура может стоить как монитор, но сдвоенного микрофона нет. И даже нет в комплекте переходника, который бы стоил доллар!

    А вот “капельки” Эпла это класс. Они нормальной формы и натурально лежат в ушной раковине. “Идеально повторяют форму твоего тела”, как в рекламе прокладок. Звуковое отверстие не просто сеточка, как у плееров из девяностых, а на конце вытянутой части. В результате весь звук идет в ухо, но ушко прижато не герметично, и нарушения давления нет. Никому другому не слышно, что у вас играет.

    Все это я понял, когда после потери Эпловской гарнитуры попробовал резиновые затычки, уши-тиски как у летчиков и кое-что другое. То звук отстой, то микрофон шумит, то сам глохну.

    И еще, я совершенно ничего не знаю про беспроводные уши Эпла. Пока вижу смысла их брать. У кого есть – отпишите.

  • Короче значит лучше

    Вряд ли можно подумать, что я поддерживаю Путина. Но его секция в бюллетене зачет: только город, возраст, имя и фамилия.

    Нет галочек и рамочек, как шутили оппозиционные клоуны в твиттере.

    Никто не будет читать байду про то как ты родился, женился, в каком НИИ начал карьеру. Зачем это писать? Типа, ты пришел на выборы, но не определился. Заходишь в кабинку и такой: ага, у этого стаж 20 лет, у того 25. За него и проставлю.

    Не нужно лепить текст туда, где он не нужен.

  • Помогать или нет

    В Телеграм-канале Design & Productivity опубликован вопрос, затрагивающий работу и отношения с коллегами. Привожу его полностью:


    Предположим, вы дизайнер в продуктовой компании. К вам подходит коллега, с которым вы по работе почти не пересекаетесь, и говорит: «Мне очень нужно до завтра сделать презентацию для начальства. Сможешь помочь с дизайном?». У вас уже предостаточно своих срочных задач, так что единственная возможность помочь — задержаться на пару-тройку часов после работы.

    Что будете делать?

    А. Задержусь после работы и помогу.

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

    В. Вежливо откажусь. Чтобы сделать хорошо, надо разобраться в задаче, а на это точно нет времени. Может там и презентация-то не нужна.

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

    Д. Предложу обратиться к моему руководителю — пусть вместе решают, какие из задач важнее. Если руководитель скажет помогать — отложу другие задачи и сделаю презентацию в рабочее время.

    Е. Ваш вариант, которого тут не хватает — пишите мне личным сообщением @gorskiy


    Отличный вопрос. Тут все: работа, отношения, переговоры. Очень жизненная ситуация. Обратите внимание, что речь идет про дизайн, а меня читают в основном программисты. На мой взгляд, вопрос прекрасно ложится и на айтишную отрасль тоже. Только “дизайн” нужно заменить на “программу” или “таску в Джире”, и все станет на свои места.

    Прежде чем читать дальше, советую хорошенько подумать, заварить чаю и только потом продолжать.

    На текущий момент результат голосований выглядит так:

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

    Обращусь к руководителю

    Плохо то, что лидирует самый слабый вариант – обратиться к руководителю. Этим вы расписываетесь в несамостоятельности. Начальник вовсе не обязан контролировать подобные отношения. Это разовый случай, спонтанное взаимодействие – начальство совсем ни при чем.

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

    Вы же, когда одновременно с коллегой подошли к кабинке туалета, не зовете менеджера? Как-то справляетесь?

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

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

    Ни один менеджер даже в горячечном бреду не пойдет на такое. Когда сотрудник работает на другой отдел, это должно быть регламентировано. Но в данном случае просто нет времени на бумажную работу.

    Задержусь и помогу

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

    Зачем вообще делать чужую работу? Это же не правильно. Вы вычеркиваете из жизни несколько часов. Скорее всего, они предназначались родным и близким, а может, любимому занятию: спорту, чтению, прогулке. Никто об этом не узнает. Тот, кому вы помогаете, конечно, будет благодарен, но вряд ли оценит. Он подумает: я же остался после работы, почему бы и ему не остаться; чувак понимает в дизайне, ему будет легко.

    Может, думаете, что вы такой супермен и защитник слабых, главный пожарный в проекте? Всем все равно.

    Договорюсь и помогу, но за что-нибудь взамен

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

    Ладно, как все-таки следует поступить?

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

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

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

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

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

    Ваша цель помочь понять задачу и направить на верное решение. Материалы в тему:

Страница 1 из 39