|
2003年11月19日 水曜日 |
久々に大学で徹夜している。昨日から取り掛かったプログラムを作成していたからだ。ぶっちゃけ修論とは関係ない(笑)先日から有機化学物質の赤外スペクトルを眺めたり探したりしていたのだが、とてもよいサイトを見つけた。
NIST Chemistry WebBook
http://webbook.nist.gov/chemistry/
化学に無縁の方には無用なサイト紹介だが、このサイト関係者にとってはかなり役に立つサイトだろうと思う。無論この世界にどっぷり使ってる人にとっては常識的なサイト、もしくはもっといいサイトを知ってるかもしれない。しかし、俺みたいに物理専門だとか化学をあまりしらないけど、必要だと言う人にとっては大変助かるサイトなのだ。と、個人的には思うわけだ(笑)でまあ、このサイトには色々な情報が無償で手に入る。勿論著作権は放棄していない。それで俺は赤外吸収スペークトル(IR)が必要なのだが、生データがなんとX軸にたいしてY軸のデータと言う風に1:1で記録されているのではなく、容量を抑えるためだろう・・・一つのXに対して10個ぐらいYのデータが入っていた。そしてXの刻み幅がデータに記載されている。とほほ・・・これを手作業でいちいちやってると、何日の作業になるか分からない。と、途方にくれていたが幸い表計算ソフトで数回の手作業を行えば行列をX:Yを1:1にできる事が分かった。と、ココまでは実は先週の話。これからが大変だった・・・昨日の事だ。先週収集したスペクトルより更に様々な物質のスペクトルが必要になった・・・はっきりいって、これを表計算ソフトで直すのはカナリだるい。半日がかりの作業になる。で、プログラムを作成すると言う事になった。それでC言語を勉強していたのでそれを試した・・・結果的にはファイルの扱いが異常に難しく、更に悪い事にデータによって少しづつ形式がちがうのである。これを対応させるのは難しかった。そもそもファイルの読み込みをキチント勉強していない。無理だった・・・と、諦めていると、内の研究室のボス(教授)がN88-BASICでプログラムを組んで頂いてしまった(汗)と、ここで辞めて置けばよかったのだ。あまんじてこのプログラムを使ってれば今日中にデータの解析まで終わっていただろう。しかし、ナガイはここからが本番だった。まわりから、ナガイ君もつくるんじゃないのかとご批判を頂いた(笑)幸いSEになるんだから作らないとね・・・まあ自分も作ってみたいと思っている。そんなこんなで一人プロジェクトXが始まったのだ・・・チャンチャカチャンカチャンチャカチャンチャカ〜風の中のスバル〜〜♪とC言語は既に諦めていた。やれるのはVBへの移植、N88のエミュ導入、多言語からの一からの出発だ!・・・実は一通りすべて試してみた。多言語に関しては昔Perlをかじった事がある。大学内のHP検索システムを作ったこおとがある・・・・しかし、実際やってみると・・・Perlなど忘れてしまった。リファレンス本もない・・・で結局簡単に作れるAWK(オーク)というプログラムで作る事になった。研究室にAwkを知ってる人がいるので進めていくのが楽だろうとおもったし、簡易プログラムだとなめていたからだ。そこからの戦いはながかった。そもそもAwkの仕組みが良くわかっていなかった。リファレンスがかかれているサイトを探しては眺めて、必要な関数や使えそうなテクを集めていった。それで日にちが変わってしまった。何十行にもわたるコードをひたすら書いてはテストを繰り返し、壁にぶつかってはテストを繰り返した。そして、おなかがすいたので牛丼屋にいった。そこにサークルの後輩がいた。彼もまた研究室がよいだった。すこしばかりダベって、また俄然やる気が出てきたのでプログラムにむかった・・・するとどうだ・・・頭がすっきりして、コードが簡単に思い浮かぶ。頭の中で確かにプログラムが動くと言う確信が出てきた。そして、プログラムをスタートさせると・・・なんと動いた。しかも、内容自体6行で程度の構文しかかかれていない。凄くエレガントだ!すばらしい^^。そんな感動に包まれたので今ここに書いているわけだ。
BEGIN{}
(/DELTA/){DE=$1;
split(DE, a, "=");
d = a[2] + 0;}
{suji = $1 + 0;
if((suji != 0)){split($0, Array, " ");
for (k=2; k<=NF; k++)
{printf("%10.5f\t%10.5f\n", Array[1]+d*(k-2), Array[k]);}
}}
END{}
C言語であれば結構なソースになると思うが、このAwkは本当に短くていいすばらしい。宣言文を書かなくていいってステキ(笑)ありえない数値変数と文字の変数の足し算とかもある・・・正直びびった(笑)でも関数自体はC言語に非常に良く似ていて分かりやすい。
Awkについてはこのサイトがお勧めです。
The GAWK Manual
http://infoshako.sk.tsukuba.ac.jp/jdoc/GNU/AWK/jgawk-jman/html/jgawk_toc.html
スーパーマリオになるんだ!!
昔長渕剛主演のドラマで「マリオ」と言うのがあった。たしかある夫婦(?)に突然子供が迷い込んできてなぜか共同生活をはじめるとか言うドラマだったと思う。子供は一切会話をしない。そしてひたすらマリオをしているのである。当時はもうマリオは古いゲームで会ったがドラマにファミコンが登場する事が俺にとっては画期的だった。だからわけもわからずドラマをみていた。そして子供がマリオをするたびにこいつヘタやな〜とか思いながら子供心に優越感にひったっていたような気がする・・・・俺の子供時代ってなんかいやな事でもあったんかなぁ(笑)ちょっあのころの自分が理解できない。今思い出すと結構そんな事が多いが・・・まあ子供だからなぁ・・・・子供の発想はよく分からん。大人になるとその感覚を忘れてしまうため自分のことでも理解できなくなるんだね・・・ハハハ・・・
|
|
|
|
|
|
|
どれも毒キノコっぽく見えるが左から2番目のきのこが喰えるらしい。かなり群生している聞いたので広大内のとある場所に足を運んだのだが、もう時期が遅かったようだ・・・しぼんでいた。 |
注意:このキノコを食ってもスーパーマリオにはなれません。
|
|