Charles Web ProxyやFiddlerなどのHTTPスニッファはHTTPリクエストはもちろんHTTPSリクエストも中身は見えないながらもリクエスト自身は表示する、と思っていた。そうではないといことが今日分かった。 HTTPSでは、クライアント(ブラウザ)とサーバーがハン…
2つの Erlang ノードが互いに見えているのかどうかすら分からなかったときに、役にたったサイト。 Interconnecting Erlang Nodes | ejabberd
RAID の構成は以下の通り。/dev/md0 raid1 sda1[0] sdc1[1] sdb1[2](Spare) sdd1[3](Spare)/dev/md1 raid1 sda5[0] sdc5[1]/dev/md2 raid1 sdb5[0] sdd5[1]/dev/md3 raid10 sda2[0] sdb2[1] sdc2[2] sdd2[3]/dev/md4 raid10 sda3[0] sdc3[1] sdb3[2] sdd3[3]…
1. HDD のインストール HDD は Maxtor Diamond Max SATA II/300 500GB (7200rpm, 16MB cache) x 4。 マザーボードは Gigabyte P35-DS3R。RAID 機能付きのマザーボードだが、マザーボードの RAID は使わない。 このマザーボードには SATA コントローラが2つ …
Garmin Edge 305 が、どのボタンを押してもうんともすんとも言わなくなったときは、以下の方法でリセットする。 Lap ボタンと mode ボタンを同時押しして5秒待つ いったんボタンを離して電源ボタンを押す。
Second Annual Silicon Valley Ruby Conference に参加した。2日間、朝から夕方までほぼノンストップでプレゼンを聞くというマラソンイベントで、かなり消耗した。参加者は 200 - 300 人で、この手のイベントとしては盛況だったのではないか。 以下は、いく…
Vista を使い始めて1週間。最初の感想。 バックグラウンドでやたらと何やらやっていて、HDDアクセスが止まるひまがない。 そのおかげで遅い。 アプリケーションの互換問題が、致命的でないにせよ、ちらほらと。 システム変更に関する警告ダイアログが頻繁に…
最近いろいろとイベントがあって、Ruby コード読みが進んでいない。 そのイベントのひとつに新しいノートPC、Lenovo の ThinkPad T60p を手に入れたというのがあるのだが、このセットアップにほぼ1週間を費やしてしまった。 ThinkPad は 96 年に買った Th…
前回のまとめ(*) でこう書いた。 exec_under() は、クラス A を現在の cref スタックに追加した新たな cref スタックを、lfp[-1] すなわちローカル変数領域の内部用特別領域に保管する。このローカル変数のスコープが何かについては、今回は調べていない。 …
Module#class_eval で定義されたクラスメソッドの命令列の cref スタックは、通常の場合と違いlfp_get_special_cref() で返される cref スタックとなる。 lfp_get_special_cref() は他のクラスメソッド定義のやり方のときは値を返さなかったので、Module#cla…
前回「最後のパターン」などと書いたが、ドラえもんや巨人の星で分かる通り、「最後」というのは当てにならない。ということで、今回もクラスメソッドとクラス変数の話が続く。 今回は Module#class_eval の中で定義したクラスメソッドの中からクラス変数を…
日本でも「3週間早い夏時間切り替えでIT製品に問題多発」などとニュースになっているようだが、アメリカでの夏時間変更のための修正(以下 DST パッチ) 作業は、たしかに予想を越える大変さだった。 会社編 まず、会社ではIT部門、データセンター部門が数週間…
クラスメソッドからクラス変数を参照。最後のパターンは、特異クラス内で定義されたクラスメソッドの場合だ。調べる Ruby のプログラムは以下の通り。 class A @@a = "Hello" end class <<A def test_sclass puts @@a end end A.test_sclass (test_sclass.rb) 特異クラス定義の部分は、どういう VM 命令列になるのだろうか?アセンブリコードを見てみよう。 == disasm: @test_sclass.rb>================================= 0000 putnil 0001 …</a>
昨日コードを調べたとき、一つ気になったことがある。 prepare_iseq_build(rb_iseq_t *iseq, VALUE name, VALUE filename, VALUE parent, VALUE type, VALUE block_opt, const rb_compile_option_t *option) { rb_thread_t *th = GET_THREAD(); ............…
問題となっている cref は iseq->cref_stack から来ている。どういう経緯でここに Object クラスが設定されたのかを知りたい。 手始めに iseq->cref_stack を初期化しているところを探してみる。cref_stack という文字列でファイル検索をかけると 20 箇所ほ…
今回は、クラス外で定義されたクラスメソッドからクラス変数を参照する場合の内部動作を調べてみる。Ruby のコードは以下のとおり。 class A @@a = "Hello" end def A.test_out puts @@a end A.test_out 前回やったのと同じ要領で、puts @@a に対応する YARV…
タクシーに乗って空港に向かう途中、運転手と世間話をした。 どこの出身か聞くと、7年ほど前にソマリアからアメリカにやってきたと言う。ソマリアというと、内戦で大変なことになっているあの国ではないか。 暫定政府がイスラム勢力を追い出したという、最…
最新版の ruby 1.9 (r11928) で下のコードを走らせてみると、以下のような結果になる。 class A @@v = "I'm A" def A.av @@v end end class B < A def B.bv @@v end def B.update_v @@v = "I'm B" end end puts B.bv # --> I'm A # B から A の @@v が見える…
今日は、クラス内で定義されたクラスメソッドからクラス変数を参照する場合の、ruby 1.9 内部の動作を調べてみる。調べる Ruby のプログラムは以下の通り。 class A @@a = "Hello" def A.test_in puts @@a end end A.test_in # --> Hello (test_in.rb) puts …
昨晩8時半ごろ突然停電した。アメリカでは停電自体は別に珍しくもないが、大抵は5分以内に復活する。ところが今回は10分たっても20分たっても復活しない。外に出てみると、数軒先のあかりはついている。どうやらごく狭い範囲の停電らしい。 こういう場…
昨日まで調べていた ruby 1.9 の新機能、クラスローカルインスタンス変数が、最新のリビジョン(11813)では取り除かれている。 どうやら、この辺りの事情のようだ。 ごもっともなご意見である。 というわけで、今日はターゲットを変更して、クラス変数を調べ…
前回のおさらい。 クラスローカルインスタンス変数を、クラスからしか見えなくするために、クラスとインスタンス変数名の組でしかアクセスできない仕組みが 1.9 で導入された (ivar2)。変数名はそのものずばり "@_a" のような名前だが、クラスは eval_get_cv…
1.9 で最近導入されたクラスローカルインスタンス変数について少し調べてみた。クラスローカルインスタンス変数とは、C++ のプライベート変数のようなもので、サブクラスから参照することができない。現在の 1.9 の実装では @_ で始まるクラス変数がクラスロ…
Ruby の内部データ構造は union やハッシュテーブルを駆使してあって、デバッガで直接データを読むのはかなりつらい。幸い、構造体からデータを取り出すための関数が充実している(と思われる)ので、それらを使えば効率的に内部構造を調べることができる。…
今日は gdb を使って構文木あたりの動作を調べていたら、足がすべって YARV の方まで突入してしまった。2日目にして早くも RHG から離れている。今日は注釈でもなんでもない、疑問。第15章 メソッド http://i.loveruby.net/ja/rhg/book/method.html obj.met…
第12章 構文木の構築 ファイル名と行番号 http://i.loveruby.net/ja/rhg/book/syntree.html ……ということは、行番号が 2^13=8192 を超えると行番号表示がおかしくなるはずである。試そう。 File.open('overflow.rb', 'w') {|f| 10000.times { f.puts } f.put…
先日、Ruby のまつもとさんに会う機会があった。 これを機に Ruby の開発に参加しようと Ruby のソースを svn から取ってきて読みはじめたが、十年以上 C から離れていた身には、なにやら雲のようで、とりつく島もない。いささか途方に暮れてネットをさまよ…
この項目は現在調査中です。