ドラッグ&ドロップできるperlスクリプト(Windows)

lightbox用に画像を手軽にリサイズするツールは作れないかと思ったところ、ドロップレットというものがあることを知った。

確かに、画像のサイズ変換とかちょっとした作業をドロップレットみたいにドラッグ&ドロップでできるツールで行なうと便利だ、そして、さらにperlスクリプトをドロップレットに出来たらもっとよい。MacだとできるっぽいんだけどWinだとあまり情報がなかった。

http://del.icio.us/kzfm/gui

PerlTkでいけるかなと思ってたんだけど引数の渡し方とかちょっとわからん。他にもWin32::GUIとかThe GUI Loftとかもあったんだけど、、、、

色々調べて、ドラッグで引数渡したいだけならbat書けばいいということを知って、それで対応することにした。

結局、ドラッグできるperlスクリプトではないが(細かいことは気にしない)

batは単純に引数を渡すためだけの必要最低限、、というか書き方よくわかってない。アイコン変えたりとかDOSプロンプト出さないといったこともできるのかな?

@ECHO OFF

c:\test.pl %1

perlはこんな感じでサンプルを。流れでWin32GUIを入れたので、テストに使ってみた。

use Win32;

my $mess = shift; 
MsgBox("Test", $mess, 48);

sub MsgBox {
    my ($caption, $message, $icon_buttons) = @_;
    my @return = qw/- Ok Cancel Abort Retry Ignore Yes No/;
    my $result = Win32::MsgBox($message, $icon_buttons, $caption);
    return $return[$result];
}

test.batにドラッグドロップすると、windowが開いてドラッグしたファイルのパスが表示される。あとはこれをperlmagickで画像のリサイズするスクリプトを書けばOK。リサイズしてftpでblosxom用の画像ディレクトリに送るとこまでをドロップレットにすれば使いやすくなるかな。

sewってのもあった。あとunix magazineにもまんまな記事があったらしいんだけどバックナンバーがない。

Practical Regression and Anova in R

Rで描画させるの楽しいけど、モデルつくんのにRをちゃんと覚えねばってことで、Practical Regression and Anova in Rもちょっとづつ読み進めてます。

Practical Regression and Anova in R

This a masters level course covering the following topics:Linear Models: Definition, fitting, inference, interpretation of results, meaning of regression coefficients, identifiablity, lack of fit, multicollinearity, ridge regression, principal components regression, partial least squares, regression splines, Gauss-Markov theorem, variable selection, diagnostics, transformations, influential observations, robust procedures, ANOVA and analysis of covariance, randomised block, factorial designs.

書籍にもなってるようだ。

ProductName Linear Models with R (Chapman & Hall/CRC Texts in Statistical Science)
Julian J. Faraway
Chapman and Hall/CRC / 6462円 ( 2004-08-12 )


SAR,SPRは、よくわかんないパラメータをたくさん(1000以上とか)出してみて、activity,propertyをうまく説明できるパラメータを絞り込んでいき、絞り込まれたパラメータとactivity,propertyとの関連性を類推していくプロセスがおもろい。

perlで高階関数とカリー化

先週は電車通勤+歩きで仕事場を行き来したので、電車の中で、英語漬けで英語のトレーニングしてみたり、普通のHaskellプログラミング読んだりと、電車通勤はなかなか有意義なことに気付かされた。特に普通のHaskellプログラミングは第一部を読み終えたことで、高階関数変数の束縛というものがわかったような気がした?

、、、、したのかどうかまだよくわからんので、自分の理解力を認識するために少し書いてみた。

まず、言葉の定義を。

  • 変数の束縛
  • (例えば)関数という値があり、それが変数名を束縛している
  • 高階関数
  • 関数を返したり引数にとったりする関数
  • 変数が関数に束縛されているから、関数を変数として扱うことが出来る?
  • それとも関数を変数として扱うことことが出来れば高階関数はつくれるのか?

perlでも変数を束縛することが出来れば高階関数など扱えるのかなと。クロージャ使えってことか?と思って調べて見ると面白そうなのが。

(って全部一度は見たことあるじゃん。でもワカンネとか言って放り出した気が、、、、)

ぱるも日記ではカリー関数を作る例が示されていたが、関数を返す高階関数の例ですな。カリー化に関しては、これなど面白かった。

torus solutions!は僕がblosxomをいじくるときにかなり参考にさせてもらったサイトです。

XML を Perl の高階関数で。 : torus solutions!

XML::LibXML で XML を作るときに、 いちいち createElement とか appendChild とか書くのに飽きてきたので、 高階関数版を作ってみた。
これも、関数を返すといってよいのでしょう。

関数を引数にとる高階関数をperlで書けるのだろうか?というのが気になるところだが、関数のリファレンスを引数にとる関数を書けばいいのかなと思ってこれまた調べてみた。

ここまでの関数を返す関数とか関数を引数にとる関数を考えると、perlでの(関数による)変数の束縛ってのは、関数のリファレンスを変数として扱うことでなされると考えてよいのかな。

ProductName Higher-Order Perl: Transforming Programs with Programs
Mark Jason Dominus
Morgan Kaufmann / 5692円 ( 2005-03-28 )


Higher-order Perlも気になる

蕎麦の実

蕎麦で一献セット。酒は京の舞だったかな。

立て続けに三回いったけど結局2回目の蕎麦が一番良かった。

蕎麦の実

FC5にoracle8iのクライアントが入らない

カエルチュウイホウ

jreって単なるシェルスクリプトだったので、頑張ればGUIインストーラーを起動させられそうな感じが。

jreいじってみたけど、segmentation faultが治らん。

FC2もFC5もkernel2.6系なんだからoracle8iクライアントがFC2にはインストールできてFC5にはできないのは納得いかん。

libgcjがあやしい。

jreコマンド

サーバーの入れ替え作業してて気がついたんだけど、昔のJREに含まれていたjreコマンドっていつの間にかなくなってたのね(1.2かららしい)

というわけでjreを要求するOracle8iのクライアントをFC5にインストールしたらはまった。上で書いたとおりに最近のJREにはコマンドがないので、古いBlackdown JRE引っ張り出してきたがsegmentation faultを起こしてインストーラーの起動に失敗する。FC2まで実績があるのに、、、、

ちょっと見てみると、jreって単なるシェルスクリプトだったので、頑張ればGUIインストーラーを起動させられそうな感じが。

DBD::Oracleがないと仕事にならん。

とか思ってたが、最近はClass::DBI::Oracleまでないと困る。

この勢いでDBICまで覚えたいとこだが、最近余裕がないなぁ。ヒトもmake testで回帰テストできたらいいのになぁ(しかも毎日一回cronで)って強く思う。

あと、口頭で教えたことを、メモッとけじゃなくてウィキッとけって言うことが多くなった。っていうか、ウィキるって言葉がチーム内で動詞として定着しているような気が。

気になって今調べたらウィキるってウィキで調べるってことなのね。でも僕としては、ウィキに書き込んで記録として残すって意味のほうがしっくりくるなぁ

データセットをテストセットとトレーニングセットにわける

最近、予測モデルスクリーニングとかいって、SVM,Bayes,PLSなんかのアルゴリズムと、構造、物性ディスクリプターの組み合わせを網羅的に試して、調子のいいモデルをセレクションするコードを書くことに凝ってる。

だが、QSARというか予測モデルを構築するのに、データを訓練用とテスト用の二つに分けねばなりませぬ。実はその作業は結構手間で、レンジの狭い(0ばっかで役に立たない)記述子除いたり、ノーマライズ(レンジを-1から1にそろえる)したりと、記述子の選択も手間だけど、データセットを分ける際にも記述子の分布にも気を使わなければならず、、、

正直だるいヨ

実際、この部分をプログラムがある程度面倒見てくれるツールなんかもあるらしいんだけど、、

Rで書いてみようとしてみたナリ。

一応、R NewsのSVMのページからランダムにセットを分ける方法を見つけたのでヒストリをのせた。

http://cran.r-project.org/doc/Rnews/Rnews_2001-3.pdf

nrowは大文字で。

$ library(e1071)
$ library(rpart)
$ library(mlbench)
$ data(Glass)
$ index <- 1:NROW(x)
$ testindex <- sample(index,trunc(length(index)/3))
$ testset <- Glass[testindex,]
$ trainset <- Glass[-testindex,]

あとはパッケージで、dprep,Designあたりがそれっぽいかなって感じ。

説明変数の分布の度合いを考慮したセットの分割をしたいので、もう少し考える必要はある。

citychart探し

ここ2,3日、excelみたいなcitychart(3次元ヒストグラム)をwebで表示するツールを探してた。

実際にやりたいのは、

  • X軸: 時間軸
  • Y軸: カテゴリ
  • Z軸: 度数

を見やすく表示することだ。

gnuplotが第一選択肢だったが、イマイチ綺麗じゃないので、選択肢から消えた。

続いてPerlモジュールをあさってみたところ、GD::GraphとImagerにそれらしきものを発見

まず、GD::Graph::bars3dだが、2次元ヒストグラムを3次元っぽく見せてるだけだった。Math::Project3D::Plotのほうは Math::Project3DとImagerを利用しているようだが、ちょっとMath::Project3Dの使い方をきちんと把握してなくて動かせなかった。

やっぱRでカテゴリごとに分けてヒストグラムを表示するのが一番見やすいかなぁ。それか領域を色分けした折れ線グラフ

梅酒を仕込む2006

梅酒を仕込む季節がやってきたぞ。今年は、黒糖二本。

梅酒仕込み

日本酒でも梅酒を作ってみたいんだが、スペースがないので断念。というのは、日本酒で梅酒を漬ける場合には冷蔵保存が必須だから。

日本酒専用マイ冷蔵庫欲しいナァ。

Fedoracore5でswat

Fedoracore5でsambaの設定をするのにswatをrpmインストールしたが、xinetdの設定ファイルをいじっただけではどうもつながらん。

iptablesで901番ポートを許可する必要があった。