2008年6月26日木曜日

音がでなかった



$ sudo apt-get -y install flashplugin-nonfree libflashsupport





2008年6月23日月曜日

virtualbox1.6とホストubuntu8.04とゲストXP



アップデートしたら少しかってが違うかったのでメモ。
まずDLしてきたらダブルクリックでインストール。


一般ユーザ&GUIで起動できるようにする


$sudo adduser gdm vboxusers
$sudo adduser 使用ユーザ名 vboxusers

これでアプリケーション->システムツールにvirtualboxアイコンが現れるので、
好きなところに移動させる。


ゲストOSでキーボードを認識させる


激はまり。
windowsのインストール画面でキー入力をホストに奪られたまま帰ってこず、
強制再起動しまくった。
scim-bridge-client-qtをインストールすれば良いとの情報があったので、


$sudo apt-get install scim-bridge-client-qt


が、解決せず。その後、
virtualboxのファイル->環境設定->入力のキーボード自動キャプチャのチェックを外すと解決!(脱出は右Ctrl)
scim-bridge-client-qtが必要かどうかは解りません。


マウスカーソルをシームレスに


ゲストOS(windowsXP)のインストールが終わったら、デバイス->Guest Additionsのインストール


USB認識


/etc/init.d/mountdevsubfs.shファイルのコメントを外す。


#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700, devmode=0600, listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb


/etc/fstab末尾に以下を加える


# usbfs is the USB group in fstab file:
none /proc/bus/usb usbfs devgid=*** ,devmode=664 0 0


devgidの値は以下のように調べる
Ubuntuのシステム->システム管理->ユーザとグループから
グループの管理ボタンを押して、vboxusersのプロパティをみる。自分は124でした。


/etc/init.d/mountkernfs.shに以下を加える


# Mount the usbfs for use with VirtualBox
domount usbfs usbdevfs /proc/bus/usb -onoexec, nosuid, nodev, devgid=***, devmode=664


その後
USBフラッシュメモリを挿した状態で、virtualboxのUSB設定でフラッシュメモリを追加。
以上。しかしipod touchはいまだ動かず。


ファイル共有


わからん!というか眠いからもう寝る!
とりあえず保留


ついでメモ


youtubeとニコニコを観られるようにflashプレイヤーを入れる。
アドビでtar.gzを落としてきて、中にある.soファイルを
/usr/lib/firefox/plugins/に移す。





2008年6月19日木曜日

最近読んだ本一覧



何かしら感想を書こうと思ってたんですが、とりあえず過剰書き・・・
・お金は銀行に預けるな
・40代からの勉強法
・内側から見た富士通「成果主義」の崩壊
・ウチのシステムはなぜ使えない SEとユーザの失敗学

ウチのシステムはなぜ使えない、はSEと打ち合わせすることの多い顧客側に向けて書かれた本。
ITの実態を知ることで、もっと上手く付き合おう、と。
ITで飯を食べる予定の人には結構常識的な話ばかりなので、これ読んでわからないこと(開発工程とか)があったら、ちょっと勉強したほうがいいかもっ。





Firefox3がでましたよ!



はやく入れ替えるのだ皆の衆~
ついでにOperaからWiiを奪えー





2008年6月8日日曜日

計算機プログラムの構造と解釈 1.1.6 問題1




問題1.1


式の列がある。それぞれの式で解釈系が印字する結果は何か。
列は示した順に評価するものとする。

以下、
問題、
自分の回答、
正しい回答
の順に3つ記述する。
ただし、自分の回答が正解の場合は、正しい回答は書かない。

10
10



(+ 5 3 4)
12


(- 9 1)
8


(/ 6 2)
3


(+ (* 2 4) (- 4 6))
6


(define a 3)
表示なし
a


(define b (+ a 1))
表示なし
b


(+ a b (* a b))
19


(= a b)
false
#f


(if (and (> b a) (< b (* a b)))
b
a)
4


(cond ((= a 4) 6)
((= b 4) (+ 6 7 a))
(else 25))
16


(+ 2 (if ( > b a) b a))
6


(* (cond ((> a b) a)
((< a b) b)
(else -1))
(+ a 1))
16





計算機プログラムの構造と解釈 1.1.6



1.1.6 keyword
条件式、述語

~条件式~
Lispには場合分け(case analysis)を記述する特殊形式cond(conditional),if,elseがある。

condの一般式は

(cond (<p1> <e1>)
(<p2> <e2>)
(<p3> <e3>))



となり、pには条件式がはいり、<p1>が真ならば<e1>の値を取り、偽なら<p2>を評価し、以下繰り返し。

絶対値absを定義する式は以下の様になる。

(define (abs x)
(cond ((> x 0) x)
((= x 0) 0)
((< x 0) (- x)))


条件が全て偽なら定義は行われない。
またマイナス記号は単項で用いた場合(- x)、符号反転の役目を果たす。

elseとif式はC言語でお馴染み。説明はいらないと思われる。

(define (abs x)
(cond ((< x 0) (- x)
(else x)))



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



and,or,notも同様。
ただし、notは特殊形式ではないことに注意。
なぜならand,orは必ずしも全ての式を評価しないが、notは(not (< x y))のように必ず式を評価するから。


~述語(predicate)~
真と偽に評価される式、または真か偽を返す手続きのことを指す。
上記の<p1>,<p2>,...や、<,>,=などの基本的手続きも述語である。

また<e1>,<e2>,...を帰結式と呼ぶ。




2008年6月5日木曜日

計算機プログラムの構造と解釈 1.1.5



1.1.5 keyword
置換えモデル、作用的順序、正規順序


置換えモデル


人間がプロセスを理解しやすくするためのモデル。
以下のように手続き定義を展開していく。

(f 5)
fの本体を取りだし、
(sum-of-squares (+ a 1) (* a 2))
仮パラメタaを引数5に。

(sum-of-squares (+ 5 1) (* 5 2))
(+ 5 1) (* 5 2)を計算してから、sum-of-squareの本体を取りだし、以下繰り返し。
(+ (square 6) (square 10))
(+ 36 100)
136

実際の処理とは関係ないし、置換えで表現できることは限られている
(3章の可変データでこのモデルは破綻する)


作用的順序


今まで読んできた評価の方法。
解釈系が演算子と被演算子を評価して、結果の手続きを結果の引数に作用させる。

(sum-of-square (+ 5 1) (* 5 2))のとき



演算子を評価-->結果の手続き
(sum-of-square (a,b)) --> (+ (square a) (square b))

被演算子を評価-->結果の引数
(+ 5 1) --> 6
(* 5 2) --> 10

結果の手続きを結果の引数に作用
(+ (square 6) (square 10))




正規順序


完全に展開する。



(sum-of-square (+ 5 1) (* 5 2))は
(+ (square 6) (square 10))とならず、
(+ (square + 5 1) (square * 5 2))
(+ (* (+ 5 1) (+ 5 1)) (* (* 5 2) (* 5 2)) )
となる。
(+ 5 1)と(* 5 2)をそれぞれ2回計算することになるので、効率が悪い。




正規順序と作用順序


正規順序は「完全に展開し、簡約する」
作用順序は「引数を評価し、作用させる」
置換えでモデル化できる式に関しては2つとも同じ結果になる。つまり違う結果のときがある
(同じ結果にならない例は問題1.5で後述)

Lispは作用的順序の評価を行うが、理由は(+ 5 1)(* 5 2)を2回計算するような多重評価をさけるためと、正規順序が置換えでモデル化できる範囲を越えたとたんに複雑化するから。
ただし、正規順序の評価も有効な道具であり、部分的に用いることがある。(3章ストリーム処理と4.2節参照)





2008年6月4日水曜日

大きさを変えられるテーブル



http://jp.youtube.com/watch?v=mKEOYfYQO08&eurl=http://happyemail.seesaa.net/article/99309005.html

うーん、期待してたのはじょじょに大きさが変化していくテーブルで、2段階変形じゃなぁ~。欲しいとは思わないや。





2008年6月1日日曜日

計算機プログラムの構造と解釈 1.1.3 1.1.4




1.1.3


keyword
組合せ評価規則、例外構文、評価プロセスは再帰


組合せ評価規則


組合わせの式を評価するときは
以下の評価規則に従う。



1、組合せの部分式を評価する
2、再左部分式の値である手続きを残りの部分式の値である引数(被演算子)に作用させる




1は



(* (+ 1 2) (+ 2 2))


のような式でも1つずつ括弧の中を計算していくんだよってことで、
2は,(+ 1 2)の+は1,2の両方に作用するんだよってこと。


例外構文


この評価規則では定義が扱えず、defineは組合せ式ではなく例外構文。なぜなら



(define x 3)


のdefineはxに3を対応づけているだけで、defineはxと3の両方に作用しているわけではない。
この例外を構文シュガーと言う。


評価プロセスは再帰



(* (+ 1 2) (+ 2 2))


を見ると、頭の中では(+ 1 2)と(+ 2 2)を先に計算するが、評価規則2よりLispでは、まず先に手続きが行われるのは最左部分式の*。
この*手続きを実現するために、(+ 1 2)(+ 2 2)が呼び出されるので、「評価の規則は本質的に再帰」となります。


1.1.4


keyword
抽象化法、手続き定義

(define x 3)のように値を対応づけるだけではなくて、
(define (square x) (* x x))のような演算に名前を付ける。
このような抽象化法の一手法を手続き定義という。

これは



(square 10)
100
(square (+ 2 5))
49


とマクロのように使用できる。

むーん、わからない点が1つ。
(square x)のxが仮引数として、(* x x)に渡して計算してるのは
どういう規則が元になってるんですか。
(define (<name> <仮引数>) (<本体>))
って例外構文があるって考えていいのかな





さてそろそろ復活しますか。



研究がバカみたいに忙しい(≒教授に圧迫かけられてる)のですが、なんだかんだでそれ以外は終了しましたので、例の古典の続きもやっていきたいと思います。
って今日言いたいのは、そうではなくて・・・・。

ジャストシステムの株価がすごい下がってて買い時なんではないかという話です。
昨年赤字決算だしたときは半値くらいまで株価が下がったのですが、予想どおりV字回復しました。(仕手株ですから)
しかし今はなだらかに順調に下がっていって、前より低い値段になってます。

なんでお薦めかというと、結局はジャストの技術力を評価していると言う点に尽きます。
事業を絞れば黒字に転換することはできるだろうし、いざとなったら他が買収してくれると予想しているので、そこで買った株を売れば良いんではないかと。

話は変わりますが、ファンドに投資する場合は国内で上場してるファンドにしましょう。そうでないと為替相場で死亡します。為替が絡むのには手を出してはいけない。
お薦めはスペインファンド。正式名はスペイン・ファンド・インクだったかな?途中で経営者が変わって名前が変わったんですよね。
別に自分がファンドに詳しくて、数値的にお薦めしているわけではなくて、このファンドができたときからうちの家が長年お世話になっているので。以下箇条書き。
・アトランタオリンピックの際にアメリカでできたファンド
・2ヶ月おきに配当
・昔より配当は落ちたが、ここ20年くらい配当が滞ったことはない
・今でも年利15%以上はある

うちは新発で買ったため手数料払ってないので、手数料を引いた場合どうなるか判りませんが。
きっと他にも熱いところがあるんでしょうが、一応長年の信用を買って紹介してみました。以上。