メモの日々


2006年11月16日(木) [長年日記]

  • コーディングはしんどいがデバッグは楽しい。
  • Tracはチケットの「関係者」には必ずメイルが送信されてしまうようだ。送信しないようにNotify.pyを直したつもりなんだけど、まだ送信されてくる。なんでや。

[tdiary] RSSが指すURLが変

急に、本日記のRSS内のURLが http://ogawa.s18.xrea.com/tdiary/tb.cgi/ を指すようになった。この書き込みで元に戻るかな。

元に戻った。makerss.rb にバグがあるのかなあ。

(追記)

続き

[book] 日輪の遺産 (浅田次郎)

日輪の遺産 (徳間文庫)(浅田 次郎) 終戦間際、軍の最高幹部から極秘命令を受けた真柴少佐と小泉中尉が苦悩しながら任務を遂行する話。後半に登場し活き活きと描かれるマッカーサーが印象に残る。面白い。4点。

やること

  • デザイン変更
  • 保険
  • PHSのファームウェアアップデート
  • 健康診断
  • 蛍光灯

2006年11月19日(日) [長年日記]

  • 溜まっていたRSSフィードを久しぶりに読み切った!
  • デスクトップPCを久しぶりに液晶テレビに繋いだが映らない。仕方なく専用ディスプレイに繋いだが、こちらでも映らない。なにー。壊れたのか?

[tdiary] tDiaryをスナップショット版(2.1.4.20061110)へ

makerss.rbは最近バージョンアップしているようなので、tDiary全体をバージョンアップしてみた。ちょっとメモ。

  • jdate.rbはtdiary-contrib.tar.gz内にある。
  • refedit.rbはtdiary-contrib.tar.gz内にも無い。
  • misc/plugin/mimetex.rbを移行すること。mimetex.xgiに実行権限を付与すること。
  • category.rbを修正すること。

前回と同じ。

(追記)

linkcheck.rbも導入しないと。これはtdiary-contrib.tar.gz内にある。

[tdiary] RSSが指すURLが変 (2)

トラックバックを受けるとRSSファイル内のリンクのベースURLが http://ogawa.s18.xrea.com/tdiary/tb.cgi/ になってしまう。tDiaryを最新版にしても再現した。原因を調べたのでメモ。

別環境で試す

調査は別の環境で行おうとしたが、そちらでは再現しなかった。トラックバックを受けてもRSSのベースURLはおかしくならない。XREA固有の現象なのかも。

makerss.rbを読む

RSS内のベースURLは、makerss.rbのmakerss_update内にある

   uri = @conf.index.dup
   uri[0, 0] = @conf.base_url if %r|^https?://|i !~ @conf.index
   uri.gsub!( %r|/\./|, '/' )

というコードで決まっているようだ。@conf.indexは設定ファイルで指定する@indexのことだろう。これの設定値は'./'になっていた。そすると、ベースURLには@conf.base_urlの値が使われることになりそう。

@conf.base_urlとは

@conf.base_urlはtdiary.rb内の

     def base_url
        return '' unless @cgi.script_name
        if @cgi.https?
           port = (@cgi.server_port == 443) ? '' : ':' + @cgi.server_port.to_s
           "https://#{ @cgi.server_name }#{ port }#{File::dirname(@cgi.script_name)}/"
        else
           port = (@cgi.server_port == 80) ? '' : ':' + @cgi.server_port.to_s
           "http://#{ @cgi.server_name }#{ port }#{File::dirname(@cgi.script_name)}/"
        end.sub(%r|/+$|, '/')
     end

という所で決まっているみたい。ということは、@cgi.script_nameがおかしいということになる。@cgi.script_nameはhttpdから渡される環境変数SCRIPT_NAMEそのものだ。

SCRIPT_NAMEを調べる

次のスクリプトでSCRIPT_NAME(とついでにPATH_INFO)の値を調べてみた。

#!/bin/sh
echo Content-type: text/plain
echo
echo SCRIPT_NAME=$SCRIPT_NAME
echo PATH_INFO=$PATH_INFO

http://ogawa.s18.xrea.com/misc/env.cgi/aaa/bbb にアクセスするとSCRIPT_NAMEの値は「/misc/env.cgi/aaa/bbb」になってしまう。これだ。ここは「/misc/env.cgi」になるのが正しい。つまりXREAが悪いということのようだ。

検索するとCgi プログラムへ渡される環境変数についてというスレッドが見つかった。2002年の投稿だが、本サーバでもここに書かれているのと同じ挙動を示し、状況は変わっていないようだ。

対策

原因は分かった。実現したいのはトラックバックを受けてもRSSファイルのベースURLがおかしくならないようにすることだ。最初のコードを見ると、@conf.index.dupがhttp://で始まっていれば@conf.base_urlが使われなくなるのでSCRIPT_NAMEの影響を受けなくなるはず。だから、tDiaryの設定ファイルに

@index = 'http://ogawa.s18.xrea.com/tdiary/'

と記述すればいいのではないか。

記述してみた。これでトラックバックを受けても大丈夫なようになった模様。

やること

  • デザイン変更
  • 保険
  • 健康診断
  • 蛍光灯

2006年11月21日(火) [長年日記]

  • 風邪気味。
  • スクリプトの直しが大変で本体の実装に手が付けられない。

[windows] MS IMEのキー設定

漢字変換の際、F6〜F10キーやカーソルキーに手が伸びているんだけど、これらのキーは使わないようにしてみようかなあと思いメモ。

MS IMEのキー設定は、[コントロールパネル]->[地域と言語のオプション]->[言語]->[詳細]などで表示される「テキスト サービスと入力言語」ダイアログの「設定」タブのキーボードの欄で「Microsoft IME Standard 2003」を選択して「プロパティ」ボタンを押すなどして表示される「Microsoft IMEスタンダードのプロパティ」ダイアログの「全般」タブにある「設定」アイコン(なんでここだけアイコンなんだろう…)を押すなどして表示される「Microsoft IME詳細プロパティ」ダイアログの「キー設定」タブで参照できた。

ここから、おれの使いそうなキーバインドを抜き出しておく。

現状これでもできる内容
F6Ctrl-Uひらがなに変換
F7Ctrl-Iカタカナに変換
F8Ctrl-O半角に変換
F9Ctrl-P全角英数に変換
F10なし半角英数に変換
Ctrl-L文節を伸ばす
Ctrl-K文節を縮める
Ctrl-N文節の確定
Ctrl-E前の変換候補

ちなみに、キー設定は「ATOK」にしています。

[etc] 「2007年度、新加入選手のお知らせ」 (名古屋グランパスエイト)

標記の件につきまして、2007年度の新加入選手として、小川佳純選手(明治大)が内定しましたのでお知らせいたします。

経歴 市立船橋高校(千葉)→明治大学

この小川選手は2003年にメモした小川選手みたい。プロになるんだなあ。頑張ってるなあ。そんだけ。

やること

  • デザイン変更
  • 保険
  • 健康診断
  • 蛍光灯

2006年11月22日(水) [長年日記]

[soft] VMWare 5.5でゲストOSの時計が遅れる (2)

しばらく問題なかったのだけれど、突然また遅れるようになってしまった。yum updateでカーネルがバージョンアップしたからだろうか。

で、以前メモしたページを見てみたら、

VMware Tools をインストールした後で、 .vmx ファイルに以下の設定を追加してみて下さい。

tools.syncTime = "TRUE"

というコメントが書き込まれていて、これを試してみたら遅れなくなった。素晴らしい。なんでこの機能をデフォルトでオンにしていないんだろう。

[ものわすれ] 一矢

「一矢報いる」と書きたくて「いちや」と入力したが変換してくれない。正しくは「いっし」だった。そうかも。この読み方をものわすれ。

やること

  • デザイン変更
  • 保険
  • 健康診断
  • 蛍光灯

2006年11月24日(金) [長年日記]

[unix][c] bswap_

developerWorksのLinuxアプリケーションの64ビット・システムへの移植(左のURLはリンク切れ。新しいURL→ http://www.ibm.com/developerworks/jp/linux/library/l-port64/)に、

例えば、htonl(3)、ntohl(3)は、32ビット整数の変換に使用されます。同様に、htons(3)、ntohs(3)は、16ビット整数に使用されます。ただし、64ビットについては、標準の関数セットはありません。しかし、Linuxには、ビッグ・エンディアンとリトル・エンディアンの両方のシステムについて、次のようなマクロが用意されています。

  • bswap_16
  • bswap_32
  • bswap_64

とあった。64ビットの変換にはこのマクロを使うといいかも。ただ、bswap_ は htons などとは違いマシンのエンディアンとは関係なく必ずバイト列を逆転させるようだ。

やること

  • デザイン変更
  • 保険
  • 健康診断
  • 蛍光灯