«前の日(07-08) 最新 次の日(07-10)» 追記

Matzにっき


2003-07-09

_ [OSCON]The Open Source Paradigm Shift

時差があるので、ここではまだまだ9日です(日本時間では10日朝5時)。

スラッシュドット・ジャパンでも話題になっていたTim O'Reillyのキーノートを聞いてきました。

内容は事前インタビューなどにあった通りで、 別に目新しい内容はなかったのですが、世の中の変化という点からは興味深いものでした。

差別化が独自ソフトウェアによって行われていた時代から、 ソフトウェアそのものはコモディティ(日用品、どこにでもあるもの)になって、 それの組み合わせと蓄積したデータなどによるの「サービス」によって差別化される時代になった、 あるいはなりつつあるということか。

が、それってうちの会社がはるか以前から行っていたような気がする。 まあ、うちは直接サービスを提供しないので、差別化は主に価格と技術力と知名度で行っているわけだが。

そういえば、彼はDynamic Languageの効用を強調してました。これはインタビューには載ってなかったと思います。

マイクロソフトは3年ごとにリリースしているが、Yahoo!やAmazon, eBayは毎日でもリリースしている。 そのような速いサイクルの開発にはDynamic Languageが最適だという論旨です。

確かに。注目されるのはありがたいことです。

もっとも、いくら注目されても

  • Larry Wallは現在仕事がない
  • Guido van Rossumは転職したばかり

では、Dynamic Languageのデザイナーは報われないことです。 今のところ私の立場は安泰みたいですけど。

追記

転職と無職じゃえらい違いという指摘が。でも、GuidoもZope Corporationが資金がショートしそうで転職せざるをえなかったということですから、言語デザイナー受難の時代に変わりはないようです。

_ [OSCON]Dinner with Microsoft

OSCONの昼食はMicrosoftがスポンサーでした。曰く「Free as in lunch :-)」だそうです。

サンドイッチにナノマシンが入ってて、洗脳されて.NETでしかプログラムが書けなくなったら

などと冗談をいってましたが、現時点では大丈夫のようです。

私をはじめ何人かのDynamic Language関係者たちは夕食もMicrosoftにごちそうしてもらいました。 で、そこで私はLarry Wall, Guido van Rossumをはじめとする有名人とごあいさつしました。

Larryは日本語が上手になっていました。

皿があります
有名な人です

また自作の日本語学習プログラムも見せてもらいました。部首などからも単語が引ける力作でした。 すばらしい。

しかし、アメリカの食事ってどうしてあんなに大盛りなんでしょう。 隣の人が食べてたチキンなんで鶏半分まるごと(は冗談です。腿を1本まるごとくらいかな)が皿に乗ってました。 こんなには食えない。

本日のツッコミ(全2件) [ツッコミを入れる]

_ すぎむし [洗脳される前にクマムシにRubyを埋め込んで(以下略)]

_ てつや [Boston Marketという鶏肉料理主体のファーストフード店に行くと、鶏半分ミールというメニューがありますよ。つ..]

[]

2004-07-09

_ 健康診断

年に一度の健康診断。身長、体重、視力、聴力、血圧、心電図、血液検査、胸部X線、胃X線。

バリウムおいしくない。来年は胃カメラだ(げんなり)。

_ Estraier

昨日、Estraierでauthor属性の検索ができないとか書いたら、 さっそく平林さんからメールをいただいた。近いうちに対応していただけそう。ありたがいことだ。

追記

改めて調べたらEstlaier 1.2.16が出てるじゃありませんか、今まで1.2.7なんてのを使ってました。 メールオーガナイザーを作ろうと思った時に入手したのに、もうこんなに進歩してるとは。 いつのまにか正規表現やワイルドカードでも検索できるようになってるし。

_ [Morg]フロントエンド

昨日の時点で、関連検索以外のバックエンドはほぼ動いたので、 今日からフロントエンドを作ろう、と思っているのだが、 今までバックエンドのことばかり考えていて、 フロントエンドはイメージが固まってないので、 またしばらくはぐたぐたと脳内で考える日々になるのかもしれない。

なんか、いつだって何日も(あるいは何ヶ月も、何年も)ぐだぐたと考えないと、 コーディングに入れないのは年取ったせいだろうか。

追記

結局、フロントエンドには手をつけず関連検索を実装しました。

_ [OSS]風博士

Debianのパッケージが更新されたので、0.1.7にアップグレードする。 すばらしい。

今までFirefoxと交代で使っていたが、これ一本に集約できそうな気がする。

すばらしい点

  • 履歴内検索(Estrailerを使っている)
  • Firefoxよりもきびきび動く。
  • メモリ消費量も少ない
  • テキストエリアからEditerを起動できる(私の場合はemacsclient)。Firefoxでもmozexでできたけど。

気に入らない点

  • IM(kinput2)使用中でも、キーアクセラレータが優先される。 私の場合、C-n, C-p, C-oを解除しないと使えなかった。
  • C-jのExtractSelectedLinksで、明示的に選択しないと開けない。 どうせなら、「保存」と同様最初からチェックが入っていてほしい。
  • メニューなどのフォントがfirefox-locale-jaよりも汚い。 これは風博士自身ではなく、Debianパッケージの問題だろう。

しかし、気に入らない点も些細なことばかりなので、我慢できる。

_ [OSS]フォークと互換性

Sun Microsystemsという企業がどのような経営判断するかどうかは、 私の手に余るので、「オープンソースプロジェクトのフォークと互換性」という点に絞って考えたい。

ここ数日いただいたコメントからは、 なんとなく「オープンソースではメンテナが望まないフォークが発生して、互換性を維持できなくなるケースがある」という暗黙の過程があるような気がする。

たとえば、

オープンソース化されれば、差別化、重視になるでしょう。
一部のコミュニティが互換性を無視することに対してコミットして、互換性は失われる方向になる。
オープンソース化すると、誰にも互換性の維持はできない。

[mimiさんのコメント]

あるいは

私は、仮にJAVAをオープンソースとした場合、SUNがリーダーシップを取れなくなってしまう「可能性がゼロでない」のを恐れているように感じます。 些細な分岐がSUNに変わる本流となりえないとは言い切れないところに躊躇しているんじゃなかろうかと推測してます。

[HAさんのコメント]

あるいは

言語系とか(TEXなんかも含めて)は、これまで蓄積してきたソース・スクリプト(コンパイラ・インタープリタ側からみると「データ」)の互換性がでかいですよね? だから「forkをおそれる」という企業のスタンスはよく理解できます。 「旧バージョンで動いていたプログラムが新バージョンで動かない」というサポートはとても面倒。ましてや「新バージョンはウチじゃなくて別のコミュニティで勝手にコミットしてるんですがーーorz」なんて間抜けな対応したくないでしょうし。

[Mr.orzさんのコメント]

とか。

Mr.orzさんのコメントを取り上げてみれば、 前半の「互換性がでかい(重要ということか?)」というのは十分に理解できるのだが、 「forkをおそれる」というのはどういうことを想定しているのだろうか。 どのような事態が発生することをおそれているのだろうか。

オープンソース化しなくても新バージョンを出せば互換性問題の危険はあるし、 オープンソース化しても、勝手に「新バージョン」がリリースされるわけじゃない。 フォークはあるかもしれないが(めったにないけど)、 そんな場合でも「そのフォークはうちは知りません」の一言で済むはずだ。

オープンソースではフォークを禁止することはできない、これは事実だ。

しかし、メンテナが互換性を維持したいと望んでいるのに、 フォークなどの理由によって互換性の問題が発生するようなケースがあるのだろうか。 より厳密には、オープンソースだからという理由で互換性の問題が発生しやすくなることがあるだろうか。 私には想像できない。

私は「オープンソースが原因で互換性の問題は発生しない」と思っていて、 7月6日のエントリでも7月7日のエントリでも、 その理由を説明してきたはずだ。もちろん、あれでは「ゼロであること」を証明できてはいないが、 それはムリな相談だろう。やや危険なたとえを使うと、交通事故の可能性はゼロではないが人は車に乗るわけだし。

これは「オープンソースで互換性の問題が新たに発生しない」という意味で、 逆に言うと「オープンソースでなくても互換性の問題は発生する」と読み替えてもかまわない。

かつて「メンテナが望まないフォークが発生して、互換性を維持できなくなったケース」あったのだろうか。 これからありえるのだろうか。それともFUDにすぎないのか。

それをはっきりさせたいと思っているのだ。 もし、具体的なイメージはなく、ただ単におそれているだけならばかばかしい。

企業が自分のプロダクトをオープンソースにするもしないも、その企業の自由だ。 オープンソースというやり方を信じられない。結構。 オープンソースにしない方がビジネス上有利だと思うから。結構。 苦労して開発したソースは秘密にしたい。それも結構だ。

しかし、「オープンソース化すると互換性が損なわれるから」などという、 事実でないことを理由にしてほしくない。


言語の互換性問題と言えば、各種「方言」問題がある。たとえばPascalはいろいろ方言があり、 結局ある方言(コンパイラ)用のプログラムは、別のコンパイラでは動かない(ので結局別の言語と同じ)というような。

でも、このような方言問題の原因は、オープンソースではなく、 不完全な(あるいは曖昧な)言語仕様とそれに基づいた独自実装によるのではないか。 オープンソースの処理系があれば独自実装の必要性は薄れ、むしろ方言問題は回避できるのではないか。

Javaについては、おそらくはマイクロソフトの「J++ショック」が尾を引いているのかもしれない。

気持ちは想像できるが、その問題はSunのJDKのライセンスをオープンソースにしないことでは回避できない。

SunがJDKをオープンソースにしようとしまいと、 やろうと思えば、今日存在しているオープンソースJavaコンパイラ(たとえばgcj)を改造して、 Java方言を作るのは簡単だ。


私の知る範囲でプロジェクトのフォークが発生するのは次のような理由だ。

  • 進歩の方向に意見の対立が発生し、意見の調整ができなかった。

    この場合には「本家」はそのまま存続するので、本家についての互換性は問題ではない。 分家と本家との間には互換性の問題はあるが、これはオープンソースに限らない(独自実装とか方言とかの問題)。

  • メンテナがメンテナンスを放棄したが、後継者が複数登場し、一本化ができなかった。

    「本家」が放棄されているので、少なくとも互換性は問題にならない。

あと、可能性としては「ただフォークしたかった」というものもあるのかもしれない。

オープンソースでフォークが発生すると、重複した作業が発生するので、 リソースの無駄づかいが起きるし、進歩が阻害される傾向があるので、 望ましくない。しかし、たとえ発生したとしても、すくなくとも「互換性」の問題は発生しない。

ありがたいことに、フォークというのはめったに起きない事態だ。 これはオープンソースプロジェクトではオーナーシップが尊重されていることを反映しているだろう。

_ 期日前投票

日曜日は用事があるので、役場で期日前投票を行う。 国民の権利であり、義務だから。

もっとも青木自民党参議院幹事長を擁する島根県では結果が見えているわけで、 投票行動に対する動機づけが希薄なのは確かなのだが。

本日のツッコミ(全28件) [ツッコミを入れる]

Before...

_ まつもと [まず、Mr.orzさんのコメントについては、12日の日記で触れるつも りです。 sodaさん >これがまさに .N..]

_ mimi [オープン化してもしなくても互換性の問題はたいしたことはないと思われます。  ただ、オープン化する前より増える。増えた..]

_ soda [だいぶ間が空いてしまいましたが(すいません)、こっちに 書きます。 松本さん: > .NETが遅れたのは「ソースを..]

_ まつもと [sodaさん >でもJava が最初からオープンソースだったら、スクラッチから >JVM その他を書き起こすのと比べ..]

_ soda [> * オープンソース化によって「Java言語の互換性」が守れなくな > ることはない。実装(JDK)をオープン..]

_ まつもと [sodaさん >たぶん、松本さんがここで求めてる互換性というのは、「標準化された >範囲内での互換性」なんでしょう。..]

_ soda [> というのが理由だと推測しますが そうです。 > やる気がある人(または企業)がいればフォークが発生しなくて ..]

_ まつもと [オープンソース化しなくても、現状でもそれに近いメリットをすで に提供している、ただ検証をもっと自由化してほしい、とい..]

_ soda [> SunはSolarisをオープンソース化すると発表しておきながらその後 > 具体的なプランを出してきていないとか..]

_ まつもと [sodaさん >なぜか世の中では IBM より Sun に対する風あたりの方が大きいみたい >です。おそらく、単に ..]

[]

2005-07-09

_ [OSS] オープンソースカンファレンス2005 in Hokkaido

本番。ホテルから歩いて北大、クラーク会館まで移動。

いろんな人が来ているので御挨拶。 高橋さんもいらしてた。 日本Rubyの会はYARVのポスターとRailsによるブログツールTypoを展示していた。 TypoはAjax風味の表示が結構すてき。

日本Rubyの会の展示の隣はZopeが展示していた。 展示していた人は、私の顔を知らなかったようなので、 以下のような会話が交わされた。

展: プログラミングはなさいますか
私: ええ、すこしは。
展: 私はプログラムしないんですけどZopeは便利ですよ
私: Pythonの文法は知ってるんですけど
展: 使わないんですか
私: あんまりPython使わないですねえ。
展: 宗教上の理由とか(笑い)
私: いや、そーじゃなくて仕事上というか、立場上というか(苦笑)
展: そうなんですか(真顔)
...以後、ZODBに関する面白い話が続く...

そうこうしているうちにお昼になって、 スタッフの人が呼びにくる。「まつもとさん、こっちこっち」。 言われるままについていくと、 北大の敷地内芝生にビニールシートを敷いて、 七輪並べてジンギスカンを始めている。

なんとのどかな。

私の母校も敷地の広さでは負けないと思うのだが、 そんなのどかさはなかった。 私の発表は午後一番なので時間の余裕はなかったが、 しっかり堪能した。 しかし、私の一族のマスコット動物は羊なのだが、 それをよろこんでばくばく食べるというのはいかがなものか。 母親あたりにひどく怒られそうな気がする。

で、午後は発表。スライドはここ

ま、わりとふつーの発表。なんかどこかで聞いたような話が多いけど、 まあ、こういうイベントは北海道では珍しいだろうから、 基本的なことから。基本的すぎて聴衆がどう感じたのか不安だったが、 数人に感想を聞いた範囲内ではおおむね好評であった。

発表終了後、松江に置いてきた妻子とSkypeで話をしてから、 北大博物館へ。やっぱりここまで来たらマンモスを見ておかないと。 次女が「どうしても見てきてほしい」ということだったし。

展示はこじんまりとしていたが、貴重な資料がたくさんあって、面白かった。 閉館直前であったがしっかり写真も撮ってきたし。

_ [OSS] 懇親会

その後、みんなで移動して懇親会。そろそろ疲れが出てきていたが、

  • 大学の同級生に会った。札幌で自営しているそうだ。 すごいなあ。経営の才覚のない私は憧れちゃう。
  • 未踏の特異性と価値について、風穴さん、比屋根さんを交えて。
  • Ruby 2.0はどうなるの? といった話題

などなどについて。

懇親会終了後、みんなが「じゃあ次だ」と移動を開始する。 9時過ぎに会場を出て、予約が10時だということで、 「じゃあ、それまでラーメン食べにいこう」とかいう人までいる。 この人たちの胃袋はどうなってますカ?

と思ったが、実際に二次会の会場(石鍋屋)に着いたら、 ジンギスカンやらモツ鍋やらばくばく食べてしまう。おいしい。 私の胃袋もどうにかなってますヨ。

食べながら、Rubyは金の匂いがしないとかなんとかいう話もする。 そのうち、うち(NaCl)が「Rubyで10倍の生産性」とかなんとかプレスを打って、 世間の注目を集めたらちょっとは状況が変わるかな。変わらないような気も。

酔えば酔うほど高くなる高林さんの声。大企業の中の人は大変だ。

三次会に行くという人もいたが、 それは振り切って、東横インへ。ロビーの無線LANを使わせてもらいつつ、 morqのハックを。それから歩いて自分のホテルに帰り着いたのは夜中の2時をはるかに回っていた。

_ [Hack]今日のハック

後輩が「月曜日にはどうしても必要なので」とせがむので、 morqをハック。今まで基本的にEstraierをベースに検索していたのだが、 当初の構想の通りRast上で動くように変更した。 で、前田くんのximapdを参考にさせてもらいつつ、ごそごそやっていたら、 1時間ほどで完成。東横インからホテルへ移動。

しかし、そこでマシンがハング。 そういう時に限って /tmp で作業していたりして、 1時間の成果を失った。出張中だし、夜遅いしでちょっと気が焦っていたのだろう。 普段なら致命的なファイルを /tmp に置いたりしないのに(本当か?)。

いずれにせよなくなってしまったものは帰ってこないので、 再挑戦。一度実装しているので今度は20分ほどでとりあえず動く。 何回か試してバグをとりのぞくとうまく動いているようだ。 完成したのは4時前だった。

_ なぜテスト駆動が身につかないか

OSC2005-DOの会場で高橋さんたちとした話。

なぜ私はいつまでたってもテスト駆動アプローチを習慣にできないのか、 改めて考えてみるとやはりドライブ感が原因のようだ。

「なにかを作りたい」と思った時、 テストファーストなら「そのなにかをテストによって表現する」わけだが、 私はその作りたいものがコードとして脳裏に浮かぶのだ。 そこでテストを書いていると、その浮かんできたコードがどこかへ逃げてしまうような気がする。 脳裏に浮かんだコードが消えてしまわないうちに、 素早くタイプして書き留めてしまわないといけない。

いわば「イタコ系プログラマ」。

いや、言い訳なんだけどね。とりあえずコードを打ち込んでからでいいから、 ちゃんとテスト書こう。

_ 発熱

末娘が熱が出たとのこと。突発性発疹の疑いとか。出張中に限ってこんなことが。

本日のツッコミ(全26件) [ツッコミを入れる]

Before...

_ naruse [中の人は当たり前だと思っているところに、外の人の参入障壁がある、というのが趣旨ですね。 MLは、趣旨は以前の日記で..]

_ jijixi [akr さんが言っている引数の数の問題は、上の方で Matz さんが、 > でもstaticのものも含めて全部の関..]

_ Jitta [> SunOS4を見たことあるかどうかではないでしょうか。  むむ!!初めて仕事をしたのが SunOS4 でした。で..]

_ なかだ [> でも、、、実際使ってます?こんな違いを引き起こすような書き方。 それはSun Cの事情ですね。K&R/ANSIじ..]

_ なかだ [> 整数定数の接尾辞 u と U はサポートされない。 え、そうだっけ!?]

_ naruse [わたし自身は、習得の障害というよりも、本能的にその些細な違いが怖い、です。 基本的には関数宣言だけということは知って..]

_ なかだ [「他の違い」というのは本当にK&RとANSIの違いが主ですか? プラットフォームごと処理系ごとの違いではなく。]

_ naruse [そこは本能的な予感なので、実際にはまるのは処理系の違いになるのかもしれません。 ささいな違いが大きな違いを生む予感と..]

_ jijixi [移植性に気を使うことを考えたら、新旧規格の違いなんて誤差の範囲のような気もしますけど。 とりあえず、こんなのあります..]

_ (ぱ) [ どうも。はじめまして。crowbarの作者兼迷教科書の著者です。 >でもstaticのものも含めて全部の関数にプ..]

[]

2006-07-09

_ [教会] 聖餐会話(謙遜)

6月にお話を依頼されていたのだが、 ちょうどファイアサイドの日だったので、 中止になったのだった。

安心していたら、監督から「7月9日に同じテーマで話をしてください」とのこと。 甘くなかった。

テーマは「謙遜」。正直、あんまり得意なテーマではない。

ま、理由はいくつかあって、ひとつは基本的に私は態度がデカい点。 行儀が悪いのと、外からはいつもリラックスしている(ものおじしない)ように見えるから、 らしい。内側は小心者でいつもビクビクしてるんだけどね。 外見に出すのはかっこ悪いと思ってるらしい。

もうひとつは、なんだかんだ言っても自分のしてきたことに自信があることだろうか。 人から尊敬されるプログラマと見なしてもらえるようだし、 世界的なプログラミング言語の設計者でもあるし、 そのことであちこちから仕事の依頼は来るし。

ま、そういう状態でキリスト教の勧める「謙遜」を維持するというのは 一種のチャレンジなのかもしれない。 「金持ちが天国に入るのはラクダが針の穴に糸を通すより難しい」そうだからな。

あれ、なんか違うような気もするが、ま、いいか。

あと、謙遜の反対、高慢の本質は「他者への敵意」なんだそうだ。 他の人を押しのけて自分が利を得たいとか、他人を見下すとか。

つまり、自信家であっても、能力が高いと自負していても、 他の人に親切にできるなら、理論的には高慢でないことができるというわけだ。 なかなか難しいけど。そういうところを目指していきたい。

本日のツッコミ(全2件) [ツッコミを入れる]

_ ときどきキリスト者 [「ラクダが針の穴に糸を通す」んじゃなく「ラクダが針の穴を通る」んだと思いますけど。どっちも難しいけど。 別の意図アリ..]

_ まつもと [もちろんそちらが正解です。>「ラクダが針の穴を通る」 「ラクダが針の穴に糸を通す」ってのは、数年前に知人が言い間違え..]

[]

2007-07-09

_ 富士通、島根でもノートパソコン組み立て教室を実施 | パソコン | マイコミジャーナル

おおっ、近所だ。行くか。

と思ったが、この日は「LL魂」の日である。ちょっと無理だな。

_ [言語] Java and K

スクリーンキャスト。JavaとK(APLの末裔)の比較(英語)。

まあ、このタスクが圧倒的にK向けということを置いておいても、 ベクタを扱うプログラムにおけるAPL系言語の生産性は間違いない。 ある程度はRubyにも取り込みたいんだけど、 どういうAPIにするのが良いかなあ。

まずは複数のベクタ(配列)の各要素に対して処理する(APLでいう

v1 + v2

でv1とv2の各要素を加算した配列を得るような)メソッドをEnumerableに加えればよいのかな。 良い名前が思いつかないけど。

_ [Ruby] [Rails] Webアプリケーションセキュリティフォーラム - Journal InTime (2007-07-05(木))

セキュアなRailsプログラムの作り方。 こうやってまとめておくとありがたい。

本日のツッコミ(全7件) [ツッコミを入れる]

_ naruse [v1.map_with(v2){|a,b| a + b} とかでよさそうな気もするのですが。]

_ Gimite [require "matrix" Vector[*v1] + Vector[*v2] という手もありますが…。]

_ まつもと [ダメじゃないでしょう。ちょっとタイプ量が多い気もしますが。 v1.foo(:+, v2) とか v1...]

_ naruse [あ、v1.simd(v2,&+)なんてどうでしょう。]

_ eklerni [配列 ary に対して ary[] でベクトル(として働くもの)を表して v1[] + v2[] これまでエラー..]

_ なかだ [[1,2].zip([2,4]).map(&:+) これを一メソッドでやりたいということ?]

_ eklerni [> [1,2].zip([2,4]).map(&:+) たぶんそれだと途中でzipが配列を返しちゃうんじゃないでし..]

[]

«前の日(07-08) 最新 次の日(07-10)» 追記

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.