«前の日記(2007-05-27) 最新 次の日記(2007-06-18)» 編集
2002|09|
2003|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|10|11|
2008|01|

ひ日誌


2007-06-11  ( ja -> en )

_ [ruby][event][rubykaigi][rubykaigi2007][rubycocoa] Ruby会議2007がすばらしかった

RubyKaigi2007RubyCocoaでスピーカとして参加させていただきました。発表資料は、おそらくWWDCの後になってしまいそうですが、のちのち公開させていただきます(しました at 2007.6.14)。

スピーカさんたちのものすごい熱さと怨念?と内容の濃さと遊び心(これとても重要)に圧倒されたreject会議の最中、期限が決まっていることはせっぱつまらないと始められないという、小学生が夏の終わりに発揮しがちな性質を、いつもどおり発揮してしまったことが身に染みました*1。まつもとさんにごあいさつしそびれてしまいました。壁に貼ってあるたくさんのメッセージを読んでくるの忘れた。というあたりorz

David Thomasさんのキーノートスピーチに感銘を受けました。忘れ物を思い出したような気がします。この気分を抱え、No Ruby, No Life.トートバッグ*2を提げ、行ってきます。IRCの同時通訳+つっこみ+質疑応答もナイス。IRCといえば、中川さん、RubyCocoa版IRCクライアントの発表どうもありがとう!会期中、いろんな方とお話しさせていただきました、みなさんどうもありがとう。運営スタッフの方々の心配りに感謝いたします。

(追記 2007.6.14) 発表資料を公開します。

zip形式の配布資料の中にあるCocoaRepl というアプリケーションは、冒頭で使用した、Emacsのscratchバッファを意識した対話型インタプリタ。Ruby Pointは、資料の表示に使用したWiiリモコンとAppleRemoteでコントロールできるPDFプレーヤで、TMPresents(きむらさん作)とCGPDFViewer(RubyCocoa付属サンプル)とのマッシュアップ作品。

オープニングのスクリプト:

def create_window(opts = {})
  if opts.is_a?(Array) and opts.size == 4 then
    frame = opts
  else
    frame = opts[:frame]
    title = opts[:title]
  end
  if frame.nil? then
    frame = [0, 0, 200, 150]
    size = OSX::NSScreen.mainScreen.frame.size
    frame[0] = OSX::NSScreen.mainScreen.frame.size.width  - frame[2] - 10
    frame[1] = OSX::NSScreen.mainScreen.frame.size.height - frame[3] - 50
  end
  win = OSX::NSWindow.alloc.
    objc_send( :initWithContentRect, frame,
               :styleMask, OSX::NSTitledWindowMask + 
                             OSX::NSResizableWindowMask +
                             OSX::NSClosableWindowMask,
               :backing, OSX::NSBackingStoreBuffered,
               :defer, false )
  win.setTitle(title) if title
  win.makeKeyAndOrderFront(nil)
  win
end

include OSX
w = create_window
require_framework "QuartzComposer"
v = w.contentView = QCView.alloc.init
v.objc_methods.grep /^load/i
qtz_path = "path to Cocoa_on_RubyKaigi2007/datas/cube_rot.qtz"
v.loadCompositionFromFile(qtz_path)
v.startRendering
w.zoom(self)
w.title = "Cocoa on Ruby会議2007"
Thread.start do
  sleep 2
  100.times do |i|
    v.setValue_forInputKey(i,:zoom)
    sleep 0.1
  end
end

create_windowは、ウィンドウ生成のためのおまじないが多過ぎなので、事前に仕込んでおきました。きむらさんが何かしら考えている模様。もっとRuby的手軽に書きたいという潜在要望は多そうな気がするので、こういうおまじないはRubyCocoaでうまいこと吸収したいところです。

(追記2 2007.6.14 from SF 時差ぼけ中)

ブログやWeb日記で感想を書いてくださっている方々どうもありがとうございます!まだちゃんとコメントをつけたりできていませんが励みになります。

(追記 2007.6.14 at SF 時差ぼけ中) JRubyからCocoaは使える?という質問について

GUIセッションのとき、JavaやJRubyについての質問に対して、その場ではピンとこなくてつれない返事をしてしまいました。ごめんなさい。考えてみると、JavaBridgeを通して、JRubyからCocoaを使うことはできるかもしれません。とは言っても、JavaBridgeはdeprecatedだし、やっぱりRubyCocoaを使うのがいいですよw

*1  ここまできたら直らんと思うけど

*2  Jobsへの手みやげにいくつか引き受けたかったw

本日のツッコミ(全5件) [ツッコミを入れる]
_ moro (2007-06-10 17:19)

> Jobsへの手みやげにいくつか引き受けたかったw

そんな用途があったとは!!! 言ってくださいよぉぉぉぉ(泣
いつかのExpoでアレを持って登場してもらいたかった。

_ hisa (2007-06-10 20:25)

すみませんです。今朝になって思いつきました。1つは持参しますので

_ Psychs (2007-06-10 20:49)

おつかれさまでした。いろいろとお話することができて楽しかったです。道中、お気をつけて。

_ moro (2007-06-10 21:06)

いえいえ、私どもこそ気が回らずにすみませんでした。
お気をつけて行ってらして下さい。

_ hisa (2007-06-14 04:36)

Psychsさん、僕のしょうもない質問に気さくに応えていただいたりしてどうもありがとうございました。なんだか心強いです。
moroさん、どうもありがとう。英会話に苦戦してます :)


«前の日記(2007-05-27) 最新 次の日記(2007-06-18)» 編集