Эгея 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, поставьте себе, и попробуйте с ней пожить. Не забывайте, что нет вообще никакой поддержки и даже на несложные вопросы вроде «а в каком файле ты хранишь то-то» я могу отвечать долго. Если в вашем блоге есть хоть что-то ценное, сделайте максимальный бекап. В моём блоге сейчас, конечно же, крутится именно v4034a.

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

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

3 ч   релиз   Эгея

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

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

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

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

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

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

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

На курсе: редактируем интерфейс конфигуратора окон

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

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

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

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

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

Добро за счёт Илона Маска

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

В двух подкастах разные люди говорят: «Многие из сотрудников Твиттера находятся в Штатах по рабочей визе, которая привязана к работе в Твиттере. Если их уволили, то они обязаны покинуть страну. А они там с семьями и вообще по-другому жизнь планировали свою! Какой Маск ужасный человек!»

Сотрудников с семьями, конечно, жалко. Но при чём тут вообще Маск?

Оба рассуждающих — американцы. Почему бы вам не поднять вопрос о бесчеловечности вашего миграционного законодательства? Если вы, как граждане США, считаете, что ваше государство несправедливо поступает с мигрантами, оставшимися без работы, так обратитесь к государству. Оно хотя бы формально должно ваши интересы защищать. А частный предприниматель Маск-то с каких щей должен в ущерб себе обеспечивать пребывание людей в стране?

Рассуждающие явно даже не видят этой коллизии.

Раз вы переживаете за людей, добейтесь изменения законодательства, чтобы люди, уволенные с работы, могли оставаться в стране сколь угодно долго. Помогите им скорее найти новую работу, используя свой медиаресурс! Вы же верите, что этим людям требуется поддержка? Как говорится, put your money where your mouth is. Или вы сами ничего для них делать не готовы, но хотите, чтобы это делал Маск? Ну, как обычно.

См. также: Добро за чужой счёт

4 дн   общество

На курсе: улучшаем дизайн кнопки

Улучшаем дизайн кнопки. Тонируем тень. Скругляем углы нормально. Накладываем едва заметный градиент. Забытое искусство! 4 минуты:

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

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

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

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

Таблички в туалете израильского поезда

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

Обе тупые.

Над унитазом — про то, что туда не надо бросать бумагу и подгузники, и для всего этого есть мусорка:

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

Над кнопкой — тоже чушь, но другого типа. На иконке изображено, что это кнопка рядом с унитазом:

Да офигеть, а то я сам не вижу, что это кнопка рядом с унитазом!

На курсе: неудачные выравнивательные связи

У участника курса почти, но не совсем выровнялись слова. Но тут случай, когда если совсем выровнять, станет чуть ли не ещё хуже. Обсуждаем неудачные выравнивательные связи и другие совпадения, например коридорчики в наборе. 4 минуты:

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

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

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

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

См. также:

Уверенность в себе

Этот пост — заряд уверенности в себе для тех, кто в себе не уверен.

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

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

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

11 дн  

Достаточно одной крутилки

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

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

В классическом Айфоне бывал индикатор загрузки в статусбаре:

И вроде было какое-то АПИ, чтобы сказать статусбару, мол, у меня в интерфейсе и так есть индикатор, так что не показывай в статусбаре.

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

Ранее Ctrl + ↓