最新 追記

Matzにっき


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

_ [Ruby] ロゴコンテスト締め切り

本日10/1 0:00(UTC)がロゴコンテストの締め切りである。 日本時間だと午前9時になる。

で、駆け込みでの応募が大量にあって驚く。 届いたメールの総数は200を越えた。 もっとも重複があるので実際の候補はもう少し少ない。

ここから選ぶのはまた難儀な仕事になりそうだ。

_ [Ruby] Rubyで自治体の業務システム構築、松江で実証実験 − @IT

IPAの実証実験へ応募していたのが採択された、という話。

これの実装は実はNaClが行うのではなく、 島根最大のソフト会社であるテクノプロジェクトが主体となる。 NaClは単なるお手伝い。

事情を知る人から見ると、しばらく前にかとても考えられなかった組み合わせである。 オープンソースの圧力、松江市の態度、Rubyの魅力(自画自賛)と、 あと若干の政治的事情がこの「奇跡」を実現した。

いや、正直、この実証実験、大変なんだけどね。

_ On Off and Beyond: 何かを好きになるために努力すること

ただ、好きなものに出会うのを漠然と待つのではなく、 積極的に好きになる努力を払うということ。

そういえば、「なにかを好きになる」きっかけについて あまり考えたことはなかったけど、 冷静に考えてみれば、無意識下にこういう努力ってのがあるような 気がする。

実際、人を好きになるのだって、 いろんな駆け引きやら(言葉は悪いけど)妥協のようなものが最初にあって それから気持ちが強くなっていくもんだものね。

ということは、人は自分がどんなものを好きになるかある程度コントロールできる ということでもあり、その人が好きなものは、その人を形作るわけだから、 人は自分が何者であるかを制御できるわけだ。

いや、考えてみれば当たり前なんだけど、 今まで考えたことなかったなあ。

それは私が特に努力した覚えもなく「プログラミング」という 「好きなもの」に遭遇したからなんだろうねえ。 「好きであるがゆえの努力」には事欠かないんだけど、 「好きになるための努力」は記憶にないなあ。

_ U-20プロコン表彰式

ワークショップが開かれ「プログラマの内なる衝動」というテーマで話をする。 が、職業的にプログラミングを行った経験のない若者に どのくらい伝わったのかなあ。

最近では新たな3Kと呼ばれちゃったりするプログラミング業界だけど、 希望はまだまだあると思うんだ。 それが少しでも伝わったんなら、これ以上のことはないんだけどなあ。

_ 経済産業大臣表彰

で、U-20プロコンと同じ「情報化月間」というイベントの一環で、 経済大臣表彰なるものをいただく。 なんか他の受賞者[PDF]に 比べると、私なんか若輩者で、「ホントにいいわけ」とか思ってしまうのだが、 ま、とりあえず断るのも失礼な気がするので、 くれるというものはもらうことにする。賞状だけだしね。

で、その辺の「照れ」もあってジーンズで授賞式に臨んだりするわけだ。

日経BP技術賞のときはスーツだったのにね。


2007年10月02日 [長年日記]

_ [言語] プログラミング言語「ドリトル」 - Dolittle

うちに帰ったら、長女が「お父さん、プログラムって面白いね」という。

耳を疑った。

彼女は「どうせMatzの娘と言われるだけだから」とシニカルな態度で プログラミングに興味なんかぜんぜん見せなかったのに。

話を聞くと、技術の先生が、学校のパソコン室のコンピュータにドリトルをインストールしてくれていて、 それのタートルグラフィックスで遊んでみたのだそうだ。

パパート先生、ありがとう。

その他、ドリトルの関係者の皆さんにもお礼を言いたい。

ま、それ以上、興味が進んだ風ではないのだが、 とりあえずプログラミングが面白い(こともある)と 感じてくれただけで、私は満足だ。

_ [Ruby] 【CEATEC】東芝がCell上でRubyを使った家電向けユーザー・インタフェースをデモ:ITpro

前後するが、上記のような展示が行われるということで、 CEATECに参加してきた。

非常に興味深かった。まだ試作段階ということなのだが、 家電上のCell(CPUとして見るとさほど高速ではない。GPUも積んでないし)でも それなりの速度で動作していた。

また、この試作版メニューでは自作アプリケーションの登録までもできるそうだ。 実際にマンデルブロ集合を表示していた。

開発者の方とお話ししたところ、ゼロから(Rubyを知らないところから)始めて 3ヶ月でものになったのだそうだ。組み込みの「普通」を知らないので、 「それって早いんですか」と聞いたところ、「早いです。しかも生産性すごく高いです」 とのことであった。

まだ、このプラットフォームを実際に採用するというところまではいっていない のだけれども、今後に期待、というところか。

家電組み込み領域ではできるだけリソースを削るというアプローチが一般的で ソフトウェア生産性のためにリソースをおごるという発想は 受け入れられないのではないか、と少々意地悪な質問をしたところ、 Cellを採用するような家電では違う傾向が出てくるのではないか(と期待している) とのことであった。確かにそうなれば喜ぶ人は多いだろう。

このほかにも東芝のブースではCellを使った いろいろな展示が行われていた。一般的にはSpursEngineが人気のようだが、 個人的にはひっそり(?)と展示されていたCellクラスタリングとかの 方が面白かった。

有機ELなどいろいろ話題な展示もあったようだが、 興味の方向が違うので、東芝の展示だけみて帰ってしまった。

午後はIPAで用事をしてから松江に帰る。

追記

ITproの高橋さんから、別の記事を紹介していただく。

「視察」なんて偉そうだよね。


2007年10月03日 [長年日記]

_ [言語] The Transterpreter

昔、並列性を重視したコンピュータtransputerというものが存在していて、 Occumという標準プログラミング言語を採用したりして いろいろと注目されていたのだが、いつの間にかあまり話題にならなくなってしまった。 技術的にはいろいろ面白かった(らしい)のだが。

で、今回紹介するTransterpreterは、並列を意識したインタプリタ、 ということらしい。「The Transterpreter is a small, portable, open-source runtime for exploring concurrency」というキャッチフレーズ。 要するにフットプリントの小さいOccumOccamインタプリタということなんだろうか。

Windows, Mac OSX, Linuxで動作し、 LEGO mindstormのプログラミングもできるということだ。

ソースコードも公開されている。ライセンスはGPLv2。

_ 5時間以下の睡眠続け死亡率1.7倍に 7時間寝よう|Ameba News

うーむ、このところ睡眠時間はだいたい4,5時間だものなあ。 早死にするかも。

休日はけっこう寝てばかりで取り返してはいるのだが、 一説によると寝溜めはできないらしいし、 家族には不評ではある。

もう少し暇になりたい。

_ This is making me angry

ISO-8859-1とUTF-8の混同により、ニュースリーダー(slrn)で文字化けが発生して怒っている、という話。

我々がここ30年苦しんできたことが、西洋では今、再現されている。

_ [Ruby] Ruby on Rails Development: Justify Your Choice of Ruby on Rails: Articles and Links

Ruby on Railsの採用を正当化する(ボスに説明する)ための 参考になるリンク集。ぜんぶ英語だけど。

「だって気分がいいんだもの」とか、 「話題の技術だから」という以上の理由付けが必要な時のために。


2007年10月04日 [長年日記]

_ [Ruby] Skype開発ミーティング

スポンサーが居なければ、そうそう毎週東京に出かけるわけにもいかないので(というか、できるものなら出かけたくない)、Skypeを使って開発ミーティングをしてみる。

ネットの品質が悪いのか結構ノイズが乗る。 test callではきれいに聞こえるんだけどなあ。 あと、私のPCの内蔵マイクではキーボードを打つ音を拾って うるさいそうなので、社内にあったマイク付きヘッドセットをつないだら ずいぶん改善されたそうだ。

今度自分用に買ってこよう。

で、「#`バーチャルネットプログラマ テオリア,(receive (_ e) (frexp 1e6) e)歳 - 開発スプリント」には、 Skypeを使った開発スプリントの注意点として「一番やってはいけないのは、ずーっと Skype を繋げっぱなしにしておくこと」とあるが、 今回われわれはあまり問題を感じなかった(私だけ?)。

これは我々が「喋りながらコーディングする不思議な人々」だったせいだろう(私だけ?)。 実際、議論してる最中にコミットしてたりするし。

今回の「ふりかえり」は

  • Skypeはネット回線品質に依存する(回線をケチるなと言うこと?)
  • ヘッドセットも用意しよう。ささだくんのところでは会議用スピーカ(マイク付き)を用意したそうだ
  • Skypeの会話は記録に残らない。この点はIRCやLingrの方がよい。
  • Wikiなどに議事録をまとめながら作業するとよい
  • ミーティングの最初でアジェンダを作る。各論に入らない

くらいだろうか。

_ [言語] p-nand-q.com : humor : obfuscating python

Pythonはひとつの書き方が強制されるので、結果として読みやすい、 とよく言われるが、難読プログラムを書くのが不可能というわけではない。 というか、禁止することが不可能なんで、 別に当たり前のことなんだけど。

以下のFibonacci数計算とか素敵

fibonacci = lambda x:map(lambda o:(map(lambda c:map(lambda l:
o.__setslice__(l[0],l[1],l[2]),([o[2]+3,o[2]+4,[o[0]]],[0,3,[o[1],
reduce(lambda x,o:x+o,o[:2]),o[2]+1]])),range(x)),o)[1],[[1,1,0]+
range(x)])[0][3:]

print fibonacci(20)

このBrainF*ck interpreterとかもなかなかだが、ちょっと不自然な難読化かもしれない。

import sys

z,x,y= "}{|}A|k{|kA|}=BE1)|BF}))|$}:~pI~/;@Go{H%{&A?|if }:~pJ"\
       "IJ-1~#>=0:GoAG@HG;o{G;%-I&{?|m,kJ,j=C?;/@~o{~D:Gl[c]("\
       ")?","G$p:%~;%~;el!]':p%break~;![':p%#<len(j):~%\n\t\t"\
       "%if c=='%while o%\n%m[k]%+=1%\t%if not %c=j[o]%-=1%sy"\
       "s.std%[0]*64000,0,0,open(sys.argv[1]).read()%if l.has"\
       "_key(c)%in.read(%out.write(chr(%=1%,o".split('%'),"HG"\
       "&%/~!#?}{;$@ABCDEFIJ"

for i in range(len(x)):z=z.replace(y[i],x[i])
z=z.split('|')
for o in range(9):
    exec("def %c():\n\tglobal k,m,o,j\n\t%s\n"%(chr(97+o),z[o]))
l={'>':c,'<':d,'-': b,'+':a,',':e,'.':f,'[':g,']':h}
i()

_ [言語] Otaku, Cedric's weblog: Erlang: the verdict

Erlangを勉強してみたけど、個別の機能は理解できるが 全体として何がうれしいのかいまいちピンとこない、という話。 実は、私も似たような感じを受けている。

Erlangを見た時の反応はかなり人それぞれで

  • これはすばらしい。「次の言語」はこれだっ
  • 関数型言語ワケわかんね

という両極端の間のどこかに収まる。

私自身は、関数型言語に苦手意識があるという背景を置いといても

  • ある種のタスクで優れた性能を出しているのは認める
  • 副作用がないのは並列プログラミングに向いているようだ
  • が、Erlangって明示的なプロセス通信のせいでいまいち「宣言的」ではないような
  • 信頼性(five nines)とかも、わかったようなわからないような
  • しかも、実際に自分で使ってみると、エラーが致命的にわからない

という理由もあって、私自身がErlangにハマることはなさそう。

が、Erlangが「素敵な言語」であることには間違いないので、 もうちょっと勉強しておきたい気はする。

『Programming Erlang』でも読むか。

_ Rails on Git: How much hype fits in 9MB? | Sanity, Inc.

RailsのSubversionレポジトリの7500以上のコミットが Gitに格納すると9Mバイトに収まる、という話。

圧縮してると言うのは聞いてたけど、そこまでとは。

あー、でも手元のRubyのgitレポジトリは272Mあるなあ。 なにか明示的に圧縮しないといけないのかな?

まあ、RailsよりもRubyの方が歴史、コミット量とも圧倒的に多いのではあるけれど。

_ [Ruby] Life is beautiful: 教えながら学ぶRuby:イテレータに片思い

まさか、「Life is beautiful」でRubyがとりあげられることがあるとは。 バブルって恐ろしい(笑)

特にイテレータが気に入っていただいたようで、ありがたいことである。 で、書籍『オブジェクト指向スクリプト言語Ruby』の中でイテレータの扱いが いまいちであることにご不満のようである。

まあ、あれはもう8年も前の本で、イテレータ(というかブロック)に 関する知見がまださほど蓄積されていなかった、ということで勘弁していただきたい。 Rubyも(私も)発展途上なので。

っていうか、イテレータは1.9での「Enumerator標準添付」+「ブロックなしメソッドがEnumeratorを返す」新機能で、また新しい境地に突入するのではないかと思う。

2.0でLazyArrayが登場したら、もっと変化するよ、きっと。


2007年10月05日 [長年日記]

_ Amazon's Dynamo - All Things Distributed

分散したDBM(のようなもの)。

実装レベルでの差異はあるが、 コンセプトとしては楽天技術研究所と一緒に考えてるROMAと 近いものがある。

やっぱりホットな分野はどんどん競合が出てくるなあ。 自分たちの考えが間違いでないことの証明であると考えると うれしいが、うかうかしてると埋没してしまうという危機感がある。

_ [言語] File based images in VW

ある時点でのメモリダンプであるイメージベースではなく、 ファイルにプログラムを書き出す(つまり、普通の言語のスタイル)の Smalltalk (Visual Works)はどうか、という話。

イメージはSmalltalkの最大の利点である(いや、最大は言い過ぎかな)と同時に、 普通のユーザが苦手とするという意味で最大の欠点でもあるので、 本当にファイルベースのSmalltalkが(入手しやすい形で)登場したら Rubyのメリットとかふっとんじゃうかもしれない。

ちょっと危機感。


2007年10月06日 [長年日記]

_ [Ruby] Giles Bowkett: What I Learned From X That Made Me A Better Programmer In Y

「Xから学んだことがより良いYプログラマーになるため役立ったこと」。 で、XとYにいろんなものを入れる、という話。

で、YにRubyを含むものと言えば

X = LSD; Y = Ruby metaprogramming
Sometimes things which seem to make you smarter really do.
X = marijuana; Y = Ruby metaprogramming
Sometimes things which seem to make you deep really make you silly.

なんだか麻薬ばっかり。そんなに常習性があったかしら。


2007年10月07日 [長年日記]

_ [教会] 労働

日曜学校は「労働と個人の責任」。 働くことの大切さについて。

旧約聖書的には「労働は呪い」だったりするのだけれど、 まあ、それでも楽しくやることは大切だったりする。


2007年10月08日 [長年日記]

_ ユメのチカラ: blogのバックアップ

Matzにっきでも、先日2006年2月分がふっとんだ。 データファイルがサイズゼロになっていたのだ。

以前にも同じような目にあったことがある。 tDiaryのせいか、Rubyのせいか、それともmod_rubyのせいかは 全然わからないけど(Rubyのせいなら人を責められないな)、 ごくまれにそういうことが起きるようだ。

で、バックアップを取り出そうとしたが、見つからない。 そういえば、バックアップは hydrogen.ruby-lang.org においてあったんだっけ。 が、このマシンはずいぶん前からマシン不調のため停止していたのだった。

このために久しぶりに電源を入れ直したら、ブートしない。 どうも本格的に駄目になってるようだ。

ディスクだけでも取り出して、とも思ったが、 コネクタの形状が見たことのないもので、とりあえず 普通にはつなげそうになかった。HPのサーバマシンなんだが。

というわけで、今でも2006年2月分のデータは失われたままなのであった。

残念。

_ [言語] Nati Shalom's Blog: Why most large-scale Web sites are not written in Java

なぜ多くの大規模サイトでJavaが使われていないのか、という話。

Flickr, Youtube, Digg, MySpaceなど(英語圏で)著名な 大規模サイトのほとんどはLAMPを使っていて Javaメインで開発しているところはあまり見かけない。

それはどうしてだろうか、という問いかけ。

おそらくは、この「使われていないリスト」のエントリには 「Web2.0」っぽいサイトが圧倒的に多く、 そういうところでは立ち上げ時に「硬さ」よりも「早さ」や「安さ」が重視される 上に、ユーザが増えてきても「じゃあ、Javaで書き直し」という話にはならないから ではないだろうか。

コメントでも「ビジネスロジックが重視される航空会社や銀行ではJavaが多い」という 指摘もある。


2007年10月09日 [長年日記]

_ [言語] Is Language Syntax Important? - Beautiful Code

文法の善し悪しはプログラミング言語にとって重要か、という話。 私の意見は聞くまでもないだろう。

ほとんどのプログラミング言語は任意のアルゴリズムを記述可能であるので、 「できること」というベースでの差はほとんどない。 ある言語にできて、別の言語に(理論的に)不可能ということは まずない。あるのは「コスト」とか「現実的か」とかいう話だ。

ので、プログラミング言語の差別化はいきおい二方向に特化される。

  • より多くの機能を(組み込みまたはライブラリとして)提供する
  • より良い文法を提供する

もちろん、このふたつは排他ではないのだけれど。

で、Rubyにおいては前者は「Cで書かれたライブラリを取り込む」という戦略で 対応しようとしている。RubyのためのCエクテンションは(他の言語と比較して) 書きやすいし、そのためCという「巨人の肩に乗る」ことが可能になっている。 inlineとか使えばほんとに簡単だ。

で、私の主な関心は後者にある。 ささいな文法の違いがプログラマ(要するに「私」)の心理に与える影響こそが 私のテーマであり、関心事である。

もっとも、最近では純粋な文法ではなく、 IDEなどツールを通じた使い勝手を考える動きが登場している。 心理的な影響と言う観点からは等価なのだが、 「オールドタイプ」としては若干寂しい気持ちもある。

_ 島大学長と会見

するような身分になるとは、数年前には思いもしなかった。 県と強調した産業振興や、Rubyを軸とした人材育成などについて話し合う。


2007年10月10日 [長年日記]

_ [言語] InfoQ: アノテーション・ハンマー

Javaのアノテーションの応用例。

「ハンマー」というのは「ハンマーを持っている人にはすべてが釘に見える」ということわざから。 使いすぎは禁物、か。

Pythonの例を見ても確かにアノテーションはいろいろと応用範囲が広いんだけど、 なんだかRubyに導入する気にならない。 何故かと改めて考えると、たぶんattr_readerみたいなDSLっぽい 記述で十分だと考えているからなんだろうなあ。

アノテーションは一種のコメントのように見えるのに 実はプログラムの一部であるというのが気に入らないのかもしれない。

_ [言語] Writing An Hadoop MapReduce Program In Python - Michael G. Noll

Hadoopを使ってPythonでMapReduceを書く。

っていうか、普通に標準入出力を使った フィルタプログラムになってるな。これでMapReduceになるのか。 興味深い。

_ [言語] Grass the grass-planting programming language

変な言語には限りがない。

Print "w" to standard output.

wWWwwww

_ 世界一の成金に仕える技術者 - 新誠一の「言いたい放題」 - Tech-On!

日本は技術者を軽視しているが、 実際には技術者がいなければ社会が成立しないのだから...。

どうする、という話。

偉い人がこのことを認識してくれればいいのだけど、 どうも技術者は道具だと認識されているような。


2007年10月11日 [長年日記]

_ 「日本一大きい会社名」はエクサバイト - 一般システムエンジニアの刻苦勉励 [ITmedia オルタナティブ・ブログ]

私が前に勤めていたのはゼータビッツ(Zetabits)と言う名前だったのだが、 この名前は実はZetta Bitsから来ていることは知られていない。 Zetta BitsならExa Bytesよりもずいぶん大きい。

_ [言語] jijixi's diary - Ruby に比べて Python の面倒なところ

そうなんだよねえ。

  • self 地獄
  • return 地獄
  • 式地獄 (式と分の区別)
  • import 地獄
  • 正規表現地獄 (正規表現リテラル)
  • インデックス地獄 (IndexError とか KeyError)
  • 文字列地獄 (式展開)

とはいえ、Rubyが一方的に勝利というわけでもない。

jijixi's diary - Python に比べて Ruby のちょっとなんとかしてほしいところ

  • call ウザい
    • 「proc.call」という表記。1.9では「proc.()」と書ける予定。一部で不評だけど。
  • 関数内ローカルな関数が定義できなくて死んだ
    • これは対応予定なし。Lisp2系列はこのへんが難しい
  • 既存のメソッドから Proc が欲しくなったときに死ねる
    • hoge.method(:fuga)。滅多に使わないものは長く
  • 文字コードに関する問題がグローバル変数によって制御されてるのって死ねる
    • 1.9のM17Nで(ある程度)対応
  • ペア (要素二つの配列) の配列からハッシュを作らせてください
    • 最近、Hash[hoge] で、できるようになった
  • 内包表記はたまに欲しい気がするときがある
    • 個人的に嫌い。メソッドチェーンで間に合うような。
  • 名前空間の分離に神経使うのが死にそう
    • これは2.0で対応したい
  • class Hoge::Fuga::Piyo とか書いたときに Hoge や Hoge::Fuga が未定義でも uninitialized constant じゃなく自動的に定義してくれると嬉しいのに
    • 以前、対応してみたけど、あんまり嬉しくないかも

2007年10月12日 [長年日記]

_ [Ruby] 中京大学公開講座 「世界に広がるRuby」 〜生みの親が語る〜

出雲空港から伊丹→新大阪経由で名古屋。

伏見の駅で降りてから、会場(科学館)まで歩く。 ついでに前の会社のあるビルに寄ってみる。 聞くところによると、前の会社はもう自社開発をやめてしまって 方針が変わってしまったそうだけど、 会社そのものは変わらずに同じビルにあった。懐かしい

で、「世界に広がるRuby」について、いろいろと話す。 中京大学の公開講座は別に技術に限ったことではないそうで、 宝石の話だと思って事務局に問い合わせてきたご婦人もいらっしゃったらしい。 さすがに会場には宝石のRubyのことだと思って参加した人はいなかったと 信じたいけど。

スライドはこちら

_ [OSS] 2007年度日本OSS貢献者賞発表、YARVの笹田氏など4名 - ITmedia エンタープライズ

めでたい。ささだくんは開発者として知られているけれど、 るびまなどコミュニティ活動での貢献も評価してのこと。

なんでそんなことを知ってるかというと 過去の受賞者ということで審査員を引き受けてたから。 公開前は黙ってたけど。

選考は大変だった。4人という人数は決まっていたので、 たくさん(50人以上いた)候補から絞りこむのが大変で。 結局、来年また考えようと先送りされた人が何人もいた。


2007年10月13日 [長年日記]

_ [言語] RubyとPerlとPHPと…、どの言語が最も「愛されて」いるか? - Love/Hate Ratio

昨日の中京大学の講演で「Love/Hate Ratio」について語ったら、 改めて計算してくれた人がいる。

で、その結果は以下のような感じ。

言語1a 1b 2a 2b 3a 3b 4a 4b Love/Hate Ratio
Ruby 10800 11700 914 9850 31403970 1501737.189
Lisp75852870105650262082161494.536
Python94209860934011600682054303163884.356
Smalltalk19120020603020861166473.806
Perl14500705156009167060493080114102.859
JavaScript9491170541042801890148013009411.773
Java813230009552080013900506800136001.605
C652065507956511490012500245018500.766
PHP85275966865242605170111011800.324

ただし、

1a. 「”i love x” programming」1b. 「”i love x” language」
2a. 「”i like x” programming」2b.「”i like x” language」
3a. 「”i don’t like x” programming」3b.「”i don’t like x” language」
4a. 「”i hate x” programming」4b.「”i hate x” language」

として、likeはloveの半分とカウントしたもの。

以前の結果ほど 極端ではないが、それでもRubyが首位のようだ。

愛されてるねえ。

_ 楽天タワー - カレーなる辛口Javaな転職日記

楽天タワーでカフェテリアが無料、とか言う話。

Matz氏の意見も反映されているんだろうか.

そんなことはない。

私の肩書きは楽天技術研究所のフェローであって、 技術研究所の研究を(一生懸命)お手伝いはしているが、 楽天全般にアドバイスをするような立場ではない。

三木谷さんにもまだ会ったことはないし。会う約束はあるけど。

「技術の楽天」を構築するお手伝いをするつもりはあるが、 経営方針とかとは関係ない、本当に技術に関する話だけ。

_ [OSS] Seasarはなぜ日本から巣立たない?

ひがさんって前にも似たようなことを書いてたよね、確か。 日本にこだわりがあるんだなあ。

私は自分が住む場所としての日本とか、特にその田舎とかにはこだわりがあるけど、 逆に自分のソフトウェアが使われる場所に国境を導入するのは馬鹿馬鹿しいと思っている。 その辺は認識が真逆だね。

で、海外での人気がなければ、今のRubyはなかったと思うし、 今のRubyがなければ、私の今の(比較的幸せな)生活も危うかっただろうから、 それを「舶来信仰」なんてくだらないものにこだわって 海外進出に消極的なのはよくわからないな。

「舶来信仰」というのがあるらしいことは否定しないし、 それがくだらないものだとも思うけど、 その「くだらないもの」に「ぶちこわす」ってこだわりも また形を替えた「舶来信仰」なんじゃないかなあ。

むしろ逆に利用してやることで 「くだらないもの」に縛られてる人たちをあざ笑ってやるってのが私の意識なんだけど。

ちゅーか、そんなことにこだわってないで そうそうに海外進出を考えたら? (余計なお世話)

商用ソフトウェアはともかく(そこは、MIJSの人たちが苦労してるけど) オープンソースソフトウェアにとっては、 海外進出って言ってもそんなに難しいことじゃないんだから。

私でさえできたんだし。


2007年10月14日 [長年日記]

_ [教会] 総大会

先週ユタで開かれた総大会のビデオを衛星中継で見るために米子へ。

出張から帰ったばかりで疲れていたせいか、 午後の部あたりではかなり集中力が途切れてた。 っていうか、私の集中力はいつも長持ちしないんだけど。

集会終了後、実家に。 両親としばらく会えないので、この機会に親族集まろうということで。 楽しかった。

あと、両親が先週までアメリカに行っていた時の写真を見せてもらう。 あちこちを観光してて楽しそうだった。 私もアメリカにはときどき行くけれど、いつも最初から最後まで仕事だものなあ。


2007年10月15日 [長年日記]

_ [Ruby] RubyForge: RubyTraits: Project Info

Rubyのモジュールを足したり掛けたりするライブラリ、RubyTraits。

RubyTraitsはRubyのモジュールをTraitsのように振る舞うことができるようにするライブラリ。 +演算子によるモジュールの合成や、モジュールから特定のメソッドを取り除くことが 簡単にできる。

Ruby2.0に向けて、モジュールの働きを見直そうと考えているので、 このような試みとその与える影響については注意深く観察していきたい。

_ [OSS] My Lisp Experiences and the Development of GNU Emacs - GNU Project - Free Software Foundation (FSF)

LispとEmacsの開発についての(Stallmanの)歴史。

なかなか直接昔話を聞く機会はないので、 このような一次資料は大変貴重である。 まだざっとしか読んでいないので、あとで一生懸命読むことにしたい。

_ [言語] Chris's Wiki :: blog/programming/LanguageNiches

プログラミング言語分類論。

プログラミング言語は大きく分けると3つに分割されるように思われる。

  1. 強い制御と静的な型。C, C++
  2. 緩い制御と静的な型。Java, C#
  3. 緩い制御と動的な型。Python, Ruby

この場合の「緩い制御」とは、GCなどによっていちいち細かい制御をする必要がないと言うこと。 理論的には「強い制御」と「動的な型」という組み合わせもありえるが、 この二つはやや矛盾しそうなので除いている。

さて、このように分類すると各領域で成功できる言語はいくつかに限られるのではないだろうか。 ある言語が、同じ領域ですでに成功している言語を押しのけるのは難しい。

最近流行(?)の関数型言語であるが、 結局(2)の分野に分類されるので(筆者の意見では)成功しないかもしれない。

また、こういう観点から見るとGoogleがその使用する言語を C++, Java, Pythonに限定していることは、各領域から一つずつということで、 実は非常に合理的であることがわかる、という話。


2007年10月16日 [長年日記]

_ アイデアに著作権なし……それでも「いいめもダイエット」サービス停止 - ITmedia Biz.ID

どうなんだろうなあ。 「著作権」って言葉が乱用されるのはいつものことだが、 これはその中でもひどい方だと思う。

百歩とか千歩とか譲って岡田氏になんらかの権利があるとしても それは著作権ではないよね。だってアイディアには著作権はないし、 それを言うならレコーディングダイエットそのものが彼のオリジナルとは言いがたい。

「レコーディングダイエット」の商標とってるのかどうか調べていないけど、 それもちょっと怪しい感じ。

あとは宣伝文句に名前が使われてたということで「氏名表示権」とか 「パブリシティ権」とかかなあ。あまり定着している権利ではないみたいだけど。

いずれにしても権利を振り回していいことはなにもないと思うんだけど。

_ [Ruby] Life is beautiful: オブジェクトを次々に渡す「Ruby Filter」ってどうだろう

オブジェクトを渡すというのは前から考えていたのだが、 evalできる表現にしてUNIX pipeでつなげるというのは ちょっと「コロンブスの卵」。

私自身はRuby自身でパイプをつなげるというイメージだったのだけど、 コマンド(プロセス)間をパイプでつなげるというのは シェルの得意技なんだから、それを活用する方が自然だよね。 脱帽。

_ [Ruby] 開発ミーティング on Skype

二回目のSkypeによる開発ミーティング。

なんかいつも「ほぼ完成」という脳内イメージを持っているのに 実際に議論を始めるとぼろぼろ穴があいてるというのはどうなのかなあ。

「見積もりはいつも甘い」と根は同じ気がする。 楽観的すぎるのかな。


2007年10月17日 [長年日記]

_ [Ruby] 「刑務作業でRuby」はどうなったのか−−秋の夜の幻 - ITmedia エンタープライズ

美祢刑務所で刑務作業としてRubyでの開発という話はどうなったか、 という後日談。実際にははじまってない、とのこと。

話題性は十分であったが、 実施会社がRubyの技術者を抱えていないとか、 開所直前でも実際に契約が結ばれていないとか(現時点でも契約されていない)、 いろいろと無理があったようだ。

まあ、着想が悪いとは思わないので、そのうちどこかで実現したら面白いよなあ。

_ 「ダウンロード違法化」「iPod課金」──録音録画補償金問題、意見募集始まる - ITmedia News

パブコメ募集開始。

この辺でぐだぐだ語っていても役人の耳には入らないので ちゃんとパブコメ書く必要があるよなあ。

行動重要。


2007年10月18日 [長年日記]

_ [Ruby] Don't learn Rails! - figuring out computer science

「Railsを勉強してはいけない」という話。

現在の状態はドットコムバブル崩壊前夜を思い起こさせるので、 今からスタートアップしようとして Webフレームワークを学ぶのはタイミングが悪いという話(らしい)。

確かにバブルっぽい雰囲気は漂っているし、 そう遠くない未来にバブルが崩壊することは容易に予測可能だけれど、 とはいえ、特定の企業の趨勢はともかく、 Webそのものが衰退することは考えられないので、 「勉強してはいけない」ということはないんじゃないかなあ。

が、(特にRuby周辺は)バブル崩壊に備えて、 今のうちに(経験とか知識とか)貯蓄しておくのがよいと思う。

_ ソート処理時間、選ぶアルゴリズムでこんな差が! − @IT自分戦略研究所

O記法からアルゴリズムごとのスケール変化とかについての解説記事。

いつか「プログラミングのオキテ」でもこのようなネタで書こうと 思ってたんだけど、先を越されちゃったなあ。

_ オフィスはSkype 「ギリギリ狙う」5人のベンチャー「ロケ☆スタ」 (1/2) - ITmedia News

Skypeをベースにコミュニケーションしているベンチャー。

最近、我々もSkypeを使って開発コミュニケーションしたりしてるんだが、 どうにもノイズが乗ったり、通話が途切れたりしてあまりうまくいかない時も多い。 やっぱ参加者の回線品質のせいなのかなあ。


2007年10月19日 [長年日記]

_ [Ruby] 「Rubyで開くオープンソースビジネス」@三鷹産業プラザ

というわけで、三鷹まで出かけていって講演してきた。

ちょっと客層が読めなかったので、あまり技術に立ち入らないで 「オープンソース」を主眼にした内容を用意したんだけど、 実際にはスーツ族が半分以上だったようなので ちょうどよかった(でもちょっと難しめだった)くらいのようだ。

客の入りもそれなりに。

講演終了後は楽天でミーティングなので送ってもらった。 おみやげまでもらって申し訳ないようだ。

_ [言語] Labix Blog >> Python's os.environ

Pythonのos.environが環境変数のコピーした辞書にすぎず、 要素を取り除いても環境変数が残ってしまう、という話。 また、それを修正するコード。

Rubyではどうだっけ。

ENV["foo"]="bar"
system "echo $foo"  # => bar
ENV.delete "foo"
system "echo $foo   # => ""

この問題はないらしい。

_ [Ruby] InfoQ: Rubinius: Inside the Bytecode Compiler and Foreign Function Interface

Rubiniusの拡張方法。こんな風にするのか。

一方、Rubiniusは現在のRubyの拡張ライブラリとのAPI互換性も 維持すると公言している。バイナリコンパチかどうかは聞いてないけど(たぶん違う)、 再コンパイルだけで拡張ライブラリをそのまま利用できるのであれば それはそれですごいことだと思う。

_ らばQ : 著作権はいったい誰を幸せにするのか?

著作権(の現在の運用)は幸せにするべき人を幸せにしていない、という指摘。

お金のある人が権利を搦めとってしまうのは別に著作権に限った話ではないが、 もうちょっとなんとかしたいところもあるよね。

しかし、それはどんなものなんだろう?

少なくとも保護期間延長ではないはずだ。 現在でも保護されていないというのだから、延長しても意味はない。

結局は権利強化よりも、不用意な権利譲渡を行わないという 当たり前の権利運用につきるような気がしてきた。 不注意なものが損をする世の中は不幸だけれど、 自己防衛も必要だと思う。

我々プログラマも似たような話にならないとは限らないよね。

ベテランのアニメーターも老後の不安を抱える。人気アニメ「あしたのジョー」の作画監督として有名な金山明博さん(68)は「40年近くアニメの世界にいたが、契約社員として働くことが多く、退職金ももらえなかった」と振り返る。

体調を崩して59歳で一線を退いた。今は月12万円の年金が頼りだ。「同年代の業界仲間には生活保護を受けたり、ホームレスになった人もいる。こんな環境で日本のアニメはいつまで持つのか」と心配する。

これをプログラマに置き換えたら、20年後のフリープログラマの姿でないと 誰が言えようか。


2007年10月20日 [長年日記]

_ [Ruby] Rubyが地方で愛される理由 − @IT

昨日の三鷹での講演が記事になっている。

「Rubyは地方格差を跳ね返す原動力(になったらいいなあ)」の部分を ことさらにとりあげたもの。

地域に関係ないネット上のリソースである オープンソースソフトウェアが地域振興の材料になるというのも ちょっと奇妙な話なのであるが、 基本になる人と人との直接的な関係を強化する というのは逆説的ながら秀逸な発想だと思う。

まあ、前例があるわけではないので、「絶対にうまくいく」 みたいな手放しでほめるわけではないが、 直感的に考えるよりは見込みがありそうだし、 少なくとも勇気のある行動だと思う。

_ 著作権問題:条件付き賛成 - 妄想科學日報

著作権問題の解消は「盗用の解消」であるが、 それは一般的に思われるような「(再)利用の禁止」ではなく、 「再利用を盗用扱いしないこと」によるのではないか、との話。

ただし、原著作者の名誉を尊重する限りにおいて。

私はこの意見に賛成する。

他人の仕事を自分のものと偽るのは良くない。 それはいかなる意味でも「盗用」である。

では、他人の仕事をその人のものとして認めつつ、 その上に更なるものを構築したら?

私はそれを肯定する。社会的にも肯定されてほしい。 なにかそれを支援する方法があるか。 立法が必要か。 想定される問題はなにか。

_ [言語] bbq - nth iteration - Ignorant Language Comparisons Considered Silly

言語比較は慎重に、という話。

だいたい比較をする時には、一方に詳しくてもう一方に疎いとか、 一方の最新情報には通じているけどもう一方の情報は古いとかになりがちで、 公平かつ有益な比較は難しい。ならしない方がいいんじゃない、というのが この著者の主張。

まあ、そういうこともあるかも。 でも、議論から生まれる新しいものもあるわけで、 反論できる余地があるなら、それはそれでいいんじゃないかと、 私は思う。


2007年10月21日 [長年日記]

_ [教会] HT

今日はHTの予定であったが、 先方もまたHTで都合が悪いということで中止。

お忙しくて。 あんまり時間が取れてないことが申し訳ない。


2007年10月22日 [長年日記]

_ [Ruby] UK STUDIO - iPod touchでRubyを動かす

iPod touchでRubyを動かすための手順の詳細。

こういうのを見るとiPod touchほしくなるなあ。

もっとも携帯音楽プレイヤーを使わない私には 厳密にはPDAとしては使えないiPod touchは少々合わないのだが。

_ [Ruby] Rubyの生みの親まつもとゆきひろさんインタビュー

ドリコムアワードの件で松江に来ていただいた時の インタビュー。

ドリコムアワードの審査は結構大変だったのだが、 やはり「私ならでは」という基準を期待されているのだろう と思って他の人とは違いそうなものを選んだのだった。

_ [Ruby] 日本経済新聞社訪問

日経に母校(大学)の先輩がいらっしゃって、 その方がお話ししたいということで、日本経済新聞社を訪問。 子会社のBPには日ごろからお世話になっているけど、 日経本社ははじめて。

いろいろな話を聞かせていただく。 また、プログラミング言語周辺の(偏見の混じった)意見も述べさせてもらう。

貴重な時間であった。

_ [Ruby] 島根県企業立地セミナー

その後、同じく東京駅近辺(パレスホテル)で、 島根県企業立地セミナーで講演。 微妙に遅刻して、スタッフの方に心配をかけてしまう。 ごめんなさい。

島根県はもともと製造業を対象に企業誘致活動を 継続してきていたのだが、今年、知事が代わったこともあって、 IT系企業に焦点を絞った活動をするのだそうだ。 今までのコネクションが少なくどうなることかと思ったが、 いざ会場まで出かけてみると予想以上に盛況であった。 めでたし、めでたし。

で、島根県知事や松江市長が並ぶ中で、 なんかその辺のプログラマが偉そうにしゃべらなくてはならないと言うのは それなりに恐れ多いことである。

あ、島根県(と松江市)のIT企業誘致政策は、かなり厚遇で、

  • 家賃免除(県から半額、市から半額)
  • 電気代半額免除
  • 通信費(ネットワーク接続費)補助
  • 航空運賃半額補助

など。なんか小規模な企業ならほとんど負担なしに進出できるような..。

あと、私に続いて、 県の県境者の人がバーチャルリアリティ研究の成果を報告していらっしゃった。 こちらはずっと地に足がついた(金になりそうな)話で 実際に事業がいくつか進んでたりするようだ。 意外な技術が蓄積されていると。

あ、Rubyの事業も発展中ですよー。

このイベントについては、ITProに記事が出ている。

懇親会も大変に盛況で、あやうく飛行機を逃すところだった。

_ [Ruby] 「国内最大規模」,カカクコムがRuby on Railsで月間380万ユーザーの「食べログ.com」を全面再構築:ITpro

で、講演でも引用し、ちょうど今日、正式発表になったのが、これ。

カカクコムの「食べログ.com」が Ruby on Railsに移行完了という話。

実は、食べログの移行は8月に行われる予定だったのだが、 性能その他で問題が発生し、途中では「Railsはやっぱりやめようか」という話まで出ていたとか。 その後、うち(NaCl)とスマートスタイルが お手伝いしたこともあって、期待されていた性能を達成して、 10月22日運用開始ということになったとのこと。

ちょうど懇親会にいらっしゃっていたスマートスタイルのCTOにお話をうかがったところ、 MySQLのチューニングが大きな課題であったとのこと。 スケールするシステムは、それなりにノウハウが必要であるという ある意味あたり前のことが、また明らかになったということか。

_ 新刊「ウェブ時代をゆく」11月6日刊行 - My Life Between Silicon Valley and Japan

4480063870 梅田望夫さんの新作『4480063870』が刊行されるという話を聞く。

一番驚いたのは目次に私の名前が登場していること。 えーっ。

目次
序章 混沌として面白い時代 
一身にして二生を経る/オプティミズムを貫く理由/「群衆の叡智」元年/グーグルと「産業革命前夜」のイギリス/学習の高速道路と大渋滞/ウェブ進化と「好きを貫く」精神/リアルとネットの境界領域に可能性/フロンティアを前にしたときの精神的な構え
第一章 グーグルと「もうひとつの地球」
営利企業であることの矛盾/グーグルはなぜこんなに儲かるのか/奇跡的な組み合わせ/グーグルの二つ目の顔/「もうひとつの地球」構築の方程式/「経済のゲーム」より「知と情報のゲーム」/利便性と自由の代償としての強さを
第二章 新しいリーダーシップ
人はなぜ働くのか/まつもとゆきひろが起こした「小さな奇跡」/オープンソース成功の裏には「人生をうずめている人」あり/ウェブ2・0時代の新しいリーダー像/ウィキペディアのリーダーシップ/「知と情報のゲーム」と「経済のゲーム」の間に起きる齟齬/事業機会を失ってもコミュニティの「信頼」を/なぜネットでは「好きなことへの没頭」が続けられるのか/良きリーダーの周囲に良き「島宇宙」ができる/総表現社会参加者層の台頭
第三章 「高速道路」と「けものみち」
高速道路を猛スピードで走る少女/日本のシステムで息苦しい思いをしている人のために/「高く険しい道」をゆくには/「見晴らしのいい場所」に行け/高速道路を降りて「けものみち」を歩く/「五百枚入る名刺ホルダー」を用意しよう/「流しそうめん」型情報処理、つながった脳、働き者の時代/「けものみち力」とは/正しいときに正しい場所にいる
第四章 ロールモデル思考法
ロールモデル思考法とは何か/なぜ「経営コンサルティング」の世界に進んだか/ロールモデルの引き出しをあける/「十九世紀初頭の新聞小説」とブログ/日本の若者を応援するときのロールモデル/自分の志向性を細かく定義するプロセス/ブログと褒める思考法/生きるために水を飲むような読書、パーソナル・カミオカンデ/行動に結び付けてこそのロールモデル思考法
第五章 手ぶらの知的生産
知のゴールデンエイジ/世界中の講義・講演を瞬時に共有できる時代/十年後には「人類の過去の叡智」に誰もが自由にアクセスできる/手ぶらの知的生活/これからの知的生活には資産より時間/ネットは知恵を預けると利子をつけて返す銀行/「文系のオープンソースの道具」が欲しい/群衆の叡智を味方につける勉強法/ネット空間の日本語圏を知的に豊穣なものに
第六章 大組織VS.小組織
情報共有と信頼/やりたいと思う仕事に自発的に取り組む/情報共有と結果志向型実力主義/有事には情報共有を前提とした組織になる/小さな組織は情報共有で強靭になれる/小さな会社で働き、少しでもいい場所に移ろう/「三十歳から四十五歳」という大切な時期を無自覚に過ごすな/自らの内部にカサンドラを持て/「古い価値観」に過剰適応してはいけない
第七章 新しい職業
「新しい職業」と「古い職業」/「新しい職業」の誕生を信じる人は「ウェブ・リテラシー」を/オープンソースが生んだ新しい「雇用のかたち」/「志向性の共同体」とスモールビジネスの経営/スモールビジネスとベンチャー/ビル・ゲイツの後半生を徹底肯定する/世界の難題の解決にネットが本格的に利用される時代
終章 ウェブは自ら助くる者を助く
人工国家に似た「もうひとつの地球」ができれば/より求められる「自助の精神」/サバイバル優先、すべては実力をつけてから
あとがき

「小さな奇跡」って、そんなの起こしたことあったっけか。


2007年10月23日 [長年日記]

_ ユメのチカラ: 開発工程を別々に担当してはいけない

設計と実装を分離してはいけないという話。

インハウスサービスを実装するところでは当然そうだろうし、 サービスプロバイダも同様だろう。

結局は、クライアントから一次受けが仕様を決めて設計し、 下請けに流すという産業構造がこの非効率を生んでいるということだろう。 しかし、非効率を許容できていた時代は過去になりつつある。 日本のIT産業は相当構造改革しないと生き残っていけないかも。

壊滅的な打撃を受ける前にゲームのルールが変わりつつあることに気がつけばいいけど。

_ [Ruby] まつもとゆきひろ×丸山不二夫:RubyとJavaのキーマンが考える、技術者が世界で活躍する条件 - ITmedia エンタープライズ

MIJSのフォーラムで丸山先生と対談します。

丸山セミナーの講師を務めたことはあっても、 時間をとって先生と話す時間はなかったので、 楽しみである。

_ 引っ越し

引っ越した。

前のうちには3年ほど住んだか。

今度のうちは前のうちから100mくらいしか離れていない。 さらに高いので洪水の心配はなさそうだ。

とうぶん段ボール箱に埋もれた生活をしなければならない。 さっそくテレビのアンテナ線が見つからない。 他にもいろいろ見つからないものが多い。


2007年10月24日 [長年日記]

_ [Ruby] Ruby認定試験対策問題

うちの会社の若い人たちが作ったRuby技術者認定試験対策問題集。

実際に試験を作っている私たちは一切タッチしていない(実は見てさえいない)し、 これが実際の試験にどれだけ近いのか言及することはできないけれど、 問題を作っていろいろと考えるのは悪いことではない、と思う。

聞くところによると、比較的素直な問題だそうで、 実際の試験と同じような方針なのかもしれない。

おっと、これ以上は語れない。

_ 東京出張

東京へ。取材を受ける。

_ 三木谷さんとミーティング

夜は三木谷さんと初遭遇。 後、元スクエアの鈴木さんとも。

食事しながらネットがらみでいろいろと話が盛り上がる。 が、プログラミング言語関係の話はあんまり出来なかったなあ。

  • 三木谷さんは私とほぼ同世代
  • 私の出身地(米子)へ訪問経験あり
  • かつCでのプログラミング経験もある

というのが、今回得たトリビア。

ごちそうさまでした。


2007年10月25日 [長年日記]

_ 仙台講演

東京泊。朝イチで仙台へ移動。意外と近いのね。

実は東北は始めてである。 学生時代は北関東にいたんだけど、「南東北」とか自称していたのにも かかわらず、東北方面に移動する機会はついぞなかった。 一番北で「袋田の滝」(茨城・福島県境)くらいか。

就職してから北海道に行く機会はあったんだけど(今年も旭川に行ってるし)、 東北はなかなか縁がなくて。

で、今回は、情報化月間の一環で仙台講演を依頼された、というわけ。 「世界が認めたRuby〜エンタープライズに広がるアジャイル開発手法」 なんてテーマで話をしたのだが、 私が「エンタープライズ」とか「アジャイル」とか語るのはどうよ、 と自分でも思わないでもないので、やや自虐的なネタが含まれたものになった。 いつものことか。

で、イベントの最後までいたら、新幹線の乗り換えなど思ったより時間がかかり、 羽田からの飛行機に乗り遅れた。数分遅かった。ぐすん。

しかも、何件問い合わせても、もうホテルがどこも一杯で泊まれず、しかたがないので 前から一度見てみたかったネットカフェで泊まることにする。

_ ネットカフェ難民

そもそもネットカフェがどこにあるのか というところから探さないといけない。 土地勘がないのでわざわざ秋葉原まで戻り、 某ネカフェに宿泊。

ネットワークが使えたのはありがたいのだが、 やはり狭い。前にカプセルホテルに泊まった時も そう思ったんだけど、ネタとしてはともかく 何度も泊まるようなもんじゃないよね。

_ [言語] Chicken Typing Isn't Duck Typing

動的型の言語でもisaとかinstanceofとかでクラスチェックをしちゃうと duck typingではなく、柔軟性も低いのでやめた方がよい というのは、そろそろ常識として定着してきたと思うけれども、 respond_toでメソッドを持っているかどうかチェックするのも duck typingとは言えない、という話。

このエントリの著者Rick DeNataleは、そういうのを「chicken typing」と呼んでいる。


2007年10月26日 [長年日記]

_ 納車

一日遅れで米子空港に到着。

帰りにディーラーによって、新しい車を受け取る。

しかし、家、買ったのと同じ時期に車を買い替える必要になるとは、 出費は重なるものだ。車の方は型落ちの中古車だとは言え、 もうちょっと乗るつもりだったんだけどなあ。

今度は日産リバティー。スズキ→三菱→マツダ→日産と来たことになる。 排気量が増えた(1800cc→2000cc)ので燃費が心配。 ガソリン代は上がる一方なのに。

_ [言語] 10%-3についてRuby-mathを探ってみた - じゃばてな

Rubyにおける「10 % -3」の値が、CやJavaと違う、という話。

が、PerlとPythonは両方ともRubyと同じなんだよね。 RubyはPythonに合わせたように思う。

なんでPythonとCやJavaが違うのかはよくわからない。 なんか理由があるのかな。

まあ、Rubyの場合、remainderやmoduloメソッドがあるので、 気になる時には明示的にそれらを使うという手はある。

_ Welcome to Hadoop!

Javaによる分散システムHadoop。 分散ファイルシステム上でMapReduceを実現するというGoogleキラー。 いや、killは無理だろうけど、 少なくとも「あちら側」で閉じておらず、オープンソースなのは嬉しい。

  • スケーラブル
  • 経済的
  • 効率的
  • 高信頼性

が特長。楽天で作ってるのも、この辺を目指したい。

こちらはC(or C++)とRubyの組み合わせで。

_ 常識を疑ってみる - ローンで家を建てる事 - 代替案のある生活 [ITmedia オルタナティブ・ブログ]

共感。

金利は眠らない、疲れない、休まない。常に増え続ける。 ので、蛇蝎のように借金は避けよ、というのが人生訓。

じゃあ、なんで家買ったかっていうと、いろんな事情で所持金の範囲内で買える 物件があったから。以前「車をいつも現金で買う」って言ったら、 変な顔されたけど(うちのはいつも中古車だけど)、 「家も現金で買った」って言ったら信じられないような顔をされた。

これも中古だけど。

まだ、箱だらけ。どこになにがあるのか見つからない。 特に資料とか、細々としたものは、全然わからない。


2007年10月27日 [長年日記]

_ [Ruby] Ruby公式ロゴ決定

Ruby正式ロゴを決定した。200以上の応募がある中いろいろ悩んだ末の決定。

デザインには素人なので、難しい判断であった。 とはいえ、視認性の点などからちょっと手を入れる必要がありそう。 地の色と宝石の色が近いので「モノクロで判別しにくい」という 指摘がありそうだが、そこはそれ、モノクロ版も用意している。

ただ、ruby-talkメーリングリストでは評判が悪く、 正直、かなり凹んでいる。

たしかに「Programming Language」の 部分も含めるとデザインとして使いにくいんのは認めるけど、 モノクロ版みたいに、文字の部分を取り除いて取り出すと そんなに悪くないと思うんだけどなあ。

_ [Ruby] RubyアソシエーションRuby技術者認定試験

第一回の試験。うち(NaCl)からも相当数受験している。 第一回ということで、舞台挨拶(?)まで依頼されている。

がんばってください。

今回は松江でしか開かれないということで、 わざわざ遠方から来てくださった方もいる。 ありがとうございます。

今回は8割正解で合格ということだが、はて、どのくらい合格することやら。 本当はみなさんに合格していただきたいのだが、 「試験の価値」を維持するためには、厳しい判定が必要になる。うーむ。


2007年10月28日 [長年日記]

_ 末娘、誕生日

ここ1ヶ月くらい「何歳?」と聞くと「10月28日で3歳になります」と かわいい声で繰り返していた末娘が、とうとう3歳になった。

で、いざ、10月28日が来たらどう答えるのか、楽しみにしていた。 2歳から3歳に変わる時期というのは、年齢に対する自覚が微妙な年齢である。 0歳から1歳や、1歳から2歳の時はまだ「年齢」という自覚が薄くて 誕生日ということもよくわからないし、 4歳以降は年齢の仕組みも理解していることが多い。

で、末娘の3歳はどうかというと、 「何歳?」と尋ねると

「10月28日で3歳に...なりました」

と切り替えした。おおっ。

あぁ、なんて 親馬鹿モードなエントリ。


2007年10月29日 [長年日記]

_ 4839921946

4839921946

『Code Reading』、『Code Quality』に続く 「Code 〜」シリーズ第三段。『4839921946』が 発売されるのに伴い、恒例となったカバー裏企画のため IRCで座談会を開く。

まあ、例によってなごやかな感じで。 今回は平林くんが仕事で都合がつかず欠席だったのは残念。

で、ここでネタばらしをすると、 『Code Craft』が「Code 〜」シリーズ第三弾というのは 日本だけの話。実は「Code Craft」の原著は、 前二冊とは作者も出版社も違う。

ので、中身のノリもだいぶ違うのはご承知いただきたい。 中身に価値があることと、監訳者(の一部)が一生懸命チェックしたことだけは保証する。

私の担当は「前書き」と、一部の翻訳チェック。

_ 集合論と2進数を中学で習わないなんて - UMLモデリングレッスン執筆日誌

ネットで調べてみたら、中学1年の1学期に集合論や2進数を教えるのは、昭和46年から54年までの9年間だけだったことがわかった。

なんと、私も該当しているなあ。 そういえば二進数は教わった気もする。

が、後の人生にどのくらい影響を与えたかどうかはよくわからないなあ。 その頃はまだコンピュータを使いこなしていなかったし (L-Kit16のダンプリスト打ち込みくらいしか経験がなかった)、 ずいぶんたって帰納法的定義とかシグマとかで プログラミングが理解に役立ったことはあったけど、 2進数はどうだったのかなあ。

数学の成績悪かったしなあ。

しかし、私の人生に決定的な影響を与えたのは 実は『4150102481』*1のような気がする。 ここから「言語のすごさ」、「おもしろさ」に興味を持ったわけだから。

実際には人間の使う言語ではなくて、 プログラミング言語のほうに走ってしまったわけだけど。

*1  たしか高校1年くらいのときに立ち読みで読んだはず。本屋さんにはお世話になった


2007年10月30日 [長年日記]

_ [OSS] MogileFS

オープンソース分散ファイルシステム。 レプリケーションも自動でやってくれるらしい。

来るべき未来に備えて、あちこちで分散やら並列やら メニーコアやらが話題になっている、のかもしれない。

_ 【IPCM】iPhone,ディズニーランド,スタバの共通点は?──人気ブログ「Life is beautiful」の中島氏が講演:ITpro

共通点は「エクスペリエンス(おもてなし)」だそうだ。

ソフトウェアを比較する時には、つい「なにができるか」という 機能リストによる比較になりがちである。 しかし、産業が成熟してくると機能による差別化というのは 難しくなる。すべてのライバルが大抵の機能を備えてしまうからだ。

同じような機能を持っていても それぞれに違う「使ってどう感じるか」というのは軽視されがちである。 が、これからの「差別化」のためには、 そここそが重要なポイントになる、という話。

自動車とかそんな感じだよね。 もちろん細々とした機能の差(カーナビとかCVTとかバックモニターとか)が 登場することもあるけど、それも今やある特定のメーカー限定ということは ほとんどなくて(例外はマツダのロータリーエンジンくらいか)、 結局は、予算、デザイン、フィーリングなど機能でない部分で 車種が決定される。

プログラミング言語も似ている。

「チューリング完全」の壁がある以上、最終的に出来ることには大差ないんだから、 プログラミングしている時にどう感じるか、ということこそ重要なポイントになる、 んだと思う。これからは。

まあ、ライブラリなどが十分に充実したら、というのが前提だけど。

_ [OSS] 外に出よう,コミュニティへ,研究室の外へ,世界へ---2007年度日本OSS貢献者賞 表彰式より:ITpro

今年のOSS貢献者賞の授賞式。参加しなかったけど。

今年の受賞者は

  • 小山哲志さん
  • 笹田耕一さん
  • 佐藤嘉則さん
  • 松本裕治さん

の4名。今年は私は審査員をおおせつかっていたので、 「身内」である笹田くんを推薦するのは少々抵抗があったのだけど、 開発とコミュニティ貢献の両方をこなしているということで、 他の審査員の賛成多数で決定した。

他の方も順当だと思う。ただ、4名という枠があったので 「与えるべき人に届かない」という問題はある。 「来年以降でお願いしよう」と先送りした人がたくさんいた。

_ [Ruby] String#to_proc

Ruby 1.9にはSymbol#to_procが導入されるけど、 String#to_procはどうだろうか、という話。

こんなコードが書ける。

square = 'x*x'.to_proc;
square(3);
     → 9
square(4);
     → 16

とか

'x y -> x+2*y'.to_proc[2, 3];
     → 8
'y x -> x+2*y'.to_proc[2, 3];
     → 7

とか。面白いなー。標準で取り込むには マジックが強すぎるような気もするけど。

_ AT&T Labs Research - Hancock Project

Cをベースにした文法を持つ、 統一的な構造を持つ大規模なデータを扱うことができるDSL。 要するにデータストリーム操作言語だと考えればいいだろう。

MapReduceにしろ、このHancockにしろ、 やはりストリームという概念は いろいろと使い勝手がよさそうだ。

そういえば大学時代、研究室の先輩が ストリームを主要なデータ構造にした、 その名もStreamという言語を設計していたなあ。

今思えば先見の明があったということか。 まあ、今では研究成果は埋没しているわけだが。


2007年10月31日 [長年日記]

_ 訃報

あまり信じたくないことだが、 itojunさんが亡くなられたのだそうだ。

itojunさんと言えば、IPv6実装の大家というイメージがあるが、 彼の業績はそれ以外にもたくさんある。

Ruby関連で言えば、 RubyのソケットライブラリのIPv6対応も 基本的には彼のコードだ。

あまり人には知られていないと思うが、 私にとって忘れられないのは Rubyの一般公開の一年前、1994年12月にアルファリリースと称して メンバを募って限定公開した時に、 メール以外のネット接続が自由にならなかった私のために メーリングリストとftpサーバーを提供していただいたことだ。

おかげで当時はまだまだ独り善がりの言語だったRubyが いろいろな人の意見をいただいて、この期間中にずいぶん改善された。

Rubyもまたitojunさんがいなければ存在できなかったソフトウェアのひとつである。

itojunさんには感謝している。 彼のために祈ることにしよう。

_ にっき復活

酒匂さんから「失われた2006年2月分の日記はwww.archive.orgにあるよ」という情報を URL付きでいただいたので、それを元に復旧させる。

自分でarchive.orgを探した時には見つけられなかったのに。 探し方が悪かったに違いない。

で、手作業で復旧したのがかっこ悪い。 ホントはHTML to RDコンバータかなんかを作っちゃうのがかっこいいんだけどね。

情報提供してくださった方々に感謝する。


最新 追記