論文のネタのため、数年ぶりにruby_m17nブランチに手を入れる。
しかし、まだ課題も残る。
先は遠い。 ま、とりあえず、これらは論文では扱わないわけだが。
「メールオーガナイザーはどうしたのですか」という声を時々聞く。
実際にはバックエンドはとりあえず動くので、 コマンドラインで「inboxのリスト」とか、 「キーワード検索」とか、「類似メールの取得」とかはできる。
だがしかし、それをEmacsから使う時にどのようなインタフェースが使いやすいのか、 という点でまだ確信が持てない。Gmailのインタフェースはあんまり好きでないのだ。
一番好きなのは、昔のrnのように「日がな一日スペースバーを押し続けるだけでメールを読み続けられる」というものだが、検索ベースのMUAにおいてそれは可能なんだろうか。アーカイブするかどうかをどうやって決めるのか。
B0000DZNCV
大蔵大臣からプリンタ購入の許可が出た。こういう効能が目に見える機器はウケがいいらしい。
で、最近はやりの複合機を購入しようということになったのだが、 なかなか決心ができない。貧乏性の発作が。
候補をCanonのB0001LJ38SとHPのB0000DZNCVにまで、絞り込んだのだが、そこから先が膠着してしまった。
機能を考えるとPSC2450、ランタイムのことを考えるとMP710か。 うーむ、決められない。
OSCONの4日目。普通のセッションが目白押し。見たいものもたくさんあるが、 今日は自分も発表しないといけないのがツラい。ま、ただでOSCONに参加するためだと思えば、 たいしたことない、のかもしれないがやっぱりつらいものはつらい。
japan.linux.comに木曜日のレポートが出ている。
Rubyの作者まつもとがRubyの魅力の秘密のひとつ、ブロックについて語る。
OSCONに申し込んだときには素晴らしいアイディアだと思ったのだが、 準備している間にMartin Fowlerに先を越されてしまう。 腹いせに例題をいただくことにする。いや、腹いせなんてとんでもないです、ほんとは感謝してます。 Martin、いつもありがとうね〜。
苦労しながら発表したスライドはここ。
で、私のプレゼンを見て落ちたウロコの話(ブロックのパワーに気がついた話、英文)。
英語の発表はかなりこなしたので、 私レベルの英語(日常会話は聞き取れる、難しい話はできない)で、 技術プレゼンをする秘訣が身についてきた。万人向けではないかもしれないが、 ちょうどいい機会なので紹介しておく。
えー、上のテクニックはあくまでも「最低レベルを確保する」ためのものなので、 上級の人は馬鹿にしてくださって構いません。ええ、英語できませんとも(開きなおり)。
「JavaプログラマがRubyについて知っておくべき10のこと」。
Javaについて知っている人が間違いやすいRubyとJavaとの性質の違い。
結構面白いと思った。Javaしか知らないなら確かにこの辺に引っかかるだろうなあ。 スライドはこちら。
ただし私は「Objects are Strongly Typed, Not Statically Typed」の辺りで退席せねばならなかった。 次の用事があったのだ。
O'ReillyのAllison Randalの手配でランチ。 彼女はPerl Foundationの会長であると同時に、Perl6のコーディネータでもある。
ランチの参加者は
と豪華。ここに爆弾を仕掛けると...というのは2年前に使ったネタだな。 場所はポートランドダウンタウンのHuber's。
非常に楽しい話がたくさんできたのだが、後悔していることもたくさんある。 出た話題は
などなど。
後悔しているのは
私のミーハー心は満足されたがな。
Why the lucky stiffによるプレゼンテーション。本来は1:45pmからのコマに割り当てられていたのだが、
に変更になった。エレキギターを演奏するし、騒いでも迷惑にならない部屋ということなのだろうが、 たいしたものだ。内容は昨日FOSCONで発表したものとほぼ同じだが、いくつか新作があった。 逆にinstall.rbネタは省略された模様。爆笑の渦だった。
もっとも雰囲気で笑っていたので、冷静に考えると聞き取れなかったジョークもたくさんあった。
家族とSkypeで話す。これは便利だ。ただ、会場でラップトップに向かって日本語で話しかけていると 自分がバカになったような気がするのは欠点だ。今度はマイクつきヘッドフォンを持参しようかな。
で、会場のインターネット接続を利用していると、通りすがりの人に「Receptionはどうだった?」と尋ねられる。「いや、Receptionには出てないんだけど...」と答えると、怪訝な顔をしている。私も混乱気味。
で、辞書を引くとReceptionには「もてなし、歓迎会」などの他に「受信状態」という意味もあるのだった。 知らなかった。勉強になった。
Apple Developer Connection Receptionに顔を出して、食べ物をいただく。ブラジルからきた人たち(ひとりは日系三世)と話をしたり、 Perl5な人々と話をしたり。Perl5ピープルはパーティに誘ってくれたけど、 明日早朝にはもう出発しないといけないので、お断りする。貴重な機会を逃したようにも思うけど。
特に「Perl5をthread safeにしたい」という人とじっくり話がしたかった。 「書き込みだけlockすればなんとかなりそう」といってたけど。 RubyでもまずいのはGCのいくつかとst.cのハッシュテーブルがほとんどを占めるような気がするから、 あの辺をなんとかすることで、なんとかなるのだろうか。
今晩は『Kill Bill vol.1』。こんなブっ飛んだ映画だとは知らなかった。
書きあげる。今回は「パフォーマンスチューニング(2)」。
前回(2006年5月号)は
という内容であったが、今回はアルゴリズムが見直せない状態で どのくらい高速化できるかを考える、と言うもの。
で、高速化とくれば、実際にチューニングの対象となるプログラムを見つけて こなければならないのだが、なかなかそんなに都合よく落ちてないんだよねえ。
というわけで、『オブジェクト指向スクリプト言語Ruby』の9章でも 使ったマンデルブロ集合計算をテーマにする。ただし、本で使ったものとは くらべると、よりシンプルになっている(本: 102行、今回: 30行)。 本のものは編集の金光さん作であったが、 今回例題に採用したものは<URL:http://severinghaus.org/projects/mandelbrot/>が ベース。ただし、出力は2階調ではなくもうちょっと工夫してある。
さまざまな工夫により30倍以上の高速化を実現した。
Pickaxe2こと『プログラミングRuby』第二版が印刷所に入稿された との連絡を受ける。発行日は8月25日。実際に本屋に並ぶのは28日頃からとのこと。
今回は2分冊。結果的に合計価格が高くなってしまったことは申し訳ない。
もうどの辺がLLなんだかよく分からないけど、 言語好きが集まるイベントは希少だから、 それはそれで構わないと思う。
いや、日本でもOOPLAとかPOPLとかが開催されるようになれば、 いいのかな。でも、あっちはアカデミック色が濃すぎるしな。 発表しようにも、論文査読が通らなそう(トラウマがあるらしい)。
それはともかく、私とLLの位置関係は微妙で、 今回みたいに前日に他のイベントがあって交通費と宿泊費を負担してくれた場合には 気にしなくてすむけど、なんか私の交通費の異様な高さは このような「手弁当」の香りがするイベントには出席しにくいんだよなあ。
かといって、あんまり自分を安売りすると弾さんに怒られちゃうし。
実は地下鉄の出口を間違えて道に迷ってしまい、 和田先生の話が全然聞けなかった。これは後悔が残る。
で、今回は恒例Language Updateとパネル「オレ様言語の作り方」へ参加。
Language Updateは、むしろ他の言語の方が楽しかった。 IoとかLuaとか。多様性は善である。
で、Rubyは私とささだくんでプレゼンしたのだが、 私が思いっきりボケて、ささだくんがツッコむというスタイルにした。 Rubyくらいになると、もう言語の紹介は要らないし、 とはいえ、技術的な変化は些細なことになっちゃうし、 どうしてもウケ狙いになってしまうからだ。
のだが、実際のプレゼンは 当初の予想(期待?)ほどスムーズには行かなかった。 いかんせん8分という持ち時間が短すぎ。せめて15分欲しかった。 まあ、気まぐれな私に振り回されるささだくん、という構図がイメージできれば それで8割は成功な気がする。
が、ボケた内容のうち、一部は本気だったりする(「もしかして」機能とか)。 残りはきっと2.0だな。
「オレ様言語の作り方」は、高橋さんが司会で、 私がゲスト(解説者?)、パネラは
しかし、今思えば、解説者としての立ち位置だったら、 それを徹底すればよかった。
今のこの機能ですが、これはきっと〜の影響ですね。 いい味出してますねえ。
とか。失敗だ。
それをClassicの紹介とかに費やしてしまった。 台無しだ。ちなみに高橋さんからは、古いRubyについても いろいろ質問されて、手元にある一番古い0.49をコンパイルしてみたんだけど、 手を入れないと現在のLinuxではコンパイルできないし(古いglibcに依存してた)、 結構文法が違うし、で戸惑った。当時はまだ引数の括弧が省略できないし。
古いRubyの話は結局パネルでは使わなかったんだけどね。
あと、何人かの人に少し挨拶した後は、 くたびれていたので早々に帰ってしまった。 もうちょっといろんな人と話したかったんだけど、 残念。またの機会に。
今度私を見かけたら積極的に話しかけてくださいね。
このインタビューももう5回目か。
今度はささだくんがYARVにおける最適化について。 前回(M17N)は頑として黙ってたささだくんが、嬉々として語ってますよ。 ほんとにこういうのが好きなんだなあ。
私も嫌いじゃないけど、徹底できない。 だからMRIは遅いんだろうか。
前からやろうと思ってたんだけど、 (また)読者プレゼントを行おうと思う。
今回のプレゼント内容
なお、「オブジェクト指向スクリプト言語Ruby」には 1刷、2刷、3刷がありますが、特に指定はできないこととします。
Dukeがルビーを掲げている柄の「JRuby Tシャツ」はレアモノのUS製(グレー)と 国内製(紺)の2種類がありますが、今回のプレゼントは紺のものです。
希望者は、
をしたためて、e-mailを私のアドレス*1まで。 サブジェクトのどこかに「プレゼント」という単語を含めてください。 いただいた個人情報は配送用以外には使いません。 配送料は私が負担します。
公平を帰すため、(話題の)Array#choiceメソッドを使って当選者を決定します。
8日、金曜日に当選者を発表します(予定)。 特に落選の連絡はしませんのでご了承ください。
なお、在庫処分のため、今後もプレゼントは継続します。 残念ながら当選できなくても今後にご期待ください。
*1 matz あっと ruby-lang.org