|
setup diary |
pdfを編集する必要が出てきたので、linuxで使えるpdfの編集ソフトを探すと、pdfeditというのがあるらしい。debianなら、aptitude install pdfeditでインストール完了である。
これを使って、あるpdfを編集しようとしたら、read-onlyだからダメだと言われる。属性は大丈夫なのだが、pdfの中でロックがかかっているようだ。webで調べたら、pdf2psでpsにしてから、ps2pdfでpdfに戻せば良いと書いてあった。試してみたら、ファイルサイズがかなり大きくなってしまったので、これは適切では無いようだ。さらに調べると、Tools-Delinearizeを選んで、ファイルを読み込んで、セーブすると良いらしい。この方法でも少しはファイルが大きくなったが、問題無いレベルである。
windowsで動かしているプログラムが、うまく動かなくて困っていたら、どうやら、windowsのversionが悪さをしているらしいということが分かった。それまではwindows98で動かしていたのだが、windows95かNT4.0でしか動かないらしい。なんでこんな状態になっているのだろう。今更、windows95も無いので、linux上のwineで動かしてみることにした。
squeezeの上で、最新のwineから、winecfgを使って、windows95とかNT4.0仕様で動かすように指定しても、うまくいかない。以前、似たようなことをやったときに、wine0.9.25で動いたことがあったので、これをインストールすることにした。
まずはソースをdownloadして、展開する。そして、コンパイルに必要なbuild-essential flex bison libx11-dev libxext-devをインストールする。しかし、signal_i386.oに関するエラーが出る。いろいろと調べてみたら、wine-0.9.25/dlls/ntdll/signal_i386.cを書き換える必要があるようだ。
/* signal context platform-specific definitions */のすぐ後に
#define VIF_MASK 0x00080000 #define VIP_MASK 0x00100000を入れるらしい。やってみたら、wineのインストールには成功した。
離散的なデータの間の値を補完しようとしたのだが、関数でfittingすると非常に複雑なものになりそうだったので、スプライン曲線で補完することにした。
スプライン曲線を計算して書こうとすると、意外に難しいらしい。GSLでできるのでは無いかと思って調べてみたら、やはりできた。というわけで、ruby-gslでspline補完するために書いたプログラムがこれ。
require "gsl" data=[ [2.0144,7.8956747], [109.2747,0.9246663], [216.3775,0.6455773], [319.6925,0.3726170], ].sort_by{|t,v| v}.transpose ya=NArray.to_na(data[0]) xa=NArray.to_na(data[1]) spline = GSL::Spline.alloc("cspline",xa,ya) puts spline.eval(4.5)
xaは小さい方から大きい方に単調になっていけないようなので、sortが必要だったが、あっさり動いた。さすがruby。
古いLinuxでしか動かないプログラムがあったので、仕方無く古いDebianを入れることにした。しかし、ネット上になかなか見つからない。Swedenのsunetやhttp://cdimage.debian.org/cdimage/archive/で一部のisoやjigdoが見つかるのだが、うまく落とさなかったりする。また、aptの設定にも困る気がする。
結局、jigdoでrikenから落とすことができることが分かった。まず、.jigdoで必要ならプロキシの設定をする。そして、jigdo-liteでjigdoのファイルを指定すると、何か聞かれるが、一つ目は蒸ししてリターン。二つ目にサーバーを聞かれるので、http://ftp.riken.jp/Linux/debian/debian-archive/debian/を指定したら、動きだした。
もしかすると、apt-lineにも、これを指定したら良いのかも知れない。それならば、netinstのCDでも良い気がするが、どうなのだろう。
deb http://archive.debian.org/debian/ sarge main contrib non-freeとし、archiveから取ってくるように設定する。そして、/etc/apt/apt.confを
Acquire::http::Proxy "http://proxy:8080/"; Acquire::ftp::Proxy "ftp://ftp-proxy/";とし、proxyを設定する。その後でtaskselを実行すると、インストールできる。つまったのは、X11の設定である。PS2のマウスに対してpsauxのps2を選ばなければならなかったのだが、久々だったのでそれを間違えていた。あとは、日本語の表示がおかしかったので、ttf-sazanami-minchoやttf-sazanami-gothicをインストールしたら、まともになった。でも、日本語入力の設定は面倒なので、しなくても良いかな。