2006年12月22日(Fri) いい天気。いっぱいメールを書く。 [同日]
● STS-116でFluid loadingが始まった
NASA TVより。
一体何かな、と思っていたら、水を飲む、ということなのだそうだ。無重量状態では体内の水分の分布が地上とは違うので、体が、体内の水分の量を測り間違えるとのこと。地上に戻る前に水を飲んでおくと地上に戻ってから楽な宇宙飛行士も居るんだって。おもしろい。
(追記) isanaさんによると、チキンコンソメ・オレンジジュース・水のどれかを1リットル飲むとのこと。ビールは無いのかぁ…ないない。
● シャトルのお腹が見えたよ :)
● [Ruby] 久しぶりにWebrickで落ちた
前回とは違う感じ。ruby 1.8.4 (2005-12-24) [i686-linux] ruby-1.8.4-13m。
#0 0x00b2c402 in __kernel_vsyscall () #1 0x00138280 in raise () from /lib/libc.so.6 #2 0x00139931 in abort () from /lib/libc.so.6 #3 0x0016c98b in __fsetlocking () from /lib/libc.so.6 #4 0x00172211 in malloc_usable_size () from /lib/libc.so.6 #5 0x00173863 in free () from /lib/libc.so.6 #6 0x002a9c79 in rb_gc_mark_maybe () from /usr/lib/libruby.so.1.8 #7 0x002aa395 in ruby_xmalloc () from /usr/lib/libruby.so.1.8 #8 0x002f739a in rb_str_cmp () from /usr/lib/libruby.so.1.8 #9 0x002fd526 in rb_str_plus () from /usr/lib/libruby.so.1.8 #10 0x0028b888 in rb_provide () from /usr/lib/libruby.so.1.8 #11 0x0029359f in rb_iter_break () from /usr/lib/libruby.so.1.8 #12 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #13 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #14 0x0029cdb7 in rb_apply () from /usr/lib/libruby.so.1.8 #15 0x0029aa32 in rb_apply () from /usr/lib/libruby.so.1.8 #16 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #17 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #18 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #19 0x0029aa32 in rb_apply () from /usr/lib/libruby.so.1.8 #20 0x0029e912 in rb_apply () from /usr/lib/libruby.so.1.8 #21 0x0029f34f in rb_apply () from /usr/lib/libruby.so.1.8 #22 0x0028b487 in rb_provide () from /usr/lib/libruby.so.1.8 #23 0x0029359f in rb_iter_break () from /usr/lib/libruby.so.1.8 #24 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #25 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #26 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #27 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #28 0x00299b56 in rb_apply () from /usr/lib/libruby.so.1.8 #29 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #30 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #31 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #32 0x0029c471 in rb_apply () from /usr/lib/libruby.so.1.8 #33 0x0029c91e in rb_apply () from /usr/lib/libruby.so.1.8 #34 0x0029a127 in rb_apply () from /usr/lib/libruby.so.1.8 #35 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #36 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #37 0x00299b56 in rb_apply () from /usr/lib/libruby.so.1.8 #38 0x0029c471 in rb_apply () from /usr/lib/libruby.so.1.8 #39 0x0029c91e in rb_apply () from /usr/lib/libruby.so.1.8 #40 0x0029e912 in rb_apply () from /usr/lib/libruby.so.1.8 #41 0x00296aa1 in ruby_stop () from /usr/lib/libruby.so.1.8 #42 0x0028b487 in rb_provide () from /usr/lib/libruby.so.1.8 #43 0x0029359f in rb_iter_break () from /usr/lib/libruby.so.1.8 #44 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #45 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #46 0x0029cdb7 in rb_apply () from /usr/lib/libruby.so.1.8 #47 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #48 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #49 0x00299b56 in rb_apply () from /usr/lib/libruby.so.1.8 #50 0x0029d53d in rb_apply () from /usr/lib/libruby.so.1.8 #51 0x0029a8c6 in rb_apply () from /usr/lib/libruby.so.1.8 #52 0x00299ff7 in rb_apply () from /usr/lib/libruby.so.1.8 #53 0x0029e912 in rb_apply () from /usr/lib/libruby.so.1.8 #54 0x0029fbc1 in rb_yield () from /usr/lib/libruby.so.1.8 #55 0x00279111 in rb_ary_each () from /usr/lib/libruby.so.1.8 #56 0x0028b875 in rb_provide () from /usr/lib/libruby.so.1.8 #57 0x0029359f in rb_iter_break () from /usr/lib/libruby.so.1.8 #58 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #59 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #60 0x0029cdb7 in rb_apply () from /usr/lib/libruby.so.1.8 #61 0x0029c471 in rb_apply () from /usr/lib/libruby.so.1.8 #62 0x0029a127 in rb_apply () from /usr/lib/libruby.so.1.8 #63 0x0029e912 in rb_apply () from /usr/lib/libruby.so.1.8 #64 0x0029b25a in rb_apply () from /usr/lib/libruby.so.1.8 #65 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #66 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #67 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #68 0x0029cdb7 in rb_apply () from /usr/lib/libruby.so.1.8 #69 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #70 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #71 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #72 0x002935b8 in rb_iter_break () from /usr/lib/libruby.so.1.8 #73 0x00293a68 in rb_iter_break () from /usr/lib/libruby.so.1.8 #74 0x00299a3a in rb_apply () from /usr/lib/libruby.so.1.8 #75 0x002a1929 in rb_load_protect () from /usr/lib/libruby.so.1.8 #76 0x002a1982 in ruby_exec () from /usr/lib/libruby.so.1.8 #77 0x002a19bf in ruby_run () from /usr/lib/libruby.so.1.8 #78 0x08048622 in main ()
● 無事着陸。おめでとうございます!写真はNASA TV*1より
*1 NASA TVからの写真には著作権が設定されていません
● [Ruby] 後日談プラグインのリファクタリング
後日談プラグインでは、過去の日記からのAタグの生成のために、日記中のmyプラグインの第一引数のアンカーから、そのmyプラグインのいるセクションへのリンクをキャッシュに保存します。また逆に、myプラグインのいる日づけから、そのmyプラグインの第一引数のアンカーまでのリンクも保存しています。後者のリンクは、myプラグインが消去された時に過去の日記からのAタグを消去するために必要です。
こういうちょっとだけ違う情報の処理は、どこが違うか手探りをしながら実装することになりました。できあがってみるとそっくりのコードが2つずつ現れる。そこでリファクタリングしたくなるわけですが、今回改めてRubyのブロックの強みを感じました。イテレートする対象はそれぞれの方向のリンクのデータで、イテレートの仕方は結局一緒、それぞれに対する処理だけちょっと違う、という場合に、イテレータを作ってしまって、元のコードとは殆んど変化していないコードで2つの違う種類のデータに対応できるようになりました。
● [tDiary] 後日談プラグイン (リビジョン1.10)
そういうわけでそろそろ使っていただけそうです。プラグイン本体my-sequel.rb
と日本語リソースja/my-sequel.rb
です*1。現在のリビジョンは、プラグイン本体が1.10、日本語リソースが1.1です。プラグインのあるディレクトリにコピーしてプラグイン選択プラグインで有効にすれば、将来の日記からmyプラグインでの言及があった時に日記の終わりに将来の日記へのリンクが表示されるようになります。ご活用くださいませ。
*1 もしプラグイン集に集録されるようになったら上のURLは無効になるかもしれません。
● …あー。次はプレビューの時に過去の日記にリンクを作らないようにしないといけないな。
● というか逃避行動してないでシゴト。
● …プレビューには対応した(リビジョ1.11)けど消えたmyプラグインへのリンクが消えんとです。すまん。(追記) いや、改造中にデータが壊れただけのようでした。双方向のリンクのキャッシュの同期がとれないといけないようになってるんだ。
● …というわけで帰る。こうやって独りで精神的に消耗するシゴトのしかたは良くないやな。
最近のツッコまれどころ