Обзор Firefox 3.7 alpha 4

Вышла новая «альфа» Firefox 3.7, пока под именем MozillaDeveloperPreview, то есть предназначен этот релиз для смелых разработчиков, а не для обычных пользователей. Я не особо разработчик, но все равно смелый — установил.

Как не установить, если обещают, что все будет работать быстрее и лучше.

firefox 3.7 alpha 4

Видимых изменений не много. Сравнить face to face Firefox 3.6 с 3.7a4  не получается, поскольку «альфа» использует основной профиль и вообще не запускается, если его уже кто-то открыл — «приложение уже запущено».

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

firefox 3.7 индикатор загрузки страницы

Еще одна новинка — если набирать в адресной строке сайт, который уже открыт в какой-то вкладке, то появится предложение перейти туда.

MozillaDeveloperPreview switch to this tab

Внедрили-таки анти-шпионские изменения в обработку селектора :visited, которые прежде анонсировали люди из Mozilla.

CSS-селектор :visited представляет собой известную опасность когда злоумышленный сайт с помощью вызова getComputedStyle() может узнать какие другие сайты вы уже посетили до этого, причём делать это со скоростью до 210 тысяч проверок в минуту (в Сафари значительно больше).

Серьёзно относясь к privacy, мы в Mozilla в скором времени собираем залатать эту дыру. Ещё неизвестно в какой билд Firefox будут включены нижеследующие изменения, но приглядеться к ним можно уже сейчас:

— функция getComputedStyle (и такие функции как querySelector) отныне будет говорить не совсем правду. Она будет возвращать такое значение, будто пользователь никогда не посещал заданный адрес;

— посещённые ссылки по прежнему можно будет стилизовать по своему, но только ограниченным набором CSS-свойств: color, background-color, border-*-color, outline-color, fill и stroke. В остальном, для стилизации посещённых ссылок будет использоваться стиль какой бы применялся для непосещённых. Также, для установки значений вышеприведённых CSS-свойств вы не сможете использовать функции rgba() и hsla() и использовать прозрачность с ними.

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

Дополнения многие работать отказались, за исключением Firebug и 1Password. Но их можно настойчиво попросить с помощью другого дополнения — Add-on compatibility reporter, которое принудительно включает все несовместимые дополнения, чтобы можно было проверить их реальную работоспособность. Во многих дополнениях ограничение задано жестко — просто проверяется версия программы, без особых раздумий и обоснований. В общем, у меня все заработали, вроде бы.

Субъективно, Firefox 3.7 работает пошустрее, чем 3.6. Ощутимо меньше времени занимает загрузка Gmail и Google Reader, больше пока ни на чем не проверял.

Подробный обзор нововведений в этой версии Firefox можно почитать на Хабре, там по-русски.

Перенос сайта с Mambo (Joomla) на Drupal

Есть у нас в хозяйстве несколько клиентских сайтов, сделанных в разное время (чаще не нами и очень давно) на CMS Mambo и ее наследнице Joomla. Mambo с некоторых пор канула в Лету, а Joomla обновилась до версии 1.5. На некоторых сайтах CMS не обновлялась годами, некоторые успели «намотать» «вредоносный код» — надо разбираться, чистить, обновлять, латать дыры.

И тут начинается самое веселое — обновить старинную Mambo с коллекцией столь же древних компонентов до свежей версии Joomla 1.5 оказалось сложнее, чем перенести сайт на Drupal. Никакой интеллигентной процедуры миграции для Joomla не предусмотрено, даже если наплевать на нестандартные компоненты.

Для Drupal существует модуль Joomla to Drupal, который сильно облегчает перенос сайта с большим количеством страниц на эту платформу. Модуль позволяет импортировать из базы данных Joomla пользователей, разделы и категории (из них создаются словари таксономии) и собственно само содержимое.

Процедура выглядит так:

1. Устанавливаем Drupal, ставим и включаем модуль Joomla to Drupal

2. Конфигурируем модуль — там нужно устроить доступ к базе данных Joomla.

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

4. Копируем картинки с сайта Joomla в нужную папку на Drupal (обычно, /images в /sites/default/files/images).

5. Переносим тему оформления. Мы редизайн не делали, поэтому перенесли старые шаблоны. Времени уходит часа 3 и более, в зависимости от количества и сложности используемых блоков (модулей в терминах Joomla)

6. Долго и нужно вычищаем в содержимом старые перекрестные ссылки, пути к картинкам и прочее — это самый нудный процесс.

В последнем пункте сильно помогает прямой доступ к MySQL и запрос, о котором не все знают (удивительно, но факт).

mysql> UPDATE tbl
SET col = REPLACE(col, 'oldtext', 'newtext')
WHERE col LIKE '%oldtext%';

Очень удобно и быстро можно заменить пути к картинкам. С ссылками сложнее. Автоматически перевести сложную структуру URL из Joomla (что SEF, что нет) в Drupal почти нереально, то есть очень непросто. Самое простое и быстрое — убрать такие ссылки из текстов страниц вовсе. Если страниц немного, то можно попытаться поправить ссылки руками.

После переноса сайта на него еще долго будут переходить из поисковых систем по старым адресам. Документов с такими адресами на сайте не будет, а стандартная страница 404 у Drupal не слишком приветливая. Чтобы пользователь не испугался и не убежал сразу, можно поставить пару модулей: CustomError и 404 Blocks, они делают страницу с ошибкой более дружелюбной.

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

На перенос этого и того сайтов ушло 2 дня. Не все еще гладко, но основная работа окончена, записи в DNS сменены, прощание с Joomla/Mambo состоялось и это здорово.

Google Reader для развлечений

Каждый уважающий себя (и Google) человек должен пользоваться «читалкой» RSS лент Google Reader. Люди стараются, добавляют возможности, свистульки и перделки, разные полезные функции.

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

google reader play

Называется все это Google Reader Play и на самом деле похоже на игру. Сиди, листай, жми кнопки «Нравится», «Поделиться», расставляй рейтинги-звездочки.

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

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

 

echo TEMPLATEPATH;