#Kindle操作性悪いけど、見やすくて結構いいですね。
#DXの方がいいなと最初思っていたんですが、電車の中で使ってみると Kindle2のサイズがちょうどいい。
#でも、本の品揃えがちょっといまいちかも。
#そういえば、試しに買ってみた "Coders At Work" が結構面白い。インタビュー形式のせいか、読みやすいし。
#Androidを搭載してくれたら魔改造できたのに>Kindle
#でもDRMが絡んでるんだろうな
#Androidだと Nook かな。魔改造できるかどうかは分かりませんが。
#DX は漫画を読むのに最適。
#試しに漫画の画像をPDFにして Kindle で見てみたら、文字がつぶれて読めなかった。
#KindleでもいろいろHackしている人がいるみたい。
##Linuxなんだ。そうか、あとはbinderとbionicだな。
#AndroidはカーネルだけLinuxで、プロセス感通信をbinderで、glibcではなくbionicというのを使っています。
#RT shiro: Gambitで書かれたiPhoneアプリがApp Storeに: http://bit.ly/4uafju http://bit.ly/1cQKIh #相互再帰なう RT : yuumi3@twitter: RT shiro: Gambitで書かれたiPhoneアプリがApp Storeに: http://bit.ly/4uafju #おお。Linux だったんですか。うまくやれば、ただで 3G で通信し放題ですねぇ。
#>とおる。 そうなんですか? ファームのレイヤで端末idの処理とかやったりしてないのかな?
#ああ、id自体はSIMカードの方か。通信モジュールがSIMカードとの通信も担ってて全部チップ内で処理しちゃってるなら、ソフト的にいじれなくすることはできる?
#DX はウェブブラウザがついているくらいなので、少なくともウェブのプロキシにはなるんじゃないかなぁと思います。普通の Kindle2 でも下位の部分はそんなに変わらないでしょうし。
#ああそうか。端末認証はされていいのか。ただだから。でもあんまり異常な値が出るとAmazonにわかるから調査が入ったりする可能性はある? としたら、使用約款に「改造しないこと」なんて項目があったりするとid止められたりはするかもね。
#ですねぇ。iPhone でも HTTP プロキシにする方法があるんですけど、あんまりやりすぎると追加料金取るよって AT&T が言っています。ソフトバンクはもう少し明確に決めてたと思います。
#良く知らないんですがKindleってSIMが入ってて3Gで通信してるの?
#CPUなんだろ。ARMだと移植しやすい>Android
#はい。日本だとどういう風になってるのか分からないですけど。
#軟件銀行はパッケット制限してるんだからテザリング解禁してほしいものです
#NetShare を入手できたぼくは勝ち組。
#出張のときとかめちゃくちゃ便利です。
#http://torus.jp:81/webchat/ 匿名でも IP アドレスの MD5 ハッシュを使って identicon をだすようにしてみました。 #最近社内で雑談用に使っているので、拡張性よりも実用性重視になってきました。。。
#Gauche に Windows 用の修正がどんどん追加されてる!
#Windows 派の私にはありがたいことです。
#私自身はそんなに凝った使い方してないけど、他の環境で作られたライブラリが動かないことがあるとちょっと寂しいので。
#ちょっとした疑問なんですけど、Schemeで使える型チェックツールをあまり見ないのは何故なのか、心当たりある人いますかね? Haskellを使ってると、型チェックって便利だなーと思い、Schemeでも欲しくなりました。機能をモジュールに分けてそれをメンテしたいケースで、型チェッカのサポートがあると便利なんだけど、逆にSchemerはそのへんをあまり不便に感じていないんだろか?
#動的型の言語では静的なチェックは難しいと思いますよ。
#Gauche だと glint が使えて、凄く便利なので、チェックツールの需要はあると思います。
#んー、私は欲しいと思っています。特に高階関数を何段にも積み上げてると、頭の中でトラックしきれなくなることがあるので (コメントにHaskell風に書いたりしてますが)。ただ、わりと基本的な関数でも多態で動くことが多いために厳密にやろうとするとほとんど何も言えない (e.g. 「すべてScmObj型である」という結果になっちゃう)とか、あと不定長引数があるのでやっぱり途中でわからなくなることが多い (e.g. 外から渡された高階関数pを3引数で呼んでるけど、そこだけ見てもpが3引数を取るものかどうかわからない。
#0個以上、1個以上、2個以上の関数かも) といった懸念はありますね。
#ふむふむ。やっぱり需要自体はあるんですね。ただ、実用的なものを作るところでハードルがありそう、という感じか。
##mingw だと gauche.process のテストで止まっちゃうな… < trunk
#Windows派の方はシェルはどうしてるんでしょう?DOS窓は辛いです。。
#まともな静的型言語は、「型推論がちゃんと動く」ように設計されているので綺麗に推論できますが(少なくとも単純なケースは)、Schemeの多くの関数は型的にはカオスですから、意味のある結果を出すにはいろいろヒューリスティクスを仕込まなくちゃならないんじゃないかなあという気がします。
#たとえばmapやfor-eachの第一引数の型はその後にいくつ引数が続くかによって変わるわけで、applyされちゃったらわかんなくなる、とか。
#>齊藤 あれ、私もmingw+msysでテストしてます。一番新しいインストーラで入れたやつです。どのテストで止まってるかわかりますか?
#シェルは sh を使ったりもしますね。 < windows
#追ってみます。 < 止まる
#動的型言語こそハンガリー記法を使った方がいいんじゃないかなと最近思います。
#>ふじさわ ちなみに「型推論できない」というわけではなくて、「全部ScmObj」という自明の解があるので、問題はどこまで意味のある解析ができるかってことになりますね。
#Gauche的には「全部<top>」か。
#変数名や関数名にある種のルール付けを導入すると、型の誤りとか検出しやすくなるかなと。でも既存の関数名って今更変えられませんが。
#それと、例えば (cons (foo x)) は本当はエラーにしてはいけないなんて話もあったりして (fooを呼んだ先で必ず別の継続が呼ばれる場合、consがここで呼び出されることは決して無いので)。R6RSの議論の中で出てきたんだけど、結局R6RSではどうなんったんだっけな。
#>koguro 一応、vector-* とか string-* みたいな慣習はありますね。でも全引数の情報を持たせようとすぐ破綻しそうな。
#s/持たせようとすぐ/持たせようとするとすぐ/
#そうなんですよね。でも、glint作ってて思ったのですが、連想リストいれるときってだいたい *-alist とかつけるんで、この情報を積極的に使ったら精度よくなるだろうな、と。
#へぇー、なるほど。>例えば (cons (foo x)) は本当はエラーにしてはいけないなんて話もあったり
#test run-process (output pipe), expects (0 #t) ==>
#で止まってるみたいです。
#でもやっぱり、(cons (foo x))はエラーだと思うなぁ。意味がない(?)もんなぁ。
#自分で何か独自にパッチあててた箇所があったかもしんないので一応最初からやりなおしてみます。
#>koguro ある程度ファジーに判断できるとおもしろいですね。[
#「ここ、何となくおかしいような気がするんだけど、ほんとにこういうのを意図してるの?」とか。
#大量の実際に動いているコードから学習させたりとか
#ランタイムの引数の型の統計でなんかやる、っていうのはありだと思います。その統計取るコードのオーバヘッドを減らすのが難しいけど。メソッドキャッシュなんかもその一例と言えなくはない。
#あと、FindBugsみたいに既存のバグのパターンとか収集してみたいなとも思います。
#統計かぁ。あまりやりたくないなぁ(やるとしても最小限にしたい)。まずはストリクトに検出できる型不整合をしっかりレポートし、検出できないコード部分で「検出できません」というwarningを出すという感じにするのがいいのかなぁ、とか考えてました。
#「検出できません」(ambiguousです)というのが最小限に抑えられるかどうかがキモかな、と。
#R6RS では (call/cc (lambda (c) (0 (c 1)))) が 1 になります。
#これは実際に公式の Redex によるテストにありました。
#ああ、その議論は覚えてます。consの例もその延長かな。
#全部 revert してからビルドしたらテスト通った。 (止まりはしなかった)
#test process-kill: expects 9 => got #f
#ってのはありましたけど。
#むむむむ。なぜ動作が違うのだろう。
#failed.
discrepancies found. Errors are:
test process-kill: expects 9 => got #f
#もっと謎なのが
#Testing numbers ... gosh: "error":
exact integer required, but got #t
#新しいgoshで、(sys-wait-signaled? #x109) と (sys-wait-termsig #x109) を評価するとどうなりますか?
#それぞれ #t と 9 です。
#むー、とするとTerminateProcessで渡したexit statusが反映されないのかな。Windowsは何ですか?
#cygwinっていう意味だったら、ターミナルはPodeorsaを使ってbashです>Windowsのシェル環境
#Windows XP の SP3 です。
#うちはVistaだなあ。けれどもTerminateProcess/GetExitCodeProcessみたいな基本的なAPIが変わるというのも考えにくいか…
#numberのそれも気になる。どのテストで死んだかわかります?
#test.log にそれらしい記録がないですね。
#エラーの出方からしてテストコードが捕捉できてない事態なのかな…
#gosh> (flonum-test '1e309)
*** ERROR: exact integer required, but got #t
Stack Trace:
_______________________________________
gosh> *** READ-ERROR: Read error at "(stdin)":line 345: extra close parenthesis
Stack Trace:
_______________________________________
#readerのエラーだなあ。+inf.0が返るはずなんだが。もしかしてプロセッサの違いで差が出てるかな。
#そこが問題だとしたらprocessの問題とは別だな。
#プロセッサで reader の挙動に差が出る要因がありますか?
#数字の読み込みではlongで表現できる範囲が影響する可能性があるんで、32bitと64bitで差が出るかもしれない。うちではx86_64の環境でテストしてます。OSは32bitですが。
#私のは 32bit のはずなんで違いではありますね。
#2004年のマシンだから今となってはちょっと古い。 Celeron(R) CPU 2.40GHz って書いてある。
#手持ちのノートPCが32bitなんで後でXPをブートして試してみます。
#ありがとうございます。
#Vista はあまり評判よくないみたいにも聞きますね。
#あんまり使わないのでよくわからない >Vista
#7 が出た以上、 Vista はあまり使われないまま XP → 7 に移行する人も結構いる予感。
#引き数型の統計取るのは Ruby 界隈では Rubinius がやってると聞いたような気がします
#あと、 yarv2llvm の miura さんによると、 yarv2llvm では Ruby の型推論をするのに色々ヒューリスティックを使っているのだとか
#(詳しいことはソースを見てね、と言われたけれど見ていない)
#みなさん、情報ありがとうございます。いただいた情報をたどって、Schemeでの型推論についてもうちょっと調べてみます。
#nfunato: いま出先で正確に分からないのですが、PLT Schemeのvariantの一つに型推論を実装したものがあって、これ自体はRnRSではないですが、関連論文があったと思います > Schemeでの型推論についてもうちょっと調べてみます
#そうか、login name は GWが付けてくれるのですね。これからもお世話になります -- win対応が進むと、職場で身の周りのことに使い易くなるので超嬉しいです ^^;)
#PLT SchemeのやつはTyped Schemeでしょうか。あれは推論は行ってなかったような覚えがあります。
#そうですか。申し訳ありません。そのような論文は一瞥したことがあって、確かめずに勝手に結び付けてていました。ちゃんと形にしたものは無いという事ですね。お詫びします。 > Typed Schemeでしょうか。あれは推論は行ってなかったような覚えがあります
#s/ちゃんと形にしたものではない/それ(型推論)を形にしたものではない/
#私が見たのはだいぶ前なので、その後型推論も実装されたかもしれません。