HTML and CSS

情報技術もずいぶん進化して、簡単にできるようになったことも多いですが、あいかわらず難しいことも多いと感じています。HTMLのようなマークアップ言語によって、ドキュメント(文書)へデータ構造を持たせたり、ハイパーリンクのような機能をメタデータとして埋め込むことが可能となったのですが、そのせいでドキュメントのデータ表現が随分と複雑化してしまったのではないかという気がしています。

一昔前であれば、「HTMLでは主にドキュメントを表現しているわけだから、ドキュメント構造を意識したマークアップが良い」という主張が普通でしたから、「DOM(Document Object Model)によりブラウザ上に展開されるドキュメントをオブジェクトとしてモデル化し、プログラムから統一的に扱えるようにしよう」といった考えがでてくるのは自然な流れでした。

ところが、Webブラウザの世界では、ドキュメントを表現するためにHTMLを使うだけではなく、レイアウトデザインまで、HTMLで実装するのが普通となってしまいました。もちろん、ドキュメントとレイアウトを分離するために、CSSというものが考案されたわけですが、「論理構造を持ったドキュメントのレイアウトを見栄えよくする」ということには役に立つものの、「そもそも表示したい情報がたくさんあって、それらは論理構造的にはつながっていないようなものをレイアウトする」という目的には適していません。たとえば、body要素内において、ヘッダ部分にサイトメニューがあって、フッタには著作権表示があって、ヘッダとフッタとの間は、左右に分割されていて、左ペインにはサイドバー、右ペインにはコンテンツであるドキュメント、というようなWebページがあるわけですが、これを「1つのドキュメントだ」としてとらえるというのは無理があるわけです。こういったWebページは、divタグを使ってレイアウトの要素となる単位で分割して、そこへCSSを適用して全体のレイアウトを整えるのですが、これの意味するところは、「このWebページは複数のドキュメント(レイアウト要素)から構成されるもの」になります。ここで、レイアウト要素はFlashであったり、フォームであったりするので、それらはドキュメントとはいえないし、各レイアウト要素の間には強い結びつきがあったり文脈があったりするわけではないので、これを「1つのドキュメントだ」とモデル化するのは違うだろう、と考えています。

つまり、いまや、「Webページはドキュメントを主にコンテンツとして表現していれば良い」という時代は過ぎてしまったので、hタグやpタグを骨としてWebページを設計するということはなくなってきているのですが、これはHTMLの設計思想から乖離してしまっていて、どれが正しい、本来こうあるべき、といった議論がしにくい状況となってしまっています。このあたりを整理して、体系づけることが重要なのですが、誰かやっているのかなぁ、と思っています。

説明が不足しているので伝わらないかもしれませんが、結局、世界に普及した当時のWebブラウザは単なるハイパーリンクを含むドキュメントを表示するアプリケーションであったのが、現在はWebアプリケーションのユーザインタフェースを提供するプラットフォームという位置づけになっており、それにしては、これが解釈して表示できるのがHTMLで記述されたものだけだ、といったあたりが混乱を助長させている気がします。

Webアプリケーションのユーザインタフェースを提供するプラットフォームとしてWebブラウザをとらえたときには、DOMやCSSといった技術はドキュメントを対象としているわけではなく、主にクライアントサイドのWebアプリを実装するための技術要素の1つであることを認識して、これらを操作することができるJavaScriptや関連するライブラリもクライアントWebアプリケーション実装用言語だと考えると、結構すっきりと技術の整理ができるのではないかと思います。

EeePC

最近、MacBook Airを良く使っているので、EeePCの出番が少ないのですが、そうはいっても持ち運びに便利なので、たまに使っています。MacBook Airは薄いので何となく気を使います。いろいろな荷物と一緒にいれて、きつく閉めると、どこかが割れてしまいそうな気がするわけです。ちなみに、MacBook AirはSSDのディスクのせいか、随分、インストールに時間がかかった印象があるので、あまり再インストールする気もしません。どこか壊したり、何か部品を交換して、OSも再インストールのようなことがないように、大切に扱いたいところです。

ということで、EeePCはたまに使うのですが、いつのまにかWireless linkのランプが正常に動くようになりました。購入当初はつきっぱなしだったのですが、BIOSアップデートで解決したようです。アップデートだけでは、直らなかったのですが、BIOSを起動してから直ったような気がします。なお、BIOSの画面を表示するには、1000HAの場合は起動時にF2連打をすればいいだけでした。

これも、結構前の話なので、かぶった記事があるかもしれません… ま、いいでしょう。

Episode 3

Star Wars Episode 3 を観ました。この前TV放送されていたので、それをHDDレコーダに録画しておいたものです。DVDを購入するつもりなので、ずっとレンタルもせずに観ないでいたのですが、思わず観てしまいました。CGはすさまじいのですが、映画としては、演出面などに少々無理があったり、説明不足の部分があったり、ということで、ちょっと残念。

とはいえ、Episode 1 – 6 を全部一気に通してみると、何か新しい発見がありそうな気もします。いつか観よう。その前にDVDボックスを買わないといけませんが…

Programming

今日はプログラミングをしようとおもっていたのですが、力つきてしまいました。なんだか技術分野から離れたところの話に関わっていることが多いような気がします。世の中的にはマネジメントレイヤーの話なんでしょうが、もう少し技術分野に関わりたいところ。

Thermometer

1月の頃の話です。温度計をストーブの前に置いていたら、中の液体が分かれてしまい、かなり上の方までいってしまいました。直す方法としてよくあるのは、お湯につけるものですが、大きくはなれてしまって出来そうにありません。

仕方がないので、下の方ではなく、頭の方をガスで温めてみました。いい感じだったのですが、温度を下げたところ、下の液をためるところが割れました。ついでに火傷もしました。もう少し、いろいろ考えてやるべきでした。全体をあたためて、空気だけをうまく上の方へ逃がすということをしないといけないのですが、なかなか難しいですね。

jQueryでグラデーション

jQueryでグラデーションができることを知って、いろいろ試してみた。表示デザイン系は才能がないのですが、いじくりまわすこと自体は好きなので、無駄に時間が過ぎていきます。こんなことしていていいんだろうか、とも思いますが、設計という視点では、表示デザインも機能デザインも同じなので、ちょっとはいい練習になっているのだろうと、勝手に思い込んでいます。