徒書

2003年3月分。


2003年3月4日

TVが壊れたので最近は静かな日々を過ごしております。「トリビアの泉」が見られないのが少々残念ではありますが。

篆書バナー作成がなかなか進んでおらず、注文した方にはご迷惑をおかけしています。そろそろ1日1個ペースぐらいで作っていこう!と意気込んでみます。

そんな最中ではありますが、利用しているプロバイダが固定IPアドレスの提供を始めたというので、ここは愈々いよいよ自宅ウェブサーバに挑戦の時か、とばかりに中古PCを一台衝動買いしてサーバ構築中でもあったりします。公開できるのはいつの日やら。

宣伝: 短編の予選投票締切が今日なので、よろしければ。

(2003年3月4日)


2003年3月8日

勢いで"tanpen.jp"のドメインを取ってみました。

勿論、短編を将来このURLに移そうというもくろみのためなのですが、実際に使えるようになるのはいつになるやら。頑張ります。

ドメインを取得すると登録者情報が公開されてしまうのですが、業者によっては、頼めば自分の住所を出さなくともよいようで一安心。akatsukinishisu.netの登録情報も探せば見つかりますが、住所は業者のものになっています(今は)。

* * *

前に書いた「ここ」というリンクを独立したページにしまして、多少書き直したりリンクを幾つか付け加えたりしました。

* * *

9月に作って以来、全然更新してなかった徒書の目次も更新しました。

(2003年3月8日)


urn:isbn:とJavaScript

ウェブ技術に敏感なとある方面においては <a href="urn:isbn:n-nnnn-nnnn-n">本の名前</a> といった、ISBNをURIとしたリンクを使用しているのを時々見かけます。

このようなリンクを扱うものとしては、URN リダイレクタやXULアプリのURN Supportがありますが、もう少し手軽にbookmarkletで何とかしてみようと考えまして、試しに作ってみました。

urn:isbn:なリンクをAmazon.co.jpへのリンクに変換
javascript:isbn2Amazon();function isbn2Amazon() { var links = document.getElementsByTagName('a'); var url = 'http://www.amazon.co.jp/exec/obidos/ASIN/'; for (var i = 0; i < links.length; i++) { var a = links[i].href; if ( a.match(/^urn:isbn:(.+)$/i) ) { a = RegExp.$1; a = a.replace(/-/g,''); a = url + a; } links[i].href = a; } }
同じくbk1へのリンクに変換
javascript:isbn2bk1();function isbn2bk1() { var links = document.getElementsByTagName('a'); var url = 'http://www.bk1.co.jp/cgi-bin/srch/srch_result_book.cgi/?idx=3&isbn='; for (var i = 0; i < links.length; i++) { var a = links[i].href; if ( a.match(/^urn:isbn:(.+)$/i) ) { a = url + RegExp.$1; } links[i].href = a; } }
* * *

でまあ、閲覧する側としてはこのような対処でも何とかなるわけですが、そこから一歩進んで、ウェブページを作り出す側として urn:isbn:... のようなリンクを有効活用できないか、と考えまして、このようなものを作ってみました。

やっつけで作ったのでスクリプトの出来については疑問が残りますが、urn:isbn:なリンクの利用の仕方の一例、ということで。

* * *

スクリプトを作りをする際にurn:isbn:について調べてみたところ、RFC2888の3.2の以下の記述によると数字の間の"-"は無くてもよいようなのですが、読解に自信が無いので間違ってたらご指摘下さい。

For the ISBN namespace, some additional equivalence rules are appropriate. Prior to comparing two ISBN URNs for equivalence, it is appropriate to remove all hyphens, and to convert any occurrences of the letter X to upper case.

(2003年3月12日)

追記

掲示板にてsatoshiiさんより上記部分について意訳を頂きました。「二つの ISBN URN が等しいかどうかを比較する際には、あらかじめ全てのハイフンを除去し、全てのエックスを大文字に変換する」……とのことで、やはりハイフンは無くてもよさそうです。

(2003年3月16日)


ルビのスタイル(2003年3月16日)

CSS/DHTMLバグ辞典スレッド ver2.0で前に作ったMozilla向けのルビスタイルをOpera 7に適用している方を見かけまして、バージョン6ではできなかったruby要素へのスタイル適用が7ではできるようになったことを知り、自分でも試してみました。

Mozillaでルビ表示3で試したinline-table方式は使えそうであり、しかしline-heightの解釈等がMozillaと違うようなので、調整して以下のように。


/* Opera 7向けルビスタイル */

ruby {
  display:inline-table;
  text-align:center;
  white-space:nowrap;
  text-indent:0;
  vertical-align:-30%;
}

ruby>rb,ruby>rbc {
  display:table-row-group;
  line-height:1.2;
}

ruby>rt,ruby>rbc+rtc {
  display:table-header-group;
  font-size:60%;
  line-height:1;
}

ruby>rbc+rtc+rtc {
  display:table-footer-group;
  font-size:60%;
  line-height:1;
}

rbc>rb,rtc>rt {
  display:table-cell;
}

rp {
  display:none;
}

複雑ルビの時に、前側ルビも後側ルビも両方上に表示されてしまう*、という不具合があるものの、単純ルビ・後側ルビなし複雑ルビを表示する分はこれで何とかなりそうです。Opera 7で使うときにはこのスタイルを含んだCSSファイルをPreferences → Page Style → My style sheetで指定して、Author Mode欄の"My style sheet"にチェックを入れればOK。

* どうもdisplay:table-footer-groupの指定が上手く行かない様子。謎なことには、前側ルビを下(table-footer-group)に、後側ルビを上(table-header-group)に表示することは可能だったりしました。

* * *

Mozillaもバージョン1.3が出たので入れ替えたところ、これまた微妙にスタイルの解釈が変わっているようなので、ユーザCSSを以下のように変更してます。


/* Mozilla 1.3向けルビスタイル */

ruby {
  display:inline-table;
  text-align:center;
  white-space:nowrap;
  text-indent:0;
  vertical-align:-12%;
}

ruby>rb,ruby>rbc {
  display:table-row-group;
  line-height:1;
}

ruby>rt,ruby>rbc+rtc {
  display:table-header-group;
  line-height:1;
  font-size:60%;
}

ruby>rbc+rtc+rtc {
  display:table-footer-group;
  line-height:1;
  font-size:60%;
}

rbc>rb,rtc>rt {
  display:table-cell;
}

rp {
  display:none;
}

(2003年3月16日)

追記

スタイルを少し調整し直し、あとOpera7向けスタイルに混じっていたletter-spacingの適用を外しました。ました。しかしruby要素に対するvertical-alignは各ページのline-height等により適正値が大きく変わってくるので、これだという値を決めるのは難しいです。

(2003年3月16日)


2003年3月18日

今年に入ってからの日付がずっと2002年になっていたのに気付き、修正。

短編第7期決勝はここだけの話、かなりの接戦になっていて管理者はハラハラドキドキしつつ投票の推移を眺めております。投票締切は本日までなので、よろしければ貴方の一票を。

箇条書き太郎の誕生日に『キョウ・キタムラの店』で作った名札をバリッドちゃんがプレゼントする話。なるほどあの篆書名札にはそのような由来が……。Nishinoさんどうもです。楽しく読みました。:-)

(2003年3月18日)


2003年3月24日

マークアップの変更をしてまして、いわゆる空更新気味な更新です。具体的には、見出し(h1-h6)ごとにdiv.sectionで囲むようにしたのでした。見た目には大して変わり映えしてませんが、IEでスクリプト無効でも左右ボーダーが表示されるようにはなりました。あと、ナビゲーション部分を一番下にしたりとか。

篆書バナー作製や短編の方でも色々やるべきことはあり、まだ暫くは潜行状態になりそうです。

(2003年3月24日)


RSSの手入れ

適宜覚書の3月23日で取り上げられていた、FeedReaderを自分も試してみました。実は以前にちょっとだけ使ってみたことがあり、その時は実行ファイルそのままという意外な配布のされ方をしてたり、日本語が文字化けしてたりしていまいちという印象でありました。が、今ではきちんとインストーラーもついていて、(UTF-8で書かれた)日本語もちゃんと読めて快適な感じになってます。新しくRSSを登録する際はタイトルが文字化けして取得されてしまいますが、その後自分で正しいタイトルを再入力すればOK。

適宜覚書でも触れられている通り、徒書のRSSをFeedReaderで見ると各アイテムの日時が皆同じになるという現象がありますが、これはFeedReaderの方で、dc:date要素は 2003-03-24T04:09:23+09:00 といった長い形式でないとちゃんと認識されないためのようでした。日時の情報は年月日までしか記録していないので、item要素内のdc:date要素は 2003-03-24 とまでしか書いていないのです(dc:date要素の内容W3CDTFに従うとのことなので、これでもよいはず)。日時の後ろに"T00:00:00+09:00"とでも付け加えれば回避できるのですが、正確でない時間を書くのも気が引けるので、アプリケーション側の改善を期待したいところ。

……と書いていた後にFeedReaderでUpdateしてみると、日付はちゃんと表示されるようになっていました。日時が皆同じになるのは最初に登録する時だけなのかも。

descriptionの分量は的確」、と評してもらってますが、内容としては最初の段落から最大200バイト分(分量はなんとなく)を抜き出しているだけなので、適切かどうかは実はやや疑問だったりします。ねこめしにっきでも同様の方法を採られているようで、

この方式を採ってる以上、日常のにっき書きの際はいつも、何についての話を今からするのかという要点をまず即座に書くのを意識してないといけなくなる。

というのは、自分もRSS出力CGIを作った際に似たようなことを考えました。:-) しかしMac OSXには自然言語を要約するサービスがあるとはスゴい。

* * *

ときに、以前RSS出力CGIを作った時には、「必ずしも1つのRSSファイルをじかにブラウザで読みやすくする必要はないのかも」なんてなことを言いつつありのままでRSSを提供してましたが、XSLTに関して食わず嫌いなのはよくないと思い直しまして、RSS用のXSLTスタイルシートも作ってみました。まだ人が作ったのを見よう見まねしている段階ですが、実際に作ってみるとより興味が湧いてきたので、詳しいところも追々学んで行きたいものです。

あと、メディア型をapplication/rss+xmlで提供するのも現時点ではあまり益がなさそうなので、application/xmlのみで提供するように変更しました。

(2003年3月26日)


2003年3月30日

先日TVが壊れて以来TVなしの生活を送っていたのですが、K1はちょっと見てみたかったので、これを機に新たに導入することにしました。といってもTV受像機を置く場所がないので、PC用のTVチューナーを増設することに。

多少手間がかかったものの、特に問題もなく導入成功。160*120ピクセルの画面で見てもなかなかよい感じで、モニタの画面左上は今後TV用スペースとなりそうな予感。

* * *

ローカルでのウェブページの表示確認はCygwin上のApacheやらPerlを使っているのですが、何となくCygwinをアップデートしてみたところ、ApacheがWin2000上のサービスとして起動しなくなってしまいました。こんなエラーで。

cygrunsrv: Error starting a service: QueryServiceStatus:  Win32 error 1062:
そのサービスを開始できませんでした。 

色々と検索してみた末に、Cygwinのサイトに対処法らしき記事を見つけ、試しにhttpd.confへ

User Guest
Group Guests

を追加してみると、うまいこと起動できるようになりました。よかったよかった。

……という情報が日本語ページでは見つからなかったので書いてみたり。

(2003年4月1日)


北村曉 kits@akatsukinishisu.net