Позднее Ctrl + ↑

Эгея 2.11 альфа 2

Готова новая сборка Эгеи 2.11 альфа, о которой я писал ранее. Скачивая альфа-версию, вы рискуете всем.

Это заметка для того, чтобы ещё раз призвать вас потестировать.

Что изменилось с первой альфы:

  • улучшена работа на ПХП 8, в том числе ПХП 8.2;
  • улучшена проверка номера версии МарияДБ (она там такую чушь иногда возвращает, оказывается);
  • починена работа со включенным sql_mode=only_full_group_by;
  • мониторинг беззащитности мог зацикливаться на некоторых конфигурациях, вроде теперь не должен;
  • корневой .htaccess теперь закрывает доступ ко вложенным .htaccess — мониторинг беззащитности показал, что на некоторых хостингах это не настроено по умолчанию!
  • user/.htaccess теперь отдаёт файлы с расширениями svg, woff, woff2, eot, ttf, otf, так что вы можете подключать свои шрифты без дополнительной настройки;
  • в джейсон-фиде в качестве обложки заметки не отдавалась картинка, загруженная как обложка используемого в заметке тега;
  • новая иконка того, что результаты поиска откроются в новом окне;
  • новая иконка ВК;
  • ещё всякие мелочи.

Если вам интересно поэкспериментировать, то скачайте, пожалуйста, свежую сборку 4045a v4065b релиз, поставьте себе, и попробуйте с ней пожить. Не забывайте, что нет вообще никакой поддержки и даже на несложные вопросы вроде «а в каком файле ты хранишь то-то» я могу отвечать долго. Если в вашем блоге есть хоть что-то ценное, сделайте максимальный бекап. В моём блоге сейчас, конечно же, крутится именно v4045a. Чтобы обновиться, замените /system/, корневой .htaccess, user/.htaccess.

Если вам нужен платный дистрибутив, напишите мне.

См. также: Бета

Сценарное и пространственное решения в интерфейсе

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

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

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

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

Что послушать — 59

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

Вот что я слушал в последнее время, что мне понравилось:

  1. Jordan & Tammy Peterson: Couples Report. Джордан Питерсон и его жена Тэмми рассказывают о психологических особенностях друг друга, как это сказывается на их отношениях и чему они научились за свою жизнь. А вопросы им задаёт их дочь.
  2. Крис Латтнер у Лекса Фридмана. Крис — автор языка Свифт. Очень приятно послушать его всегда.
  3. Легли на дно и полёживаем. Наталья Зубаревич вообще интересная про экономику, но тут она в более объёмном-человечном свете, так что ещё лучше.
  4. Illusions of Agreement. Джейсон Фрид и Дэвид Хайнемейер Хэнсон объясняют, что лучше один раз увидеть — в том числе, чтобы договориться.
  5. Жизнь на Марсе теперь есть. Астроном Дмитрий Вибе на канале «Основа».

Автозакрытие вкладок в мобильном Сафари

У мобильного Сафари есть функция — автоматическое закрытие вкладок. Она вскрывает непродуманность интерфейса в целом:

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

Решение Эпла: симптоматическое лечение. Будем чистить список, которому ужасается пользователь! То есть, удалять пользовательские данные для красоты картинки.

Потолстел или поправился

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

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

Участница подумала, что в дизайне хорошо бы сразу учесть закон о персональных данных. Я дополняю тем, что хорошо бы сразу учесть и требования сеошников. 3 минутки:

Это фрагмент № 82 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 27 мая 2022 года.

До 2 декабря идёт запись на курс, который пройдёт с 3 декабря по 1 января.

Почитать о курсе

Программа, отзывы, запись

Масштаб лиц в наборе

«Политех» пишет про учёных с инвалидностью и показывает такую картинку:

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

Аккуратнее, когда все в одинаковом масштабе (цвете, свете). При этом небольшие отличия в ракурсе или головном уборе могут добавить жизни:

«Ваерд» в своё время хакнул систему: нарушил правило масштаба, но зато посадил всех за один стол, одел в чёрное и покрасил в одинаковый киношный тил-оранж:

На курсе: классические признаки поля ввода и кнопки

Рассказываю, почему поле ввода (обычно) не может отбрасывать тень, а кнопка может, она должна быть другого цвета, чем сама кнопка. 2 минуты:

Это фрагмент № 81 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 1 апреля 2022 года.

Почитать о курсе

Программа, отзывы, запись

Эгея 2.11 альфа

Встречайте альфа-сборку новой версии Эгеи.

В прошлой версии 2.10 появились рекомендации и перебивки — крутейшие инструменты, благодаря которым читатели могут находить хорошие заметки в вашем блоге независимо от того, когда они были написаны. А что нового в 2.11?

Главное меню

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

А теперь ничего и верстать не надо — Главное меню есть в Эгее «из коробки»:

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

В этом примере в начале меню стоит Избранное, а потом — любимые теги автора. Можно походить по тегам и посмотреть, какие есть заметки по разным темам:

Смотрите, какое чистенькое и аккуратненькое меню! Но при этом умное и функциональное.

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

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

Меню включается в Настройке, вот так:

Как видите, гибкость довольно большая: в меню можно добавить разные системные страницы. Наконец-то до Избранного, Обсуждаемого, Популярного будет легко добраться. Страница с полным списком тегов раньше пряталась за иконкой внутри поля поиска, а теперь её тоже можно показать в меню.

Если включить вообще всё и добавить кучу тегов, меню может получиться длинным:

Предполагаю, что «вообще всё» мало кому понадобится, но это дело автора. Вам не нужно думать, влезет ли меню у читателей с узким экраном. Не влезет — будет красиво прокручиваться прямо в своей строке.

Более того, если открыть страницу, которая есть в меню, меню обязательно сразу же откроется прокрученным так, чтобы выбранный пункт было видно (за такие вещи вы и любите Эгею):

Чтобы тег попал в меню, его нужно «закрепить» вот этой кнопкой:

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

Автор блога расставляет пункты меню в любом порядке простым перетаскиванием:

Главное меню и закреплённые теги будут доступны только в платной версии. Пользователи бесплатной увидят такое:

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

Если вы включили Главное меню в Настройке, но не выбрали ни одной специальной страницы, и закреплённых тегов у вас нет, то меню тоже отображаться не будет, потому что там нечему отображаться. Также главное меню не будет показываться, пока в блоге нет заметок. Это общий принцип: Эгея не показывает элементы управления, которые ведут «вникуда». Например, поиск тоже не отображается, пока заметок нет. И кнопочка черновиков появляется только когда появляются черновики. Но пункты меню всё-таки будут показываться все, которые вы выбрали, даже если их страницы пустые. Иначе будет ощущение неуправляемости: включаешь «Обсуждаемое», а оно не показывается фиг пойми почему.

Немодальный поиск

Поиск стал немодальным! То есть не нужно сначала тыкать в поле поиска, а потом начинать писать запрос. Любой ввод на странице сразу интерпретируется как поиск. Просто жмёшь букву «щ», и она сразу оказывается в поле поиска.

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

Как вы могли заметить, когда есть меню, поиск показывается прямо в нём, и всё вместе выглядит очень опрятно:

Если меню нет (выключено или бесплатная Эгея), поиск остаётся в уголке, как раньше, но немодальность работает в любом случае.

Есть ещё одна мелкая приятность, связанная с поиском. Бывает, начинаешь писать заметку, а надо поискать что-то в предыдущих заметках. Раньше приходилось открывать ещё одну вкладку, и там уже искать, чтобы не «перебить» редактор заметки результатами поиска.

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

Заботушка.

Навигация по календарю

Один из возможных пунктов Главного меню — «Календарь». Он открывает доступ к навигации по датам:

На этом примере мы перешли в «Календарь» — открылся день, когда была написана последняя заметка (на момент снятия скриншота). Видны заметки за день, можно перейти к другому дню, а также вверх к любому месяцу или году. Видно, если в какие-то даты не было заметок. А снизу есть навигация влево-вправо по соседним датам. Она же работает по альт-стрелкам аналогично тому, как можно альт-стрелками ходить по заметкам.

Как ни странно, в каком-то виде это всё было и в предыдущих версиях. Давным-давно в Эгее заметки получали адреса вида /год/месяц/день/номер/. Соответственно, до любой части адрес можно было стереть, и открывался список заметок за соответствующий день, месяц или год. Когда Эгея перешла на текстовые адреса заметок, мало кто мог догадаться сходить по урлу типа /2019/05/. А теперь такое можно просто натыкать.

Вот страница 2018-го года, например:

Альт-стрелками тут можно листать годы. Строчки календаря сделаны из того же компонента, что и Главное меню, поэтому умеют прокручиваться, если в них всё не влезает. Я веду блог с 2002 года, поэтому годы у меня не влезают никуда.

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

Скрытые теги

Теперь теги можно делать скрытыми, как последний тут:

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

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

Чтобы тег стал скрытым, нужно его назвать с точкой в начале:

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

Если потом тег захочется открыть, можно зайти в его карандашик и убрать эту точку:

Точно так же можно добавить точку уже существующим тегам, и они скроются.

Скрытые теги невозможно закрепить в Главном меню. Ленты заметок по скрытому тегу видны тоже только автору (остальным видна страница 404):

Безопасность

В Эгее появился фоновый мониторинг беззащитности. Щас объясню.

Как-то нашлось, что в блоге одного из пользователей по прямому урлу открывался файл settings.json, в котором хранится пароль от базы данных. Пароль зашифрован, но если расшифровать, злоумышленник мог получить доступ к базе. Поэтому с Эгеей идёт файл .htaccess, который закрывает доступ к этому и другим чувствительным файлам. Но это если Эгея работает на «родном» для себя сервере Апач. К сожалению, у автора был Нгинкс, и автор его настроил неправильно. То есть в том, что файл settings.json открывался, Эгея не только не виновата, но она вообще бессильна влиять на настройку сервера.

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

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

Работает! Конечно, эти сообщения видны только автору. Я доволен, что у меня давно есть вся инфраструктура для ленивых фоновых дел типа индексации поиска или подгрузки обложек с Ютюба. Благодаря этому реализация такого мониторинга была не слишком накладной.

Ещё одно улучшение — в настройке параметров доступа к базе данных раньше был виден пароль от базы, а теперь нет:

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

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

Остальное

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

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

Новая тема оформления — Галь (голубенькая, это она на скриншотах выше). Поддерживает тёмный режим. Дизайн чекбоксов также осовременился.

Кстати, благодаря прокручиваемому дизайну Главного меню, на мобиле оно работает как родное:

Но обратите внимание, что отступ между пунктами меню чуть больше. Это сделано, чтобы в них было легче попадать пальцем. Зелёные иконки управления тоже «расступаются». Причём на самом деле тут дело не в мобиле, а именно в тач-экране. На 12-дюймовом айпаде тоже будут увеличенные отступы между пунктами меню и иконками управления.

А также:

  • добавилась поддержка изображений формата ВебП (если ваша версия ПХП собрана с библиотекой gd, которая его поддерживает);
  • по аналогии с тем, как @2x в имени файла подсказывает Эгее, что картинка ретиновая, @loop в имени файла видоса теперь подсказывает, что видос надо предзагрузить и играть по кругу без контролов (так вставлены видосы в этом посте);
  • в заметках теперь хорошо выглядят два уровня подзаголовков;
  • если оплаченный срок платной версии позади, показывается красная точечка в Настройке;
  • раньше при апгрейде до платной версии не сбрасывались кеши, потому что архитектурно Эгея не считала включение платности «обновлением», поэтому какие-то платные фичи могли проявиться не сразу, а теперь Эгея видит, что произошла подмена и сбрасывается кеш автоматически;
  • заодно изменения в config.php теперь тоже приводит к автоматическому сбросу кеша (разумеется, если вы просто что-то меняете в Настройке, то о кешах вам и раньше не нужно было заботиться);
  • до Эгеи 2.11 нельзя обновиться с Эгеи 2.6 или более старой (сначала обновитесь до 2.10, а уже потом до 2.11);
  • сообщение об успешном обновлении теперь чуток человечнее (кроме номеров билдов теперь есть номера версий);
  • обновление теперь работает «прозрачно», то есть открывается именно та страница, которую вы запросили без редиректа на главную.

Технические дела

Эгея нормально работает на ПХП 8 (ну или давайте найдём, что ломается, и допочиним к релизу). Минимальные требования — ПХП 5.6, Майэскуэль 5.6 или МарияДБ 10.1.

Системные и пользовательские темы разделились. Папки /themes/ в корне больше нет, теперь есть /system/themes/ и /user/themes/. Если у вас были свои темы, перенесите их в /user/themes/.

Если у вас платная Эгея и вы использовали subscribe-sheet, то теперь вместо него — follow-sheet. Внесите в него нужные вам изменения.

Теперь заморочка для тех, у кого Эгея больше 9 лет. Перечитайте заметку об окончательном избавлении от Каллиопе в следующей версии. Начиная с Эгеи 2.11 Каллиопе не поддерживается ни в каком виде. Страницы /settings/calliope/ в 2.11 тоже нет. Если вы ещё не прошли через неё, рекомендую сначала поставить 2.10, и разгрести заметки оттуда. Прочитайте там.

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

Благодарности

Самая большая благодарность в этот раз — Нине Папчене. Нина сверстала меню со всем его волшебным и прекрасным поведением.

Также спасибо Арсению Шароглазову за помощь с безопасностью.

Что тестировать

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

Также было бы хорошо потестировать всё на ПХП 8 (8.1, 8.2).

Бесплатный и платный дистрибутивы

В бесплатной альфа-сборке нет Главного меню, потому что это платная фича.

Если вы платный пользователь, вы, как всегда, можете написать мне, и я дам вам платную версию альфы 2.11, и у вас будут работать меню и другие платные фичи. Учтите, что это всё равно альфа-версия со всеми рисками. Лучше пока не ставить на рабочий блог.

Также вы можете стать платным пользователем ради 2.11. В этом случае для вас спецпредложение. Если вы купите годовую лицензию за 3000 рублей, год начнёт отсчитываться только когда Эгея 2.11 выйдет. Если вы уже платный пользователь, вы тоже можете перейти на бету 2.11 и «остановить время» действия лицензии до даты финального релиза. Напишите мне.

Когда 2.11 выйдет, цена годовой лицензии вырастет.

Если вам интересно поэкспериментировать, то скачайте (или возьмите у меня платную) сборку v4034a 4045a v4065b релиз, поставьте себе, и попробуйте с ней пожить. Не забывайте, что нет вообще никакой поддержки и даже на несложные вопросы вроде «а в каком файле ты хранишь то-то» я могу отвечать долго. Если в вашем блоге есть хоть что-то ценное, сделайте максимальный бекап. В моём блоге сейчас, конечно же, крутится именно v4034a.

Чтобы обновиться, замените папку /system/.

Наконец-то можно не писать про подпапки в /themes/ каждый раз!

См. также: Альфа 2, Бета

Согласование типографики трёх языков в Израиле

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

Идея хорошая сама по себе, но результат часто так себе.

На первой фотке — станция скоростного трамвая в Тель-Авиве:

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

На второй фотке — прекрасная табличка на полицейском участке Реховота:

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

Ранее Ctrl + ↓