ひ日誌
2007-06-11 ( ja -> en )
_ [ruby][event][rubykaigi][rubykaigi2007][rubycocoa] Ruby会議2007がすばらしかった
RubyKaigi2007にRubyCocoaでスピーカとして参加させていただきました。発表資料は、おそらくWWDCの後になってしまいそうですが、のちのち公開させていただきます(しました at 2007.6.14)。
スピーカさんたちのものすごい熱さと怨念?と内容の濃さと遊び心(これとても重要)に圧倒されたreject会議の最中、期限が決まっていることはせっぱつまらないと始められないという、小学生が夏の終わりに発揮しがちな性質を、いつもどおり発揮してしまったことが身に染みました*1。まつもとさんにごあいさつしそびれてしまいました。壁に貼ってあるたくさんのメッセージを読んでくるの忘れた。というあたりorz
David Thomasさんのキーノートスピーチに感銘を受けました。忘れ物を思い出したような気がします。この気分を抱え、No Ruby, No Life.トートバッグ*2を提げ、行ってきます。IRCの同時通訳+つっこみ+質疑応答もナイス。IRCといえば、中川さん、RubyCocoa版IRCクライアントの発表どうもありがとう!会期中、いろんな方とお話しさせていただきました、みなさんどうもありがとう。運営スタッフの方々の心配りに感謝いたします。
(追記 2007.6.14) 発表資料を公開します。
- PDF (2.5MB)
- PDF+発表に使ったアプリケーションのソースなど (zip形式 8.7MB)
- CocoaRepl-20070624 (zip形式 492KB) - 改良したCocoaRepl.app (RubyCocoa.framework r1853同梱)とソース (2007.6.24に追加)
- opening.rb CocoaReplに入力して動かすことのできるRubyプログラム、デモの冒頭で入力したものをどのMacでも走らせられるように改良 (2007.6.24に追加)
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
> Jobsへの手みやげにいくつか引き受けたかったw
そんな用途があったとは!!! 言ってくださいよぉぉぉぉ(泣
いつかのExpoでアレを持って登場してもらいたかった。
すみませんです。今朝になって思いつきました。1つは持参しますので
おつかれさまでした。いろいろとお話することができて楽しかったです。道中、お気をつけて。
いえいえ、私どもこそ気が回らずにすみませんでした。
お気をつけて行ってらして下さい。
Psychsさん、僕のしょうもない質問に気さくに応えていただいたりしてどうもありがとうございました。なんだか心強いです。
moroさん、どうもありがとう。英会話に苦戦してます :)