2009年6月20日土曜日

フィード購読数が200を越えた

このブログには feedburner を導入していて、フィードの購読数が分かるようにしてあるのだけど、一昨日、ついにフィード購読数が200を越えたようだ。さすがにこの数になると、知人関係だけということはあり得ない。Google Friend Connectを見ても、リアルには面識のない方が登録してくださっている様子が見て取れる。

TumblrTwitter にしてもそうだ。なにかの偶然で興味を持たれた見ず知らずの方がフォローして下さっているようである。中には「これ、あの有名サイトの方じゃないの?」と思う方もいる。

このブログにせよ、Tumblr や Twitter にせよ、購読者数を増やそうと思ってやっているわけではなく、ほとんど自分の書きたいことを書いてきたに過ぎない。それを思えば、購読して下さっている方やフォロワーの方には、感謝の気持ちでいっぱいである。

どんな方たちなのだろう、という気持ちもありつつ、お互いに拘束しすぎないという緩くてルーズな関係を保てるのが心地よくてインターネット上で活動している、というのもまた事実である。だから、やっぱりこれまでと同様、ただ自分の書きたいことを書き連ねていくことになると思う。そんな私のブログであるが、これまで通り、ルーズにおつきあいいただければ幸いである。

2009年6月17日水曜日

夕立一過、そして虹

IMG_1088

激しい夕立が来た後、虹が出てました。コンパクトデジカメでもこれくらい写るくらい、はっきり見えました。ところがこの後、もう一回夕立が来て、瞬停にやられて作成中のファイルを失ってしまいました orz

2009年6月15日月曜日

ごひいきパン屋のホームページ

近所にあるパン屋の「Grain Farm」がホームページを開いたそうな。このパン屋については開店早々の頃に記事を書いたけど、単に美味しいだけでなく、手間をかけてちゃんとパンを作っている雰囲気が伝わってくる辺りが気に入っています。自宅から歩ける範囲にこういうパン屋があるのはありがたいことです。ちゃんと続いてくれるんだろうか、と心配してましたが、岡山のタウン誌の「LLIO」に掲載されたりして、結構順調に営業を続けているようです。応援の意味で、リンクを張っておくことにしましょう。

2009年6月12日金曜日

真依子が銀幕デビューするらしい

真依子というシンガーソングライターのことは前にも書きましたが、今日届いたメールマガジンによれば、「ヤング通りの住人たち」という映画に主演・森影月乃役で出演することになったらしいです。主題歌も歌うらしいです。ググってみると森影月乃役のオーディションがあったということなので、真依子さん、これに応募したんですね。相変わらず、妙なところでアクティブだなあ。
私はどうもこういうマイナー系の映画が好きみたいで、しかも、好きなシンガーが出演する映画は気に入る確率が高いようです。「恋する惑星」(Faye Wong)とか「(ハル)」(宮沢和史)とか「珈琲時光」(一青窈)とか。そんなわけで、これも期待しちゃいますねえ。

ソースコードから公開識別子の扱いを調べる

「SGML Catalog」という投稿で「稿を改めて書いてみたい」と書いておきながら、一ヶ月が経ってしまった。言い訳をしたい気持ちをこらえて、一ヶ月遅れでも書いてしまうことにしよう。

もともとSGMLのDTDの話を書こうと思ったのは、HTMLでシステム識別子が省略可能かという話からであった(4月18日の投稿)。そのときにも書いたのだが、HTML/XHTMLには、SGML/XMLのインスタンスという側面と、Webに特化した(SGMLでもXMLでもない)データ記述フォーマットとしての側面とがあり、単純にSGML/XMLのルールをあてはめればいい、とは言い切れない。後者の側面を規定するのは、実際のアプリケーションの振舞いということになるだろう。非常に現実に沿った話である。

というわけで、実際にWebブラウザのソースコードを眺めて振舞いを調べたほうがいいだろうと思ったわけである。現状でブラウザのソースコードとして入手可能なのは、Mozilla(Firefox, Caminoなど)とWebkit(Safari, Google Chromeなど)である。この2つのソースコードをざっと眺めてみた。とはいえ、どちらのソースコードも巨大で、一朝一夕に全貌を理解できるような代物では到底ない。眺めたのはパーサ周りのごく一部に過ぎない。

まず、Mozilla, Webkitともに、HTML/XHTML専用パーサを使用している(Firefox, Safari 4 public beta)。汎用のSGMLパーサは内包されておらず、汎用XMLパーサもHTML/XHTMLのパースの時には用いられていないようだ。また、汎用SGMLパーサではないから、SGML Catalogのような仕組みも利用していない。ブラウザという目的を特化したソフトウェアだから、こういう構成なのは予想していたところである。

そして、Mozilla, Webkitともに、公開識別子に関するパーサの振舞いを規定するデータ構造PubIDInfoを内包していた。構造体の宣言も同じで、記述されている公開識別子も似たような感じになっている。いずれもオープンソースのプロジェクトだから、この辺は相互にソースコードを流用しているのかもしれない。

PubIDInfoにおけるパーサの振舞いには、FullStandards, AlmostStandards, Quirks, Quirks3の4種類がある。公開識別子と照らし合わせてみると、QuirksはHTML 4互換モード、Quirks3はHTML 3互換モードとされているようである。

PubIDInfoにはもう一つ面白い点がある。定義を一部転記してみよう。
eMode mode_if_no_sysid;
eMode mode_if_sysid;
システム識別子がある場合とない場合とで、パーサのモードが変えられるようになっているのである。

では、どのような場合にどのモードでパーサが実行されるのか。Mozillaの場合はnsParser.cpp、Webkitの場合はHTMLDocument.cppの中にコードが含まれている。コードの外見はかなり違うが、どうやら、モード決定のロジックはどちらも同じようだ。

簡単なのは MIME Type が application/xhtml+xmlなど、なんらかのXMLデータだと解釈される場合で、このときは FullStandards モードになる。

MIME Type が text/html の場合は、いろいろなパターンに分かれる。
  • 文書型宣言があり、公開識別子がない場合:FullStandards モード、文書型は HTML Strict。HTML 5の <!doctype html>などがこれに該当すると思われる。
  • 文書型宣言があり、内部サブセットがある場合:FullStandards モード、文書型は HTML Strict。
  • 公開識別子が上記 PubIDInfo のテーブルにない場合:FullStandards モード、文書型は HTML Strict。HTML 4.01 Strict や XHTML 1.1 などがこれに該当すると思われる。
  • HTML 4.01 Transitional, HTML 4.01 Framesetでシステム識別子がある場合:AlmostStandards モード、文書型は HTML Strict。
  • XHTML 1.0 Strict, XHTML 1.0 Frameset, XHTML 1.0 Transitional:システム識別子の有無にかかわらず AlmostStandards モード、文書型は HTML Strict。
これ以外は Quirks3 もしくは Quirks モードになる。例えば、文書型宣言がなければ Quirks モード、HTML 4.01 Transitional でシステム識別子がなければ Quirks3 モードになる。

もちろん、上に書いたのはパーサのモードについてのみ解析した結果であり、パーサの出力であるDOMや、レンダリング結果については、モードが異なれば結果が異なる可能性がある、としか言えない。それにしても、HTML 4.0以前とHTML 4.01とでモードが異なる、StrictとTransitional/Framesetでモードが異なる、MIME Typeでモードが異なる、などの結果は、私にとってはかなり新鮮であった。

ところで、こうやってソースを眺めてみると、当初の目的以外にいろいろなことに気づくことがある。まず、Webkitのほうが断然ソースコードが読みやすい。というか、Mozillaのコードはめちゃ汚い…AppleやGoogleがWebkitを採用したのも分かる気がする。

それから、謎の公開識別子がいくつも目につく。例えばこんなの:
-/w3c/dtd html 4.0 transitional/en
-//microsoft//dtd internet explorer 3.0 html//en
-//w3c//dtd html experimental 19960712//en
こういうのに対するパーサのモードが全部定義してあるのである。Webデザイナがブラウザのバグに悩まされているのと同じように、ブラウザのプログラマもHTML文書のバグに悩まされてるんだなあ、ということがよく分かる。

2009年6月2日火曜日

読んだ: 学生・研究者のためのPowerPointスライドデザイン


今回のオープンセミナー@岡山のプレゼンテーション資料は、直観的に理解できるよう、なるべく図を多くすることを意識しました。というのも、直前に「学生・研究者のためのPowerPointスライドデザイン」という本を読んで、改めて、プレゼンテーション資料の作成技術を上げなければ、と思ったのです。

この本、私と同分野の手塚太郎先生のブログで紹介されていたもので、ブログの紹介記事を見て早速購入しました。手塚先生の紹介通り、理系の研究者でプレゼンをする人なら一度は目を通しておいて損はないと思いました。

なんといっても秀逸なのが「スライド修正ライブ!!」という章です。一言で言うと、「劇的ビフォーアフター」のスライド版…って、この番組を知っている人でないと分からないか。要するに、著者の指導前と指導後のスライドが比較して掲載されていて、しかも、どこに着目して修正を重ねていったか、その過程も掲載しているというものです。ビフォーとアフターを比べると、その違いは一目瞭然。修正の過程も載せられていますので、何が悪いのか、どう直すべきなのか、実例を通して学べるというわけです。

スライドの対象は著者の専門であるデバイス分野のものが中心ですが、専門が違っていてもすごく勉強になります(実際、私は勉強になりました)。公費で何冊か購入して、学生用に研究室に置いておこうかなあと本気で思ってます。

オープンセミナー@岡山で講演しました

5月30日に行われたオープンセミナー@岡山というイベントで講演しました。題目は「XMLデータベースひとめぐり」ということで、昨年11月のIEICE WI2研究会でやった「XML(再)入門」での天笠先生の講演をベースにさせていただいて、自分なりにアレンジを加えて話をしました。

オープンセミナー@岡山に参加したのは初めてですが、まあ、中四国地域での勉強会という位置づけのイベントですね。そのような場でXMLデータベースみたいな、ある意味タコツボ的な話をして聴衆に興味を持ってもらえるんだろうか。結構悩んだのですが、準備期間も考慮するとこれくらいしかできないなあ、という選択でした。

ちなみに、最初はもっと実務寄りの話として、日本データベース学会のサイト運営の話でも、と提案したのです。qmail, Apache, PostgreSQL, Perl, PHPあたりのオープンソースを中心に運用してますし、外注せずに地方大学の一研究室のみでサイト構築を任されているが故の悩みとか話せるので、イベントの趣旨としてはちょうどいいかなあ、と思ったのですけど、事務局から「学術的な話を」ということで、このネタはボツになりました。

XMLを格納するデータベースについては、ニーズがどこまであるかはともかくとして、技術的な話をまとまって聞く機会はあまりないと思うんですね。せっかく会場に足をお運びいただいた方に聞いていただくなら、そういう貴重な機会の一つにしたい。そう考えて発表構成を組み立てました。結果として、天笠先生の講演と近い形になりました。ただ、IEICE WI2での天笠先生の講演を聞いていて、個別の技術は分かるけど、それがどういうニーズから出てきているのか、どう関連しているのか、XMLに普段携わっていない人には分かりにくいかもなあ、という印象がありまして、その点は改良したつもりです。

例によって、講演で使用したプレゼンテーション資料を Slideshare に上げておきます。また、いずれ講演の様子が動画で公開されるそうなので、ご興味があればそちらもご覧下さい。