«前の日(11-13) 最新 次の日(11-15)» 追記

Matzにっき


2003年11月14日

_ [Ruby]Ruby Conference 1日め

  • Working in the Garden: Web Apps with Borges - Eric Hodel

    各ページの状態をContinuationとして保存するWebアプリケーションフレームワーク、 Borgesの説明。元々は Avi Briantが作ったもの。Smalltalk版のSeasideからの逆移植。 おもしろい仕組みではあるが、どこまで実用になるんだろうか。

    資料

  • The State of XML Processing in Ruby - James Britt

    RubyにおけるXMLの現状。なんとたくさんのライブラリがあることか。

  • Object-relational mapping with Lafcadio - Francis Hwang

    リレーショナルデータベースをオブジェクトにマップするフレームワークLafcadioの紹介。 Madeleineのような Object Prevalenceを 使うアプローチもあるが、既存のデータベース資産を活用したかったということ。 彼自身が開発したいくつかのWebサイトで活用されているということ。

    しかし、Francisは早口でついていくのがやっとだったりする。

  • Ruby World: (not) Implemented - Steve Tuckner

    発表を申し込んだ時にはRuby Worldの実装について語ろうと思ったが、 全然時間が取れなかったので、企業にRubyを導入するというテーマに変更した、というもの。 次の日のJim Freezeの発表とちょっとカブってるかな。

    しかし、結局Ruby Worldがなんであるかはよくわからなかった。次回に期待。

    資料

  • Generating Code in Ruby - Jack Herrington

    タイトルにも表紙にもRubyとは一言も書いてないが、例題は全部Rubyで書いてあるという 『1930110979』の著者、 Jack Herringtonがコード生成のパワーについて語る。

    資料

  • Roundtable

    Rubyの作者まつもとを囲んで質疑応答。なんについて語ったっけ。覚えてない。

カンファレンス全体の 資料はここ

このホテルにはインターネット接続がない。来年の会場にはネットアクセスを希望したい。 夕食にSchlotzsky's Deliにいき、ワイアレス接続。

_ [映画]深夜放送

明日のスライドの最終修正をしながら、 部屋のケーブルテレビで映画を見る。

  • 『Transporter』

    えーと、なんというか、フランス版ダイ・ハード? 主人公、クールな仕事人という最初の印象と後半の印象が全然違う。

  • 『Blind Fury』

    ルトガー・ハウアー主演、西洋版座頭市。 ただ単に似ているというだけでなく、本当に座頭市の翻案らしい。 実は前から好きな映画である。

結局早朝まで起きている。時差ぼけというわけではないようだが。


2004年11月14日

_ [教会]松江

先週ステーク大会だったので、今日が断食安息日。松江出席。

日曜学校の時間、突然妻が現れて驚いた。家で休んでいるはずだったのに。 結果的に「ちび」のお披露目になった。もっとも、1時間ほどで先に帰ったんだけど。

午後、息子の自転車の練習につきあう。 というか、全然乗れない子供の練習ってのは毎回支えないといけないし、 結構な時間走り回ることになって、体力の衰え著しいプログラマには相当辛いんですけど。

ぐったりした休日であった。まだまだ練習につきあわなくてはいけなそうだ。


2005年11月14日

_ [原稿] オープンソースマガジン 1月号

月例のハッカーズライフ。今月は「ソースコードを読む」話。

まあ、2ページしかないんであまり突っ込んだ話は書けないが、 どう読むか、とか、どういうツールを使うかとか。

でも、普段、私がソースコードを読むときには近代的なツールは使わないで grepに頼りきってるんだよなあ。ctagsすら使わないのはいかがなものか、という気もしないでもない。

Rubyではデバッガも使わないし、IDEも使えないし。 完全にオールドタイプだな。

_ [OSS] Sleepycat -- 健全な収益構造を持つオープンソース企業の見事な例

まあ、ちゃんとつぶれないで事業を継続している点は尊敬に値する。

でも、MySQL AB (MySQL)もTrolltec (Qt) もSleepycat (BDBM) も、自らのビジネスモデルのために外部からのコードは基本的に受け取らない(か、著作権上と譲渡契約を行う)必要があるんだよね。それはバザールモデルを強調するオープンソースの立場からは、「見事な例」とはちょっと違うような気がする。

ま、ソースコードが自由なライセンスで提供されているという、私が一番欲しい自由が提供されている以上、文句を言うつもりはないけれども。

_ [Ruby] Ethical Software by Alex Bunardzic » Superior or Just Easier?

「優れている」とはタフな問題を解決することだ、と考えがちだが、 もっと「簡単な」道があるかもしれない。

What really caught my attention in that comment is the underlying assumption that something could either be superior, or easy. This belies the heroic mentality of the tough, battle hardened modern man, who is used to struggling in life, knowing that it don’t come easy.

Along come these wacky dudes, like for example Matz and the aforementioned David, and gently tap these people on the shoulder, and try to make them see that, hey, you don’t have to always suffer for your work. Maybe there is a way to make it easer?

肩の力を抜いて生きよう。


2006年11月14日

_ [原稿] オープンソースマガジン 2006年1月号

なんか、原稿ばっかり書いてるな。

オープンソースマガジン最終号でライセンスについて取り扱うということで、 以前の「フリーソフトウェアライセンス診断」なんかに似た線でなにか、という依頼。

以前書いたネタだからと思って気楽に書きはじめたら、 いろいろ難しかったり、分量に納めるのに苦労したり。

あと、「ハッカーズライフ」とちょっとかぶったり、 特集のほかの記事とかぶったりしそうだ。

_ [OSS] ISID、Seasar2商用サポートサービスを拡張、バージョン固定サポートを導入

ISIDがSeaser2の商用サポートサービスで、特定のバージョンをサポートしつづけるオプションを提供する、という話。

商売としてはいろいろなオプションが増えるのを見るのはありがたい。 そうやって、市場の理解が進めば、ひいては私たちにも恩恵がある(可能性がないとまでは言えない)。

_ [OSS] サン、「Java ME」と「Java SE」のソースコードをGPLライセンスで公開へ

えーと、GPLを選ぶというのは正直意外であった。 望ましいことであると思う。

あと、この件についてはJRubyのCharles Nutterのエントリも紹介しておく。


2010年11月14日

_ [Ruby] RubyConf 2010 キーノート(3)

で、最後に「Diversity(多様性)」である。

初日のDave Thomasのキーノートでも3つの重要なこととして、 Diversifyをあげていた。多様性は重要なのである。

とはいえ、多様性はいいことばかりでもない。 Rubyにおける多様性といえば、昨今数々登場している別実装である。

  • CRuby (1.9, 1.8)
  • JRuby
  • Rubinius
  • IronRuby
  • MacRuby
  • MagLev

などなど、多くのRuby実装がある。これら以外にも「Rubyっぽい言語」まで含めると 本当にいくつあるのか見当もつかない。

昔はPythonの人たちに「Ruby(とPerl)は複雑すぎて、別実装は登場しそうにない。 Pythonを見てみろ、CPythonとJytonとIronPythonがある」などと言われたものだが、 今や別実装の数ではRubyの方がしのいでいる。Pythonの方もPyPyとか新しいものも登場してるが。

が、一方、このような多様性にはコストがかかる。 まあ、プラットフォームの違うJRubyはおいておくとしても、 CRubyとRubiniusとMacRubyで分散しているリソースを集約すれば、 もっと早く言語(実装)が進歩するような気もしないでもない。

しかし、オープンソースプロジェクトでは結局はそれぞれの参加者がやりたいように関わって モチベーションを維持することの方がはるかに重要だ。

多様性は善で、コストは必要経費であるというのが私の認識である。

さて、多様性は善であるので、さらにそれを豊かにするために 私自ら新たな処理系を送り込もうと思う。

それは RiteVM であり、組み込みなど小規模なデバイス向けをターゲットとした処理系である。

現在のRubyは元々Unixをベースにして開発されたものであり、 UnixやPOSIX APIを提供しないような小さなデバイスや、 アプリケーションへの組み込みなどはあまり重視されてこなかった。

しかし、一方、組み込み分野などではデバイス性能の向上で ソフトウェアの比重が高まりつつあり、 実行速度やリアルタイム性がそれほど要求されない分野で Rubyのような「高級」な言語を使いたいという要求はそれなりにあるようだ。

そこで、以下のような処理系を新規に開発する

  • 小規模なRuby言語処理系
  • 機能はほぼRuby標準規格を満たす最小限。 さらにファイルI/Oなどは取り除く(後で追加可能)
  • 実装はLuaを意識
  • VM構造体を提供。グローバル変数を使わない
  • 機能はコンポーネントとして提供。必要に応じて外せる。 たとえばコンパイラを外してevalもなし、などが実現できる
  • ターゲットの要求に合わせてコンパイル時にさまざまに設定可能。 たとえば浮動小数点数をdoubleにするかfloatにするか、 Fixnumをintにするか、longにするか、long longにするか、など。 逆にいうと「どこでも同じように動く」は追求しない
  • 浮動小数点数はimmediate(shootout対策w)。
  • VMは32ビットワード命令、レジスタベース。命令セットもLuaに類似。
  • GCはレイテンシを重視。インクリメンタルアルゴリズムを採用。 世代別についても検討したい

このVM開発のプロジェクトコードネームは Rite と称することにする。 RiteVMの開発は、経済産業省 平成22年度「地域イノベーション創出研究開発事業」の一環として行われる。

これにより、たとえば

  • ゲームの組み込みスクリプト
  • デジタル家電のソフトウェア開発
  • 組み込み機器やロボットの非リアルタイム制御

などにRuby(のサブセット)が使えるようにする。

もちろん、今すぐにそうなるとは思っていないが、 今から準備すれば数年後には現実にできると考えている(ビジネス上の成功は別だけど)。

と、ぶちあげてしまったので、もう後に引けなくなったな。

FAQ

いつ Rite が使えるようになるの?
わかりません。が、上述の通り、経済産業省の事業なので事業が終了する2011年度末には なんらかの成果をあげないと、いろいろまずいことに...。
RiteVMはオープンソースになるの?
はい。MITライセンスを考えています。ただし、今回(とその周辺)の開発で ビジネスモデルを確立する必要があるので、あるいはGPL+商用ライセンスの MySQLモデルになるかもしれません。 いずれにせよ、オープンソースになることは期待して良いでしょう。
RiteVMが登場したらCRubyはお蔵入り?
そんなことはありません。Riteは分野限定の小規模実装ですから、 フル機能実装であるCRubyの代替にはならないでしょう。
C APIはどうなるの?
今までのCRubyのAPIとは異なるものになります。CRubyのAPIは非常に使いやすいけれども 組み込みにはあまり向かないからです。技術的には不可能ではなさそうですが、 互換レイヤーを導入する予定は当面ありません。
RiteVMはM17Nを提供しますか?
いいえ、コンパイル時にASCIIかUTF-8を選択してください。 エンコード変換機能も(標準では)提供しません。
native threadをサポートしますか?
いいえ、RiteVMそのものはスレッドをサポートしません。 native threadを活用したい時には各スレッドにVMを割り当ててください。 fiberはVMで提供するかもしれませんが、予定は未定です。
RiteVMはYARV/JRuby/Rubiniusより高い性能が出ますか?
たぶんそんなに性能は出ません。ただし、Floatの即値化とかのおかげで いくつかのベンチマークでは良い性能がでるかもしれません。
RiteVMの開発に貢献できますか?
オープンソース化されるまで待ってください。 githubで公開されると思います。gitの勉強しないとな
Riteって聞いたことあるんだけど
2003年のRubyConfキーノートでRuby 2.0の実装コードネームとして提案した名称です。 結局、新しいVMはYARVが採用されたわけですが、まさかこんな形で復活するとは。
まつもとさんはCRubyの開発から引退するんですか?
今でも十分貢献できてないんですが、引退するつもりはありません。 CRubyはRubyの第一実装であり続けますし、 私もRubyの設計者であり、コミュニティーのリーダーであり続けます。

«前の日(11-13) 最新 次の日(11-15)» 追記