連続系アルゴリズム

1番は、U野が「きっと1問はでる」といっていた浮動小数点のビットパターンを書かせる問題がちゃんとでた。1.0のビットパターンはもう見慣れているので、間違えるはずない。でも、1番以降は抜け落ちてた・・・一応計算して出してみたけど心配かも。 2番は、LU分解。LU分解の仕方朝やっててよかったと思ったら、難しいのはガウスの方法の分数計算。「やってりゃよかった公文式」答えはパッと見でわかるのに・・・。1時間くらい消費。 3番は、「いらないだろ」と勝手に判断していた微分方程式の、しかみ中点法とかいう聞いたことないタイプ。自力(?)でやるしかない。誤差評価とかいっているのでTaylor展開してみたりごちゃごちゃ。時間をだいぶ延長してくれたので、いろいろやってそれらしきものを発見。テストで発見ってナンダ? たぶんつまんでいったら、50点分くらいはありそうだから、単位はあると・・・あってくれ。2度とやりたくないから。

MediaWiki

明日は試験だから、さぁ試験勉強・・・となったくらいですぐに試験勉強始めるわけもなく、一瞬で興味は微妙にずれた方向に。 今回は、まとめノートを作る環境をいろいろ模索。 連続系の内容をまとめるには、どうしてもたくさんの数式が出てくるわけで、それをどうするかが主な問題。 第1に考えたのは、PukiWiki + paraedit + mimeTeX いい点 ・mimeTeXで数式をTeX書式で入力可能 ・paraeditでパラグラフ単位で編集可能 ・Emacsのpukiwiki-modeをMeadowから使えて編集は便利。なぜか更新に失敗することが多いから、毎回確認しないといけないけど。 悪い点 ・でも、数式が汚い。 ・数式を打つのがめんどくさい。(#mimetex(); , &mimetex();) ・paraeditによる編集は直感に反する部分が数点 で、ふと現実逃避で見ていたWikipediaに画像で数式が書かれているのを発見し、ソースを見てみるとmathタグで囲われた範囲が勝手に数式に置き換わっている。しかもきれいな・・・ というわけで、Wikipediaの運営に使われているMediaWiki導入。 いい点 ・数式きれい ・パラグラフ単位で編集可能 ・勝手に目次作ってくれる ・文書として見た目がきれい 悪い点 ・Emacsのmedia-wikiモードをやっと入れたのに日本語ダメ ・画像をアップしようとするとライセンスの確認画面がでたりとか、Wikipediaにしかいらない機能が入ってる まとめノートとかは、パラグラフ単位での編集必須だし、目次とか結構ありがたいので、MediaWikiで編集することにしよう。

PukiWiki

以前Wikiについて調べたときは、PukiWikiは便利そうなプラグインが「ありそうでない」状態だった。 つまり、ToDoリストには入っているけど、存在しない状態だった。 そんなわけで、デザイン的に気に入ったのとPDF出力が標準でサポートされていたFreeStyleWikiを個人用メモに利用していた。 で、ふと気になってまたいろいろ調べてみたら、PukiWikiの”ToDo”が”Done”になっていた。TeX書式での数式入力とか、いろいろなものが実際に利用できるようになっていた。 これは乗り換えなくては・・・。でも、書式結構違うみたいで、単純なコピペでは移行できそうにないなぁ。

レイトレを動かせ!

1/14にSRAMがちゃんと動くようになったのを受けて、1週間でレイトレを動かせプロジェクト始動。 たしかに多少ムリなスケジュールだけど、実現可能+αあたりを目標に据えるのは妥当な線だろう。 メモリ命令が実機に搭載されたのを皮切りに・・・ ソフトウェアで使用していた擬似バイナリ形式をBlockRAMの形式に変更するツールを作成。 ソフトウェアスケジューラで、IO命令周辺を余裕のある=nopで挟んだ形にして、BlockRAMからGCD動作。 メモリ命令周辺も余裕のある形にして、BlockRAMからフィボナッチ動作 IO通信やメモリ周辺のテストも動作。 ぼくが命令列のテストをしている間にLがインストラクションキャッシュを完成させたので、プログラムをロードするプログラムの実機テスト。最初はいろいろつまづいたが、ローダー動作。 FPUがシミュレータと実機とで違う動作をしていたバグを直してもらって、浮動小数点フィボナッチ動作。 これで、CPUをコンパイルしなおさなくてもプログラムのテストができる!と喜んでいろいろテスト。インストラクションキャッシュを溢れるような容量のプログラムのテストやらいろいろ。 しかしレイトレは動かず。調べてみると、スタックポインタとUSB通信周りが怪しい・・・。これは修正。 ここら辺で、目標の1週間。1週間で2回しか家に帰らなかったっぽい。学校に泊まったこと数回、L家にお邪魔したこと1回。 LEDにはプログラムカウンタの下位8bit(またはその上の8bit)が表示されるだけなので、止まっている原因が分からない。CPU内部の制御をよく分かっていないせいもあって、問題が発生した場所の特定にすら何時間もかかる。U野の力を借りて、レイトレコード中の該当箇所を見つけて、デバッグ出力をちりばめて検証して・・・・。なんてデバッグしにくいんだ! 結局、メモリ周りにバグがある可能性が高いということになったが、メモリ周りはすぐ書き直す予定だったから、先に書き直してから再びレイトレ動作を目指してデバッグということに。 ソフトウェアでやりたいこともいろいろあるけど、とりあえずはレイトレを動作させないと、身動きがとりにくい・・・。

誕生日

でした。ずっと前。19日。 19日になった瞬間は学校の地下室で作業をしていました。 その後その場で寝て、朝学校の地下室でおきて、夜終電ちょっと前に家に戻りました。 でも、一応家でちゃんとケーキを食べました。食べたときは既に次の日になってたけど;; 誕生日メールをくれた方はありがとうございました。そして、連絡が遅くなってごめんなさい。2,3日以内には誰にも返さなかった気がする・・・。久しぶりにメールくれた人もいたのに・・・。 はい。ごめんなさい。 学校はなんとなく、ゆっくりメールを打つ環境ではない気がします。

WebCam

いままで家で試してみいたのは、パソコンの淵や横に置くタイプだったから、目線がどうしてもどうでもいい方向を向いてしまってよくなかった。 昨日、生協でコードが自由に曲がってかつ固定できる(意味分かるかな;)を見つけたので、購入。 学校で試してみたところ・・・いい。目線がちゃんと合うだけで、すごく自然になる。速度とかは、別に問題ない。 おもしろい~。

Mac mini

噂はあったけど、本当に発表。500ドルのMac。 そして・・・・**小さい!!**横幅がCDサイズ! いや、これは買いでしょ・・・・。でも、Tiger(OS 10.4)待ってからかな?この値段で、OS新規購入はできないもんなぁ。 いや、いいよ・・・これ。あとは、消音性が気になるとこ。静かなら・・・・買うしかなっぽい。

GHCは意外と親切だった

この間から急にHaskellに興味を持って、いろいろやってみているわけだが、そのコンパイラGHCに関しての話。 quicksort :: [a] -> [a] quicksort [] = [] quicksort (x:xs) = quicksort [n|n<-xs,n<=x] ++ [x] ++ quicksort [n|n<-xs,n>x] というQuickSortのコードがエラーに。コンパイラ(GHC)曰く、 Could not deduce (Ord a) from the context () arising from use of `>’ at hoge.hs:34 Probable fix: Add (Ord a) to the type signature(s) for `quicksort’ つまり、任意の型では>演算子は使えませんよ。と。 でもって、(Ord a)をquicksortの定義部分に付け加えるとよいですよ。と。 おぉぉ。なんと親切な。こんなに親切なコンパイラは見たことないかも。 関係ないけど、VisualHaskellStudio.netを使うと、色がついたり(たまに)ツールチップで型が表示されたりして便利ですよ。