2005/10/05
# [xyzzy] AL-Mail to KaMail
以前使っていた AL-Mail のメールデータを長いこと放置していたが,これを KaMail に取り込もうと思い立つ。AL-Mail も 1 メール 1 ファイルで保存されているため,案外ファイル名を変更するだけでいけるのでは,などと甘い期待を寄せて KaMail に放り込んでみた。しかし,キャッシュファイルを作成し,サマリの表示まではうまくいったものの,本文が化けてしまいダメダメ。
AL-Mail のデータは,Subject が復号化された状態で保存されているため,これが悪さをしているのかとも思ったが,どうやら,エンコーディングが Shift-JIS になっているのが原因だったもよう。で,またしてもへなちょこなものをつくって,指定フォルダ中のファイル名を連番にしつつ,エンコーディングを ISO-2022-JP にすることにした。
(defun almail2kamail () "AL-Mail のメールファイルを KaMail 用に変換" (interactive) (let* ((dir (read-directory-name "directory: ")) (lst (directory dir :absolute t :wild "*.alm" :file-only t))) (when lst ;; エンコーディングの変更 (let ((buf (create-new-buffer "*alm2km*"))) (set-buffer buf) (dolist (f lst) (erase-buffer buf) (ed::insert-file-contents f t) (write-region (point-min) (point-max) f nil *encoding-jis* 1)) (delete-buffer buf)) ;; ファイル名の変更 (let ((i 1)) (dolist (f lst) (rename-file f (merge-pathnames (format nil "~D" i) dir)) (incf i))))))
almail2kamail は,ファイルを直接書き換えてしまうので,以下の手順で。
- AL-Mail の Mailbox 以下のメールファイルを,KaMail のローカルフォルダ中に新たにフォルダを作成してコピー。
- M-x almail2kamail して,新たに作成したフォルダを指定。
- 新たに作成したフォルダを,設定ファイル Folders に追加するか,フォルダモードから a するなどして KaMail のローカルフォルダとして登録。
- 新たに登録したフォルダを開くと,「Cache fileを作成します」といわれるので,作成してもらう。
これを AL-Mail のメールフォルダの数だけ繰り返す。で,たぶんオッケー。
2005/10/04
# [xyzzy] reference.dat
ということで(何が?),reference.txt から ese-fortune 用 reference.dat を作成するへなちょこなものをつくってみた。reference.txt は,$XYZZY/etc に置いておく必要があります。できあがった reference.dat も$XYZZY/etc に作成されます。
(defun reftxt2dat () (interactive) (long-operation (let ((buf "*reference.dat*") (txt (merge-pathnames "reference.txt" (etc-path))) (dat (merge-pathnames "reference.dat" (etc-path)))) (when (file-exist-p txt) (set-buffer (create-new-buffer buf)) (ed::insert-file-contents txt t) (while (scan-buffer "^■" :regexp t :no-dup t) (save-excursion (save-restriction (narrow-to-region (point) (progn (or (scan-buffer "^■" :regexp t :tail nil :no-dup t) (goto-char (point-max))) (forward-char -1) (point))) (goto-char (point-min)) (if (string-match ".*\\[Section \\]:.*" (buffer-substring (point-min) (point-max))) (replace-buffer "\n" "<ese-fortune-br>" :regexp t) (delete-region (point-min) (point-max)))))) (goto-char (point-min)) (delete-region (point) (progn (scan-buffer "^■" :regexp t) (point))) (replace-buffer "^\n" "" :regexp t) (when (or (not (file-exist-p dat)) (yes-or-no-p "~A を上書きして良いですか?" dat)) (write-file dat) (delete-buffer buf))))))
# [駄目] コメントなど
あとから読み直すと,私の書いたコメントは実にわかりにくかったりする。「…の良いとこなんですけどね。」っていうのは,「だから今のままの方がよいかもですね。」っていうつもりで書いてるのに,「だからそうすべきじゃないですかね。」とも読めてしまう。
お仕事でも,何度繰り返し説明してもなかなか通じ合えないのは,当然といえば当然か。
OHKUBO 『私は、なんの疑問ももたずに、期待されていた読み方である前者で読んでいましたよ (^^;;きちんと伝えることができた、と確信するのは本当に難しいですね。』 (10/06 09:02)
ひえ 『一安心です。正しく伝えることは,本当に難しいと思います。仕事でも,上手く伝わらないと感じてたことが,思いのほか伝わったようで,こちらも一安心。正しく伝えようとするが故に,ながーい説明になってしまうと,かえってポイントがわからなくなってしまうし,かといって,ざっとまとめた簡潔な文章はなかなか書けない。そうこうしているうちに,時間はどんどんたっていく…。』 (10/08 17:01)
2005/10/02
# [xyzzy] 大掃除
新しいリファレンスの verify-visited-file-modtime には対応できないことを悟り,これを機に大掃除を始める。
OHKUBO 『何が対応できなかったのでしょう?私も大掃除を初めて見たのですけど、整理がつかないつかない (^^;;』 (10/03 00:21)
NANRI 『逸見さん時代の info-modoki.l は大丈夫っぽいので大丈夫かなと思っていたのですが。フォーマットについてのご希望がありましたら遠慮なくどうぞ。』 (10/03 02:04)
ひえ 『◇説明不足ですみません。仕方のないことなのですが,verify-visited-file-modtime のように,同じ title を持った複数の chapter が存在すると,昔から使ってた Perl のコンバータでは,多分処理できないと思います。◇でも,非公式 HTML 版については,ML アーカイブと一緒に全文検索ができることぐらいしか旨みはないので,まぁ消しても良いかなと。ese-fortune 版については,reference.txt から切り出せばなんとかなるだろうと。info 版については,誰かがなんとかしてくれるのではないかと。そんな思いでした。◇どちらにせよ,そろそろ整理しようと思っていた部分を整理しただけなのです。(^^)◇NANRI さん,リファレンスのメンテお疲れ様です。このような作業は非常に労力が必要なので,全く持って頭が下がります。◇フォーマットに関しては,特に希望があるわけではありません。というか,このような状況には,自分ではうまく対処できないことを悟った,といった方が正しいかもしれません。』 (10/03 07:39)
2005/10/01
# [こざる] 運動会
毎年 9 月に開催される小学校の運動会。今年は珍しく 10 月に。やはり運動会といえば,かけっこが一番燃えるのです。練習では 6 人中 4 位だったお嬢ちゃんは,3 位目標で本番に挑みました。微妙フライング気味かと思わせなくもない絶妙なスタートを切ったお嬢ちゃんは,第 1 コーナーまでは先頭に位置していたのですが,コーナーでの詰めが甘く,第 2 コーナーあたりで 1 人抜かれ,ゴール数メートル前で 1 人抜かれ,結局 3 位に。当初の目標は達成したのですが,課題の残る結果となりました。でもじいちゃんが,独走状態でのスナップを記録してくれていたので,それを見た家族全員満足気。