やめてください。
でも、たぶんそういうことにはならないと思います。 もちろん、恥ずかしいからというのが私としての最大の理由ですが、 それよりなによりRubyの開発はドラマにならないのです。山もオチもない。
リリース直後にバグレポートが来た。 まつもとは焦った。
では盛り上がるものも盛り上がりません。やっぱやめよう。
定期訪問。聖餐会のお話のテーマは「聖さ」。 聖さがいかに違いをもたらすかということについて聖典を引用しつつ。 また、聖くなるために時に苦痛が伴うということも。
集会終了後、あいさつもそこそこに急いで松江に戻る。
松江では娘たちのピアノの発表会。 残念なことに数分差で下の娘の演奏は聞けなかった。 妻曰く、練習不足でめためただったそうで、娘も「間に合わなくてよかった」などと言っている。 操作ミスでビデオ録画にも失敗してるし。
上の娘も頑張ったが何箇所かは失敗したようだ。 楽器演奏がまったくできない私が言っても説得力はないが、 やはり日々の練習の反復がものを言うのだろう。
しかし、音楽ができる人ってすごいよな。 ある程度の長さの演奏を一度も間違えずに行って、 しかもそれが普通だって言うんだから。 プログラマなんかキーだってさんざん間違えるし、 やっと入力終わってもコンパイルは通らないし、 コンパイル通ってもバグは残ってるし。
失敗だらけだ。
発表会の後は、松江の教会へ移動。 出雲の人のバプテスマ会が開かれるのだ。 出雲の教会にはフォント*1がないので、 松江の教会のを借りることになっているのだ。
バプテスマを受けたのは30代後半のご夫婦と娘さん。 息子さんはまだ8歳にならないのでバプテスマの対象ではない。
アメリカ訪問中、ソルトレークの教会を見て感銘を受けたご主人と、 いつかはクリスチャンになろうと思っていた看護士の奥さんであった。 既婚者が自分の生活を変えて改宗するケースは珍しい。 だいたいは若いうちが多いよね。
私の両親もそういうケースだったので、 なんだか重ねてしまう。彼らの30年後にも幸多からん事を。
忙しい一日であった。
*1 font = 辞書引いたら日本語では「洗礼盤」っていうんだね
ぼやぼやしてたら代理店から北海道のチケットが満席だと言われる。 あわててJALのサイトで 「インターネット予約」したらまだ間に合った。
ついでにホテルも予約。
金曜に連絡していたポートランドへのチケットも取れそうだ。
これで一安心。
上記の「北海道」とはこのイベントのことだ。 宮原さんとは古い付き合いだし、なかなか面白げなイベントなので参加させていただくことに。
今年はLLDNに全然参加できなかったりするしね。
で、今日になってようやくプログラムを確認したら、結構もりだくさん。3トラック+展示でとても全部は見れない。まあ、1日で全部やろうってんだからしょうがないか。
北海道のみなさん、どうぞお手柔らかに。
Winnyに寄生するトロイの木馬。
Trojan.Kakkeys is a Trojan horse that attempts to leak sensitive information to a predetermined bulletin board (BBS). The Trojan is written in Ruby and may be distributed via the Winny file-sharing network.
重要なのはこれがRubyで書かれていることだ。 遠からず不埒な使いかたをする奴が出るだろうとは思っていたが。
Google Summer of Code 日本版。いいことではないだろうか。
金があるところはこういう試みをどんどんやってもらいたい。 この中でホンのいくつかでも成果をあげれば元は取れると思うな。
うち(NaCl)もなんかやるべきか。 「夏のRuby」とかどうか。
そのためにはもうちょっとRubyで儲けないとなあ。
これが本当にWeb2.0的なのかどうか、正直よくわからないんだけど、 人と人をつなぐ、という点と、マイナーなものの流通(中古だけど)という点は、 ロングテールにつながるのかもしれない。
私にとって気になるのはこの辺
どのようなテクノロジを使用しているのですか。
lendmonkey:Ruby on Rails、Ajax、Amazon Web API、Google Maps、RSSなどです。
ちゅーわけで、注目を浴びるWeb2.0サイトがRailsで開発されているという話。
Gregory BrownがRuby 1.9の新機能で好きなこと10選。
Enumerator is in core and more tightly integrated
a = 4.times a = a.each a.inject{|s,x| s+x} # => 6
Enumerator#with_index
[1,2,3,4,5,6].map.with_index {|x,i|[2,5].include?(i) ? x : x*2} #=> [2, 4, 3, 8, 10, 6]
Better Array#to_s and Hash#to_s
[1,2,3,4].to_s # => "[1, 2, 3, 4]" {1,2,3,4}.to_s # => "{1=>2, 3=>4}"
Method#receiver and Method#owner
class A; def foo; end end a = A.new a.method(:foo).receiver # => #<A:0xa7c9f6d8> class A; def foo; end end a = A.new a.method(:foo).owner # => A
Process.daemon
Process.daemon() => fixnum Process.daemon(nochdir=nil,noclose=nil) => fixnum
Blocks can take block argument
define_method(:foo){|&b| b.call(bar)}
Block arguments are always local
a = 1 10.times{|a| } # !> shadowing outer local variable - a a # => 1
New literal Hash syntax
{ a: 1, b: 2 } foo(a: 1, b: 2)
BasicObject
BasicObject.instance_methods # => ["__send__", "funcall", "__id__", "==", "send", "respond_to?", "equal?", "object_id"] Object.ancestors # => [Object, Kernel, BasicObject]
ちなみにGregoryが嫌いなことは
a = ->(b,c){ b + c }
だそうだ。これ不評だよねえ。でも、なんでだろう?
私もしばしば経験があるんだけど、 頭の中ではなにもかもうまくいって、「成功間違いなし」とか思っちゃうんだけど、 いざ実践してみると、逆になにもかもがうまくいかないように思えるなんてのは 日常茶飯事だよね。
私の息子は折紙が大好きなんだけど、 折り図を見るとかっこいい作品がイメージできてわくわくしながら 取り掛かるものの、いざ折り始めるとぜんぜんうまくいかなくて がっかりしてしまう(彼はちょっと挫折癖がある)のをしばしば見かける。
ま、親子だから分野は違えど似たような反応をしてしまうわけだな。
しかし、私の方はそのような失敗の経験をはるかに積んでいるために まだ若い息子よりも立ち直りが早いし、そもそも失敗を予測して手当てをすることができるように なっている。
江島さんがリンク先のエントリで書いてることって、 結局はそういうことだよね。やりもしないで「やりさえすれば成功間違いなし」とか 「自分は天才だ」とか思いこんじゃう、ちょっと(だいぶ?)アレな人と 根っこは同じだ。
いや、程度の差こそあれ、人間、誰でもみんなアレなんだよ。 要はそこで(何度も失敗しても、それでもの)一歩踏み出すかどうかが、 違いを生むんじゃないかなあ。
ちなみにRubyは私の最初の言語ではない。
島根大学での前期『情報と地域』の講義。 今年は、NaCl井上社長とはんぶんずつ。
井上さんは、NaClの事業やオープンソースビジネスについて。
私はおおむねRubyKaigiのキーノート(梁山泊)の焼き直し。 ただし、二回目なので話の内容が少々整理されている。
学生さんがどう感じたんだろうか。 昨年も受けて、今年も聴講している熱心な人も居るようだけど、 まあ、授業だからと受けている学生さんもそれなりに居そう。
野田先生によると、主に法文学部の学生と総合理工学部の学生が混在しているが、 寝ている学生は総合理工の子が多いんだそうだ。 長い授業(座学)に慣れてないんだとか。そういうものなのね。
ほしい。一般売りはしないのか。