今日のコミット @ RubyCocoa
次の問題を修正した。
- 0.4.3d2 でユニバーサルバイナリをつくると ruby install.rb test が必ず失敗する
DYLD_PRINT_LIBRARIES_POST_LAUNCH でロードしたライブラリをエラー出力に出すとき、そのライブラリがユニバーサルバイナリだと、"cpu-sub-type: 0" などの情報が追加で出力される。これを認識してなかったので、ちゃんと考慮するようにした。
| 固定リンク
次の問題を修正した。
DYLD_PRINT_LIBRARIES_POST_LAUNCH でロードしたライブラリをエラー出力に出すとき、そのライブラリがユニバーサルバイナリだと、"cpu-sub-type: 0" などの情報が追加で出力される。これを認識してなかったので、ちゃんと考慮するようにした。
| 固定リンク
遅レスの ActiveURL というエントリを読んでいて、なんとなく RFC2192 IMAP URL Scheme を思い出した。この RFC では、CRUD の R しか定義されていないので、あまり一致しないけど。
といったようなもの。ActiveResource と比べると冗長かなあ。
| 固定リンク
ひさしぶりのような。
可変引数のサポートのための準備。NSInvocation では、可変引数が扱えない(setArgument:atIndex: でエラーになってしまう)ので、objc_msgSendv() を使わないとだめってことまでは確認した。
| 固定リンク
とても楽しかったし、知恵熱でそうなくらいの刺激。スタッフの方たちの細かい配慮が会場にいっぱいあって、Ruby愛(?)にあふれたイベントだったと思う。もう1週間もたってしまったし、何か書かないとね。
だがしかし、当日メモをとったノートをみたら、22ページもあってまとまる気がしねえ。とりあえず本題でないところについて。今月中にはマトモなものを書くよ、きっと。
とりあえずそんなとこ。
| 固定リンク
はてなが風力発電による「グリーン電力証書」を取得に関連して。風力発電については、以前に興味を持って本を読んだりしたので参考までにメモ。
技術的な比較や導入実績、社会的な影響あたりが気になって読んでみた2冊。両方ともけっこうおもしろい。
松岡憲司 著「風力発電機とデンマーク・モデル」。技術サイドからの視点が中心で、技術の発達やその歴史など。ワット数の増大に伴って、径やメカニカルが変化していくさまなど、読み物としても面白い。工作がしたくなる。タイトルには"デンマーク"としかないけど、ドイツ・オランダ・日本についても多くのページが割かれている。
飯田哲也 著「北欧のエネルギーデモクラシー」。前述の本が技術的なら、こちらは社会学的なアプローチの内容。今回の件の「グリーン電力」は、本書の第1章と第2章で詳しい話が扱われている。なんでそういうものがあるのかとか、なぜそんな仕組みが成立するのか、というあたりに興味のある人には役に立つと思う。はじめて読んだときには、「電力をその発電源により区別する」という発想にとても衝撃を受けた。単なる環境問題ではなく、産業としての位置や経緯といったことも詳しく扱われていて興味深い。ただ、著者の理想としての「成熟した民主主義」によるエネルギー政策の決定という視点もかなり強くでている本だということも書いておこう。
そもそも興味をもつきっかけになったのが、池澤夏樹の「すばらしい新世界」。物語の中で、小型の風力発電機を設計して設置して、メンテナンスを行っているのだけど、「現実にはどうなってるんだろ?」と思ってそこから。小説としても、池澤作品のなかでいちばん好きかもしれない。ハードカバーだけど、通勤電車で何回も読んだ。(今は文庫がでてる)
| 固定リンク
ないんだけどね。
RubyKaigi でふじもとさんと話しながら、TMPresents を改造した。そのときに、 「スライドの前に別アプリケーションが持ってこられるようになっててもいいかな」とも思った。なので、別のアプリケーションが前面になっているときに ウインドウレベルを通常のアプリケーションと同階層に下げて、他のアプリケーションのウインドウも表示できるようにしてみた。これは、スライドのウィンドウが最前面でなくなったとき(デリゲート windowDidResignKey:)にウインドウレベルを変更するということで実装。
だけど、Command+TAB でアプリケーションを切り替えたときには、
という順になるので、2.の時点では TMPresents のウインドウのほうが前になってしまう。このために、選択したアプリケーションのウインドウはスライドウインドウの後ろになってしまって表示されない。Witch などの別のウインドウ切り替えのアプリケーションを利用すれば、意図したとおりには動作する。これは、切り替えのアプリがアクティブになったときに、TMPresents のウインドウレベルが変更されるから(たぶん)。
ここで、windowWillResignKey: があれば、前面のアプリケーションが変更される前にウインドウレベルが変更できるので、Dock や Command+TAB にも対応できるのになあと考えたのだ。ない理由は十分に想像できるので、ただの愚痴。
| 固定リンク
最近 RubyCocoa 界でいちばんアツい話題といえば、「メソッド呼び出しをどう書くか?」のようだ。
RubyCocoa の特殊ルールとして、
BOOL を返すメソッドには、セレクタの末尾に "?" をつけること
というのがある。この場合に限っては、アンダースコアのスタイルじゃないとちょっとキモチワルイな。
1. workspace.openFile_withApplication?(path, app)
^
2. workspace.openFile?(path, :withApplication, app)
^
3. workspace.__send__ :openFile?, path,
:withApplication, app
^
openFile?(path, :withApplication, app) とか書けたほうがよかったりする?(6.13 訂正。もともとそうだった。2.と3.を変更)
論理値返すメソッドのうち、複数のパラメータ受けるものってそんなに数はないから、あまり気にはしていないんだけどさ。
| 固定リンク
クラス階層がふつうになったので、oc_attachments.rb は個別に有効にする必要がない。なので、最上位のクラスで include すりゃ OK なんだけど、OSX.ns_import するための準備がこんぐらがっていて、oc_attachments 中でやろうとするとエラーになる。cocoa_macros.rb くらいしか書ける場所がないんだけど、それもなんだかなあ。
まずは、oc_import.rb さえ require すれば、うまくうごくよう整理することから手をつけよう。
| 固定リンク
なっているじゃないか!スーパークラスの依存関係をどう解決するかが、ちょっと悩みどころだったのだけど、const_missing による自動ルックアップがそれ以前に実装されたので、あまり気にしなくてもよくなった。
Cocoa では、内部利用のクラスの名前に "%" とか "_" とかイヤな感じの接頭辞がつくことがある。こういうのがあると、Ruby のクラス(=定数)にそのまますることはできない。どうせ内部利用なので、そいつらは無視してその上位のクラスがスーパークラスに見えるようになるパッチを書いて、ML に投げてみた。[rubycocoa-devel:286](追記:マージされた)
変更のイキオイがすごいので、「どこがいつ変わったのか追うのメンドイ…」とちょびっと思っていたのだけど、ViewVC で見りゃいいのか。CVSROOT をバックアップ用にローカルに持ってきてるので、それを見てもいいけど、ViewVC のほうがらくちん。
| 固定リンク
火曜日に、オブジェクト倶楽部が主催の「『ふつうのHaskellプログラミング』写経会」に行ってきた。
自分のバックグラウンドとしては、
といいうところ。ようするにゼロ。それでも(だからこそ?)得るものはけっこうあり。以下感想など。
まだ序盤しか読んでないけど、ふつけるはうまく構成されている書籍だと思う。関数型がどうこうとか気にせずに、とにかく手を動かせば理解できそうな予感。
週2回のハイペースなので、さすがに全部は行けないと思うけど、これからもできるかぎり行くつもり。
| 固定リンク
GTD ツールなんじゃないの?と噂されていた、OmniGroup の新作は OmniDazzle というマウスの視覚効果をつけるユーティリティだったのだ。
MacDevCenter blog のエントリ "Quick OmniDazzle review" でデモムービーをひととおり見ることができる。なんだかファニーなものが多いのだけど、 FlashLight や Cutout 、Focal Point は、プレゼンや説明用のスクリーンショットをとるときなどに威力ありそう。
設定パネルのインターフェイスもチャレンジな感じでおもしろい。これも OmniFrameworks に入らないかなあ。コードが見たい。
| 固定リンク
最近あまりできていないのだけど、近況。
チケットがとれたので行くつもりな 日本Rubyカンファレンス2006。
なんと、ライトニングトークスにふじもとさんの名前がッ!(申し込みをしたというのは聞いていたのだけど)RubyCocoa の紹介ということで、どんなのか楽しみ。
Laurent がブランチをつくって、そこにガンガンコミットしているので、その確認とか考えてみたりとか。まだそんなに読めてないけれど、コードも整理されててよさそうな感じ。
ここで大きく手の入っているメモリ管理まわりは、いつも理解したと思いながら、次のときになるとまったくわからなくなってる。「あれ?これだと全部解放されないんじゃね?」とか悩むことがちょくちょく。そろそろ書き物をしたほうが、自分のためにもよさそう。
可変長の引数の件も、そろそろ手をつけたいのだけど、ちょうどブランチのほうで直しまくっているあたりなので、手元の検証まではやっとくて感じかなあ。ブランチつくっても、競合したらマージはめんどいからなあ。
| 固定リンク
とりあえず自分の発表資料。値変換。
回数を重ねてきたからか、今回はいつも以上にバラエティに富んでいて楽しい発表がめじろおしだった。仕事で開発しているメンバーも増えてきて、「10.2以前はバグが多すぎ」「Cocoa でスレッド使っちゃダメだってば」などの現実も聞けたのがなんだか。
次回は7月末の予定。その前に「Cocoa Life vol.2」の原稿を書かなくちゃね。
| 固定リンク
公式のほうにも出ていますが、今週の土曜日は Cocoa 勉強会(関東)があります。あと3人くらいは見学者も受付できるかも、という状況なので、興味のある方はどーぞ。
予定されているかもしれない発表
自分がやるのは値変換。10.3 で Cocoa Bindings と同時に導入された、値変換について。API や カスタムの値変換の作り方については、ドキュメントを見ればわかるので、いろいろな値変換を紹介しつつ、「値の相互変換ばっかりじゃないんだよ」という話をするつもり。
まだ下調べも完了してないってば!
| 固定リンク
「ふつける」こと「ふつうのHaskelプログラミング」がそろそろ書店に並ぶらしいので、 port install ghc したら、1時間たってもまだ終わらないでやんの。もう寝る。
(追記:どうやら5時間くらいかかったらしい)
| 固定リンク
最近のコメント