最近書かれた記事5件分を表示します。
更新状況をRSS 1.0形式でご覧になれます。
Opera 9.0(Build 8031; Merlin)のTechnology Preview、いわゆるAlphaが数日前に公開されている。メジャーバージョンのアップグレードだけあって、いくつもの変更点があるようだ。
まず、Changelogの気になる部分を拾っておく。
Added opera:config for managing preferences.
アドレスバーにopera:configと打ち込めば、Webページを利用するのと同じ感覚でOperaの設定を変更できる。
'Find' feature now highlights all matches when searching for text on the page.
ページ内検索を行った際にキーワードがハイライトされるようになった。だが、次の該当キーワードにフォーカスを移すためのF3キーが時々効かなくなる。
Implemented tab locking. Right click on a tab and select 'Lock tab'. Individual tabs cannot be closed while they are locked.
タブを誤って閉じないようにロックすることができる。ロックしたいタブを右クリックし、Lock tabをメニューから選べばロックがかかる。
他のブラウザとの互換性を考慮し、いくつかのショートカットキーが変更されている。Operaを使い続けていると使い難いことこの上ない。さっさとカスタマイズしてしまおう。
Added support for XSLT 1.0 and the XSLT Processor constructor.
XSLTプロセッサが実装された。しかし、XMLからXHTMLへの変換によく失敗する。FirefoxやMSIEでは問題ないため、Operaの実装に問題があると考えられる。
Added support for CSS 3 attribute and UI selectors.
CSS3のセレクタが実装されたようだ。CSS3のセレクタはよく知らないが、ユーザスタイルシートの制作には役立ちそうである。
少し使ったところの所感も記しておく。Alpha故にバグが多いようだが、クラッシュするような事態には遭遇していない。
不安定である。稀に同一のリクエストを5度ほど連続で送信し、サーバからのレスポンスを得られないことがある。レスポンスヘッダがコンテンツ(つまり、Webページ)に混入することも稀にあった。この現象はOpera 8.50でも発生しているため、Proxomitronを通しているせいかも知れない。
描画に失敗しているのか、時々表示領域が真っ白になる。Redraw after 1 secondにすると解決した。
Opera 8.50ではCSSや画像を読み込み直さなかった(キャッシュを利用)が、9.00p1ではすべてのリソースを読み込み直す。
同じRSS feed(一記事分)を複数受信することがある。Opera 8.50でこの現象は見られない。
所用があって原子力発電所事故について調べていた。
原子力発電所事故といえば、ソビエト連邦(当時; 現在のウクライナ)のチェルノブイリ原子力発電所爆発事故を思い浮かべる。概要はチェルノブイリ原子力発電所(Wikipedia)を参照されたい。
チェルノブイリ原子力発電所関連の写真を公開しているサイトもいくつか見つかった。
Kiddofspeedの写真は興味深い。制作者(撮影者)によるコメントはもちろんのこと、うまく表現できないが、何か被写体から感じられるものがある。時にはこういった学習も必要なのだと思う。
トラフィック削減のため、PHPで生成しているXHTMLやCSSリソースを条件付きGET(conditional GET)に対応させた。条件付きGETとは、リクエストされたリソースとクライアントのキャッシュが一致すれば、サーバはレスポンスヘッダだけを返してリソースの内容を送信しない動作のことである。
リソースの一致・不一致の判断は、HTTPリクエストヘッダのIf-Modified-Sinceフィールドを用いて行われる。以下に必要な部分だけを取り出したリクエストヘッダ・レスポンスヘッダを示す。
GET /rhongomyniad.css HTTP/1.0
Host: rhongomyniad.org
// 持っているキャッシュの更新日時
If-Modified-Since: Mon, 10 Oct 2005 06:52:14 GMT
// 「更新はありません」 HTTP/1.0 304 Not Modified // サーバにあるリソースの更新日時 Last-Modified: Mon, 10 Oct 2005 06:52:14 GMT
クライアントは「2005年10月10日6時52分14秒付けのキャッシュを持っている」とサーバに伝え、サーバはその時刻とリクエストされたリソースの更新日時を比較する。両者が一致していれば、サーバは「更新はありません」という情報だけを返し、リソースの内容は一切送信しない。これによりトラフィック(転送量)の削減が期待できる。
サーバは静的リソースに限って条件付きGETを受け入れるため、通常、PHPで生成しているような動的リソースについては「HTTP 304 Not Modified」を返さない。更新の有無に関係なく、常に「HTTP 200 OK」を返してリソースの内容を送信してしまう。
この問題を解決する方法は、Arielworksのモジュール版PHPで「If-Modified-Since」に対応するで示されている。その示されたリソースをほとんどそのまま組み込み、PHPで生成しているXHTMLやCSSリソースを条件付きGETに対応させることができた。多謝。
更新日時とETagによる条件付きGETとしてより詳しく記した。
2006-02-15 01:54追記
XHTMLを基礎から学び直すべく、神崎正英先生の著書である『ユニバーサルHTML/XHTML』を読んでいる。私のマークアップは、理論に傾倒するあまり抜け落ちている部分が多い。その改善が狙いである。
XHTMLのマークアップにおいて重要視されるのは構造化である。それは百も承知しているが、大きな部分にしか目を向けていなかった。例えば、table要素の構造化を行うthead/tbody要素型は一切用いていないし、強調の意味を持つem/strong要素型などもほとんど用いていない。
改善するべき点を挙げると次のようになる。
これらは覚え書きに止めておき、Webサイト自体の構造と一緒に修正することにしたい。