rubyの同一の判断

arrayと==
最近、四次元について考えているが、やはり人間は二次元から三次元の動物で、四次元はなかなか頭で描くことができない。そうなると、数学で考えるしか無い。 Matrixの==の定義を書き換えて、多少値が異なっても、同じものだという判断をするようにしてみたが、同一の判断にはいろいろあるようで、思ったように動くときと、動かないときがある。 たとえば、arrayのinclude?は良いようだが、arrayの==や-やuniqはうまくいかないようだ。この判断には、Matrixの==を使っていないのかな。 arrayの中身の処理は、どのようにしているか分からないので、本当は短く書きたいのだが、include?等を使って、その部分を書き下すことによって処理している。arrayの中で使っている同一の判定を書き換えれば良いはずなのだが。

2008/8/7追記 eql?かと思ったが違うようだ。hashを使っているのかもしれない。

Read more...

emacsのビープ音

xemacs21のビープ音を消した。
emacs21にいつ移行しようかと思いつつ、xemacs21を使い続けているが、エラーのときにビープ音がうるさいので消してみた。設定ファイルに

(setq visible-bell t)

を追加すると、ブザーの代わりに画面が反転するようになる。でも、意外に目にうるさい感じがする。反転もしなくする方法もあるとは思うけど、どうするのかな。

Read more...

To make pdf using Windows

Windowsでpdfをつくるのは面倒なようだ。
Acrobatを入れれば良いのだろうが有料だし、と思って調べてみたら、方法を見付けた。まず、AdobePSプリンタドライバというのがあるので、それをdownloadして、インストールする。その際、ポートとしては、ローカルのFILEを選択する。すると、印刷のところからPSを作れるようになるので、ps2pdfで変換すれば良い。Acrobatで変換したときと、フォントが違うようだが、まあ大きな問題ではないだろう。 標準でPSも作れないWindowsもどうかと思いますが。まあ、OpenOfficeを使うか、TeXを使えば良い話なので、あまり利用価値はない気がしますが。

Read more...

debianでスキャナー

Linuxでも簡単にスキャナーが使えるようになってきた。
まずはsaneをインストール。

sudo aptitude install sane sane-utils

使ったのは、canonのN1220Uというスキャナーだが、これをUSBにつないで、

sane-find-scanner
sudo scanimage -L

として、うまく認識していることを確認したのち、

sudo scanimage |convert - temp.png

として、データを取り込む。しかし、デフォルトの設定をかえるオプションがわからなかったので、

sudo xscanimage

としたら、windowsなんかでよくあるような感じで簡単に指定できた。あとはimagemagickで変換でもなんでもすれば良いだろう。

Read more...

beep

タブ補完のときのビープ音がうるさかったので、消した。
これまで、あまり気にしていなかったが、他の人に迷惑かなと思って、ターミナルのビープ音を消してみた。/etc/inputrcのset bell-style noneの部分のコメントアウトしてあるのを、#を消して有効にすれば終わりです。 他のアプリケーションに関しては、どうするのかな。

Read more...

ROXの設定

エディターの設定
acroreadを使っていると、defaultのeditorがなぜかacroreadに設定されてしまった。以前もそんなことがあったので、何か悪さをしているのだろう。起動するアプリケーションは、 .config/rox.sourceforge.net/MIME-types/ に設定ファイルがある。このtext_plainが書き換えられているようだ。/usr/share/rox/Choices/MIME-types/text を参考に、

#! /bin/sh
exec x-terminal-emulator -e sensible-editor "$@"

としたら、無事nanoが立ち上がるようになった。

Read more...

latexで書類作成

提出書類をplatexで準備
書類のほとんどがwordやexcelで出すように強要される。せめてopenofficeを使って欲しいのだが、世の中はそう簡単には変わらないようである。 Linuxユーザーとしては、これをどのように処理するかが問題なのだが、これまでは最後だけwindowsマシンで処理して提出するという手段でごまかしてきたが、今回はlatexで処理してみた。 まず、windowsマシンで書類をpdfに変換してもらう。これよりあとはすべてlinuxマシンで行うことができる。そして、acroreadでページ毎のpsを作る。このとき、printerの設定をcustomにしておかないとあとでエラーが出た。ps2epsでepsに変換すれば、それらをwatermarkとして背景にして文字を書き込んでいけば良い。 注意しなければいけないのは、watermarkとして文字を書き込んだ場合には、ページが出力されないので、phantomをつかって、何かの文字があるようにしておかないといけない点です。連続したページの場合には、本文として文字を書き込んで、watermarkはthiswatermarkとwatermarkでページの背景を作りわけると良い。

2009.10.12追記 watermark.styはdebian lennyではtexlive-latex-extraに入っているらしい。

Read more...

Rのバグ取り

Rのエラーメッセージはわかりづらい。
せめて、行番号くらい出して欲しい。warningに関しても同じことが言える。一応オブジェクト指向なのだが、隠蔽があんまりできない感じだし、やはり長いプログラムを組むにはあまり向かない気がする。長らく発見されずにどこかでエラーが起きて気づかなかったバグが、今日ようやく取れた。まあ、慣れもあるんだろうけど。あまりオブジェクト指向っぽく書けていないのも、バグができる要因なのだろう。グラフを簡単に書けるようにするプログラムを作っていたのだが、書くよりも簡単にコマンドを覚えられる気がする。

Read more...

R-guiのtkbind

ふたつのブラケット
Rのtcltkでbindを使ってみた。tkbindを使えば良いのはすぐに分かったが、

tkbind(widget,"<<ListboxSelect>>",function(){})

でなんとか動いた。ふたつ括弧が必要なのはなぜだろう。ruby/tkのときは一つだったのに。まあ、tcl/tkを理解しないで使っているので、気にしないことにしよう。

Read more...

Rの正規表現

Rの正規表現は面倒だ。
perlやrubyでは、スラッシュでquoteするので、バックスラッシュの取扱いが簡単だが、Rでは、“や’でquoteするので、バックスラッシュを二個重ねないといけないので、厄介だ。 rubyだと、

r.gsub!(/\^\{([^\}]*)\}/){"\",phantom()\^{#{$1} phantom()},\""}

と書けば良いところを、

r<-gsub('\\^\\{([^\\}]*)\\}',"\",phantom()^{\\1 phantom()},\"",r)

というように長くなってしまう。ちなみに、phantom()はV4+とかのときに、エラーがでないようにするためにつけています。

Read more...