АНТОН БОРИСОВ
MiniMo – мини-браузер из семейства Mozilla
Многим из вас приходилось работать с программными продуктами, в названии которых присутствует слово Mozilla. В этом году, пожалуй, только ленивый не слышал о браузере Mozilla FireFox. Однако главный герой сегодняшнего рассказа – браузер MiniMo, родословная которого начинается с браузера Mozilla. Некоторые детали его разработки и концепцию развития поведает Дуг Тернер (Doug Turner) – глава проекта.
Расскажите, как вы оказались в Netscape Communications Inc., о вашей работе в этой компании, её основных направлениях.
Я присоединился к команде Netscape в 1996 году, для работы над клиентом браузера под Mac-платформу. Поначалу было не очень интересно, но это была работа на лучшую компанию, над лучшим продуктом того времени. Годом позже я стал работать над вещами гораздо интереснее: сетевое взаимодействие, многопоточность, xpcom, низкоуровневые подсистемы и над более сложными проблемами. В определенный момент кому-то пришла в голову сумасшедшая идея выпустить исходный код в публичный доступ. В Netscape Communications моим шефом был Крис Хофман. Он и сейчас мой шеф в Mozilla Foundation. Настолько хороший, что у меня нет желания мечтать о лучшем.
Как бы вы охарактеризовали идею выпуска исходного кода Netscape в публичный доступ? С точки зрения того времени и с точки зрения реалий сегодняшнего дня.
Я не был уверен вначале, что это правильное направление, но одно ясно – от «безумной идеи» выиграли миллионы. «Освобождение ящерицы» в итоге вылилось в лучший код, стало больше инноваций, и, наконец, война браузеров вышла на новый виток.
Сколько людей занято в проекте MiniMo и кто вам помогает при разработке?
Что касается создания проекта MiniMo, то его родителями являются: Крис Хофман, Дарин Фишер (Darin Fisher) и я. Это было несколько лет назад. Дарин теперь работает в Google над другими вещами, а Крис занят созданием бизнес-связей в Mozilla Foundation. Над MiniMo CE активно работают 6 человек, каждый в своем направлении. Мы также помогаем нескольким специалистам, работающим над версией Linux MiniMo. У нас большая команда тестеров, людей, которые придумывают новые классные идеи, и, конечно же, мы получаем отдачу от всего направления развития FireFox. Прямо сейчас Марсио Галлио (Marcio Gallio) и я заняты разработкой ядра MiniMo. Фигурально выражаясь, мы стоим на плечах таких гигантов, как Джонни Стенбэк (Johnny Stenback), Дэвид Барон (David Baron) и всех тех сотрудников, которые двигают технологию Mozilla вперед, т.к. MiniMo базируется в первую очередь на коде Mozilla.
На каких аппаратных платформах MiniMo может работать сегодня?
В основном это ARM и несколько x86-устройств. Существует несколько специфичных вопросов, но наш код очень удобен в портировании. На большинстве устройств, что поставляет HTC (тайваньская компания High Tech Computer Corporation [11], которая производит КПК и смартфоны для I-Mate, HP, Orange, Dell и др.), наш код работает нормально.
Как вашей команде удается тестировать MiniMo на всех линейках КПК, скажем, и на семействах Windows Mobile и дистрибутивах Familiar Linux? Какие виртуальные машины вы используете?
Отличный вопрос. Многие разработчики других браузеров для мобильных устройств используют эмулирующие приложения. Для нас это не актуально, т.к. мы используем ядро от FireFox, поэтому если какая-то функция работает в FireFox, то она будет работать и в MiniMo.
Однако есть такие опции, которые отсутствуют в FireFox, например, рендеринг для малых экранов (Small Screen Rendering). У меня есть мысль написать такое расширение для FireFox, чтобы у пользователей ПК была возможность увидеть, как страница отображается на устройствах с экраном 240x360. Мы компилируем код на настольных ПК и копируем его на КПК. Затем тестируем и делаем вывод о функциональности.
Что касается запуска MiniMo на Opie, то здесь потребуется переписать код под QT. Как вы знаете, сейчас Mozilla основана на GTK-коде, поэтому закономерно, что и MiniMo зависит от GTK. Портирование на QT-основу происходит (см. http://dot.kde.org/1094924433). Как только оно завершится, то появится причина для перестраивания дерева MiniMo, чтобы в дальнейшем выпускать исполняемые файлы и в формате MiniMo/QT.
Я попробовал запустить MiniMo 0.07 в Windows CE 2002 (WinCE 3.0), однако все попытки оказались неудачными. В чем может быть проблема, в WinCE 3.0 или все-таки в MiniMo? Есть ли планы выпускать MiniMo в виде одного инсталлятора, а не в виде архива файлов?
Для использования в Windows CE 2002 требуется перекомпиляция кода MiniMo с использованием SDK от WinCE 2002. Сейчас мы сфокусированы в основном на Windows CE 2003, так что и для более старой версии WinCE в скором времени будет релиз. Что касается инсталляторов, то для себя мы используем как коммерческие, так и собственные инсталляторы. Так что не волнуйтесь – MiniMo будет выпускаться и в качестве единого файла.
Для меня представляют интерес русскоязычные ресурсы, поэтому я зашел на mail.ru и обратил внимание на то, что браузер автоматически не распознает кодировку.
Мы делаем достаточно широкие шаги вперед. Предлагаю использовать версию 0.08, ибо многие проблемы решаются с выходом каждой новой версии. Некоторые вопросы, возникающие с перекодировками, связаны с тем, как определять установленные на устройстве шрифты и как проводить перекодирование из национальных кодовых страниц в юникод-представление. Надеюсь, в версии 0.10 многие из них будут решены.
Действительно здорово осознавать, что исходный код для MiniMo и для Firefox почти один и тот же. Однако в ходе тестирования MiniMo на различных версиях Windows CE я столкнулся с проблемой быстродействия. Если я сравню Pocket Internet Explorer (PIE) с MiniMo, то последний никак не кажется мне быстрым. Есть ли какие-либо подвижки в улучшении данной проблемы?
Да, производительность имеет очень важное значение. Но сравнивать PIE с MiniMo недостаточно честно, т.к. PIE в действительности не отображает многие сайты корректно, у него слабая реализация JavaScript, и он не может выполнять AJAX (http://developer.mozilla.org/en/docs/AJAX). Впрочем, я не открещиваюсь от проблемы с быстродействием. Да, она существует, и мы ее постепенно решаем.
Какие планы развития MiniMo? И как происходит тестирование дополнительного функционала?
Для MiniMo также существует план развития [5]. Что же касается дополнительного функционала, то он, как правило, появляется в качестве расширений к продукту. Например, Spatial Navigation – это расширение, которое я написал для Pioneer Research. Его цель – использовать клавиши вверх, вниз и т. д. для навигации по документу (см. http://www.mozilla.org/access/keyboard/snav). На сегодня это расширение выглядит как опция, которую можно загрузить с http://addons.mozilla.org. Как только расширение становится достаточно востребованным, оно интегрируется в дерево разработки. Однако чтобы быть включенным, это конкретное расширение проходит не только через руки тестеров, но и через руки тех, кто повседневно его использует, т.е. знает расширение практически до мелочей. Поэтому относительно качества кода можете не волноваться.
Означает ли это, что практически любое расширение, написанное для FireFox, будет работать и с MiniMo?
В общем-то, да. У нас было несколько расширений для FireFox, которые через несколько минут доработки заработали и с MiniMo. Расширения, стоящие упоминания, – это adblock и colorzilla.
Есть ли у вас планы по созданию прототипа для Symbian OS?
Таких планов нет. Есть люди, которым нравится Symbian, и те, которые ненавидят его. Я действительно не знаю, к кому я тяготею. Если смотреть на API от Symbian и сравнивать его с Linux, то, скорее всего, я принад-лежу ко второму лагерю.
Согласно обзорам, выпускаемым компанией Opera Software Inc., они не рассматривают MiniMo браузер в качестве конкурента, т.к. Opera-Mini работает на других платформах (Symbian OS, Palm OS). Сможете ли вы утверждать, что ваш коллектив также не рассматривает браузер от Opera в качестве конкурирующего продукта?
Мне бы не хотелось оценивать, кто кому является конкурентом. Лично я бросил бы развитие MiniMo, если на рынке было что-то стоящее.
Насколько мне известно, с Nokia и с T-Mobile подписаны контракты по поставке MiniMo вместе с их продукцией. Насколько это верно?
У меня не входит в практику распространяться, кто собирается, а кто не собирается что-то поставлять, пока не выпущен официальный пресс-релиз. Так что, извините, говорить об этом преждевременно.
Есть ли разработчики, которых вы могли бы отметить отдельно?
Мы сотрудничаем с компанией INdT (http://www.indt.org.br/indt), с командой, которая работает над разными Open Source-проектами. В качестве одного из таких проектов они выбрали MiniMo. Последние несколько месяцев их внимание было сфокусировано на GTK-коде нашего кроссплатформенного браузера. Также среди их работ значится проект MaeMo – портирование на платформу Nokia 770 (см. http://www.indt.org.br/maemo).
Приложение
Что представляет из себя MiniMo?
После того как в январе 1998 года были выпущены в свет исходные коды Netscape Navigator [1], началась новая ветка в истории развития браузеров. Одним из «побочных» эффектов стало появление MiniMo (MiniMozilla) – мини-браузера для КПК и мобильных устройств [2].
Что из себя представляет MiniMo? Это в первую очередь исходный код браузера Mozilla, который можно собрать для мобильной платформы, например, для КПК iPAQ. Вполне очевидно, что полная функциональность настольной Mozilla для мобильных устройств не требуется. На первый план выходит компактность браузера и повышенные требования к распределению памяти (в КПК количество ОЗУ все-таки отличается от настольных ПК). Второй немаловажный фактор – это умение отображать htmlстраницы для экранов КПКустройств (разрешение в пределах 160x240 пикселов или более; сейчас уже типичны устройства с разрешением экрана 640х480 пикселов) [3]. Если для настольных ПК доминирующим браузером является Internet Explorer, то для мобильных устройств это далеко не так: здесь присутствуют такие имена, как Opera, NetFront, Obigo, Nokia Series 40/60 Browser, Openwave, Pocket Internet Explorer, NicheView, Picsel, RocketBrowser, Wapaka, Thunderhawk, Skweezer, Andromeda и некоторые другие.
Сфера применений пока, на мой взгляд, достаточно узкая – помимо непосредственного отображения веб-страниц и удобной интеграции с Google Maps на этом функционал и заканчивается. Технология MiniMozilla построена таким образом, что в принципе можно отделить интерфейс пользователя (UI) от ядра браузера Mozilla и построить новые приложения под конкретные требования заказчика, но пока об этом мало что слышно. Также мало слышно и об активном использовании в MiniMo подключаемых модулей. Впрочем, не буду заострять внимание на том, чего пока нет. Отмечу, что проект MiniMo идет вперед семимильными шагами. И лозунгом развития Mozilla Foundation отчасти может служить фраза Криса Хофмана (Chris Hofmann) – «Создавайте хорошие продукты, которые приятны для использования, а остальное приложится» («Make good software that people like to use, and the rest will take care of itself»).
Коллектив Mozilla Foundation сложился в июле 2003 года в основном из бывших участников корпорации Netscape [10]. Он разрабатывает не только MiniMo, но и такие продукты, как Mozilla FireFox, Mozilla Thunderbird, Mozilla SeaMonkey, и многие другие. Большинство из них, конечно же, напрямую не связано с MiniMo, но от каждого зависит общее развитие продукта.
В частности, технологический темп для развития MiniMo задает Дуг Тернер, Крис Хофман координирует бизнес-планирование. Официально Дуг Тернер начал работать на Mozilla Foundation с декабря 2004 года. Хотя послужной список данными персонами не афишируется, но удалось узнать, что до прихода в Netscape в 1996 году Дуг Тернер работал в компании Apple Computer Inc.
Первое упоминание об успешном портировании MiniMo на КПК датируется 8 декабря 2003 года, когда Дуг Тернер пишет в своем блоге – о запуске Firebird на iPAQ 5555 [4].
Дуг Тернер – соавтор первой антиспам программы SpamBlaster, созданной в 1997 году. Сотрудник компании Netscape Communications c 1996 года. Занимался развитием объектной модели XPCOM, проработкой вопросов поддержки сети и потоковых (thread) вопросов в браузерах серии Netscape, а в последствии и в серии Mozilla. В декабре 2004 года возглавил разработку браузера MiniMozilla в компании Mozilla Foundation.
Ссылки:
- http://en.wikipedia.org/wiki/Netscape.
- http://en.wikipedia.org/wiki/Minimo.
- http://www.linuxdevices.com/articles/AT7396996719.html.
- http://weblogs.mozillazine.org/dougt/archives/004471.html – first announcement of FireBird at IPAQ 5555.
- http://www.linuxdevices.com/news/NS8911145047.html – roadmap for MiniMo.
- http://www.meer.net/~dougt/minimo_ce – MiniMo WinCE builds – домашняя страница Дуга Тернера. Отсюда вы можете загрузить последние релизы MiniMo для платформы Windows CE.
- http://www.absoluteastronomy.com/encyclopedia/m/mi/microbrowser.htm – классификация микробраузеров.
- Сравнить характеристики различных веб-браузеров можно пользуясь таблицей – http://www.absoluteastronomy.com/encyclopedia/c/co/comparison_of_web_browsers.htm.
- http://davetitus.com/mozilla.
- http://www.absoluteastronomy.com/encyclopedia/m/mo/mozilla_foundation.html.
- http://en.wikipedia.org/wiki/High_Tech_Computer_Corporation.