トップ «前の日記(2006-06-10) 最新 次の日記(2006-06-12)» 月表示 編集

日々の流転


2006-06-11 [長年日記]

λ. RubyKaigi2006 (2日目)

  • dRubyは最近使ってなかったので懐かしいな。
  • Railsで日本語を使う際の話なんかも出ていたので、むとうさんも来てRuby-Gettextを宣伝すればよかったのに、と思った。
  • ActiveRecordでSyslogという名前のテーブルを作ってロギングするという話が少し面白かった。
  • Haskellで書いたパーサをrubyから利用出来ないかと聞かれる。CからHaskellを呼ぶことは出来るので、拡張ライブラリを書けばRubyからHaskellを呼ぶことも出来る。ただ、パース結果のデータ構造をRuby側で扱える形に変換するのが結構大変そうな気がする。
  • DHHの講演は英語は聞き取りやすかったし内容も面白かった。ただ、マイクの音が大きくて耳が痛くなった。
  • しかし、Rails使いがこれほど多いとは思わなかった。別にRailsに文句があるわけではなく、Webアプリケーションに関わっている人がこれほど多いということに驚いた。
  • RubyCocoaのhisaさんとお話した。
  • Haskell で Cocoa を使うための HOC というものがあるそうだ。
  • [ポストイット(1)]ポストイット(2)
Tags: ruby

λ. 時相論理メモ

萩谷先生の時相論理メモを読んだ。

練習問題

3人の哲学者問題に関して,(経路πにおいて) 0番目の哲学者が飢餓に陥るということをPLTLで表せ.
π |= G(¬eating0) もしくは π |= ¬F(eating0)
0番目の哲学者が飢餓に陥る経路が存在するということをCTLによって表せ.
s |= EG(¬eating0) もしくは s |= ¬AF(eating0)
PLTLにおいて,経路πに対して「G F q」が成り立つことと,πの中でqが無限回成り立つことが等価であることを説明せよ.
π |= G F q iff (∀k. πk |= F q) iff (∀k. ∃l. π(k+l) |= q) だから。ってことで説明になってる?
3人の哲学者問題に関して,PLTLでstrong fairnessを表せ.たとえば,0番目の哲学者が左のフォークを取るというアクションに対して,enabledとchosenはどのように表せるか.(picking0やeating2などを用いて表せ.)
よくわかんない。後で考える。
Petersonのアルゴリズムに対するunconditional fairnessを書き下せ.
Petersonのアルゴリズムを知らないので、後で考える。
本日のツッコミ(全5件) [ツッコミを入れる]
ψ むとう (2006-06-13 02:42)

いやぁ、そんなおそれおおいッス(汗)。

ψ hisa (2006-06-13 11:43)

おとといはどうもです!RubyCocoa の GC について http://www.fobj.com/hisa/d/20060613.html#p01 にざっと書いてみました。

ψ さかい (2006-06-14 06:03)

>むとうさん<br>いや、歓迎されたと思いますよ。<br><br>>hisaさん<br>こちらこそ先日はどうもでした。GCについて聞いたのは、<br><br>1) RubyのオブジェクトとOBJオブジェクトに跨る循環参照の扱い。<br>参考)<br>http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20020802#c02<br>http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Gauche%3aGtk%e3%81%a8%e3%83%a1%e3%83%a2%e3%83%aa%e7%ae%a1%e7%90%86 <br><br>2) ユーザにはRuby側のラッパ=OBJCのオブジェクトに見えるようになっているのかどうか。普通に実装すると、Ruby側のラッパがGCされた後もOBJCオブジェクトが生き残っていて再びRuby側のラッパが生成されるような場合には、元のラッパのインスタンス変数などの情報が失われてしまい、Ruby側のラッパ=OBJCのオブジェクトには見えなくなってしまうけど……<br>参考)<br>http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20020629#p04<br><br>といったことが知りたかったからでした。

ψ hisa (2006-06-14 16:40)

(1) 循環参照について、薄々、問題ありそうなことに気付いていたかもしれないけど、実際にはほとんど何もしてないです。この問題については、ちゃんと考えてみたいと思います。<br><br>(2) は、そのまま最初とは別のRubyオブジェクトを生成します。「Rubyオブジェクト」としては別で、Wrapperが保持する「ObjCオブジェクト」としては同じ、と解釈すればいいと考えています。

ψ さかい (2006-06-15 18:04)

説明ありがとうございます。<br>(2)について、Ruby-Cocoaのソースを少し見てみたのですが、ocid_to_rbobjとocid_get_rbobjを見ると、(Ruby側のオブジェクトのラッパ等でない)一般のObjCオブジェクトをRuby側に持ってくるときは、毎回新しいオブジェクトを作っているみたいですね。