Позднее Ctrl + ↑

Эгея без реестра

На системном уровне в Эгее было сделано много важных изменений:

  1. Больше нет дебильного реестра!
  2. Разбор и генерацию урлов делает движок.
  3. Новая подсистема тем-шаблонов берёт вообще весь вывод в браузер на себя.
  4. Переписана подсистема кеширования и теперь она работает нормально.

Сначала про реестр. Раньше в E2 был файл registry.psa, в котором хранилось вообще всё, что движку нужно было хранить на сервере, в виде сериализованного ПХП-массива (PSA — это PHP Serialized Array). Ну, кроме того, для чего предназначена БД. Каркас движка был так устроен, что обработка любого запроса начиналась с чтения реестра и заканчивалась его записью. Я относился к нему как к постоянному хранилищу любых данных. Я мог просто написать где угодно $registry[’setttings’][’somesetting’] = some_value и знать, что это значение сохранится. В результате в реестре хранились всякие параметры, данные установщика, какая-то статистика, хеш пароля, какая-то отладочная фигня, кеш (!) и чёрт знает что ещё.

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

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

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

В результате всё стало радикально надёжнее и немножко быстрее. О других изменениях — в следующей серии.

Нажатие на клавиши с модификаторами

Клавиши бывают не только на клавиатуре. Можно иной раз посочинять, что будет, если нажать совершенно любую клавишу с модификатором — Шифтом, Альтом или Контролем.

Например, если сесть в лифт на первом этаже и нажать Шифт+7, то он последовательно остановится на всех этажах до седьмого. Аналогично на пульте от телека можно нажать Контроль и не отпуская его: 2, 4, 9 — тогда будет показывать все три выбранных канала. Если нажать Контроль+Альт+красную кнопку в ядерном чемоданчике, то взорвётся всё нахрен без подтверждения (без модификаторов справшивает: «Вы уверены?»). У пианиста шифт и контроль под ногами, там всё понятно, а где альт и что он делает? Если в дверь позвонить с Альтом, то выпадет меню для выбора мелодии звонка, а что будет, если с Шифтом? А если на банкомате нажать Альт+снятие наличных, то можно будет выбрать, с чьего именно счёта снимать, но что будет, если нажать Контроль+запрос остатка?

Какие ещё кнопки можно нажимать с Шифтом, Альтом или Контролем, и что при этом произойдёт?

О процессе тестирования Эгеи

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

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

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

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

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

Сейчас мне нужно починить кое-что, и тогда можно будет передать движок на растерзание третьей группе. Здесь, на Минвайле, всегда крутится самая последняя сборка (сейчас это v2300).

Приятно читать, что пишут ребята о новом движке:

Мне чертовски нравится Эгея. Так нравится, что я уже 4 поста накатал. Она реально клёвая и удобная. Как Айфон: вроде нет множества функций, которые есть в ВП, но начинаешь пользоваться и не понимаешь, зачем они были нужны.
Дмитрий Амчеславский

Эгея — прекрасна, проста и лаконична! После тяжёлого Вордпресса — как глоток свежего воздуха!
Владимир Игонин

Мне тоже она очень нравится.

Эгея и часовые пояса

Люди интересовались тем, как в Эгее работают часовые пояса, если я убрал всё про управление ими. Дело в том, что E2 хранит с каждой заметкой не только абсолютное время (timestamp), когда её написали, но и часовой пояс, где это было, чтобы отображаемое в человеческом формате время всегда было правдой. И раньше управление всем этим создавало разные неудобства.

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

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

Сейчас инсталлятор выглядит так:

Эгея и часовые пояса

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

При создании и при публикации заметки часовой пояс тоже определяется скриптом, но если это почему-то не получается, то используется часовой пояс по умолчанию. При этом если дело происходит летом, то заметка, написанная из Москвы, будет сохранена как «GMT+4» вместо правильных «GMT+3 с переходом на летнее время». Но это не беда, так как не оказывает влияния ни на что на свете кроме семантической красоты (которая не оказывает влияния ни на что на свете вообще).

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

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

Скоро закрытый бета-релиз Эгеи

Эгея (Aegea) — будущий мегарелиз моего движка блога E2. Я стараюсь уходить от тупого названия E2 и поэтому чаще использую именно название самого релиза.

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

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

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

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

Скоро закрытый бета-релиз Эгеи

Приятно посмотреть. Да, всё, что касается тем оформления вообще полностью переписано, то есть вывод в браузер теперь управляется сверхумной и ультрауниверсальной подсистемой, которая, тем не менее, в 100 раз проще для понимания, чем старая. Расскажу постепенно о том, как что устроено.

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

Кому интересно? Отвечать буду почтой и не сразу.

Про плеер и про Эгею

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

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

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

А ещё я перестал пинать балду по части Эгеи и очень сильно продвинулся за последние пару недель. Такое ощущение, что уже очень скоро я смогу что-то показать. Здесь вот я обновил движок, в результате чего поменялся дизайн комментариев (важные комментарии теперь красивенько выделены жёлтым маркером). И должен, наконец, заработать Энтер нормально везде (в поле поиска, в поле комментария). Если всё ещё что-то работает не так, дайте мне знать.

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

Мой плеер и глюки

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

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

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

Хорош просиживать штаны в контакте, давайте лучше сделаем хорошую штуку для мира. Кто согласен?

Пара слов про Айпад

Айпад оказался более полезным дивайсом, чем я думал.

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

Профит очевиден: отвлекаешься на фигню реже, а задницу от кресла отрываешь чаще.

Ну и полная синхронизация всего со всем, конечно, радует. Прислали ссылку на Ютюб — закинул кино в плейлист Watch on iPad, потом из него открыл на Айпаде в удобное время. Или: читаешь что-то на Айпаде в РССе, думаешь, что надо будет к этому вернуться на компьютере, помечаешь, как непрочитанное, потом на компьютере открываешь когда-нибудь.

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

Самара

В Самару я ездил на «404фест». Жил в наиболее элитном, 404-м номере гостиницы:

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

В Самаре есть реверсивные светофоры

К домам приделывают таблички с двумя названиями улиц:

В Самаре к домам приделывают таблички с двумя названиями улиц

Оказывается, одно из названий настоящее, а другое — историческое:

Иногда, правда, формат нагло нарушают:

В Самаре к домам приделывают таблички с двумя названиями улиц

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

В Самаре на троллейбусной табличке используют обалденный шрифт вместо трафарета

У «Газели» есть специальная шишка на лбу для размещения маршрутоуказателя:

У самарской «Газели» есть специальная шишка на лбу для размещения маршрутоуказателя

Трамвайно-троллейбусное управление:

Трамвайно-троллейбусное управление в Самаре

На парковках дают противоречивые инструкции:

В Самаре на парковках дают противоречивые инструкции

Якорь:

Знак с якорем в Самаре

Дефисы то пишут, то не пишут:

Дефисы то пишут, то не пишут

«Жигули»:

Вывеска «Жигули» в Самаре

Баня:

Баня в Самаре

Дом художника:

Дом художника в Самаре

Гордые лавки:

Самарские лавки гордятся тем, что они самарские

Дом стоит из последних сил:

Дом в Самаре стоит из последних сил

Фотографии из поездки в октябре 2010 года.

Заметка перенесена из раздела «Мир» 2 декабря 2023 года

Ранее Ctrl + ↓