2.12.2008

SICP読んでみる。

休みに入った学生というのは、こたつの中で成績発表までガクブルしながらすごすしかないわけで。
やっぱり時間が空くと、ついついゲームとかそんなものに手が伸びてしまうわけです。
(最近のお気に入りは ょすみん。です。時間を忘れて遊んでしまうので、クリックする時はご注意を。
そして、全く、実に、本当にどうでもいいことなんですが、niftyに設置してあるょすみん。は、自分がtext/htmlだと言って来るんです。
まぁ、ソースの中ほどで頑張ってるembedタグ周辺が問題なんでしょうけど。少なくとも、我が家のFirefoxではプレイすることが出来ません。天下のniftyがここまでとはねぇ・・・)

おいとき。

そんなふうに時間をつぶしても仕方が無いので、図書館からStructure and Interpetation of Computer Programming.(スペルあってる?)通称SICPの原著と訳書を借りてきました。
原著を借りてきたのは、訳書の訳が酷いなんて話を聞いたからですが、今のところ、カタカナ語でよさそうな用語をそのまま用いず、律儀に訳してたり、平方根はこう求まる!的な部分の訳が不自然と感じる意外はそれなりに読めてます。
もっと読むとあらが目立ってくるのかなぁ。とも思いますが、思っていたほど酷くなくて一安心です。

そんなわけで、読書日記をつけてみることにしました。
といっても、読書記録は日々ログ(要するにローカルな日記)に保存してあるので、こちらはその焼き直しということになるのですが。

で、現在は演習問題1.7を解いたところ。私の解はこちら。

;; SICP 問題1.7
;; guessと直前のguessの差を使って計算するプログラム
(define (sqrt-iter pre-guess guess x)
(if (good-enough? pre-guess guess)
guess
(sqrt-iter guess (improve guess x)
x)))

(define (improve guess x)
(average guess (/ x guess)))

(define (average x y)
(/ (+ x y) 2))

; 直前の予測値(pre-guess)と、今の予測値(guess)との差が十分に小さければ#t
(define (good-enough? pre-guess guess)
(< (abs (- pre-guess guess)) 0.001))

(define (abs v)
(if (< v 0)
(- v)
v))

(define (my-sqrt x)
(sqrt-iter 0.0 1.0 x))

はてなだと勝手に色付けとかしてくれるオプションが存在するらしいけど、bloggerじゃ無いだろうなw
スクリプトでも書いて作ったら便利かなぁ?でも、書くに至らないっていうのは、自分でそれほど必要としてないだろうからだな。

1.6の解答がいまいちよく分からないのだけれども、
「スペシャルフォームなifじゃないから、その引数は渡される時点で評価されるために、思ったとおりに実行されない」
でいいのかなぁ?どなたか詳しい解答をご存知でしたら教えてプリーズです。

さて、この読書、休み終了までに終わるか否か。
一応SICPタグを付けて日々の日記と分けていくつもりですので、もし皆さんの中でSICPにチャレンジしている方がいらっしゃれば、いっしょに頑張りましょう。

2.10.2008

国の無駄遣い。

海自が先の情報漏えいに関連して、Sunのシンクライアントを3万台導入するという話。
これとは別に、防衛庁が私有PCいっそうを図る名目で以前に導入させたはずのPCが、海自+空自で1万台だそうだから、海自に導入されたのはその半分として、5,000台ぐらいあるだろう。
今回のニュースでは海自のPCをすべて入れ替えるっていうことだから、一台6万円程度と見ても5,000x60,000=30,000,000円ものお金が無駄遣いだったんじゃないだろうかと思えるような使い方をされたわけだ。(まぁ、2010年になったら、2005年導入の製品なんて使い物にならないって言われればそれまでなんだけども。)

んで、今回導入するSunのシンクライアントシステム(おそらくRayのことだろうと思うけど)は、端末だけで3万台だそうだから、Rayのだいたいの価格(Ray 170で11万、2Nで16万だから、13万ぐらい?)からみると、クライアントだけで130,000x30,000=3,900,000,000円の導入費用がかかるわけだ。
そして、私の記憶が正しければ、SunのRayは
・クライアント
・クライアントの管理や、ユーザ管理をするサーバ
・環境を提供するサーバ
の3段構成だったと思うから、どんなに少なく見積もっても4,000,000,000円より多い導入費用がかかるなぁなんて計算できる。(長い目で見た管理費は、いくらか安くなるんだろうケド。)

で、重要なのが、これだけ金をかけて、本当に情報漏洩がなくなるのか?っていうトコロ。
私はそうは思わない。

何より大事なのは、漏洩させない体質というんだろうか?
そういう組織作りや、個々の人間への教育だと思うんだよね。
こんなこといくらやって、国民の税金をガンガン使ったって、使う人の頭がパーなまんまじゃ、結局無駄遣いや無意味な対策とされてしまうだろうし。
そんなわけで、目に見える情報漏洩対策ができてから、こういうことを言って欲しいものだと感じたのでした。

2.09.2008

かわいそうでならない

なかのひと、お疲れ様です。
なんと書いたら良いでしょう。
とにかく涙が止まりません。
3連休なのにね。

2.08.2008

nano techのチケットとどいた!

携帯電話にカメラがついていないので,チケット画像をアップできないのが残念(´・ω・`)ショボーン.
はやく携帯買い換えよう・・・.

とりあえず言いたいことは,ナノバイオExpoとnano tech2008に行きたくて両方申し込みをしたんだけれども,

一枚で両方いけるなら,最初からでっかくどこかにそう書いて置いてください!

ってこと.あと,パンフをみるだけで一週間後が楽しみでならないってこと.
ナノバイオのチケット2枚,nano techのチケット1枚という構成で送られてきたのが気になるけれども,2枚あるうちの一枚のナノバイオのチケットで入場→他のは記念にとっておくいっていう使い方か,誰かにあげるって使い方か・・・.

そんな無駄なことに頭を使えるくらい,余裕のある今日この頃です.

2.06.2008

早くも難航・・・

インデックスサービスに関して調べ始めたんですが,どうにもこうにも,英語の技術文献ばかりが出てきます:
日本ではマイナーなんでしょうかね・・・。

2.04.2008

Index Serviceって、実はすごい気がする。

最近,coLinux上でもWindows上でも,ファイルを検索して探しだす機会が多くなった.
というのも,(プログラムのソースを含む)テキストドキュメントが山のように増えてしまい,そこから目的のものを探し出すのに最適な方法が検索であったからなのだ.

で,Linuxではlocateコマンドを使って手軽かつ高速にファイル検索が行えるのだが,Windowsでは[スタート]→[検索]などとして検索するためのキーワードを窓に打ち込んだ後,とっても遅い検索時間を,コーヒーの一杯でも飲みながらまったり待たなくてはいけないという,とても耐え難い苦痛を味わわなければならないのだ.

以前から私は,これはどうもおかしなことじゃないかと思っていた.
だって,私のコンピューターではIndex Serviceと名乗る,自称「ファイル検索を高速にする」サービスが常時稼動し,CPUがヒマそうにしていれば,やれインデックスを作れとはやしたてているのに,こんなに検索が遅いわけが無いと思ったのである.

こうして困った時に頼りになるのもまた検索.
そんなわけで,Index Serviceに関して色々調べてみた.
すると,やはり私と同じ不満を持っている人がたくさん居るようだ.
そのうち多くの人は,CPUを喰うという理由でIndex Serviceを停止し,GoogleDesktopに乗り換えたという.

けれども私はGoogleDesktopというのが嫌いだ.
いかにもハイスペックなマシンの余剰エネルギーをバリバリ使って検索しようなんて,贅沢企業の思惑が見え隠れする気がするからだ.
貧乏性の私としては,なんとしてもIndex Service――つまり,OS標準の検索機構――にがんばってもらいたいと思うのだ.

そもそも,これまで多くのCPU時間を食いつぶしたコイツに代わって,さっさとGoogleDesktopを導入するようじゃ負けた気がする.
そんなのは絶対に許されない.


と,前置きが長くなったが,その後の調べで管理ツールからたどる,各インデックスの持つ,カタログのクエリというのによる検索が,ものすごく高速であることが判明した.

これだ.これこそ,Index Serviceが私の非力マシンの尻をバシバシ叩きながら作成したインデックスの産物であろう!その検索スピードは,これまで使っていた検索などとは天と地ほどの差.まさに月とすっぽんとも言うべきものであった.

そんなわけでとても手堅い検索手段を見つけたのだが,いかんせんこの強力な検索手段,検索を行うまでに至る道のりが長い.管理ツール→インデックスサービス→該当インデックス→カタログのクエリとたどらないといけないのだ.
良く使うのだから,たとえばタスクトレイにアイコンを常駐させて,クリックイッパツで検索窓が出,出力結果をまとめてくれる――まさにGoogleDesktopが私のコンピューターでやろうとした仕事――ぐらいのことをしてくれても良いんじゃないだろうかと思えてきた.

で,インデックスサービスを自作プログラムから活用できないかと探して見ると,どうやらできるらしい.

新しい研究課題が見つかった.
インデックスサービスを,もう少し追いかけてみたいと思う.

2.01.2008

一晩たってようやく解決.

昨日書いたcoLinuxのNICが云々っていう話.
いろいろ調べた結果,ここにズバリその問題の解法があった.
要するに,
$ sudo nano /etc/udev/rules.d/z25_persistent-net.rules

とかしてルールファイルを開いて,当該項目を編集すればいいだけ.
原因はおそらく,coLinuxの.cfgファイルでMACアドレスを指定するような仕様になったおかげで,MACを変更するたびに新しいNICがささったと思われてたから.
というわけで,我が家ではeth0にeth4のMACを振って,eth0以外を削除→/etc/networks/interfacesのeth4をeth0に,それから.cfgファイルもeth0に直すという方法で解決.
ひとつのNICしか搭載していないマシンなのに,そのひとつのNICのMACアドレスを様々に変更できることから起こる弊害なんだろうと予想.

coLinux-devel-20080120以降でまたつまづくかもしれないので,メモとして残しておく.