«前の日(05-31) 最新 次の日(06-02)» 追記

Matzにっき


2003年06月01日

_ [教会]安息日

ひさびさの松江の教会。前回は5月4日。

いくつか知らない顔が増えている。このご時世でも宗教に関心をもってくれる人が日本に残っていることは、 ありがたいというか、希望が持てるというか。

甥っ子も1ヶ月もたつとだいぶ人間らしくなってた。

_ 昼寝

教会からの帰りに遠まわりして出雲空港に寄り、置いてきてた車をとってくる。 さすがに2台ないと不便だから。

その後、遅い昼食をいただき、昼寝。なんと3時間以上もねてしまった。 目が覚めると暗くなってた。こういうのは昼寝とは言いません。

_ [車][UI]エラーは饒舌に

夕べのことだが、松江駅まで妻に迎えにきてもらった。

で、帰ろうとするとエンジンがかからない。バッテリーが上がったかと思ってちょっと焦った。 しかし、ルームランプはつくし、ワイパーは動くし、電圧は下がってはいないようだ。

おかしいと思って、席を交代して見るとシフトが[D]ポジションのままだった。 普段、マニュアルを運転している彼女は停車時に[P]ポジションにするのを忘れていたのだった。 なんの表示もなくエンジンがかからないので、理由が分かるのに時間がかかってしまった。

教訓: エラーのときにはユーザにあれこれ推測させないようにできるだけ多くの情報を与えましょう。

_ [日記]祝1ヶ月

5月1日にこの「Matzにっき」を書きはじめてからちょうど1ヶ月がたちました。

その間には「XMLとYAML」とか「42件」とか 「ソフトウェアの自由」とか、 いろいろと楽しいこともありました。 「絵本読み聞かせ」や「メイド」については 反応があったことそのものが意外でした。 けっこう私の意図とは違った解釈をされる方もいらっしゃいましたが、それはそれと言うことでしょう。

これほどたくさんの人が読んでくださっているというのも驚きでした。 これを励みにこれからもくだらない文章を書いていこうと思います。

今後ともよろしく。


2004年06月01日

この日記は6月5日に書いています

_ バージョン管理ツールCVSのセキュリティ・ホールを突いた不正侵入が続発

あーあ、helium.ruby-lang.orgも記事になってるよ。いかんよなあ。

また5月28日には,「Ruby」の公式サイトに不正侵入があったことが公表された。「何者かがhelium.ruby-lang.orgに侵入していたことを,2004年5月28日にサイト管理者が確認した」という。やはり原因はCVSのセキュリティ・ホールと見られる。ただし,chrootと呼ばれるセキュリティ対策ツールを使用し,CVSに侵入されても他のプロセスやファイルに不正な操作ができないようにしていたため,他のサービスやコンテンツへの影響の可能性は低いと考えられるとしている。また,公式サイトに置かれていたruby-1.8.1.tar.gzとruby-1.6.8.tar.gzには改ざんがないことが確認されたという。

完全に安全かどうかを証明するのは不可能に近い。 一番ありそうな(かつ楽観的な)推測は以下の通りである。

  • CVS脆弱性により(我々の迂闊な点1)、chroot環境下でのanoncvs権限を奪取されたが、 バックドアはiptablesでフィルタされた
  • 既知のlocal root exploitは残っておらず、root権限は奪われなかった
  • リポジトリはanoncvs権限で改竄可能であったが(我々の迂闊な点2)、 侵入者はそれには関心がなく、改竄は行われなかった。

しかし、実際にはrootを奪われたと想定して検証する必要がある。 しょうがないんで最低限のデータ(CVS, FTP, WWW)だけ検証し、 残りは証拠を保全した後、クリーンインストールしよう。


2005年06月01日

_ 情報処理学会 第54回プログラミング研究会

発表。

  • 11:00-11:45
    Deductive systemによるCプログラムのポインタ解析
    千代 英一郎(日立製作所)

    最適化のためポインタ解析を効率よく、かつシンプルに実装するという話。 deductiveを関係代数を使って実装するというのが素敵。 なんかすっごい頭よさそうに見える。

  • 11:45-12:30 オブジェクト指向スクリプト言語に適したごみ集め手法
    ○松本 行弘(ネットワーク応用通信研究所、島根大)、縄手 雅彦(島根大)

    私の発表。漢字の名前はひさしぶり。なんか、前の発表に比べると異様にわかりやすくて 申し訳ない。実際の発表は、write barrierによる1bit reference count(というかsharing flag)を使って、 スレッドローカルGCを実装するという話。既存の技術を組み合わせただけなのだが、 全体としては新規性がある(と信じたい)。 ただ、ベースとなった技術の用語をそのまま持ってきたので、 世代別GCでないのに「世代別」と言ったり、 リファレンスカウント法でないのに「リファレンスカウント」と言ったり、 で、下手にGCに知識のある人には替えって分かり難かったかも。

    まあ、かなり有利なケースでもGC時間が25%しか削減されないってことで、 期待した性能は出ていない。もうちょっとなんとかならないものか。

  • 12:30-13:30 昼休み

    ちょうど来てくださっていた、恩師、佐々先生とお話をする。 お会いするのは15年近くぶりではないかと。 全然変わっておられない。

    久野先生と笹田くんとで昼食。 久野先生とはfjなどでのネット上のつきあいは私が学生のころからなので、 もう15年以上になるのだが、実際にお会いしたのはまだ二度目という。 静的型や動的型など面白げな話題について話す。

  • 13:30-14:15
    関数型ソフトウェア部品の適用履歴を用いたスクリプティング支援環境
    中山 健、○谷沢 智史、Cheng Jachong、野中 貴俊、小林 良岳、前川 守(電通大)

    正直、よくわからなかった。非協調状態での部品の流通と評価という話のようなのだが、 その割には「部品」に加えられる制約が厳しいような。 あるいは実態と理想との解離が大きいのかもしれない。

  • 14:15-15:00
    美術・工芸教育に適したプログラミング言語
    ○鍛治 秀紀(多摩美大、筑波大)、久野 靖(筑波大)

    久野先生のところからの発表。久野さん自身はずっと昔から静的型派なのだが、 「学生はみな動的型の言語を作るんだよねえ」とのことだった。これもそのひとつ。 発表者は多摩美の講師。日本語プログラミング言語とそのIDEを作ったら、 学生にウケたという話。 が、文法がよかったのか、日本語がよかったのか、あるいはIDEがよかったのか、 その辺がはっきりしないところが惜しい。言語の研究は難しいねえ。 私は論文は実装方面に限定することで逃げているんだけど。

    発表後も集まってうだうだと話しているうちに時間切れ。

今日は16:40の飛行機なのでここであきらめて松江に帰る。

大変、ためになった。


2006年06月01日

_ [Ruby] Bitwise Magazine :: Ruby programming tutorial

Bitwise MagazineでのRubyの紹介。

Bitwiseについては「4月に紹介するからなんか一言」と言われていたのに、 ほったらかしにしてしまっていたのだった。 4月になっても出たという話を聞かないから「企画が没になったのかな」と 思っていたのだが、2ヶ月ほど遅れて登場した、ということらしい。

こっちはまあ、普通。

しかし、もう一本あるのだ。

_ [Ruby] Bitwise Magazine :: Ruby Programming

タイトルがふるっている。

Ruby programming's hidden treasure..? or a flawed gem..?

だそうだ。「Flawed」とは「偽の」とかいう意味だから、 「見かけ倒しの宝石(なの?)」という感じか。

まあ、「驚き最少の原則に反している」だの、 「全然シンプルな文法じゃない」だの、言いたい放題(笑)。

まあ、本当のことだけど。

ただ、「驚き最少の法則」は私が言い出したことじゃないんだけどなあ。 まあ、いつものことだよなあ。万人が驚かない言語なんて不可能だってば。 私自身は口にしないようにしてから3,4年は経つと思うんだけど、 まだこんなこと言われるんだよなあ。

さて、こんなにけちょんけちょんにけなしているように見えるのだが、 最後にはほめられているようだ。

Huw: Look, in all this discussion, it sounds as though both of us have been picking holes in Ruby. Anyone would think we didn’t like the language. That obviously isn’t true.

...obviously, both of us must feel that Ruby is a pretty interesting language. Let's wrap this up by trying to pick out the features that appeal to us. For myself, I think I'd say that it's the combination of reasonably thorough object orientation with a lightweight syntax. In my experience, Ruby is the most truly OOP language I've ever used with the sole exception of Smalltalk. Now, I am not completely obsessed with OOP - but it seems to me that either a language should do object orientation properly or it should leave it alone. Having decided to go for OOP, at least Ruby has, unlike most other supposedly `OOP languages' done it thoroughly. And, unlike Smalltalk, it has a simple syntax and isn't weighed down by being embedded into a hermetically sealed world \u2013 the entire environment that Smalltalk is obliged to carry around with it. In short, Ruby is, in principle, a perfect Rapid Application Development language.

Dermot: I'd agree there. Ruby is one of the most interesting languages around - certainly, the most interesting that I've seen in a long time. It makes a pleasant change from the endless variations of the C syntax that seem to come out (C++, Java, C# and so on). I particularly like the fact that while it is indeed object oriented, you don't need to know that to do simple stuff: I think mixins are brilliant!

さて、最後に面白かったところを二ヶ所ほど引用しておこう

And while I complain about the syntax (I’ve lost count of the number of times that I’d like to do something unpleasant to Matz!), writing a parser for Ruby, as I've been doing, is a whole lot different from using the Ruby language itself to do something useful.

なんだかおっかないことが書いてある。bitwise編集部には近づかないようにしよう。

Now that's a strange thought - could Ruby be the new VB?

「新たなVBとしてRubyを」ってことだけど、彼はVBの前の名前がRubyだったと知ったらどう思うだろうか。単なる偶然だけど。

_ [Ruby] mandatory arguments after splat

前にも書いた

def foo(a,*b,c)
end

のようなコードを実現した。ノードを変えちゃったので、 ripperやyarvへの対応が必要だけど、現時点ではほったらかし。

なかなか便利な気がする。オプションハッシュの取り出しとか。


2007年06月01日

_ [Ruby] 楽天技術研究所フェロー就任の影響

朝食前に新聞を開いて驚愕した。

昨日プレスリリースされた私のフェロー就任が 地方経済面に掲載されていたからである。 しかも、公表していない「月一回東京」なんてことまで載ってる。 どこで調べたんだ。

この辺が島根クオリティか(ほめてる)。

_ [知財] 私的録音録画小委員会、CD売上減と私的複製の関係めぐり議論は平行線

端から見てると既得権益者が、いかに自分の権益を守り消費者から金を搾り取るか、 という話にしか見えないのが悲しい。それは私がひねくれているから?

_ [Ruby] 川o・-・)<2nd life - Ruby で debug する7つの方法

  • p
  • pp
  • y
  • backtrace (caller)
  • set_trace_func
  • logger
  • profiler

まあ、あとdebuggerもあるにはあるんだけど。一応スレッド対応だったりもするんだけど。

_ [Ruby] Rails vs Django: a non biased yet useless comparison

RailsとDjangoの比較。タイトルにもあるように公平であることを心がけた比較。 結果として、ここはRailsがよい、ここはDjangoがよい、とかいう結論なんだけど。

ただ、Djangoがよい、という点のほとんどはRailsプラグインで解決できる(できてる)と思う。 「最初から付いてるほうがいい(I wish rails had more batteries included)」ということだ そうだけど。

あと、またUnicodeサポートについて言われてる。 確かにRuby 1.8のUnicodeサポートは限定的だ。

が、正直、Railsの国際化という点で問題はさほど起きていないわけだし、 さらに言えば、Perlのutf8フラグ問題とか、Pythonのstrとunicodeの区別とかで 発生する問題に比べたら、1.8のシンプルな解法の方がマシな気がする(のは、作者の欲目か)。

_ [OSS] Dave Gilbert's Weblog : The Badness of JFree

JFreeChartの作者が サンプルコードとドキュメントを有償化したら「そんなのOSSじゃない」と文句を言われた、 という話。

こういう「金を出さないが文句は言う」人たちの話を聞くと悲しくなる。 いいじゃん、別に。ソースについては間違いなくフリー(自由)なんだから。

それ以上のものを求める人がドキュメントとサンプルにお金を払うか、 それだったらJFreeChartは使わない、とするか、 それもまた自由だ。

ドキュメントの有償化は「使ってもらってなんぼ」という傾向のあるOSSにおいて 賢明な選択ではないかもしれないが、絶対にうまくいかないというわけでもないし、 生活の安定に寄与したいからという理由で、ある開発者がそのような選択をするのであれば、 私自身は尊重したい(でも、たぶんドキュメントは買わないけど)。

_ [OSS] Trust, But Verify - O'Reilly ONLamp Blog

レグレッションテスト重要、という話。

Perlのテストスイートは言語本体だけで64793あるのに対して、 Rubyは867しかないという指摘も。うぅ。少しずつ増やしてるんだけどねえ。

_ [言語] Scala Actors -- A Short Tutorial

JVM上のオブジェクト指向関数型言語ScalaにおけるActorの使い方。

よく見ると(よく見なくても)Erlangにそっくり。 あと、RubyのブロックっぽいScalaの文法も気持ちいい。

ScalaのActorはJVMのスレッドプールを使って実現されているそうだけど、 十分な性能が出るなら(これが難しい)、ErlangではなくScalaが次世代を席巻するかも。

Rubyでも、通信できるデータを

  • 数値、文字列、シンボル、プロセス(Actor)
  • あるいはそれらだけを含む配列、ハッシュ

に限定し、値渡しであることを明記したら、 似たようなActorを実装できるかもしれない。 情報の共有が最低限にできるので、プロセスでもスレッドでも、 あまり問題を起こさず動作するのではないか。

_ [Ruby] taw's blog: Why RLisp will not support Ruby class variables

RubyのセマンティクスにLispの文法を持つ言語RLispがなぜクラス変数をサポートしないか、 という話。

要するに

  • ちょっと変(1.8)
  • まだ変(1.9)
  • 互換性ないし

ということ。1.9のクラス変数の挙動について(手遅れになる前に)見直すべきか。

_ 小野和俊のブログ:梅田望夫氏が言うように、好きなことを貫いて仕事にしていくためにはどのようにすればよいのか

  • 交換不可能な能力に磨きをかける
  • 「してはいけない」ことに縛られない

だそうだ。

たぶん私は、私の直接知っている人の中で一番「好きなことを貫いて仕事にしている」人だと 自分でも思うが、確かに「Rubyのまつもと」は他の人では交換不可能だし、 結構縛られないで自由に生きているような気がする。服装とか。

もっとも、あんまり縛られないと社会人として(というか、人類として)失格してしまうのだが、 その辺は私よりもずっと「常識人」である妻がサポートしてくれている。 あと、私の場合、宗教上の戒律も、ある一定の範囲以上踏み外さないために役立ってるような気がする。

で、私から付け加えるとするならば、

  • 独自の価値観を持つ

    「お金が一番」という価値観を否定まではしないが、私自身はそのようには考えていない。 「効率が一番」という価値観を否定しないが、プログラミング以外の領域ではそのようには考えない。 自分の価値観を自覚することが重要だと思う。 私の場合は「自由」と「幸福」かなあ。

  • 自分が価値を見いだしたことへの努力を惜しまない

    たぶん、サッカー選手になるような人は自分の人生の相当の時間をサッカーに費やしているに違いないと思う。私もRuby(とプログラミング)に費やした時間は測りしれない。

くらいかなあ。


«前の日(05-31) 最新 次の日(06-02)» 追記