2003/6月 - 朝顔日記

見出し一覧作成用正規表現

2003-06-01

月が変わったので、先月分の見出し一覧を作った。先月までは日記に grep かけて見出しを抽出して、その結果に何度か正規表現による置換をかましてやることで、見出し用のリストを作っていたわけですが、よく見たら置換一発で作れることがわかりました。ということで、忘れないようにここにメモっておきます。他の人には役に立ちません。:p)

まず、xyzzy の grep を使って、日記ファイルから h3 要素を検索します。結果の *grep* バッファに以下の置換をかけます。

検索
[0-9][0-9][0-9][0-9][ab]\.html:[0-9]+:<h3><a href="[0-9][0-9][0-9][0-9]\([ab]\)\.html#diary_\([0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)\([abcdef]\)" title="\([^"]+\)">\([^<]+\)</a></h3>
置換
<li>(\2年\3月\4日)<a href="0305\1.html#diary_\2\3\4\5" title="\6">\6</a></li>

これで見出し一覧のリストが得られますが、もう少し整理できるような気もするなぁ。:p)

「見出し一覧作成用正規表現」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030601a.html

JsActions

2003-06-01

SaruPuki行ったら、JsActions なる拡張があった。作者は flyson さんなのかな。何をするものかといえば、Mozilla Firebird 0.6 用のいわゆるコンテクストメニュー拡張だそうです。JavaScript が自分で書ければ、手軽にメニューに追加できそうです。私には書けないですが。:p)

まぁ書けない人でもスクリプト集がありますので、それをちょろっといじるだけでも色々できそうです。ちなみに、私が気に入ったのは、ローカルのファイルを好みのエディタで開くスクリプト。これがあれば、Mozilla Firebird で開いているローカルな html ファイルなどを、常用の xyzzy で開くことも可能になります。それに、開いているページを別のブラウザで開くスクリプトも便利かな。

オリジナルのスクリーンショットは、SaruPuki の該当ページをご覧いただくとして、私が自分用にいじったもののスクリーンショットを載せておきましょう。

JsAction のスクリーンショット

ということで、スクリプトが書ける人は便利なスクリプトをバリバリ書いて、SaruPukiの投稿スクリプト置き場に投稿しましょう。

「JsActions」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030601b.html

QuickSearch

2003-06-03

Mozilla Firebird の機能に QuickSearch というのがある。なんとなくあるのは知っていたのですが、これまで食わず嫌いで使ったことがありませんでした。しかし、お馴染みのもとひこさんに教えていただいたので、使ってみたらこれがメチャメチャ便利だということに気がつきました。なんでいままで使わなかったかというと、説明を読んでも今ひとつぴんと来なかったからです。私だけかもしれませんが。:p) ということで、QuickSearch のなんたるかは参考URIをご覧いただくとして、実際にどうやって使うかということを書いてみたいと思います。

まず、下記のリンク先をブックマークします。リンク上で右クリックしてブックマークするといいかな。

Google
g
goo国語辞典
国語
goo英和辞典
ej
goo和英辞典
和英
bk1
bk1
amazon
isdn

で、ブックマークしたらブックマークのプロパティを開いて、キーワードの欄に適当なキーワードを入れてます。参考までに私の使っているキーワードも書いておきました。これだけしたら、一度再起動します。これで準備は完了。

アドレスバーというのか、ロケーションバーにフォーカスを移して(ちなみにキーボードショートカットはCtrl+Lもしくは、Alt+D)です。キーワードに続いて、半角スペースを入れて検索語句を書き込みます。書き入れたらばEnterで、あら不思議。あれこれしてくれます。ね、便利でしょ? 知ってました? 知らなかったのは私だけかな。:p)

ちなみに、アドレスバーにいきなり検索語句を入れると Google の I'm feeling lucky 検索をしてくれます。これも今日知った技ですが。:p)

いつもお世話になっているもとひこさん情報によれば、アドレスバーを使った検索方法を変更するという技もあるようです。というわけで、今回もおおいにもとひこさんに助けてもらった 1日でした。どうもありがとうございます。>もとひこさん

QuickSearch 参考サイト
SaruPuki - QuickSearch
Mozilla カスタムキーワード(Mozilla Custom Keywords)
クイックサーチ(ブックマークキーワード)

「QuickSearch」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030603a.html

Friend of a friend

2003-06-04

神崎さんFOAF -- メタデータによる知人ネットワークの表現 を読んで早速自分でも の画像 foaf.rdf を作ってみました。よくわかっていないのですが、パースエラーは出ていないようなので、整形式にはなっているようです。:p)

このままでは視覚系 UA での閲覧には向かないので、FoaF Explorer などを経由して閲覧するとよいかもしれません。

それにしても、知人のネットワークというわりにえらく載せてある人が少ないですねぇ。:p) どしどし載せちゃってもいいものなんでしょうか。一方的にこちらが知人だと思っていてリンクフリー(何)な人ならいいのかな。

おまけ
FOAF-a-matic を使えば簡単に FOAF が作れます。

「Friend of a friend」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030604a.html

不完全なCSS対応ブラウザ対策

2003-06-07

今のところ、mozilla 系のブラウザがもっとも標準準拠で、css の解釈についても優れていると思いますが、世の中そうでないブラウザを使っている人も非常に多いというか、ほとんど IE しか使われていないといってもいいくらいなのかもしれません。css に対応していなければ対応していないでそれは問題ないわけですが、不完全に対応しているばっかりに、その css を無視してくれればいいのに不完全な表示を行ってしまうブラウザもあるわけです。その際たるものが、NN4だったりするわけですね。もちろん NN4 に限らず、そういうことはありうるわけですが。

読めなくては話しにならないので、UAによって多少見映えの違いが出るのはしょうがないとして、どうやってそういう読めなくなるような事態を回避するかということが問題になります。俺は仕様に沿って css 書いているんだからそんなことは知ったこっちゃない、という立場も当然ありなわけですが、そういうことを言っていられない立場があるのもまた事実。

具体的にどうやってこういった問題を回避するかというと、おおまかに分けて 2 通りの方法があると思います。ひとつは、html のほうで何とかする方法。もうひとつは、css のほうで何とかする方法です。前者の方法で、代表的な手法と言えば、UA を判別して、それぞれの UA に応じた css をあてがういわゆる「UA 振り分け」ですね。JavaScript や SSI、php などを使って振り分ける方法が使われています。後者の方法でよく使われているのが、各 UA のバグを逆手にとって、都合の悪いスタイルを適用させない方法ですね。

そんなことをいろいろ考えていたら、4月に行ったウェブアクセシビリティ・セミナー in 東京を受講した際に、zspcの大藤幹さんが、こんなことを言っておられたのを思い出しました。最近の海外のユニバーサルデザインを標榜するサイトでは、表示に関するブラウザの問題はスタイルシートで回避することが多いと。

確かに、css に関する不具合は見映えに関することだから、css で回避するの妥当なような気もします。また、そうすることで問題を css 内部だけに限定することも出来ます。やたらと css の見通しが悪くなるという弊害(?)もありますが。

今日、css とかはほとんど素人(?)のエブチ君(誰)にそんなようなことを話していたら、もし UA の不具合が直ったらどうなるの? と尋ねられました。私は、「それが直るころには、UA 自体がバージョンアップしているだろうから大丈夫なんじゃないの?」と答えましたが、ちょっと我ながら苦しいなと思いました。そんなことは誰も保証してくれません。そして現状だとUAがバージョンアップする度に不都合はないか確かめてみないといけません。いつまでたっても UA の不具合に付き合うという不毛なことをし続けなければいけないのかと悲しくなりました。

「不完全なCSS対応ブラウザ対策」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030607a.html

re:FOAFのデータ

2003-06-07

わーい、あのあのー( ̄△ ̄;さんとこのfoaf.rdfに私が登録されたのでうちんくも追加しますた。この調子でどしどし追加しよう。:p)

ちなみに、閲覧はFoaF Explorer: のりとかをどうぞ。

こういうのは使ってみないとわからないっていうところが多いような気がするので、わからないなりにもしばらくはあれこれやってみるのがいいと思います。作るのはそれなりに手間なんで、簡単に更新する何らかの方法は必要だと思います。何しろ普及しないことにはやっていく甲斐がないというか…。:p)

とにかく今後は断りなく追加していきますので、そういうものだなと思ってください。:p)

「re:FOAFのデータ」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030608b.html

winkey2.l

2003-06-10

黒い羽根をうろついていたら、Windows 風設定例というのを見つけたので御紹介。xyzzy の emacs 風なデフォルトのキーバインドに馴染めないけど、gates.l の軍門には下りたくないので winkey.l のお世話になっているというヘタレ(それは私)に最適です。:p)

winkey.l を導入すると、通常の使用でコピー、ペースト、カット、アンドゥをそれぞれ windows 標準のキーバインドにしてくれてかつ、C-cC-xのプレフィックスを両立させてくれるわけですが、他にも何かと使いたいキーバインドを追加してくれのが、winkey2.l です。

豪華セットは、件のページに書いてあるので、それをご覧いただくとして、私は必要ないものを省いて、以下のようにしてみました。


(provide "winkey2")

(in-package "editor")

;;; winkey.lからコピー
(defvar *default-selection-keymap*
    (let ((keymap (make-sparse-keymap)))
        (define-key keymap #\C-c 'copy-selection-to-clipboard)
        (define-key keymap #\C-x 'kill-selection-to-clipboard)
        keymap))

(setq-default selection-keymap *default-selection-keymap*)
(global-set-key #\C-z 'undo)
(global-set-key #\C-v 'paste-from-clipboard)
(define-key esc-map #\C-x #'ctl-x-prefix)
(define-key esc-map #\C-c #'specific-command-prefix)

;;; Windowsっぽい設定
;すべて選択
(global-set-key #\C-A 'selection-whole-buffer)
;置換ダイアログ
(global-set-key #\C-R 'replace-dialog)
;行頭まで選択
(global-set-key #\S-Home 'selection-beginning-of-virtual-line)
;行末まで選択
(global-set-key #\S-End 'selection-end-of-virtual-line)
;バッファ先頭まで選択
(global-set-key #\S-C-Home 'selection-beginning-of-buffer)
;バッファの終わりまで選択
(global-set-key #\S-C-End 'selection-end-of-buffer)
;行末方向へ再検索
(global-set-key #\F3 'search-forward-again)
;行頭方向へ再検索
(global-set-key #\S-F3 'search-backward-again)
;終了
(global-set-key #\M-F4 'kill-xyzzy)
;選択バッファを閉じる
(global-set-key #\C-F4 'close-selected-buffer)

site-lisp フォルダにおいて、これまで winkey.l を呼んでいた、.xyzzy や Siteinit.l の箇所を winkey2.l に書き換えるといいです。


(load-library "winkey2")

「winkey2.l」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030610a.html

禁煙はかくも難しい

2003-06-13

昨夜の飲み会で、煙草喫みがスミのほうに集まった。:p) その時にいかに禁煙が難しいかという話しになった。その際、Y女史が姉の目を盗んでこういった。

煙草と酒と男をやめるとしたら、男、酒、煙草の順に難しい。

私は、煙草、酒、女だろうと言ったが、信じてもらえなかった。そりゃ、とかとか言っている意味が違うのだろうと笑っていた。その後彼女は、朝起きたなりの一服がいかにうまいかということを力説し、私にこういうのだった。

女をやめるのが一番簡単だというけども、朝起きたなりエッチなことしたくなることもあるでしょう。

やっぱり、私のの解釈が彼女とは違うらしい。:p)

「禁煙はかくも難しい」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030613a.html

foaf.xsl

2003-06-14

なかなかうまいこと行かずに苦しんでいたのですが、犬神さんの犬気圏(6月14日)foaf.xslを半ばパクルようにしてなんとか私も foaf.rdf にあてる foaf.xsl ができました。ありがとうございます。>犬神さん

対応したブラウザでは、foaf.rdfを直接見ることができると思いますが、そうでないブラウザの方は、 FoaF Explorer 経由などでご覧ください。

「foaf.xsl」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030614a.html

朝日小屋小屋開け

2003-06-16

15日(日)に朝日小屋の小屋開けに行ってきました。大量の物資をヘリで荷揚げして昨年の10月半ばから冬期間閉鎖していた小屋を開けるのです。ここ数年、私もこの小屋開けのときに朝日岳へ登っている。行きはヘリに乗って行けるのでラクチンなのです。:p)

何故、私が小屋開けに際して登っているかというと、電気屋さんが毎年この時に登るのですが、彼の下りに付き添わないといけないからです。というのも、今の時期の朝日岳は、まだ3分の1以上雪の上を歩かないといけないわけで、当然登山道はまだ雪の下になっているために、ルートを知らない人だとまず歩けないわけです。特に今の時期は梅雨時でガスっていて視界が効かない場合も多いですから。

15日の早朝、朝日小屋の管理人から天候がまずまずなので予定通り荷揚げを行う旨、連絡を受け、急いで朝日岳の登山口でもあり、荷揚げのヘリポートでもある北又へ向かう。北又で差し入れられた朝食などとっていると、遠くの空から爆音を響かせてヘリがやってきました。最初に管理人他2名が搭乗して朝日小屋へ向かう。その後しばらく天候がいいうちに物輸したほうがよかろうということで、各種物資を荷揚げします。天候は雨は降っていないものの、曇っており特に山の高いところにはガスが残っている。北又へ向かう車の中から朝日岳を見ると、朝日小屋のある辺りから上部は雲に覆われているような感じで、だいぶ微妙な状態でした。ヘリコプターは完全に有視界飛行なので、ガスると飛べないのです。

ヘリコプターによる荷揚げの様子の画像

当面どうしても必要なものを優先して物資を何度も荷揚げします。そのうち、天候の状態が思わしくないので、しばらく様子を見ますとのこと。その間に、ヘリは給油していたので、それを見学させてもらう。私は何度もヘリに乗ったことがあるのですが、まじまじとコクピットの中を覗いたことがなかったので、この機会によく見させてもらう。まぁ、見ても何にもわからないんですが。:p)

ヘリの燃料はいわゆるジェット燃料なんですが、あれはごく安いものらしいですね。言ってみれば灯油に混ぜものが入っていないものくらいなものだそうです。家庭用の灯油は色々添加物が入っていますが、それが入っていないので、かえって安いくらいなものだそうです。ちなみにリッターどのくらい飛びますかと整備士の方に尋ねたら、おおむねリッター1km位だと言っていました。

ヘリコプターに給油する整備士の様子

そうこうしているうちに、また天候の状態がよくなってきたので、今度は人送です。やっぱりどうしても必要な人から先に上がります。ということで、私の出番は一番最後です。それでも、電気屋さんと電話の工事をするNTT関連会社の方と一緒です。:p)

今回は、パイロットの隣の席も空いていたので、すかさず手を挙げてパイロットのとなりに乗せてもらいました。前の席は足元までガラス張りで大変眺めがよいのです。私は高所恐怖症ですが、ヘリは大丈夫です。:p)

歩いて登ると標準のコースタイムで6、7時間かかるところをわずか4分弱の時間で北又から朝日小屋まで行ってしまいます。途中写真を撮ろうと思うのですが、写真を撮っているとファインダー越しの世界で面白くないので、程々にしておきます。それでも、登山上の注意する箇所などを通過する際は、それなりに写真に納めたり、心に留め置くようにしました。一応。:p)

ヘリが離陸した直後の画像

小屋に着くと辺りはまだ一面銀世界というか、雪だらけです。さすがに小屋のまわりは雪が解けていますが、小屋の前の朝日平は一面の雪原です。

ヘリから見る朝日小屋の画像

すでに先着した人達が到着した荷物を小屋の中に運び入れつつありました。これからが本番です。10分と間をおかずに次々と荷物が到着します。梱包を解いて急いで小屋の中に運び込みます。小屋の玄関は荷物でいっぱいです。荷物の中味は、食料や大量のビール、米、冷蔵庫、食器棚、毛布類、今年新たに入れ替える食器類、その他もろもろで、段ボールの数に換算しても何百個もの数になるのではないでしょうか。とにかくそれを中に運び込み、運び込むスペースが無くなるので中は中で荷物を移動して…、ということを繰り返します。

私も途中から中に入って荷物を移動していたのですが、毎年難儀するのが米です。米は3階の倉庫に入れることになっているのです。ということは3階まで米を担いで登らなくてはなりません。もちろん、エレーベータなどはありません。米袋は1袋30kgあります。これが40袋弱ありました。ほぼ1トンです。これを他の人と二人で担ぎ上げました。重いのもそうですが、いきなり2000m以上の高所へ上がって激しいことをするのですぐに息が切れます。そう、空気が薄いのです。喘ぎあえぎ、どうにか米を担ぎ上げて、ようやくひと段落着いて一服です。

このあとさらに、難解を極める冷蔵庫等の搬入が待ち受けていました。

続く

「朝日小屋小屋開け」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030616a.html

頂上へ

2003-06-17

朝日岳の山開きは今月の末の28日に予定されています。その際、天候がよければ29日の未明に朝日小屋を出発して約1時間の登山の後、山頂で御来光を拝むことになっています。ということは、真っ暗闇の中を登るわけですね。しかも、その頃はまだ雪がたくさん残っているために登山道が露出しておらず、ルートを探しながらの登山となります。

私はお客さんを連れて登る立場なんですが、何が心配と言ってルートがスムーズに見つけられるかどうかが心配なわけです。またお客さんを滑落させたりしてもいけません。そこで危険箇所をチェックしたり、ルートを確認したりしておきたかったので、15日の午後に頂上まで行ってみることにしました。

実は今回秘密兵器を用意しました。GPS です。私が使っているのは GarmineTrex Ventureという機種です。これは優れもので、一度通ったルートを自動的にルートとして覚えていてくれます。今回これを持参して頂上まで行けば、次回は GPS を頼りに歩くことが出来るというわけです。

ということで、山頂へ行くことにしたのはいいのですが、あいにく山はガスっておりすでにルートがわからない状態でした。時折ガスが動いて視界が効いたりもするようなのでとにかく出発。単独です。

ガスで視界がないの様子をあらわす写真

小屋からしばらくは下りでその後、登りになるのが頂上へのルートなのですが、下った所ですでにあたりは真っ白。どっちへ行ったらいいのかわからないくらいの状態です。間違ったルートを GPS に覚えさせては意味がないのであきらめて戻ろうかとも思いましたが、しばらく困っていたらなんとなく先が見えたので行ってみることにしました。後で帰られるのかな、と心配になりましたが、考えてみたら GPS を持っているのでそれを頼りに戻ることが出来ると気が付きました。:p)

頂上へのルートの途中から朝日小屋を望むの図

何度も雪の上のルートを歩いているのでおおむね方角とかは頭に入っています。しかし、毎年雪の付き方というか、残り方が違うので油断はできません。雪の量は昨年よりは多いみたいです。途中ひと登りしたあたりで、さーとガスが晴れしばらくの間視界がよくなりました。朝日小屋が見えています。先のルートも確認できます。しかしそれも束の間、じきにまたガスに包まれてしまいました。

もうすぐ山頂というあたりまで来た時に、あたりからガマガエルでも鳴くような声が聞こえてきました。雷鳥です。雷鳥はその可憐な姿から想像できないような不細工な鳴き声で鳴きます。「グェ」みたいな…。姿は見えないのですが、糞の跡があったので一応撮影しときました。

雷鳥の糞の画像

ひょっこりと山頂のある平らに登ると、そこには雪がなく、すでにお花も咲いていました。山頂付近は風が強いので、雪がつかないのだと思います。とりあえず山頂に着いたらビールということでひとりビールを飲みます。しかし、結構風があって寒かったです。それにお花が咲いているといってもあたりはガスっており景色自体が寒々として見えます。寂しい心持ちにいたたまれず、お花の写真などを撮って早々に山頂を辞します。

朝日岳山頂付近の様子

帰りもあまり視界はありませんでしたが、思ったよりスムーズに歩け、GPS のお世話になることもなく、帰ってくることができました。

「頂上へ」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030617a.html

Thunderbird

2003-06-17

雷鳥の画像

小屋での夕食後、翌日の天気が気になる私は外に出てみました。あたりはだいぶ薄暗くなっていましたが、まだ完全に暮れきっていたわけではありません。小屋の前で空を見上げていたら、足元のほうで何やらごそごそ動いている気配。見てみると雷鳥でした。慌ててデジカメを取りに戻ろうと思ったらうまい具合にポケットに入っていたので撮影することが出来ました。暗かったのでフラッシュを焚かないといけなかったのですが、はたして雷鳥を脅かすことになるのではないかと危惧しつつも、まぁ雷でも驚かない奴等なので大丈夫だろうとフラッシュも焚きました。案の定彼は全然気にしていないように見えました。それにしても赤目防止も必要だったかも。:p)

雷鳥が何かを食べているの画像

「Thunderbird」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030617b.html

アマンボ

2003-06-18

ようやく帰ってくる日になりました。:p)

帰ってきたのは、16日(月曜日)です。午前中はもたもたと小屋の手伝いなどして過ごし、昼ご飯を食べてから下山しました。天候は時折ガスったりするものの雨は落ちておらずカッパの世話になることもなく良かったです。まぁ、日頃の行いの賜物でしょう。:p)

残雪豊富な夕日が原の画像

今回割に雪が柔らかかったので、スプーンカットになっているとはいえまだまだたくさん雪の残る夕日が原では、スキーも出来そうでした。

恵振山から樹林帯に入るといよいよお待ちかねの山菜取りです。8号目辺りからアマンボがボチボチ目に付き始め、6合目と7号目の間の雪渓の際で、そこそこいいのが見つかりました。山の神に感謝しつつ、少々頂いてきました。

アマンボの画像

家に帰ってからさっとゆでたものをマヨネーズであえて食べると非常に美味でした。その名の通り甘みがあってまさしく、山のアスパラという感じです。

幽玄なブナ平の画像

5合目のブナ平から下は特に今回用事がないので一気に下ってきました。まぁ、ウドくらい採ってきても良かったのかもしれませんが。

「アマンボ」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030618a.html

MIMEタイプとかwinIEとか

2003-06-19

Another 朝顔日記(03年6月19日)MIMEタイプという記事にalmikaさんがコメントを寄せてくださいました。

それを読んで実験してみることにしました。が、その前に私の書いた該当記事と alimika さんのコメントをこちらにも再掲しておきます。

UA が鯖に対して、hogehoge というファイルをリクエストして、鯖がそれを送ってくれるわけだけども、その際にその hogehoge なるファイルが一体どういう種類のファイルかわからないと、UA がそれを受け取った時にどう処理していいのかわからなくなるので、鯖は hogehoge を送り出すときに、hogehoeg はこんな種類のファイルだよという情報も送ってくれます。そうすれば hogehoge を受け取った UA は適切な処理を行うことが可能になります。

では、鯖が知らないファイルタイプだったり、あるいは適切でない設定がなされていた場合は、どうしたらいいでしょう? 普通のユーザは鯖の設定などいじらせてもらえるはずもないので、ユーザディレクトリに対する限定的な設定ファイルというものが使える場合があり、それが .htaccess というファイルであると。

今回(何)の .rdf、.xml という拡張子の話でいえば、どうも一般的な鯖だと、まだ新しい .rdf なファイルは、text/plain として送出されるぽいので、鯖の言う情報を正直に解釈する mozilla 系の UA だと単なるテキストファイルとして表示してしまうわけですね。

これを回避するには、.htaccess で .rdf なファイルは xml だよんと再定義してやればいいわけです。しかし、.htaccess をいじらせてもらえない場合もあります。

ではどうしたらいいか。どうも一般的な鯖の場合、拡張子を .xml にすれば鯖のデフォルト設定で、そのファイルを text/xml として送出してくれるぽいということです。こちらとしては xmlなドキュメントとして扱ってもらいたいわけだからこれはナイスな事です。ならば何も拡張子 .rdf にこだわる必要はさらさらなくて、拡張子を .xml にすれば済むという事です。

IEなどは、鯖が送ってくれるMIMEタイプよりも拡張子を信用する癖(?)があるらしくて、鯖が送ってくれたMIMEタイプを無視してそれを処理するみたいですね。

コメント

WinIEは拡張子を信用するというか、その前にファイルの内容そのものを調べて、その判定結果を優先してる気配があります。

で、私が試してみたこと。まず、ローカルで動かしている AN HTTPDの設定をいじって、拡張子 foo に text/plain な MIME タイプを設定しました。次に test1.foo というファイルと test2.foo というファイルを作って AN HTTPD 経由で見てみました。test1.foo の中味は xhtml1.0strict な html ファイルです。で、test2.foo の中味は html4.01strict な html ファイルです。

この test1.foo と test2.foo を まず Mozilla Firebird で見てみました。どちらのファイルもプレーンテキストとして表示されました。こちらの予定通りの動作です。

次に test1.foo を winIE5.5 で見てみました。スタイル無しの xml を表示させたときの例の折り畳み式の表示になりました。どうも xml なドキュメントだという風に winIE5.5 は解釈したようです。では、test2.foo はどうでしょう。今度は普通(?)の html な表示になりました。

ということで、winIE は alimika さんが言われるように、ファイルの中味を見てそのファイルの種類を判定しているようです。しかしどこまでみているものか気になったので、適当な画像ファイル(jpeg)をpicture.fooとリネームしてこれをwinIE5.5で見てみました。

さぁ、これはどうでしょう。なんと winIE はちゃんと画像ファイルを表示してくれました。恐るべし、winIE。ちなみに Mozilla Firebird は、ちゃんとテキストとして開いてくれました。文字化けの嵐です。:p)

ということで、やっぱり winIE は、拡張子のみならずファイルの中味まで見ているようです。ちなみに、xhtml な test1.foo から doctype 宣言はそのままに、xml 宣言を外してみたら html なレンダリングをしました。

通常は拡張子.html な同じ内容の xhtml ドキュメントを html ファイルとしてレンダリングしているんだからやはり拡張子も見ているには違いないのですが。

「MIMEタイプとかwinIEとか」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030619a.html

爪痕

2003-06-22

朝日岳の山開き登山会を来週に控え、毎年恒例の草刈り&登山道整備に行って来た。

私は、土木工事のスペシャリスト松倉さん(誰)の助手として6合目付近に階段をつけに行くことになった。今までも通行することはできたが段差が大きいために、大荷物の場合などはやや通過に苦労する場所だ。ナタ、ノコ、ツルハシ、番線などの道具と5合目にデポする草刈り機の燃料4リットルを担いで北又を出発。

途中、2合目と4合目で休憩した。この何合目というのは朝日岳までの距離の目安ではない。途中にある恵振山までの目安だ。それぞれの地点に何合目と書かれた標柱が立てられている。先週朝日小屋の小屋開けで、朝日岳に登りその下山の際にも気がついていたのだが、4合目の標柱が熊にかじられている。前回はつい写真を撮り忘れたので、今回はしっかり写真に納めてきた。

熊にかじられた4合目の標柱の画像

松倉さんいわくは、熊が標柱の上を押さえた上で、かじったものらしい。確かに不明瞭ながら標柱の上部に熊の爪痕らしき後もあった。それよりもかじったところの下に激しい爪痕があったので、これも写真に納めてみた。

熊の爪痕の画像

他にも、違う場所だが熊がタケノコ(ネマガリタケ)を食べた跡もあった。熊はタケノコをある程度集めてひとところで食べるらしい。タケノコの皮などがかたまって落ちていた。サルだとこういう食べ方はせずに生えている場所で食い散らすらしい。それにしても熊のタケノコを食べていた場所はいい場所で、ここにじっくり座り込んでタケノコを食べていたのを想像するとなかなかユーモラスだ。

あと気になったのは、まだ実が入っていないブナの実がたくさん落ちていたことだ。おそらく先日の台風で落ちたものと思われる。秋にブナの実が少ないと熊が里に降りてくることが多いようなので、ちょっと心配だ。秋にたくさんブナの実がなるといいな。

6合目では松倉さんのプロの腕前を堪能させていただいた。私はたいして役に立たず、申し訳ないことでした。ああいう技術があるのはうらやましい。

6合目の下に作った階段の画像
追記
山から下りてきたら、熊鍋が待っていた。持ってきたのはこないだ熊にやられたS作さんのカタキを打ったと噂のコウちゃん。非常にうまかったです。多分これで私もS作さんの仇討ちに荷担できたのでは。:p)

「爪痕」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030622a.html

ミニのり未刊

2003-06-23

piroさんが新しい拡張、Content Holder を発表されたので入れてみた。この拡張を使うことで、現在表示しているタブとは別の何かを表示するスペースを確保することが出来るようになります。ま、mozillaでいうところのサイドバーみたいな感じでしょうか。

これを使って早速のり未刊を Mozila Firebird に収納してみた。ミニのり未刊です。:p) スクリーンショット(約45KB)

ミニのりみかんをMozilla Firebird に納めたスクリーンショットのサムネイル画像

もっともただ入れてみただけで、ミニさとみかんのようにアンテナがそれように整備されているわけではないので、現状ではちっとも使い易くないです。:p) とりあえず、<base target="_content" />は付け加えてあるので、適当なブラウザであればどうにか使えるでしょう。:p)

ぼちぼち整備して、別ページとして作ってみたいものです。

参考情報
「ミニさとみかん」ごあんない

「ミニのり未刊」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030623a.html

foaf:nick

2003-06-24

foaf:name 適宜覚書 _tDiaryVersion (2003/06/21)foaf:name は実名にすべきかどうか ねこめし日記 (2003/06/22)で言及されていますが、私も foaf:nick にすべき内容を foaf:name に記すのはどうも抵抗がありました。犬神さんFoaFアイコンの画像 がすでに foaf:name をやめて foaf:nick に書き換えておられるのを見てというわけでもないですが、ま、やってみるべと思って、私も自分の FoaFFoaFアイコンの画像 を foaf:nick で記すことにしました。

自分のneme位は本名で書き換えようかとも思いましたが、だんだん広がりを見せつつある現在のつながりの中ではほとんど無意味な感じもするので、自分の名前も nick のみにしました。

それに、こういうメタデータというのはどこでどういう使われ方をするのかわからないので、やはり不用意に個人データを流すのもまずいような気がしますしね。

明らかに本名を名乗っていると思われる方を追加する場合は、多分それがその人の意思だと思うので、その場合は name を使うかもしれませんが、基本的に私の「知っている人」は、nick で載せていこうと思っています。

「foaf:nick」へコメントをつける

この記事へのツッコミ

1: (1970-01-01T09:00:00+09:00)
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030624a.html

最新の日記の表示件数

2003-06-24

私は最新の日記を書いてから該当箇所を月ごとの保存版に手動でコピペしているんですが、その際に最新版の古い記事を適当に削除しています。つい忘れてどんどん長くなることもありますが。:p)

削除する際には、いったい何日分残したらいいのだろうといつも悩みます。機械的に何日分とか決めてその通りにすればいいのでしょうが、もし最新版だけ読みに来られた方がおられた場合、なんとなく話題が続く場合は、そのかたまり分くらいは残しておいた方が、いちいち月別のものを読みに行く手間がいらなくていいんじゃないかとか思ってしまうわけです。

つか、いつも来られる方が来られないと寂しいなという多分に情緒的な話しです。:p)

そのうちxmlで日記を書いて一撃で、最新版も保存版も見出し一覧も、何もかも自動生成出来るようになったら、そんなことも関係なくなってしまうんですが。そんな日が来るのかどうか知りませんけども。

「最新の日記の表示件数」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030624b.html

未整理の.xyzzy

2003-06-26

今日、.xyzzy と Siteinit.l を整理しようと一念発起してあれこれしていました。で、どうにかいい感じになってきたのでこれでいいかなというところで、誤って.xyzzy を削除してしまいました。ウワーン、というようなことをはてな日記のほうに書いていたら、そりゃバックアップを兼ねて日記にウプすべしとのことでしたので、未整理なままの状態の会社のマシンの.xyzzy をウプしてみます。つか、Siteinit.l とセットでないとあまり意味がないような気もするんですが。また整理できたらセットでウプしてみますです。つかはずかちいなぁ。:p)

ついでにどなたか添削してくれるとうれしい、とか言ってみたり。:p)


(load-library "info")
(require "ni/setup")

(defun kill-forward-line () 
(interactive) 
(let ((a (point)) 
(b (progn (goto-bol) (point)))) 
(delete-region a b))) 

(set-extended-key-translate-table exkey-C-backspace #\F24) 
(global-set-key #\F24 'kill-forward-line)

(setq *keyword-load-path* '("c:/Progra~1/xyzzy/keyword/")) 

(defun dt-dd () 
(interactive) 
(save-excursion 
(goto-char (point-min)) 
(replace-buffer "\\([^\n]\\)\t" "\\1\n\t" :regexp t) 
(goto-char (point-min)) 
(replace-buffer "\t\\([^\n]+\\)" "\t<dd>\\1</dd>" :regexp t) 
(goto-char (point-min)) 
(replace-buffer "^\\([^\t\n]+\\)$" "<dt>\\1</dt>" :regexp t))) 
(define-key ed::*html+-mode-map* '(#\C-c #\d) 'dt-dd) 

;; ジャンプディレクトリ
   (defvar *my-favorites-directory*
     '(("web" . "c:/web")
       ("desktop" . "c:/windows/デスクトップ")
       ("xyzzy" . "c:/progra~1/xyzzy")
       ("Profile" . "C:/WINDOWS/Application Data/Phoenix/Profiles/default/uk643b4i.slt/")
      )
   )
   (setq *filer-directories*
     (cons  (cons "xyzzy/site-lisp" (concat (si:system-root) "site-lisp"))
          *my-favorites-directory*))

;; 一発インデント 
(defun indent-current-buffer () 
(interactive) 
(indent-region (point-min) (point-max)) 
(message "indent buffer")) 
(global-set-key #\C-F8 'indent-current-buffer) 

;; ファイラーのマスク
(setq *filer-primary-file-mask* '("*"))
 (setq *filer-secondary-file-mask* '("*")) 

;; html+-mode でインデントは空白で
(add-hook 'ed::*html+-mode-hook* 
#'(lambda () (setq indent-tabs-mode *c-indent-tabs-mode*))) 

;; xml-mode
(require "xml/xml-mode")
(use-package 'xml)
(require "xml/xhtml")
(require "xml/xslt")
(pushnew '("\\.\\(xml\\|xsl\\|rdf\\|svg\\|fo\\|xi\\)" . xml-mode) *auto-mode-alist* :test 'equal)

;;; chcolor
(load-library "chcolor/chcolor")
(global-set-key #\M-e 'chcolor)


;; リージョンを反転表示
(load-library "rv-region")
;;;    あらかじめ用意されたコマンド(rv-set-mark-command)実行時のみ、反転
;;;    表示を開始する。以下の設定では、C-@ でマークを設定すると、リージョ
;;;    ンの反転表示を開始する。M-SPC では、反転表示しない。
        (global-set-key #\C-@ 'rv-set-mark-command)
;;;    ・反転されていないリージョンに対し反転を開始する。(M-R)
        (global-set-key #\M-R 'rv-region-start)
;;;    ・反転されていないリージョンを一時的に反転する。(M-V)
        (global-set-key #\M-V 'rv-region-check)

;;css-mode 時にC-iで補完
(add-hook 'ed::*css-mode-hook* 
#'(lambda () 
(define-key ed::*css-mode-map* #\c-i 'ed::css-completion))) 


;;; css-enhance 
; library 
(load-library "css-mode") 
; indent (お好みでどうぞ) 
(defvar *css-indent-level* 4) 
(defvar *css-continued-statement-offset* 4) 
(defvar *css-brace-offset* -4) 
(defvar *css-brace-imaginary-offset* 0) 
(defvar *css-argdecl-indent* 0) 
(defvar *css-label-offset* 0) 
; keymap (お好みでどうぞ) 
(define-key *css-mode-map* #\{ 'c-electric-insert) 
(define-key *css-mode-map* #\: 'c-electric-insert) 
(define-key *css-mode-map* #\} 'c-electric-close) 
(define-key *css-mode-map* #\C-h 'backward-delete-char-untabify-or-selection) 
(define-key *css-mode-map* #\TAB 'c-indent-line) 
(define-key *css-mode-map* #\C-M-q 'indent-sexp) 
(define-key *css-mode-map* #\RET 'c-newline-and-indent) 
; function for hook 
(defun css-enhance () 
;; inent command 
(make-local-variable 'mode-specific-indent-command) 
(make-local-variable 'c-comment-indent-variable) 
(setq c-comment-indent-variable 'c-comment-indent) 
(setq mode-specific-indent-command 'c-indent-line) 
; indent 
(make-local-variable 'c-indent-level) 
(make-local-variable 'c-continued-statement-offset) 
(make-local-variable 'c-brace-offset) 
(make-local-variable 'c-brace-imaginary-offset) 
(make-local-variable 'c-argdecl-indent) 
(make-local-variable 'c-label-offset) 
(setq c-indent-level *css-indent-level*) 
(setq c-continued-statement-offset *css-continued-statement-offset*) 
(setq c-brace-offset *css-brace-offset*) 
(setq c-brace-imaginary-offset *css-brace-imaginary-offset*) 
(setq c-argdecl-indent *css-argdecl-indent*) 
(setq c-label-offset *css-label-offset*) 
; comment 
(setq comment-indent-function 'c-comment-indent) 
(setq comment-start "/* " comment-end " */") 
(setq comment-start-skip "/\\(\\*+\\|/\\)[ \t]*")) 
; hook 
(add-hook '*css-mode-hook* 'css-enhance) 


;; バッファから送るのリスト
; http://www.geocities.jp/madoinu/xyzzy/note/dialog-box.html#buffer-sendto-dialog

(defvar *buffer-send-to-list*
  (list
   '(" Sleipnir" . "C:/progra~1/Sleipnir/sleipnir.exe")
   '(" Phoenix"           . "C:/progra~1/MozillaFirebird/MozillaFirebird.exe")
   '(" Mozilla"           . "C:/progra~1/Mozilla/mozilla.exe")
   '(" 6Opera"             . "C:/progra~1/opera/opera.exe")
   '(" 7Opera"              . "C:/progra~1/opera7/opera.exe")
   '(" NN4"              . "C:/progra~1/netscape/communicator/progaram/netscape.exe")
   ))


;; バッファから送る
(defun buffer-sendto-dialog ()
  (interactive)
  (let ((file (get-buffer-file-name)))
    (when file
      (multiple-value-bind (result data)
          (dialog-box
           '(dialog 0 0 219 100
             (:caption "送っちゃうよ")
             (:font 9 "MS Pゴシック")
             (:control
              (:listbox list nil #x50b10111 7 7 150 82)
              (:button IDOK "送る" #x50010001 162 7 50 14)
              (:button IDCANCEL "送らない" #x50010000 162 24 50 14)))
           (list (cons 'list *buffer-send-to-list*))
           nil)
        (when result
          (let
              ((cmd (cddr (assoc 'list data))))
            (if cmd
                (call-process (map-slash-to-backslash (concat cmd " " file)) :wait nil)
              (message "なにもえらんでない。"))))))))
(global-set-key #\C-]  'buffer-sendto-dialog)

;; 全角スペースを使わない
;; http://www5e.biglobe.ne.jp/~fukafuka/xyzzy/
(defun transfer-auto-quad-space ()
  (interactive "*")
  (when (eq *this-command* 'self-insert-command)
    (let ((cur (preceding-char)))
      (if (eq cur #\ )
          (progn (forward-char -1) (delete-char) (insert #\SPC))))))

(add-hook '*post-command-hook* 'transfer-auto-quad-space)


;; exchange-region-and-selection
;; リージョンとセレクションとトグル変換
             (global-set-key '(#\C-x #\SPC) 'exchange-region-and-selection)
             (global-set-key #\C-F6 'exchange-region-and-selection)
             (set-function-bar-label #\C-F6 "選択<->Region")

;; diff
(setq ed::*diff-command-name*
      (map-slash-to-backslash (merge-pathnames "bin/diff.exe" (user-homedir-pathname))))

;; ステータスバーに文字コード表示
(setq *status-bar-format* "%t%c%u")

;; xml-mode 用
(push '(xml::msxsl 
"~A ~S ~S ~A" 
*msxsl-command* 
(get-buffer-file-name) 
(read-file-name "stylesheet: " :history 'stylesheet) 
(or xml::*xml-user-option* *msxsl-default-options*)) 
*xml-command-alist*)


「未整理の.xyzzy」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030626a.html

Xalan C++

2003-06-27

ねこめし日記 (2003/06/27)を読んでいたら、本題とは別の XSLT プロセッサ、Xalan-C について書かれている部分に目が行った。:p)

今手元では、XT やら Xalan やら msxsl.exe やら、話題の eXtyle やらが動いていて、私がゴニョゴニョする分にはどれでも大差無いみたいなんですが、XT も Xalan も Java 版で速度的に msxsl.exe に負けるのが悔しかったので(何故)、実行形式の Xalan ならばそれに対抗できるかもと思い、検索してみたらあっさり見つかりました。

このサイトを見てみると、Xerces の実行形式バージョン(Xercec-C)もあったので、いっそこれはこっちに乗り換えるのが得策と、ごっそりと落としてきました。まずは、Index of /dist/xalan-cから、Xalan-C_1_5-win32.zip(22MB) という巨大なものを落としました。次に、Index of /dist/xerces-c/stableから、一番新しい xerces-c_2_3_0-win32.zip(7.7MB) というのを落としてみました。

しかし、結果的にこれは間違いでした。Xalan-C が要求する Xerces-C のバージョンが違うために動作しませんでした。Xalan-C1.5 を動作させるために、Xerces-C2.2 が必要みたいです。気を取り直してIndex of /dist/xerces-c/stable/archives/Xerces-C_2_2_0から xerces-c2_2_0-win32.zip を落とし直しました。

それにしても何がいっぱい入っているのか知りませんが:p)、解凍してみるとやたらといろいろ入っています。カン(何)で必要そうなものだけを選んでパスの通ったディレクトリ(c:\bin\xalan-c)にコピーしました。ちなみに、xalan のほうは、ml-xalan\c\Build\Win32\VC6\Release 以下のファイル。xerces のほうは、bin 以下のファイルを選んで、同じディレクトリに放り込みました。:p)

こんな適当なことでいいのかどうか知りませんが、つか多分駄目なんだろうと思いますが、とりあえず手元の環境では素晴らしいスピードで動いています。

あとはこれをどうやってxml-modeから呼び出すかなんですが、そこらあたりになるとさっぱり駄目なヘタレな私です。:p)

「Xalan C++」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/06/diary_030627a.html