Notes :: 2005年07月

最新版

最近書かれた記事5件分を表示します。

更新情報RDF

更新状況をRSS 1.0形式でご覧になれます。

Opera 8.10 Preview 2公開

URI
http://rhongomyniad.org/notes/2005/07.html#d30t0211
カテゴリ
Opera
投稿日時
2005-07-30 02:11
更新日時
2005-08-02 22:07

Opera 8.02 Finalでの組み込みを見送ったことにより、BitTorrentは8.10 Preview 2として調整が続けられている。

これまではIdentify as Internet ExplorerをデフォルトとしていたOperaだが、この8.10 Preview 2からはIdentify as Operaをデフォルトとするようだ。これはua.iniでHTTPリクエストヘッダのHTTP_USER_AGENT値をドメイン毎に切り替えられるからだろう。

それともシェアの関係だろうか。「MSIEとして認識させているから、Operaのシェアは低いのだ」という意見を見たことがあるが、果たしてどうだろう。

そもそもシェアというのは、一般ユーザが気にするものではない。ある製品のシェアが高いとして、それは「使われている」ことを示すものであって、必ずしも「良質」であることを示さない。「皆が使っているから」「今話題だから」と受動的に判断するのは結構だが、自分でいくつか使った上で能動的に判断する方が賢明ではある。

Identify as Operaをデフォルトとした件について、Opera Watchで丁寧に解説されている。

2005-08-02 22:07追記

Opera 8.02リリース

URI
http://rhongomyniad.org/notes/2005/07.html#d30t0119
カテゴリ
Opera
投稿日時
2005-07-30 01:19

3つのセキュリティ問題を修正したOpera 8.02がリリースされている。8.02 Preview 1で試験導入されたBitTorrentは含まれていないが、セキュリティ問題以外にもいくつかの修正が入っている。

なお、8.02用の日本語Language filesが公開されているため、8.02の日本語版のリリースを待つ必要はない。

メールアドレスを検索エンジンから隠す

URI
http://rhongomyniad.org/notes/2005/07.html#d25t1318
カテゴリ
PHP
Webサイト制作
投稿日時
2005-07-25 13:18

Webページにメールアドレスを記載すると、ほぼ例外なくspamが飛んでくることになろう。これまではメールアドレスを16進数の数値文字参照で記す、mailtoスキームを書かないなどの手段を講じていたが、それも気休めにすぎなかった。よくよく考えれば根本的なところを見落としており、全然解決になっていないと気づく。

詳しく知っているわけではないが、spamをコンピュータで自動送信する場合、メールアドレスの収集には検索エンジンを使うと聞いたことがある。それが間違っていないのであれば、検索エンジンに対してメールアドレスを出力しないだけでspamを減らすことができるだろう。

方法としては、HTTPリクエストヘッダのHTTP_USER_AGENT値でbotかどうかを判別し、botであればメールアドレスを出力しないようにすればよい。これにはPHPを使う。

User Agentの取得(XML宣言やhtml要素型以前に記述)
$ua = getenv("HTTP_USER_AGENT");
if (ereg("Googlebot/2.1", $ua) || ereg("Yahoo! Slurp", $ua) || ereg("msnbot/1.0", $ua)) {
    $bot = 1;
} else {
    $bot = 0;
}
メールアドレスの出力(任意の位置)
echo '<address>桐沢 辰';
if ($bot != 1) {
    echo 'foo@bar.baz';
}
echo '</address>';

例では、Google、Yahoo!、MSNのbotに対してメールアドレスを出力しないようにしている。これ以外にもあろうが、その際は同じ要領で追加していけばよい。

CSS: contentプロパティの文字化け

URI
http://rhongomyniad.org/notes/2005/07.html#d17t1506
カテゴリ
CSS
ブラウザ全般
投稿日時
2005-07-17 15:06

contentプロパティで文字列を生成する際、ブラウザによっては文字化けを起こしてしまうことがある。特別気に留めたことはなかったが、iCapture(Macintosh/Safari)で表示してみると文字が化けていた。

blockquote:before {
    content: attr(title) "より引用:";
}

contentプロパティの値に多バイト文字を含めると文字が化けてしまう。これは@charsetで文字コードを明示しても発生する、Safariのバグだそうだ。

文字化けを回避するには、多バイト文字を16進数の数値文字参照に変換し、さらにバックスラッシュでエスケープしてやるといい。16進数の数値文字参照に変換する際には、数値文字参照変換スクリプト(be Strict)にお世話になった。

問題の「より引用」を数値文字参照変換スクリプトにかけると、&#x3088;&#x308a;&#x5f15;&#x7528;という文字列が得られる。&#x\(バックスラッシュ)と置き換えてやり、その文字列をcontentプロパティの値として使えば解決できる。よって、先程の指定は次の通りになる。

blockquote:before {
    content: attr(title) "\3088\308a\5f15\7528:";
}

末尾のコロンは多バイト文字でないので、そのまま使って問題ない。

メタデータをCSSで整形する

URI
http://rhongomyniad.org/notes/2005/07.html#d16t1214
カテゴリ
XHTML
CSS
Webサイト制作
投稿日時
2005-07-16 12:14

メタデータとはデータのためのデータを指し、XHTML文書においてはhead要素内に記述することが多い。文書名、作成者、作成日などがメタデータの例である。head要素内に記述されたメタデータ(meta要素型やlink要素型による)は通常表示されないが、何とか表示させる方法はないものかと考えた。

今まではPHPで新たな要素を生成することでメタデータを表示していたが、今回はhead要素内のメタデータそのままを使いたい。となれば、方法としてはCSS以外に考えられなかった。

OperaのユーザスタイルシートであるShow structural elementsからヒントを得て、次のようなスタイルを作り上げた。CSS2をまともに解釈できるブラウザであれば、しっかりとメタデータが表示される。

head {
    display: block;
}
meta {
    display: inline; /* or block */
}
meta:after {
    content: attr(content);
}

まず、head要素、meta要素それぞれにdisplayプロパティを指定する必要がある。その後、疑似要素である:afterを用いてmeta要素のcontent属性を展開(content: attr(content);)している。これを適当に整形してやれば完成である。

表示領域の右上に文書の作成日と更新日を表示

表示領域の右上に文書の作成日と更新日を表示している。

例示に用いたmeta要素とCSSは次の通り。

meta要素(XHTML)
<meta name="DCTERMS.created" scheme="W3CDTF" content="2005-07-04" />
<meta name="DCTERMS.modified" scheme="W3CDTF" content="2005-07-09" />
CSS
head {
    background: #fffff9;
    border-right: #aaa solid 1px;
    border-left: #aaa solid 1px;
    display: block;
    font-family: Verdana, sans-serif;
    font-size: 75%;
    margin: 0 6%;
    padding: 0.2em 0.5em;
    text-align: right;
}
meta[name="DCTERMS.created"] {
    display: inline;
    color: #777;
}
meta[name="DCTERMS.created"]:before {
    content: "Created on ";
}
meta[name="DCTERMS.created"]:after {
    content: attr(content) ";";
}
meta[name="DCTERMS.modified"] {
    display: inline;
}
meta[name="DCTERMS.modified"]:before {
    content: "Last modified on ";
}
meta[name="DCTERMS.modified"]:after {
    content: attr(content);
}

なお、DCTERMSについてはXHTML: Dublin Coreによるメタデータを参照されたい。

div要素型: 逆の考え方

URI
http://rhongomyniad.org/notes/2005/07.html#d09t0020
カテゴリ
XHTML
投稿日時
2005-07-09 00:20

以前、id属性はどの要素に振るべきかでdiv要素型について述べた。その最後にdiv要素型を使い続ける理由を記しているが、よく考えると逆の考え方もできる。

divはスタイルを適用するためのコンテナとして用いられるが、本来は参照用のid属性を振るために存在しているのではないだろうか。私はそう考えるからこそ、div要素に一切スタイルを指定していない現在も使い続けている。

id属性はどの要素に振るべきか(Notes :: 2005年3月)より引用

id属性(より厳密にはフラグメント)を振るためにdiv要素型を用いるという考え方は変わっていない。しかし、後半の内容は頭が固い証拠であった。考え方が逆だ。あるスタイルを適用するためだけにdiv要素型を用いる(無駄に増やす)ことが問題なのであって、フラグメントを示すために用いるdiv要素型に(ついでに)スタイルを適用するのであればまったく問題ない。

Pentium 4の技術文書

URI
http://rhongomyniad.org/notes/2005/07.html#d04t2331
カテゴリ
雑多
投稿日時
2005-07-04 23:31

Pentium 4の技術文書が公開されていることを今になって知った。私はただのユーザにすぎない(技術者ではない)が、温度についての仕様書(Thermal Specifications)は参考になる。

文書情報

桐沢 辰