File::Remoteのファイルハンドルを動的生成したかった

rshが必要な古いマシンで動くプログラムって、引数にファイルをとることが多い。つまり、インプットファイルをリモートに書き込む必要があるわけだ。nfsマウントでもいいかもしれないが、fstabが無駄にごちゃごちゃしてくるので好きではない。潔くNet::FTPでもよかったのだけど、この際File::Remoteを使ってみた。

で、このモジュールはなぜか

use FileHandle ();
my $fh = FileHandle->new();
open($fh, "test.txt");
close($fh);

みたいな書き方ができないし、じゃぁこれでどうだと

        $rh->open(RH, ">remote:/tmp/$rfile") or die $!;

これはuse Strictしてると

Bareword "RH" not allowed

とか怒られる。で結局、下の感じでフニュケたコードになってしまった。

{ # Bareword "RH" "LH" allowed
    no strict 'subs';

    my $lh = File::Remote->new();
    $lh->open(LH, "$file") or die $!;

    my $rh = File::Remote->new();
    $rh->open(RH, ">remote:/tmp/$rfile") or die $!;
    local $/;
    my $f = <LH>;
    print RH $f;
    $rh->close(RH);

    $lh->close(LH);

}

どう使うのが賢いやり方なんだろう。

$rh->open(*RH, ">remote:/tmp/$rfile") or die $!;

とでもするのがいいのか?

Rでタンパク質の立体構造を扱う

Rで蛋白質の立体構造とか配列を扱えるパッケージをdel.icio.us経由で発見。

Bio3D: Home

Bio3D is an R package containing utilities for the analysis of protein structure, sequence and trajectory data.

Structure Biologyっぽい関数が多くて、MDの解析したりとか。あまり凝ったことはできないみたいだけど、Rからpdbのデータ読めるのはかなり便利。DistanceMatrix綺麗に描いてくれるだけでも、ちょっとした用途に使える。

> library(bio3d)
> pdb <- read.pdb(system.file("examples/1bg2.pdb", package="bio3d"))
[1] "HEADER    MOTOR PROTEIN                           04-JUN-98   1BG2              "
> k <- dm(pdb, selection="calpha")
> plot(k)

distance_matrix

この勢いで膜貫通予測とかできるようにならんかな。あとリガンドとのDistanceMatrixを作るにはマトリックス少しいじればよいかな。というか、こうやって作ったマトリックスそのものをfingerprintに変換してplsとかpcaとかにまわせられたら素敵かも。

この場合、CoMFAとか違いがでるかな?うーん、やってみないとちょっとイメージできないかも。

Net::Rshはrootでないと動かん

昔からkondaraで使ってたrshスクリプトをSOAP対応にしてもう少し使いやすくしたいと思ったんだが、、、

kondaraってSOAP::Liteモジュールが入らんし、5.8のコンパイルも通らん。しかもsshも入ってないので、Net::SSHもつかえん。

ただ、Net::SSHがあるってことはNet::Rshもあるかなあと探したらNet::Rshを発見。

こいつを使ってperlスクリプトを書いてみた。

書いてみたけどなぜか動かん。何故ー?と小一時間悩んだ結果

Net::Rsh - perl client for Rsh protocol - search.cpan.org

Rsh protocol requires that the program be run as root or that the program be setuid to root

うげ、これじゃ使えねぇとか思いつつrootで実行したらあっさり動いた。

結局、perlスクリプトでsystem関数使うのもアレなので、

my $cmd = "rsh $host $rsh_cmd";

open my($fh), "|-", "$cmd" or die $!;

while(<$fh>){
    print;
}

とかやったけど、|-とか-|とかちゃんと理解してないので調べないといけないゾ。

またもやblosxomの遅さが気になってきたヨ

ココ何日か、blosxomの遅さが気になりはじめてきた。クライアントでページを表示させるのに10秒以上かかると、さすがに遅いナァって思うし、サーバー状況をtopで眺めてると、5つくらいのblosxom.cgiでスワップしそうになるので精神衛生上もよくない。 やっぱ静的なキャッシュにしたいなぁという思いが強まってきた。とりあえず気休め程度にページングとかのキャッシュ対象にしていないプラグインをはずしてみたり、last.fmのやたらと遅いjsをやめてみたりしている。

以前dynamic_cacheで試した方法だとうまくいかなかったからなぁと何気に検索かけてみたら、

をを~cgiはドットなディレクトリに配置すればいいんだ

と。

昔参考にしたのにちゃんと理解してなかったヨ。

新しいサーバーはこの設定で動かしてみよう。

あと、google sitemaps使ってるけど、ヒットしないページが結構あるので、ついでに検索はSearch::Estraierに変更したい。

METAMORPHOSE

去年に引き続き、今年もいってきましたヨ、METAMORPHOSE 06ちなみに去年はこんな感じ1&2

今年は開場よりも30分ほど早い16時には着いたのだが、既に長蛇の列。

長蛇

去年よりも早く着いたのに、列長すぎ。
17時過ぎには入場できて、キャンプサイトを目指す。結構歩くといっても朝霧ほどじゃない。プラネットの近くが空いてたので、大体去年と同じ場所にテントを張った。

そして近くのミラーボール塔

ミラー

夜になると、スモークとかがバンバン噴出してきて、ちょっといい感じのスポットに。

去年はゴミがえらいことになっていて、場所貸すほう的にはイヤだよなとか話していたのだけど、今年も修善寺開催(ナイス)。今年はデポジット制(買うときに100円多く集めて、皿や空き缶等のゴミを持っていくと返金)だったので、去年と比べものにならないくらいゴミが少なくてよかったヨ。

というわけで、アーティストの感想など。

AKI

ムンベー好きにははずせない選択、もちろん最前列。AKIってハード目なのね。あっという間の30分。

GOTH TRAD

初めて聴いた。やばすぎ、カッコイイ。新鮮度的には今回一番。最初から最後まではしゃぎまくった。はじめのほうは、かっこいい曲かけるナァとか思ってたんだけど、レコードじゃないことにすぐ気付いた。

インタビューみっけたので読んだら、グライムなの?

うーん、グライム食わず嫌いだったかも。

SLEEP WALKER feat PHAROAH SANDERS

jazzのヒトって知らなかっただけに、テントから聴こえてきてうおー良すぎってなった(今回の連れは去年と一緒のjazz好きだったので)。しかもHMVテントでCD衝動買いしちゃったし。

井上薫

朝日が昇る前の井上薫はやばすぎ。しかも一眠りしてやたらテンション高かったし。人力ミラーボール回しとか雨上がりでちょっぴり気温がさがってたとか、今年のプラネットステージは白のヒラヒラが幻想っぽさを醸し出してたりとか、色々な要素があいまって、はまった。

ラストのcalmは気持ちよく踊れてたのだが、high tech jazzのあとにマッタリ曲が流れたあたりで、ちょっと疲れちゃったので最後を待たずにテントに戻って寝転がってたら、ソラーステージで演奏してたSUNSHINE JONEESがカッコよくて、いけばよかったかもとか。

百笑いの湯に寄って、反射炉の奥の三つ割り菊で蕎麦。田舎を注文

久々のうまい蕎麦。

フェス->温泉->蕎麦のパターンはイイ(ボード->温泉->蕎麦みたい)。

右クリックでWebLSD

あれ、LSDって昔はpdic形式のデータ配布してたよなァと思いつつ、探してもみつからないので英辞郎みたいに右クリックで検索できるようにしてみた。

http://lsd.pharm.kyoto-u.ac.jp/cgi-bin/lsdproj/ejlookup04.pl?query=$

を拡張機能で設定。

config

で、実行すると新しくタブが開いて検索結果が表示されるようになったとさ。

config

pubmedのアブストをRSSリーダーで流し読みしてるときなど便利。

みんなのpython読んだ

メタモ前に時間が空いていたので、みんなのpython全部読んでしまった。

ProductName みんなのPython
柴田 淳
ソフトバンククリエイティブ / ?円 ( 2006-08-22 )


一通り読んで、doctestって便利な仕組みだとプチ感動。あと、リスト内包表記が使えるので便利そうだけど、表記の仕方がhaskellのほうが(見た目)わかりやすいかなってとこ。

Rとかbiopythonみたいな科学技術計算関連でちょっと使ってみようと思っているが、その前にTurboGearsDjangoをさわってみる。

RNews volume 6/3はオモシロげ

CRANでRNewsの最新版が読めるようになってた。今号はなかなか興味深い記事が多かった。全部読んでみたけど特に印象深かったのはこの3つ

Fitting dose-response curves from bioassays and toxicity testing

毒性試験との用量依存性曲線を描くためのコツというかそんな感じの内容。

酵素アッセイとかだと普通にシグモイド曲線のフィッティングをすればいいが、ED50なんかを求める系だと、hormesisがおきるので、特に低用量下でブランクよりも高い値がでる場合がある。そういう場合は linear-logistic modelを導入するとよいらしい。

The pls package

僕はよく使うので、multi-response modelsのとこと、varidation周りの話題が参考になった。

Generating, Using and Visualizing Molecular Information in R

RからCDKを使う話。SJavaをつかってRから記述子を抽出したりとか画像を表示したりとか。僕はRから他の言語を使おうとはあまり思わないほうなので参考になったという感じ。むしろ、jython+CDKRpyを組み合わせて色々できると面白いナァと思う。

みんなのpythonが届いた

Higher-order Perlの4章を読み終わった。iteratorの章だが100ページ近くあってなかなかの読み応えでちょっと読み疲れた。

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


さぁ、5章だと思ったら、みんなのpythonが届いた。

ProductName みんなのPython
柴田 淳
ソフトバンククリエイティブ / ?円 ( 2006-08-22 )


うーん読む暇をみつけないといけないが、haskellのあとだなぁ。

MOPAC7

サーバーにMOPACを入れてみた。C3だからどうかなぁなどと思っていたが、なかなかさくさく動くので結構満足

port:3016 / Applications

MOPACの利点は、半経験的……シュレーディンガー方程式を一から解くのではなく、計算途中で 経験的パラメータを部分的に導入し、計算コストを下げるという点です。MOPACなら現在の 家庭用PCでも十分計算が可能で、それほど待つことなく計算結果を見ることができます。 しかし、それで計算精度が大きく低下することもありません。MOPACで使用されているパラメータ は既存の数多くの有機分子の構造パラメータで最適化されていて、通常の有機分子を計算する 分には、十分な精度の結果を与えます。

とはいえ、このままだとアウトプットの解釈がしにくいナァ。SMBと組み合わせて、可視化はWINでするとか。そんな対応しか思いつかんヨ。