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

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

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

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

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

Эгея

Позднее Ctrl + ↑

Эгея 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 комментариев    1466   7 мес   продукты   релиз   Эгея

Эгея 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 комментария    1672   11 мес   продукты   релиз   Эгея

Как работают «Блоги»

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

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

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

Когда Эгея-источник пингует «Блоги» о новой заметке, Эгея-приёмник идёт и скачивает новую заметку себе. По умолчанию эта заметка попадает в черновики Эгеи-приёмника. Так что страница «Черновики» — это и есть админка «Блогов». Сначала все заметки просто попадали туда, и я их публиковал оттуда руками, как в обычной Эгее. Когда блогов накопилось много, это стало трудновато делать, и я добавил кнопочки, чтобы апрувить источник целиком, то есть чтобы его заметки сразу попадали в ленту. Если у вас Эгея и вы зайдёте в шаблон, отвечающий за вывод заметок (notes.tmpl.php), вы там увидите код для админских кнопок. У вас они не выводятся, потому что у ваших заметок нет внешнего источника.

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

Ещё про страницу «Блоги»:

 Нет комментариев    1811   2018   Эгея

Инстант-вью в Телеграме

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

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

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

Но что с этим дальше делать — неизвестно. Нет кнопки «Использовать этот шаблон». Нет места, куда его вставить на своём сайте, чтобы Телеграм увидел. Нихрена понять нельзя; я когда-то на три раза прочитал всю документацию, не въехал и забил.

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

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

 5 комментариев    1746   2018   Телеграм   Эгея

Первый сбой в сервисе Эгеи

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

В общем, у нас этой ночью случился первый сбой в сервисе Эгеи. Проблемы начались вчера, 14 марта, в 20:38 по Москве, и были устранены сегодня в 10:29. Некоторые сайты не открывались и выдавали ошибку 502.

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

Что плохо:

  1. Сайты были недоступны всю ночь.
  2. Мы узнали об этом не из мониторинга, а от пользователя.

Что хорошо:

  1. Данные пользователей не пострадали.
  2. Закрытые данные пользователей (черновики, пароли) не утекли наружу.

Что сделано:

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

Спасибо, что вы с нами. Подключайтесь, если ещё нет. Надеюсь, следующий сбой будет не скоро.

 Нет комментариев    1050   2018   Найтсбридж   Эгея

Эгея v3254: фикс тупого бага

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

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

Я выпустил фикс (по-прежнему называется v3254). Скачайте, пожалуйста. Достаточно заменить файл system/core.php новым, чтобы проблемы больше не было. Традиционного синего сообщения об обновлении не будет, потому что Эгея даже не поймёт, что обновилась (потому что это всё ещё v3254).

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

Для пользователей Эгеи как сервиса тоже выкатили обновление. Если хотите перезакачать картинки, держите нажатым Альт, когда затаскиваете их — это значит «перезаписать имеющуюся картинку с тем же названием».

 1 комментарий    526   2018   релиз   Эгея

Своя расцветка кода в Эгее

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

Комплектная тема оформления «Дуглас» использует цветовую схему solarized-dark, нестандартную для Эгеи. Посмотрите в её папку стилей (/themes/dougles/styles/), там есть файл solarized-dark.css. Он подключается просто потому, что он есть в этой папке — ничего специального делать не надо. Если вы положите ЦСС-файл подобной структуры в свою тему, в ней будут использоваться цвета из него.

Для подсветки кода у меня используется библиотека «Хайлайт» Ивана Сагалаева, которая включает целую кучу разных популярных цветовых схем (там слева можно примерить к разным языкам). Если вам лень сочинять свои цвета, вы можете просто взять какую-нибудь из этих схем, взяв её ЦСС-файл с Гитхаба. Ну или взять и докрутить по вкусу.

 2 комментария    395   2018   Эгея

Эгея в Докере

Когда-то я публиковал заметку Ивана Немытченко об установке Эгеи с помощью Ансибла.

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

Вспомнил я про это, потому что недавно мне написал Максим Прокопов, который тоже сделал Эгею в Докере. Максим объясняет:

Движок теперь очень просто можно установить и запустить через команду docker-compose на любом сервере.

Если вы понимаете, что такое Докер, посмотрите — вдруг вам что-то из этого будет полезно.

Павел, Максим, спасибо!

 3 комментария    109   2018   Эгея

Как попасть в «Блоги»

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

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

Я смотрю две-три заметки и принимаю решение. У меня есть три кнопки: «Доверять и опубликовать всё», «Забанить и удалить всё», «Забыть».

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

«Забанить и удалить всё» я жму если:

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

«Забыть» я жму если:

  • блог недоступен;
  • в блоге есть одна запись «привет» или «тест».

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

 8 комментариев    192   2018   Эгея

Живое демо блогового сервиса Эгеи

Ура, мы с Глебом Гончаровым запустили демо-версию Эгеи:

demo.blogengine.ru

Это чтобы вы пощупали настоящую Эгею как автор и захотели начать ей пользоваться.

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

Демоблог — один на всех. Так что вы можете увидеть следы экспериментов предыдущего гостя. Но в 0 и 30 минут каждого часа всё сбрасывается в исходное положение. Это похоже на то, как на Айфонах в Эпл-сторах есть не только клёвые фотки, залитые Эплом, но и селфики предыдущих посетителей магазина.

Пароль — sex.

 Нет комментариев    53   2017   Эгея
Ранее Ctrl + ↓