随感録 2001年2月

2001-02-01 (Thu)

昨日の朝から強烈で下痢と嘔吐感。うへー。昨日は医者に行って会社は休み。今日も昼から早退。21世紀に入ってから何かおかしい? 調子が悪いのは身体だけではないんだけど,とにかく体調が悪いのはかなわん。

会社の帰りに時計屋によって,電池交換に出してたのを引き取ってくる。

glibc-2.2.1のパッチは中断。eucJP/SJIS-UCS4変換表に手を入れ,文字集合記述ファイル (Character Set Description File) をそれに合わせると,localedefコマンドがロケール定義ファイルのLC_COLLATEカテゴリでエラーを出す。これはかなり難しい。

日本語EUCやシフトJISとUnicodeとの変換は,システムによって違いが結構ある。この場合,variationを許容して変換する方が望ましい。すなわち,U+2016, U+2225のいずれを受け取っても日本語EUCなら/xa1/xc2に変換すると。この線でなら検討する価値はありそう。

2001-02-04 (Sun)

昼から三宮。新しい名刺を注文。肩書きはやはり入れず。CDと卓上カレンダーを購入。

DNSキャッシュをLinux機にインストール。LAN上のマシンがそれぞれISPのDNSサーバーに問い合わせてたが,Linux機を経由するように変更。なかなかいい感じ。Linux機のnslookupが使えなくなったのが,ちょい謎。

2001-02-05 (Mon)

高齢者介護事業部の人間が退職したので飲み会。その後カラオケ。

2001-02-06 (Tue)

結婚おめでとう飲み会。なんか飲み会続いてますか? 身体はほぼ復調。

2001-02-10 (Sat)

昨日,別の種類の風邪が発症。これで3種類目。今度は鼻水くしゃみ。

2001-02-12 (Mon)

自分の望むように相手が感じることを期待するのは甘えているのではないかな? と思ったり。

私にとっても耳の痛い話だが。

確定申告を書いたり。

2001-02-13 (Tue)

残業しようと思ったが,体調は万全ではないらしい。株式の評価方法はいろいろあるが,経済的に意味のある方法はごくわずか。

djbdnsをアップデート。DJB tools : dnscache

make uninstallできないので,./conf-homeを書き換えておいた方がよさそう。

2001-02-16 (Fri)

依然として頭痛が痛い。風邪が一進一退? 昼からお出かけ。

この日記スクリプトをだいぶ書き換えたり。Webブラウザで編集できるようになった。使いたい人いる?

2001-02-17 (Sat)

昼からスタジオを借りる。一人だと1時間でもいい運動になる。

# Q's Nicolatter for X v1.7.2pre3 released

Tag(s): リリースノート

IIIMP実装の準備だけ。

2001-02-19 (Mon)

財務室の歓送迎会に寄してもらう。日本酒が効いたかえらく回る。

2001-02-20 (Tue)

# Q's Nicolatter v1.28 released

Tag(s): リリースノート

一太郎11プロフェッショナル画面のAltメニューがうまく働かない問題に対処した,ような。私は一太郎11は持ってないが,動いているらしい。

2001-02-23 (Fri)

休日が増えるらしい。やるやん。

# Linuxカーネル,東アジアの文字コード

Tag(s): Linux 文字コード 今日のリンク

カーネルを取ったり,EBCDICを調べたり。

Linux HeadQuarters
Linuxカーネルを集めている。acパッチもある。
Character Sets: Index
別にEBCDICだけではない。東アジアの文字集合,Unicode関係の情報もあり。

glibcも2.2.2に上げてみた。あんまり違いが分からない。

2001-02-24 (Sat)

新しい名刺が刷り上がる。デザインは特に変更なし,携帯の電話番号を入れたのと,Webサイトを変更。

MDプレイヤーを購入。

2001-02-25 (Sun)

昼から出ようかと思ってたが,やめにして部屋の片づけ。全く本棚が足りん。さて,どうしたもんか。

# POSTメソッドのリダイレクト

Tag(s): Ruby CGI

Ruby Earrings -- eRuby + Ruby CGI [4]

POSTメソッドによるリクエストに対してリダイレクトする(Locationヘッダーを返す)と,user agentがリダイレクト先に同じ内容でPOSTするので,リダイレクト先が信頼できる場合であっても,効率が悪そう。

user agentによってはリダイレクト先にGETメソッドでリクエストしなおすらしいが,それは期待できない,というか誤りとある。RFC 2616 HTTP/1.1 10.3.2 301 Moved Permanently; RFC 1945 HTTP/1.0 9.3 Redirection 3xx

HTTP/1.1なuser agentに対しては303 See Otherを返せばいいらしい。pre-HTTP/1.1なuser agentに対しては302 Foundを返すとGETで取り直してくれるかもしれない。RFC 2616 10.3.4

2000.05.20/cgi CGIで設定できるヘッダー

rubyで書くと,例えばこう;

  print "Status: ", (ENV['SERVER_PROTOCOL'] == "HTTP/1.1" ? "303" :
                  "302"), "\n"
  print "Location: #{uri}\n\n"

# Webでのメールフォーム

Tag(s): Ruby CGI Webデザイン

RubyでWebからメールを送信するスクリプトを書いてみる。例えばとほほのWWW入門などにもあるが,ヘッダに直にiso-2022-jpで書いていたりと,どうも今ひとつ。

本質的な部分は以下で全部。Rubyで書くとコンパクトにまとまる。

 71:   from = cgi['from'][0].strip
 72:   if from =~ /([a-zA-Z0-9]+\.)*[a-zA-Z0-9]+@([a-zA-Z0-9]+\.)+[a-zA-Z0-9]+/
 73:     from_addr = $&
 74:   else
 75:     from_addr = "unknown@unknown.unknown"
 76:   end
 77: 
 78:   from_name = cgi['name'][0]
 79:   body = cgi['body'][0].strip.split(/\r?\n/)
 80: 
 81:   open("|" + INJECTOR, "w") do |fp|
 82:     fp.print <<EOF
 83: From: #{from_addr}
 84: To: #{MAILTO}
 85: Subject: =?ISO-2022-JP?B?#{[e2j(SUBJECT)].pack("m").chomp}?=
 86: MIME-Version: 1.0
 87: Content-Type: text/plain; charset=ISO-2022-JP
 88: 
 89: #{e2j("メールアドレス: " + from)}
 90: #{e2j("お名前: " + from_name)}
 91: 
 92: EOF
 93:     body.each {|line|
 94:       fp.print e2j(line), "\n"
 95:     }
 96:   end

メールアドレスの検査が怪しいが,あとは容易い。

これを書いてるときに気付いたが,Kconv.kconv()はMIMEデコードをしてまうのね。NKF.nkf()を使うように日記スクリプトを書き換え。

2001.04.07/ruby sendmailの引数