31082007 chemoinformatics q-chem
化学系だったら一度はコードを書いたことのあるヒュッケル法による軌道エネルギー計算はPython/Numpy/Pybelを使うと200行ぐらいで書けるヨというエントリをみつけた。
FORTRANだとこんな感じ。
31082007 chemoinformatics q-chem
30082007 SICP
遅延評価とか継続とかambとか。
ちょっとついてけなくて、問題も解かずにとりあえずざっと読んだ感じ。一度立ち止まって色々調べてもう一度戻ってくる。あと、知ってる言語での実装も追いかけながらきちんと理解する。
あと5章の意義がいまいちわからん。レジスタ計算機を実装するとどういいんだろう?そこまでわかってないと継続とかきちんと理解できなさそうだっていうのはなんとなく感じるんだけど。
(4章とかを)わかっているから、5章を読むことでさらに理解が深まるという章なのではなかろうかと。
かぶれ気味かなと思いつつも、指が勝手にOn Lispを注文した。
29082007 life
僕はスキルアップに重要なのは結局のところ、
に尽きるんではなかろうかと思ってイル。
検索力を広義に解釈すれば、知りたいことを知ってるヒトに教えてもらうという能力もリッパな検索力だろうなぁと思うような事があったので、そのとき考えたことをメモっておく。
教わるという行為は結局のところ、教える側に委ねられてるわけで、ヒトの知識とかノウハウをたいしたコストなしにもらうわけだから謙虚さが必要だ。だから、ヒトに教えを受けている最中なのに、ちょっとかじったぐらいの知識で「それは知ってる。むしろ僕の知りたいことは云々」とかいって話の腰を折ることを繰り返したりすれば、教えるほうも嫌になるだろうし、「ググれば君ならわかるから大丈夫!」なんて切り替えされるようになったらスキルアップの機会的に大きな損失だ。
「それは知ってる。むしろ僕の知りたいことは云々」と言いたくなる、つまり自分の期待している答えが返ってこない事自体、本人の問い合わせ能力の低さを露呈しているだけか、そもそも問い合わせるべき人間を間違えている(検索先を選ぶ能力が低い)のではなかろうか?と自問自答してみる必要があるだろう。
「ちゃんと教えてくれたら3分で済んだのに、ググって調べなきゃいけなかったので調べものに3時間かかった」は、 「検索能力が低いので3分で済むはずの仕事に3時間費やした」 と言い換えてもいいだろうし、「教わればわかる」というのは裏返せば「教わらなければわからない」だ。
そういう論理でいけば、教える側に
教えなきゃわからんやつは教えてもわからん
なんてのは十分アリかなとか思った。
28082007 Meadow
マイナスたたくとき右手の小指を少し伸ばすので打ちまくると指がつりそうになることがあるんだけど、単にストロークポジションが悪いだけなのか?なんか指が寝気味なだけの気もするが、、、
28082007 perl
単純なピボットがしたかった。
use Text::CSV::Simple;
my $file = shift;
my $parser = Text::CSV::Simple->new;
my @list = qw/cl1 cl2 cl3 cl4 cl5/;
$parser->field_map(@list);
my @data = $parser->read_file($file);
my $pivdata = {};
for my $d (@data){
for my $label (@list){
push @{$pivdata->{$label}},$d->{$label};
}
}
for my $label (@list){
print join ",", @{$pivdata->{$label}};
print "\n";
}
SICPの4章とか読み始めたらDSLが気になってきてJesse Vincent - Abusing Domain Specific Languages for Fun and Profitをちゃんと見ようと。
で、気付いたんだがgoogle video playerってどうなっちゃったんだろうか?
まぁいいかってことで、mp4で落とそうとすんだけどなぜか10Mぐらいでこけてしまう。
26082007 Meadow
WEB+DB PRESS Vol.40を読んでいたら、長年の疑問が解決した。
M-x eval-buffer
で.emacsのリロードができる。 いままでやり方がわからなかったので不本意ながら再起動してたという、、、
25082007 music
25082007 SICP
サケダメ宣言が出されたので、夜な夜なお茶を飲みながらSICP。あと、最近また電車通勤しているので毎朝SICP。
そんなわけで、3章も順調に消化。というか最後のほうはわかんない問題が多くて端折ったけど(3.60くらいから華麗にスルーした)。
特に無限ストリームと遅延評価のところを読み終えてクロージャってものに対する認識がちょっと変わったかも。
いままでは、オブジェクトは関数を保持したデータ、クロージャはデータを保持した関数なんて理解してたんだけど、今はクロージャは環境を隔離して時を止めたものみたいな感覚で接している。
そんな今ではλ萌え - たらいを後回しが面白く読めた。
25082007 SICP
yesコマンドみたいにひたすらyが出力される無限ストリーム
(define yes (cons-stream 'y yes))
SICPの3.5面白いけど、本の写経だとcons-streamが実装できないので手を動かす時に魅力が半減するよな。というか、ここまでくるとどうしても動かしてみたいでしょう。
ググって、真の写経(マクロ分からんが)、実行してみる。
gosh> (define yes (cons-stream 'y yes))
yes
gosh> (car yes)
y
gosh> (car yes)
y
gosh> (car yes)
y
gosh> (car yes)
y
gosh> (car yes)
y