最新 追記

Matzにっき


2008年01月01日 [長年日記]

_ 年賀状

年賀状が届く。当たり前といえば当たり前だが、 ちゃんと出した皆さんを尊敬する。

こちらから年賀状、出せなかった方も、出したけどまだ届いていない方も、 今年もよろしくお願いします。

_ ゴビウス

で、あまりにもなにもしない正月というのも寂しいので、 小豆雑煮*1を食べて、 近くの水族館(ゴビウス)に出かける。 子供が大きくなると一緒に活動することが少なくなるので、 末娘はこの施設は初めて。

今回も妻と長女は留守番ということになった。

途中、寒かったけど、行った人たちは結構楽しんでたみたい。 私はオオサンショウウオが良かった。 これって100年くらい生きるんだねえ。

帰ってきたらずいぶん片づいていた。 留守番組が、引っ越し以来の箱の山と格闘してくれてたみたい。

ありがとう。

*1  「ぜんざい」と同じ食べ物。この近辺では正月に食べる

_ [Ruby] ZSFA -- Rails Is A Ghetto

高速HTTPサーバMongrelの作者であるZed Shawが、 Ruby(やRails)を離れて、LuaやPythonやFactorに移ろうか、という話。

要するに

みんな、俺の方が間違ってる、とか言ってたけど、 結局、いつも俺の方が正しかったじゃないか。

お前らみたいにコンピュータサイエンスのサの字も知らない、知ろうとしない 連中と付き合うのはもうまっぴらだ。

とかいうことみたい。

かなりキツい口調なので、読むのが辛いんだけど、 あまり知識(とか技術)がない人がなだれこんでくる弊害のようなものに 対する警鐘として読むと、価値を見いだすことができる、かなあ。

あまり見かけないThoughtWorksに対する悪口も書いてある。 コンサルティングファーム全般に対してであれば良く聞く話ではあるけれど。


2008年01月02日 [長年日記]

_ 新年会

近辺にいる親族が集まる。

私のうちで、という話もあったが、引っ越し後2ヶ月にもなるのに まだ箱だらけなので(私が年末まで忙しすぎて全然手伝わなかったのと、 年末来の風邪襲来のせいで手つかず)、 今回は妹のうちで。

私、妹1、弟1の家族で総勢、えーと、15名か。どんどん増えるな。 関東組(両親、妹2、弟2)は別で集まってるようだ。

大変にぎやかで、大変楽しかった。 また、妹の旦那が買ってきたモノポリーで遊んだのも 久しぶり。あんまり久しぶりすぎてルールを完全に忘れていた。


2008年01月04日 [長年日記]

_ The Mythical 5%

以前、RubyをDISってくれた*1、 Bruce Eckelのエントリ。

IT技術者ではトップ5%は残りの人たちの20倍の生産性を持つという。 これが本当のことであるとしたら、その科学的な根拠はなにか、という話。

80%の技術者は、本を読まない、イベントに参加しない、勉強しない。 それでどうして、それらを継続的に行う開発者と同等の生産性をあげることができるのか。 それらを行う20%のうち、さらに80%は、(まだ)うまく成果をあげられていない。 すると、それらを継続的に行い、さらにうまくいっている人はおおよそ5%になる。

「トップ5%」というと、なにか持って生まれた才能の違い、というようなものを 感じさせるが、実際には「(効果的なことを)やっているかどうか」、 「それを成功するまで継続しているか」という実にシンプルなことによって 実現されている。

この講演はその他にも面白い内容を含んでいるので、 英語が苦手でない方はいちど読んでみるとよい。

*1  まだ根に持っているらしい(笑


2008年01月08日 [長年日記]

_ [言語] Substroke Design Dump

前にも書いたような気がするけど、 私は「ビジュアル言語」に対して否定的だ。

ここでいう「ビジュアル言語」とは、 「Microsoft Visual 〜」な言語のことではなくて、 グラフィカルな表現でプログラムを表現しようという試みのこと。 一番成功した(でも、普通の人はやっぱり知らない)のはPrographかなあ。

しかし、もしかしたらこのSubstrokeは意味のある試みかもしれないと思った。

Substrokeは「ビジュアル(画像など目に見えるもの)を操作する言語」だから。

そもそもアルゴリズムという「形のないもの」にむりやり形を与える ビジュアル言語はそれにより想像力を限定してしまうという弱点がある。 また、2次元の表現は1次元の表現よりも高解像度を要求する(ので、一度に視野に入れられる情報量が少ない) のも欠点である。要するにスケールしないのだ。 サンプルでは良くても実用プログラムを書くのは別問題ということ。

しかし、ビジュアルを操作するのであれば、操作するものと表現が一致するわけで、 想像力が限定されるという問題はそもそも発生しない。 むしろ、直接的に操作できるというメリットになる。

とはいえ、ある程度以上複雑な「プログラム」には やはりアルゴリズムやプロセスなど「目に見えない部分」が入り込んでくることは 避けられないわけで、そこをこの「ビジュアル言語」がどう避けるか、 というのは興味がある。

_ [言語] A programming language cannot be better without being unintuitive

「プログラムはわかりにくさがあるくらいでなければ良いものではない」という話。 Rubyのモットー(と呼ばれていた)「Principle of Least Surprise」の真逆であるが。

まずは、Scalaのプログラムから。

(0/:l)(_+_)

なんか、私がメールのシグネチャにつけている似顔絵(と呼べるのか)であるところの 「/:|)」に似ているような気もするけど、これは立派なScalaのプログラムである。

これをもって「だからScalaはダメなんだ」という結論を出すのは早急すぎる。 これらは確かにわざわざわかりにくく書いてはあるけど、個別の文法要素は 決して悪いものではない。むしろ、少々びっくりするくらいでないと本当に良い言語ではないのだ。

なぜか。

仮に「Principle of Least Surprise」を完全に満たす言語があったとすると それはどんな言語であるか、ということを考えると、 結局は「慣れ親しんだ言語と同じ」という結論がでる。 つまり、言語による驚きを最小にするためには新しい言語を学ばなければよいのだ。

しかし、実際には新しい何かを達成するために新しい言語は次々と生まれる。 その「新しい何か」を達成する部分は、誰も知らないのでそれを学ぶ人には 目新しく、驚きの源になるに違いない。

驚きもないような言語は学ぶ価値もない。

もっとも、言語設計には「不必要な驚き」とか、「新しすぎて受け入れられない言語」とかも 存在するので、結局はバランスなわけなのだが。

時間に余裕のある人はJef Raskin on "Intuitive Interfaces"も参照のこと。

_ [OSS] McAfee throws some FUD at the GPL - The INQUIRER

McAfeeがGPLに対するFUDを行ったという話。

In its annual report, Windows security software vendor McAfee told its investors that open source software licence terms it vaguely characterised as " ambiguous" might "result in unanticipated obligations regarding our products."

投資家に対する年次報告においてMcAfeeは以下のように報告した。 「オープンソースソフトウェアの曖昧な性質によって、我々のプロダクトに予期しない義務が発生する可能性がある」

"To the extent that we use 'open source' software, we face risks," McAfee stated.

「オープンソースソフトウェアの利用によって、我々はリスクに直面している」

裏は取っていないけど、これが真実であるとしたら、かなりひどい話。 McAfeeに対して不買運動を始めたくなるくらい。もっとも、もともとMcAfee製品なんて使ってないか。

この記事では、McAfeeの真の動機は、 オープンソースソフトウェア(特にLinux)の台頭により、 (McAfeeがビジネス的に依存している)Windowsの没落することに危機感を覚えたのではないかと 推測している。

確かに、Linuxではウィルスなどの危険性はWindowsよりずっとマシだし(ない、とは言わない)、 そうなればMcAfeeのビジネス規模は相当縮小するだろうな。


2008年01月09日 [長年日記]

_ [言語] Well, I'm Back: String Theory

本当は[言語]タグではないような。

MozillaハッカーであるRobert O'Callahanによる、 「UTF-16はダメ、UTF-8でいいじゃん」という話。

私も前に書いたような気がするけど、 UTF-16は良くない。まず、第一にUTF-16はバイト単位のCES(Character Encoding Scheme)でないので エンディアンの影響を受ける。これは結局同じ名前で2種類のCESがあるのと同じである。

それを区別するための方策がBOM(Byte Order Mark)だが、 これが輪をかけてよくない。 BOMの文字としての意味は「ZERO WIDTH NON-BREAKING SPACE」なので、 これは見えない文字である。付いているかどうかひと目でわからない文字は 面倒なだけである。うっかり文字列やファイルの途中に混じってしまったら目も当てられない。

さらにその全身前身であるUCS2と比較して、 UTF-16は固定長ではない。ので、n番目の文字をアクセスするコストは 普通に実装すればO(n)である。

UCS2の頃に重大な選択を「してしまった」Javaとかはともかく、 これから選ぶならUTF-16はありえない。 もう、ダメの三連荘。

UTF-16がダメなら、なにを選ぶのか。 ここではUTF-8を推奨している。私も(条件つきで)賛成する。

UTF-8は、エンディンアン問題と無縁である。 BOMも不要だ(付けられるけど)。メモリ効率もUTF-16よりはずっといいし。 可変長であるという点はUTF-16同様だけど、 それもそんなに問題ではない。

というのも、そもそもn番目の要素へのアクセス(ここではCharAt(n)と呼ぶ)は そんなに登場しないからだ。実際に頻繁に現れるのは 文字の検索であり、それはもともとO(n・m)だったりするし、 UTF-8でBoyer Mooreを実装するのもたやすい(今のRubyはKarp Rabinを使ってるけど)。

_ [言語] StringRepresentations - The Larceny Project - Trac

LarcenyというScheme処理系でどのように文字列を表現するか、という話。 前にShiroさんが話してたものだね。

紹介されているのは以下の7通り。

flat1
バイト列。1バイトが1文字に相当。ASCIIやLatin-1(ISO-8859-1)に対応。
flat4
バイト列に似ているが、1文字あたり4バイト占有(UTF-32ライク)。Unicodeに対応。
record4
flat4を内包した構造体
record2
1文字あたり2バイトのバイト列で文字列を表現する。 2バイトで表現できない文字が来たら、補助配列を割り当て、 サロゲートペアの後半を補助配列の方に配置する。
record1
1文字あたり1バイトのバイト列で文字列を表現する。 1バイトで表現できない文字が来たら、元の配列の倍の長さの補助配列を割り当て、 文字の下位16ビットは補助配列に、 上位5ビットは元の配列に格納する。元の配列の最上位ビットは 補助配列を参照する必要があることを示すため立てておく。
utf16
UTF-16。だから使っちゃダメだって(笑
utf8
UTF-8。内部表現はバイト列。文字は可変長。

興味深いのはやはりrecord2やrecord1。 ただ、これってSchemeに閉じている時にはいいんだけど、 Cから文字列がほしい時にはrecord1やrecord2のフォーマットのままでは困るので、 毎回UTF-8なりUTF-16なりに変換してやる必要が出てきそうだ。 そうなったときに、変換やメモリ割り当てのコストがどのくらい効いてくるかが 興味深いところだ。少なくともRubyでは難しそうだなあ。


2008年01月10日 [長年日記]

_ [Ruby] マルチVMでRubyを並列化、サンと東大が共同研究 − @IT

東大(創造情報)とSun Microsystemが共同研究するという話。

実際には研究テーマは二つあって、 ひとつはFortress、もうひとつはRubyである。

テーマ的にはFortressの方が重要な気がしないでもないけど、予算は同額。 期間は2年ということで、今日明日にどうこうという話ではないけれど、 将来が楽しみな話ではある。

_ New Generation Chronicle:小飼弾−−35歳からのプログラミングこそ無上の至悦 - ITmedia エンタープライズ

なぜかインタビューでやたら私に言及してくださる小飼弾さん。 そんなに意識してくださらなくても。私なんかLarryに比べたらまだまだコモドですから。 いずれにせよ、ありがとうございます。

で、35歳ねえ。どうなんだろう?

小飼さんは私より3つくらい下のはずだが、 実は「35歳から」ということを意識したことはない。 私の場合、肉体的にはともかく、内面は子供のままで、 二十代の頃から全然成長した気がしない。

うちの奥さんは「旦那の子供っぽさ」が気に入らないようだけど。

ので、35歳からプログラミングが変わった、という意識も全然ない。 ずーっとRubyやってるので、 まわりでよく聞く「最近他のことが忙しくてプログラミングできなくて」とか いうのとも無縁だし。 「無上の至悦」という自覚がある弾さんの方がよっぽど大人だよね。

あー、そうだなあ。これからRubyクラスのプロジェクトを始めるのは 難しいかもしれないなあ。あれは二十代だったからできたことかも。 でも、Rubyがここまで来たのは私が二十代だったことよりも、 いろいろな運の方が強く作用しているような気がするので、 やっぱり関係ないかも。

今から新しいプロジェクトを始められないのは、 三十代以降、馬力が下がっているからか、 Rubyを捨てられないから純粋に時間と余裕と気力が足りないからか、 判別できないよね。

_ ONLamp.com -- How Will History View Richard Stallman?

歴史はStallmanをどう評価するか。

だいたいエキセントリックなところは歴史の陰に隠れてしまい、 成果だけが記憶されるので、彼は偉大なソフトウェア運動家として歴史に残ると思うなあ。

エジソンやテスラの奇行なんて知ってる人はあんまりいなくても、 電球や蓄音機や殺人光線(!)についてはみな覚えているもんだ。

_ [Ruby] Ramaze: a Ruby framework that will amaze | Zen and the Art of Ruby Programming

こんな感じの特徴のあるWebアプリケーションフレームワーク。

  • A very welcoming community with the right attitude, down to earth folks, and no prima donnas;
  • Lightweight, meaning that it's not bloated and doesn't fill the skeleton of an application with a bunch of unnecessary files;
  • Very Ruby like, based on the KISS and POLS principles;
  • Follows the MVC architectural pattern, but allows you to run everything off a single script if need be;
  • Already works perfectly with Ruby 1.9 (and runs much faster with it);
  • Faster than Rails, thread safe and well optimized;
  • Doesn't get in the way and has an almost flat learning curve;
  • Unlike other frameworks, it's very well documented with information and sample applications, whose code is browsable through a cool web interface;
  • Developed for more than 1 year;
  • Very stable with no known bugs;
  • Developed following BDD, with extensive test coverage;
  • Very actively developed;
  • Gaining momentum, day-by-day;
  • Modular design that allows for minimal dependencies;
  • Supports pretty much any Ruby Templating Engines (Ezamar, Erubis, Sass, Haml, Liquid, Markaby, etc…);
  • Supports most deployment solutions (Mongrel, Evented Mongrel, Swifiplied Mongrel, Thin, fastcgi, Apache, Nginx, etc…) since it uses Rack;
  • Supports any Ruby ORM (ActiveRecord, Og, Datamapper, Sequel, etc…);
  • Ships with JQuery, but can take advantage of any Ajax framework;
  • Already used in production for small and large applications;
  • Follows a pragmatic approach with several useful helpers.

Railsが成熟してくるにつれ、ライバルが登場してきている(Merbとか)。 そうやって切磋琢磨して向上していくのが望ましい姿だと思う。

_ [言語] REBOL 3.0 Alpha Public Release

「どっこい生きてる」という印象を与えるREBOL。バージョン3.0 alphaのお知らせ。

個人的には好みではないが(引数情報が構文解析に影響を与えるから、ソースコードだけから意味を解釈できないところが特に)、ドキュメントを見る限り、前のバージョンと比べていろいろと成長しているみたい。

あいかわらず「無料ソフト」らしいが、ソースコードは公開しないのかな。


2008年01月11日 [長年日記]

_ [言語] Thanks Zed; Syntax matters; no more dumping stuff in Java; Quit pimple pimping Ruby; Scala warning

「文法は重要だから、Javaと似た文法のGroovyを使おう。 SunはJRubyに投資すべきじゃない。Scala? とんでもない」という話。

私は賛同しない。

文法は重要じゃない、とは言わない。 文法はそれなりに意味があるし、言語選択にあたっての重要な要素になる。 しかし、もっとも重要な要素ではない。

重要なのは「メンタルモデル」である。 「文化」と言ってもいい。これが違ってたら、多少文法が似てても意味がない。

表面的な類似を除けば、JavaとGroovyってそんなに似てるか?

多少の文法の違いを乗り越えるのは人間にとって簡単である。 そこはむしろ人間の得意な領域だろう。 苦手なのはメンタルモデルをスイッチすることである。

モデルが似ていないのであれば、 むしろ文法が似ていることは邪魔にさえなる。

実例を示そう。

私は日常的にふたつのプログラミング言語を使っている。 ひとつはRubyで、もうひとつはCである。 これらはかなり文化の違う言語である。

ここでRubyとCの文法がかなり違うことで、 むしろ私の脳のスイッチが切り替わるのを助けてくれている。 もし、Rubyの文法がある程度以上Cに似ていたら、 今どの言語でプログラミングしているのかの手がかりが減って、 むしろストレスが増加してしまうだろう。

繰り返す。文法は重要だが、メンタルモデルが異なる言語で 文法が似ていることが重要なのではない。むしろ逆である。

次に、Rubyを「貶める」根拠として、 Rubyの求人数が少ない点(RUBY COMES IN DEAD LAST!)を示している。

まあ、求人数を気にする人がいるのは分かるけど、 求人数ってそんなに大事なのかな。 だって、求人サイトへの登録って玉石混淆だし(まあ、応募者はもっと玉石混淆だけど)。 本当に大事なのは自分の要求(報酬とか仕事の内容とか)にあった 仕事があるかどうか、なんじゃないかな。

で、応募者側の立場から言ったら、自分を差別化するためには むしろ求人も多く、コモディティ化しつつあるような技術(JavaとかPHPとか)よりも まだまだの技術(このリストだとPythonとかRubyとか)に賭けた方が 成功できるんじゃないかな。1000件求人があると安心するよりも、 すばらしい仕事をひとつ見つける方が私には価値があるけどね。

鶏口牛後ってことわざもあるしね。

もちろん、リスクを取らないでコモディティに生きるというのも ひとつの戦略だし、それを否定するつもりもないけどね。


2008年01月12日 [長年日記]

_ [Ruby] An Agile Way > 島根で Ruby と Agile : ITmedia オルタナティブ・ブログ

昨日のOSSサロンについて平鍋さんの記事。 楽しんでいただけたろうか。

記事を読むと鋭い人はピンと来るかもしれないが、 やはり層の薄さが島根県の弱点だと思う。 とんがった人は何人かいるし、 それはそれで貴重なのだが、 それの何倍も「wannabe」がいないとエコシステムが成立しないのではないか と危惧している。

OSSサロンに出席している人が、「偉い人」だけでなくて 実戦投入されている人がどんどん来る/来れるようになると 本物っぽさが増して将来に(もっと)期待が持てるようになるんだけど。

どうでしょう。自分んとこの若い衆をもっと送り込みませんか > 偉い人。

まあ、偉い人が来るってだけでも大したもんではあるんだが。

_ [言語] TIOBE declares Python as programming language of 2007! - comp.lang.python | Google グループ

2007年の「Language of the Year」はPythonだそうで。 おめでとうございます。

で、Rubyは、というと、TIOBE indexでちょっと落ちてるという。 2008年は1.9を武器にもうちょっと頑張ります。

来年はIoかLuaかScalaか。


2008年01月13日 [長年日記]

_ [教会] 出番多し

教会での司会、お話、レッスン、初等協会でのお話、と出番の多い日であった。 疲れた。

_ [教会] マルコフ連鎖(もどき)

家族で定期的に聖書を読んでいる。 教養としてもなかなかだ。

で、我々が朗読している間、 三歳の娘は、自分の聖書を開きつつ、 それらしいことを「読んで」いる。

われらは、しゅに、まじでに(?)、おめぐみを、くださりた

彼女が覚えている「聖書らしい音」を適当につなげているらしい。 なんか人工無脳みたい。 やっぱり、マルコフ連鎖のようなことが脳内で処理されているのだろうか。


2008年01月14日 [長年日記]

_ 風邪ひいた

昨日からちょっとおなかが痛かったのだが、 深夜目が覚めたら熱がある(37.4℃)。

おかげで今日は一日中寝ていた。 せっかくの休日なのに。ぐすん。

_ [Ruby] Obie Fernandez: About Rails and Ghettos

Zed曰く「いいヤツ」であるところのObie Fernandezによる Ghettho発言への「反論」。

辞書的な意味でRailsコミュニティにゲットー的なところは存在しないし、 衰退している様子も見受けられない。事実、彼の著書である 「Rails Way」の売り上げは絶好調で予想を超えるペースで再版を繰り返してるし、 Amazonの全分野100位以内をキープしてる(ってのはすごいことだ)。

で、注目すべき点はここ。

The rant was filled with tons of inside jokes and commentary that really only make sense to other clued-in Ruby people, stuff that comes across as just mean, stupid or crazy to everyone else.

例の「暴言」は内輪受けのジョークや(Rubyの事情が)わかる人にしかわからない内容で一杯だ。

For instance, a significant percentage of readers obviously understood from the rant that Zed is unemployed, starving, and/or stark-raving mad. All three could not be further from the truth. Zed is happily employed by a major, household-name financial institution in New York City, where he comes into work everyday with a nice shirt and tie, and leads a Rails (yes, Rails) development team. Of course, none of this is news to those of us that really know him, but the rest of the world got a totally different story.

たとえば、読者の多くは「Zedは無職で、飢えていて、むやみやたらと怒っている」と思っただろう。しかし、いずれも真実ではない。Zedはニューヨークのメジャーで名の通った金融機関に、毎日パリッとしたシャツとネクタイで通勤している。そしてRails(そう、Railsだ)開発チームのリーダーとして働いている。これらのことはZedを知ってる人には目新しいことじゃないけど、知らない人には全然違う風に受け取られたんじゃないかな。

ということはなにか、彼の暴言をことさらに取り上げた人は、 肯定側も否定側もまんまと一杯喰わされたということなのか。

もうひとつ。

To those that would use the number of Rails-related listings on major job boards as evidence of opportunity limitations, I point out that due to extraordinary demand for Ruby talent in the marketplace, it is almost pointless to advertise Ruby job positions via conventional channels. The way to find Rails talent is via targeted Ruby job boards, word of mouth, and blogging. Counts on mainstream job boards are meaningless at best, misleading at worst.

就職サイトでの求人数を元に機会が限られていると主張する人に対しては、 Ruby求人の需要は非常に大きいため、旧来の方法での求人はほとんど無意味である 点を指摘したい。Ruby人材を見つける方法はRuby専門の求人サイトか、 口コミ、ブログなどである。 主要な就職サイトでの求人数は、良くて無意味、悪くて誤解の元である。

のだそうだ。私はアメリカでの事情は知らないので検証することは難しいけど、 私の実感としても「Rubyを本気でやってる人」が仕事が見つけられない ほど仕事探しが難しい印象はない。

差別化できない、しようとしない人はともかく、 成長しようとしている20%の人に対してはかなり道は開かれていると思う。


2008年01月18日 [長年日記]

_ 詐欺(未遂)

会社に来たらアメリカからFAXが来ていた。

Intrernal Revenue Service IRS.gov - DEPARTMENT OF THE TREASURYというところから W-8BENという書類を出せ、というような内容。

確かにアメリカから印税を受け取ったりしているので、 還付金などの話がないわけではない。額が小さい割に、めんどくさいな、と思っていたが なにかがおかしい。

まず、最初におかしいのはFAXにあった「treasury.dpt@gmail.com」というアドレス。 政府機関がメールアドレスにGMailを使うか?

で、ひっかかって調べてみるといろいろ出てくる。

  • FAX番号である「+1-206-826-0420」はワシントン州。 ワシントンDCならともかくワシントン州ってどういうこと?
  • IRSにはW-8BENという書類はあるが、FAXにあるものとは全然違う。
  • 実際の書類にはW-8BEN Uとあるが、そんな書類はない
  • で「W-8BEN U」で検索して出てきたのが、The Royal Gazetteのこの記事

はい、詐欺決定。無視、無視。通報すべきか。 しかし、私の情報を入手してどう詐欺しようと思ったのだろうか。


2008年01月19日 [長年日記]

_ [教会] 掃除

午前中は息子が初等協会の活動。私は教会の掃除。 末娘がいろいろと手伝いをしてくれた。

3才児を掃除に参加させるためには、いろいろと工夫が必要だ。 本人は大満足の様子。

末娘のたっての希望で、息子と末娘と連れてうどん屋へ。

_ X61 インストール問題

今年に入ってからはずっとX61を使っているのだが、まだ気に入らないところがある。

問題

サスペンドからの復帰に失敗する。

現象

s2ramを使っても、/sys/power/stateを直接たたいても、 何回かに一回の割合で復帰しない。復帰しない時には

_    inu

という表示(左上隅でカーソルが点滅)したまま反応が帰ってこない。 ThinkLightのオン・オフだけはできたりするのだが、 ログにもまったく記録がないので、カーネルはぜんぜん動いてないようだ。

ハイバネーションは失敗したことはないのだが、 こちらは中断・復帰ともに1分以上かかるので、精神衛生上あまり望ましくない。

また、デバッガが動作中でデバッギが中断しているとsnapshotに失敗して サスペンド、ハイバネートともに失敗する。これはデバッガを終了させればOKだが、 こちらも精神衛生上良くない。

対策

カーネルオプションに

acpi_sleep=s3_bios

を付加せよ、という記述を何箇所かで見たのだが、付けても付けなくても現象に変わりはない。

いろいろ試したが、どうやら現在使っている2.6.23に問題があるらしい。 何回か試した範囲内では2.6.18ではサスペンドに失敗することはない。 また、デバッグ中でもサスペンドできる。

とりあえず「acpi_sleep=s3_bios」はつけてある。

新たな問題

しかし、2.6.18にして問題はすべて解決というわけにはいかない。 2.6.18にするとXが起動しないのだ。「/dev/agpgartがない」と言われる。

なんとX61が採用しているビデオ(i965)は2.8.20以降しかサポートしていないのだそうだ。 しかたがないので、ドライバをintelからvesaに変更。 描画性能はだいぶ下がるそうだが、精神衛生面から妥協する。

ただし、XVideo拡張が使えないようで(xvinfoが

X-Video Extension version 2.2
screen #0
 no adaptors present

と返す)、フルスクリーンのビデオ表示ができないのは困った。 xdpyinfoではXVideo拡張はあると表示するんだがなあ。 ま、vesaではしょうがないか。

それとは別の問題(解決済み)

ThinkFingerを導入して指紋認証できるようにしたのは良いのだが、

modprobe uinput

するとkdmが落ちるようになってしまった。

gdmに変更してもなぜか立ち上がらない。 結局、splashyをpurgeしたらgdmが動くようになった。 uinputをロードしてても大丈夫。指紋認証もできる


2008年01月21日 [長年日記]

_ X61 with Linux 2.6.18

2.6.18に戻してからはおおむね快調である。

サスペンドの失敗もなくなったし、 デバッグ中でもどんなプロセスが動いていても確実かつ高速にサスペンドする。

リジュームの方は「HDDのスピンアップを8秒待つ」という表示が出て、 少々もたつくが、それでもハイバネーションからの復帰に比べたら天国のようだ。 当面(2.6.24が出るまで?)は2.6.18で頑張ることにしよう。 なに、X31でもつい最近までカーネルは2.6.18だったのだから、 さほど問題はあるまい。

vesaドライバしか使えないということで、Xの性能も心配だったが、 Berylとか使ってるわけでもないので 問題なし。mplayerがxvドライバが使えないのが難点だったが、 とりあえずsdlドライバで代用できそう。

ただし、まだ外部ディスプレイに表示できない。 xorg.confをいじる必要がありそうだ。

後は音が出ない点。X61が積んでいるHDA Intelのサウンドカードは かなり新しいALSAでないとサポートしてないのだった。 2.6.23ならALSAが新しいバージョンがついてくるんだけど。

これはalsa-sourceパッケージをインストールして 自分でモジュールをコンパイルすることで解決。

後は外部ディスプレイだけか。

追記

外部ディスプレイなんて簡単さ、なんて思っていたのだが、 vesaドライバでLCDとCRTに同時表示させる方法がどうやってもわからない。 xrandrも使えないみたい。あらかじめなにかxorg.confに書いとかないといけないのかな。

現在は、CRTとの切り替えしかできなくて、その方法も

  • s2diskでハイバネート
  • 復帰時にGRUB画面でFn+F7で画面切り替え
  • そのまま復帰でCRTに表示される

というめんどくさい手順。おまけにLCDは暗いままなので使いにくい。 困った。

_ 梅田望夫さんとの対談(その2回目)

まだ休みボケが抜けなくて、 朝、こたつの中で「動きたくないよー」とか言ってたら、 「寝言はいいかげんにしなさい」と妻に追い出された。

飛行機に乗って東京へ。

で、日経BPで梅田さんとの二回目の対談。 前回の対談の後「楽しかったのでもう一度対談したいですね」と 言ったら梅田さんも乗り気になっていただいて実現した。

主に「ネットにつながった人々のパワーの活用」とか 「オープンソース」とかの話が中心だった。

「オープンソースの中の人」である私にとっての「当たり前」も やや外側にいる梅田さんにとっては「驚き」だったようで、 こちらの一言にびっくりするくらい感心してくださったところもあった。

「梅田さんがこんなに聞き手に回るのを見るのは初めてです」と 同席してくださった方もおっしゃったくらい、私が(早口で)しゃべっている。 これがどうまとまるのか、楽しみである。

イメージ的に二匹目のドジョウっぽくなってしまって、 前回ほどは話題を呼ばないかもしれないけど それでも誰かの役に立ったり元気づけたりすることになれば これ以上のことはない、と思う。


2008年01月22日 [長年日記]

_ 取材

某新聞社の某雑誌から取材を受ける。 なんでも5ページも載せるということで、 一般誌にこんな「特殊な分野」の人間のことを 載せて、興味を持ってもらえるのかなり疑問なところであるが、 まあ、たとえそうでも、責任を取れ、とは言われないだろう。

で、おいたちからはじまって、いろんな話をした。 また、写真撮影もあって、恥ずかしい限りだ。

ところで、プロジェクターに照らされながらの撮影だったのだが、 強い光を受けながら暗いところを見ていると 網膜を走る血管が見えるのね。初めての経験であった。


2008年01月24日 [長年日記]

_ 地域情報化セミナー in 松江

総務省中国総合通信局主催のセミナー。

IPAの田代OSSセンター長をはじめとするいろいろな方がいらっしゃって セミナーを開催していただけるとはありがたい限り。

でも、遅刻してしまった。

個人的に面白かったのは「Rubyで固い開発」の経験談であった。

Rubyで

  • 地方自治体向け
  • 業務システム
  • ウォーターフォール開発
  • 主体は元COBOL技術者

の開発なんて、以前に誰もやったことのない未踏領域ではないだろうか、と。 興味深い。が、ただそれだけでない政治的な話までいろいろありそうだ。

夜の懇親会まで呼んでいただいた。

_ 私は「信頼できる」人か?:ITpro

月曜日の梅田さんとの対談に出席された谷島さんのコラム。

私、谷島さんとは面識があると思いこんでいたのだが、 それは実はコラムを通じて「知った気になっていた」らしい。 これだから。

で、まあ、全体を通じていろいろと面白い(が、対談の内容には触れていない)コラムなのだが、 なんとも興味深かったのはここ。

まつもと氏が自然体でありながら,その難事(「自分の幸せを貪欲に追求する,つまりわがままを押し通す」こと)をやってのけているカギは,おそらく彼の信仰にある。梅田氏は1回目の対談で遠慮しつつ,その点を質問していた。自分が永遠に到達できない圧倒的な存在を信じればこそ,自立と自助が可能になる。

そうなのか。

日本には確固とした宗教を持つと公言する人が少ないこともあって、 結構ひんぱんに「Rubyの設計・開発と宗教の関連」について聞かれるが、 いつも「私にはよくわからない。けど、たぶんあまりない」と答えてがっかりされる。

関係が全くないとは断言しないが、 あると答えるもの難しい。

まず、第一に私は幼いときからクリスチャンであったため、 「クリスチャンでない自分」を想像できない。 まったく違った人生を歩んだであろうことは想像にかたくないが、 あまりにも違っていそうで、想像もつかない。

次に、いくら日本にクリスチャンが少ないといっても、 すべての宗派を合計すれば、それでも数十万人はいるはずだ(もっとかな)。 私の教会(末日聖徒イエス・キリスト教会)に限定しても 万単位でいるはず。

もし私の宗教や信仰とRubyやらオープンソースコミュニティの成功が 関係しているのだとしたら、 日本中に(あるいは世界中に)クリスチャンがリードする成功したオープンソースソフトウェアが 蔓延しているのではないか。

それはそれでうれしい世界だが、寡聞にして クリスチャンがリードした成功したオープンソースソフトウェアがたくさんあるとは 聞いていない。

私の知っている範囲内で、自分が信仰があると公言している 「有名な」オープンソースソフトウェア主要開発者は、 私とLarry Wallくらいではないかと。

LinusやStallmanは無神論者だと自称していたような気がするし。

とはいうものの、「難事をやってのけているカギ」が信仰にあるとは 今まで考えてもみなかった視点であるし、 もし本当にそれが真実であるとするならば、これほどうれしいことはない。


2008年01月25日 [長年日記]

_ 取材

某新聞社から取材。先日のとは別の新聞社。

事前に良く調べていらっしゃって感心する。 話が早くてありがたい。先日の取材とちょっと内容かぶっちゃったけど しょうがないよね。私は一人なんだから。

_ 講義

島大講義。後期のRuby講座の最終回なんだそうだ。 最終回とは認識してなかったな(いいかげんな講師)。

テーマは「Rubyの今後」。 でも、Rubyの今後というか、 Rubyのご先祖とこれからのテクノロジートレンドとかいうような話だったな。 Rubyに限定した話ではなかったような。 学生さんがどのくらいわかったかは疑問だけど。

しかし、スライドが100枚近くあって、 サンプルプログラムがLispとSmalltalkしかないってのはどうよ。

_ まつもとゆきひろと語る会

講義後、法文学部主催で「語る会」も開かれる。 地域振興やIT産業、また閉ざされた日本、みたいなテーマから Rubyそのものにいたるまでいろんな話をつまみ食い、みたいな。

たのしかったけど。ちょっとくたびれたかな。

_ [言語] その文字列はセーフ? 本当は奥深いデコード処理 − @IT

PHPの文字列処理の話。

ジュン:特に最近話題になってるのは、バイナリセーフな関数とかバイナリセーフじゃない関数とかを交ぜこぜで使うと困ったことになる、ってとこかなぁ。

っていうか、バイナリセーフ関数とそうでない関数があるって必然性そのものが理解できないんだけど。 ちょっと手抜きすぎじゃないかと。

いや、もちろんC文字列を経由しないと呼び出せないものがあって、 たとえばファイルパスとかにNUL文字が入れられないのはわかる。 しかし、それだってできる限りちゃんとチェックして、 NULが入ってたらエラーにするとか、するもんじゃないの?

で、そのチェックがもれてたら、「すいません、それバグですから直します」とか いう話なんじゃないかと。少なくともRubyではそういう態度。

それを「文字列処理関数にはバイナリセーフなものとアンセーフなものがあります」って 割り切っちゃうってのは。 ところ変われば、ってのはあるんで、言語コミュニティごとに常識は 違うのはある程度「当たり前」なんだろうけど、 個人的には大変驚いた「当たり前」であった。


2008年01月26日 [長年日記]

_ 実家へ

私の両親が1年間の任期で東京での「ボランティア」の途中で 1週間だけ実家に帰ってくるということで、家族総出で米子へ。

昼食をいただいたり、おしゃべりをしたり 大変楽しい時間であった。 途中、私はうとうとしてしまったけど。

_ ひげを剃った

ふと、思い立って髭を剃ってみた。

しかし、家族の誰も気づかない。 夜寝る前になってやっと次女が気づいた。

そんなもんだ。

_ [Ruby] James on Software: Ruby Reddit

私の情報源のひとつ、Redditがsub reddit作成をユーザに開放した ということで、Ruby Redditができた。

他にもHaskellやScalaができてるみたい。

_ [言語] Attacking PHP

PHPがいかに駄目な言語か、という話。

  • いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
  • hashやlistがobjectが区別できない
  • オブジェクト指向機能が壊れている
  • lambda(無名関数)がない。create_functionはlambdaじゃない
  • short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
  • 一貫性のない名前(str_replace,strlen,parse_strとか)
  • 引数の順番がわかりにくい(in_arrayとかstrposとか)
  • strpos('abcd','a')は0を返すが、0は偽である
  • PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
  • 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
  • グローバル。使うんじゃないってば。

もちろん、反論もあるだろう。たとえば「Defending PHP」とか。

でも、個人的にはやはり否定側の方が筋が通ってる印象かな。

特に「PHPは初心者に学びやすい(と言われていることが問題である)」という部分に共感する。 PHPは初心者に簡単かもしれないが、初心者による手を抜いたWebアプリケーションは PHPが作られた当初はともかく、現代では害悪ではないだろうか。

Webアプリケーションをなめるな

PHPならではの理由がないわけではないことはわかる。 どこでもインストールされているとか、 デプロイが簡単とか。

でも、「初心者に簡単」を一般公開されるWebアプリケーションを 開発するための言語としての利点にするのはもうやめようよ。

追記

どの言語で書いてもおかしなコードを書く奴は書く」と いう指摘もあった。それは言うまでもない事実ではある。そこには反論しない。

が、本当に問題なのは、世の中には「おかしなコードを書くことを助長する言語」もある という点だ。 で、そういう言語にはおおむね「初心者にやさしい」というラベルがついている。 どういうわけだか。

たぶん、「初心者がおかしなコードを書くのをじゃましない」とか あるいは「初心者っぽいコードを積極的に支援する」から、「初心者に優しい」って呼ばれるんだろう。 もしくは「設計者がまだ初心者」とか。

そういう言語が存在しちゃいけないとは言わないけど(人に迷惑をかけない範囲で)、 ここ半世紀の言語の進化をないがしろにするのはもったいないと思うな。


2008年01月27日 [長年日記]

_ 髭を剃った(2)

教会に行く。結局まる一日、誰も髭のことには言及しない。

そんなもんだ。


2008年01月28日 [長年日記]

_ 散髪

息子の学校で学級閉鎖があったので、 息子共々散髪に。さっぱりした。

が、すこし伸びてた髭がまた剃られてしまった。

そんなもんだ。

_ asahi.com:副検事、特急列車「止めて」 松本駅乗り過ごし停車 - 社会

ラジオのニュースで聞いた。 検事さん、乗り過ごしてしまったのは失敗だったけど、 次の駅で列車を止めてもらえてどんなに助かったことだろう。

いい話や。

と、思ってたんだけど、なんかアナウンサーのコメントとか聞いてると なんか不祥事っぽい対応してるように見えるんだけど。

世の中、それだけ不寛容になってるということか。

_ [Ruby] コミッタになった - まめめも

「やりたい放題です」w

どうぞ、よろしく。

_ [OSS] NokiaがノルウェイTrolltechを買収へ、ソフトウェアを強化 | 経営 | マイコミジャーナル

MySQL ABに続いてTrolltechまでが買収とは。 これをどう読み取るべきか。

  1. オープンソース企業がビジネスになることが明らかになったので買っておこう
  2. オープンソース企業間でも寡占化が進みつつある
  3. とりあえずある程度規模の大きなIT企業には金が余っている。バブルっぽい?

うーん、(3)かな。

_ [Ruby] ruby, java Job Trends | Indeed.com

RubyとJavaの求人数の伸びをグラフ化するとこうなる、という話。

ほぼ横這いのJavaに対して、 Rubyがめちゃめちゃ伸びていて、このグラフだけ見るとRubyの圧勝、という印象がある。

実際には母集団の数が全然違うわけで、ここで「伸びてる、伸びてる」と 安易に喜ぶのもどうかとは思うけど。一種の統計のマジック。

とはいえ、一部で言われているような「Ruby(とRails)のピークは2006年。現在は下降気味」という 説に対する反証にはなっているような。


2008年01月29日 [長年日記]

_ [言語] PHP使いの反論

一般的に思われているのとは異なり、PHPはとても愛されている言語だ、と思う。

なにしろ、私がたまにPHPの良くない点を指摘すると、 たちまちホットエントリになる。またコメント欄にたくさんの反論をいただく。 びっくりだ。

それだけPHPという言語を愛している人やら、 PHPという言語の欠点を公に指摘されると自分自身がけなされたと感じる人が多い、 ということなのだろう。それはそれですばらしい。

しかし、一方で「指摘はもっともだ」というような声も散見される。 言語としての評価は分かれるということなのだろうか。

しかし、PHP使いの反論は、その多くがどうにも噛み合わない。 今後のためにも*1ちょっと分析して記録しておこうと思う。

たぶん、ここのPHPをHSPとかに置き換えても同じことが成立すると思う。

書いてないことへの反論・思いこみ

これが一番多い。たとえば、

  • どの言語でも安全でないプログラムは書ける
  • 「PHPを選ぶ初心者バーカ」とはなにごとか
  • Rubyなら初心者でも安心なのか
  • PHPを陥れるのはRubyの宣伝のため

えーと、幻を読むのは止めていただきたい。そんなこと書いてないじゃん。

どうやら、私はRubyという言語設計者なので 「他の言語を馬鹿にし、自分の言語を宣伝したくてうずうずしてる」という 脳内イメージが形成されているらしい。

が、もう15年も付き合っていて、必要なだけは十分に世間に知れ渡っているRubyを 今さら宣伝しても、私にはなんにもうれしくない。

「人は自分が持つであろう意図と動機を他人に見いだすのだ」と以前聞いたことがある。 とすると、これらの批判をする人たちはもし「自分の言語」を持ったとしたら 全力で他の言語をけなし、自分の言語を持ち上げるのだろうか。 というか、PHPが彼らにとっての「自分の言語」なのか、もしかして。やれやれ。

私は言語オタクとして、さまざまな言語の良いと思うところは良い、悪いところは悪いという 印象を自分の日記に記録する。公開しているんで読みたい人は読み、参考にできると思う人は 参考にする、それで良いと思う。

私がPHPを「イケてない言語」と発言しても、 たかがひとりのプログラマにそう言われただけじゃないか。 それでPHPユーザーが負け犬認定されるわけでもなし、 「そういうところもあるよね」と笑い飛ばせば良いと思う。

そうじゃない?

他の言語について知ってる?

言語を比較するためには他の言語についてのある程度の知識が必要だろう。 Perlを知らずしてスクリプト言語を深く語るのは難しいし、 Lispの知識なくRubyを深く語ることは難しい。 Pythonは? うーん、PythonにはPythonの知識だよね(笑)

たとえばPHPしか知らないとしたら、PHPの欠点を指摘されると自分のやり方全体が 否定されたと感じるのではないだろうか。

なんとなく、他の言語も知っているが諸般の事情でPHPを使う、 という人は「批判はわかる」と言っているような気がする。 たとえば「Rauru Blog >> 悪いのはPHP自体じゃないかもしれないけど」とか。例に出して悪いけど。

もちろん、セキュリティホール作りこむ人はどの言語でも作りこむ、ってのは真実ぢゃろう。しかし何と言うかだな、PHP には、そういう人を呼び寄せる(あるいは居付かせる)何かがある、んぢゃなかろうかね。 似たような話として、perl で use strict しない 文化圏 にもそういう何かがあるという気はしてる。

弾さんの 「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い でも指摘されているように 私のPHP批判に怒っている人はあまり外のことを知らないで怒っているような気がするな。

もちろん例外はあるだろうけど。

ずれた正論ですり替える

たとえば「どの言語でも安全でないプログラムは書ける」とかは正論だ。誰も否定できない。 正しいことを断言すると気分は良いだろう。また正論で反論するってことは 相手を間違い認定するのと同義なので、ますます「勝った」感が強くなる。

でも、ちょっと待って? 反論している相手(この場合は私)は 本当にそんな正論で論破されるようなことを主張しているの?

この場合だと、たとえば「PHPでは安全なプログラムは書けないが、Rubyなら書ける」とか 私が主張していたらこの反論は有効だ。でも、私はそんなこと言ってないよね。

私が書いたのは「Webアプリケーションをちゃんと書くのは難しいから、 Webアプリ向け言語に初心者に優しいという宣伝文句を使うのは良くない」ということである。 ここについては、別にRubyがいいとかなんにも書いてないよね。 また、「どの言語でも安全でないプログラムが書ける」ということと対立もしない。

ついでに言うと「どの言語でも安全でないプログラムが書ける」ということと、 「どの言語でも安全なプログラムを書くのは同じくらい難しい」とは まったく違う。でも、このふたつが同じことのような印象を与えがちだよね。 これって詭弁だと思う。

ここからはRubyの宣伝にもなっちゃうんでエントリを換えよう。

*1  今後もPHPの欠点を指摘するつもりなのか

_ [言語] 安全なWebアプリのために言語ができること

最初に繰り返して明言しておくが、 どんな言語だろうとなにも考えないで完全に安全なWebアプリケーションは書けない。 が、脆弱性を作りにくい言語(およびフレームワーク)機能というのはありえる。 たとえば

  • 安全なメモリ管理

    Cのような生のメモリ領域を使い、実行時の範囲チェックを行わない言語では 容易にバッファオーバーフローが起きる。RubyやPHPのように言語自体がメモリ管理を 行う場合(バグがない限り)安全。

  • パラメタ処理などの抽象化

    ミスによる脆弱性を起こしがちな、 環境変数や標準入力からデータを切り出してくる処理やクッキー処理を手動で行わない。

  • テンプレートシステムによる出力

    インジェクションなどの原因となる生の文字列操作でHTMLを構築することをできるだけ避ける。

  • ORマッパーによるデータベースアクセス

    インジェクションの原因となる生の文字列操作でSQLを構築することを避ける。

  • データフロー追跡

    RubyやPerlでは外部から入力された文字列にtaint(汚染)と呼ばれるマークがつく。 taintされた文字列から加工された文字列にもtaintがつく。 これをチェックすることで外部からの入力をチェック(サニタイズ)しないまま 危険な操作(ファイル名にする、systemを呼び出す、HTML/SQLに埋めこむ、など)を 禁止することができる。

  • 落とし穴の多寡

    たとえば、バイナリセーフ関数かそうじゃないかの違いのような 「落とし穴」に対して開発者が無関心かどうかは、最終的なプログラムの安全性に 影響する。言語ユーザが気をつけなくちゃいけないことも増えるしね。

もちろん、PHPでも各種フレームワークなどを最大限活用することで、 上のような機能を揃えることもできるだろう。そもそも「できない」って言ってるわけじゃない。 でも、CGI向け各種機能がビルトインされていて

htmlspecialchars($_GET['text']);

とかを普通にやっちゃう(しかも、それがゆえに初心者に優しいとかされてる)環境で 安全なソフトウェアを書くのは、他の言語に比べて大変困難であろう。

なんか間違ってる?


2008年01月30日 [長年日記]

_ ITPro Expo

米子空港から東京へ。 私のうちからは米子空港は遠い。 ぜんぶ出雲空港で済むとありがたいのだが。

羽田からビッグサイトへ。

りんくうりんかい線国際展示場駅からビッグサイトまでが予想以上に遠く(前回使ってからずいぶん経つので距離感が失われていた)、ついた時にはもう11:40くらい。高橋さんと比嘉さんの対談はもうほとんど終わりであった。

で、対談後講師控え室で、比嘉さん、高橋さんといろいろと話をした。

比嘉さんに聞いてみたのは「Seasarについて海外から反応はないんですか」というもの。 答えは「ほとんどない。英語のメーリングリストもあるけど流量はほとんどない」とのこと。 かなり意外。 Rubyは超マイナーなころから結構海外から反応があったので。

高橋さんから、この違いは、言語とフレームワークというジャンルの違い、マイナー言語とJavaという客層の違いがあるのかもしれない、との指摘があった。

まったく新しい言語に興味を持つのは、少数派だ。 私が高校生のころはコンピュータに興味を持つ人の相当の割合は 言語にはまるだろうと思っていたのだが、当時はサンプルが1(自分自身)だったので 世間を読み誤っていたようだ。ほとんど人にとって言語は単なるツールであり、 新しいものを学んだり、実装したり、ましてや自分でデザインしちゃうような人は 超マイナーだということを知るのはずいぶん後のことだ。

話がずれた。

とはいえ、言語に興味を持つ人は一定数いて、 そういう人は新しい言語がアナウンスされると「とりあえず見てみようか」と 思うものらしい。実際、次々と誕生する新言語も(少なくとも当初は)いくばくかの興味を集めるものだ。

しかし、(これは私の偏見が入っているが)Java使いの人の多くは 言語に興味があるのではなく、仕事に使うツールとしてJavaを選んでいる。 ので、新しいテクノロジーは興味を引くものではなく、 「やっかいのタネ」でしかない。「やれやれ、また勉強しなくちゃ」とかね。 まあ、そうでなくても「恐くて仕事には使えない、様子を見よう」と遠くから 見ているような態度だ。

特にビジネスシーンでのフレームワーク選択は、 責任問題になるから、どうしても保守的な判断になる。 お前があのフレームワークを選んだからプロジェクトが失敗した、とは絶対に言われたくないだろうし、 「じゃあ、前例のあるアレにしとくか」というのももっともだろう。

となると、なかなかブレークスルーするのは難しいかもしれない。 最初から「どうせ仕事には使えない」という認識のRubyなら 逆にそういう抵抗感は少なそうだ。最近、仕事にも使えるという印象が出てきて 一番驚いているのは私自身だが。

と、ここまで聞いて、「英語のドキュメントはどのくらいあるんですか」と聞いたら 「古いバージョンのものだけ、最新にキャッチアップしてない」とのこと。

Seasar海外展開への道はまだまだ険しそうだ。

せっかくのイノベーション(Java界にとってはイノベーションと呼んでもいいと思う)が 日本の外で知られないままなのはもったいないよなあ。

ここにリンクをはっとくと海外から機械翻訳経由で「Matzにっき」を読んでる人が 興味を持ってくれるかも。

Wikipediaエントリーもあるんだね。

後、今回の「騒動」について。 私は全然騒動だとも炎上だと思ってないのだが、 高橋さんの第三者的客観的な指摘から、少なくとも

  • 言語オタクの「生態」が知られていないこと
  • 私が他の言語について語るとRubyの宣伝と思われること
  • 影響力が大きいから自重しろと思う人が多いこと

はわかった。が、最後の「自重しろ」は断固拒否する。 「空気読め」は私の一番嫌いな言葉だ。

_ 楽天ミーティング

技術研究所ミーティング。詳細は語れない

  • ROMAプロトタイプが動いていた。
  • FairyのAPIデザインがかなり固まってきた。
  • Seam carving

その後、楽天エンジニアの人と懇親会。

_ 海外出張計画

2月とかほとんど講演の依頼がなく、 今年は比較的出張が少ないなあ、ヒトとして旬が過ぎてしまったか、と思っていたら、 海外からオファーが結構増えてきた。

まだ決めてないものも含めて、ここ数ヶ月でこんな感じ。

  • 2/18-23 しまねOSS協議会、サンフランシスコおよびポートランド視察
  • 3/13,14 Asia OSS Conference & Showcase 2008 (中国・広州)
  • 3/29,30 EuRuKo (プラハ)
  • 4/1,2 JAOO RubyFools
  • 4/12,13 台湾でのイベント(詳細はまだ聞いてない)

当然全部には行けないので、どれに行くか迷っている(サンフランシスコとプラハは確定)。 あと、FOSDEM(2/23,24、ベルギー)は依頼されたけど断ってしまった。


2008年01月31日 [長年日記]

_ ITPro Expo

ホテルで朝ご飯をいただいて、ゆりかもめで会場へ(一駅)。

で、電車を降りたらwakhokの丸山先生を見かける。 あいさつしてそのまま講師控え室まで。 で、丸山先生なんだか面白いことを(Rubyで)はじめたみたい。 もうちょっとしたら公開する、とか。

そうこうしているうちに高橋さんがいらっしゃる。 うーむ、イケメンだ。おしゃれだし。

が、実際に話してみると、 外見や分野はともかく性格や行動がかなり似ている。

対談してても何回も「お前は俺か」とツッコもうかと思ったから。 大勢の観客もいたし、(高橋さん目当てに)テレビ局も来てたから自重したけど。 ほら、気配りもできるんだよ(笑)。

違っている点

  • 高橋さんはイケメン、私は童顔
  • 高橋さんはおしゃれ、私は外見に無頓着
  • 物理的実態のあるロボット、終始バーチャルな言語
  • 万人にわかりやすいロボット、一般人には理解不能な言語
  • ウケるロボットのデモ、つまらない言語のデモ
  • 高橋さんは特許保持者、私はむしろアンチ(ソフトウェア)パテント

似ている点

  • 好きなことばかりやってたい
  • 根はぐうたら、働き者じゃない
  • 他の人の手も借りるが、基本的に個人プレー
  • 最新鋭の技術を開発するというより、既存技術をパッケージング
  • デザインとバランスで評価されている
  • 国内外で講演・デモなどに飛び回ってる

全体的にITPro Expo会場での知名度はともかく、 高橋さんの方がなにかと徹底してるし、成功の度合が高いかな。

で、いろいろと話して楽しかったし、 クロイノやFTのデモを目の前で見れて大感激だったんだけど、 最終的にお客さんはどう思ったのかね。

冷静に客観的に振り替えると「変人二人」とかいうようなまとめになりそうなんだけど。

控え室でもさらに話がはずむ。 あちこちでデモを頼まれるけど(ロボットは普通の人が見てもわかりやすいから)、 以前物産展でハクサイの隣でデモするようなこともあったので、 ロボットの価値を下げないためにも安易な依頼は断ることにした、 というのは印象的だった。

まあ、私の世界中から何十倍も依頼が来てそうだし、取捨選択は必要だよね。

ちなみにこの後、「これらかインドに行きます」といって成田に向かわれた。 忙しそう。月に1,2度海外に行くと行ってたし。

そういえば、先週の週刊少年チャンピオンの漫画に 明らかに高橋さんをモデルにした人物が(棚橋さんという名前で)登場していたのだが、 ご本人はご存じないとのことであった。秋田書店の関係者は バックナンバーをロボガレージに送るべきだと思う。

その他、いろんなことを話したが、すべてためになった。 私のためにありがたい対談であった。日経BPさん、ありがとう。

当日のレポート

さて、ここで出番は終わらない。次は「Ruby検定」の解説である。

で、これら検定はぜんぶ「〜の○○検定」というフォーマットのタイトルがついているのだが、 「マイクロソフト」、「シスコ」などと並んで「まつもとゆきひろ」とあるのは なんの「いじめ」なんだろうか。

【ITpro EXPO 2008】ITpro EXPO検定に挑戦し,撃沈される:ITpro」とかを見る限り、Ruby検定は人気ないみたい。

で、解説者が実際に検定を受けてないのもなんだよな、と思い、 また、不人気なのは残念なのでサクラも兼ねて、 会場で受験する。まあ、問題作成側であったので良い成績はむしろ当然で、 なんかのミスがあったらどうしよう、とドキドキしたが、 首尾よく100点。

で、得点をスタッフのお姉さんにチェックしてもらうのだが、 その時ネームタグ(ICチップが入っている)をみて、 「くすっ」と小さく笑ったのを見逃さなかった。

今、「自分で受けてら」って思ったでしょ。 私でも思うもん。 だから、やっぱり「RubyアソシエーションのRuby検定」にしとけば良かった。 えーん。

気を取り直して。

実際の解説であったが、あまりお客は居なかった。 かなり関係者も目立ったし。やっぱり現時点ではまだ魅力不足だよね。 はじまったばっかりだし、どのくらい仕事につながるかも未知数だし。

いずれにしても、解説はせねばなるまい。 メイン解説者の大場さんが、「私は2回目で落ちました」という自虐ネタを 披露する。ちなみに奥さんは合格です。

で、適当にかけあいをしつつ解説をこなす。 予定よりもたくさん説明できた。 やっぱ他の言語(JavaとかPHPとか)から意識を切り替えられないと 間違いやすいみたい。Timeメソッドでaddとか使っちゃったり。

で、飛行機に乗って米子空港経由で帰る。 くたびれた。

_ 自分の経験の枠組みは自分で変えられるか? - アンカテ(Uncategorizable Blog)

essaさんによる提言。私の記述不足から起きた「話題」も このようなコラムの引き金になったのだとしたら本望だ。

_ [言語] やじうまWatch: 広く使われるプログラミング言語「PHP」を巡る議論に注目集中

やじうまWatchにまで取り上げられちゃったよ。 「ある「ハッカー」の顛末」以来だな。 みんなよっぽど話題がないんだろうか。

おかげで、すごいアクセスが来ている。夜とかサーバーが落ちそうになるくらい集中した。


最新 追記