2008/07/18(金)
野茂投手引退ですか! うーむ、ついにこの日が来てしまったか。実は、野茂が一番活躍していた時期は僕がテレビも見ず外出もほとんどしていなかった時期と重なっているので、実際に投げているところは映像ですらほとんど見たことがないのだが、それでも僕にとっては最大のヒーローの一人だった。ちょうどアメリカに滞在した年が野茂のドジャースでの最初のシーズンで、周りのアメリカ人たちが驚きの目を見張って野茂を賞賛していたのが、それ以前からのファンとして無性に嬉しかったものだった。9月にロッキーズ戦でノーヒットノーランを達成した時、両親に「あの試合見に行ってなかったのか?」なんて言われたのだが、確かにコロラド州に住んでたわけだから野茂の登板予定に合わせてドジャース戦を見に行くぐらいのことはやるべきだったと今でも思ってるけど、なんかめんどくさくってねえ。まあファンとは言ってもこの程度のへたれファンだったわけだが。
近鉄バファローズの新人として、最初に取ったアウトが清原からだったというのは、今回の関連報道を見て初めて知った(無死満塁で三振を奪った)。野茂対清原というのは「平成の名勝負」と言われているそうで、ふーんそうだったんだ。僕はライオンズ時代の清原は(も)あんまり記憶に残ってなくて、デストラーデの方がよほど印象に残っているんだけどな。ちなみに、メジャーリーグでの最初のアウトも三振なんですね。さすがはドクターKだな。
大石大二郎(オリックスバファローズ監督代行)のコメントがすこぶる正直。「三振か四球という投手だったので、野手としては守りづらかった。」いやまあそりゃそうだろうけど、みんな今日だけはそれは言わないでおこうと思ってた(だろう)のに。さすがオールスターで江川の9連続三振をぼてぼての二塁ゴロで阻止しただけのことはある。野茂が独立独歩なら大石も独立独歩。なんかバファローズ応援したくなってきたよ。いや一応ファンなんですけど、何しろへたれファンなもんで。
2008/07/07(月)
アイ・オー・データの HDP-U250S(K) を購入。仕事場の MacBook の TimeMachine バックアップ用。60 GB のハードディスクを使っていたのだが、1日分のバックアップしか保持できず、これでは TimeMachine の意味がない、ということで、奮発してみた。説明書が丁寧で(Win 用と Mac 用がそれぞれ別々に入っていて、Mac 用の方には Mac OS 9 での使い方まで書いてある)、使いもしない Windows 専用の余分なユーティリティもほとんどついてこないし、なかなかよろしい。アマゾンで購入したのだが、なぜかシルバーの方が値段が高く、しかも在庫切れだったため、白の MacBook に黒の DP-U250 ということになってしまった。まあ、特に気にするほどのことではない。
2008/07/06(日)
ワミーでいろいろ遊んでおります。ヒメは小さなアクセサリみたいなのを熱心に作っている。僕はこういうやつ専門。

素直な正二十面体。色が5色あるので、全部の頂点を同じ配色にしようと思ったのだが、どうやら不可能みたい。白−赤−緑−青−黄と、白−黄−緑−赤−青の二種類を交互に置いてある。

ちょっとひねった正二十面体。頂点のところを編み合わせてある。

クラインのびん(リンクは Wikipedia)。写真ではわかりにくいが、青・黄・緑の部分が本体で、赤・白でできた管が貫通している。
2008/07/01(火)
引き続き(っていつの「続き」だ?)、Ruby の組み込みに奮闘中。いろいろわかってきた。
- Ruby を組み込むには、
ruby_init(); ruby_init_loadpath();を適当なところで呼べばよい。applicationWillFinishLaunchingの中で呼んでいるが、問題ないようだ。 NSTextViewから対話的に Ruby スクリプトを実行するには、NSTextViewのデリゲートメソッドtextView:doCommandBySelector:を実装して、insertNewline:セレクタが来たらスクリプトを読み込んでrb_eval_string_protect()で評価すればよい。- さらに、Ruby からの出力を同じ
NSTextViewに出すには、文字列をNSTextViewに挿入するメソッドwriteを持つカスタムクラスを定義して、そのインスタンスをグローバル変数$stdout,$stderrに入れておけばよい。最初、NSPipeやらNSThreadを使ってごちゃごちゃ書いていたのだが、そんなことをする必要はなかった。
これまでのところで一番厄介だったのは、スクリプトを command-ピリオドで止める処理。Cocoa アプリのキー入力はすべて run loop で処理されるが、スクリプト実行中は run loop が走っていないため、うっかり while 1; end みたいなスクリプトを実行してしまうと止める方法がなくなる。
自前でキースキャンをやるには NSApplication の nextEventMatchingMask:untilDate:inMode:dequeue: メソッドを使えばよいのだが、これをどこから呼び出すかが問題。最初、Ruby の set_trace_func 機能を使ってみたのだが、スクリプトの速度低下があまりにも激しかった。1.8.6 なら C レベルで rb_set_event_hook() というのが使えるのだが、Mac OS 10.4 の Ruby は 1.8.2 なのでだめ。
いろいろ試行錯誤した末、Ruby の Thread クラスを使うことにした。Cocoa アプリからスクリプトを実行する前に、Thread.new { while 1; sleep 1; Thread.main.raise Interrupt if check_interrupt > 0; end } という風にキー監視用のスレッドを走らせておく(check_interrupt はキー入力をチェックして、command-ピリオドなら 1 を返す関数)。Thread.main.raise がポイント。
ここで注意すべきは、Cocoa はデフォルトではマルチスレッド対応になっていないこと。このため、Ruby の Thread を使う前に、NSThread を使って1回ダミーのスレッドを立てておく必要がある。NSThread の detachNewThreadSelector:toTarget:withObject: を1回でも呼ぶと、以後はマルチスレッド対応になる。また、Ruby スクリプトを走らせていない時や、Ruby スクリプトからダイアログを出している時など、Cocoa 側で run loop が走っている時は、上の監視スレッドを止めておかないといけない。これにはグローバル変数と Mutex を使う。
実はここに至るまでに、TCL と Python の組み込みを試してみたのだが、Ruby が一番楽な気がする。TCL は組み込み自体は簡単なのだが、言語の機能が高くないので、ちょっと込み入ったスクリプトを書こうとするとぐちゃぐちゃになってしまう。Python の組み込みは、ドキュメントが充実していてやるべきことは明快なのだが、コードの量が妙に多くなる。あと僕は「インデントの量がブロックレベルを表す」という Python の文法がどうにも辛い(組み込みには関係ないけど)。もちろんブロックレベルとインデントは対応させるべきだが、それを文法で強制されるのはしんどいんだな。
2008/06/28(土)
午後、研究室関係者+友人たちでジンギスカンパーティ。うちのグループの北海道出身者がアレンジしてくれた。うちは家族で参加する予定だったが、妻がちょっと疲れ気味で体調もイマイチだったので、僕がヒメと坊を連れて参加。たくさん遊んでもらってすこぶるご機嫌だった。
帰宅して間もなく、「ワミー」が到着。子どもたちが寝ている間に遊び始めたところ、起きてきて見るなり(予想通り)「なあにそれ?」となって、一緒に遊び始めた。坊には部品をはめるところがまだ難しく、思い通りにいかずにかんしゃくを起こしていたが、ヒメはアイデアブックを見ながらいろいろな形を作っていた。僕は例によって多面体ばかり作っていたのだが、パーツを「編みながら」組み立てて行くと、単につないだだけとはひと味違うものができあがるので、たいへん面白い。
2008/06/19(木)
知育玩具「ワミー」(コクヨのプレスリリース)、「アイデア次第で多彩な造形が可能なブロック」だそうです。単純なパーツをひたすらつなぐおもちゃは当方もともと大好きなのでありますが、これは変形できるところが特によろしいですな。製品ページの写真を見ると、パーツはけっこう大きいようで、意外にダイナミックな造形ができそう。一応メモ(これは買う可能性かなり高い)。
2008/06/16(月)
一日有休をとって、家族旅行で松本に行ってきました。妻と僕の両家の両親と一緒。ちょっと歩く距離が長くて、腰を痛めているうちの父には申し訳なかったが、食事や買い物などまあまあ楽しんでもらえたのではと思っている(思いたい)。僕自身は松本は3回目なのだが、落ち着いた雰囲気で何度行っても大好きな町です。
2008/06/14(土)
MusicMaster.jp さん経由、KORG nano-KEY。ベロシティ対応というのがポイント。ノートパソコンでの打ち込みを意識した製品で、MacBook の横幅とぴったり合わせてあるところが面白い。一応メモ。
2008/06/10(火)
iPhone 3G 出たっ! GPS 搭載とオリジナルアプリはとても魅力的。うーんしかし、自分が使う場面はなさそうだな。1年のほとんどの時間は自分のラボに閉じこもって過ごしている生活スタイルだからなあ。まだ iPod touch の方が使い道がありそう。面白いアプリが揃ってくればの話だが。
2008/06/09(月)
「祝、VC配信開始! ファミコンの裏でヒットした「MSX」という名機」 (+D Games)。MSX って「ヒット」したんだったか。当時 ASCII 誌が盛んに特集を組んでいて、「なんて平凡な仕様だ」とちょっと白けた気分になった記憶がある。ただ、MSX-DOS だけはちょっとうらやましかった。ファイルシステムは MS-DOS 互換で、システムコールが CP/M 互換。あ、上の記事は Wii のバーチャルコンソール上で MSX のゲームが遊べるようになった、という話なのですが、MSX でどんなゲームがあったのかなんて全然知らないなあ。
