«前月 最新 翌月» 追記
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-11-02  ( ja -> en )

_ 本物のドキュメントを記すと何がおきるか

10年くらい前、MacRubyという名前で旧Mac OS(とBe OS)上へRubyを移植していました。そのころどんどん進化を続けていたRubyのソースコードはtarballとパッチでのみ公開されていました。Mac OSのために自分が変更した部分と最新のRubyをマージしたりするのがけっこう面倒。CVSってのを使えば良さそうだけど、これを覚えて使いこなすのもまた大変そうだなぁ。とそんなとき、ネットで公開されていたKernel hackerのためのcvs入門という文書を読みました。良い具合にくだけていて要所をとらえてわかりやすい。これだ!これだよ必要なのは。ということでCVSの意味や使い方を知り、その後はCVSのありがたみを享受できるようになり、あるときは人におすすめ(押し付け)したりもしました。そんなことを思い出したわけです。

_ [macosx][leopard][ruby][cocoa][rubycocoa] CocoaRepl の便利なおまけ機能

HMDTの木下さんがCocoaReplのことを書いていたので、CocoaReplに仕込んどいたおまけ機能をいくつか紹介しときます。

NSWindowなどのオブジェクトを作るショートカット的なメソッド

手っ取り早く NSWindow を作って表示したいときは、以下のメソッドを使うことができます。

NSWindow.create
NSWindow.create(800, 600)        # width,height
NSWindow.create(0, 0, 800, 600)  # left,top,width,height

NSWindow以外にもいくつかあります。以下は使用例:

NSURL.create "http://www.apple.com/"
NSURL.create "/etc/httpd/httpd.conf"

NSImage.create "/Library/Desktop Pictures/Aqua Blue.jpg"
NSImage.create "http://path_to_image_url/image.jpg"

NSView.create
NSView.create(360, 240)
NSView.create(0, 0, 360, 240)
NSTextField.create(300, 20)
NSButton.create(300, 20)
NSSlider.create(300, 20)

これらのメソッドはアプリケーションパッケージ内のファイル:

CocoaRepl.app/Contents/Resources/cocoa_sweets.rb

に定義されています(ソースがパッケージに含まれていて読んだり変更したりできるのもRubyCocoaの醍醐味のひとつ)。

起動時にRubyプログラムを実行させる

ホームディレクトリに .cocoareplrc という名前でRubyプログラムを書いておくと、毎起動時にそのプログラムが実行されます。よく書くクラス・メソッド・設定やよく使うライブラリのロード(require)などをあらかじめ書いておくと良いでしょう。例えば

include OSX

と書いておけば、OSX::NSWindowなどと書くところの OSX:: の部分を省略できます。

起動時に表示されるRubyプログラム

CocoaReplは、Eval系コマンドを実行するごとにホームディレクトリの .cocoarepl_scratch.rb というファイルにScratchビューの内容を保存しています。次回起動時にこのファイルの内容が読み込まれます。読み込まれるだけで実行(eval)はされません。

シンタックスカラーリング

syntaxというライブラリをインストールすると、構文の色づけができるようになります。syntaxはターミナルでgemコマンドを使ってインストールすることができます。

$ sudo gem install syntax
本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ hisa [PowerPCの環境だとデフォルトのSDKがuniversalじゃないのかな。ターゲットSDKを10.4 (univ..]

_ kimuraw [別件のテスト中に確認しました。回避方法としては * アーキテクチャを指定しない * SDKを指定する のどちらかにな..]

_ kimuraw [補足。ppc Tigerのフレームワーク・ライブラリ類はintel用のコードを含んでいません。(ユニバーサルバイナリ..]


2007-11-26  ( ja -> en )

_ [macosx][mosa][msm2007][ruby][rubycocoa] MSM2007に参加してきました

先週末、MOSA Software Meeting 2007というイベントに参加してきました。このミーティングにはMac関係の開発者がたくさん参加しています。懇親会のゲームではEGWordをいただきました。EGBridgeいいですねー。受講者としては、デジタルステージの平野友康さんの話がおもしろく刺激を受けました。とても楽しそうな会社です。気分転換が重要(だから合宿するらしい)など。

旅する会社 (株)デジタルステージ代表 平野友康のすごいソフトウェア開発(平野 友康) 旅する会社 (株)デジタルステージ代表 平野友康のすごいソフトウェア開発(平野 友康)

一方で講師としてRubyCocoaの話をしてきました。先月出たMac OS X 10.5 LeopardでフィーチャーされているRubyの魅力を伝えたかったのですがなかなかうまく伝えられた気がしません。RubyやRubyCocoaについて語るなら、少し冷却期間というか自分でいろいろ好きなものを作ってみる時間というのが必要な気がしています。そういう部分をこなさないと語れないというか...

WWDC(World Wide Developers Conference)2007のときにもお会いした東北大学の中島さんからは、教育システムの研究開発にRubyCocoaが役立っているという話を聞かせていただきました。学生がプレゼンテーションをしている様子を動画にとりながら聴衆が時間軸上に点数をプロットしていきます。それを再生することにより、学生はフィードバックを得てプレゼンテーション力を向上させていくというシステムです。このシステムのアプリケーション(QTKit使用かな?)をRubyCocoaで開発したということでデモを見せていただきました。RubyCocoaが役立っているようでうれしいですね。

ところで最近、フランスの作曲家ドビュッシーのピアノ曲「月の光」がマイブームになっていてときどき聴いています(ニコニコ動画で見つけた)。 とても美しい曲で、特に最初のテーマが再現されるあたりの徐々に高音にシフトしていく流れはほんと神々しいほどの美しさ。などと言葉で説明しても、どうにも陳腐な感じになってしまいます。世の中には言語化して説明するのが不可能だったり無粋なだけということも多いと思うのですがどうでしょうね。僕の感じているRubyの魅力というのも、どうにも言語化しにくいものの部類に入ってるような気がしてなりません。


«前月 最新 翌月» 追記