Подписка на блог

В Телеграме помимо ссылок на заметки делюсь околодизайнерскими наблюдениями.

В Твиттере помимо ссылок на заметки пишу всякую чушь.

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

По РСС и Джейсон-фиду трансляции для автоматических читалок

Продукты

Эгея 2.9

Готова Эгея 2.9 (сборка v3553) со значительной переписью старья под капотом, фоткой в «Настройке», тёмным режимом, входом через ВК, менюшками и подкастами (для платных пользователей). Эта заметка повторяет анонс беты, но с меньшим занудством. Хотите подробнее — читайте анонс беты.

2.9 — необычный релиз, такой «Снежный барс» среди Эгей. Я стремился к наведению порядка под капотом во многих местах движка, так что новых фич не очень много. См. заметки про альфу, альфу 2, альфу 3, альфу 4, бету и бету-2.

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

С последней беты фичи, связанные с подкастами, стали доступны только в платной версии, а также улучшилась совместимость с ПХП 7.4. Теперь в качестве обложки подкаста используется обложка страницы тега, используемого для подкаста, и только если её нет — фотография автора блога.

Настройка и темы

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

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

Эта фотка теперь автоматически используется в качестве фавыконки и эпл-тач-иконки.

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

В темах «Простая» и «Акут» появилась поддержка системного тёмного режима. То есть при переключении тёмного режима в ОС, блоги с этими темами будут тоже переключаться в тёмный режим. Если такое поведение вам не нужно, снимите галку «Поддерживать Тёмный режим»:

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

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

Ещё в подвал «Настройки» вернулась ссылка на открытые сессии. Для меня самого загадка, зачем и при каких обстоятельствах я её убирал. Ещё там могли не показываться айпи-адреса при определённой конфигурации сервера, теперь показываются.

При изменении настройки соединения с базой теперь выводятся конкретные сообщения об ошибке, а не просто «перепроверьте параметры».

Менюшки

Появились выпадающие меню управления комментариями:

И загруженными картинками:

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

Нормальная обработка фейлов

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

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

Благодаря большому рефакторингу фронтенда, Эгея теперь умеет выводить аккуратные сообщения об ошибках при неудаче с аджакс-запросами:

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

Также стало проще включить ведение лога. Если вы мне пожалуетесь на необъяснимый баг, я смогу быстрее получить от вас лог и попытаться понять, в чём дело. (Поддержки движка по-прежнему нет, так что в общем случае помочь я вам не смогу.)

Практически всё, что касается фронтенда (включая настройку аватарки, новые менюшки, эти сообщения об ошибках и исправление кучи багов) сделал Женя Лазарев — мегаспасибо Жене!

Подкасты (для платных пользователей)

Теперь Эгею можно использовать для подкастов, правда поддержка этого сделана на уровне прожиточного минимума. В коде РССа теперь вставляются теги enclosure с аудиозаписями, если они использованы в заметке, и добавлены разные ещё теги, которые нужны для подкастов: язык, автор, описание. На обычную работу РСС это не влияет.

Чтобы сделать подкаст на Эгее, нужно завести какой-то тег, который будет стоять у всех заметок-выпусков. В каждую такую заметку должен быть загружен мп3-файл с выпуском. Например, вы выбрали тег «подкаст». В редакторе тега пропишите тегу нормальное название в урле (например, «podcast») и заполните поля «Заголовок страницы» и «Описание» — они станут названием и описанием подкаста.

У меня это выглядит так (на описание пока забил):

Теперь выпуски подкаста, как любые заметки по тегу, живут на его странице с урлом ваш-блог/tags/podcast/, а урл ваш-блог/tags/podcast/rss/ можно скормить любому подкастному приложению, и оно будет скачивать и играть выпуски. Этот же урл можно отдать Эплу, чтобы добавить подкаст в каталог Айтюнса.

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

Другие подкастные поля для Айтюса вроде категории и наличия ненормативной лексики теперь можно настроить в конфиге через атрибуты rss_itunes_categories_xml (сюда надо прям XML-код атрибутов в формате Айтюнса) и rss_itunes_explicit (yes или no). Эти параметры — глобальные для блога. Если вы хотите публиковать несколько подкастов на разных тегах, вы не сможете прописать им разные значения этих атрибутов.

У меня прописано так:

$_config['rss_itunes_categories_xml'] = (
  '<itunes:category text="Arts">'. "\r\n".
  '<itunes:category text="Design" />'. "\r\n".
  '</itunes:category>'. "\r\n".
  '<itunes:category text="Society &amp; Culture">'. "\r\n".
  '<itunes:category text="Personal Journals" />'. "\r\n".
  '</itunes:category>'. "\r\n".
  '<itunes:category text="Technology" />'. "\r\n"
);

$_config['rss_itunes_explicit'] = 'no';

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

Разметка фрагментов аудио

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

В редакторе заметки это выглядит так:

[play] http://traffic.libsyn.com/atpfm/atp363.mp3 363: The Floor is Lava

<span class="e2-audio-seek jouele-control" data-href="http://traffic.libsyn.com/atpfm/atp363.mp3" data-type="seek" data-range="1:24:55...1:31:24">Разговор про Айпад начинается с 1:24:55</span>. Особенно здорово...

Как видите, приходится использовать АПИ Жуэля Про впрямую, в том числе, прописывать полный путь к файлу в атрибуте data-href. Класс .e2-audio-seek я определил в Эгее и использую, чтобы такие ссылки на места в аудиотреках выглядели как кликабельными и подсвечивались, когда эти фрагменты звучат.

Кроме того, появился упрощённый синтаксис для разметки частей длинного аудио, например диджейского микса или подкаста. Пример того, что с этим можно сделать — в недавней заметке о промомиксе «Аудио Санто». Пока играет микс, в плейлисте ниже подсвечен трек:

В редакторе заметки это выглядит так:

[play] http://promodj.com/download/6921656/ Ilya Birman: Audio Santo (Studio Mix)
0:00:00 0:02:44  Analog Pussy: Spooky Loops
0:02:45 0:04:34  Logic Bomb: Skrock
0:04:35 0:06:09  Krumelur: Understatement
...

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

Остальное

Добавилась возможность представляться в комментариях через «Вконтакте» (спасибо Виктору Корейше):

«Роза» научилась английскому словоизменению (спасибо Роману Парпалаку). Кажется, меньше вероятность того, что поиск забудет проиндексировать некоторые заметки (был едва уловимый баг, попытался исправить).

Нисден стал поддерживать прямое указание языка программирования в коде: <code lang="php"> (спасибо Жене Степанищеву).

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

Мелочи:

  • если загрузить файл с русским именем, его имя теперь романизируется;
  • немного изменился внешний вид инсталятора;
  • миграция будет выполняться быстрее благодаря меньшему числу лишних запросов;
  • теперь не только в заметках, но в описаниях тега и блога можно использовать аудио и фоторамы (следствие унификации кода для обработки больших текстовых полей);
  • всем страницам добавлен og:type="website";
  • движок больше не даст запланировать заметку на будущее, если ему не хватает прав доступа к папке user/, и объяснит, что надо его дать (без этого он не сможет сохранить инфу о том, когда нужно будет сбросить кеши);
  • в комплекте теперь идут Лайкли 2.4 с рабочим счётчиком Фейсбука и без Гугль-плюса (спасибо, Николай Рысь);
  • sitemap.xml стал правильнее;
  • теперь можно сделать свой кастомный шаблон для РСС (user/rss/rss.tmpl.php);
  • при редактировании тега, в названии которого были эмодзи, они слетали, а теперь выживают;
  • поправлены всякие другие баги.

Ещё появилась беспилотная инсталляция, но это я для себя просто пишу, чтобы не забыть.

Как обновиться

Отредактируйте и сохраните любую заметку или черновик (на всякий случай; это гарантирует, что сделается актуальный бекап базы).

Замените файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть уберите старые, положите новые, а не дозалейте в старые новые файлы).

Имейте в виду, что переделалось всё логирование. Вместо user/log.txt теперь в папке user/logs/ пишутся разные логи, так что если у движка не будет прав, чтобы создать эту папку и файлы в ней, логов не будет. Если у вас всё правильно установлено, таких проблем быть не должно, потому что у Эгеи должны быть полные права на запись всего внутри её собственной папки, но это повод вам перепроверить.

Если вы делали свою тему оформления, посмотрите, что изменилось в комплектной, и аккуратно повторите эти изменения у себя. Также изменились названия некоторых параметров конфига, добавились новые (ваш user/config.php может частично утратить актуальность; сверяйтесь с system/config.php);

Где скачать

Свежий дистрибутив — на сайте движка.

Если вы пользуетесь платной версией и хотите платную 2.9, напишите мне.

О предыдущей версии: 2.8

 11 комментариев    1581   1 мес  

Эгея 2.9 бета 2

Готова новая Эгея 2.9 бета 2 (сборка v3543). Не обновляйтесь на живых сайтах, если только вы не суперпродвинутый технарь, обложившийся бекапами со всех сторон. Не забывайте, что бета — это очень страшно.

Но если у вас предыдущая бета, то обновитесь обязательно: устранена уязвимость, которая недавно была устранена в Эгее 2.8.

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

Что вообще нового в Эгее 2.9 — читайте в заметке про первую бету. Коротко: фотка в «Настройке», тёмный режим, вход через ВК, менюшки, подкасты и много-много переписи старья под капотом.

Что в новой бете:

  • устранена уязвимость;
  • заработало «Избранное» и «Самые комментируемые», сломавшиеся в первой бете;
  • фотка теперь используется в качестве фавыконки и эпл-тач-иконки;
  • Нисден стал поддерживать прямое указание языка программирования в коде: <code lang="php"> (спасибо Жене Степанищеву);
  • добавилась поддержка плейлистов Жуэля Про, если у вас Жуэль Про (мне пока некогда написать, как этим пользоваться);
  • если загрузить файл с русским именем, его имя теперь транслитерируется;
  • подкручены неудачные цвета в некоторых темах;
  • исправлены разные баги.

Были слухи, что Эгея 2.9 не работает на ПХП 7.3. У меня пока не было возможности протестировать, поэтому пишите, как дела.

Как попробовать и что тестировать

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

  1. Отредактировать и сохранить любую заметку (на всякий случай, это гарантирует, что сделается актуальный бекап базы).
  2. Забекапить всю папку на сервере, включая бекапы базы данных, которые лежат в /user/backups/.
  3. Заменить файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть убрать старые, положить новые, а не дозалить новые файлы в старые папки).

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

  • сам процесс обновления, чтобы не вылезло никаких ошибок про базу данных;
  • весь фронтенд: сохранение заметки без перезагрузки; загрузку картинок и аудиофайлов; установку звёздочек заметкам и т. д.;
  • инсталятор;
  • поиск (плохо, если что-то не находит, что есть);
  • вход через ВК.

Ссылка: e2_distr_v3543.zip

Пишите, чё как.

Если вы пользуетесь платной версией и хотите бету платной 2.9, напишите мне.

О предыдущей версии: 2.8

 5 комментариев    1091   2 мес  

Эгея 2.8

Готова Эгея 2.8 (сборка v3364) с комментариями через соцсети, улучшениями в антиспаме, планировщиком заметок, новой темой оформления, поддержкой эмодзи и другими штуками. Эта заметка повторяет анонс беты, но с меньшим занудством. Хотите подробнее — читайте анонс беты.

Комментарии через соцсети

Раньше оставить комментарий мог любой, просто указав что-то, напоминающее почту. Теперь ещё можно зайти через Твиттер или Фейсбук:

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

Тогда просто оставив почту комментировать уже будет нельзя.

При входе через соцсеть вместо того, чтобы сразу идти в эту соцсеть, вы сначала заглянете на сайт Эгеи:

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

Если вы как автор блога всё-таки хотите заморочиться с ключами соцсетей, чтобы комментаторы представлялись вам напрямую, а не через сайт Эгеи, так тоже можно. Скопируйте из system/gips/ в user/gips/ джейсоновские файлы настройки соцсетей и пропишите там свои ключи.

С разработкой этой фичи помогли Иван Щолоков и Виктор Корейша, с дизайном помог Иван Звягин.

Ещё появились дата и время у комментариев, изменён формат отображения относительного времени, поменялась вёрстка комментариев и управления ими на мобиле.

Улучшения в антиспаме

В новой версии вы сможете потребовать входа через соцсети, и это должно снять проблему спама.

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

Запланированные заметки (для платных пользователей)

Если вы платный пользователь, теперь сможете запланировать заметку. Для этого рядом с кнопкой «Опубликовать» появилась кнопка с календариком:

Если в неё нажать, можно указать дату и время, когда выйдёт заметка:

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

Новая тема оформления

Называется «Акут», чистенькая:

В большинстве тем оформления случились наноулучшения. В частности, аудиоплеер теперь нормально выглядит на всех темах с тёмным фоном. Это «Холм»:

Эмодзи

Теперь Эгея поддерживает эмодзи 🎉 Женя Степанищев научил Эгею правильно работать с базой данных для их поддержки. При обновлении база данных должна автоматически сконвертироваться, и Эмодзи должны заработать. Если не заработают, видимо, у вас очень древняя версия Майэскуэля, где нет поддержки нужной для этого кодировки utf8mb4.

Остальное

Сбылись мечты народные! Ссылка «7 комментариев» под заметкой теперь ведёт сразу туда, где начинаются комментарии, а не в начало страницы с заметкой.

Теперь под каждой заметкой показывает, сколько людей её видели:

Пришлось придумать хитрость, чтобы кешировать всё, кроме этих чисел.

На странице 404 теперь показываются ссылки на популярные заметки, чтобы хоть куда-то можно было пойти:

Популярные теперь считаются по количеству увидевших, а не хитов.

Если в заметке несколько песен, они больше не играют сами по себе по порядку — от этого было больше проблем, чем пользы. Если вы хотите, чтобы играли, придётся вручную завернуть их в div.jouele-playlist.

В окне входа можно сказать, что ты забыл пароль:

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

Если ввести ту же, что Эгея знает, то туда тоже отправится ссылка для сброса пароля.

Убрана двигалка «важные — все» на странице тегов, теперь просто показываются все.

Пофиксились некоторые баги с масштабированием картинок и на странице со списком тегов. Ещё исправлена группа багов, из-за которых нельзя было назвать заметку или тег «0». Если вы не любите ПХП, то у вас отличный повод для злорадства! Ещё добавились небольшие оптимизации там и тут (v3276, v3278, v3297, v3345, v3350).

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

Ещё после выхода версии 2.7 выходили небольшие апдейты; версия 2.8 включает все фиксы из них:

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

Минимальная версия ПХП поднялась с 5.3 до 5.4. Если у вас 5.3, новая Эгея не будет работать вообще никак.

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

Жуэль, Роза и Нисден обновились.

Эгея теперь генерирует sitemap.xml.

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

Как обновиться

Отредактируйте и сохраните любую заметку или черновик (на всякий случай; это гарантирует, что сделается актуальный бекап базы).

Замените файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть уберите старые, положите новые, а не дозалейте в старые новые файлы).

Где скачать

Свежий дистрибутив — на сайте движка.

Если вы пользуетесь платной версией и хотите платную 2.8, напишите мне.

О предыдущей версии: 2.7

 21 комментарий    2032   11 мес  

Эгея 2.8 бета 2

Готова новая Эгея 2.8 бета 2 (сборка v3354). Не обновляйтесь на живых сайтах, если только вы не суперпродвинутый технарь, обложившийся бекапами со всех сторон. Не забывайте, что бета — это очень страшно. После первой беты вскрылось много разного, поэтому давайте-ка потестим ещё.

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

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

Что в новой бете:

  • устранена потенциальная уязвимость первой беты (поэтому важно обновиться, если у вас первая бета, то есть сборка v3333 или выше);
  • подкрутили новый антиспам;
  • появились дата и время у комментариев;
  • изменён формат отображения относительного времени;
  • поменялась вёрстка комментариев и управления ими на мобиле;
  • исправлены разные баги с управлением комментариями: удаление-восстановление, звёздочки, ответы;
  • исправлен баг, из-за которого ссылки некоторых заметок в лентах и результатах поиска могли вести на главную;
  • страницы с заметками могли зря потреблять энергию в Сафари, когда смотришь на них залогиненным;
  • значительная оптимизация в форматтере текста: сохранение очень-очень длинных заметок больше не должно тормозить;
  • убрана двигалка «важные — все» на странице тегов, теперь просто показываются все;
  • косметика.

Напоминаю, что в новой версии минимальная версия ПХП поднялась с 5.3 до 5.4. Если у вас 5.3, новая Эгея не будет работать вообще никак.

Ещё были какие недоисследованные проблемы с ПХП 7.2. У меня пока не было возможности протестировать, поэтому пишите, как дела.

Как попробовать и что тестировать

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

  1. Отредактировать и сохранить любую заметку (на всякий случай, это гарантирует, что сделается актуальный бекап базы).
  2. Забекапить всю папку на сервере, включая бекапы базы данных, которые лежат в /user/backups/.
  3. Заменить файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть убрать старые, положить новые, а не дозалить новые файлы в старые папки).

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

  • всё управление комментариями;
  • комментарии через соцсети;
  • антиспам;
  • восстановление забытого пароля;
  • ПХП 7.2;
  • сам процесс обновления, чтобы не вылезло никаких ошибок про базу данных;
  • эмодзи в заметках и комментариях;
  • планирование заметок;
  • темы оформления.

Ссылка: e2_distr_v3354.zip Релиз.

Пишите, чё как.

Если вы пользуетесь платной версией и хотите бету платной 2.8, напишите мне.

О предыдущей версии: 2.7

 30 комментариев    1524   12 мес  

Эгея 2.8 бета

С наступающим!

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

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

Комментарии через соцсети

Раньше оставить комментарий мог любой, просто указав что-то, напоминающее почту. Теперь ещё можно зайти через Твиттер или Фейсбук:

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

Тогда просто оставив почту комментировать уже будет нельзя.

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

Чтобы не подвергать пользователей Эгеи таким пыткам, я придумал промежуточный сервер для авторизации. Попробуйте оставить комментарий к этой заметке, зайдя через Фейсбук. Вместо того, чтобы сразу идти в Фейсбук, вы сначала заглянете на сайт Эгеи:

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

Если вы как автор блога всё-таки хотите заморочиться с ключами, чтобы комментаторы представлялись вам напрямую, а не через сайт Эгеи, так тоже можно. Скопируйте из system/gips/ в user/gips/ джейсоновские файлы настройки соцсетей и пропишите там свои ключи.

С разработкой этой фичи помогли Иван Щолоков и Виктор Корейша, с дизайном помог Иван Звягин.

Улучшения в антиспаме

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

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

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

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

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

Запланированные заметки (для платных пользователей)

Если вы платный пользователь, теперь сможете запланировать заметку. Для этого рядом с кнопкой «Опубликовать» появилась кнопка с календариком:

Если в неё нажать, можно указать дату и время, когда выйдёт заметка:

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

Новая тема оформления

Называется «Акут», чистенькая:

В большинстве тем оформления случились наноулучшения. В частности, аудиоплеер теперь нормально выглядит на всех темах с тёмным фоном. Это «Холм»:

Эмодзи

Теперь Эгея поддерживает эмодзи 🎉

Казалось бы, что тут поддерживать, это ж просто символ? Кодировку УТФ-8 Эгея поддерживает ещё с версии 2.0.

Но проблема в том, что в базе данных Майэскуэль, которую использует Эгея, первые реализации УТФ-8 были кривыми и не умели хранить нужные для эмодзей четырёхбайтные символы. А когда научились, для обратной совместимости это стало называться «кодировкой» utf8mb4. Я об этом понятия не имел, потому что в гробу видал эмодзи и использую их только, когда отвечаю на сообщения с часов.

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

Остальное

Сбылись мечты народные! Ссылка «7 комментариев» под заметкой теперь ведёт сразу туда, где начинаются комментарии, а не в начало страницы с заметкой.

Теперь под каждой заметкой показывает, сколько людей её видели:

Пришлось придумать хитрость, чтобы кешировать всё, кроме этих чисел.

На странице 404 теперь показываются ссылки на популярные заметки, чтобы хоть куда-то можно было пойти:

Популярные теперь считаются по количеству увидевших, а не хитов.

Если в заметке несколько песен, они больше не играют сами по себе по порядку — от этого было больше проблем, чем пользы. Если вы хотите, чтобы играли, придётся вручную завернуть их в div.jouele-playlist.

В окне входа можно сказать, что ты забыл пароль:

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

Если ввести ту же, что Эгея знает, то туда тоже отправится ссылка для сброса пароля.

Пофиксились некоторые баги с масштабированием картинок и на странице со списком тегов. Ещё исправлена группа багов, из-за которых нельзя было назвать заметку или тег «0». Если вы не любите ПХП, то у вас отличный повод для злорадства! Ещё добавились небольшие оптимизации там и тут (v3276, v3278, v3297).

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

Ещё после выхода версии 2.7 выходили небольшие апдейты; версия 2.8 включает все фиксы из них:

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

Минимальная версия ПХП поднялась с 5.3 до 5.4. Если у вас 5.3, новая Эгея не будет работать вообще никак.

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

Жуэль, Роза и Нисден обновились.

Эгея теперь генерирует sitemap.xml.

Как попробовать и что тестировать

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

  1. Отредактировать и сохранить любую заметку (на всякий случай, это гарантирует, что сделается актуальный бекап базы).
  2. Забекапить всю папку на сервере, включая бекапы базы данных, которые лежат в /user/backups/.
  3. Заменить файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть убрать старые, положить новые, а не дозалить в старые новые файлы).

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

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

  • сам процесс обновления, чтобы не вылезло никаких ошибок про базу данных;
  • эмодзи в заметках и комментариях;
  • комментарии через соцсети;
  • антиспам;
  • планирование заметок;
  • темы оформления;
  • восстановление забытого пароля.

Ссылка: e2_distr_v3333.zip e2_distr_v3354.zip Релиз.

Пишите, чё как.

Если вы пользуетесь платной версией и хотите бету платной 2.8, напишите мне.

О предыдущей версии: 2.7

 33 комментария    1763   2018  

Зерулс переехал на ХТТПС

Эта новость расстроит тех, кто использовал сайт «Зерулс» для входа в вайфай с браузерной авторизацией. Да, сайт переехал на ХТТПС.

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

В рассказе о проекте переделался этаж с участниками снизу — теперь все с фоткам и ссылками. И туда добавился Глеб Гончаров, который помог настроить новый сервер и завести ХТТПС. С Глебом мы также делаем сервис Эгеи, и он помогает с моим сайтом и сайтом самой Эгеи.

 1 комментарий    1027   2018  

Ещё штуки в Зерулсе 2.0

Хочу ещё рассказать про пару дизайнерских фокусов в новом Зерулсе.

Во-первых, у нас два стиля ссылок: синие для переходов внутри сайта и чёрные-подчёркнутые для уходов наружу. Мы решили не подчёркивать внутренние ссылки, как Википедия. Учитывая, что на сайте нет других цветов, путаницы между ссылкой и не ссылкой не возникнет.

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

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

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

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

Наверняка что-то забыл.

См. также страничку о проекте.

 1 комментарий    668   2018  

Второе издание правил русского языка

Запущена вторая версия сайта «Зерулс» — лучшего веб-издания правил русского языка.

Вместе с Вадимом Юмадиловым мы сделали новый дизайн. Аня Данилова нарисовала прекрасные знаки параграфов. А Виктор Корейша всё сверстал и запрограммировал:

Под капотом по-прежнему умный поисковый движок, который мы с Романом Парпалаком сделали в 2010 году (с ума сойти, как давно это было).

Пользуйтесь на здоровье.

Приём кредитов
Фотография Романа Баранова

Ссылки на всех, у кого есть куда:

На Аню некуда поставить ссылку, поэтому ей просто большое спасибо.

Смотрите также страничку проекта.

Ну и заодно напоминаю, что работает приложение «Зерулса» для Айфона, которое мы сделали с Шуриком Бабаевым.

 3 комментария    770   2018  

Жуэль-про

Жуэль-про

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

Вы можете подумать, что для этого пришлось писать гору Джаваскрипта. Но на самом деле нет, просто я использую новый Жуэль-про. Гору Джаваскрипта пришлось писать Жене Лазареву, который запрограммировал Жуэль-про. А мне осталось только воспользоваться новым супермощным декларативным АПИ, которое мы придумали.

Рассказываю.

Если вы использовали Жуэль, вы знаете, что чтобы вставить на страницу аудиоплеер, достаточно просто поставить ссылку на МП3-файл и дать ей класс jouele:

<a href="ilya-birman-use-me-mix.mp3" class="jouele">
  Илья Бирман: Юз ми
</a>

Но что, если рядом с плеером стоит обложка, и я хочу, чтобы микс начинал играть по клику в обложку? С Жуэлем-про это делается так:

<img
  src="cover.jpg"
  class="jouele-control"
  data-type="play-pause"
/>

Теперь в обложку можно кликать, и микс заиграет. И запаузится, если кликнуть ещё раз.

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

<tr class="jouele-control"
  data-type="seek" data-to="0:45:38"
>
  <td>0:45:38</td>
  <td>Tensal</td>
  <td>Achievement 3</td>
</tr>

Теперь клик в эту строчку таблицы будет перематывать микс куда надо.

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

img.jouele-is-playing {
  outline: rgba(255, 255, 255, .2) 10px solid;
}

Всё! Жуэль-про сам даёт класс jouele-is-playing своим элементам управления во время воспроизведения, поэтому подсветка просто работает независимо от того, как именно я включил музыку — из плеера, обложкой или вообще клавиатурой. Мне снова не нужен Джаваскрипт.

И точно так же работает подсветка активной строчки в плейлисте. На самом деле ХТМЛ-код каждой строчки выглядит не так, как я показал выше, а вот так:

<tr class="jouele-control"
  data-type="seek" data-range="0:45:38...0:48:55"
>
  <td>0:45:38</td>
  <td>Tensal</td>
  <td>Achievement 3</td>
</tr>

То есть строчка не только перематывает в определённую точку, но ещё и соответствует некоему отрезку. Чтобы она подсветилась, снова достаточно только ЦССа:

tr.jouele-is-within {
  background: rgba(255, 255, 255, .2);
  color: #fd0093;
}

Всё! Жуэль-про сам даёт класс jouele-is-within своим элементам управления, соответствующим диапазону, когда позиция воспроизведения находится внутри этого диапазона.

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

.jouele-is-interactive {
  cursor: pointer;
}

Если плееров на странице несколько, то элементы управления управляют тем, который играет или играл последним. А если такого ещё нет, то запустит первый на странице. Чтобы привязать к конкретному плееру, есть data-href:

<img
  src="cover.jpg"
  class="jouele-control"
  data-type="play-pause"
  data-href="ilya-birman-use-me-mix.mp3"
/>

На странице каждого микса у меня всегда один плеер, поэтому это там не нужно.

Жуэль-про стоит 1890 рублей на один домен. Обычный бесплатный Жуэль доступен как раньше.

Что посмотреть:

 3 комментария    1474   2018  

Эгея 2.7

Готова Эгея 2.7 (сборка v3239) с трансляцией на центральный сервер, большими улучшениями в темах, клавиатурным управлением в редакторе и другими штуками. Эта заметка в основном повторяет анонс беты, чтобы всё было в одном месте.

Проект «Холборн»: трансляция заметок на центральный сервер

Заметки, которые вы пишете в 2.7, отображаются в разделе «Блоги» на сайте движка:

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

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

Не бойтесь сделать опечатку — изменения тоже мгновенно приходят в «Блоги». Это же не Фейсбук вам. И если вы удалите заметку, она удалится и из «Блогов».

Новые темы и темы на основе переменных

В новой версии встроено несколько тем, например:

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

Все новые темы сделаны на основе «Простой», но не перекрытием её стилей, а через переменные:

Это тема «Дуглас», выглядит так:

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

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

Ещё в своих темах стало проще сделать собственную расцветку для подсветки синтаксиса. Про то, как это сделать, отдельно расскажу.

В ИЕ работает полифилл для ЦСС-переменных (спасибо, Игорь Адаменко).

Предпросмотр тем

В «Настройке» рядом с выбором тем появилась новая ссылка «Предпросмотр»:

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

Откройте, например, предпросмотр темы моего блога.

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

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

Встраиваемость в сайты (для платных пользователей)

Появилась специальная тема «Встраиваемая» (Embeddable). Это тема, в ЦССе которой определяются только специфические для Эгеи внутренности — заметки, комментарии, теги, элементы навигации — но не обёртка и вид стандартных тегов ХТМЛ.

Если подключить к Эгее ЦСС от вашего основного сайта и добавить ХТМЛ вашей шапки и подвала в тему «Встраиваемая», Эгея волшебным образом будет выглядеть как страница вашего сайта (у меня теперь работает именно так, а раньше приходилось использовать сто костылей).

См. подробнее в заметке: Как встроить Эгею 2.7 в свой сайт.

Абзацы с классами

Любая самостоятельная строка, начинающаяся с .something, превращается в абзац с классом something. Пишете:

.loud Какой-то громкий текст

Получаете (увидите только в браузере):

Какой-то громкий текст

Ну, это у меня. У вас может выглядеть иначе.

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

В самой Эгее и всех новых темах определены стили для .lead (подзаголовок или въезд), .loud (как выше) и .foot (сноска или примечание).

Вот это как раз примечание.

Клавиатура в редакторе

Игорь Адаменко, который сделал клёвое автосохранение в 2.6, реализовал для редактора 2.7 ещё одну отличную фичу — клавиатурное управление. Так быстрее. Работают такие сочетания (как в Гугль-доке):

⌘B жирный
⌘I курсив
⌘K ссылка
⌘⌥1 заголовок
⌘⌥2 подзаголовок
⌘⌥0 обычный абзац
⌘] увеличить уровень цитирования
⌘[ уменьшить уровень цитирования

Это работает и в заметках, и в комментариях, и в тегах, и в описании блога. В Виндоусе вместо ⌘ работает Ctrl.

Ссылки на твиты

В дополнение к видосами на Ютюбе и Вимео, Эгея теперь умеет вставлять твиты просто по урлу. Вы пишете в редакторе ссылку на твит:

https://twitter.com/omelekhin/status/902835411034271744

Получаете сам твит:

Спасибо Илье Гельману за это.

В РССе ссылки на твиты отображаются как просто ссылки на твиты.

Соцпакет

Если у тега есть собственные картинки (загруженные в редакторе тега), то они все попадают в качестве картинок для соцсетей ко всем заметкам с этим тегом. Удобно во всяких рубриках типа «Что почитать на выходных» обложки делать.

В код страниц добавились нужные заклинания, чтобы заметки попадали в твиты вместе с картинками.

Добавилась поддержка шаринга в Вотсапп (спасибо Илье Гельману).

Поиск

Как вы помните, с версии 2.6 в Эгее новый поиск на базе движка «Роза». Теперь используется новая версия, которая ещё лучше рассчитывает релевантность.

Кроме того, поиск теперь корректно индексирует слова с нерусскими и неанглийскими буквами (например, украинскими, белорусскими). За это всё спасибо Роману Парпалаку.

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

Остальное

Улучшена фильтрация спама в комментариях (спасибо Ивану Щолокову).

Теперь вдобавок к РСС поддерживается джейсон-фид — новый стандарт для подписки. Читайте об РССе и джейсон-фиде. Помимо ленты всего блога и ленты по тегу, доступна «лента» из любой одной заметки, например — этой. Если зачем-то нужно вытащить смысловые куски заметки, не нужно пытаться парсить ХТМЛ. У меня это используется для моих трансляций в раздел «Блоги».

Гуиды заметок в РССе теперь стали их идентификаторами из базы данных. Это по идее должно решить проблему дубликации РССа. Конечно же, я сделал, чтобы заметки, написанные до обновления, остались со старыми гуидами.

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

Код метрики и аналитики больше не вставляется, если страницу просматривает залогиненный автор (это касается пользователей платной и хостед-версий).

Исправлено много разных багов с загрузкой картинок и аудиофайлов. Они не теряются, если загружать их в редактор тегов вне текстового поля, не «подвисают» в форме новой заметки.

Если на вашем сервере установлено ПХП-расширение zip, то внизу в настройке появится ссылка на скачивание последнего бекапа. Это я сделал для сервиса, но никому не будет лишним.

Ещё Серёга Чикин нарисовал клёвую иконку-лимончик, которая теперь показывается в подвале (посмотрите у меня, например).

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

Лайкли, Жуэль и ХайлайтЖС обновились.

Скрипты теперь собираются вебпаком. Игорь Адаменко их переписал более прямыми руками, чем мои.

Где скачать

Свежий дистрибутив — на сайте движка.

Если вы пользуетесь платной версией и хотите платную 2.7, напишите мне.

 12 комментариев    397   2017  
Ранее Ctrl + ↓