2012年12月23日日曜日

ESウェブブラウザ通信 - escort バージョン 0.2.4 公開

前回、『年内に次の0.2.4のリリースを』とお知らせしていた通りescort バージョン 0.2.4 (alpha)を先ほどリリースしました。

escort バージョン 0.2.4 (alpha)の主な改良点は以下の通りです:
  • DOM Living Standardから、NodeElementインターフェイスで未実装だった基本的な属性やオペレーション(getElementsByClassNameなど)の実装を追加。
  • script要素のdefer, async属性のサポート。
  • テーブルやフロールートになるボックスを可能ならフローティング ボックスの隣にレイアウトできるように更新。
その他にも細かなバグの修正が含まれています。CSS2.1 Conformance Test Suiteの達成率は約91.6%に向上しています。

Fedora 17とUbuntu 12.10用のパッケージは、こちらからダウンロードできます。

で、終わってしまうと、ただのリリースノートになってしまいますね。今回は実際のところ何をどうして、どんな風に変えたのか、といったところをまとめてみます。

ウィキペディアの忠犬ハチ公のページ


ウィキペディアはシンプルなページ構成になっていて、現状のescortでもきちんと表示できるようになっていてほしいサイトの代表格です。0.2.3では下のスクリーンショットのように「目次」の部分が下に行きすぎてしまっている、というような問題が残っていました。

escort 0.2.3

これはCSSのフロートの仕様で、テーブルなどフロールートになるボックスについては、
implementations should clear the said element by placing it below any preceding floats, but may place it adjacent to such floats if there is sufficient space.
と規定されている部分のMAYの部分が未実装だったためでした。この部分、文面からはoptionalというニュアンスで受け取っていたのですが、実際にはCSS2.1 Conformance Test Suiteでも、MAYの方の動作を積極的にテストしている部分があって(floats-wrap-bfc-001-left-overflowなど)、実用上はMUSTになっているようです。

0.2.4ではこの仕様に対応して、想定通りの表示ができるようになりました。

escort 0.2.4

はてなさんのトップページ


はてなさんのトップページも、比較的シンプルなのに0.2.3ではうまく動いていなかったページのひとつでした。

escort 0.2.3
間違い探しのようですが0.2.3では、
  • 598usersのような表示が最初のひとつしか出ていない、
  • 検索ボックスの位置が下にずれている、
  • 『一般 | 社会 | 政経 | 生活・人生 | 芸能 | 科学』というタブをクリックしても効かない、
といった問題がありました。それぞれ原因は、
  • HTTPプロトコル処理の実装の問題
  • デフォルト スタイルシートの設定の問題、
  • script要素の処理がHTTPパーサーと同期していない; 未実装のNode, Elementインターフェイスのオペレーションが使われている、
といったものでした。このあたりの問題も0.2.4では改善されています。

escort 0.2.4

改良点のより詳細については、ESプロジェクトのGoogle+コミュニティで随時報告していますので、あわせてご参考にしてください。

Dogfooding


ところで今回、最初に書いたようなリリースノート的な書き方をすると、
『これこれを直したので、このページも表示できるようになりました』、
という雰囲気になるのですが、実際のところは、ウィキペディアやはてなさんのページを見てみて、
『このページが表示できないので、これこれを直しました』、
という流れになっています。

DOMも、HTMLも最新の仕様はLiving Standardモデルに移行して、日々修正が加えられ続けています。こういう状況になると、仕様書の1章から順に実装していく、という手法はすこし無理がありそうです。CSS 2.1の方は、仕様書がW3Cの勧告になって、テストスイートも十分に揃っているという状況でしたので、escortでは比較的しらみつぶし的な開発手法が採れたのとは対照的です。

そういう点を踏まえて、先日David Baronさんがブログに書かれていた、
Perhaps most importantly, dogfooding is a way to shift the development cycle away from the (often endless) task of building items on abstract requirement lists and instead focus on fixing the things that are needed to make the product usable for real users.
という文章を読んでみると、とても深みがあります(David BaraonさんはCSS 2.1が勧告としてまとまるより、ずっと前からCSSなどの開発を進められていたという点に注意)。

とにかく使ってみる(Dogfooding) ことで明らかになった、簡単な問題からつぶしていく、というのがソフトウェアを実用レベルに持っていくのには効果的、ということなのだと思います。

まとめ


次のescort 0.2.5のリリースは年が明けてからになります。0.2.5では、まずescortで利用しているWeb IDLによるインターフェイスの定義を先日、勧告候補(CR)が発行されたHTML5Canvas 2Dのものにアップデートする予定です。Web IDLコンパイラesidlも必要に応じてアップデートしていきます。

また年が明けると少し遅れていたFedora 18がリリースされそうです。これに合わせてfc18のescort 0.2.4とesidl 0.2.2のパッケージを可能であればリリースしていきます。何か問題が発生してしまった場合は、それぞれ0.2.5, 0.2.3までfc17ベースで進めていく予定でいます。

ESウェブブラウザは、HTML5がW3Cの勧告になる予定の2014年Q4までには"broadly usable"な状態にもっていくのを目標に開発を進めています。膨大な量の仕様書をただ見ていると先に進まなくなってしまいそうなので、そこはdogfoodingしながら、というわけなのでした。

今回はここまでです。みなさま、よいクリスマスを。

2012年12月15日土曜日

ESウェブブラウザ通信 - escort バージョン 0.2.3 公開

前回は、そろそろescort 0.2.3を出す予定です、ということを書いたところで終えていたのですが、今月初めにescort 0.2.3をリリースしました。今回はすこし遅くなってしまいましたが、そのインストール手順の紹介と、最近開設したESプロジェクトのGoogle+コミュニティを紹介します。

インストール手順


escort 0.2.3からFedora 17に加えてUbuntu 12.10用のパッケージ レポジトリも用意しました。レポジトリのトップページにもインストール手順の説明をしてありますが、ここでも簡単に紹介しておきます。

Fedora 17


Fedoraでの手順は0.2.1をリリースした際に紹介した方法とまったく同じです。ただ、0.2.3からパッケージに署名をするようになっていますので、0.2.2以前からレポジトリを追加してくださっていた場合は、下記のように一度古いesrille.repoファイルを削除してください

sudo rm /etc/yum.repos.d/esrille.repo

古いesrille.repoファイルがなければ、以下のコマンドでエスリルで用意しているパッケージ レポジトリの情報を追加できます。

sudo yum-config-manager --add-repo http://download.esrille.org/fedora/esrille.repo

ここまでできれば、

sudo yum install escort

と実行すれば、escortをインストールできます。yum以外にもApper (KDEの場合)のようなGUIツールを使ってインストールすることもできます。
Apper

Ubuntu 12.10


Ubuntuの場合は、まず/etc/apt/sources.listの中に以下の2行を追加して、エスリルで用意しているパッケージ レポジトリの情報を追加します。

deb http://download.esrille.org/ubuntu quantal main
deb-src http://download.esrille.org/ubuntu quantal main


sudoeditで直接編集してもよいですし、GUIからも次の手順で追加できます:
  1. System Settingsを開く。
  2. Software Sourcesを開く。
  3. Other Softwareタブを選択する。
  4. Add...ボタンを押して、software-properties-gtkダイアログボックスを開く。
  5. APT line:テキストボックスに、
    deb http://download.esrille.org/ubuntu quantal main
    と入力して、Add Sourceボタンを押す。
  6. Authenticateダイアログが表示されたら、管理者のパスワードを入力して承認する。
 ここまでで下のような画面になっていれば大丈夫です:
Software Sources ウィンドウ
続いてパッケージの署名に使っているエスリルの公開鍵(esrille-pubkey.asc)をシステムに取り込んでください。
  1. Software SourcesウィンドウのAuthenticationタブを選択する。
  2. Import Key File...ボタンを押して、 Import keyダイアログボックスを開く。
  3. ダウンロードしたesrille-pubkey.ascを選択する。
  4. Authenticateダイアログが表示されたら、管理者のパスワードを入力して承認する。
 下のような画面(マジェンタ色の中)になれば設定完了です:
エスリルの鍵の取り込み
鍵の取り込みは、コマンドラインから次のようにして実行することもできます:

sudo apt-key add esrille-pubkey.asc

以上でレポジトリ情報の追加ができました。ここまでできれば、apt-getや、Synapticパッケージ マネージャーを使ってescortをインストールできます。

apt-getを使う場合は、

sudo apt-get update
sudo apt-get install escort

のようにしてインストールできます。

Synapticを使う場合は、Reloadボタンを押してから、World Wide Webグループのescortを選択してインストールしてください。

Synaptic

    起動


    インストールが完了したら、コマンドラインからは、

    escort

    で起動できます。GUIからの起動方法も7月のこのブログで紹介しているので参考にしてください。

    escort 0.2.3


    Fedora, Ubuntuどちらも、レポジトリ情報の追加さえ終わっていれば、今後新しいバージョンをリリースした場合も、yumやapt-getなどで簡単に新しいバージョンへアップデートできるようになるので、開発の進捗の確認などにもご利用ください。

    まとめ


    escortの開発がCSS 2.1の部分については割と落ち着いてきたこともあって、このブログの方は更新頻度が下がっていますが、開発寄りの最新の情報は最近スタートしたGoogle+のコミュニティを使ってこちら(ES Web Browser/Operating System)でお知らせしています。何かありましたら、コミュニティにも気軽にコメントなど寄せてください(一部分でも開発に参加してみたい、みたいなことがありましたら、ぜひ使ってください!)。

    また今回はescort 0.2.3のインストール手順を紹介してきましたが、年内に次の0.2.4のリリースを予定しています。escort 0.2.4では、DOMやHTMLの基本的なAPIの実装が進んでいるので、単純にHTMLページを表示できるだけではなくて、マウスで操作できる部分も少し増えてくる予定です。

    escort 0.2.4 (開発中のもの。画面はHatenaさんのトップページ)

    というわけで今回はここまでです。