free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日記(2007-08-13) 最新 次の日記(2007-08-15)» /編集

2007-08-14 [長年日記]

§ [//] 凝ったspam

 うちにもきた。人間に読まれる確率はそう変わらん(どのみちほぼスルー)から、むしろ機械的にフィルタされないことのほうが重要、とスパマーは考えているのでは。

§ [ruby] Rjb/Swing

 できるのか?とりあえずRHGのスレッドを見る。

 Java/Swing世界から「JNI(つまりCレベル)で結合した」Ruby世界の諸々が正しいことを期待できる気がしないんだけど、それは単に想像力の問題か。空間的な思考力が低いんだよな俺。

 うーん…?

 特に何もしなければRubyにはmain_threadしかないはずなので、スレッドコンテキストは切り替わらないのでは。むしろコンテキストとスタックで言っている「ローカル変数iの参照」なら、「いまのフレームのiをください」という命令があるだけで、「このフレームのiをください」とは書かないなので、Ruby世界からRubyオブジェクトのメソッドとかブロックを使う場合は、Rubyが自分でいいようにスタックを積み替えるのでiを参照できるが、Rjbの場合(特にカーネルスレッドな)Java側から唐突にコールバックされるので参照できない、というのがこの場合の問題なのでは。青木さん曰く、

Rubyの実行も基本的にはメソッドつまり手続きの呼び出しの連鎖に他ならないから、本質的にはこれと同じ実行イメージを持っている。つまりコードは同じで、アクセスされる側のローカル変数スコープやブロックローカル変数スコープのほうが変化する。そしてそういうスコープはスタックで表現される。

[RHGより引用]

ただしRubyではイテレータやProcを使うと以前に使ったスコープに一時的に戻れたりするからスタックの単純なプッシュ・ポップだけでは実装できない。そのためRubyスタックは実行中に複雑に積み変えられる。だからいちおうスタックとは言ってはいるが単なるリストと考えたほうがいいかもしれない。

[RHGより引用]

らしいし。YAJBだと何故Swingがふつうに動くか(主にGCまわり)はよくわかんないが。GCは手動だったかも。まあともかく、Javaからコールバックされたときにスレッドとかスタックとかスコープの状態が変でなければいい(GCは…)んだけど、なんというか脳味噌がついていきませんよ。

§ [//] cozmixwiki

 いつのまにか見れなくなっている。tDiaryのWikiもエラー発生中。

§ [unix] ミニマムなUnix/Linuxコマンドリファレンス

 紙を挟めるマウスパッドとかに入れておくといいかもしれない。

§ [//] Re: プログラマに電話を取らせるな

 概ね同意だけど、作業をするかぎりミスはなくならない。バグを入れない完璧な方法は作らないことだけだ。なので、ちらっとしか書いてないけどプログラマが直接電話を受けて直接対応しているので、営業もテスト部隊もどんな修正がなされたかを全く把握できていないほうが問題じゃないかと。作ったが最後、徹底的にテストする以外、完璧に近付く方法はない。

§ [ruby] Rjb/Swing part2

 そのへんうろうろ歩いたら的外れな気がしてきた。JNIEXPORT jobject JNICALL Java_jp_co_infoseek_hp_arton_rjb_RBridge_call()のrb_protect()されてるsafe_funcall()の実体はrb_funcall2()で環境は書き換えられるはず。

 OpenJDKでデバッグできたりしないのかな。

§ [//] Today's beer.

 ロッキー山脈で生まれたビールも今は中国産で198円。あとシメイブルー。450円くらい。

 クアーズ正面クアーズ背面