2003年12月30日(火)

散歩

犬を散歩に連れ出して原っぱやら河原やらをほっつきまわっていると、未だにゲームブックの文章が頭に浮かぶ。

行き止まりだった。しばらく景色を眺めたら元の場所に戻ろう

とか

草むらに古い自転車が捨ててあった。近付いてみるなら XXX 

とか

階段が隠れているのを発見した。降りてみるなら YYY へ。それとも今度は右の方へ行ってみる (ZZZ へ)。

とかいう感じ。

maxima on FreeBSD

ports からインストールは成功するのだが、実はこれだけでは動かない罠。

答えは、gcl ではなく cmucl を使おうとしているのが悪い(o_ _)o

それはともかく、なんとなく lisp に興味が湧いたのでチュートリアルとか探してみたり。
ここなんか例題が、しつこいくらいに再帰で書いてあったりして楽しい。

lisp のクイックリファレンスってどこかに堕ちてないものかな


とりあえず、これで、elispについて勉強してみる。

2003年12月28日(日)

年1メンテ

実家の FreeBSD に maxima と octave をインストールさせられる。
ふむ、 maxima は lisp の上で動くのか。
octave は lapack を叩き lapack は BLAS を叩く。最近の ports はその BLAS に ATLAS を使うようになっていてコンパイル時に最適なコードを頑張って探索してくれるのだが、これがいつまでたっても終わらねーでやんの。 Pen4 2.8GHz で4時間近くかかってたんじゃなかろうか。

ついでに、あれこれと古いパッケージを portsupgrade で差し替えていって、半端に削除されてそのまま転けやがったり、管理情報的にはインストールされてないのに半端にファイルが残っていたりとカタストロフに達して復旧に手間どる。

GPU スパコン

graphic chip で科学計算用スパコンというと grape な方向性だろうか?
最初読んだ時、 postscript プリンタに計算までさせて結果を書かせる話を思い出したのは、年のせいかな?

参考: http://pc.watch.impress.co.jp/docs/2003/1226/kaigai054.htm

2003年12月26日(金)

携帯の TV

帰省するので職場の前から高速バスに乗ろうと待っている間、 TV のチューニングをやり直させると NHK を拾いやがる。でも前後左右に一歩踏み出すだけで電波の状態が激しく変わる。バス停の屋根の陰なのか?
ともあれ、初期の目的どおりバスを待つ間にニュースでも見ておくってのは成功。

ちなみに、仙台に帰るとばっちり全部の局拾えてるよ。

2003年12月25日(木)

最小二乗 by gsl on C++

gsl の最小二乗のサンプルコードを C++ で wrap してみる。

C の癖に微妙にオブジェクト志向くさい感じがあちこちにあって、その癖 C++ とはあんまり擦り合わせがうまくいかんなみたいな。

関数ポインタを構造体に喰わせないといけないんだがどうしたものか。 gsl は C のライブラリなので構造体の側では int (*) ということになっている。一方 C++ の都合では関数ポインタはクラス名まで含む罠。さらにオブジェクトごとに実体があるってことは、ちゃんとポイントしてやるか static にするか…

virtual な member function にしてカラで宣言しておいて、実体は継承側で定義、代入は基底側でって考えたんだが無意味かのぅ。普通に C で関数書かせて引数でそのポインタ受け取るかのぅ。

mt2.65

MT-2.65 のアップグレード版と 2.65 の日本語化パッチを拾ってきて

  1. 既存の mt を tar で保存
  2. 2.65 を tmp に展開
  3. そこへ日本語化パッチを当てて
  4. 既存のシステムと diff -urb
  5. 自分で書き換えた分を確認しておいて tar cvf hoge.tar *して既存システムで tar xvf hoge.tar

なんとなく動いているようだからオッケー

古い日記のファイル名だけ変えて配付しているものだからホントに 2.65 が最新か疑ってしまった

2003年12月24日(水)

spam

内容はともかく、末尾に

無断転載・引用は禁止しております。(C)

とかあるのが笑いを誘う。(C)の使い方を知らんのかと(そっちかょ。

俺はあまり spam は届かない方なんだが、こいつは短時間の内に二つある mail address の両方に届いてた。マニアックな spam list でも使いやがったかな?

2003年12月23日(火)

最小二乗 by gsl

プログラムの中から最小二乗 fit のライブラリを使いたくてちょっと調べる。
モンテカルロ的に状況を変えながら最小二乗で得られた値を指標に使おうと思っているのでインタラクティブなの操作がいるものは没。 Mathematica は使ったことがないので没(笑)。

折角なので gsl でやろうかと思うと、これがあきれるほど面倒で参ってしまう。
汎用的なデザイン、というつもりなのかもしれないが、実質的に利用可能なアルゴリズム1種、導関数必須、データ構造決め打ち、最後に収束判定は自分で書けと来た。

萎えるな〜。 C++ でガワを作っとくかな。

用意するもの

  • fit しようするデータ列 y[]
  • fit する関数による残差列 f(x)-y[]を計算して書き込む関数
  • 同じく、各 fitting parameter で偏微分した jacobi 行列を作る関数
  • 上二つを実行する関数…
  • 上3つの関数、データ点数、パラメータ数、実データへのポインタを持つ構造体(上述の関数に引数で渡る)、へのポインタを持つ構造体
  • アルゴリズムを指す変数
  • malloc される solver へのポインタ

プログラムの流れ

  1. 上述構造体を埋める
  2. fitting parameter を gsl のベクトルに
  3. solver の初期化
  4. イテレートする
  5. テスト関数でテスト
  6. イテレーションを継続するか考える
  7. 共分散行列を計算
  8. そこから fit 結果を抽出

2003年12月20日(土)

実験

今年2度目の実験。

室温測定でオートサンプルチェンジャーがあると放置して帰れるので断然楽だな。

2003年12月18日(木)

swig

swig 実にいい感じだ。
python を console に使ってインタラクティブにあーでもないこーでもないできる。
C++ で UI 書く気にならんし、かといって条件変えるだけで実行し直したりコンパイルし直したりしてるとなんとも焦れったいものだが、これはいい。一通り計算して結果を見てから、さらに for で回すかとかパラメータ変えてみるかとかなんでもできる。
ここまでくるとファイル出力してグラフツールで描画してるのもまだるっこしい。
単機能でいいからこの中から絵を描けるようにしておこう。

shared library ?

仕事の方で C++ でコードを書いている。
C++ のクラスの中で機能を実装していくのは楽しいんだが、いざそのコードを使ってちょろっと計算しようという時 main() を書き換えてはコンパイルし直しというのがだんだん面倒になって来た。
同僚が SWIG というのを使っていたので、これを使えば実装は C++ でがりがり書いて、メインの方は python あたりをコンソールにして、インタラクティブにあれこれできるぜって期待したんだが甘かった。
swig を利用するにはあらかじめ C/C++ のコードの方は shared object にして、スクリプト言語の方から import できるようにしておかなければならない。
で、 Mac OSX の gcc には -shared がなかったんだな、これが。

散々悩んだが、最後にswig の wiki に -dynamic -bundle -bundle_loader を組み合わせる方法を見つけてなんとか解決。

問題は IBM の xlc でコンパイルする時なんだよなぁ…。
-qmkshrobj という、それっぽいオプションはあるんだが、リンクの段階で Undefined symbols が出て蹴られてしまう。なんで gcc は回避できて xlc だとできないんだ。

-qmkshrobj の時は ld じゃなく libtool が呼ばれるという記述を発見。だからこれを外して -bundle -bundle_loader hoge すると gcc の時同様ちゃんと渡ることは判った。
次はこれか

/usr/bin/ld: hogehoge_wrap.o has local relocation entries in non-writable section (__TEXT,__text)

答えは、 ld に -read-only-relocs warning を渡してエラーじゃなく warning にしてしまう。そのためのオプションはこうなる

-Wl,-read_only_relocs,warning

携帯TV

自動でチャンネルを探索させたら、 VHF 5局 UHF 3 局を発見。
ただし、職場で。アパートじゃ無理臭い。いやアパートならテレビあるからいいんだけど。
いずれにせよ携帯じゃ NHK は見れないようだ。電波弱すぎ。

2003年12月16日(火)

TV 携帯

携帯で TV を見ようと思ったが、つくばはどうもそもそも電波も弱いようで

全然見れませんでしたわ

CM に騙され過ぎたょ

2003年12月15日(月)

ファイル名操作

以下備忘録

  • ファイル名からサフィックスを剥がす -> basename(1)
    hatanoX> `basename $a .par`.dat
  • C の中なら basename(3) だけど、こいつは suffix を剥がせない
  • sh script なら変数操作
    kwz_work> ${VAR%.par}.dat

今まで `echo $hoge|sed -e 's/.par/.dat/'` してその場を済ませていたのは秘密だッ

結局こんなコードに

  char *s, *d;
  d =  new char [strlen(argv[1])+4] ;
  if ((s=strrchr(argv[1], '.')) == NULL)
    s=strrchr(argv[1], '\0');

  strncpy(d, argv[1], (size_t)(s-argv[1]));
  strcat(d, ".dat");

一見動いてるけどにゃ〜

こらぼれーてど、うぃず #うにっくす:*.jp
相談に乗ってくれた人たち、どうもでした。

再度ちなむと、 .dat とか .par とか決め打ちになっているのは make で叩きまくる予定だから。

携帯

CM でやっている TV が見れる携帯という奴、急に欲しくなって昼間職場を抜け出して(殴)機種変更してくる。

いろいろとばたばたしたが、ともあれ入手。

とかやってたら、ぼな君も買い換えか〜
彼の旧機種は J-SH07 。儂のは J-SH05 。 04 がカメラ付きの初号で、 05 にカメラをつけたのが 07 だったかな? 06 は 04 の後継でストレートタイプ。

つーか、マニュアルが厚くてめげそうです。こんなに読んでられるかっ

gsl

うちで作業していて、ふと gauss 関数の関数形を確かめたくて、本の類いが全部職場に行っているのでかわりに手もとの gsl のアーカイブを展開してドキュメントを読んでみる。

で、関数形は確かめられたんだが、ふと見ると関数のジェネレータにメルセンヌツイスターを持っているのね。いい機会だから数学関連のコードを全部 gsl を呼ぶように変えてしまおうか…。

と、思ったが、実行環境全てにインストールされていると仮定するには gsl は弱いな。某 AIX や某スパコンみたいに、妙な環境で使う可能性もあるし、いちいちインストールしてられんな。使う場所を限定できる奴でだけかな、置き換えるとしても。

2003年12月11日(木)

某学会

某中小学会に出かける。ポスターがメインで、割と完成度の低いものでも「最近はこんなんやってるよ」という証明のために出るようなところで、酷いのになると会議資料で見たものがそのまま貼ってあったり。これなら俺も適当なのをでっち上げとけば良かったか。

それにしても、学生が結構多くて驚く。思ったより会員いるなぁ。

2003年12月8日(月)

make

計算結果の解析を Makefile に記述して、順次解析できるようにしていたんだが、 gnu make って、 a が b に依存して b が c に依存して…って chain を作って出発ファイルしかないところから a を make すると d -> c -> b -> a って作っていった挙げ句に b, c d を消すのね。俺はその途中結果も全部いるんだっつーのッ

それとも suffix rule だけの挙動だろうか?

とかホテルでやっていたり

2003年12月7日(日)

同窓会

研究室の教授の還暦祝ということで新潟まで。
なんつーかたまにスーツきようとするとベルトが見つからなかったり。
関東は天気が良くて、新幹線で日向に座ってコート着てきて莫迦みたいとか思っていると新潟に抜ければ冷たい雨が…。うむ、冬はやはりこのくらい寒くなくては。

同窓会では合う人ごとに今何してるのとか訊いてるばかりで、あんまり話題がなかったな。

コーヒー呑んでいて思い付くことがあって、ホテルの部屋で計算させて放置してみたり。なんつーか、ホテルまで来てやっと論文読む暇ができたッツーのはどういうことか。
基本的に暇なはずなんだがなぁ。少なくとも同僚たちよりは duty が少ないと思っているんだが…。

2003年12月5日(金)

wysiwyg programing

仕事でこんなの触りましたけどね、粒度がいまいちナニなのか、もうちょっとって感じ
部品を作り混もうとすると Obj-C でごりごり書くわけで、そこは別に wysiwyg じゃないしね

まぁ、こいつは DB とお話しすること念頭に作られてるんで、何にでも使えるわけじゃないしね

参考:World Wide Walker

2003年12月4日(木)

関係者限定

ふと、思い出したことがあったので何気なく google に突っ込んでみる。

………………引っかかったよ(--;;;;;;;;;;;

つーか、マサにアレですよッッッッッッ

とか書いたって関係者にしか判らし、関係者はここ読んでないだろうけどさ

参考:Inseki Game

承前

おかずは、日曜に冷凍野菜と鍋の残りの肉で作った煮付けがそろそろヤバそうだったのでそれを片付けることに。む、この分量で1食分だったか

冷蔵庫に喰いかけの総菜が埋積してゆく…
つか、また食パンの賞味期限が

2003年12月3日(水)

朝食

まだまだ米を炊いて遊びたかったが、晩飯をうちで喰うのは週末くらい。
なんで朝飯に炊いてみた。無洗米なので夜遅く帰ってきてそのまま釜にセットしてタイマーかけて寝る。みそ汁は日曜に買ったネギが残っていたので根深汁。おかずに、弁当に入れる様の冷凍食品でも買っておけば良かったかも。

結論:朝から1合喰ってるのは時間かかり過ぎ(ばき

2003年12月1日(月)

職場の食堂で晩飯喰っていると、ふと床を横切る白い影……。

猫発見〜〜〜☆
あそこで猫見るのは初めてだったが、雨降って巡回路でも変わったんだろうか。
テーブルに飛び乗って人の食い物は狙う、カーテンに飛びついてぶらぶらゆれると大活躍(何)であった。う〜む、餌狙う時のひょこひょこ揺れる尻尾の先萌える。

[referer: [an error occurred while processing this directive]]

« 2003年11月 | Main | 2004年01月 »

2007年12月 2007年11月 2007年10月 2007年09月 2007年08月 2007年07月 2007年06月 2007年05月 2007年04月 2007年03月 2007年02月 2007年01月 2006年12月 2006年11月 2006年10月 2006年09月 2006年08月 2006年07月 2006年06月 2006年05月 2006年04月 2006年03月 2006年02月 2006年01月 2005年12月 2005年11月 2005年10月 2005年09月 2005年08月 2005年07月 2005年06月 2005年05月 2005年04月 2005年03月 2005年02月 2005年01月 2004年12月 2004年11月 2004年10月 2004年09月 2004年08月 2004年07月 2004年06月 2004年05月 2004年04月 2004年03月 2004年02月 2004年01月 2003年12月 2003年11月 2003年10月 2003年09月 2003年08月 2003年07月 2003年06月