17092007 music drum'n'bass
前作は僕的にいまいちだったのだけど、今作はイイ。特に後半
- Eternal Optimist (feat. J'nay)
- Chances (feat. Linda Gail Lewis)
あたりの流れが好き。
High Contrastのアルバム買っといてアレだけどリキッドファンク~ってのは実は苦手。あのチャカチャカ感がダメだな。
17092007 music drum'n'bass
前作は僕的にいまいちだったのだけど、今作はイイ。特に後半
あたりの流れが好き。
High Contrastのアルバム買っといてアレだけどリキッドファンク~ってのは実は苦手。あのチャカチャカ感がダメだな。
16092007 bioinformatics
おー、おもしろそうだ。
バイオインフォではゲノムからメタボロミクスまで幅広いデータを扱いますが、これらの大規模なデータを理解するためには適切なビジュアライゼーションと使いやすいユーザーインターフェイスが欠かせません。 そのような状況の中で、ネットワークの可視化を行う Cytoscape や、複雑な系のシミュレーション結果を可視化する E-Cell 3D など魅力的なアプリケーションが開発されてきています。また、Web2.0 時代を迎え AJAX などの技術を活用した効果的なインターフェイスも普及してきました。そこで、今回は「ビジュアライゼーション」にフォーカスを絞った研究会を開催したいと思います。
データの量と種類が増えたときに目という(中途半端な)デバイスにどうやって認識させるかというのはかなり興味がある。
ケモインフォだとなかなかSAR表から先にいかないのが不思議で仕方ない。多次元最適化とかいってexcelの表がZ列超えんのが普通なのに、、、よく読めるなと感心する。
あとbioflashとかどうなってるんだろうか?あれもAjaxよりも視覚にうったえる力が強いと思うので面白そうだなと思ってたんだけど。
Higher-Order Perlの4章は100pageに及ぶイテレータの章。
Higher-order Perl: A Guide To Program Transformation4.3.1のpermutationのところがかなり面白い。組み合わせをシーケンスにするとことか基底を列ごとに変える部分とか。4.3.2はゲノム配列の組み合わせ問題で懐かしさ満開、といっても僕はそのころはEMBOSSとかに頼っていたのであまりそういう問題に関して深く考えたことなかったな(既にツールとして色々あったし、、、)
4.4でイテレータ版のmapとgrep。これは色々と楽しそう。Iterator::Utilというモジュールがある。
後半は読み物色が強くなってて、イテレータの終わりとSQLでいうNULLにあたるものをどう区別していくかみたいな。一番最後にweb spideringの例が示してあってigrepとimapがかなりいい感じ。
Higher-Order Perl
hash,arrayのほかにクロージャもblessできる。
Perl のオブジェクトを作るときは、まず組み込みのデータ型から適当なものを選びます。普通はハッシュを使うことが多いと思いますが、配列やクロージャ(無名サブルーチン)もオブジェクトに出来ます。
Higher-order Perl: A Guide To Program Transformationいくつかのアクションを持つイテレータを用意したとき
$it->('next');
とか書かないといけないところを
sub Iter::next {$_[0]->('next')}
というような関数を用意する。更に、イテレータを受け取ってblessして返す関数を適用。
sub Iterator (&) { bless $_[0] => 'Iter'}
そうすると、
$it->next
というようなメソッド風呼び出しが行え、一種の構文糖衣的な使い方と考えておけばよいのだろう。
Higher Order Perlのappend()
イテレータのappendの完成。素晴らしい。この流れでイテレータのzipとかもやれそう。
Higher-order Perl: A Guide To Program Transformation14092007 music
520ユーロか。なんか微妙な値段設定だな。でも欲しくなりそうだなあ。
最後の式を評価して返す
func {なんかコード} = func(sub {なんかコード})の略らしい
sub Testfunc (&){return $_[0]->();}
Testfunc {print "hello kzfm"};
これはうまく動くが(&)がないと
sub Testfunc {return $_[0]->();}
Testfunc {print "hello kzfm"};
下のようなエラーが出る。
Not a CODE reference at test.pl line 1.
デバッガ動かしてみると先にTestfunc {print "hello kzfm"}がブロックとして評価されて、その後Testfunc {return $_[0]->();}が評価されるので$_[0]がコードブロックじゃないといわれているようだ。
プロトタイプで(&)ってことはコードブロック受け取ってるってことだよな。無名関数ってコードブロックか、、、あーなんとなくわかってきた気が。やっと{}がlispの括弧に見えてきた。
GaucheはなにやらPerlとかPythonっぽくて楽しいですな。毎日Gaucheクックブックを一つは読むようにしてわからないとこを調べながらというスタイルで。(まだ3日だけど日付順に読んでる)
いくつか簡単な例を示します。最初の例はUnixのcat(1)コマンドを模するものです。エラー処理やコマンドラインオプションの処理は行っていません。
#!/usr/bin/env gosh
(define (main args) ;entry point
(if (null? (cdr args))
...
(cdr args)ってことはperlの$0みたいに(car args)もプログラム自身の名前を返すのかも。
(define (main args)
(print "car:\t" (car args))
(print "pname:\t" *program-name*))
program-nameはスクリプトファイル名に束縛されるらしい。
$gosh test.scm
car: test.scm
pname: test.scm
09092007 SICP
Amazonに訳が悪いと散々書かれていて、ちょっと躊躇したのだけど、実際買って読んでみたら特に訳がひどいと思うことはなかった。
あと、原著読めばとか書いてあるのは、原著読めばって書く前に原著読むだろうから、そもそも訳が悪いとかすらいわんだろう。結局何であんなに訳が悪いというコメント気にしたのか今となってはさっぱりわからん。日本語訳より原著で読んだほうがよくわかって良いというレビューがなかったのもいまとなってはフーンとか思う。Amazonの訳が悪いってのは何の裏返しなのかよく考えないといけないのかもと、いまさら学んだ。
訳が良かったらもっと早く飲み込めるかというと、そういうもんではない気もするし。
僕的には買って良かったと思える本の一つ。