SICPをやるに当たっての環境ってどれがいいんだろう?

SICPをやるに当たって何を使うのがいいのだろう。

とりあえず、授業で以前PLT Schemeという環境を使っていたので、

その派生版であるRacket - Wikipediaを使うことにしました。

個人的にはインストーラーが用意されていて、Mac, Linux, Windowsで動くのがポイント

MacWindows2つの環境で行なっているので、両方で同じ環境が動くというのは非常に素晴らしい。

他にオススメの環境とか有るんだろうか?

昔使っていたという消極的な理由で選択を行なっているので、いずれは色々と試してみたい。

SICPを勉強することになった。

はてさて、放置してどれだけ経ったろうか。

久しぶりの更新です。

なんとか修論を振り切り、無事新卒になれました。

そんなこんなで、研修中なのですが先輩方からSICP一緒にやらないか?

と誘われてしまったのでウホッ!良い話!という感じでホイホイ付いて行ってしまうことにしました。

なんと二章まで終わっているそうなので、急いで追いつかねば成らないのがちょっとだけ辛いがまぁなんとかなるでしょう(適当)。

なんとか成らなかったら、先輩に泣きついてしまおう。


しかし、今てもとに日本語版が無く、英語版のPDFで読みながらやっている。

早いところ日本語版もってきたいなぁ。

「Error while running zipalign: Unable to open as zip archive」とか出た・・・

ADTさんとは今まで上手く付き合ってきたのに、アプリを更新しようと思い立ってコードを修正してさぁ後はAndroid toolsから認証付きでエクスポートすればオシマイというところまでこぎつけた時に、突然下のようなエラーの宣告が・・・

よく解らなかったのでeclipseを取り敢えず再起動してみたが効果なし・・・

仕方がないので前例が無いか調査(という名のネットサーフィン)


オオッ結構引っかかるなandroid - Error while running zipalign - Stack OverflowとかAndroid app won't launch unless project dir name equals app name » Community Questions & Answers » Appcelerator Developer Centerとか結構ひっかるじゃん余裕じゃんとか思ってた時期が私にも有りました。

が・・・駄目っ・・・困った・・・

なんでこうアプリをアップデートしなきゃいけない時に限ってこういう目に合うのか・・・

取り敢えずeclipseプラグインをアップデート

ハイハイ解ってますよSDKのアップデートもですよね!

と思ってアップデートしようとしたらこのザマですよ・・・

えっ?いやいやいやいやw API17そもそも入れてませんから!

なんで有る判定になってるの?意味がわからないよ!

SDKのアップデートは前にも失敗していたのでもうトラウマ級ですな

どうでも良くなってDownload Android Studio and SDK Tools | Android Developersをダウンロードしてきてもう一度環境作った!

もうね、eclipseとかAndroidでエラーが出た時って捨てて環境作りなおしたほうが速いね・・・

あともう一言言いたいことがある。

なんでリンク先のSDKは古いのが入ってないのか・・・

Raspberry piさんがフリーズするので対応

外からssh経由でアクセスをかけようとした時に、なぜだか反応しない瞬間が結構あった。

家に帰って確認してみるとLANポートが光ってない!(@ _ @)

LANケーブルを抜き差ししても駄目でこれは壊れたのかと一瞬目の前が真っ暗になりかけたのですが、

電源を抜き差ししたら復活したのでこれで一安心ε-(´∀`*)ホッとか思ってたら、しばらくするとアクセスが出来ない!

という事態の繰り返しになってました。

で、気がついたのは重い処理を投げている時によく落ちてしまうということでした。

例えば、rubyで1000000000回putsするだけのプログラムを走らせてみたり、apt-get でinstallをしたりすると落ちる。

これはひょっとして熱暴走かな?と思いアイネックス チップ用マルチヒートシンク HM-17
を購入して貼り付けた。


因みに貼りつけた状態でも純正のケースに入れるとフリーズします・・・

むき出しだとフリーズしません。

ケース買うんじゃなかったなーとかこっそり思ってしまってます・・・

そのうち時間ができたら錐とかで穴あけてファンを導入しようと画策中。

そうしたらもっと安定するに違いないし、せっかくファンレスなのに申し訳ないけど安定の方が大事だったりする。


追記
やっぱりヒートシンクだけじゃ駄目だったみたい・・・早いうちにファンを付けるかもっと大きなヒートシンクに変えないとだめみたい・・・

herokuでbranchをアップロードした時に"Pushed to non-master branch, skipping build."が表示される・・・

herokuにbranchをアップロードした時に

Pushed to non-master branch, skipping build.

みたいなメッセージが表示されて、buildされない場合の対応策は、【Heroku】master以外のブランチで動かす - ふわふわRuby on Railsに書かれている通り

$ git push heroku yourbranch:master

でOK。エラーメッセージでググった時に出て来なかったので書いた。

JINS PC買ってみた。

いまさらになるのですがJINS PCを買ってみました。

ブルーライトを防ぐということでブルーライトヨコハマを再生してみましたが、普通に見れました。

どこらへんがブルーライトなのかわからなかったのが原因かもしれません。

因みにフレームですが、同期とかぶってしまったためもっぱら家で利用することにしています。

ブルーライトを遮るメガネなのでせっかくなので青にしたのにまさかかぶっているとは予想外でした。

しかし、家ではいつもつけているのでメガネがない状態でPCのディスプレイを眺めていると非常に眩しいです。

なので早急に外出先で使う用のスペアが必要になってます。

効果は、付けてると感じない外すとすごく眩しいです。

因みにメガネかけるよりディスプレイにシートはったほうが圧倒的に満足度が高いと思ったのはないしょ。

モンティ・ホール問題は実装してみれば感覚的に解る!

モンティ・ホール問題ってみなさん知ってますか?

簡単にまとめると、

三個の箱があって1つだけあたりがあります。残りの2つは外れです。

あなたがその内の一つを選択した時に残りの2つのうちハズレを一箇所教えてもらえます。

そして司会者が最初に選んだものを本当に選択しますか?それとも、変更しますか?

という質問をされた時にあなたは、選択したものを変えたほうがいいのか?買えない方が良いのか?という問題です。

さて、ではコレを実装して検証して見ることにしましょう。

こちらがそのRubyのコードです。

# -*- coding: utf-8 -*-
#アドバイス付きの選択
def select_use_advise(array, index)
	!check(array,index)
end

#当たり判定
def check(array , index)
	array[index]==1
end

hit_not_change = 0.0
hit_change = 0.0
iter=1000
array =[1,0,0].shuffle
iter.times{
	array.shuffle
	index = rand(3)
	if(check(array,index))
		hit_not_change = hit_not_change + 1
	end
	if(select_use_advise(array,index))
		hit_change = hit_change + 1
	end
}
puts "変えなかった場合 : "+hit_not_change.to_s+" 確率 :"+(hit_not_change/iter*100).to_s+" %"
puts "変えた場合 : " + hit_change.to_s+" 確率 :"+(hit_change/iter*100).to_s+" %"

紆余曲折を経てコレぐらい簡単になりました。

因みに実行結果は以下のとおりに。

変えなかった場合 : 318.0 確率 :31.8 %
変えた場合 : 682.0 確率 :68.2 %

皆さんが気になるのはコード内でアドバイス付きの解答の部分ではじめにハズレを選択していた時に、かならず当たるという形式をとっているところだと思いますが、これは至極当然ではじめに選んだものが外れていればハズレが開いているので絶対に当たり、はじめに選択していたものが当たりだったら選択肢を変えたら外れてしまうという可能性しか無いのです。

そしてはじめに選んだものは1/3で当たりなので、選択肢を変えた場合1-1/3=2/3となり選び変えたほうが絶対にいいと思う。

(間違ってたりした場合は連絡をいただけると助かります。)