最近書かれた記事5件分を表示します。
更新状況をRSS 1.0形式でご覧になれます。
大学のWebサイトがリニューアルされたようだ。だが、正直なところ、あまりよいWebサイトだとは思えない。というのは、私が一般にいわれるWebデザイナの視座にないからだ。
2005年10月17日に条件付きGETを導入したものの、実際にはきちんと動作していなかった。その当時からWebサイトの構造を変更している(XHTML+PHP→XML+XSLT+PHP)こともあり、もう一度見直すことにする。
User Agentの中には、自身が解釈できないにもかかわらず、HTTPリクエストヘッダのHTTP_ACCEPTフィールド値の一つとしてapplication/xhtml+xmlを送るものがある。HTTP_ACCEPTフィールド値を見て、コンテンツのContent-Type(MIME type)を決めているのであれば注意が必要だ。
Googleの機能を利用する、サイト内検索をしばらく前から設置している。ただ設置するだけなら簡単だが、どのような引数が利用できるかくらいは知っておきたい。
XML+XSLT+PHPのシステムを導入したものの、うまく処理がなされず、時々白紙のコンテンツが返されていた。どうやら、記事を収めている/notes/2005/articles.xmlのファイルサイズが大きすぎるために起きているようだ。
XSLTスタイルシートのMIME typeは、text/xslではなくapplication/xmlであるようだ。
以前の記事(『XML Hacks』を読む)に記した通り、XML+XSLT+PHPによるWebサイトの再構築を実現することができた。
諸事情から所属している研究室のWebサイトを制作(厳密には更新、あるいはリニューアル)することになった。何時もの調子で制作するわけにはいかないため、注意するべき点を挙げることにしたい。
あるリソースにリンクするのは簡単だが、同時にいくらかの情報を付加してやるとアクセシビリティが向上する。使いやすいリンクを検討したい。
トラフィック削減のため、PHPで生成しているXHTMLやCSSリソースを条件付きGET(conditional GET)に対応させた。条件付きGETとは、リクエストされたリソースとクライアントのキャッシュが一致すれば、サーバはレスポンスヘッダだけを返してリソースの内容を送信しない動作のことである。
「ホームページ」に興味を持って早6年になろうか。長く問題であったクロスブラウザはPHPを用いることで解決し、現状では納得のいくマークアップができている。細かな工夫の余地はまだあれど、XHTML+PHPによるWebサイトの構築という観点では一段落したようだ。Webサイトの構造、あるいはXHTML、PHPについてこの機会に振り返ってみたい。
MSIE6はDOCTYPE宣言の有無によって挙動を変えるといわれているが、詳しくは知らなかった。別件でXML宣言を外した(DOCTYPE宣言が先頭に来た)際に綺麗にレンダリングされたため、不思議に思って調べたところ、XHTML文書における落とし穴の存在を知ることになる。
gzip圧縮転送とは、ファイルを圧縮した状態で転送する技術のことである(元々圧縮されているファイルを転送することではない)。圧縮転送されたファイルはクライアントサイドで展開されるが、ユーザが圧縮や展開を意識することは通常ない(気づかない)。ファイルを圧縮するとファイルサイズが当然に減少するため、gzip圧縮転送を用いると転送量の削減が期待できる。
CSSを用いる際に<meta http-equiv="Content-Style-Type" content="text/css" />という記述をhead要素に含めることがある。これは.htaccessにHeader set Content-Style-Type: "text/css"と記述しても等価だが、実際にはContent-Style-Typeそのものが不要であると分かった。
Webページにメールアドレスを記載すると、ほぼ例外なくspamが飛んでくることになろう。これまではメールアドレスを16進数の数値文字参照で記す、mailtoスキームを書かないなどの手段を講じていたが、それも気休めにすぎなかった。よくよく考えれば根本的なところを見落としており、全然解決になっていないと気づく。
メタデータとはデータのためのデータを指し、XHTML文書においてはhead要素内に記述することが多い。文書名、作成者、作成日などがメタデータの例である。head要素内に記述されたメタデータ(meta要素型やlink要素型による)は通常表示されないが、何とか表示させる方法はないものかと考えた。
Webサーバではしばしばバーチャルホストが使われているが、これはローカルサーバにおいても実現可能である。
XHTML/HTMLでは、文書のメタデータを記述するためのmeta要素が定義されており、例えば、文書の作者を示す情報を付加する場合に<meta name="author" content="桐沢 辰" />などとして使う。しかし、作者を示すauthorはあれど、作成日を示すmeta要素のname属性値は存在しておらず、詳細なメタデータを記述するには不足があった。そこで、メタデータを記述するための語彙としてDublin Core Metadata Initiativeで策定されたDublin Coreを用いることにした。
Webページの内容を引用する際、blockquote要素のcite属性ならびにtitle属性で引用元を示すことにしているが、qタグによる引用では引用元を示していないものがいくつかあった。これは前後の文脈(リンクなど)から分かるだろうという判断によるもので、厳密には引用元を示していることにはならない。
iCaptureではMacintoshのブラウザ"Safari"での表示確認サービスを提供しており、ユーザはSafari上でキャプチャされた画像を見ることができる。2月の半ばから使用不能に陥っていたが、現在は利用できるようになっている。
この程、rhongomyniad.org/以下にあるページの一部がGoogleに捕捉された。以前はNotesの最新版であるrhongomyniad.org/notes/latest.htmlのみ捕捉されていたが、今回はNotes :: 2005年2月がHTTPリダイレクトを利用しない正式なURIで捕捉されている。これにより、「2005年2月分にあるキーワードに引っ掛かったのに、リンクを辿ると2005年3月分が表示された」という事態は避けられる。
div要素型に依存しないレイアウトを行うことは、Webサイト制作における一つの到達点である。「div要素型に依存しない」とは、divタグを取り除いてもレイアウトに変化がないこと指す。つまり、div要素型をHTML文書の構造化に使っても、見栄えの制御には使わないことをいう。
このサイトでは、関連文書(Home、Nextなど)を各文書の最後に表示しています。文書の目次であるToC(Notes上部のul要素)は先頭に記述するべきものですが、関連文書を先頭に記述する必要は特にありません。これはHTML文書単体における話であり、CSSで整形する場合は別です。
Notesの更新情報を配信するため、RSS(RDF Site Summary)を導入することにしました。RSSには更新情報の要約などのメタデータがXMLフォーマットで記述され、RSSリーダを用いることで、Webサイトの更新情報を把握できるようになります。
少し前に「divはあまりよくない」というような内容(うろ覚え)が書かれているサイトを見てから、できるだけ使用を控えようと思っていました。構造が複雑ではないサイトならば実現できるだろうと考え、一度、divを全く使わないでマークアップし直してみましたが、幾つかの問題点に気がつきました。
HTTPレスポンスヘッダ(HTTP Response Header)とは、リクエストしたデータについてサーバから返される情報です。MIME typeやcharset(文字コード体系)といった情報がその一例です。HTML文書内に記述するmeta要素によってこれらの情報をコントロールできますが、多くの場合、この指定はHTTPレスポンスヘッダには影響せず、UAに対してのみ効果を持つようです。(HTTPレスポンスヘッダにmeta要素の指定を反映させられるサーバもあるそうです。)