«前の日(06-22) 最新 次の日(06-24)» 追記

Matzにっき


2003年06月23日

_ [NTT]ADSL

私の住んでいるところは玉造といって、松江市の郊外にある温泉地だ。

ここは松江市ではない(玉湯町)ので、いろいろサービスが届かないことがある。 私にとって切実なのはいわゆるブロードバンドアクセスが提供されていない、という点だ。 だいたいコンピュータをろくに使いもしない実家が8M ADSLなのに、 どうしてまがりなりにも「コンピュータの専門家」ということになっている私が32kでアクセスせねばならんのか (それはもちろん引っ越しのときに玉造を選んだからです、自業自得)。

ある程度以上都市部から離れると、アクセスのための補助金が県から出るので、 かえってCATVやADSLのサービスが提供されている。ここは中途半端なのだ。 県は2003年度中に全市町村でブロードバンドアクセスが提供されるという目標を立てているのだが、 実際には今年度NTT西日本は島根県内で1箇所もADSLを新規開局していない。 こんなことで目標は実現できるのか。

ところが、先週ふとNTT西日本のページを眺めていると、 なんと「7月から玉湯町でADSLが提供」と書いてあるではないか、やった。 これで人並みな生活になる。うふふ。

単純な私は急に機嫌がよくなっていたのだが、今日になってNTT(マーケティングアクト)から電話があった。

NTT: 実はこの度、玉造でもADSLが提供されることになって...
私:  それはそれは待ってました。
NTT: 2,3日中にプレス発表になる予定なので、その時にまた案内します。
私:  でも、NTT西日本のページではもうとっくに発表してますよね。
NTT: え?  ....そうですか?

どうやら関連会社の間での情報連携に不備があるらしい。


2004年06月23日

_ [morg]Gmailその後

で、あいかわらずGmailを試してみるのだが、不満もある。

  • スレッドをconversationという単位で表示するのだが、 ときどき理解できないメールがリンクされる。 しかも、その間違いを修正する方法がない。
  • メーリングリストなど複数の対話がツリー状のconversationを構成するケースには、 「親メッセージにジャンプ」のようなトラバース機能が欲しい。
  • 22日はまる一日Gmailにアクセスできなかった。 24時間以上メールチェックができない上、こちらではなんの対応もできないのは痛い。
  • 大量にメールがたまった場合でも1画面単位でしか操作できない。 1画面に100 conversationまで表示できるのだが、 アクセスできない期間に1000通以上以上たまっていたので。
  • 表示された100通のうち一部が重要なメールであるというケースで、 重要なメールをarchiveすると表示されてなかったメール(新着か、表示からはみ出していたもの)が新たに表示される。それら新しいメールが重要でないか確認してからでないと「すべてにチェックマーク→Report Spam」という作業ができない。
  • 日本語のメールを書くとUTF-8で送られる。
  • フィルタリングのルールが貧弱。せめて正規表現が使えるといいのだが。

文句ばかりだが、耐えられないというわけではない。というか、こういうツールが 手元にぜひ欲しいものだ。

昨日のメッセージは総計30Mを越えた。サーバ側でもフィルタリングすることにした。

_ [言語]わくわく言語塾

希望者をつのったところ、実に14名の参加希望者が。

ということでメーリングリストを作ろうと思うのだが、どこが良いだろうか。

いまやrubyist.netやruby-lang.orgは私が勝手なことをするのははばかられるし。 とはいえ、ログを残したいのでquickmlとかはよくないような気がするし、 freemlは広告がうっとうしいし。

_ [言語]言語鍛冶メーリングリスト(langsmith)

というわけで、作りました、langsmith。参加希望者は私<matz@ruby-lang.org>にCCして、

<URL:mailto:langsmith@quickml.atdot.net>

にメールしてください。で、自分の気持ちや野望を紹介してくださるとよいのでは、と思います。


2005年06月23日

_ [OSS] VA Linux ビジネスフォーラム 2005 OSS Roundup

以下のような人々を前に並べた上で勝手に喋らせるセッション。

  • 八田 真行 氏 GNU Project/Debian Project/東京大学大学院
  • まつもと ゆきひろ 氏 株式会社ネットワーク応用通信研究所 特別研究員
  • 小飼 弾 氏 オープンソースプログラマー
  • 山根 信二 氏 東京大学/CPSR日本支部 代表
  • 佐渡 秀治 VA Linux Systems Japan株式会社

ひとりだけ名前の表示幅や肩書が長いぞ、というのは置いといて。

で、ITmediaに寄せられた質問に対して、それぞれが勝手なことを言うスタイルだったのだが、 まあ、予想通りぐだぐだと話して終わり。盛り上がったんだか盛り上がらなかったんだか。 あと、聴衆の役に立ったんだか、役に立たなかったんだか。

その場で話されたことの概要はBravoさんがまとめている

やや、補足するなら、私の主張のうち

  • しばしば集合意識のように報道されるコミュニティという存在は幻想だ。
  • フリーライドは迷惑にならない。むしろ歓迎。 でも、「フリーライダーが多くて困る」って言っとくと「じゃあ俺も参加しようか」って人が増えるかも。

ってのが書いてなかったかな。後者は私が「ここだけの話ね」って言ったからかもしれないけど、 ああ言ったのはその場のノリで、別に秘密にする程のことじゃないよね。

で、島根は遠いので、セッションが終わったら講師控え室で支給されたお弁当をいただいて帰路につく。

追記 (2005-06-29)

MYCOM PCで取り上げられている。

「確かにRubyにも(自分の勤務先の)お客さんの要望で入れた機能はある」なんて言ったかなあ。 Rubyじゃなくて「うちが開発しているOSS」というつもりだったんだが。

ITmediaでは20の質問それぞれで20本の記事を書くと西尾さんが息巻いていたが、 本当にできるだろうか。

_ [Hack]今日のハック

先日の冗談パッチ(「;;」をendの代わりにするもの)に手を入れて、 「;;」を「end;」の代わりにしてみた。やっぱ「;」を含むんだから、文の区切りでないとな。

ary.collect do |x| x*2;;.each do |x| p x;;

とか気持ち悪すぎ。

あとは、anthyのkyuriバインディングにバグがあったので修正。

_ 松江

帰って家族と夕食を食べてから教会でミーティング。 出張があるから出席できないというつもりだったけど、 間に合うように帰れてしまったので。でも、ちょっとくたびれた。


2006年06月23日

_ 商談

朝から某IT企業との商談(というか情報交換会)。 県職員も交えて、しかし、ざっくばらんに話を。

なかなかいい感じ。 足りないところをおぎないあえたりできそうな予感。

_ そば屋

で、お昼はそば屋へ。今回は八雲庵

いや、堪能した。まわりの人は地酒も入ってより堪能していた。 昼間っから。

「いや、金曜だし、今日は」って、それ単なる平日ですから。

_ 夫婦でペアプロ

今日のお客さんの中にはエンジニアの人も来ていたのだが、 この方、奥様もプログラマで、

  • 最近ばりばりRails使ってます
  • 週末は夫婦でペアプログラミングします
  • リファクタリングの方針で喧嘩になります

とのこと。なんか、すっごく微笑ましいというか、 うらやましいというか。

うちはコンピュータ(特にプログラミング)に理解がないからねえ。 敵だと思ってるし。まあ、そう思わせているのは結局私の態度なんだけど。

_ RubyConf presentaion

David Alan Blackから、

プレゼンテーションの申し込みが少ないようなので、 「Matzにっき」で宣伝してもらえないか

との依頼。なんでだろう。めぼしい人はみんなRailsConfに取られちゃったのかな。

日本からの発表申し込みも歓迎だそうなので、 「こんなことしゃべってみたい」というものがある人は <URL:http://proposals.rubygarden.org/>まで。

言葉の問題には(ある程度)相談に乗ります。

〆切は6月30日。


2007年06月23日

_ [教会] 神殿

広尾の神殿に参る。

六本木の方から向かって広尾の裏通りを抜ける。 この辺の道を通るのは20年ぶりのような気がする。 寝坊したのでセッションはひとつしか受けなかった。

浜松の人に出会う。 その他にも知人の息子さんや、弟さんらしい人を見かけたのだが、 声をかけるチャンスがなくて確認できなかった。

2時の飛行機で松江に帰る。

_ [Ruby] まつもとゆきひろ×結城浩,Rubyを語る:ITpro

先日の結城浩さんとの対談がWebで公開された。 同じものが今月発売の日経ソフトウェアにも掲載される。 同じタイミングで公開すると言うのは大胆なことではある。 ま、それだけ特集全体に自信があるということなのだと思う。

結構好きかってなことを話している。 ま、面白がって読んでいただければ幸いである。

_ [OSS] Size isn't everything for the modest creator of SQLite | Technology | Guardian Unlimited Technology

SQLiteの開発者、Richard Hippのインタビュー。

数ある「オープンソース」ソフトウェアの中でもSQLiteはちょっと特異で、 完全にパブリックドメインを維持している。 また、SQLの解析のために独自のコンパイラ・コンパイラ(lemon)を実装してたりする。

ある意味すごく徹底してかっこいい。

また、会社を経営しているうえに、 SQLiteのためにアシスタント(Dan Kennedy)を雇っているというのも 尊敬する。

_ [OSS] ITmedia エンタープライズ:OSJ、PCIホールディングスの100%子会社に

うちの取引先でもあるオープンソースジャパンがPCIホールディングスの子会社になった、という話。

なんの事情も聞いていないので、背景やらなんやらはさっぱりわからないのだが、 少なくとも当面事業方針に変更はないようだ。 このことから「オープンソースでビジネスするのは難しい」という結論が 引き出されるというわけではない、と思う。

_ [Ruby] 思っているよりもずっとずっと人生は短い。- 小飼弾氏の『Rubyクックブック』評に反応する

4873113245 弾さんは「失格。」と断じたRuby Cookbookではあるが、 単独の書籍としては欠点があっても、 まわり(既存書籍)の状況や、費用対効果を考慮すると、 妥当だったかもしれない、という意見。

実はまだ私自身はRuby Cookbookを読んでいない(入手していない)ので、 どちらかに味方するつもりはないのだが、 複数の書籍に名前が乗る身としては、 書籍を企画する・執筆する・翻訳する・執筆する・出版する ことはたくさんの要素がからみあう大変難しい課題であって、 だれもが満足するものができることは滅多にないことについては よーく知っている。


2008年06月23日

_ [Ruby] RubyKaigi補足

RubyKaigi 2日目は参加できなかったので、 あちこちのレポートをチェック。

akrさんの「Matzを説得する方法」は普通にオープンソースで自分の要望を通す方法として 有効だと思った。「Perlを出すと通る」というような枝葉は除いて。

authorNariの「RubyのGCを(ry」は誤解を招くと思った。

JRuby, Rubinius, CRubyのGCをそれぞれ

  • mark-and-compact, incremental, generational, ..
  • mark-and-compact, copying, generational
  • mark-and-sweep

として、CRubyのGCは(形容詞が少ないから)劣っていると思わせるような表現があるが、 それはあまり適切ではない。GCの実装というのはいつもトレードオフだからだ。

トレードオフその1 スループット/レスポンス

前にも書いたがスループットはGC全体の処理時間、 レスポンス(or ポーズタイム)はGC1回によって本来の処理が停止する時間である。

これらは多くの場合トレードオフの関係にある。

incrementalとかgenerationalなGCを実装するためには write barrierという仕組みを入れる必要があるが、 それはほとんどの場合スループットを低下させる。 要するにwrite barrierを入れると遅くなるのだ。

普通の方法ではwrite barrierを入れることによって増大したコストを 穴埋めするほどGC処理効率を改善することはできないし、 card markingなどの手法を使うとこんどはメモリを馬鹿食いする。

トレードオフその2 exact/conservative

CRubyはconservative(保守的な)GCを採用しており、 残りはexact(正確な)GCを採用している。

exactなGCの方が性能的にやや有利だが、 一方、拡張ライブラリの書きやすさは 保守的GCの方がずっと楽である。

たとえば、Rubiniusはexact GCを採用しているため

  • yieldを呼ぶメソッドをCで記述できない
  • Cメソッド実行中のオブジェクトは自動的に殿堂領域に割り当てられる

など、Cでのメソッド定義にかなり制約がある。 まあ、ほとんどのメソッドをRubyで実装しようというRubiniusでなら 受け入れられる制約なのかもしれない。

CRubyは開発効率を重視しているので、 今後も保守的GCを使い続けると思う。

トレードオフその3 copy-on-write

Ruby Enterprise Edition*1でも 指摘されていることだが、サブプロセス間でメモリページが共有されている場合には オブジェクトにできるだけ触らない方がよい。ページのコピーが発生しちゃうから。

ところが、JRubyやRubiniusのcompactを行うGCは、そういう観点からは壊滅的である。 まあ、JavaにはforkはないからJRubyは気にする必要はないのかもしれないけど。

現在のCRubyのGCもcopy-on-writeについて問題はあるけれども、 compactingを行わないので、(REEが使っている)bitmarkingなどの手法で 対応する可能性は残されている。

というわけで、「どんげんかせんといかん」だろうとは思うが、 今のRuby GCが今のようになっているのはそれなりに理由がある、という話。

世代別GCだって、copy-on-write friendlyだって、実際に試してみた上で、 普通のケースで性能低下が発生するので採用していないわけで。

*1  Ruby Enterprise Editionについてはあとで書くつもり

_ [Ruby] Nutter来襲

Charlesが来るからオフィスに来て、と言われる。

でかけると、某社社長が松江市の業務システム(Ruby製、一部JRuby入り)について 一生懸命(英語で)説明している。すばらしい。

あと、Charles相手にNaCl対抗将棋戦、囲碁戦が行われる。 将棋はshugoの勝ち、囲碁は時間切れ。

島大で講義。Charlesの講義が聴ける島大生はラッキーだと思うけど、 本人たちがどれだけ自覚しているんだろうか。

懇親会(その前にCharlesたちは千鳥城を見学したらしい)。

NaClの若い衆がCharlesを取り囲んで一生懸命英語で話をしていた。 authorNariはJRubyのGCについて食い下がっていたけど(うーむ)、 「そんなにはJVMに任せているからシラネ」とあしらわれていた(らしい、本人談)。

ケータリングは大変おいしかった。食べ過ぎ。

これからCharlesは福岡→東京と移動するらしい。 うーむ、なんて体力勝負。


«前の日(06-22) 最新 次の日(06-24)» 追記