前の月 / 次の月 / 最新

hiChangeLog / 2008-01

2008-01
SMTWTFS
12345
6789101112
13141516171819
20212223242526
2728293031

2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12

2008-01-06 Sun

DVD作成時のフォーマットと文字制限について

DVDでバックアップを取ろうとしたら「ファイル名が長すぎです」とか言われてしまった。OSで許されるファイル名が使えない場合があるとなると何かとややこしくてイヤだなと思った。なのでこの辺りの事情についてちょっと調べ、メモ。

光ディスクのフォーマットは概ね以下のようだ。下に行くほど新しい規格なんだろう、たぶん。

フォーマット名備考
ISO 96601988年に策定。ほぼ全てのOSで対応。Level1規格でファイル名は8+3文字
RomeoWindows独自。ファイル名は128文字までだがUnicodeに非対応
JolietISO 9660上位互換。ファイル名はUnicode対応で64文字まで
UDFISO 9660の後継。ファイル名はUnicodeで127文字まで
参考:
ISO 9660とは 【High Sierra】 - 意味・解説 : IT用語辞典
Romeoとは - 意味・解説 : IT用語辞典
Jolietとは - 意味・解説 : IT用語辞典
ユニバーサルディスクフォーマット - Wikipedia
ファイルシステム - Wikipedia
特集 : DVD+RWの可能性

手元のライティングソフトはB's recorder GOLD8。Jolietの制限を越えるファイルに対して「ファイル名が長すぎです」と怒っていたようだ。「トラックのプロパティを変更して下さい」みたいな事を言っておったが、Joliet以外にはRomeo準拠だのISO準拠だのしかなく、UDFには対応していない模様。GOLD9で対応を謌っているようだが、UDFでDVDが作れない人もおられるようだ。

たまに長いファイル名を使うので、UDF対応のライティングソフトを使いたいが、どうすればよいか。
ImgBurnなるものが無償使用が可能でかつ評判が良いようである。手元のファイルをDVDに焼く場合、一旦イメージファイルを作成(Buildモード)からそれを焼く(Writeモード)という作業を経る。実際やってみたが、GOLD8で文句言われたファイルもすんなり通ったし、実際に焼けているようである。高品質ソフト作者の情熱には頭が下がる。
参考:
フリーのライティングツール「ImgBurn」の使い方

UDFにはいくつかバージョンがある。Windowsの場合、98以降で1.02が、2000以降で1.5の読み込みがサポートされているようだ。先のImgBurnで作成したイメージファイルはUDF1.02のようであった。
参考:ユニバーサルディスクフォーマット - Wikipedia

ISO 9960的な情報も保持してるのをUDF Bridgeと言うらしい?この辺の事情は良くわからなかった。
参考:DVD


その他参考文書:
Windows XP で CD-ROM ドライブが UDF 形式のディスクを読み取れないことがある
DVD-Rディスクのボリューム構造及びファイル構造
[27720] B's Recorder と Easy CD/DVD で書き込みファイル名の長さが異なる?

PDFの回転やページ結合を行うツールについて [PDF]

特にスキャンした時など、PDFの回転やページ結合を行う機会が多い。
Acrobatを使えば勿論これらは可能。Acrobat以外でできるか?についてちょい考えた。

定番はpdftk。ページの結合、分割などが可能。回転はできないようだ。GUI for Pdftkなるものもあるようだ。
例えば結合は下記のようにする。

$ pdftk.exe *.pdf cat output out.pdf

回転はRotPDFが簡潔で使いよい。
回転はImageMagickでもできたけど、解像度が落ちた。オプションの渡し方次第かもしらんが、面倒なので調べない。

2008-01-05 Sat

maildropでmh形式のメールを扱うためにrcvstoreが必要なのでnmhを導入した [メール]

[2007-10-10-1]の続きみたいなもの。mh形式をサポートしていないmaildrop使用時に、如何にmh形式でメールを蓄積させるか、という話。
似たような事例の議論を見つけた。maildropに標準出力に吐いてもらい、それをコマンドに喰わせてmh形式に保存する、という方法は一緒。ただしコマンドとして、nmhというパッケージに含まれるrcvstoreを用いている。実際にやってみるとうまくいった。私の自作プログラムより、広く使われているパッケージのが安心なので、こっちに乗り換えることにする。顛末をメモ。

まずnmhを入手・展開し下記のようにインストールした。

$ ./configure --prefix=$HOME/usr
$ make
$ make install
そしたらrcvstoreが~/usr/libにインストールされた。で、~/.mh_profileに以下を設定した(抜粋。他に変更は施していない)。
Path: Mail
Inbox: mhInbox
以上で終了。下記のようにしたがうまくメールが蓄積されているようである。
$ cat tmp.eml | ~/usr/lib/rcvstore +mymhtest # ~/Mail/mymhtest に格納された。
$ cat tmp.eml | ~/usr/lib/rcvstore           # ~/Mail/mhInbox に格納された。
.mailfilterは以下のような感じで。
if (/^From:.*my@mail\.address\.jp/:h)
       to "| $HOME/usr/lib/rcvstore +mymhtest"
うまく動いてるっぽいけど、しばらく運用して様子見してみよう。

念のため上記「似たような事例の議論」を抜粋しメモしておく。
| Op Wed, 20 Oct 2004 09:41:15 -0600 xxxx:
| 
| >> Just for grins I had a look at Maildrop, which you suggested. At this
| >> moment I can't see how I could make use of it, since it does not seem
| >to> support MH-style mailfolders. And my e-mail program uses those...
| >
| >mh and nmh start as tiny programs you call from the shell, so using
| >them with another MDA is usually as simple as having the MDA itself run
| >something like"/usr/local/libexec/nmh/rcvstore +inbox".
| 
| Could be something to look into. Thanks.
| 
| >I'm surprised maildrop doesn't have built-in mh support, though.  Are
| >you sure about that?

Maildrop definitely does NOT support mh folders, I've hacked around it for
a few weeks, and then resolved to use rcvstore as a destination.

Referrer (Inside): [2008-08-21-1]

WanderlustでHTMLメールを表示するためにemacs-w3mを導入した [Emacs][Wanderlust]

WanderlustでもHTMLメールを表示したくなった(ソースではなく整形済みの文書が見たいという意味)。emacs-w3mを導入すればできるそうだ(参考:Emacs-w3m -- an Emacs interface to w3m --: メール/ニュースリーダーで使う)。

まずは下記でemacs-w3mを導入。

$ ./configure --prefix=$HOME/usr --with-lispdir=$HOME/usr/elisp/w3m --with-icondir=$HOME/usr/etc/images/w3m --with-addpath=$HOME/usr/elisp/apel:$HOME/usr/elisp/flim
$ make what-where # インストール先を確認
$ make
$ make install
そして.emacsに下記を追加。
(add-to-list 'load-path "~/usr/elisp/w3m")
(require 'w3m-load)
(require 'mime-w3m)

そしてWanderlustでHTMLメールを開いてみたらちゃんと整形されて表示された。

2008-01-04 Fri

fetchmailは、POPのUIDLによって未受信・受信済を区別できる [コマンド]

maildropの.mailfilterの書き方を少しミスった(振り分け先ディレクトリ未作成)ため、fetchmailが「正常な受信できず」と判断してflushしなかったため、POPサーバーに未読メールを残してしまった、という状況。

最初は何が原因かわからなかったので、.mailfilterをいじりながら何度も受信しようと思った。まず1回受信して、それを全部消して.mailfilterを編集し、2回目を受信しようとしたが、"skipping message ..."と出て受信してくれなかった。skipとあるので、どこかに残っている「既読」の情報に邪魔されているんだろうなと思った。
一体どうやってそんな芸当ができるのかと思い調べると、POPにUIDLという値(の仕組み)があるようだ(参照:ラスト・ワン・ホップ プロトコル「POP3」)。この値をfetchmailが管理し、未受信か否かを判断している模様。
.fetchmailrcでuidlなるキーワードを追加することでこの機能が有効になっているようだ。私の.fetchmailrcはどっかからロクに中身を理解せず拝借したもので、uidlキーワードが含まれていた。で、UIDLの情報が.fetchidsなるファイルに書き込まれているそうだ。

実際に.fetchidsを消したら受信できた。

2008-01-03 Thu

EPSをBMPに変換する [画像ファイル]

下記コマンドでEPSをBMPに変換できた。

gswin32c -dSAFER -q -dNOPAUSE -sDEVICE=bmp256 -sOutputFile=hoge_out.bmp -r32 -dEPSCrop -dBATCH hoge.eps

WanderlustでEnvelope-From:の値を設定する [Wanderlust]

MUAとしてWanderlustを愛用している。
From:に加えEnvelope-From:の値を変えて送信したいと思う状況がまああるが、都度変えて送信するのは無理なのかなと思ってボンヤリ使っていた。
だがそのものズバリの解決方法を見つけた。http://gmt-24.net/archives/179 より。以下を設定しておけばOK。

(add-hook 'wl-draft-send-hook
	  (lambda ()
	    (set (make-local-variable 'wl-from) (std11-fetch-field "From"))))

findした結果を指定ディレクトリにmvするためにxargsした [コマンド]

メモ。
ある条件にマッチしたファイルを他のディレクトリに移動したいという状況。
findしてxargsしてmvすれば良さそうだけど、mvは移動対象 ==> 移動先の順番で2つ引数をとるので、下記のようにせねばならない。(現在から14日前までのファイルを../hogeに移動する)

find . -mtime -14 ! -name "." | xargs mv --target-directory=../hoge/

2008-01-02 Wed

ファイル名から拡張子を取り除くコード [python]

いい加減な記録。
ファイル名から拡張子を取り除こうとos.path.basenameしてみたが、これはパス名から最も下の階層を抜きとるだけだった。
じゃあどうすりゃいいかなと考えて下記のようにやったら何かうまくいった。

'.'.join(fname.split('.')[:-1])

2008-01-01 Tue

Python Imaging LibraryでPNGのコメントを扱う [python]

Python Imaging Libraryというのがある。便利そう。だけど私が欲しく思っている、コメント読み書きの機能はあるのだろうか。

右記ページで言及されていた:http://blog.modp.com/2007/08/python-pil-and-png-metadata-take-2.html 。でもなんか実装もビミョーみたいだし、日本語OKなiTxtのサポートもされていない感じ。画像にコメントって便利だと思うけど、あんま普及はしていないのかな。

2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2010-03-08 22:21