Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Избранное

Две формулы Эйлера

Можно встретить утверждение, что формула Эйлера — самая красивая формула в математике. Это вот эта:

eiπ = −1

Формула прекрасная, спору нет. Но авторы утверждения о её предельной красоте иногда приводят её в таком виде:

eiπ + 1 = 0

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

Опросы пользователей

Один из способов исследования — это когда пользователей зовут проходить всякие опросы про продукт. Могут письмом зазвать «ответьте на несколько вопросов», а могут в самом приложении сказать «помогите нам стать лучше». Ясно, что сами эти опросы раздражают часть людей, но допустим, что это необходимое зло: как-то же надо изучать наших пользователей!

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

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

Я не к тому, что опросы никогда не надо проводить (хотя я был бы счастлив). Я к тому, что если вы сначала решили использовать этот метод при всех недостатках, потому что лучше ничего не нет, то не стоит потом смотреть на его результаты так, будто они настоящие. Надо так и смотреть: «Ну вот, наш кривой метод дал какие-то такие кривые результаты. И что они значат на самом деле?»

Замкнутость интерфейса

 4 мин

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

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

Самое интересное и сложное — это то, что переход должен полностью определяться состоянием и событием. Он не может зависеть от истории предыдущих состояний (если только это не буквально переход по истории состояний типа «Назад» или «Анду»). Если переход из некоторого состояния S при событии E зависит от того, попали мы в S из Q или R, то это значит, что нет никакого состояния S, а есть состояния S1 (S после Q) и S2 (S после R), и важно это осознать. Может показаться, что это какая-то заумь и вообще, какая разница. Но если не обращать внимания на это, то в интерфейсе возникают неявные состояния, в которых вид и переходы не определены. Дизайнер-то думает, что рассмотрел состояние S, да вот только это мифическое состояние, а настоящие состояния S1 и S2 он не рассмотрел.

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

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

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

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

О замкнутости следует думать как о математическом качестве. Возьмём такую теорему: «Число 60 делится на все числа». Это легко проверить: на 1 делится, на 2 делится, на 3 делится, на 4 делится. Мне продолжать? Ну на 5 делится, на 6 делится, сколько ещё примеров надо? Какое число ни возьми — на всё делится: 10, 15, 20... Так ведь? Но нет, это ничего не доказывает. Чтобы доказать теорему, нужно искать не удачные примеры в большом количестве, а саму фундаментальную причину, по которой она неизбежно верна. В данном случае такой причины нет.

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

Список как способ организации интерфейса

Совет о списке как элементе графического интерфейса хочется дополнить ещё другим списком, который можно также назвать вертикальным стеком или даже бутербродом, хотя этот термин скорее из мира вёрстки. Или как бы вы это назвали? Поток?.. Давайте придумаем термин!

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

Картинка с сайта Эпла

На этих примерах с Айфона друг за другом идут тумблеры, элементы навигации, кнопки, заголовки и просто блоки текста.

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

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

Картинка с сайта Эпла

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

В предельных случаях мы получаем интерфейсы с огромными бессмысленными полями слева и справа от основной колонки, которая при этом не помещается в высоту экрана и требует прокрутки:

Студенческая работа

Остатки Венеции

 4 мин

Вот вам ещё пачка фотографий из Венеции.

Сначала дневной:

1
2
3
4
5
6
7
8
9
10

Потом ночной:

11
12
13
14
15

Ну и ещё пара наблюдений осталась. Вёрстка меню:

Шрифт на автобусе:

Фотографии из поездки в октябре 2015 года. Слетайте в Венецию!

Ещё Венеция:

Вывески и таблички Венеции

 5 мин

На днях я перенёс из раздела «Мир» рассказы про Венецию и Верону из поездок в 2015 году — заодно перевыгрузил фотографии в более высоком разрешении.

Оказалось, что из Венеции много всего ещё хочется показать. Например вот, разные вывески и таблички.

1

Дневная версия:

2
3

Номерок:

4

Крутой эффект утоньшения букв к низу:

5

Ещё:

6
7
8

Фото-блиц:

9

Спагеттерия-пиццерия:

10

Государственные дела. Карабинеры:

11

Милитаристы:

12

Прикольный логотип:

13

Выезд машин:

14

Запрет:

15

Удивительный выбор расположения подчёркивания:

16

Куча всего

17

И ещё одна:

18

Жёлтую табличку хочу себе.

Фотографии из поездки в октябре 2015 года. Слетайте в Венецию!

Ещё Венеция:

Шифт+Энтер на Айфоне

Сначала историческая справка.

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

Первобытные текстовые редакторы вставляли эти же два управляющих символа в текст при нажатии на кнопку Энтер. По-английски они называются carriage return и line feed. Последовательность символов CR, LF (она же \r\n) означала начало следующей строки в ДОСе и означает в его наследнице Винде. В Юниксе же решили, что глупо ставить два символа для переноса строки и ограничились одним LF (он же \n). С тех пор эти два способа закончить строку дерутся и создают кучу проблем.

Так или иначе, ещё в 20 веке придумали, что вообще-то на компьютере текст сам переносится на следующую строку когда места перестаёт хватать, и никаких специальных символов для этого не надо.

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

А теперь к сути заметки.

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

И тут я на днях попробовал нажать Шифт+Энтер на Айфоне — и он сработал! Ровно так, как всю жизнь работал на компьютере. Теперь я думаю, что он так наверняка работал с первого Айфона, но мне никогда не приходило в голову попробовать, и я не могу понять почему. Я просто всю жизнь был уверен, что на Айфоне это сделать невозможно.

Сейчас анализируя это я думаю, что есть некое общее представление о том, что на Айфоне нет клавиш модификаторов типа Альт и Комманд, а кнопка Шифт — это не совсем модификатор, а как бы просто «вкладка» такая в клавиатуре, как и 123. Я ж не могу на Айфоне с Шифтом выделять текст или ещё что-то подобное делать, поэтому и Шифт-Энтер попробовать просто в голову не приходило. А зря!

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

Мы должны вести пользователей создавать личный кабинет

У меня очередной примерчик в коллекции:

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

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

Секс вокруг нас

В «Скучном секс-блоге» недавно был пост «Мир глазами мужчины». Там женщина сделалась мужчиной и офигела от того, что теперь всюду видит секс.

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

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

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

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

О непостоянстве убеждений

Люди с непостоянными убеждениями придумали оправдание, что изменения — это признак их роста. Они с гордостью говорят: «с возрастом я стал думать иначе» или даже «я поумнел». Если обратить их внимание на непоследовательность, они скажут, что только глупцы никогда не меняют взгядов.

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

Иногда к изменениям убеждений приводят значительные жизненные события: переезд в другую страну, рождение детей, пережитая тяжёлая болезнь. Такое кажется уважительной причиной для перемен, но на самом деле ещё хуже: получается, твои «убеждения» никакие не убеждения, а просто следствие обстоятельств, с которыми тебя столкнула жизни. Был ты убеждённым капиталистом, но потом твой бизнес прогорел и ты стал убеждённым социалистом? Так ничего не изменилось: ты как защищал собственные интересы подвернувшимся словом, так и защищаешь, а убеждений у тебя как не было, так и нет.

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

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

Ранее Ctrl + ↓