«前の日(08-03) 最新 次の日(08-05)» 追記

Matzにっき


2003年08月04日

_ 来訪者

首藤さんの日記にもあるように、 松江で開かれているSWoPPに参加中の「Ruby世代別GC」の木山くんと、首藤さんが訪問してくださる。

木山くんからは製本した博士論文をいただいた。 現時点では、彼はRubyをテーマにD論を書いた唯一の人物だろうなあ。 続く強者(つわもの)が出るか、否か。

ところで、昼食はご一緒しなかったんですが、やっぱりラーメンだったのね。

_ [Ruby]Ruby 1.8.0

やっと出ました

関係者の皆さんお疲れさまでした。直前のミスで古いChangeLogがパッケージに含まれていないのですが、 ここに置いておきます。

既に分かっている問題

  • 上記のChangeLog
  • doc/NEWSにいくつかのスペルミス(CVS→CSVとか)
  • OSF/1でmake testに失敗する。-lrubyで古いlibruby.soをリンクしてしまう。 とりあえず、2度インストールすることで解決。

しばらく休憩してから、ruby_1_8ブランチを作って、開発版1.9に集中しよう。 Riteはそれから。気の長い話だ。


2004年08月04日

_ [Ruby]Multilingualization

論文のネタのため、数年ぶりにruby_m17nブランチに手を入れる。

  • 「先頭バイトを見るだけでマルチバイト文字の長さが分かる」という仮定を排除。 これでUTF-16やGB18030のようなコードをサポート可能。
  • プリミティブの数を減らし、新たな文字コードのサポートを容易に。
  • 実証としてUTF-16BEのサポート。

しかし、まだ課題も残る。

  • 正規表現エンジンには鬼車3.2.6を採用したが、 こちらが独自で行っている多言語対応とのマージ。
  • ASCII互換でないCES(UTF-16とか)のprintfフォーマッティング。
  • 使いやすいエンコーディングの指定法。

先は遠い。 ま、とりあえず、これらは論文では扱わないわけだが。

_ [Morg]インタフェース

「メールオーガナイザーはどうしたのですか」という声を時々聞く。

実際にはバックエンドはとりあえず動くので、 コマンドラインで「inboxのリスト」とか、 「キーワード検索」とか、「類似メールの取得」とかはできる。

だがしかし、それをEmacsから使う時にどのようなインタフェースが使いやすいのか、 という点でまだ確信が持てない。Gmailのインタフェースはあんまり好きでないのだ。

一番好きなのは、昔のrnのように「日がな一日スペースバーを押し続けるだけでメールを読み続けられる」というものだが、検索ベースのMUAにおいてそれは可能なんだろうか。アーカイブするかどうかをどうやって決めるのか。

_ [買い物]プリンタ

B0000DZNCV

大蔵大臣からプリンタ購入の許可が出た。こういう効能が目に見える機器はウケがいいらしい。

で、最近はやりの複合機を購入しようということになったのだが、 なかなか決心ができない。貧乏性の発作が。

候補をCanonのMP710とHPのPSC 2450 Photosmartにまで、絞り込んだのだが、そこから先が膠着してしまった。

  • PSC2450には、液晶画面、FAX機能(使わないけど)がある。
  • PSC2450は両面印刷機能があり、前面給排紙。
  • MP710にはCDダイレクト印刷機能がある(使わないけど)
  • 印刷速度はMP710の方が速い
  • インクコストはPSC2450の方が3倍くらい高い
  • PSC2450にはLinuxドライバがあるらしい。CanonもLinuxドライバを公開してるけどMP710は対象になってない(?)
  • PSC2450は6色インク、MP710は4色インクだが、印字サンプルを見る限り大差はなさそう。

機能を考えるとPSC2450、ランタイムのことを考えるとMP710か。 うーむ、決められない。

_ Lightweight Language Weekend発表資料

そういえば、8月1日〆切のを2日になってからあわてて書いたが、 発表資料のページには私のぶんが載っていない。

しばらくしてからハタと気がついた。他の人は自分のサイトに置いていたのだが、 私はpsファイルを圧縮してメールに添付して提出したのだった。なるほど、それでは載らないわけだ。

というわけで、改めて(いつもの方法で)スライドを用意した。ま、たいした内容じゃないんだけど。


2005年08月04日 OSCON 4日目

_ [OSS] OSCON Thursday

OSCONの4日目。普通のセッションが目白押し。見たいものもたくさんあるが、 今日は自分も発表しないといけないのがツラい。ま、ただでOSCONに参加するためだと思えば、 たいしたことない、のかもしれないがやっぱりつらいものはつらい。

japan.linux.comに木曜日のレポートが出ている。

_ [OSS] Yield to the Block: The Power of Blocks in Ruby

Rubyの作者まつもとがRubyの魅力の秘密のひとつ、ブロックについて語る。

OSCONに申し込んだときには素晴らしいアイディアだと思ったのだが、 準備している間にMartin Fowlerに先を越されてしまう。 腹いせに例題をいただくことにする。いや、腹いせなんてとんでもないです、ほんとは感謝してます。 Martin、いつもありがとうね〜。

苦労しながら発表したスライドはここ

で、私のプレゼンを見て落ちたウロコの話(ブロックのパワーに気がついた話、英文)。

_ 英語で技術プレゼンテーション

英語の発表はかなりこなしたので、 私レベルの英語(日常会話は聞き取れる、難しい話はできない)で、 技術プレゼンをする秘訣が身についてきた。万人向けではないかもしれないが、 ちょうどいい機会なので紹介しておく。

  • スライドを用意する。ところどころ重要でないところで日本語を入れておくと目を引く。 私の場合は名前が「まつもと ゆきひろ」のまま。 日本語だと4,5分に1枚のペースで用意するのだが、 英語の場合、脱線したり関連したエピソードをその場で挿入する余裕はないので、 1分とか40秒に1枚のペースで用意する。 OSCONのようなオープンソース関連のイベントでは一般にユーモアが評価されるので ジョークを織りまぜておく。今回は「ルビま」のRuby on Railsネタを拝借しました。
  • スライドをコピーする。オリジナルのスライドは要点の箇条書きだが、 こちらには喋る内容を英語ですべて書く。数字とかもtwenty-oh-fiveのように書き下しておく。 原稿全部を書くと1枚のスライドに収まらないので、長くなれば積極的に数枚に分割する。 長い文だとどこまで読んだかわからなくなるので。 あと、発表用のスライド(オリジナル)でページ替えをするタイミング、 指示棒で指すタイミングなども<space>、<point>などの記号で書いておく。
  • 発表の場所ではPCを2台並べて用意し、片方で発表用のスライド、 もう一方で原稿用のスライドを表示する。 デュアルヘッドなマシンならそんなことはしなくていいのかな。 私の場合はMagicPointを使うが、別にツールは関係ない。
  • 発表の時には、時折会場の人を見ながら、原稿を読む。 一般に原稿を読むのはプレゼンとしてはサイテーなスタイルなのだが、 自分が英語がヘタクソなのを忘れてはいけない。 喋ることがわからなくなって、頭が真っ白になったり、 わけのわからないことを言って会場を混乱させるよりは読んだ方がマシ。
  • で、おそらくは時間が余る。全時間使うつもりでスライド準備しても余る。で、質問タイムにする。 英語がわかんないときには困った顔をしてると助けてもらえることがある。 今回はインド系の人の英語が聞き取れなかった。

えー、上のテクニックはあくまでも「最低レベルを確保する」ためのものなので、 上級の人は馬鹿にしてくださって構いません。ええ、英語できませんとも(開きなおり)。

_ [OSS] 10 Things Every Java Programmer Should Know About Ruby

「JavaプログラマがRubyについて知っておくべき10のこと」。

Javaについて知っている人が間違いやすいRubyとJavaとの性質の違い。

  • Learn Ruby Conventions
  • Everything is an Object
  • (Almost) Everything is a Message
  • Ruby is Way More Dynamic Than You Expect
  • Objects are Strongly Typed, Not Statically Typed
  • Don’t Worry About Interfaces
  • Mix it up with Mix-ins
  • Embrace Closures
  • ri is Your Friend, irb is Your Other Friend
  • Write Less Code
  • Ruby Makes Programming Fun Again

結構面白いと思った。Javaしか知らないなら確かにこの辺に引っかかるだろうなあ。 スライドはこちら

ただし私は「Objects are Strongly Typed, Not Statically Typed」の辺りで退席せねばならなかった。 次の用事があったのだ。

_ [OSS] Designers' Lunch

O'ReillyのAllison Randalの手配でランチ。 彼女はPerl Foundationの会長であると同時に、Perl6のコーディネータでもある。

ランチの参加者は

  • Allison Randal (Perl / Perl Foundation)
  • Larry Wall (Perl /the Wall nuthouse)
  • LasmusRasmus Lerdorf (PHP / Yahoo!)
  • Guido van Rossum (Python / Essential Security)
  • まつもと ゆきひろ (Ruby / netlab.jp)

と豪華。ここに爆弾を仕掛けると...というのは2年前に使ったネタだな。 場所はポートランドダウンタウンのHuber's。

非常に楽しい話がたくさんできたのだが、後悔していることもたくさんある。 出た話題は

  • 最近ホットなトピックは? - Unicodeかなあ (Rasmus)
  • 言語デザインを最初から完璧にするのは無理、段階的に発展する。 でも、後から(偶然)しっくり決まることもあると思う。 J.K.Rowlingも最初からボルデモートがアナグラムだと構想していたわけではないと思う。(Guido)
    -- Harry Potterに言及するGuidoはちょっと意外
  • Larryは食べられないものがいっぱい。パンもダメらしい
  • PHPは言語じゃない。バッチ的にも使えるようになったけど、使うべきというわけじゃない。 私は(他のツールについて改めて学ぶのが面倒なので)PHPをバッチに使うこともあるけど。(Rasmus)
  • プレゼン苦手。OSCONに来るのは楽しいけど。あ、来年はLightning Talkのコーディネータになるというのはどうだろうか。しゃべらなくて済むし。(まつもと)
    あ、それ良いアイディアね (Allison)
  • InsaneさではPerlの連中にかなわない。君達は桁違いだ。(Guido)

などなど。

後悔しているのは

  • 全員が揃っている写真を撮らなかったこと。一生の不覚
  • もっといろいろ聞きたいことがあったのに話せなかったこと。もっと英語が上手ならなあ。

私のミーハー心は満足されたがな。

_ [OSS]A Starry Afternoon, a Sinking Symphony, and the Polo Champ Who Gave It All Up for No Reason Whatsoever

Why the lucky stiffによるプレゼンテーション。本来は1:45pmからのコマに割り当てられていたのだが、

  • 3:20pmからのbreakタイム(約1時間)に
  • Portland Ballroom(いちばんでっかい部屋)

に変更になった。エレキギターを演奏するし、騒いでも迷惑にならない部屋ということなのだろうが、 たいしたものだ。内容は昨日FOSCONで発表したものとほぼ同じだが、いくつか新作があった。 逆にinstall.rbネタは省略された模様。爆笑の渦だった。

もっとも雰囲気で笑っていたので、冷静に考えると聞き取れなかったジョークもたくさんあった。

_ Skype

家族とSkypeで話す。これは便利だ。ただ、会場でラップトップに向かって日本語で話しかけていると 自分がバカになったような気がするのは欠点だ。今度はマイクつきヘッドフォンを持参しようかな。

_ Reception

で、会場のインターネット接続を利用していると、通りすがりの人に「Receptionはどうだった?」と尋ねられる。「いや、Receptionには出てないんだけど...」と答えると、怪訝な顔をしている。私も混乱気味。

で、辞書を引くとReceptionには「もてなし、歓迎会」などの他に「受信状態」という意味もあるのだった。 知らなかった。勉強になった。

_ [OSS] 最後に

Apple Developer Connection Receptionに顔を出して、食べ物をいただく。ブラジルからきた人たち(ひとりは日系三世)と話をしたり、 Perl5な人々と話をしたり。Perl5ピープルはパーティに誘ってくれたけど、 明日早朝にはもう出発しないといけないので、お断りする。貴重な機会を逃したようにも思うけど。

特に「Perl5をthread safeにしたい」という人とじっくり話がしたかった。 「書き込みだけlockすればなんとかなりそう」といってたけど。 RubyでもまずいのはGCのいくつかとst.cのハッシュテーブルがほとんどを占めるような気がするから、 あの辺をなんとかすることで、なんとかなるのだろうか。

_ 深夜テレビ

今晩は『Kill Bill vol.1』。こんなブっ飛んだ映画だとは知らなかった。


2006年08月04日

_ [原稿] 日経Linux 2006年10月号

書きあげる。今回は「パフォーマンスチューニング(2)」。

前回(2006年5月号)は

  • ちゃんと計測しろ
  • ボトルネックを見つけろ
  • まずアルゴリズムを見直せ

という内容であったが、今回はアルゴリズムが見直せない状態で どのくらい高速化できるかを考える、と言うもの。

で、高速化とくれば、実際にチューニングの対象となるプログラムを見つけて こなければならないのだが、なかなかそんなに都合よく落ちてないんだよねえ。

というわけで、『オブジェクト指向スクリプト言語Ruby』の9章でも 使ったマンデルブロ集合計算をテーマにする。ただし、本で使ったものとは くらべると、よりシンプルになっている(本: 102行、今回: 30行)。 本のものは編集の金光さん作であったが、 今回例題に採用したものは<URL:http://severinghaus.org/projects/mandelbrot/>が ベース。ただし、出力は2階調ではなくもうちょっと工夫してある。

さまざまな工夫により30倍以上の高速化を実現した。

_ [Ruby] Pickaxe2 8/25発行

Pickaxe2こと『プログラミングRuby』第二版が印刷所に入稿された との連絡を受ける。発行日は8月25日。実際に本屋に並ぶのは28日頃からとのこと。

今回は2分冊。結果的に合計価格が高くなってしまったことは申し訳ない。

_ [Ruby] SciRubyInterviews/BilKlebAndBillWood

NASAでRubyを使うふたりのBillへのインタビュー。

本気で使ってるよ、この人たち。


2007年08月04日

_ [言語] LL魂 〜 LL Spirit

もうどの辺がLLなんだかよく分からないけど、 言語好きが集まるイベントは希少だから、 それはそれで構わないと思う。

いや、日本でもOOPLAとかPOPLとかが開催されるようになれば、 いいのかな。でも、あっちはアカデミック色が濃すぎるしな。 発表しようにも、論文査読が通らなそう(トラウマがあるらしい)。

それはともかく、私とLLの位置関係は微妙で、 今回みたいに前日に他のイベントがあって交通費と宿泊費を負担してくれた場合には 気にしなくてすむけど、なんか私の交通費の異様な高さは このような「手弁当」の香りがするイベントには出席しにくいんだよなあ。

かといって、あんまり自分を安売りすると弾さんに怒られちゃうし。

実は地下鉄の出口を間違えて道に迷ってしまい、 和田先生の話が全然聞けなかった。これは後悔が残る。

で、今回は恒例Language Updateとパネル「オレ様言語の作り方」へ参加。

Language Updateは、むしろ他の言語の方が楽しかった。 IoとかLuaとか。多様性は善である。

で、Rubyは私とささだくんでプレゼンしたのだが、 私が思いっきりボケて、ささだくんがツッコむというスタイルにした。 Rubyくらいになると、もう言語の紹介は要らないし、 とはいえ、技術的な変化は些細なことになっちゃうし、 どうしてもウケ狙いになってしまうからだ。

のだが、実際のプレゼンは 当初の予想(期待?)ほどスムーズには行かなかった。 いかんせん8分という持ち時間が短すぎ。せめて15分欲しかった。 まあ、気まぐれな私に振り回されるささだくん、という構図がイメージできれば それで8割は成功な気がする。

が、ボケた内容のうち、一部は本気だったりする(「もしかして」機能とか)。 残りはきっと2.0だな。

「オレ様言語の作り方」は、高橋さんが司会で、 私がゲスト(解説者?)、パネラは

  • Xtal (石橋さん)
  • なでしこ (クジラ飛行机さん)
  • Sukuna (小原さん)
  • Diksam (前橋さん)

しかし、今思えば、解説者としての立ち位置だったら、 それを徹底すればよかった。

今のこの機能ですが、これはきっと〜の影響ですね。 いい味出してますねえ。

とか。失敗だ。

それをClassicの紹介とかに費やしてしまった。 台無しだ。ちなみに高橋さんからは、古いRubyについても いろいろ質問されて、手元にある一番古い0.49をコンパイルしてみたんだけど、 手を入れないと現在のLinuxではコンパイルできないし(古いglibcに依存してた)、 結構文法が違うし、で戸惑った。当時はまだ引数の括弧が省略できないし。

古いRubyの話は結局パネルでは使わなかったんだけどね。

あと、何人かの人に少し挨拶した後は、 くたびれていたので早々に帰ってしまった。 もうちょっといろんな人と話したかったんだけど、 残念。またの機会に。

今度私を見かけたら積極的に話しかけてくださいね。

_ [Ruby] The Ruby VM: Episode V

このインタビューももう5回目か。

今度はささだくんがYARVにおける最適化について。 前回(M17N)は頑として黙ってたささだくんが、嬉々として語ってますよ。 ほんとにこういうのが好きなんだなあ。

私も嫌いじゃないけど、徹底できない。 だからMRIは遅いんだろうか。


2008年08月04日

_ 帰省

夕方から妻の実家の山口に帰ります。

松江に戻ってくる木曜日の午後まで連絡がつきにくいと思います。 必要なら電話してください > 関係者

_ 読者プレゼント

前からやろうと思ってたんだけど、 (また)読者プレゼントを行おうと思う。

今回のプレゼント内容

  • オブジェクト指向スクリプト言語Ruby 若干冊
  • JRuby Tシャツ 2枚

なお、「オブジェクト指向スクリプト言語Ruby」には 1刷、2刷、3刷がありますが、特に指定はできないこととします。

Dukeがルビーを掲げている柄の「JRuby Tシャツ」はレアモノのUS製(グレー)と 国内製(紺)の2種類がありますが、今回のプレゼントは紺のものです。

希望者は、

  • 希望するプレゼント。Tシャツの場合にはサイズも(LかM)
  • 当選連絡用メールアドレス
  • 住所と名前、電話番号(宅急便用)
  • 当選発表用ハンドル
  • まつもとに聞かせたい熱い思い

をしたためて、e-mailを私のアドレス*1まで。 サブジェクトのどこかに「プレゼント」という単語を含めてください。 いただいた個人情報は配送用以外には使いません。 配送料は私が負担します。

公平を帰すため、(話題の)Array#choiceメソッドを使って当選者を決定します。

8日、金曜日に当選者を発表します(予定)。 特に落選の連絡はしませんのでご了承ください。

なお、在庫処分のため、今後もプレゼントは継続します。 残念ながら当選できなくても今後にご期待ください。

*1  matz あっと ruby-lang.org


«前の日(08-03) 最新 次の日(08-05)» 追記