Archive for July, 2007

五月雨不調

Posted by on Tuesday, 17 July, 2007

SF系日記更新時刻Rおよび
関数的なアンテナの閲覧者の皆さまへ。

えーと、サーバの ruby のバージョンを上げたら唐突にアンテナのプログラムが止まるようになりまして、さっきまで復旧作業してました。ちなみにどうなるかというと、

>

/usr/local/lib/ruby/1.8/time.rb:453: [BUG] queue 0xa558980 freed with live thread(s) [#<Thread:0x86d90f4 run>, #<Thread:0x86d90f4 run>, #<Thread:0x86d90f4 run>, #<Thread:0x86d90f4 run>, #<Thread:0x86d90f4 run>, #<Thread:0x86d90f4 run>, #<Thhread:0x86d90f4 run>] waiting

こんな感じでした。 [BUG] かよ。

現在なんとか復旧しましたが、そういうわけで最新更新時刻はそれ以前と断絶が生じている模様。まあ、そのうち落ち着くと思います。(→トラブル前のデータを持ってきたら断絶は直りました)

てことで以下は詳しい人向けの話題。

で、どうなったかというと、ご覧のようにスレッドまわりのおかしなことでしたということで –single-thread で動かしなおしたらとりあえずなんとかなった、ということなんですが原因は実はいまいちよくわかっていません。

現象を見ていると、どうやら上のバグが発生する直前は、あらゆるホストが host not known になるようなんですね。ようは名前が引けていないと。五月雨は(single-thread でなければ) resolve を ruby レベルでやっている。これは何故かというと、確か akr さんのるびまのインタビューか何かで言ってたけど、 ruby レベルでマルチスレッドになっても gethostbyname とかが ruby 全体を止めてしまうから、という話だったような。で、どうもそこのところに問題がありそうだ、という印象なのですが。

アンテナがチェックするページはいっぱいあって、どこかのタイミングで resolv がコケるとあとはガガガッとドミノ倒しのように、後のページはみんなだめになって、どっかで ruby 自身が音を上げると、そういう感じなのかなあという印象。

問題はなぜ resolv がコケるかなんだけど。ひょっとして DNS の問題か。

追記: うーん、やっぱ DNS の問題かな。

現在の jmuk.org はさくらインターネットを借りてやってるんですがその前は自宅サーバだったのでよくよく見てみれば www.jmuk.org の /etc/resolv.conf は自宅サーバを指していた。そのせいかと思って自前で named を上げてみた。そしたら、一回目の試行では失敗したのだが二回目から成功。名前を引くときの微妙に時間がかかるロスが蓄積していってどっかで破滅するということなのかな。さてはて。


伊藤計劃『虐殺器官』

Posted by on Saturday, 14 July, 2007

虐殺器官

『Self-Reference ENGINE』といっしょの小松左京賞落選組。しかし SRE もこれも落ちるとは(中略)だよな。

うーん、ただ、わたしの周りじゃいっしょに傑作傑作言われてて、なるほど面白いんですがわたしはそこまででも、と思った。

9・11以降、世界各地では内乱と虐殺が頻発。アメリカは各地の紛争を押える戦争をしている。主人公は、虐殺の中心的な人物を暗殺する米軍特殊部隊の一員。ところがあるときから、世界のどの虐殺の場にもいて暗殺の対象となる謎のアメリカ人、ジョン・ポールを追う……。

というかなりハードでミリタリー色の強そうに見えるかもしれないけど、そういう面は意外と少ない。虐殺の真相にいたるSFアイディアと、イーガンにも似た主人公の思弁がポイント。特に、相手に同情しないように感情を抑制されて暗殺を遂行する主人公の「意思」とは何か?といった問い掛けが非常に効いている。

のだけど。

敵役であるジョン・ポールの真の目的、というのがなんというかな、陳腐というか、一昔前のゲームかアニメみたいなので個人的にはちょっと拍子抜け。その陳腐さもまたテーマのひとつなのかもだけど、そこは「うーんそれでいいのか……」とちょっと思ってしまった。

タイトルにある虐殺器官についても、謎が提示されているだけで終わっているという印象で、なんというかスジを通していない気がする。SFとしてそういう設定があることを疑問視したいのではなくて、いったんあるとした設定を「なぜそんなものがあるのか?」という疑問が提示されてほったらかされているので。それなら疑問は提示しない方がよかったのではないかと思うんだけどなあ。

しかしまあ、こういった無意味な難癖をつけたくなるのは面白さの証なのかも。

あと、基本的に至極まじめな話なのに、唐突に

>

文字はフジワラという名前のトウフ・ショップが使っていた車であることを物語っている。

とか、

>

好きだの嫌いだの、最初にそう言いだしたのは誰なんだろうね

とかいったコネタがいきなり登場するのも意味不明ですが愉快です。


ふと思ったんですが

Posted by on Monday, 9 July, 2007

AquaSKK ユーザで Emacs ユーザな皆様は、 Ctrl+J の衝突に対してどのように対処されているのでしょーか。

いやまぁ、もう最近は慣れちゃって Emacs を使っていても C-j じゃなくて無意識に C-m の方を打鍵しているんですけれど、やっぱ C-j って必要じゃないですか。うん、改行するときだけじゃなくて、*scratch*とかでも使うし。わたしは Emacs-Lisp 使いとしてはしょぼいけど、値の設定や確認とかには *scratch* って使うわけで、そんなときに C-j が潰れていると悲しいのだよね。変数を設定するのいいちいち M-xset-variable ってやってたりするんですが。

って書いていて気付いたけど、そういや、適当なキーバインドにしたればいいのだな。

(when (eq system-type ‘darwin) … … … (define-key lisp-interaction-mode "¥C-o" ‘eval-print-last-sexp) )

などとしてみた。 Mac に乗り換えてからけっこう経つのにこういうのに頭が回らんのだから嫌ンなるな。キーバインドは適当だけど、まあまあかも。ほかのモードでも C-j を復活させたいけど、たぶんけっきょく個別対応になっちゃうから、まあ、いいか。

ちなみにわたし、むかしは SKK の方の確定キーを C-o にしていたんですが、 Emacs だけならともかくほかのアプリケーションではやたらと衝突するキーバインドだし、そもそも AquaSKK はその辺の設定ができないので今はまあ、やっとりません。 SKK の C-j というキーバインドは、もう少しべつなのはなかったのかなぁとよく考えます。


Re^2: 遅咲きの人

Posted by on Sunday, 8 July, 2007

http://d.hatena.ne.jp/lethevert/20070706/p1 21ですか。確かに遅い方かもしれませんね。

大元のネタでは坂村健も「大学を出てすぐに東大情報科学科の助手になったみたい」てことで資格ナシということになっていますが、えーと、大学を出たのは博士課程を取ってからだから27歳とかその辺なんですが、そういうことは関係ないんだな(いや、院生のころからOSとかコンピュータの研究をしていたお方ではあるけれど)。年齢は関係なく学生のころにそういう体験をしていない人、ってことですかね。今じゃ理系の学科に属していれば、遅くてもその辺ではプログラミングに触ってしまうので、それだけで元の条件を失なってしまうような希ガス。

いるかいないかで言えば文系の学部を出てプログラマとかSEになる人というのは一定量いるわけで、そんなかで才能がある人とかもいるんだろうけれど、この人の求める像に近いのかどうかがわからん。たぶん違った風なんだろうなー。

自分の話を書くと、わたしは小学生のときに N88-BASIC で遊んでたことのある世代ですが、そういうことに何か意味があったというと、今の自分とはやっぱ断絶があると思うんだよなー。中学とか高校のころから凄かったりいろんな活動をしていた人というのもいるだろうけど、わたしは違うので、実感としてはそういうのを求めても意味ないよなーとか思ってしまう。いや、そういうのを求めるココロはわかるんですけどね。


石川雅之『もやしもん』[5]

Posted by on Sunday, 8 July, 2007

菌が見える主人公が特になにもせずに学園生活を送ったり送らなかったりする『もやしもん』も5冊目。秋の収穫祭があったりフランスに行ったり。

夜の収穫祭でリベンジをすると教授になれるとか、ムチャクチャなアイディアを出したりして実に楽しそうなんですが、ストーリーは進んでるんだか停滞しているんだか相変わらずさっぱり。まあだからこそ面白いのかもねえ。

伏線がすごくいっぱいあるんだけど、考えられているのか活かされるのかすごく疑問です。こないだ読み返したんだけどさ、1巻の冒頭で沢木が「なんだこれ見たことねえな」ってつかまえた菌のこと、みんな覚えてるー?(わたしは忘れてました)

しかしアニメ化とは正気かと思ったけど、ノイタミナ枠ならまあ、原作通りにそのまんまアニメにするんだろうなー。

もやしもん 5―TALES OF AGRICULTURE

ちなみにわたしは4巻はオマケつき、5巻は通常版を買いましたとさ。


青木幸子『ZOO KEEPER』[3]

Posted by on Saturday, 7 July, 2007

個人的には「特殊能力を持った主人公が、その特殊能力を特に生かさずにいろいろあるまんが」ネタで、すくなくとも連載中で『もやしもん』と双璧をなすまんが。そういえばどちらもイブニング連載だな。

コマ動物園の新米飼育員、楠野香也は「温度を視認できる」という能力を持っている。この能力を生かしたり特になにもしなかったりしながら、いろんな動物と、動物園のためのいろんな問題に応対するのがこのまんがの読みどころ。

で、このまんがの面白さは、動物園という施設の切り取り方にある。

>

動物園は基本的に金食い虫。なくて生活に困る施設ではない。生き物を囲い込み見世物にする。それらの疑問に対する答えは一つではない。しかし――それらの疑問を越える信念がなく! 信念を通す行動がないならっ!! そんな園などつぶれてしまえっ!!

これは2巻での(主人公の勤務する園の)園長の言葉だが、ここにこのまんがの切り取り方が端的にあらわれている。動物園ってなんなのか、動物を囲い込むことにどんな意義があるか――。だからこのまんがは、動物が主題ではあるけれど動物が主題ではなく、あくまでも ZOO KEEPER (動物園の管理者=飼育員)の目線の物語だ。そのメタな視点がとても面白い。

でも、そういう真面目な視点だけのまんがじゃなくて、くすっと笑えるところもあり、ぐっと来るところもある。なんだろうね、絵は上手い人じゃないと思うけれど、引き込まれる。

今回の白眉は予算がおりたので新しい展示のコンペをやるというエピソード。チーターを全力疾走させるという展示やその意義というのももちろん面白いんだけど、それまで主人公が関わったキャラが総登場で主人公に協力を求めるくだりや、けっきょくそれがぜんぶ主人公が協力した別のアイディアに負けるときの反応とかなんかが、結構おかしくて笑えるんだよね。

オススメです。

ZOOKEEPER 3 | ZOOKEEPER 1 | ZOOKEEPER 2


遅咲きの人たち

Posted by on Friday, 6 July, 2007

有名なプログラマの方のプロフィールを見たりすると、大体高校生までにプログラムやコンピュータに慣れ親しんできた方が多いように思いますが、どなたか有名なプログラマの方で、比較的遅い時期(例えば大学卒業後)にプログラムやコンピュータに出会い、そこから急速に実力を伸ばしてきたという方がいましたら教えて下さい。

つ 和田英一

って書こうかと思ったけど、さすがに質問者の想定していることと違うだろうからやめた。

Rubyist Hotlinks を見ていると、べつに高校生のころに親しんでいたわけではないって人もけっこういると思ってざっと眺めていたらそれなりにいるけど、列挙するのが面倒なのでやっていない。ま、いっぱいいるでしょ。

半径数ホップ以内でぱっと思いつくのはあろはさんなんだけどなー。


二分木はにぶんぎでしょう

Posted by on Thursday, 5 July, 2007

http://www.kt.rim.or.jp/~kbk/zakkicho/07/zakkicho0707.html#D20070704-4

ネタニマジレ(ry

ま、読みはともかく、あれ見て、 AVL 木を使って似たようなことをやろうと思ったけど面倒なのでやってない。誰かやってくれないかなー。

ちなみに、 STL の map は赤黒木。 Haskell の Data.Map は AVL 木。 glib の binary balanced tree も AVL 木。あとツリーっぽいデータコンテナを持ってるのって何があったかなー。

AVL木と赤黒木だと、赤黒木の方が条件が緩いので構築しやすいと言われているし、実際に評価をしてみても挿入は赤黒木の方が速いようなんだけど(回転が起こりづらいからだろう)、実装としては AVL 木の方がずっと楽なんですよね。速度もそれほど差はなく、条件が厳しいぶん、探索速度としては AVL 木の方が上なので、そっちの方がいいとオレは思うんだけどなーとか思ったり思わなかったり。というかなあ、赤黒木は(とくに削除では)いろんな場合が多すぎて面倒くさい。

ところで確認のために glib の g_tree のコードを見てみたけど、確かに AVL 木ですね。でもなんで while で実装してるのかが謎。再帰で書いた方が楽だと思うし、 そのせいで MAX_GTREE_HEIGHT という定数(40)に深さが限定されてんのね。うーん、これはアリなのか……。

深さが一定以上になるといきなりマシンが落ちるという状態を避けたい、とか? 明示的にハンドリングしたいという意味ではありか。ま、そもそも平衡木で深さが40ってかなりありえないノード数だからいいんですけど。

関係ないけど、

>

Rails無しのRubyをどう使えばいいのだろう.

は「Rubyって tDiary を動かすのに必要なヤツだっけ?」に並ぶ名台詞だと思いました。むかし tDiary、いま rails。