Позднее Ctrl + ↑

Лев и мышь

Потыкался в Мак ОС 10.7. Круто, чё. Правда, подтормаживает что-то вся анимация.

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

Больше всего меня поразило то, что, кажется, они, наконец, улучшили кривую ускорения мыши. Неужели? За полчаса разведки у меня не отвалилась рука! Если они реально это починили, то это просто поразительно, учитывая то, что они тотально переходят на тачпад везде и во всём.

Кстати, 10.7, думаю, увеличит продажи волшебного тачпада: в ней всё намного веселее в этом плане.

В Сафари шиза: зум с клавиатуры (по ⌘+ и ⌘−) работает по-старому, а тачпадом — как на Айфоне (плавно пропорционально увеличивает страницу). Если чуть-чуть подкрутить клавиатурой, чуть-чуть мышью, а потом ещё пытаться само окно браузера подёргать за край, то понять, что там происходит, уже непросто. А ещё есть опция Zoom Only Text (влияет только на клавиатурную составляющую зума) и, конечно, глобальный зум во всей системе. Надеюсь, что это они как-то упростят всё к релизу.

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

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

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

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

Ну а ресьюм работает смешно. Если закрывать окно с несохранённым документом, нажимая на красную кнопку, то говорит, «блин, сохраните меня, а то всё пропадёт»! Причём диалог с этим вопросом стал вдвое сложнее и страшнее на вид зачем-то. Это неправильно: должны просто где-то в меню Window появляться последние закрытые окна. Но вот если в программе нажать ⌘Q, то выходит без вопросов, а при повторном запуске открывается в том же состоянии, с как бы несохранённым ещё документом. Вот это правильно, так и должно быть.

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

Автосовет

Посоветуйте мне автомобиль.

Любимых брендов у меня два — Форд и Ауди. У них машины выглядят хорошо и внутри, и снаружи, и при этом они ездят. Например, Пежо круто выглядит снаружи, так себе внутри и, говорят, не ездит. А Субару выглядит настолько страшно снаружи, что остальное совершенно безразлично.

Форд — это, в моём понимании, default car. Он просто хороший, но без лишних понтов. У него всё на своём месте, всё хорошо собрано, всё аккуратно. Как Мак, короче.

Автосовет

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

Есть версия дождаться нового Фокуса (обещают в сентябре), вроде бы там будет, наконец, решение по аудио. Правильное — это универсальный док с 30-пиновым коннектором прямо на передней панели. Вставил телефон или айпод — и всё работает, громкость регулируется с руля, текущая песня отображается между спидометром и тахометром. Хрен Форд такое сделает, ясный пень.

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

Автосовет

Вот есть такая А1. Очень симпатичная машинка, но я пока не успел вникнуть в её практическую применимость.

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

Ну дак вот.

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

Вольво Ц-30

Напрягает, что Вольво слишком большой логотип на руль пихает, — какого хрена? Думаю, съездить, посмотреть на неё вживую. Но я совершенно не знаю, насколько Вольво хороша как машина.

Ещё бывает Фольсваген Гольф. Фольксваген выглядит офигенно и снаружи, и внутри. Может, надо Фольксваген покупать? Вроде логика подсказывает, что это правильный вариант, но что-то заставляет меня не любить Фольксваген.

Тойоты и Ниссаны всякие я не люблю, они все некрасивые, кроме, может, Рава и Кашкая, но на джипах пускай Лебедев ездит. Мне всё-таки кажется, что ощущения от езды на автомобиле и троллейбусе должны различаться. И у Ниссана вообще сайт на флеше, ну дак пускай их дизайнеры у них и покупают машины (хотя Тойоты вроде подолгу ездят зато). Мазды вроде местами симпатичные, но другими местами, особенно внутри, злые какие-то. Зачем нужна злая машина? Опели клёвые снаружи, внутри непонятные. Хочется понятного. Хонду и Хундай просто не хочу.

Кстати, если бы мне было пофигу, сколько стоит машина, я бы купил Ауди ТТ в максимальном фарше, и не знал забот. Это единственная машина, где мне хватает запаса «вытягивания» руля на себя, во всех остальных приходится за ним тянуться.

Расскажите мне, пожалуйста, на что нужно посмотреть, а на что, наоборот, ни в коем случае смотреть нельзя?

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

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

  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 раз проще для понимания, чем старая. Расскажу постепенно о том, как что устроено.

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

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

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

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

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

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

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

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

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

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

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

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

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

Ранее Ctrl + ↓