人生投げてます?な日記 in October, 2004

さいととっぷへごー!

<< < 2004-10 > >>
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
TOPIC-LIST
15(Friday)
お仕事[WORK]
RanceY-ゼス崩壊-
K-Meleon
14(Thursday)
お仕事[WORK]
K-Meleon 0.9b
日記関係
神樹の館
13(Wednesday)
お仕事[WORK]
こなたよりかなたまで
12(Tuesday)
お仕事[WORK]
K-Meleon
こなたよりかなたまで
11(Monday)
Kamailに自動転送機能を組み込んでみよう
夕緋ノ向コウ側
こなたよりかなたまで
10(Sunday)
Kamailとメールの転送
夕緋ノ向コウ側
9(Saturday)
お買い物[Shopping]
夕緋ノ向コウ側
8(Friday)
お仕事[WORK]
とらいあんぐるハート DVD Edition
7(Thursday)
お仕事[WORK]
神樹の館
6(Wednesday)
お仕事[WORK]
神樹の館
5(Tuesday)
お仕事[WORK]
神樹の館
4(Monday)
お仕事[WORK]
神樹の館
3(Sunday)
XP SP2とexecute-shell-command
神樹の館
2(Saturday)
Windows Update
お買い物[Shopping]
神樹の館
1(Friday)
お仕事[WORK]
帰宅後[Shopping]
神樹の館
どうでもいいが
Generated by nDiary version 0.9.4

2004.10.01 (Fri)

1 おはようございます
6:00、起床。んー、眠いー
外は晴れ模様。台風一家やねー
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「10月ですね」
カレン「今年ももうそんなところまで来てたのね」
LKPTeam「早いですねー」
カレン「ま、半分くらいふらふらしてたけどね(^^;」
LKPTeam「あぅ」
LKPTeam「そういういじめ方はずるいかと」
カレン「あらそう?」
LKPTeam「泣いちゃいますよ?」
カレン「嘘ね」
LKPTeam「ぐぅ」
カレン「それはともかくとして」
カレン「明日は休み?」
LKPTeam「なんか、そういう風になっちゃったみたいです」
カレン「よかったじゃない」
LKPTeam「いや、その代わりに別の日が出勤日になってますからね」
カレン「美味しいだけの話じゃないのね(^^;」
LKPTeam「当然でしょう(^^;」
LKPTeam「って、そろそろ時間ですね」
カレン「ん、いってらっしゃいな」
LKPTeam「あーい」
2 お仕事...とか[WORK]
ISO内部監査1日目。オープニングミーティング?に参加させられる。私が参加してもなんにもならないんだけど、上司に来いといわれれば断れるわけもなく。ミーティングが終わったら真っ先に出てくる自分とか(^^;
サイトの更新履歴を保存しておくように言われたので、フォーマットを作って変更した箇所を記録。ISOの環境方針が少し変更になったらしいのでその変更の履歴を保存
勤怠管理の方法が新しくなる。その絡みで新しいタイムレコーダーが届く。IDカードも一緒に。詳しい説明は12日にあるらしい
午前中は暇暇だったけど、終業時間間際は忙しかったな
3 帰宅後...とか[Shopping]
帰ったら本が届いていたり
今日のお買い物は……
一撃殺虫!!ホイホイさん 初回限定版 メディアワークス ISBN4-8402-2767-5
……でしたっ
しかしアレですな、本の方は別にいいけど、一緒に付いてたDVDのケースは如何なものか。一昔前のアダルトビデオのケースと作りが一緒っぽいんだけど……(笑)
ちゃんとしたケースの方がよかったなぁ。ついでに言うならDVDの内容もアレでソレだ。ああいうのよりはもっと短い、スピード感のあるムービー形式にしてくれた方がよかったかも、とか
ま、所詮おまけだし、どうでもいいか
4 神樹の館...とか[GAME]
昨日の続きからまた少しだけ
そういえばパッチ当てるの忘れてるな。明日にでも当てておこう
5 どうでもいいが
North Windのオープニング02の曲は素晴らしい出来だと思う。ホントにどうでもいいな(^^;
$Date: 2004-10-02 00:49:14 +0900 (Sat, 02 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041001.diary $
ぺーじとっぷへごー

2004.10.02 (Sat)

1 おはようございます
9:00、起床。うーん、よく寝たー
外はあいにくの曇り空。というか雨も降ってますよ?
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「久しぶりの2連休ー」
カレン「そうねー」
LKPTeam「今日はいい機会なので、WindowsXP SP2でも入れてみようかと」
カレン「もういれるの?」
LKPTeam「不具合が出たらその時はその時で、ということで」
カレン「大丈夫かなぁ」
LKPTeam「問題ないとは思いますけどね」
2 Windows Update...とか[PC]
XP SP2を入れる前に問題が!Windows Updateのバージョンが上がってる(^^;
新しいWindows Updateのためのコンポーネントをインストールして再起動。それからWindows Updateして別の更新されたアップデートをインストールしてまた再起動。で、ようやくXP SP2が表示されるようになった(^^;
まぁ、何ヶ月もWindows Updateを動かしてなかったからなぁ、しょうがないか
その後無事にSP2はインストール完了しました。不具合とかは特になし。これから出てくるのかもしれないけど……
3 お買い物...とか[Shopping]
今日のお買い物ー
陰陽師 1-11巻 白泉社
……とか。いや、なんとなく(^^;
4 神樹の館...とか[GAME]
のらりくらりと麻子ルートへ。こういう雰囲気はすごく好みだ。やはり日本の怪奇ものはいい……
$Date: 2004-10-03 00:58:50 +0900 (Sun, 03 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041002.diary $
ぺーじとっぷへごー

2004.10.03 (Sun)

1 おはようございます
7:00、起床。んー、なぜにこんな時間に目覚めるかな
外は曇り空。雨も少し降ってるみたい
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「日曜日なのになんでこんな朝早くに目が覚めますか!」
カレン「あたしに言われてもね(^^;」
LKPTeam「うー、なんかすごく損をした気分」
カレン「早起きしたんだから得なんじゃないの?」
LKPTeam「早起きで特をした経験はあまり覚えがないですね」
カレン「あっそ」
カレン「というか、あたしにとってはどうでもいい事よね」
LKPTeam「がーん?!」
LKPTeam「ま、まぁ、確かにそうかもしれないですけど」
カレン「のんびり音楽でも聴いてなさいな」
LKPTeam「うー」
2 XP SP2とexecute-shell-command...とか[xyzzy]
execute-shell-commandを使って、bashからrubyを起動させてndiaryを動かそうとすると何も反応が無くなる時がある。SP2を入れる前はそんな事はなくなったのではやくも弊害が(笑)
execute-shell-commandを使う場合でも、:outputオプションを使わない場合は普通に動くっぽい。コマンドの結果を取り込む時に何か引っかかるのかな
2chのxyzzyスレにもSP2を入れてから動かなくなった報告が上がってた気がしたし、SP2のDEP機能に引っかかってるんだろうな、勝手に推測してみる
ということで、対応策。call-processを使う
(let ((shell-string (concat "bash -c '" *command-string* "'"))
      (output-buffer (get-buffer-create "hogehoge")))
  (execute-shell-command shell-string :output output-buffer))
こういうのは、
(let ((shell-string (concat "bash -c '" *command-string* "'"))
      (output-file "hogehoge.tmp")
      (output-buffer (get-buffer-create "hogehoge")))
  (call-process shell-string :output output-file :show :minimize :wait t)
  (set-buffer output-buffer)
  (insert-file-contents output-file t)
  (delete-file output-file :if-does-not-exist :skip))
こんな感じに置き換える。コマンドの結果を直接取り込むのではなくて、一度ファイルに書き込んでから、その書き込んだファイルの内容をバッファに書き込む、という手順にしてみた。一応動いてるみたいなのでよしとしよう
DEPを無効にすれば済む話なんだけど、DEPの例外にxyzzyを追加すると、他のアプリケーションで正しく動かないプログラムを全部例外に追加する羽目になって面倒だし、システム全体でDEPを無効にするのは今まで通りでいいんだろうけどせっかくのデータ実行防止機能を無効にするのもアレだし(*1)、あえてDEPを有効にしたままでの回避策を考えてみた。というか回避策というほどのものでもないな(^^;
少し調べてみたら、どうもbashがDEPに引っかかってるみたい。bashからのメッセージが、
bash fork: Resource temporarily unavailable
なんて出てくる。……これはxyzzyの問題ではないな。cygwin.dllも1.5.9-1だし、最新版だと違うかもしれないけど、アップデートするのは面倒だからこのままで行こう(^^;
3 神樹の館...とか[GAME]
麻子ルートを最後まで。んー、いいのか、アレで。いいんだろうな……。雰囲気はすごくいいねって、これは昨日も言ってたか
双子ルート。うーん、うーん(^^;
次。紫織。いいないいな、こういう雰囲気は(^^;
$Date: 2004-10-04 00:12:26 +0900 (Mon, 04 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041003.diary $

*1: どの程度効果があるのかは置いといて
ぺーじとっぷへごー

2004.10.04 (Mon)

1 おはようございます
6:00、起床。んー、眠い
外はどんより曇り空。いまいちな天気ですなー
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「なんというか、週の始まりがどんよりした天気だといまいち気力が湧いてこないですね」
カレン「……」
LKPTeam「……なんですか?」
カレン「晴れても気力なんて湧いてこないんじゃないの?(^^;」
LKPTeam「がーん?!」
LKPTeam「そ、そんなことはないですよ?」
カレン「そうかなぁ」
LKPTeam「うぅ……信用されてないですかー」
カレン「まぁね」
LKPTeam「ひどいー」
カレン「そんなことよりも、そろそろ準備した方がよくない?」
LKPTeam「冷たいですよー」
カレン「普通だと思うけど」
LKPTeam「うぅ、そしてそっけない」
カレン「普通だってば(^^;」
LKPTeam「あぅ」
あまり気分が乗らないけど、仕事に行くかー
2 お仕事...とか[WORK]
内部監査は2日目。私の部署には午後に来る予定。それまではIDカードに名前でも打ち込んでよう
ISO内部監査。課員にはあまり聞かれないみたいなんだけど、それでも何問か設問に詰まる。本審査の時には詰まらないようにしよう
3 神樹の館...とか[GAME]
いよいよ最後。うん、最後が一番好きだな。心地よい余韻がしばらく続きそう。久しぶりにもう一度プレイしたくなる、そんなルートだ
そして久方ぶりに壁紙を変えてみる(笑)<もちろん竜胆が樹に腰掛けてる絵だ
んー、明日は竜胆ルートを再プレイだな
$Date: 2004-10-05 01:00:56 +0900 (Tue, 05 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041004.diary $
ぺーじとっぷへごー

2004.10.05 (Tue)

1 おはようございます
6:00、起床。ん、今日も眠いですね!
外はどんより曇り空。今日もか……
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「うー、天気の悪い日が続きますね」
カレン「そうねー」
LKPTeam「そろそろ晴れてくれても良さそうなのにー」
カレン「我慢しなさいよ(^^;」
LKPTeam「むぅ」
カレン「それよりもほら、そろそろ時間じゃない?」
LKPTeam「あぅ、もうそんな時間ですかー」
カレン「朝からエロげー起動させて音楽聞いてるからじゃないの?(^^;」
LKPTeam「うぅ……だってこの音楽気に入ってるんですよ」
カレン「それは分かるけど……(^^;」
LKPTeam「はぁ、それじゃあ準備しましょうか」
仕事に行くかー
2 お仕事...とか[WORK]
……仕事がありませーん(笑)。ISOの書類を何枚か作ってそれで今日はもうお終い。いいのか、こんなんで(^^;
3 神樹の館...とか[GAME]
竜胆ルートを再プレイ
竜胆ルートの後半に流れてくる「神樹の森」というBGMを聴いてるとゲームを終わらすのがもったいない雰囲気になってしまって大層困る(笑)
$Date: 2004-10-06 00:27:36 +0900 (Wed, 06 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041005.diary $
ぺーじとっぷへごー

2004.10.06 (Wed)

1 おはようございます
6:00、起床。ん、眠いね、相変わらず眠い
外は雨模様。最近あまりパッとしない天気が続いてるなぁ
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「ようやく週の半ば、って感じですね」
カレン「半ば、ねぇ」
カレン「今日も入れるとまだ半分には届いてないと思うんだけど?」
LKPTeam「確かに」
LKPTeam「でも気分的にはそんな感じですね」
カレン「ふーん」
LKPTeam「今週は土曜日が休みですから楽かも、とか思ってるのも影響してるのかな?」
カレン「あー、そうか」
カレン「今週の土曜日は休みなのね」
LKPTeam「先週に引き続いて、です」
カレン「先週は突発的だったからねー」
LKPTeam「2週続けて休みはやっぱりいいですよね」
カレン「週休2日制の会社にすればよかったのに(^^;」
LKPTeam「そういう会社は募集を見かけませんでした!」
カレン「じゃあしょうがないよね」
LKPTeam「我慢も大切ですね」
カレン「そうね」
カレン「っと、そろそろ時間じゃない?」
LKPTeam「うーい、とりとめのない話をしてたらいつの間にか」
カレン「朝は忙しいからね(^^;」
さて、じゃあ仕事に行くかー
2 お仕事...とか[WORK]
今日もISO関係の書類を作ったり。その他に外出する部長の代わりに会議に出席したり。午後から新しいPCを買い出しに外出したり。さすがにDELLとかHPの通販よりは高く付くけど、今回は時間がないのでさくっと近場で揃えることに。インストールとか諸々の設定は明日の午前中にしよう
3 神樹の館...とか[GAME]
今日ものらりくらりと竜胆ルート。はぁ、しやわせだ……(^^;
$Date: 2004-10-07 00:36:01 +0900 (Thu, 07 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041006.diary $
ぺーじとっぷへごー

2004.10.07 (Thu)

1 おはようございます
6:00、起床。んー、眠いなぁ
外は晴れ模様。風が少しあるっぽいけど、そんなに気にはならないでしょう
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日と、明日頑張れば3連休ー」
カレン「珍しいわよね、3連休なんて」
LKPTeam「土曜日が休みですからねー」
カレン「前の会社では考えられなかったわね」
LKPTeam「そうですね」
LKPTeam「前の会社は客商売ですから、こういう時はかき入れ時で休まなかったですからねー」
カレン「ま、休みでもすることは一緒だと思うけどね」
LKPTeam「がーん?!」
LKPTeam「そ、それは言いっこなしデスよぅ」
カレン「カタカナになってるわよ(^^;」
LKPTeam「あぅあぅ」
2 お仕事...とか[WORK]
昨日買ってきたPCの設定をしようと思ってWindows2000をインストール……しようとしてたんだけど、どうしてもインストール途中でコケる。もう1度最初からやっても途中でブルースクリーンが出てきてインストールに失敗する
ブルースクリーンに出てくるエラーメッセージをGoogleで調べてみれば、どうもメモリが悪さをしている様子。試しにmemtest86をDLして実行してみればエラーの山が(笑)
購入した店に↑を一から説明して本体そのものを交換してもらう。いや、メモリだけ交換しようとしてたんだけど、向こうはメモリ以外の問題の可能性も捨てきれないので、本体丸ごと交換したいとのことなので、まぁいいか、とか。ついでにWindows2000のインストールと検証もやってくれるそうなので楽でいいね
それからISOの月例会議に参加。うーん……
午後、PCを購入した店から連絡があったので本体の交換。会社に戻ってきてさっそく動作の確認。おおー、ちゃんと動いてる……って当たり前か
それからOfficeなんかをインストールして引き渡し先に持って行って設置して終了。あー疲れた
3 神樹の館...とか[GAME]
まぁ、相変わらず竜胆ルートなわけですが。そろそろランスに戻らないとな……
$Date: 2004-10-08 00:53:00 +0900 (Fri, 08 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041007.diary $
ぺーじとっぷへごー

2004.10.08 (Fri)

1 おはようございます
6:00、起床。うん、今日もしっかり眠いです
外はあいにくの曇り空。雨が降るよりはマシか
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「さて、頑張れば明日からお休みということで」
カレン「昨日も言ってたわよ、それ」
LKPTeam「忘れないように覚えておかないと」
カレン「忘れるわけないでしょうに(^^;」
LKPTeam「念には念を入れて、です」
カレン「はいはい、そうね」
LKPTeam「むー、なんかバカにされてる気が」
カレン「してないから」
LKPTeam「じゃ、今日も頑張って仕事しますか」
カレン「はい、いってらっしゃいな」
LKPTeam「あーい」
2 お仕事...とか[WORK]
ISOの書類のチェックとか、この前替えたPCをまた元に戻したりとか。結構バタバタしてたかも
3 とらいあんぐるハート DVD Edition...とか[GAME]
……なぜにランスをやらずに違うゲームをしてますか私は……(^^;
$Date: 2004-10-09 01:20:47 +0900 (Sat, 09 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041008.diary $
ぺーじとっぷへごー

2004.10.09 (Sat)

1 おはようございます
7:00、起床。むー、休みなのにー(^^;
外はどんより曇り空。台風ですなぁ
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「3連休初日ですー」
カレン「特にすることのない3連休ね」
LKPTeam「あぅあぅあぅ」
LKPTeam「そそそそれは少し違うのではないかと思うのですが」
カレン「まぁ、そうでなくても台風の所為で何も出来ないと思うけどね」
LKPTeam「そう!台風の所為ですよね」
カレン「よしんば、台風が来なくてもいつもの通り何もすることなんてないのだけれど」
LKPTeam「うわーん」
カレン「……少しいじめすぎ?(^^;」
LKPTeam「あんまりだー」
2 お買い物...とか[Shopping]
台風が来る前に、とか(^^;
今日のお買い物は……
Sonata Arctica / RECKONING NIGHT
Baseson / 夕緋ノ向コウ側
……でしたっ
カレン「というか、なんでエロげーまで買ってるのよ!」
LKPTeam「あぅー」
カレン「ランス6をやるんじゃなかったの?」
LKPTeam「し、」
カレン「……」
LKPTeam「衝動買い?」
カレン「……はぁ」
LKPTeam「いやだって、最後の1本だったんですよ」
カレン「苦しい言い訳ね」
LKPTeam「うわーん、信じてもらえないよぅ」
カレン「そもそも最後の一本だからと行って買う必要はないでしょう?」
カレン「欲しければ通販でもすればよかったんだし」
LKPTeam「あぅ」
LKPTeam「そんなもっともな意見を言われると何も言い返せないですが」
カレン「ダメダメね」
LKPTeam「あぅー」
まぁ、そんな日もあるさ(^^;
3 夕緋ノ向コウ側...とか[GAME]
インストール中にいきなりPCが再起動して焦ったり。どうもDVD-ROMドライブがイカレてるっぽいな……早めに交換しないとな
再起動後、もう一度インストールしたら何事もなく完了。うん、こうでなくっちゃ
さてシステムですが、バックログあり、オートモードありと普通っぽいんだけど、メッセージ表示するウィンドウに声の再生をするボタンがあるんだけど、これの意義があまりよく分からない。バックログ中に声のある文章の先頭にアイコンが付いてて、それを押せばバックログ中でも声の再生は出来るのだからメッセージウィンドウに付けててもあまり意味はないと思うんだけど。強いて言えばメッセージウィンドウに表示できる文章が他のエロげーに比べて少し多めだからバックログにまだ表示されていない、メッセージウィンドウにある文章の声の再生をするために使うのかな?それにしても再生できるのは再生したい声を表示した直後しか使えないし、それから別の文章が表示されると、バックログにメッセージが表示されるまでは声の再生が出来なくなるんだからあまり使い道はないと思うんだけどなぁ、とか。またどうでもいいことを長々と(^^;
オートモード中に非アクティブに変わると動作が止まるのはよくありませんな。あとセーブ、ロードがシステム画面からしかできないのはどうかと。出来れば声の再生ボタンなんて消してセーブ、ロードボタンをメッセージウィンドウに表示するようにすればよかったのに
ゲームを進めるのは明日にしよう(*1)……
$Date: 2004-10-10 09:03:49 +0900 (Sun, 10 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041009.diary $

*1: というか、寝落ちしてこれを書いてるのが次の日の朝なんだが
ぺーじとっぷへごー

2004.10.10 (Sun)

1 おはようございます
8:30、起床。うーん、まだ寝足りないかも
外は雨模様。あめーあめー
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「ということで、連休中日です」
カレン「雨だけどね」
LKPTeam「どこにも行けないですね」
カレン「行こうと思えばいけるでしょ?」
LKPTeam「それはそうですけど」
LKPTeam「でももうお金が……」
カレン「無駄遣いばっかりするからでしょ」
LKPTeam「あぅー」
カレン「ま、今日明日は大人しく家でごろごろしてる事ね」
LKPTeam「エロげーもあることですしね」
カレン「……」
LKPTeam「あ、あぅ」
2 Kamailとメールの転送[xyzzy]
について考えてみる。自動振り分けは出来るんだから、自動転送もできるはず。……あまり関係ないかもしれないけど(笑)
振り分け定義とは別に自動転送用のルールファイルを作って、それを元にサマリウィンドウで転送定義用のルールファイルを適用していけばいいのではないかと
本当なら振り分けとかのルールもみんな統一的に取り扱えるよう拡張すれば後々楽なんだろうけど、それは非常に面倒なのでやめておく(^^;
それと以前、Kamailのコードをいじった時もえらい苦労したから、ちゃんとコードを読んで、見通しを立ててからいじらないとあとで必ず泣く羽目になるな(笑)
もう少し構想を練ってみよう
3 夕緋ノ向コウ側...とか[GAME]
なんとなく沙雪ルートから始めてみようとか。んー、少し古いような感じ?悪くはない、むしろ大好きな方だけど、ちょっとだけ古い、そんな感じを受けるなぁ。しかしこういう追い込まれ方は大好きだ(笑)
次は諏訪ルート。まぁ……いいんじゃないかな。最初のルートよりインパクトは薄れるよね、どうしても
$Date: 2004-10-11 00:57:05 +0900 (Mon, 11 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041010.diary $
ぺーじとっぷへごー

2004.10.11 (Mon)

1 おはようございます
8:00、起床。うーん、うーん(^^;
外はどんより曇り空。台風一過、とはいかなかったらしい
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「連休最終日ー」
カレン「今日はどこかに出掛ける?」
LKPTeam「うーん……」
カレン「まぁ、お金もないし天気もあまりよくないし、出掛けるにはあまりよくないコンディションだけど」
LKPTeam「そんな事言われたら出掛ける気がなくなるじゃないですか」
カレン「じゃあやめたら?」
LKPTeam「むー」
カレン「いつも通りの休日って所ね」
LKPTeam「何もせずにぼーっとするわけですか」
カレン「好きでしょ?(^^;」
LKPTeam「あぅー」
好き……なわけじゃあないとおもうんだけど(^^;
2 Kamailに自動転送機能を組み込んでみよう...とか[xyzzy]
ルールに基づいて指定したメアドにメールを転送する処理は出来た(*1)……けど、別の問題が。
転送したメールを移動させるフォルダをあらかじめ指定しておき、自動転送処理したメールは指定したフォルダに移動させるか、あるいは転送したメールのメッセージIDを記憶しておいて、転送したメールはそのままにしておいて、次回の自動転送処理の時に記憶しておいたメッセージIDを持つメールは自動転送処理から除外するか、どちらがいいだろう
どちらにもメリット、デメリットがあるなぁ……
とりあえず、メッセージIDを記憶しておいた方が楽そうだから、転送済みメールのメッセージIDを記憶しておいて移動とかはせずに、記憶しておいたメッセージIDを持つメールは転送処理からは除外する方向で詰めてみよう
;;; -*- MODE: Lisp; Package: EDITOR; -*-
;;;
;;; kamail-transfer.l
;;;
;;; by LKPTeam
;;;
 
(provide "kamail/kamail-transfer")
 
(in-package "kamail")
 
(defvar *kamail-rule-transfer-file-name* "TransRules"
  "転送ルールの定義ファイル名")
(defvar *kamail-rule-transfer-file*
  (merge-pathnames *kamail-rule-transfer-file-name* *kamail-data-file-path*))
(defvar *kamail-transfer-rules* nil
  "転送ルールの定義リスト")
(defvar *kamail-forward-from* nil
  "転送時のFROM欄")
 
(defvar *kamail-transfer-msgid-list-file-name* "TransMsgId"
  "転送済みメールのメッセージIDの保存ファイル名")
(defvar *kamail-transfer-msgid-list-file*
  (merge-pathnames *kamail-transfer-msgid-list-file-name* *kamail-data-file-path*))
(defvar *kamail-transfer-msgid-list* nil)
 
(defvar *kamail-auto-transfer-always-copy* nil)
 
(defun kamail-transfer-check-msgid (msgid)
  (when (car (member msgid *kamail-transfer-msgid-list* :test 'string-equal))
    (return-from kamail-transfer-check-msgid t))
  (push msgid *kamail-transfer-msgid-list*)
  nil)
 
(defun kamail-read-transfer-msgid-list ()
  (let (filename line list)
    (message "Loading transfer message id list ...")
    (setq *kamail-transfer-msgid-list* nil)
    (setq filename *kamail-transfer-msgid-list-file*)
    (when (file-exist-p filename)
      (with-open-file (s filename :direction :input)
        (while (setq line (read s nil))
          (push line list))))
    (setq *kamail-transfer-msgid-list* (reverse list))
    (message "Loading transfer message id list ... done.")))
 
(defun kamail-write-transfer-msgid-list ()
  (let (filename word)
    (message "Saving transfer message id list ...")
    (setq filename *kamail-transfer-msgid-list-file*)
    (with-open-file (s filename :direction :output
                       :if-does-not-exist :create)
      (dolist (word *kamail-transfer-msgid-list*)
        (format s "~S~%" word))
      (message "Saving transfer message id list ... done."))))
 
(defun kamail-read-transfer-rules ()
  (interactive)
  (let (filename
          line
          list)
    (message "Loading transfer rules ...")
    (setq *kamail-transfer-rules* nil)
    (setq filename *kamail-rule-transfer-file*)
    (when (file-exist-p filename)
      (with-open-file (s filename
                         :direction :input)
        (while (setq line (read s nil))
          (push line list))))
    (setq *kamail-transfer-rules* (reverse list))
    (message "Loading rules ... done.")))
 
(defun kamail-write-transfer-rules ()
  (let (filename
          word)
    (message "Saving rules ...")
    (setq filename *kamail-rule-transfer-file*)
    (with-open-file (s filename
                       :direction :output
                       :if-does-not-exist :create)
      (dolist (word *kamail-transfer-rules*)
        (format s "~S~%" word))
      (message "Saving rules ... done."))))
 
(defun kamail-add-transfer-rule (dest field content)
  (push (list dest field content) *kamail-transfer-rules*)
  (kamail-write-transfer-rules))
 
(defun kamail-mail-transfer-p ()
  (let ((status (kamail-status-get)))
    (unless status
      (return-from kamail-mail-transfer-p))
    (cond ((char= status *kamail-status-char-unseen*)
       *kamail-transfer-unseen-mail*)
      ((char= status *kamail-status-char-need-reply*)
       *kamail-transfer-need-reply-mail*)
      (t
       t)
    )))
 
(defun kamail-apply-transfer-rules (&optional copy)
  (interactive)
  (setq copy (or copy *kamail-auto-transfer-always-copy*))
  (save-excursion
    (goto-char (point-min))
    (while (not (or (eolp) (eobp)))
      (let (num transfer)
        (setq num (kamail-summary-getnum))
        (when num
          (when (kamail-mail-transfer-p)
            (setq transfer (kamail-study-transfer-rules (parse-integer num)))
            (when transfer
              (let ((confirm *kamail-send-always-confirm*))
                (kamail-view-mail)
                (kamail-transfer-forward transfer)
                (when confirm
                  (setq *kamail-send-always-confirm* nil))
                (kamail-transfer-create-and-send-buffer t)
                (when confirm
                  (setq *kamail-send-always-confirm* t))
                (kamail-select-window-summary)))))
        (unless (forward-line 1)
          (return))))
    ))
 
(defun kamail-study-transfer-rules (num)
  (let (header msgid dest)
    (when (setq header (kamail-summary-header num))
      (setq dest (kamail-study-transfer-header-rule header))
      (when (and dest
                 (setq msgid (get-header-value "message-id" header))
                 (not (kamail-transfer-check-msgid msgid)))
        (return-from kamail-study-transfer-rules dest))
      (return-from kamail-study-transfer-rules nil))))
 
(defun kamail-study-transfer-header-rule (header &optional from)
  (setq from (or from *kamail-folder-current*))
  ;(message-box (format nil "~S" (list header from)))
  (when header
    (dolist (x *kamail-transfer-rules*)
      (let ((dest (car x))
        (field (nth 1 x))
        (content (nth 2 x))
        targ)
        (setq targ (get-header-value field header))
        (when (and targ
                   (string-match content targ))
          (return-from kamail-study-transfer-header-rule dest))))))
 
(defun kamail-transfer-forward (tofw)
  (interactive)
  (let ((buffer (selected-buffer))
    (hash (header-to-alist))
    ref id to to-name osubject subject date from ng group cc oto occ)
    (and (kamail-mail-status-forwarded)
     (kamail-summary-status-forwarded))
    (kamail-create-draft-buffer)
    (switch-to-buffer *kamail-buffer-draft*)
    (setq kamail-draft-reply-header hash)
    (multiple-value-setq (osubject id from oto occ date ref ng)
      (kamail-draft-header-values hash))
    (setq to tofw)
    (setq to-name (get-header-value to *kamail-address-alist*))
    (when to-name
      (setq to (format nil "~A <~A>" to-name to))
    )
    (setq subject (concat "Fw: " osubject))
    (kamail-draft-format-header *kamail-forward-from*
                to cc subject ng nil ref)
    (insert (kamail-format-header-string hash
                     *kamail-forward-header-format*))
    (when *kamail-forward-footer-format*
      (save-excursion
    (insert (kamail-format-header-string hash
                         *kamail-forward-footer-format*))))
    (when *kamail-signature-auto-insert*
      (kamail-insert-signature))
    (kamail-cite-body nil
              (buffer-name buffer))
  ))
 
(defun kamail-transfer-create-and-send-buffer (&optional quit)
  (interactive)
  (set-buffer-modified-p nil)
  (kamail-create-send-buffer)
  (and (kamail-send-buffer *kamail-sent-folder*)
       quit
       (kamail-draft-return-buffer)))
 
(defun kamail-transfer-add-rule ()
  (interactive)
  (let ((header (header-to-alist))
    dest
    field
    value)
    (setq dest
      (completing-read "Foward to: "
                       *kamail-address-alist*
               :must-match t))
    (setq field (completing-read "Field: "
                 header
                 :must-match t))
    (setq value (read-string "Regexp: "
                 :default (or (get-header-value (string-downcase field)
                                header)
                      "")))
    (kamail-add-transfer-rule dest field value)
  ))
 
(define-key *kamail-view-map* '(#\C-c #\. #\a) 'kamail-transfer-add-rule)
(define-key *kamail-list-map* '(#\C-c #\. #\t) 'kamail-apply-transfer-rules)
(define-key *kamail-list-map* '(#\C-c #\. #\r) 'kamail-read-transfer-rules)
どれもこれも既存の関数をコピーして少しだけ改変した物ばかりだけど(笑)
これをsite-lisp/kamailディレクトリ以下にkamail-transfer.lとして追加。makefileにも追加しておけばkamail-makeで一括でバイトコンパイルされるから便利かも。それから~/Kamail/.kamailに以下を追加
(require "kamail/kamail-transfer")
(setq *kamail-forward-from* "LKPteam <ykaltenative@mue.biglobe.ne.jp>")
(add-hook '*kamail-mode-hook* 'kamail-read-transfer-rules)
(add-hook '*kamail-mode-hook* 'kamail-read-transfer-msgid-list)
(add-hook '*kamail-exit-hook* 'kamail-write-transfer-msgid-list)
*kamail-forward-from*のメアドは適当に自分ので置き換えね
転送ルールの定義ファイルの書式は振り分けルールの定義ファイルと一緒。ルールの追加も一緒で、転送したいメールを表示させた状態でC-c . aで転送先、条件を適用するヘッダフィールド、条件の内容を正規表現で、という感じで指定。あとはサマリウィンドウでC-c . tを押せばサマリの中のメールを順番にスキャンしていって、転送ルールに引っかかったメールを転送する
これであとは~/Kamail/.kamailあたりにInboxにあるメールを自動でスキャンする設定を書いて、それの処理の中にkamail-apply-transfer-rulesを追加しておけば、自動転送の完了、と
ちなみにうちでは
(defun kamail-auto-folder-check ()
  (interactive)
  (save-window-excursion
    (set-window *kamail-window-folder*)
    (set-buffer *kamail-buffer-folder*)
    ;;; Inboxを指定
    (goto-line 2)
    (kamail-folder-status-this)
    (goto-bol)
    (if (not (looking-for "(0)"))
        (progn
          (kamail-select-folder-this)
          ;;; 自動転送
          (kamail-apply-transfer-rules)
          (kamail-list-reload t)
          (kamail-auto-refile t)
          (call-process "bash -c '~/bsfilter --auto-update --spam-cutoff 0.592 --imap --imap-fetch-unseen --imap-fetch-unflagged --insert-flag --insert-probability inbox'" :show :minimize :wait t)
          (kamail-list-reload t)
          (kamail-auto-refile t)
          (kamail-close-folder)
          (when (and *kamail-using-soundfile*)
            (PlaySound soundfile 0 #x00020000))
          (kamail-folder-status-all))))
  (refresh-screen))
 
(setq *kamail-imap4-folder-auto-check-interval* 1800)
(setq *kamail-using-soundfile* t)
 
(start-timer *kamail-imap4-folder-auto-check-interval* 'kamail-auto-folder-check)
 
(add-hook '*kamail-exit-hook* '(lambda () (stop-timer 'kamail-auto-folder-check)))
こんな設定で、自動振り分け処理の中に自動転送処理を組み込んでみたりしています。kamail-auto-refileが2度あるのは、一度目の振り分けで振り分けられるメールを先に振り分けておいてから、残ったメールをbsfilterでチェック、スパム判定になったメールを二度目の振り分けでジャンクメールフォルダへ、という処理をしているから
さて、機能を追加(*2)して一段落したし、エロげーするか(^^;
3 夕緋ノ向コウ側...とか[GAME]
貝塚先生のルート。エンディングちょっと前のイベントは結構好き。エンディングそのものはあまり好きじゃないけど
天野美朱ルート。最後はアレだけど、よかったのではないかと
エピローグ。んー、少し蛇足な気もするけど……
おまけシナリオは面白い(^^;
ということでフルコンプ、っと
LKPTeam「なかなか面白かったのではないかと」
ポン太さん「期待してなかった、というのも一因かなあ」
LKPTeam「あ、それは結構重要かもしれないですね」
ポン太さん「全然期待してなかった時は」
LKPTeam「結構面白い」
ポン太さん「そこそこ期待してたなら」
LKPTeam「予想通り」
ポン太さん「過剰な期待をしてたなら」
LKPTeam「……うーん?」
ポン太さん「こんな感じ?」
LKPTeam「でしょうね」
LKPTeam「私は衝動買いですから、特に期待もしてなかったわけですが」
ポン太さん「じゃあ十分楽しめた、だね」
LKPTeam「ですね」
4 こなたよりかなたまで...とか[GAME]
だからなぜ(ry
$Date: 2004-10-11 23:45:24 +0900 (Mon, 11 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041011.diary $

*1: テスト中に自動振り分け用のルールを上書きしてしょんぼりしたことは秘密だ(笑)
*2: 添付ファイルのこととかは一切考慮してないけど気にするな(^^;
ぺーじとっぷへごー

2004.10.12 (Tue)

1 おはようございます
6:00、起床。うーん、眠い
外は晴れ模様。いい天気になればいいけど
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「うー、仕事に行くのが面倒くさい」
カレン「まぁ、休み明けだからねぇ」
LKPTeam「じゃあ休みましょうか?!」
カレン「ダメに決まってるでしょ」
LKPTeam「あぅ」
カレン「面倒でも我慢して行きなさいな」
LKPTeam「あーい」
2 お仕事...とか[WORK]
就業奉行の導入について説明を受けたり。うぅ、私はまだ会社の勤怠関係について詳しくないのにー
3 K-Meleon...とか[PC]
unstableより新しい1.7.3ベース。でもいろいろ便利機能が満載かも
Prefs.jsに追加した項目は
user_pref("font.default", "sans-serif");
user_pref("font.minimum-size.ja", 13);
user_pref("font.minimum-size.x-western", 13);
user_pref("intl.charset.detector", "ja_parallel_state_machine");
user_pref("kmeleon.plugins.layers.catch", true);
こんなところ。kmeleon.plugins.layers.catchについはOpenとClose別々に設定できるっぽいけどとりあえずはこれでいってみる
今日は趣向を変えてスタートメニューの一部を公開。わーい、K-Meleonが4つもあるー……ってアホか私は(笑)(*1)
4 こなたよりかなたまで...とか[GAME]
クリスルートが終わるまではー
$Date: 2004-10-13 00:06:57 +0900 (Wed, 13 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041012.diary $

*1: 本当はあと2つくらいあるんだけど……(^^;
ぺーじとっぷへごー

2004.10.13 (Wed)

1 おはようございます
6:00、起床。うー、今日も眠いー
外はあいにくの雨模様。あめーあめー
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「憂鬱な雨ですねー」
カレン「まぁ、天気に文句を言ってもしょうがないからね」
カレン「我慢しなさいな」
LKPTeam「むー」
LKPTeam「それはそれとして、たまソフトのロスチャが延期になりましたですよ?」
カレン「よかったじゃない」
カレン「お金を使わなくても済んだでしょ?」
LKPTeam「いや、延びただけですからいずれ買うんですけど」
カレン「……」
LKPTeam「それで困ったことにそれまでにするゲームがなくなってしまったのですよ」
カレン「えーと、ランスがまだコンプリートしてないでしょ?」
カレン「それやってたらいいじゃない」
LKPTeam「む、それはそうなんですけど」
LKPTeam「ランスを終わらせた場合はどうしようかと」
カレン「それはその時にでも考えたらいいでしょ」
LKPTeam「ふむ」
カレン「というか、そういうときにこそ「こなたよりかなたまで」とかをやってたらいいんじゃないの?」
LKPTeam「うん、私もそう思うんですけどね」
LKPTeam「でも切羽詰まった時にやるのがいいんですよね」
カレン「……ダメね(^^;」
LKPTeam「あぅ」
2 お仕事...とか[WORK]
昨日説明を受けた就業奉行の勤務体系の入力を朝から晩まで。あとはタイムレコーダーの設定とか
3 こなたよりかなたまで...とか[GAME]
はぁ、しやわせ
$Date: 2004-10-14 00:31:31 +0900 (Thu, 14 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041013.diary $
ぺーじとっぷへごー

2004.10.14 (Thu)

1 おはようございます
6:00、起床。うん、今日も眠い
外は晴れ模様。快晴ですね
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「K-Meleonの新しいベータ版が出てるみたいですね」
カレン「そうなの?」
LKPTeam「ダウンロード先がkmeleon.sourceforge.netですから、オフィシャルのベータなのかなぁ」
カレン「使ってみればいいじゃない」
LKPTeam「しかしですよ、この前新しいベータを入れたばかりですよ」
LKPTeam「そこへまた別の新しいベータとなると……」
カレン「ややこしい?」
LKPTeam「ですね」
カレン「でも今回のはオフィシャルのベータっぽいんでしょ?」
LKPTeam「です」
カレン「ならこっちになれておいた方がいいんじゃないの?」
カレン「多分、オフィシャルのにはフォントの大きさを変えるツールボタンなんて付いてないんだから」
LKPTeam「む、それもそうかも」
LKPTeam「じゃあ会社から帰ってきてから落としてみますか」
カレン「そうね」
カレン「……と、そろそろ時間じゃない?」
LKPTeam「あーい、じゃあ会社に行きますか」
カレン「がんばってねー」
2 お仕事...とか[WORK]
先週面接していた求人の面接結果が出たらしいので、その結果を郵送にして送る準備とか。今日は暇だったね、明日はどうだろう
3 K-Meleon 0.9b...とか[PC]
この前のdevelopers-testreleaseとの違いは前回のがMozilla1.7.3ベースなのに対して、Mozilla1.7.4ベースなのを除けばほんのわずか程度。Layerボタンの有無とか、プライバシー関係の設定をボタン1つで変更できるプライバシーバーがデフォルトでオフになってるとか、見た目はそのくらいっぽいんだけど……って、ちょっと待てよ?
Mozilla1.7.4って出てないんじゃ……これはどういう意味なんだろう?nightlyとかそういう意味かなぁ
このくらいの違いならまた設定し直さすのが面倒なのでこの前落とした方を使った方がいいかな
追記。今日の0.9 betaはキーボードでのスクロールが出来ないらしいとの報告が。確かにキーボードでのスクロールは効かないな。PageUp、PageDownは効いてるんだけど
developers-testreleaseの方はちゃんとキーボードでのスクロールも効くのでやっぱりこっちを使ってよう
4 日記関係...とか[PC][xyzzy]
画像をaタグでリンクさせる時に、nDiaryのinlinedecorate.rbに
# a リンクタグ。イメージ専用
# img[file-name%%link string%%/title-property]
if str =~ /img\[.+\]/ then
  if  @diary.kind_of?(LastDiary) then
    str.gsub!(/img\[([^%]+)%%(.+)%%(\/.*)?\]/,"<a href=\"img/\\1\" title=\"\\3\">\\2</a>")
  else
    str.gsub!(/img\[([^%]+)%%(.+)%%(\/.*)?\]/,"<a href=\"./../img/\\1\" title=\"\\3\">\\2</a>")
  end
end
という風に書いてて、それをフォルダを開いてファイルのプロパティを見て画像のサイズやファイルサイズを調べてたんだけど、それすらも面倒になってきたので、自作のDIARY-MODEに以下を追加
(defvar *diary-imagedata-path* nil)
 
(defun translate-image-tag ()
  (interactive)
  (let (str file width height fmt)
    (save-excursion
      (goto-bol)
      (save-restriction
        (narrow-to-region (point) (progn (goto-eol) (point)))
        (goto-bol)
        (when (scan-buffer ".*img\\[\\(.+\\)%%\\(.+\\)\\].*" :no-dup nil :regexp t)
          (setq file (match-string 1))
          (setq str (match-string 2)))))
    (when file
      (multiple-value-bind (width height fmt)
          (get-image-size (merge-pathnames file *diary-imagedata-path*))
        (save-excursion
          (goto-bol)
          (save-restriction
            (narrow-to-region (point) (progn (goto-eol) (point)))
            (goto-bol)
            (perform-replace "img\\[\\(.+\\)\\]"
                             (format nil "img[~A%%~A%%/~D x ~D pixel, ~:D bytes]"
                                     file str width height
                                     (file-length
                                        (merge-pathnames file *diary-imagedata-path*)))
                             nil t nil nil)))))))
あとは適当にキーをバインドして、*diary-imagedata-path*にnDiaryで使ってる画像の置き場所を指定して、
img[20041014.jpg%%こんな感じ]
と書いてバインドしたキーを押せば、
img[20041014.jpg%%こんな感じ%%/652 x 227 pixel, 21,212 bytes]
となるように作ってから気付いたんだけど、nDiaryに付属のimagesize.rbでも普通に画像ファイルのサイズが取得出来るじゃん……なにやってんだ私は(笑)
余計なキーを押す必要がある分、xyzzyの方が分が悪いな。今度nDiaryだけで済ませるように直しておこう
5 神樹の館...とか[GAME]
なぜかランスをやらずにこっちをやってる自分(^^;
$Date: 2004-10-15 01:02:11 +0900 (Fri, 15 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041014.diary $
ぺーじとっぷへごー

2004.10.15 (Fri)

1 おはようございます
6:00、起床。まぁこんなもんかな
外は晴れ模様。快晴ですね。昨日よりは冷え込みは激しくない模様
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「朝晩の冷え込みが激しくなってきたですよ」
カレン「今日は昨日よりはひどくないよね」
LKPTeam「ですね」
LKPTeam「しかしそれ以前に十分寒いのですが」
カレン「厚着したら?」
LKPTeam「それはいや」
カレン「わがまま」
LKPTeam「あぅ」
2 お仕事...とか[WORK]
雑用、雑用、雑用。あとは就業奉行の勉強とか。先は長そう……
3 RanceY-ゼス崩壊-...とか[GAME]
久しぶりに進めてみる
4 K-Meleon...とか[PC]
メモ。0.9betaのバグ一覧?。キーボードでのスクロールは修正された模様
切り取り、コピーの問題も直ってるとあるけど、そういうバグもあったのか……
$Date: 2004-10-16 00:51:06 +0900 (Sat, 16 Oct 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/10/20041015.diary $
ぺーじとっぷへごー

つっこみ

LKPTeam / ykaltenative@mue.biglobe.ne.jp
さいととっぷへごー!