Позднее Ctrl + ↑

Не используйте аккордеон

Есть такой элемент интерфейса — аккордеон. Это когда в вертикальном списке есть распахивающиеся секции:

Из работы студента школы дизайнеров

Этот элемент очень неудобен.

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

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

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

Не используйте аккордеон.

Что почитать на выходных — 159

Вот:

  1. Сорок правил философии ответственности. «Если человек скучает, это значит, что не все его потребности удовлетворены». «Трудно быть взрослым и понимать, что ты — сам по себе, один как перст». «Мораль — это костыли, которые помогают ходить больным и мешают передвигаться здоровым». Очень важно, всё по делу, за исключением некоторых странноватых аналогий.
  2. Появление транспортных схем. Саша Караваев, с которым мы делали челябинскую схему, и который теперь работает над московской, нарыл несколько фактов, о которых я понятия не имел.

Закрытый пуск хостед-версии Эгеи

Я просил вас помочь с запуском хостед-версии Эгеи. Сегодня мы с Глебом Гончаровым запускаем пилотную версию нашего продукта под кодовым названием «Найтсбридж».

Что мы предлагаем сегодня:

  • Эгея работает на нашем сервере и на вашем доменном имени. Мы говорим вам, что прописать в настройке ДНСа, чтобы ваш домен смотрел на наш сервер. Возможности разместиться на нашем домене или поддомене пока нет.
  • Услуга платная.
  • По первому требованию мы присылаем полный дамп базы и все серверные файлы для разворачивания вашего блога на другом совместимом сервере. Или просто для резервного копирования. Важная ценность Эгеи в том, что вы владеете тем, что пишете — это мы сохраним.
  • Всегда последняя версия движка.
  • Семь тем оформления на выбор. У вас нет доступа к файлам на сервере, поэтому вы не можете сами подкрутить стили и разметку. Но если нужно, мы можем подкрутить для вас, см. ниже.
  • SSL.
  • Ежедневный бекап.
  • Если вы перестанете платить, вы больше не сможете писать заметки и загружать файлы, но блог продолжит работать. Я бы очень хотел пообещать, что он останется «навсегда», но пока не знаю, можем ли себе это позволить. Если для нас это почему-то станет убыточным, видимо, нам придётся извиниться перед вами и отключить блог.
Тариф В мес. В год На файлы
Частный 200 ₽ 1900 ₽ 2 ГБ
Корпоративный 2000 ₽ 19 000 ₽ 20 ГБ

Если вам нужно больше места на диске, напишите мне. Пока что минимальный срок оплаты — полгода.

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

Во всех тарифах мы готовы бесплатно перенести ваш имеющийся блог на Эгее себе. Нам понадобится ваш последний бекап.

Пока у нас нет интерфейса «регистрации» и заведения блога — мы запускаемся в закрытом режиме. Чтобы завести блог, напишите мне письмо. Я пришлю инструкцию и счёт.

Безопасно тупить в телефон, когда идёшь

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

Любой из нас может оказаться в такой ситуации.

А ведь телефон мог бы сам обеспечить безопасность хозяина. Шаги телефоны считать умеют много лет, а значит могут определить, что я в данный момент иду. В июне Эпл показал ARKit — библиотеку, которая понимает объёмные очертания изображения с камеры. Значит телефон может незаметно «смотреть» в камеру, когда я иду, и предупреждать о препятствиях и неровностях. И конечно, это должна быть фича операцинной системы, а не конкретной программы.

Интересно, кто первый реализует.

Почему заметки в РСС Эгеи могут повторяться

Потому что у вашего блога несколько адресов-синонимов и не настроен редирект на канонический адрес. Сейчас объясню.

Об определении новых заметок

Иногда люди жалуются, что от некоторых блогов на Эгее заметки «приходят по два раза» (или даже больше). Такое, например, было у Максима Ильяхова.

Чтобы разобраться, в чём дело, важно сначала понять, что заметки по РСС никуда не «приходят». РСС — это просто формат, в котором отдаётся лента. Читалка смотрит, не появилось ли в ленте новое, и, если появилось, показывает вам это как непрочитанное. Разумеется, каждая заметка в ленте встречается один раз — можете сами в этом убедиться на любом проблемном блоге. Но что-то заставляет читалку при очередном взгляде на ленту считать, что заметки из неё она ещё не видела, и нужно показать вам их как новые.

Чтобы понять, видела читалка заметку или нет, она смотрит не в текст заметки, а в РСС-тег <guid>. Этот тег должен содержать некий глобально уникальный идентификатор заметки. Традиционно для этого используют просто адрес заметки, и в этом случае ещё ставится атрибут isPermaLink.

Например, у этой заметки в ленте написано так:

<guid isPermaLink="true">
  http://ilyabirman.ru/meanwhile/all/aegea-rss-duplication/
</guid>

Об адресах-синонимах

Мой блог доступен по нескольким другим адресам, например:

И по всем возможным сочетаниям этих доменов и путей, с www и без. Однако у меня настроены редиректы. Если вы зайдёте не по каноническому адресу, вы автоматически перейдёте на канонический — попробуйте сами.

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

Это ошибка в настройке сервера: кроме владельца сайта никто не знает, что эти адреса — синонимы, и для внешнего мира всё выглядит так, будто есть несколько сайтов с одинаковым содержимым. Наверное, поисковики умеют такое отслеживать и понимать, но РСС-читалке неоткуда знать, что ilyabirman.ru и ilbi.ru — это один сайт (не пойдёт же она их постранично сравнивать).

Так почему возникают дубликаты-то?

Предположим, у меня бы не было редиректов, и кто-то бы подписался на РСС с сайта ilbi.ru/blog. Тогда в его РСС-ленте «уникальный» идентификатор этой заметки выглядел бы уже вот так:

<guid isPermaLink="true">
  http://ilbi.ru/blog/all/aegea-rss-duplication/
</guid>

Само по себе это не было бы проблемой, ведь для каждого конкретного подписчика эти адреса действительно уникальны. Если кто-то подписался на ilbi.ru/blog, то в его РСС-потоке неоткуда же взяться заметке с адресом ilyabirman.ru? Есть: из кеша!

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

Получается, что когда читалка обращается за РССом, Эгея отдаёт его из кеша, где все идентификаторы зависят от того, по какому адресу у неё спрашивали РСС первый раз после последнего изменения. Когда читалка, которая в прошлый раз видела десять заметок с идентификатором ilyabirman.ru/что-то, видит десять новых заметок с идентификаторами ilbi.ru/что-то, она думает, что перед ней новьё — вот и показывает всё это как непрочитанное.

Так падажжи

Тут у вас могут возникнуть вопросы.

— Что мешает Эгее во избежание этой проблемы писать идентификаторы всегда с одним адресом, даже если она доступна по нескольким?

Не только внешний мир без редиректа не знает, что ilyabirman.ru и ilbi.ru — это одно и тоже. Эгея, чтобы узнать, на каком сервере она работает, смотрит, по какому адресу её открыли — больше ей это узнать неоткуда. Если её открыли по адресу ilbi.ru, то в её вселенной просто не существует набора символов «ilyabirman.ru», чтобы засунуть его в РСС. То, что он оказывается в кеше — чистая случайность.

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

— Что мешает в качестве уникальных идентификаторов отдавать какую-то случайную (но постоянную для заметки) шестнадцатиричную фигню, чтобы вообще не завязываться на адреса?

Помимо того, что это тоже костыль и усложнение движка, проблема ещё вот в чём. Отдавать именно адрес заметки в качестве идентификатора принято в мире РСС — я за всю жизнь не видел ленты с другими идентификаторами. Я боюсь, что какие-то читалки могут на это полагаться, и что-нибудь в них сломается, если сделать иначе.

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

Вывод

РСС ломается, потому что вы делаете странное: у вас сайт одновременно и один, и несколько. Настройте редиректы, сбросьте кеш и всё будет хорошо.

Что почитать на выходных — 158

Авиационный выпуск:

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

И заодно:

  1. Четыре совета для повышения эффективности b2b-продаж. Миша Танский советует.
Ранее Ctrl + ↓