• UI и пустота

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

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

    Фронтендеры, что же с вами случилось?

  • Мышление лямбдами

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

    Раньше я об этом не думал, но оказалось, что лямбда — самый сложный продукт Амазона. В экосистеме AWS лямбды повсюду. Их можно приделать к любому сервису. Загрузил файл в S3 — дернулась лямбда. Поднялся инстанс EC2 — дернулась лямбда. Лямбда может быть обработчиком очередей SNS и SQS. Это универсальный клей, которым можно соединить что угодно.

    Лямбда может создана на любой технологии: на Джаве, на Го, на баше. Она может быть голым бинарником или скриптом на Питоне или Ноде. В последних случаях ее код можно поместить прямо в yaml-конфиг Cloud Formation.

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

    Другой случай: как поднять инстанс EC2 на заданное количество времени? А вот как: дернуть лямбду и передать ей число секунд, скажем, 7200 (два часа). Лямбда запустит инстанс из образа, после чего запишет в S3 файл с числом оставшихся секунд. В облаке работает шедулер, который каждые 5 минут запускает другую лямбду. Эта лямбда читает число секунд из бакета, вычитает из него 300 секунд и записывает обратно. Если время истекло, она дергает третью лямбду, которая убивает инстанс. Вот такие многоходовочки.

    Сперва у меня было чувство, словно я рассматриваю картины Сальвадора Дали. Первая реакция — что, так можно было? Оказалось да, можно. С этим живут, это поддерживают, на этом зарабатывают деньги. Такие схемы даже работают. Тех, кто их проектирует, называют AWS-архитекторами.

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

  • Баки

    Со словом “баксы” (доллары) интересная ситуация. Bucks — это уже множественная форма слова buck. Один доллар — один бак. Получается, что два доллара — это два бака. Поэтому вместо “ы” на конце нужно склонять по правилам русского языка.

    То же самое со словом “чиксы”. Дословно chiks означает “цыплята”, и это уже множественная форма. В переносном смысле оно означает девушек, ищущих мужского внимания. По аналогии, если “чикс” — множественная форма, то единственная будет “чик” или “чика”.

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

    Хм, как-то непривычно.

    Из комментариев в Телеграме: рельсы (рели), чипсы (чипы), джинсы (джины), комиксы (комики).

  • AirDrop

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

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

    Был же комикс xkcd, где чел говорит: пока ты будешь регистрироваться в Dropbox, я уже с флешкой приеду. С AirDrop что-то из этой оперы: пока он сканит девайсы, Телеграм уже давно прожевал файл.

  • Подорожание Яндекса

    Как вы знаете, Яндекс поднял цену на подписку «Плюс». Это событие обсуждалось на всех площадках. Теперь когда интернет отпустило, выскажусь и я.

    Дело вот в чем: людей взбесил не факт подорожания, а лицемерное письмо, которое разослал Яндекс. Оно и стриггерило пользователей.

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

    И это не все! В сервисе В появилась такая-то фигня, в сервисе Г – такая-то.

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

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

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

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

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

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

    Вот как можно было написать:

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

    Чтобы вы не расстраивались, мы добавили никому не нужные сервисы А и Б, а также фичи В и Г в таких-то сервисах. Ссылки на биллинг и прочая информация.

    Словом, Яндекс эпично провалился с этим письмом. Еще не научились копирайтеры Яндекса общаться с аудиторией.

  • Файлы Yaml

    Пару дней назад я славно покувыркался с yaml-файлами.

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

    Смотрю, а дело вот в чем: в первом файле были отступы в два пробела. В том куске, что я копировал, было тоже два, поэтому он сел без проблем. А во втором файле кто-то использовал четыре пробела. Вставил таску где-то посередине, и пожалуйста: ParserException on line 63, position 15. Тупил над этим десять минут, еще десять минут заняла вторая неудачная итерация, в итоге через полчаса починил.

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

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

    Разумеется, вы готовы предъявить: в Питоне отступы и он популярен. Съел? Все равно считаю, что пробелы — это ошибка. Когда я занимался Питоном, у нас были свои кулстори на эту тему. Например, оператор return уехал из-под условия или в критический патч закрался таб — и наложение этого патча положило прод.

    Я как-то уже писал: хорошо, когда форма имеет явные начало и конец. Чтобы не было контекста, в рамках которого нужно гадать, закончилась форма или нет. Для обозначения границ можно взять скобки. И получится…, стойте, это же… о щи-и-и..!

  • Аватарки

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

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

    Человек с микрофоном на аватаре напоминает кису с новым айфоном. Глупый китч. Не надо так.

  • Сбой времени (2)

    Кажется, я понял, из-за чего происходит сбой времени на маке. Дело в истощении батареи, которая питает часы на материнке. А вот как она истощилась — это отдельная история.

    У меня два мака: корпоративный для работы и личный для ютубов. Два зарядника, значит. На личном батарея так себе, и ее нужно часто заряжать. Чтобы не таскать зарядник в офис, я сделал так: соединил рабочий мак с личным по Type-C. Поскольку рабочий мак на своем заряднике, он снабжает питанием личный мак. Зарядник для личного лежит дома.

    Хорошая идея, но посыпалось она вот на чем. Оказалось, что когда один мак питается от другого мака, он только питается, а не заряжается. В системном трее появляется иконка с проводом и вилкой, и если навести мышку, будет написано “Power Source: Adapter”. Но ниже — “Battery is not charging” — батарея не заряжается. Ноут как будто становится стационарным компом, который ничего не знает о батарее.

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

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

    Посмотрим, подтвердят ли мою догадку в ремонте.

    UPD: в комментариях в Телеграме пишут, что бывают зарядки с двумя Type-C портами. Увы, они расчитаны только для мощного и слабого устройств одновременно, например макбука и телефона. Два мака одновременно они не тянут.

  • Youtube и Ghostery

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

    А сбоку такой Ghostery: что, дружище, Ютуб обижает? Тыкни чекбокс, зайди в приват и мы заткнем ему глотку.

    Тыкнул, зашел — Ютуб и вправду заткнулся.

    Забавно смотреть на эту битву: один сервис воюет с другим в моем браузере. Оплата веселья — герцы моего процессора.

  • Кассеты

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

    Сын заинтересовался ящиком с кассетами, и мы взяли его домой. Рассматривая их, я убедился, что покойный был мужчиной: ДДТ, Король и Шут, Сектор Газа. Встречается лирика: Земфира, Братья Гримм, группы позднего СССР. У человека был довольно широкий вкус: слушал и рок, и попсу, и нашу, и западную. Нашелся даже Слипкнот и какие-то дэд-метал-клоуны.

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

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

    На наше с сестрой меломанство повлиял один человек, муж маминой подруги, дядя Витя. У них была хорошая семья, в доме было много книг. Мы ходили к ним в гости как в библиотеку. У них всегда были новые романы Стивена Кинга и мультики Диснея на видике. Они ездили в Маньчжурию (город на границе с Китаем — дело происходило в Чите) и привозили всякие штуки, которые по тем временам казались небесной манной. В том числе они привезли две приставки Денди и одну подарили нам. Мои родители были в ту пору бюджетниками, им давали зарплату продуктовыми карточками, и ни о каких приставках не могло быть и речи.

    У дяди Вити была крутая коллекция западного рока и рок-н-ролла. Куин, Дип Перпл, Дорз, Пинк Флойд, Металлика и многое другое. Дядя Витя не признавал российских исполнителей: это был советский западно-ориентированный меломан. Может быть, это повлияло на мое отношение к русской музыке. Мы с сестрой даже не обсуждали, какую музыку слушать — очевидно, иностранную. Это было ясно как то, что по воскресеньям идет Дисней. И сегодня при слове “русский рок” мне хочется смеяться и плакать одновременно.

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

    Сколько дисков, кассет и книг мы брали у этой семьи — я не могу вспомнить. Некоторые книги они подарили нам, некоторые мы “забыли” отдать. Уезжая из Читы, я взял пару из них на память, и они до сих пор на моей полке.

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

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

Страница 5 из 86