19122006 music
様式美っぽいのが随所に感じられつつも、容赦ないブレークビーツとレイブの懐かしさが漂う。
メタモが凄い良かったので、最近購入。Crunky Headsがヨスギ。
19122006 music
様式美っぽいのが随所に感じられつつも、容赦ないブレークビーツとレイブの懐かしさが漂う。
メタモが凄い良かったので、最近購入。Crunky Headsがヨスギ。
19122006 perl
コンピュテーショナルケミストリー関連の昔のツールとかは
とかいうのが多くて、ラッパー書くときにテンポラリ作ったり消したりしないといけなかったりして結構面倒だ。
で、File::TempとFile::chdirの組み合わせでかなり楽ができそうな感じ。
use File::chdir; $dir = tempdir( CLEANUP => 1 ); ($fh, $filename) = tempfile( DIR => $dir ); print $fh $input_data; { local $CWD = $dir; my $str = system("exec_legacy_tool_with_file -i $filename"); die $str if $str; }
これで、実行後のテンポラリのファイルとかディレクトリは自動的に消されるし、作業ディレクトリを変更してあれこれやったこともローカル化されているので、スコープ抜けるときに綺麗になるので安心。
17122006 perl
Text::CSV::Simpleはフィールドを指定してやるとCSV読み込むときにハッシュにしてくれるので DBD::CSVとかDBD::AnyDataよりも便利じゃないかと、こっちばっか使うようになってしまったのだが、Text::CSV::SimpleはCSVにありがちなヘッダー付きのcsvをうまく処理してくれない
仕方ないので、
$parser->field_map(qw/id name null town/); my @data = $parser->read_file($datafile); shift @data;
と、フィールド指定をして、ハッシュで受け取ってから、ヘッダーの行(最初の行)をshiftして落とすという処理をさせてた。でも、これだとフィールドが100とか200とかあるとfield_map書くのが面倒でたまらんので、ヘッダー処理するようにしてみた。
こんな感じのヘッダー付きのcsvを用意したら、
name,address,etc kz,tokyo,1 yu,kyoto,2 ha,mie,3
いつものように、Text::CSV::Simpleのノリで
use strict; use Text::CSV::Simple::WithHeader; use Data::Dumper; my $datafile = "data/test.csv"; my $parser = Text::CSV::Simple::WithHeader->new; my @data = $parser->read_file($datafile); print Dumper(\@data);
ちゃんとハッシュになって返ってくる。
$VAR1 = [ { 'name' => 'kz', 'address' => 'tokyo', 'etc' => '1' }, { 'name' => 'yu', 'address' => 'kyoto', 'etc' => '2' }, { 'name' => 'ha', 'address' => 'mie', 'etc' => '3' } ];
Text::CSV::Simple::WithHeaderに置いておいたがwant_fieldsには対応させてない。
16122006 snowboards
ずっと気に入って着てたgreen clothingのウェアがさすがにボロボロになってきたので、今シーズンはいっちょ新しいのに替えるかと、boothに行ってきた。
ま、ウィンドウショッピングのつもりだったんだけど予想外にイイウェアが多くてあれやこれやと悩んだ挙句、想定外の予算を突っ込んでしまった。
ちゅうわけで、今シーズンからはsepiaのウェアで滑る。
15122006 books
なんか最近、持て余してる感が強いなぁと思ってたところで、こういう本もかなりおもろかった、ちょっと経営層向けな感じもするが、色々と考えさせられることは確か。
でも、成果主義的なアプローチには向かないのかナァなんて思ったり。特にファーマは意外にwhat's to make よりhow to makeが重視されたりするからな。
こちらの図を使って考えてみるに、
じゃぁ、キャリア形成どうすんの?とかいう話になるけど、今だとケモインフォもバイオインフォもオープンソースなソフトウェアの充実度が著しく、色々と自分で勉強できるので、単にやる気だけの問題じゃないのとか最近思うようになってきたし、仕事のやり方もそうなってる気がする。
実際はまぁ、ドライ系だからそういう考え方ができるんであって、実験メインだとそういうわけにはいかんだろうし、ドライでもファーマ固有のHTSみたいなリアルな化合物をたくさん動かしたり、それから派生するインフォマティクスとかは別だとは思うけど。
で先日、鰻をつまみながら、ベンチャーのヒト(うちの会社から転職した)と話す機会があって、成果主義、成果主義って言われると上記みたいな感じになっちゃって息ぐるしいんすよねー(特に最近)みたいな話題になったら、
そういえば、そういうのもあったなぁ、成果主義(懐かしい)。そんな風に言えるのは企業にドップリ浸かってるからなんだよな~
と言われて、自分の視界の狭さに気付かされた。
なんか、どっぷり浸かりすぎなのかなぁ、、、、、
違うフィールドのヒトと話すと新鮮だし、そろそろ色々考えないといけない時期にきてんのかもしれん。
15122006 静岡
14122006 SOAP
昨日のエラーは、SOAPpyのSOAPActionがなんかおかしいということで落ち着いた。
あれこれとwebをあさってみたのだけど、結局デバッグのやり方がわからなかったので、直接観測することにした。久しぶりのetherealだ。
とかいって、ここんとこ使う機会もなかったのでインストールから。最近のFCだと
yum install ethereal
だとGUIが入らなくて、
yum install ethereal-gnome
なのね。知らんかった。
でもって、パケットキャプチャーしながら、httpのみフィルタでSOAP::Liteのクライアントと、SOAPpyクライアントのXMLを比較したところ、SOAPpyはヘッダーのSOAPActionがなんか変だということに気付いた。
SOAPAction:"hi"\r\n
と、メソッド名が入ってるし、、、、エラーの原因がなんとなく見えてきた。で、なんじゃこりゃーとかいいながらSOAPAction直接指定したらやっぱ動いた。
>>> server = SOAPProxy('http://localhost/cgi-bin/test.cgi','http://localhost/Demo', \ soapaction='http://localhost/Demo#hi') >>> server.hi() 'hello, world'
でも、これだとあんま意味ないし。なんでデフォルト空文字列にならないのかなぁ(ソースをちら見したけどわからんかった)。SOAP::Liteで書いたサーバーのほうでSOAPAction無視するようにすればいいのかも知れないけどなんか気持ち悪いんだよナァ。
DWの第三部は相互運用性とかいうネタなのな。なんだかなー(といまさらながら)思った。
KEGGみたいにWSDL書いてやればこういうことあんま気にしなくていいのかなぁ(rubyでもperlでもpythonでも楽チンですよみたいに見えるし)。それとも結構苦労したのかな?
13122006 SOAP
perl同士だと、うまく通信できてんのにpythonのクライアントだとこける。
が、原因がさっぱしわからん。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/usr/bin/perl -w use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI -> dispatch_to('Demo') -> handle; package Demo; sub hi { return "hello, world"; } 1; |
1 2 3 4 5 6 7 8 9 | #!/usr/bin/perl -w use SOAP::Lite; print SOAP::Lite -> uri('http://localhost/Demo') -> proxy('http://localhost/cgi-bin/soap.cgi') -> hi() -> result; |
でうまく動くのに、Dive into python 12章を参考にしたpythonクライアントは動かん。
>>> from SOAPpy import SOAPProxy >>> server = SOAPProxy('http://localhost/cgi-bin/soap.cgi',namespace='urn:Demo') >>> server.hi()
で実行すると、下のエラー
SOAPpy.Types.faultType: \ <Fault soap:Client: SOAPAction shall match 'uri#method' \ if present (got 'hi', expected 'urn:Demo#hi'
もうすこし、ちゃんと理解しないといけないなぁ。
13122006 music
忘れずにダウンロード。
THOM YORKEが未発表曲を期間限定で無料配信 - bounce.com [ニュース]
ファンに向けて未発表曲を無料配信することを発表。日本時間の12月11日深夜より、アルバム『The Eraser』のオフィシャルサイトにて配信がスタートした。現在配信されている音源は、前述のソロ作に収録されていた“The Clock”と“Analyse”、それぞれのリミックス・ヴァージョン。
Surgeon Remixが良い。ミニマルにTHOM YORKEの声って結構あうじゃんと気付かされた。
カバーも良かったけど。
そろそろ、レコードとかmp3に取り込んでボードトリップに備えないとな。