yurikhan: (Default)

А вот довелось мне намедни написать емейлом некий запрос (пока не важно) в одну организацию. И сегодня я получил оттуда ответ. С ответом ниже цитаты.

Так приятно, чёрт возьми.

yurikhan: (Default)

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

Интернет-провайдеры, Карл, в телефон!

Я допускаю, что мой интернет-провайдер может позвонить мне в телефон в трёх случаях:

  • Моё оборудование, подключённое к сети провайдера, своим действием или бездействием наносит ущерб ему или другим пользователям.
  • Другие пользователи наносят ущерб моему оборудованию.
  • Я заранее договорился с провайдером о каких-либо работах, где требуется моё присутствие.

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

картинка )
yurikhan: (Default)

Или о бесявости отсутствия таковых.

Альфа-Клик, интернет-банк Альфа-Банка. Чтобы сделать перевод между счетами, приходится (1) навестись на «Переводы» в строке меню, (2) в попап-меню ткнуть в «Между своими счетами», выбрать в выпадающих списках сначала (3) счёт Откуда, потом (4) счёт Куда, потом (5) ввести сумму. Именно в этом порядке, потому что преждевременная валидация ввода.

Как должно быть: В списке счетов вижу название и текущий остаток. (1а) Дрэг-эн-дроп из текущего остатка на другой счёт открывает форму перевода, заранее заполненную исходным и целевым счетами, остаётся только (2а) ввести сумму. (1б) Клик в название открывает выписку. На экране выписки тоже должна быть (2б) кнопка «Перевести отсюда», открывающая ту же форму с предзаполненным исходным счётом, остаётся (3б) выбрать целевой счёт и (4б) ввести сумму. Если переводим не между своими счетами, то сценарий (б) тот же самый, только в (3б) указываем счёт получателя не выбором из списка своих счетов, а каким-то другим способом (выбор из закладок или, на худой конец, заполнение формы с опциональным созданием закладки).

Zabbix, система мониторинга с веб-мордой. Вижу график трафика по семи серверам. Хочу добавить к нему недавно развёрнутый восьмой. Для этого приходится: (1) в строке меню навестись на Configure; (2) вспомнить, определён ли график для какого-то Хоста или в каком-то Шаблоне; (3) ткнуть соответственно в Hosts или Templates; (4) найти нужный хост или шаблон в двухстраничной таблице; (5) ткнуть в ссылку Graphs в его строке; (6) в открывшемся списке графиков этого хоста ткнуть в нужный график.

Как должно быть: На странице с графиком должна быть кнопка «Конфигурировать это».

Outlook Web Access, веб-морда к корпоративной почте. Чтобы подписаться на рассылку, приходится: (1) в меню опций ткнуть в Options; (2) ткнуть в Groups; (3) нажать кнопку Join; (4) в открывшемся диалоге ткнуть в нужную группу; (5) в окне информации о группе нажать кнопку Join.

Как должно быть: (1) На вкладке People или на главной можно поиском найти нужную группу. (2) В панели информации о группе должна быть кнопка «Вступить в это».

Gajim, jabber-клиент. Чтобы добавить контакт, нужно: (1) выбрать в меню Actions | Add contact | (нужный jabber-аккаунт); (2) в диалоге ввести JID; (3) в выпадающем списке выбрать группу.

Как должно быть: Ростер уже сгруппирован сначала по аккаунтам, потом по группам. (1) В контекстном меню группы должен быть пункт «Добавить сюда». Остаётся (2) в диалоге ввести JID.

Magit, git-фронтэнд для Emacs’а. Чтобы создать новую ветку от текущего коммита, нужно: (1) нажать b B (magit-branch-and-checkout); (2) ввести хэш или имя ветки начального коммита или согласиться на предлагаемый по умолчанию; (3) ввести имя новой ветки.

Как должно быть: (1) В графе коммитов навести курсор на нужный коммит; (2) дать команду «создать ветку отсюда»; (3) ввести имя новой ветки.

Jenkins, инструмент для continuous integration. Чтобы склонировать задачу, нужно (1) ткнуть New Item, (2) выбрать радиокнопку Copy existing item, (3) выбрать клонируемую задачу из комбо-списка.

Как должно быть: В контекстном меню задачи должен быть пункт «Склонировать это».

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

Положительные примеры: на картах в карточке здания «Проехать сюда» и «Проехать отсюда». В почтовиках «Filter messages like this».

yurikhan: (Default)

Первое время Inbox работал только в Chrome. Это было достаточным поводом не принимать его всерьёз.

Потом они поддержали Firefox и что-то там ещё. Для активации требуется поставить и запустить Android-приложение. Немножко bullshit’но. Но ok, поставил в виртуалке, активировал, удалил.

Ну и таки вот что я имею сказать по всему этому поводу.

  • Недостатки внешнего оформления
    • Небесно-ярко-голубой фон пустого инбокса — вырвиглазен.
    • Ярко-красная кнопка «Compose» — тоже вырвиглазна.
    • По умолчанию используется немоноширинный шрифт, даже для plain text писем.
    Это бы всё легко лечилось Stylish’ем. Но у гугла, как всегда, CSS-классы названы по-клингонски, при этом сервис обслуживает несколько серверов и на разных серверах имена классов разные. Поэтому оно лечится Stylish’ем сложно и костыльно.
  • Функциональные недостатки
    • Горячие клавиши. Разработчики веб-приложений, запомните: у Firefox’а есть фича «Find as you type». Когда она включена, все события ввода символов после обработки страницей проваливаются в браузер, где приводят к поднятию строки поиска по странице. Если только страница не сделает event.preventDefault(). И вот Inbox это делает только для основных двух шорткатов — n и p, а про остальные забывает.
    • Слева есть список лейблов. Но они все отрисовываются bold’ом, независимо от того, в каких из них есть непрочитанные сообщения. Факт наличия и количество непрочитанных сообщений определить никак нельзя. Предполагается, что все непрочитанные сообщения лежат либо в Inbox’е, либо в Snoozed, а потом ты их прочитываешь, отмечаешь Done и они архивируются. То есть, переезжая с Gmail на Inbox, нужно во всех фильтрах снять флажок «Skip Inbox», и панель настройки лейблов позволяет это весьма нетрудозатратно проделать. (Для этого нужно прокликать переключатель Bundled in Inbox для всех лейблов в положение On.)
    • Ну окей, после всего этого читать даже приятно. Все непрочитанные сообщения — в одном списке, причём сгруппированы по лейблу. Это хорошо и примерно соответствует обычному сценарию «тыкаем в первую папку, где есть непрочитанные, прочитываем их все, тыкаем в следующую». Но кроме читать, иногда бывает нужно писать. И тут всё резко плохо.
      • Панелька, в которой предлагается писать, узкая и сбоку. Вместо того, чтобы занимать всё доступное пространство в окне. В заголовке панельки есть кнопки «_» и «×». Кнопки «развернуть» нет.
      • И главный блокер. Инбокс не даёт писать plain text. Каждое сообщение отсылается как multipart/alternative [ text/plain; text/html ]. То есть, натурально, у почтового приложения отсутствует* функция написания сообщений. Какого хрена, Гугл?
  • А теперь на сладкое. Чтобы вернуться обратно на Gmail и чтобы непрочитанные сообщения с проставленными лейблами не светились в инбоксе, нужно пойти в настройки фильтров и там прокликать их все по более длинному маршруту: edit, Continue », [x] Skip Inbox, Save. А у меня их там около сотни, например.
yurikhan: (Default)

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

Почти все почтовые клиенты сходятся в том, что email относится к Древовидным. (Единственное известное мне исключение — Gmail, который считает, что к Плоским.)

Далее, почти все клиенты, умеющие группировать письма, отображают их в виде, натурально, леса. Где сообщения — вершины, а рёбра выражают тот факт, что одно сообщение является ответом на другое (в терминах заголовка In-Reply-To).

Внимание, вопрос! Что не так на этой картинке?

Read more... )
yurikhan: (Default)

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

Вот, например, «Эгея» Ильи Бирмана форматирует рассылаемые сообщения так:

Subject: имя комментирует топик
From: blog@ilyabirman.ru

Казалось бы, максимум информации в сабжекте, хорошо. Но к чему это ведёт?

А ведёт это к тому, что в почтовом клиенте комменты к одному посту группируются в треды по ключу (автор, топик). Когда разные комментаторы начинают друг другу отвечать, то следить за дискуссией становится невозможно.

В ЖЖ/DW письмо выглядит так:

From: ник - LJ Comment <lj_notify@livejournal.com>
Subject: Reply to (your entry|(your|a)comment in) "топик"
In-Reply-To: comment-#######-######@livejournal.com>
References: <entry-#######-#####@livejournal.com> <comment-#######-######@livejournal.com>
Message-Id: <comment-#######-######@livejournal.com>
  • Что хорошо: ник комментатора унесён в From, где ему логически и следует быть. И иерархия сообщений явно прописана.
  • Что недостаточно хорошо: вариация сабжектов в пределах одного топика мешает GMail’у поддерживать эту иерархию.
  • Что плохо: к сабжекту добавляется большой хвост в начале.

Как надо делать:

  1. Все комменты в один топик должны иметь по умолчанию один сабжект. (Допустимо, но, вероятно, нежелательно отражать в сабжекте оповещений изменение сабжектов комментов, если движок это позволяет.)
  2. Этот сабжект должен быть насколько возможно коротким и при этом однозначно связываться с постом. Например: «Re: топик». (Если движок допускает неозаглавленные посты, заглавием считать первое предложение.)
  3. Если движок реализует линейные комментарии, то следующий комментарий должен становиться In-Reply-To: к предыдущему. Если древовидные, то дочерний комментарий должен становиться In-Reply-To: к родительскому. (Для этого движок должен сам раздавать Message-Id’ы, а не полагаться на систему доставки почты.)
  4. Текст того, на что отвечают, не должен автоматически цитироваться в оповещении. (Rationale: длинный пост в ЖЖ.)
  5. Ссылки на исходный пост, коммент, родительский коммент, отписаться, отмодерировать — должны быть в «подвале»/подписи. Или, если получатель предпочитает HTML mail, то ссылками в шапке: ник replied to (your|a) comment to “название поста”.
yurikhan: (Default)

Прошу совета у опытных людей.

Вот есть аккаунт на корпоративном IMAP-сервере. В него сыплются письма по разным проектам, иногда много. Если за этим не следить, то скоро они перемешиваются и хрен что найдёшь. Даже с message threading’ом.

Хочется мочь из всей этой помойки выбрать письма, относящиеся к конкретному проекту, по следующим правилам:

  1. Письмо, имеющее в сабжекте имя проекта, относится к этому проекту. (Это идеальный, но недостижимый случай — реальные люди не пишут точное машиночитаемое имя проекта в сабже.)
  2. Письмо, которое я пометил руками, относится к проекту. (Это видится как необходимый и достаточный ручной труд.)
  3. Ответ на письмо, относящееся к проекту, также относится к проекту. (Вот это хочется энфорсить автоматически.)

Механизм сознательно не фиксирую. Это могут быть IMAP-серверные папки, IMAP keyword’ы, клиент-сайд-тэги и т.п. Допускаю переезд с Thunderbird’а на другой клиент, работающий под X11/GNU/Linux.

Хм, нашёл похожую на нужную функциональность в Evolution’е, хоть он монструозен и гномообразен. Держим всё в Inbox’е, создаём лейблы для всех проектов, создаём поисковые фолдеры с условиями «Include threads: All related», «Label is имя проекта» и «Search Folder Sources: Specific folders: Inbox».

Profile

yurikhan: (Default)
Yuri Khan

June 2017

S M T W T F S
    123
45678910
1112 1314151617
18192021222324
252627282930 

Links

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2017-07-22 04:38
Powered by Dreamwidth Studios