«前の日(02-20) 最新 次の日(02-22)» 追記

Matzにっき


2004年02月21日

_ [生活]ミュージカル

知人もかかわっている地元の劇団のミュージカルを見に行く。

つい最近まで素人だった人の集まりとは思えない出来で、感動する。 参加したメンバがいかに頑張ったか、 音楽指導者がいかに熱意をこめて指導したかを感じることができるようだ。 暗い舞台の手前で演奏する管弦楽団の人たちにも拍手。

しかし、大変すばらしい舞台ではあったが、ストーリーには感動できなかった。

これは、私が違うものを求めているのか、ミュージカルの「文法」を知らないせいか、それとも...。

感心できなかったのは以下の点だ。

  • 説明すべき点が説明されていない。

    たとえば、小道具として薬が出てくるのだが、この薬の効能が理解できない。 なぜ先代社長が悪用を恐れて開発を中断してしまったような薬を飲むと、 悪役がみな改心してしまうのか。なら、中断することなかったじゃん。

  • 説明するべきでない点は説明される。

    たとえば、主人公は「才能はないけど優しい人」という性格づけがされているようだが、 その「優しい」ことは冒頭の歌によって直接紹介され、あとは一切でてこない。 いや、途中とってつけたように女性に対して「優しい」箇所があるんだけど、 あれはナンパしているようにしか見えない。

  • キャラが立ってない。

    ごく一部の例外(悪役)を除いて、だれもどんな性格の人なのかよくわからない。 性格を反映したセリフ・エピソードが(上述のナンパを除いて)見当たらない。 おまけに似たような登場人物が多く、混同してしまいそう。

ここは音楽指導者には音楽に専念してもらって(音楽は大変良かった)、 次回からはシナリオは別の人に任せるというのはどうだろうか。

と、こんなところに書いてもまったく意味がないのだが、書かずにはいれなかったということで。


2005年02月21日

_ [言語] Minimizing Row Displacement Dispatch Tables

ちょっと古い論文。だけど知らなかった。

静的言語ではダイナミックディスパッチの実現にC++のVirtual Table(VTABLE)のような ディスパッチテーブルを用いる手法が使われることが多い。 これは「高速である」、「コンパイル時の情報が豊富」などの性質が有利に働くからだ。

上記の論文はこのようなディスパッチテーブル手法をSmalltalkのような動的言語に適用する、 というもの。動的言語特有のクラスやメソッドが動的に追加された時にどう対処するかという点についても 考察されている。

目新しい点は

  • 二次元(クラス×セレクタ)のテーブルを一次元に圧縮する。まず、疎なテーブルをソートし、 大きいものからfirst hitで一次元の配列に格納する。取り出しはオフセットを使う。
  • テーブルを圧縮する時、 通常は表をクラスごとに分割するが、セレクタごとに分割することを推奨している これによりセレクタの追加が行の追加ですむので更新時の効率が上がる。
  • クラスが追加された場合には複数のディスパッチテーブルを持つ(method_missingで第二のテーブルにフォールバックする)ことで対応。新しいクラスは少々遅いが全体としては速い実装が可能。 暇な時にディスパッチテーブルの再構成を行う。

なかなか効率は良さそう。しかし、この手法はRubyのようなオープンなクラス(既存のクラスにメソッドを追加できる)ではテーブル再構成が増えて効率が悪くなるかも。ここをどう解決するか。

_ [特許] CAもオープンソースへの特許公開を確約

Computer Associates(CA)は自社の特許ポートフォリオの一部をオープンソースの開発者に公開し、すでにこうした動きに出ている他社を追従する計画を進めている。

同社関係者によると、CAは自社の特許を利用して、オープンソース製品に対する法的攻撃からユーザーや開発者を守る考えもあるという。特許の公開時期やライセンス条件の詳細については今後決定されると、この関係者は述べた。

とりあえず素直に歓迎したい。望むのは、どうせ公開するなら(Sunのようにではなく)IBMのような上手な方法で行われることだ。

「自社の特許を利用して、オープンソース製品に対する法的攻撃からユーザーや開発者を守る考え」というのは、IBMのアナウンスよりも一歩踏み込んでいるように思える。

もっとも、そもそもソフトウェア特許に運用に問題があるからこんなことが必要なんだ、 ということは忘れないようにしたい。なにか良い解決策はないものか。

既得権者には受け入れられそうもないが、「特許の有効期限は2年」というのが 一番「産業振興に利する」ように思えるなあ。

_ [OSS] フリー/オープン・ソース・プロジェクト管理の要諦

Perl, Apache, Linuxの各プロジェクトリーダー(「元」も含む)の言葉。

まあ、一言にフリーソフトウェア/オープンソースソフトウェアと言ってもあり方はさまざまだ。

たとえば私が関わるものだけでも、 Rubyはよくも悪くも私が始めた「私のもの」で、いろんな人の意見を反映するとは言え、 最終決定するのも、責任を取るのも私だ。 逆にcmailは私はオリジナルの作者ではなく、引き継いだ保護者であり、 そして集団管理体制に移行した(が、最近は衰退しているんだろうなあ)。

どれがいいとは断言できないが、 参加しやすいコミュニティを持つものは長続きしそうな気がする。

ところで、この記事のタイトル「要諦(ようてい)」って知らない言葉。 辞書によると「肝要なさとり」あるいは「肝心の点」ってことらしいけど。 原文タイトルの「The paradox of free/open source project management」とはずいぶん印象が違う。

ここで言う「paradox」とは

フリー/オープン・ソースプロジェクトを立ち上げ大成功に導きたいのなら、時機をあやまたずに手放す計画を立てよ。

ということらしい。上記のインタビューのどこからそういう結論を引きだしたのかよくわからないけど、 まあ全く嘘というわけではない。

でも、同じインタビュー(と自分の経験)から、私が教訓を引き出すとしたら、

  • OSSの成功にはリーダーシップが必要
  • リーダーの必要条件は「コミュニティから尊重されること」。 そしてそれは「正しい判断を行うこと(行い続けること)」、 「失敗しても適切に対応すること」、 「権利を保持しつつもそれを乱用しないこと」で得られる。
  • プロジェクトが大規模化すると組織化が必要になる。 全部自分ではカバーできない。

くらいかな。上記の「結論」は最後のものだけを強調し過ぎているように思う。

_ How NERDY are You?

Overall, you scored as follows:

6% scored higher (more nerdy), and
94% scored lower (less nerdy).

What does this mean? Your nerdiness is:

Supreme Nerd. Apply for a professorship at MIT now!!!.

だそうだ。そんなに?


2006年02月21日

_ 「Matzにっき」が壊れた

どうもデータが吹き飛んだようだ。日曜、月曜のエントリが消滅していた。「日記はありません」と表示された方、原因はそれです。

バックアップから復旧したが、日曜ぶんのエントリはそこにもなかった。

しかたがないので、FEEDBRINGERのRSSから本文を抽出し、少々マークアップを追加することで復旧した。

そうか、RSSに全文を入れておくと世界中に日記のバックアップがあることになるのね。

_ [OSS] 「有名」になること

トラックバックを頂いた。

だから、上司にアピールするという点では、「有名度」というのはあまりいい指標ではないと思う。目指すべきは「認知度」である。

まあ、ただ単に名が知られているだけでは意味がないので、認知度という単語を持ってくる弾さんの言語感覚は私より鋭い。

しかし、こうして見ると「立ち位置の違い」がはっきり出て面白い。

もともとは理解のない上司の下にいたひがさんは、上司の理解を得るために「有名になること」を手段として利用した。

理解のある上司(NaCl井上社長)の下にいる私は、 NaClが「広告塔」として私を「利用」できるために「有名になること」を選んだ。

よしおかさんは有名になることよりも「ビジネスにすること」を選んだ。これはよしおかさんの得意分野がデータベースとかOSとか、企業が手を出しやすい領域であったことと無関係ではないと思う。私の領域であるプログラミング言語じゃそうはいかない。死屍累々だもの。

で、弾さんは有名になることそのものには価値がないと感じた。これは弾さん自身がすでにテレビ出演*1などによって十分「有名」で、かつ、どちらかというと有名であることが必ずしも利益につながっていないからではないだろうか。また、彼の「有名さ」はその他の人のものと違ってオープンソースプログラマとしての業界内での認知ばかりでなく、主に(現ライブドア元CTOとして)一般の人への知名であることも見逃せない。

自分がそうなったらと思うと同情を禁じえない。私(たち?)の目指す「有名」はあくまでも業界内での「有名」であって、それ以上のものではない。

テレビ出演? 勘弁してほしい。

*1  島根県では放映してないので拝見したことはない

_ テレビ出演

「勘弁してほしい」というその舌の根も乾かないうちにナンだけど、テレビに出た。もっとも、日曜の早朝7:30のローカル番組なんて見てる人なんて100人くらいしかいないんじゃないかと思うけど。

私自身さえ録画を忘れて見てなかったくらいだし(ダメじゃん)。

というわけで、社長から録画DVDを借りて今日はじめて見た。

私の登場は20秒くらい。台詞はなしで。


2007年02月21日

_ [Ruby] Ruby Implementations Shootout: Ruby vs Yarv vs JRuby vs Gardens Point Ruby .NET vs Rubinius vs Cardina

最近出揃ってきたRubyの各種実装の比較。 当然ながらYARVが性能・実装レベル双方で圧勝。

ふふふっ、圧倒的じゃないか、我がYARVはっ

まあ、やったのは私じゃなくて、ささだくんなんだけど。 また、今後のJRuby/XRuby/Ruby.NETの追い上げも予想されるので、 この「天下」がいつまで維持できるかどうかもわからない。 継続的な精進が必要そうだ。

_ [Ruby] taw's blog: Making Ruby faster

小さな変更でどれくらいRuby 1.8を早くできるかという話。

具体的には

  • rb_call0(switchからもっとも頻繁なケースのifへ) - 効果あるの?
  • st_num_tableの分離(間接呼び出しの削除)
  • Fixnum比較の最適化(無駄なFIX2LONG()の削除) - 本家に取り込み

これで3%くらい速くなったとのこと。3%だとかなり誤差っぽいんだけど。

なお、st_num_tableをJudyで置き換える続編も出ている。 こちらは最大13%改善。

_ 10 Linux commands you've never used

あまり使われないLinuxコマンド。

  • pgrep
  • pstree
  • bc
  • split
  • nl
  • mkfifo
  • ldd
  • col
  • xmlwf
  • lsof

個人的にはgprep(とpkill)、bc、ldd、lsofくらいは割とよく使うけどな。 nlは「cat -n」を使うと思う。

_ [言語] Radium Software The Problem with C++

Technology Review: C++ は多くのプログラマから批評され,かつ憎まれておりながらも,同時に非常に広く用いられているという事実に関して,あなたでしたらどのような説明を行いますか?

Bjarne Stroustrup: ざっくり答えると,言語には次の2種類しか存在しないということです——皆が不満を顕にするものか,あるいは,誰も使いもしないものか,です。

「よく使われる言語に不満を述べる人は多い」のは事実だが、 「よく使われるが不満を述べる人はそれほどでもない」という 第三の言語もありそうな気がする。

たとえばRubyとか(笑

_ [言語] Lisp

Lispは宇宙の創造に使われた言語だった(?)。

くすくす。

_ [言語] バイナリフォーマット"BISON" - 概念実証が発表に

Binary JSON。ほんとにうれしいのだろうか。 誤差のない浮動小数点はうれしいだろうけど。

そういえばRubyのMarshalはバイナリだけど、 浮動小数点数についてはテキストだなあ。

_ [Ruby] String#scrape

scrAPIをStringクラスに組み込んじゃったら、という話。

XMLっぽいテキストから データを抽出するのがとても楽。少なくともそう見える。 こういうAPIは大好きだ。

scrAPIやXPath/XQueryみたいのがあるとXMLもいいか、 という気になるよね。もっとも、YAML/JSONとEnumerableメソッドの方が 便利なことも多いけど。

_ [言語] Scheme AA

個人的には爆笑した。


2008年02月21日

_ オレゴンOTBC

ポートランドからビーバートンへ移動。

Open Technology Business Centerでミーティング。 なぜオレゴンがオープンソースか、などとかいうような話を聞く。

Linusをはじめとして意外な(?)有名人が ポートランド近辺に住んでいるとかいうような話であった。 Linusはあまり表に出ることが好きでないということだが、 よくいくコーヒーショップは知られているのだとか。

島根から来た人たちは、なんとか参考にできないかと思っているのか 大変熱心に聞いていた。

似ているところ

  • 中央からは離れている
  • 自然が豊か
  • 空間に余裕がある

似てないところ

  • 地元指向な若者
  • 人口(ポートランド圏人口は180万人)
  • 半導体産業

シリコンバレーよりはポートランドの方が島根っぽい?

でも、オレゴンの場合、オープンソースの背景にはIT産業が、 IT産業の背景には半導体産業があるわけで、 その辺は見逃してはいけないと思う。

そのほか、Rubiniusの話とか(なぜかポートランドにいるEngineYardのエンジニアから)、 Rubyをどう使ってるかとか、オープンソースがどうとか、 教育機関での取り組みとか。

Wikiの父、Ward Cunninghamも来てた。 Wardにあうのは久しぶり。2005年のOSCON以来か。 最近はaboutus.orgというサイトに取り組んでいるんだとか。

aboutus.orgは現在Mediawiki(PHP製)なんだけど、 段階的にRubyに移行しつつあるんだとか。

2001年に最初にWardに会った時には「Smalltalkに似てて良い言語だと思うよ。私は使ってないけど」 とのお言葉をいただいたのだが、それから7年、Ward自身がビジネスでRubyを使うようになるとは 時代も変わったものだ。

私自身もプレゼンしてくれという話だったので、 先日Sunでしたのと同じRubyアソシエーションについて発表する。 今回は通訳を付けてもらえたので日本語で発表したのだが、 途中からスライドは英語だし、通訳の人と英語で話したりしているうちに混乱してしまって 英語で話し出したり、ややわけのわからないことになってしまった。

あと、LUNARRの濱口さんが発表された。 高須賀さんは訪日中だそうで、残念ながらいらっしゃらなかった。 濱口さんは、なんていうんだろう、日本人的なところと、 全然そうでないところをあわせもったとても不思議な雰囲気を持った人であった。 この人が「やれる」と思ったというだけでLUNARRに期待できる。そんな感じがした。

後で、高須賀さんとも電話でお話する機会があった。びっくり。

_ オレゴンディナー

OTBC関係者およびportland.rb(Portland Ruby Brigade)の合同ディナー。

大変楽しかった。全員とゆっくり話せなかったのが残念だ。 Gemstoneの人と隣り同士になっていろいろ話した。 やっぱりポートランド近辺に住んでるRandal Schwartz(Schwarzian TransformのRandal)が 今は彼の下で働いててSmalltalkを書いてるんだとか。

もっとも彼は以前もSmalltalk書いてたんだそうで、 知ってる人にとってはそんなにびっくりするようなことではないのかもしれないけど、 私はびっくりした。


«前の日(02-20) 最新 次の日(02-22)» 追記