{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Пользовательский интерфейс",
    "_rss_description": "Принципы и методы Решение по-эпловски Ховер из овер",
    "_rss_language": "ru",
    "_itunes_email": "ilyabirman@ilyabirman.ru",
    "_itunes_categories_xml": "<itunes:category text=\"Arts\"><itunes:category text=\"Design\" \/><\/itunes:category>\r\n<itunes:category text=\"Society &amp; Culture\"><itunes:category text=\"Personal Journals\" \/><\/itunes:category>\r\n<itunes:category text=\"Technology\" \/>\r\n",
    "_itunes_image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/userpic\/userpic-square@2x.jpg?1573933764",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/ilyabirman.ru\/meanwhile\/tags\/ui\/",
    "feed_url": "https:\/\/ilyabirman.ru\/meanwhile\/tags\/ui\/json\/",
    "icon": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764",
    "authors": [
        {
            "name": "Илья Бирман",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/",
            "avatar": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764"
        }
    ],
    "items": [
        {
            "id": "6846",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/reference\/",
            "title": "Словарь-справочник проектировщика пользовательского интерфейса",
            "content_html": "<p>Представляю новый раздел на моём сайте — <a href=\"https:\/\/ilyabirman.ru\/reference\/\">Словарь-справочник проектировщика пользовательского интерфейса<\/a>. Мы запускаем его небольшой редакцией, состоящей из Александры Озкан, Настасьи Тулаевой и меня в роли главреда.<\/p>\n<p>Справочник — сверхплотное описание терминов из области проектирования интерфейса, предназначенное для профессионалов. Такая подача помогает бывалому дизайнеру вспомнить о нюансах, которые он не держит в голове, а новичку — развить внимательность и любопытство. Но кроме этого мы рассчитываем, что в справочник можно будет отправить нейросеть примерно с таким промтом: «прочитай, что там написано про все используемые в нашем интерфейсе штуки, и скажи, что нужно исправить».<\/p>\n<p>Это не просто перечень определений — их и так можно найти в интернете. К каждому термину в справочнике мы предъявляли простое требование: от его наличия должна быть польза. В редких случаях определение полезно само по себе, но чаще всего мы задавали вопрос к каждому термину так: что проектировщику нужно знать об этом? И старались дать качественный ответ.<\/p>\n<p>Сегодня открывается предварительное издание. В нём уже больше двухсот терминов, но к первому изданию будет больше, часть ещё в работе. Мы приглашаем вас начать пользоваться справочником и сказать, в чём вы видите наши упущения, чего недостаёт или что вам представляется ошибкой.<\/p>\n",
            "summary": "Представляю новый раздел на моём сайте — Словарь-справочник проектировщика пользовательского интерфейса",
            "date_published": "2026-10-13T00:26:19+05:00",
            "date_modified": "2026-10-13T00:34:02+05:00",
            "tags": [
                "интерфейс",
                "проекты",
                "релиз",
                "ССППИ",
                "студентам"
            ],
            "_date_published_rfc2822": "Tue, 13 Oct 2026 00:26:19 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6846",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6845",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/ui-course-frag-207\/",
            "title": "На интерфейсном курсе: обсуждаем компоновку окна",
            "content_html": "<p>Здесь у участника курса несколько нелогично организовано окно, и я рассуждаю о том, как можно было бы переорганизовать. 5 минут:<\/p>\n<figure class=\"e2-text-video\">\n  <iframe src=\"https:\/\/www.youtube.com\/embed\/S_7m0co8zMc?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/figure>\n<p>Это фрагмент № 207 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 13 декабря 2024 года.<\/p>\n<p>Идёт запись на ноябрьский курс, сейчас −20%. В рассрочку это 6320 ₽ \/ мес.<\/p>\n<p class=\"action\"><a href=\"https:\/\/bureau.ru\/courses\/ui-online\/\">Почитать о курсе<\/a><br \/>\nПрограмма, отзывы, запись<\/p>\n<p>Это лучший курс об интерфейсе. И про адаптивность там тоже есть лекция большая.<\/p>\n",
            "summary": "Здесь у участника курса несколько нелогично организовано окно, и я рассуждаю о том, как можно было бы переорганизовать...",
            "date_published": "2026-10-12T11:55:36+05:00",
            "date_modified": "2026-10-12T11:55:24+05:00",
            "tags": [
                "видео",
                "интерфейс",
                "студентам",
                "фрагменты курса ПИ"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/remote\/youtube-S_7m0co8zMc-cover.jpg",
            "_date_published_rfc2822": "Mon, 12 Oct 2026 11:55:36 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6845",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/remote\/youtube-S_7m0co8zMc-cover.jpg"
                ]
            }
        },
        {
            "id": "6837",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/siracusa-iphone-18-pro-upgrade\/",
            "title": "Как Сиракьюса переезжал на Айфон 18 Про",
            "content_html": "<p><a href=\"https:\/\/atp.fm\/710\">В последнем выпуске АТП<\/a> Джон Сиракьюса жалуется на то, как переезжал на Айфон 18 Про. Это в начале, где-то на восьмой минуте уже.<\/p>\n<p>Проблема в том, что процесс переезда с телефона на телефон предельно хрупкий. На телефоны нельзя дышать, и малейшая неаккуратность приводит к тому, что весь многочасовой процесс отменяется. После этого новый телефон нужно сбрасывать до заводского состояния и начинать всё с начала.<\/p>\n<p>Джон уже жаловался на этот процесс в прошлом или позапрошлом году. Тогда Джону удалось завершить переезд с третьего или четвёртого раза. Одна из «ошибок» была такой. Новый телефон предложил настроить Сири, и в ходе этого процесса надо было произнести «Hey, Siri». Джон так и поступил. Старый телефон среагировал и перешёл в режим Сири, что отменило весь процесс.<\/p>\n<p>Такую ошибку проектирования можно допустить только если буквально ни разу не попробовать воспользоваться этой фичей. Как устроен процесс тестирования у Эпла остаётся только гадать.<\/p>\n<p>В этом году ситуация не стала лучше, но у Джона-то опыт. Поэтому можно было бы предположить, что в этот раз всё получится. Но нет: он снова переехал с четвёртого раза. Вот одна из «ошибок»: Джону нужно было воткнуть в телефон зарядник, и он случайно нажал на кнопку камеры. А вот другая. Сначала оба телефона что-то напряжённо делали, а потом на старом загорелась надпись «Finish on the new iPhone» в шторке с крестиком. Джон, разумеется, воспринял это так, что всё, от этого телефона ничего больше не нужно, дальше уже новый сам что-то доделывает. Как только он закрыл шторку, весь процесс снова отменился.<\/p>\n<p>Я не представляю, как это может с первого раза пройти обычный пользователь, если даже Джон запинается несколько раз. И это ведь не какая-то экзотическая ситуация, а самая обычная, причём на пути получения первого впечатления! Что происходит в Эпле, что они это выпускают?<\/p>\n<p>Отдельно хочу обратить внимание проектировщиков на значение текста в интерфейсе. В последнем случае всё сломала именно неудачная формулировка. В некоторых компаниях бывает, что дизайнеры дизайнят как-то приблизительно, без текста, а текст пишут какие-то текстовые люди потом отдельно. Это очевидный бред: что это за дизайнер, если он не умеет писать текст? Это же главный инструмент ясной мысли. Если человек не может написать текст, как он может что-то задизайнить? И что за дизайн без текста? Это же главный инструмент коммуникации. Если вы дизайнер и не считаете текст предметом своей работы, стоит задуматься.<\/p>\n",
            "summary": "В последнем выпуске АТП Джон Сиракьюса жалуется на то, как переезжал на Айфон 18 Про. Это в начале, где-то на восьмой минуте уже...",
            "date_published": "2026-09-26T17:05:53+05:00",
            "date_modified": "2026-09-26T17:05:40+05:00",
            "tags": [
                "интерфейс",
                "текст"
            ],
            "_date_published_rfc2822": "Sat, 26 Sep 2026 17:05:53 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6837",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6836",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/ui-course-frag-206\/",
            "title": "На интерфейсном курсе: что такое эпицентрический дизайн",
            "content_html": "<p>Упоминаю на курсе эпицентрический дизайн и говорю, что это такое. Два минутки:<\/p>\n<figure class=\"e2-text-video\">\n  <iframe src=\"https:\/\/www.youtube.com\/embed\/vAiB4QKcuhQ?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/figure>\n<p>Это фрагмент № 206 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 13 декабря 2024 года.<\/p>\n<p>Идёт запись на октябрьский курс. В рассрочку 7900 ₽ \/ мес.<\/p>\n<p class=\"action\"><a href=\"https:\/\/bureau.ru\/courses\/ui-online\/\">Почитать о курсе<\/a><br \/>\nПрограмма, отзывы, запись<\/p>\n<p>Это лучший курс об интерфейсе.<\/p>\n",
            "summary": "Упоминаю на курсе эпицентрический дизайн и говорю, что это такое. Два минутки",
            "date_published": "2026-09-26T00:12:28+05:00",
            "date_modified": "2026-09-26T00:12:10+05:00",
            "tags": [
                "видео",
                "интерфейс",
                "студентам",
                "фрагменты курса ПИ"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/remote\/youtube-vAiB4QKcuhQ-cover.jpg",
            "_date_published_rfc2822": "Sat, 26 Sep 2026 00:12:28 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6836",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/remote\/youtube-vAiB4QKcuhQ-cover.jpg"
                ]
            }
        },
        {
            "id": "6834",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/ui-completeness\/",
            "title": "Замкнутость интерфейса",
            "content_html": "<p>Замкнутость интерфейса — это полнота и непротиворечивость правил, определяющих его состояния и переходы между ними при всех допустимых сочетаниях данных, условий и событий.<\/p>\n<p>Для любого допустимого сочетания данных и условий ясно, как выглядит и ведёт себя интерфейс. Например, список может быть пустым, содержать одно значение или тысячу, и мы понимаем, как они выглядят. Это состояния. В каждом состоянии определён перечень допустимых событий, включая действия пользователя, которые влияют на интерфейс, например, значения можно добавлять и удалять, и нам тоже ясно, как это всё работает. Это переходы.<\/p>\n<p>Самое интересное и сложное — это то, что переход должен полностью определяться состоянием и событием. Он не может зависеть от истории предыдущих состояний (если только это не буквально переход по истории состояний типа «Назад» или «Анду»). Если переход из некоторого состояния S при событии E зависит от того, попали мы в S из Q или R, то это значит, что нет никакого состояния S, а есть состояния S1 (S после Q) и S2 (S после R), и важно это осознать. Может показаться, что это какая-то заумь и вообще, какая разница. Но если не обращать внимания на это, то в интерфейсе возникают неявные состояния, в которых вид и переходы не определены. Дизайнер-то думает, что рассмотрел состояние S, да вот только это мифическое состояние, а настоящие состояния S1 и S2 он не рассмотрел.<\/p>\n<p>При проектировании сложного интерфейса иногда непреднамеренно возникают состояния, из которых невозможно выбраться, или до которых невозможно добраться, или до которых можно добраться только, если сразу пойти по правильному пути. Для дизайнера важно научиться видеть это. Часто бывает, что я спрашиваю, например, «А в этом случае что будет?», и дизайнер только в этот момент понимает, что такой случай вообще существует.<\/p>\n<p>Внимательно разбираться с замкнутостью — кропотливая работа. Обычно мы рассматриваем разные состояния и переходы в контексте некоторого флоу, то есть пути пользователя. Мы рисуем экраны друг за другом и представляем, как человек проходит между ними. Нам кажется логичным, что после такого-то экрана при таком-то действии появляется сякой-то, и мы не замечаем, что в другом флоу на таком же экране при таком же действии появляется другой экран. Когда мы думаем про этот флоу и смотрим на это глазами пользователя, мы почти всегда думаем о любом состоянии в контексте предыдущих состояний, и не отдаём себе в этом отчёт.<\/p>\n<p><a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/ui-completeness-example\/\">В моём примере с автодополнением<\/a> отдельные решения сначала кажутся нормальным, пока не начинаешь смотреть, какие запутанные состояния и переходы они порождают. Исправление каждой возникающей неприятности создаёт исключение, усложняя систему и добавляя неприятностей.<\/p>\n<p><a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/completeness-questions\/\">Я приводил примеры вопросов<\/a>, которые помогают проверить интерфейс, но понятно, что ответы даже на все вопросы сами по себе не гарантируют замкнутость.<\/p>\n<p>О замкнутости следует думать как о математическом качестве. Возьмём такую теорему: «Число 60 делится на все числа». Это легко проверить: на 1 делится, на 2 делится, на 3 делится, на 4 делится. Мне продолжать? Ну на 5 делится, на 6 делится, сколько ещё примеров надо? Какое число ни возьми — на всё делится: 10, 15, 20... Так ведь? Но нет, это ничего не доказывает. Чтобы доказать теорему, нужно искать не удачные примеры в большом количестве, а саму фундаментальную причину, по которой она неизбежно верна. В данном случае такой причины нет.<\/p>\n<p>При проектировании интерфейса сложно требовать от дизайнеров рисования полного графа состояний и переходов. Не уверен, что делал такое хоть раз в жизни. Но всё же полезно хотя бы понять, что это такое. Полезен и опыт программирования — оно развивает интуицию на такие вещи. Смотришь на проект интерфейса, и чутьё подсказывает: что-то не то, сейчас найду дыры. И дыры находятся. Вообще, чем больше для описания интерфейса приходится придумывать частных исключений, тем больше возникает подозрений в том, что общее правило плохое или вообще не придумано.<\/p>\n",
            "summary": "Замкнутость интерфейса — это полнота и непротиворечивость правил, определяющих его состояния и переходы между ними при всех допустимых сочетаниях данных",
            "date_published": "2026-09-24T11:19:10+05:00",
            "date_modified": "2026-10-10T10:51:24+05:00",
            "tags": [
                "замкнутость интерфейса",
                "интерфейс",
                "ССППИ"
            ],
            "_date_published_rfc2822": "Thu, 24 Sep 2026 11:19:10 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6834",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6831",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/vertical-stack-ui\/",
            "title": "Список как способ организации интерфейса",
            "content_html": "<p><a href=\"https:\/\/bureau.ru\/soviet\/20260922\/\">Совет о списке<\/a> как элементе графического интерфейса хочется дополнить ещё другим списком, который можно также назвать вертикальным стеком или даже бутербродом, хотя этот термин скорее <a href=\"https:\/\/bureau.ru\/soviet\/20141020\/\">из мира вёрстки<\/a>. Или как бы вы это назвали? Поток?.. Давайте придумаем термин!<\/p>\n<p>Список — способ вёрстки графического интерфейса, когда элементы располагают друг за другом сверху вниз. Структура задаётся делением на секции с помощью отступов, разделителей, плашек, залипающих заголовков:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-iphone.jpg\" width=\"720\" height=\"732\" alt=\"\" \/>\n  <figcaption class=\"e2-text-caption\">Картинка с сайта Эпла<\/figcaption>\n<\/figure>\n<p>На этих примерах с Айфона друг за другом идут тумблеры, элементы навигации, кнопки, заголовки и просто блоки текста.<\/p>\n<p>Список удобен дизайнеру тем, что без усилий адаптируется к экранам разного размера. Если элементы не помещаются в высоту, включается прокрутка. Элементы управления обычно легко помещаются даже в «мобильную» ширину, а текстовые блок просто переносятся на столько строк, сколько им нужно, снова используя неограниченную высоту. При увеличении ширины, элементы могут растягиваться или весь их столбец может оставаться по центру экрана.<\/p>\n<p>Список плох тем, что такая вёрстка почти не требует изобретательности. На мобильных устройствах с узким экраном по горизонтали особо не разгуляешься и элементы в любом случае приходится располагать друг под другом. Но обычно способов организации пространства больше, и если эти возможности не используются, и интерфейс получается более низкого качества:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-ipad.png\" width=\"960\" height=\"690\" alt=\"\" \/>\n  <figcaption class=\"e2-text-caption\">Картинка с сайта Эпла<\/figcaption>\n<\/figure>\n<p>На этом примере с Айпада и боковая панель, и основная часть интерфейса используют список. В боковой панели вёрстка подходит, а вот основная часть слишком широка для этого. Элементы растягиваются просто чтобы занять место.<\/p>\n<p>В предельных случаях мы получаем интерфейсы с огромными бессмысленными полями слева и справа от основной колонки, которая при этом не помещается в высоту экрана и требует прокрутки:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-desktop.jpg\" width=\"1024\" height=\"716\" alt=\"\" \/>\n  <figcaption class=\"e2-text-caption\">Студенческая работа<\/figcaption>\n<\/figure>\n",
            "summary": "Совет о списке как элементе графического интерфейса хочется дополнить ещё другим списком, который можно также назвать вертикальным стеком или даже бутербродом",
            "date_published": "2026-09-23T19:59:45+05:00",
            "date_modified": "2026-09-23T19:58:03+05:00",
            "tags": [
                "вёрстка",
                "интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-iphone.jpg",
            "_date_published_rfc2822": "Wed, 23 Sep 2026 19:59:45 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6831",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-iphone.jpg",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-ipad.png",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/vertical-stack-desktop.jpg"
                ]
            }
        },
        {
            "id": "6821",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/jetem\/",
            "title": "Дизайн приложения такси «Джетем»",
            "content_html": "<p>Зацените новый проект — <a href=\"https:\/\/ilyabirman.ru\/jetem\/\">дизайн приложения такси «Джетем»<\/a>:<\/p>\n<figure class=\"e2-text-picture\">\n  <a href=\"https:\/\/ilyabirman.ru\/jetem\/\" class=\"e2-text-picture-link\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/jetem-cover.jpg\" width=\"1200\" height=\"600\" alt=\"\" \/>\n  <\/a>\n<\/figure>\n",
            "summary": "Зацените новый проект — дизайн приложения такси «Джетем»",
            "date_published": "2026-09-09T12:01:23+05:00",
            "date_modified": "2026-09-09T11:00:09+05:00",
            "tags": [
                "интерфейс",
                "проекты",
                "релиз"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/jetem-cover.jpg",
            "_date_published_rfc2822": "Wed, 09 Sep 2026 12:01:23 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6821",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/jetem-cover.jpg"
                ]
            }
        },
        {
            "id": "6812",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/iphone-shift-enter\/",
            "title": "Шифт+Энтер на Айфоне",
            "content_html": "<p>Сначала историческая справка.<\/p>\n<p>На печатных машинках когда очередная строка подходила к концу, нужно было вручную вернуть каретку в начало строки и прокрутить лист бумаги на одну строку. Для этого была специальная ручка.<\/p>\n<p>Первобытные текстовые редакторы вставляли эти же два управляющих символа в текст при нажатии на кнопку Энтер. По-английски они называются carriage return и line feed. Последовательность символов CR, LF (она же \\r\\n) означала начало следующей строки в ДОСе и означает в его наследнице Винде. В Юниксе же решили, что глупо ставить два символа для переноса строки и ограничились одним LF (он же \\n). С тех пор эти два способа закончить строку дерутся и создают кучу проблем.<\/p>\n<p>Так или иначе, ещё в 20 веке придумали, что вообще-то на компьютере текст сам переносится на следующую строку когда места перестаёт хватать, и никаких специальных символов для этого не надо.<\/p>\n<p>С тех пор Энтер в текстовых редакторах не просто переходит на следующую строку, а начинает новый абзац и отделяет его отступом. Чтобы просто перейти на следующую строку, не начиная новый абзац и не делая отступа, как на печатной машинке, нужно жать Шифт+Энтер. Аналогично Шифт+Энтер позволяет перейти на следующую строку в том же элементе списка, не переходя к следующему, ну и вообще в любом логическом блоке текста.<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/iphone-shift-enter.jpg\" width=\"1200\" height=\"800\" alt=\"\" \/>\n<\/figure>\n<p>А теперь к сути заметки.<\/p>\n<p>Мне всю жизнь не хватало такой фичи на Айфоне. Хочется, бывало, в ту же тудушку добавить текста с новой строки или ещё что-то подобное сделать.<\/p>\n<p>И тут я на днях попробовал нажать Шифт+Энтер на Айфоне — и он сработал! Ровно так, как всю жизнь работал на компьютере. Теперь я думаю, что он так наверняка работал с первого Айфона, но мне никогда не приходило в голову попробовать, и я не могу понять почему. Я просто всю жизнь был уверен, что на Айфоне это сделать невозможно.<\/p>\n<p>Сейчас анализируя это я думаю, что есть некое общее представление о том, что на Айфоне нет клавиш модификаторов типа Альт и Комманд, а кнопка Шифт — это не совсем модификатор, а как бы просто «вкладка» такая в клавиатуре, как и 123. Я ж не могу на Айфоне с Шифтом выделять текст или ещё что-то подобное делать, поэтому и Шифт-Энтер попробовать просто в голову не приходило. А зря!<\/p>\n<p>Вы сейчас либо удивляетесь, как я мог так тупить 19 лет, либо для вас это такое же чудесное открытие, как для меня. Ну либо вам пофиг просто даже, скорее-то всего (но когда меня это волновало).<\/p>\n",
            "summary": "Сначала историческая справка",
            "date_published": "2026-08-29T23:00:22+05:00",
            "date_modified": "2026-08-29T22:54:20+05:00",
            "tags": [
                "Айфон",
                "интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/iphone-shift-enter.jpg",
            "_date_published_rfc2822": "Sat, 29 Aug 2026 23:00:22 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6812",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/iphone-shift-enter.jpg"
                ]
            }
        },
        {
            "id": "6805",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/liquid-glass-on-mac\/",
            "title": "Ликвид-гласс и низкий приоритет Мака",
            "content_html": "<p><a href=\"https:\/\/daringfireball.net\/thetalkshow\/2026\/07\/31\/ep-453\">В Ток-шоу Грубера № 453 с Луи Мантией<\/a> в очередной раз звучит мысль, что Ликвид-гласс особенно плох на Маке, что там он хуже всего проработан, а на Айфоне ещё туда-сюда. Вот выделяли бы на Мак столько же ресурсов, сколько на Айфон, там бы тоже было нормально!<\/p>\n<p>Кажется, дело не только в приоритетах. Низкое качество Ликвид-гласса как дизайн-системы принципиально ярче проявляется на Маке, чем на Айфоне, просто потому, что сам Мак сложнее и богаче, используется для более насыщенных смыслом задач более требовательными пользователями. Мак намного чувствительнее к качеству интерфейса. Айфон по сравнению с ним игрушка: его сложнее сломать плохим дизайном, потому что там намного меньше есть что ломать.<\/p>\n<p>Так-то Айфон тоже стал хуже от Ликвид-гласса. Взять хотя бы нестабильные положение и форму элементов, мешающие вырабатываться привычке. Или неинформативную обратную связь, мешающую понять, сработал ли элемент. Или размытости, затрудняющие чтение текста. Но люди это меньше замечают на Айфоне, потому что они не делают на нём ничего серьёзного и подолгу.<\/p>\n<p>Я понимаю, что давно есть люди, которые прям работают на Айфоне, которые выросли с ним, а компьютером особо никогда не пользовались. Но по ним сложно о чём-то судить, ведь у них нет и эффективных привычек и высоких требований. Они ведь и не догадываются, что работают в разы медленнее, чем могли бы. И даже когда у них есть компьютер, они им пользуются так же неэффективно, как Айфоном, потому что не знают, что можно иначе.<\/p>\n<p>Короче, никакое количество ресурсов не поможет Ликвид-глассу стать хорошим на Маке. Поможет только постепенное исправление допущенных в нём ошибок. И Айфон от этого тоже выиграет заодно, конечно.<\/p>\n",
            "summary": "В Ток-шоу Грубера № 453 с Луи Мантией в очередной раз звучит мысль, что Ликвид-гласс особенно плох на Маке, что там он хуже всего проработан, а на Айфоне ещё туда-сюда",
            "date_published": "2026-08-22T18:10:23+05:00",
            "date_modified": "2026-08-22T18:08:16+05:00",
            "tags": [
                "Айфон",
                "интерфейс",
                "ликвид-гласс",
                "Мак"
            ],
            "_date_published_rfc2822": "Sat, 22 Aug 2026 18:10:23 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6805",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6797",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/sber-payment-animation\/",
            "title": "Терминалы Сбера красиво тормозят",
            "content_html": "<p>Постепенно везде наставили модные терминалы Сбера размером с полтора айфона. На них крутится завораживающая анимация, разные состояния сменяют друг друга плавно — очень красиво.<\/p>\n<p>Кассир:<br \/>\n— Можете оплачивать!<\/p>\n<p>А я не могу: на экране продолжается магия. Что-то выворачивается-переворачивается, и лишь через несколько секунд дизайн отступает и откуда-то выезжает сумма оплаты.<\/p>\n<p>Для кассира выглядит так, будто я игнорирую его слова. Вероятно, в его интерфейсе отображается, что терминал готов принимать оплату, и он удивляется, почему я туплю. Но верить ему на слово и прикладывать карточку раньше времени не хочу — нет никаких признаков того, что это сработает, да и я хочу увидеть сумму.<\/p>\n<p>В общем, так делать нельзя. Интерфейс не должен тормозить ради красоты.<\/p>\n",
            "summary": "Постепенно везде наставили модные терминалы Сбера размером с полтора айфона. На них крутится завораживающая анимация, разные состояния сменяют друг друга плавно — очень красиво",
            "date_published": "2026-08-16T15:02:55+05:00",
            "date_modified": "2026-08-16T15:02:47+05:00",
            "tags": [
                "интерфейс",
                "обратная связь"
            ],
            "_date_published_rfc2822": "Sun, 16 Aug 2026 15:02:55 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6797",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6792",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/designing-and-creating-explanations\/",
            "title": "Проектирование дизайна как создание объяснения",
            "content_html": "<p>Прошу своих студентов придумать, как должна выглядеть и работать следующая версия их продукта. Они пишут, мол, там будет то и сё, и надо будет учесть это и это. Кажется, они думают, что они всё понимают, а я всё никак не удовлетворюсь их ответами. Периодически даже звучат слова вроде «давай мы сделаем прототип или даже навайбкодим тебе». А я говорю, да погодите, вы мне объясните сперва!<\/p>\n<p>Я верю в идею «кто ясно мыслит, тот ясно излагает», поэтому если вы правда способны сделать прототип, то значит вы понимаете, как всё должно работать, и можете это рассказать. По моему опыту, многие дизайнеры даже не осознают того, что у них в голове нет целостной картины продукта.<\/p>\n<p>При этом иногда чтобы что-то придумать, нужно какое-то время порисовать или попрограммировать, как бы пощупать задачу разными способами — это я понимаю. Я не против никаких промежуточных прототипов, если так удобнее думать, но в качестве результата я хочу описание системы.<\/p>\n<p>В общем, наша переписка продолжается какое-то время. Они уже пишут подробный текст, но им всё ещё моя просьба кажется удивительной: «Неужели тебе правда это удобнее, чем макет или прототип? На макете же сразу видно, где что!»<\/p>\n<p>Я:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/layout-prototype-explanation@2x.jpg\" width=\"483\" height=\"872\" alt=\"\" \/>\n<\/figure>\n<p>Какой толк от прототипа? Ведь из прототипа я ничего не пойму. Я буду видеть, что что-то как-то сработало, но я не увижу внутренних причин.<\/p>\n<p>У меня всю жизнь так было, я терпеть не мог прототипы, потому что я с ними как слепой. Как мне увидеть и осмыслить <i>саму систему<\/i>, а не отдельные её случайные проявления, до которых я докликал? За прототипом очень легко спрятать, что у вас ничего не продумано.<\/p>\n<p>После прочтения Дойча я понимаю, почему так: прототип — не объяснение. Что толку физику от результатов опыта, если у него нет объяснительной теории, которую эти опыты подтверждают или опровергают? Это же просто рандомные факты, вызывающие лишь недоумение. Чтобы понимать, почему они такие, мне нужно открыть, то есть <i>придумать закон<\/i>, который бы их объяснил.<\/p>\n<p>Но если мне самому нужно придумывать закон, глядя на эффекты его воплощения в прототипе, то в чём тогда была работа дизайнеров? Я ж как раз изначально попросил их придумать этот закон! А в итоге вынужден его придумывать я. Если вы его реально придумали, так просто расскажите. А если у вас только прототип, то вы его, скорее всего, просто не придумали.<\/p>\n<p>Это всё снова показывает, насколько качественное проектирование близко к придумываю законов физики.<\/p>\n",
            "summary": "Прошу своих студентов придумать, как должна выглядеть и работать следующая версия их продукта. Они пишут, мол, там будет то и сё, и надо будет учесть это и это",
            "date_published": "2026-08-09T01:27:45+05:00",
            "date_modified": "2026-08-09T01:37:26+05:00",
            "tags": [
                "Дэвид Дойч",
                "интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/layout-prototype-explanation@2x.jpg",
            "_date_published_rfc2822": "Sun, 09 Aug 2026 01:27:45 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6792",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/layout-prototype-explanation@2x.jpg"
                ]
            }
        },
        {
            "id": "6790",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/app-launch-open-dialog\/",
            "title": "Программа при запуске хочет, чтобы я открыл файл",
            "content_html": "<p>Один из паттернов в интерфейсе, который меня бесит — это когда запускаешь программу на Маке, а она тут же открывает диалог открытия файла. Ну типа, думает она, пользователю же я низачем не нужна без файлов, ему же по-любому нужно будет открыть? — вот я и помогу!<\/p>\n<p>Это, как и кнопка «наверх» внизу страницы и <a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/knopka-na-glavnuyu-na-pustom-ekrane\/\">кнопка «На главную» на пустом экране<\/a> — тоже пример того, когда мне протягивают костыль, а я не хромой. Завёл тег «медвежья услуга» по этому поводу.<\/p>\n<p>Во-первых, я сам решу, открывать мне файл или нет. Может, я зашёл просто версию посмотреть или обновление установить? Или я звпустил программу впрок, но прямо сейчас не собираюсь ничего с ней делать. Просто не лезь со своим диалогом и не мешай мне пользоваться компьютером!<\/p>\n<p>Во-вторых, даже если я и собираюсь открыть файл, ну не через диалог открытия файла же я это буду делать! Это самый неудобный способ открыть файл в мире. Файл почти наверняка у меня где-то и так под рукой: в письме, в телеге, на рабочем столе, в папке, в веере Downloads в доке. Я его просто оттуда затащу да и всё. Нафиг мне твой диалог сдался вообще?<\/p>\n<p>Если программа пытается по-умному что-то предусмотреть или предугадать — это хорошо. Но важно, чтобы результат этого предугадывания не был помехой пользователю.<\/p>\n",
            "summary": "Один из паттернов в интерфейсе, который меня бесит — это когда запускаешь программу на Маке, а она тут же открывает диалог открытия файла",
            "date_published": "2026-08-05T19:36:09+05:00",
            "date_modified": "2026-08-05T19:36:21+05:00",
            "tags": [
                "бесит",
                "интерфейс",
                "Мак",
                "медвежья услуга"
            ],
            "_date_published_rfc2822": "Wed, 05 Aug 2026 19:36:09 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6790",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6788",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/cookie-files\/",
            "title": "Файлы куки",
            "content_html": "<p>Разные сайты пишут, мол, «мы используем файлы куки». Да это не файлы куки, а просто куки!<\/p>\n<p>Ну да, на диске куки хранятся в файлах, — ну так на диске всё хранится в файлах, даже сам браузер — это тоже файлы! Вы же не пишете «обновите ваши файлы браузер до последней версии». Куки при этом могут храниться в отдельных файлах каждая, в одном файле все, в кастомной базе данных или как угодно ещё, и это вообще не важно.<\/p>\n<p>Более того, даже если вы точно знаете, что конкретный браузер, с которым я к вам зашёл, хранит куки в виде отдельных файлов, всё равно вы не «используете файлы куки». Файлы на моём диске-то вы всё равно не видите и не используете никак. Это мой файлы браузер читает свои файлы куки и отправляет вам сами эти куки, а не файлы, чтобы ваши файлы веб-сервер могли что-то с ними сделать.<\/p>\n",
            "summary": "Разные сайты пишут, мол, «мы используем файлы куки». Да это не файлы куки, а просто куки",
            "date_published": "2026-08-01T17:42:20+05:00",
            "date_modified": "2026-08-01T17:43:10+05:00",
            "tags": [
                "идиоты",
                "интерфейс",
                "русъяз"
            ],
            "_date_published_rfc2822": "Sat, 01 Aug 2026 17:42:20 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6788",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6777",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/scenario-and-ui-navigation\/",
            "title": "Отношения между сценарием и навигацией в интерфейсе",
            "content_html": "<p>При проектировании интерфейса важно проанализировать сценарии, то есть хорошо представить, как именно, в какой ситуации, с какими знаниями, целями и ожиданиями человек будет пользоваться интерфейсом. Многие забывают про это подумать, и у них получается ерунда. Но иногда ерунда получается, даже если про это подумать, а затем просто положить сценарии в основу навигации.<\/p>\n<p>Что будет, если просто положить сценарии в основу навигации?<\/p>\n<p>Когда сценариев очень мало, может получиться неплохой интерфейс. Если есть всего три-пять действий, за которыми человек приходит в интерфейс, и мы просто делаем для них кнопки, то всё будет понятно и удобно. Это то, что я <a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/interfeys-pvz-yandeks-marketa\/\">предлагал для ПВЗ «Яндекс-маркета»<\/a>.<\/p>\n<p>Но такие интерфейсы встречаются редко. Даже в небольшом продукте есть множество связей между функциями, и число сценариев огромно. Если в таком случае начать строить навигационную модель вокруг сценариев, в интерфейсе станет невозможно разобраться. В заметке <a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/arhiv-vakansiy-ne-mozhet-byt-podrazdelom-sozdaniya-vakansii\/\">об архиве вакансий<\/a> я как раз указываю на эту проблему.<\/p>\n<p>Когда я говорю про огромное число сценариев, необязательно представлять что-то необъятное вроде Фотошопа. Даже календарь — это уже целый мир разных сценариев. Ну вот, например:<\/p>\n<blockquote>\n  <p>Иван понял, что не успевает на регулярную встречу, и хочет предупредить других участников о переносе. Кому-то из них удобнее написать, кому-то позвонить. В ходе одного из звонков Пётр говорит, что давайте тогда уж вообще перенесём эту встречу на час позже, потому что ему самому трудно на неё успевать всё время. Иван смутно помнит, что где-то через пару недель у него запись к зубному, и хочет убедиться, что перенос не конфликтует с ней, идёт проверяет. Выясняется, что конфликтует, но договариваются всё же перенести на час позже, а там, через две недели, просто сделать исключение.<\/p>\n<\/blockquote>\n<p>Ну и что, как построить навигационную модель вокруг этого сценария? Да никак.<\/p>\n<p>Во-первых, если вы хорошо провели анализ, то даже тех сценариев, которые вы рассмотрели и выделили как ключевые, будет довольно много. То есть даже если для каждого из них есть прям готовая кнопка или раздел в интерфейсе, найти их будет не так просто. Во-вторых, остальные сценарии, которых несравнимо больше, вообще непонятно, где надо будет искать. Развивать такой продукт и поддерживать растущее число сценариев — боль.<\/p>\n<p>Хороший интерфейс не ведёт по сценариям, он лишь создаёт для них возможности. Он даёт пользователю свободу, чувство контроля, ту самую «агентность», а не просто направляет его по одной из нескольких заранее проложенных дорожек. Разумеется, в календаре нет готовой кнопки или даже «мастера» для того, что описано в сценарии выше. Календарь просто так устроен, чтобы пройти по этому сценарию не составляет труда.<\/p>\n<p>Это похоже на вопрос о том, зачем нужны карты и схемы, когда в телефоне и так есть навигатор. Навигатор очень полезен, но с ним ты не чувствуешь себя хозяином положения, не можешь отклониться от пути. Карта же даёт общее понимание того, как устроен мир, и ты уже можешь сам принимать решения. На карте нет специальной секции для сценария «по пути с ребёнком из школы заехать погулять в парк», но она делает этот сценарий возможным без проблем. В навигаторе можно предусмотреть функцию «заехать по пути», но её ещё нужно будет найти, а также десятки других сценариев останутся непокрытыми.<\/p>\n<p>Поэтому в основу навигации в интерфейсе нужно закладывать некую модель того, как мы хотим, чтобы человек представлял себе устройство нашего продукта: какие у нас есть сущности, как они связаны, организованы, что они умеют. Эта модель должна помогать нам реализовывать все важные сценарии, а пользователю — находить способы их реализации. И эта модель должна выдерживать развитие продукта.<\/p>\n",
            "summary": "При проектировании интерфейса важно проанализировать сценарии, то есть хорошо представить, как именно, в какой ситуации, с какими знаниями, целями и ожиданиями человек будет пользоваться интерфейсом",
            "date_published": "2026-07-20T18:13:27+05:00",
            "date_modified": "2026-07-20T18:12:44+05:00",
            "tags": [
                "интерфейс",
                "метод",
                "навигация",
                "сценарный подход"
            ],
            "_date_published_rfc2822": "Mon, 20 Jul 2026 18:13:27 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6777",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6775",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/arhiv-vakansiy-ne-mozhet-byt-podrazdelom-sozdaniya-vakansii\/",
            "title": "Архив вакансий не может быть подразделом создания вакансии",
            "content_html": "<p>Обсуждаем интерфейс по работе — сервис, где руководитель управляет вакансиями. В нём есть разделы «Вакансии», «Отклики», а также кнопка создания вакансии.<\/p>\n<p>Дизайнер показывает страницу создания вакансии. В ней вкладки «Новая вакансия» и «Архив». В первой, понятно, форма, а во второй — список ранее опубликованных, но уже закрытых вакансий.<\/p>\n<p>Я спрашиваю: почему архив находится вдруг на странице создания вакансий? Он же должен быть в разделе «Вакансии». Дизайнер объясняет, что частый сценарий — перепубликация ранее закрытых вакансий. То есть руководитель хочет создать вакансию, а мы ему удобно прямо под рукой даём архив, чтобы он мог старую вакансию перепубликовать.<\/p>\n<p>Ну уж нет, это неудобно и непонятно. Даже если предположить, что такой сценарий частый и руководитель так хочет, в голове этого руководителя неоткуда взяться мысли, что архив вакансий будет поджидать его в форме создания. Он пойдёт искать вакансию в разделе «Вакансии».<\/p>\n<p>В навигации должна быть логика, отражающая структуру продукта и связей сущностей внутри него, чтобы человек представлял, что где искать. А если мы хотим подсказать какой-то сценарий, то можно всегда предусмотреть кроссссылку (любимое слово). Например, в начале формы новой вакансии можно написать: «Чтобы повторить ранее опубликованную вакансию, вот вам в архив» — и ссылочку. Кликов столько же, зато всё понятно. А главное, если человек не прочитает это, он всё равно сможет всё найти.<\/p>\n",
            "summary": "Обсуждаем интерфейс по работе — сервис, где руководитель управляет вакансиями. В нём есть разделы «Вакансии», «Отклики», а также кнопка создания вакансии",
            "date_published": "2026-07-14T15:46:14+05:00",
            "date_modified": "2026-07-20T14:45:51+05:00",
            "tags": [
                "интерфейс",
                "навигация в интерфейсе",
                "сценарный подход"
            ],
            "_date_published_rfc2822": "Tue, 14 Jul 2026 15:46:14 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6775",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6771",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/think-on-65\/",
            "title": "Думаем дальше № 65 — «Никто не пользуется стеклянными сферами» с Никитой Прокоповым",
            "content_html": "<p>С Никитой Прокоповым обсуждаем ВВДЦ 2026 и дизайн программ для ЭВМ.<\/p>\n<p>Все выпуски подкаста:<br \/>\n<a href=\"https:\/\/podcasts.apple.com\/us\/podcast\/думаем-дальше\/id1744862171\">Эпл<\/a> · <a href=\"https:\/\/www.youtube.com\/playlist?list=PLl7kvlp_qh0j9uzQGU2ws4DkBWdbjY1_d\">Ютюб<\/a> · <a href=\"https:\/\/music.yandex.com\/album\/29069497\">Я.Музыка<\/a> · <a href=\"https:\/\/open.spotify.com\/show\/7i4OkUq55wAC1iyZYEshmi\">Спотифай<\/a> · <a href=\"https:\/\/thinkon.mave.digital\">Мейв<\/a> · <a href=\"https:\/\/cloud.mave.digital\/51724\">РСС для подкастного приложения<\/a><\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n  <tr>\n    <td style=\"text-align: right\">0:00<\/td>\n    <td style=\"text-align: left\">Какой сигнал мы получили на ВВДЦ 2026 и чего ждём через год<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">4:38<\/td>\n    <td style=\"text-align: left\">Предзаписанные и живые презентации<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">6:26<\/td>\n    <td style=\"text-align: left\">Полировка и скучающие журналисты<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">11:08<\/td>\n    <td style=\"text-align: left\">Золотые ворота: иконки в меню и в Доке<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">17:33<\/td>\n    <td style=\"text-align: left\">Скругления углов окон. Историческая справка<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">26:27<\/td>\n    <td style=\"text-align: left\">Выбеление интерфейса, возвращение тулбаров и наведение резкости<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">32:52<\/td>\n    <td style=\"text-align: left\">Мнение Никиты о прозрачности в интерфейсе и теория Ильи о прозрачности в реальной жизни<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">40:03<\/td>\n    <td style=\"text-align: left\">Двигунок жидкости стекла<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">44:38<\/td>\n    <td style=\"text-align: left\">Пружинистые кнопки<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">48:25<\/td>\n    <td style=\"text-align: left\">Тулбары и группы кнопок на них<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">51:49<\/td>\n    <td style=\"text-align: left\">Синхронизация фоток<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">54:45<\/td>\n    <td style=\"text-align: left\">Всё не так тормозит, но зачем оно вообще тормозит?<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">1:06:54<\/td>\n    <td style=\"text-align: left\">Ощущение качества и надёжности от софта<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">1:10:32<\/td>\n    <td style=\"text-align: left\">Каким должен быть редизайн и путь к эталонному решению<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">1:15:34<\/td>\n    <td style=\"text-align: left\">Красота и привлекательность интерфейса. Ортопедический дизайн<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: right\">1:17:56<\/td>\n    <td style=\"text-align: left\">Все хотят оторвать боковые панели, а зря<\/td>\n  <\/tr>\n<\/table>\n",
            "summary": "С Никитой Прокоповым обсуждаем ВВДЦ 2026 и дизайн программ для ЭВМ",
            "date_published": "2026-07-10T11:42:22+05:00",
            "date_modified": "2026-07-10T11:45:54+05:00",
            "tags": [
                "дизайн",
                "Думаем дальше",
                "интерфейс",
                "Мак",
                "Эпл"
            ],
            "_date_published_rfc2822": "Fri, 10 Jul 2026 11:42:22 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6771",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6770",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/lag-theorem\/",
            "title": "Теорема о тормозах",
            "content_html": "<p>Поговорим о ситуациях, когда компьютер тормозит.<\/p>\n<p>Под тормозами понимается медлительность, мешающая свободному взаимодействию и тем самым вызывающая фрустрацию и раздражение. Если компьютер скачивает пять гигабайт данных, компилирует сложный проект или рендерит видео, это занимает ощутимое время, но это не тормоза: мы дали компьютеру задачу, и он работает, выполняет. Теперь допустим, что видео рендерилось час, потом отобразился статус «Завершено», а через секунду готовый файл отобразился на рабочем столе. Первый час компьютер не тормозил, но следующую секунду — тормозил.<\/p>\n<p><b>Теорема:<\/b> все тормоза являются ошибками и исправимы.<\/p>\n<p>Технически даже своевременное отображение статуса или реакции не действие пользователя — это такая же «работа», как и рендеринг видео. Однако такая работа должна быть выполнена за время, которое человек не способен ощутить. Будем называть это «мгновенно».<\/p>\n<p>Примеры тормозов в современно софте:<\/p>\n<ul>\n  <li>при запуске программы нельзя сразу же начать ей пользоваться, а нужно ждать загрузки;<\/li>\n  <li>после загрузки часть интерфейса дорисовывается на глазах у пользователя;<\/li>\n  <li>при нажатии на кнопку нет мгновенной реакции;<\/li>\n  <li>при вводе с клавиатуры символы появляются не мгновенно;<\/li>\n  <li>при прокрутке страница едет не плавно или с отставанием от пользователя;<\/li>\n  <li>при прокрутке часть содержимого догружается на глазах у пользователя, а не приезжает уже готовым из-за края окна;<\/li>\n  <li>при изменении размеров окна разные части интерфейса перерисовываются на глазах у пользователя с разной скоростью или в несколько «прыжков»;<\/li>\n  <li>при перетаскивании объекта программа понимает, что может «принять» его, не мгновенно;<\/li>\n  <li>после открытия меню, на глазах у пользователя в нём добавляются пункты или меняется их порядок;<\/li>\n  <li>разные части интерфейса реагируют на действия пользователя через разное время.<\/li>\n<\/ul>\n<p>Во времена первых компьютеров тормоза были неизбежны, потому что мало что можно было сделать мгновенно. Но как минимум последние двадцать лет компьютеры на несколько порядков быстрее, чем необходимо для мгновенности, а значит и для полного отсутствия тормозов во всех случаях.<\/p>\n<p>Если программа тормозит, это лишь значит, что в тот момент, когда она должна мгновенно отобразить данные или отреагировать на действие пользователя, она занята чем-то другим. Это что-то другое — ненужная в данный момент, лишняя работа. Это ошибка в программе, и она должна быть исправлена. Лишняя работа должна перестать делаться и мешать пользователю пользоваться компьютером.<\/p>\n<p>Таким образом, тормоза нельзя списать на слабое железо; это слабость исключительно её автора.<\/p>\n",
            "summary": "Поговорим о ситуациях, когда компьютер тормозит",
            "date_published": "2026-07-09T23:48:45+05:00",
            "date_modified": "2026-07-11T18:48:42+05:00",
            "tags": [
                "интерфейс",
                "обратная связь"
            ],
            "_date_published_rfc2822": "Thu, 09 Jul 2026 23:48:45 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6770",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6766",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/carplay-scrubbing\/",
            "title": "Двигунок для перемотки в Карплее",
            "content_html": "<p><a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/carplay-temporary-messages\/\">Заодно<\/a> ещё один момент про Карплей. В Ай-ОСе 27 анонсировали возможность перематывать музыку в нём, потащив за двигунок. Это отлично, но тут тоже возникает вопрос: а чем думали разработчики предыдущие десять лет, когда не давали это сделать? Это ж стандартное поведение ползунка, что за него можно потянуть. Значит, для аудио в Карплее его кто-то специально ломал.<\/p>\n<p>Я могу предположить, что идея была такая, мол, слишком сложный элемент управления, за рулём будет отвлекать. Но это, конечно, ошибка. Если я хочу перемотать трек на середину, и мне не дают это сделать, потащив ползунок на экране машины, то я потянусь за телефоном, а не передумаю перематывать.<\/p>\n<p>Рад, что до Эпла дошло, наконец, — но блин.<\/p>\n",
            "summary": "Заодно ещё один момент про Карплей. В Ай-ОСе 27 анонсировали возможность перематывать музыку в нём, потащив за двигунок",
            "date_published": "2026-06-27T00:10:47+05:00",
            "date_modified": "2026-06-27T00:10:44+05:00",
            "tags": [
                "интерфейс",
                "Карплей",
                "Эпл"
            ],
            "_date_published_rfc2822": "Sat, 27 Jun 2026 00:10:47 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6766",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "6765",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/carplay-temporary-messages\/",
            "title": "Временные сообщения в Карплее",
            "content_html": "<p>Если у тебя Карплей, когда приходит сообщение, ты видишь что-то такое:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/carplay-message.jpg\" width=\"768\" height=\"479\" alt=\"\" \/>\n  <figcaption class=\"e2-text-caption\">Изображение с сайта appletoolbox.com<\/figcaption>\n<\/figure>\n<p>Это старый дизайн, в новом чуть иначе, но не важно. Появляется сообщение без текста сообщения. Если успеть за пару секунд нажать кнопку на руле, оно попытается прочитать сообщение вслух. Либо спросит, прочитать ли сообщение вслух, там как повезёт. Если за пару секунд не успеть, сообщение исчезнет, и его уже так просто не достанешь.<\/p>\n<p>Понятное дело, что в реальности это всё бесит неимоверно — я же на дорогу смотрю. Бывает, увижу краем глаза, что пришло сообщение, и думаю: о, ну пусть попробует прочитать. Жму кнопку на руле, но к этому моменту оно исчезает, и кнопка срабатывает как-нибудь иначе (например, отменяет текущий маршрут в навигации, очень удобно).<\/p>\n<p>Никакие сообщения не должны самовольно исчезать с экрана. Если уж появилось, то блин стой на месте, пока я сам тебя не закрою. В обычном Ай-ОСе можно настроить уведомления так, чтобы они не уезжали, и разумеется, те полтора уведомления, которые у меня разрешены, настроены именно так.<\/p>\n<p>Но на автомобиле это втройне важно. Причём это кажется настолько очевидным, что я даже не знаю, какой был ход мысли разработчика, который писал код убирания сообщения с экрана. Вероятно, просто никакого не было, потому что если бы там была мысль, то такого кода просто бы не возникло.<\/p>\n",
            "summary": "Если у тебя Карплей, когда приходит сообщение, ты видишь что-то такое",
            "date_published": "2026-06-26T14:22:53+05:00",
            "date_modified": "2026-06-27T00:10:41+05:00",
            "tags": [
                "интерфейс",
                "Карплей",
                "модальность",
                "Эпл"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/carplay-message.jpg",
            "_date_published_rfc2822": "Fri, 26 Jun 2026 14:22:53 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6765",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/carplay-message.jpg"
                ]
            }
        },
        {
            "id": "6762",
            "url": "https:\/\/ilyabirman.ru\/meanwhile\/all\/uvolte-programmistov-kotorye-razloginivayut-vashih-polzovateley\/",
            "title": "Увольте программистов, которые разлогинивают ваших пользователей",
            "content_html": "<p>У меня много причин для недовольства современным софтом. Часто мне возражают, мол, зато метрики. Это тупое возражение, но можно хотя бы понять ход мысли недальновидных менеджеров, которые такое продвигают. Но вот вещь, которая не лезет ни в какие ворота — это то, что программы и сайты постоянно разлогинивают пользователей.<\/p>\n<p>На днях думал прокатиться на самокате. Зашёл в приложение Вуш, а оно меня забыло:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/razlogin-whoosh@2x.jpg\" width=\"402\" height=\"874\" alt=\"\" \/>\n<\/figure>\n<p>Вуш думает, я буду заново проходить там всю канитель с регистрацией? Нет, я пойду пешком.<\/p>\n<p>Оно даже никак не извиняется, ничего не объясняет, просто полная потеря памяти. Хоть бы написали какую-нибудь чушь типа «вы не пользовались больше полугода, поэтому...». Очевидно, что компьютеру не составляет труда помнить залогиненность хоть двадцать лет, то есть смысла в словах про полгода не было бы никакого, но было бы ощущение, что меня хоть как-то помнят. Но нет даже этого.<\/p>\n<p>Или вот зашёл я в Саундклауд послушать музыку — а туда я захожу почти каждый день, и у меня даже платный акаунт — а Саундклауд пишет какую-то ахинею:<\/p>\n<figure class=\"e2-text-picture\">\n  <img src=\"https:\/\/ilyabirman.ru\/meanwhile\/pictures\/razlogin-soundcloud@2x.jpg\" width=\"562\" height=\"331\" alt=\"\" \/>\n<\/figure>\n<p>Вы, говорит, разлогинились. Идите теперь в телефон! Что за кретин это написал? Во-первых, я не разлогинивался из Саундклауда, скорее всего, вообще ни одного раза в жизни, потому что нет причин это делать. Только сам дебил-Саундклауд мог меня разлогинить. Во-вторых, какая вообще связь с телефоном? В таком контексте ощущается как сознательное издевательство. Даже если предположить, что я зачем-нибудь разлогинился сам, нафига мне идти в телефон, что там ждёт свежеразлогинившегося меня?<\/p>\n<p>Увольте программистов, которые разлогинивают ваших пользователей. Вам будут вешать на уши лапшу про безопасность, но это бред сивой кобылы. Пусть объяснят, как потерянные продажи повышают безопасность (но уже в поиске другой работы).<\/p>\n<p>Не думаю, что меня хоть раз разлогинивало Яндекс.Такси или Озон. Да даже Альфа и Тиньков меня не разлогинивают никогда, и ничего! Как-нибудь уж самокаты и музыка могут снизить свои требования к «безопасности» хотя бы до банковского уровня?<\/p>\n",
            "summary": "У меня много причин для недовольства современным софтом. Часто мне возражают, мол, зато метрики. Это тупое возражение, но можно хотя бы понять ход мысли недальновидных менеджеров...",
            "date_published": "2026-06-24T20:27:38+05:00",
            "date_modified": "2026-06-24T20:27:08+05:00",
            "tags": [
                "безопасность",
                "бизнес",
                "интерфейс"
            ],
            "image": "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/razlogin-whoosh@2x.jpg",
            "_date_published_rfc2822": "Wed, 24 Jun 2026 20:27:38 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6762",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/razlogin-whoosh@2x.jpg",
                    "https:\/\/ilyabirman.ru\/meanwhile\/pictures\/razlogin-soundcloud@2x.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4309,
    "_e2_ua_string": "Aegea 12.0a (v4309e)"
}