Digitalians' Alchemy Diary Archive



あるけみすとの居る風景:2009 年 11 月

2009/11/27(金)

 音楽+αけちつけ帳 2009/11/27 分スーパーコンピューターの研究もいいけど、あの円周率を何百万桁も計算させるのはどうかんがえても無駄だからやめた方がいいと思う。 今の世界記録は2.5兆桁?(筑波大学お知らせ:2009/08/17)。あれはコンピュータの性能テストのために走らせているんだと思います。大量のメモリやディスクが正しく動いているか、システムソフトウェアの性能がちゃんと出ているか、等々。答えのわかっている計算を一度はやっておかないと性能や信頼性が評価できないから。

2009/11/26(木)

 やっと MacBook が帰ってきた。9/7 から2ヶ月半の入院。ちょっと遅すぎる。この間、催促すると「もうじき(来週、とか)送る予定です」とか返事が返ってくるんだけど、そのまま音沙汰がなくなる、というのが何度かあった。グローバルソリューションサービスのクイックガレージ名古屋、Mac の修理はもう無理なんじゃないの? できないんだったら「うちではできない」って正直に言ってよね。そうでないと、「昔から頼んでいた」という理由で販売店がそこに回しちゃうのよ。そのへんの情報収集が甘い販売店にも問題があるとは思うけど。

2009/11/13(金)

 きのうは早く寝ようと思っていたのに、ある経歴詐称疑惑のページに突き当たって、あまりの面白さに2時過ぎまで読みふけってしまった。こんなほら吹きに東京大学がお墨付きを与えたらあかんやろ。でも、この人に「心酔」している取り巻きの人たちは、どんなにインチキが明らかになっても、この人を「信じ続ける」んだろうなあ。そういう人が世の中にいっぱいいる、という現実にはちょっと萎える。

2009/11/11(水)

 Alchemusica のイベントリストテーブルが時々妙な挙動をする。セルを編集した後別のセルに移ると、普通は編集に使ったテキストフィールドがいったん隠されて、新しいセルに移る。ところが、このテキストフィールドが元の位置に残ったままで、新しいセルの編集を始めてしまうことがある。確か 10.4 までは起きなかったぞ、10.5 でどこか仕様が変わったんか? いろいろ調べて、結局 tableView:setObjectValue:forTableColumn:row: の中で Objective C の例外が投げられているらしい、とつきとめた。例外が起きるコードはこれ。

[[[self undoManager] prepareWithInvocationTarget: self] changeValue: ed2 ofType: code atPosition: position inTrack: trackNo];

 デバッガコンソールには、こんなメッセージが出る。

+[NSMethodSignature signatureWithObjCTypes:]: unsupported type encoding spec '(' in '4(MDEventFieldData=llf{MDSMPTERecord=b1b6b6b6b5b8}i[4C]*^v)8i12l16l20'

 えーっと、シグネチャの文字列のドキュメントってどこにあったんだっけな。MDEventFieldDataunion なんで、これがどうも臭い。テストプログラムを書いてみた。

#import <Cocoa/Cocoa.h> typedef union A { int a; float b; } A; @interface MyObject : NSObject { } - (BOOL)changeValue: (A)value; @end @implementation MyObject - (BOOL)changeValue: (A)value { return YES; } @end int main(int argc, const char **argv) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; MyObject *x = [[MyObject alloc] init]; NSMethodSignature *sig = [x methodSignatureForSelector: @selector(changeValue:)]; int i, n; NSLog(@"sig = %@", sig); n = [sig numberOfArguments]; for (i = 0; i < n; i++) { const char *p = [sig getArgumentTypeAtIndex: i]; NSLog(@"arg %d : %s", i, p); } return 0; }

 10.5 での実行結果。ビンゴですね。

2009-11-11 22:34:11.984 a.out[1503:10b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSMethodSignature signatureWithObjCTypes:]: unsupported type encoding spec '(' in '4(A=if)8'' 2009-11-11 22:34:11.987 a.out[1503:10b] Stack: ( 2478833643, 2468544059, 2478841071, 2478842271 ) Trace/BPT trap

 ちなみに、Mac OS 10.4 では正常終了。

2009-11-11 22:54:38.840 a.out[2036] sig = NSMethodSignature: types=c@:(A=if) nargs=3 sizeOfParams=160 returnValueLength=1; 2009-11-11 22:54:38.841 a.out[2036] arg 0 : @ 2009-11-11 22:54:38.841 a.out[2036] arg 1 : : 2009-11-11 22:54:38.842 a.out[2036] arg 2 : (A=if)

 実はちゃんと NSInvocation のドキュメントに書いてあるじゃん。読めよ自分。

NSInvocation does not support invocations of methods with either variable numbers of arguments or union arguments.

 10.5 でチェックが厳しくなって、今まで素通りだったコードが許されなくなった、という話らしい。

2009/11/08(日)

 ヒメのピアノ発表会の練習が始まった。今年はエステンの「人形の夢と目覚め」で、ヒメはいまいち乗り気でない。まあ無理もない話ではある。ヒメに限らず今の子供は、家やら幼稚園やら学校やらですごい量の音楽を耳にしているわけで、音楽に興味のある子なら自然と耳が肥えてくる。この程度の曲だと、何回か弾いただけで内容の薄さがわかってしまうんじゃないかな。さあ、4月まで興味が持続するかどうか。

 親子連弾もやるのだが、候補曲の編曲がどれもイマイチ。一番ひどかったのは「ラプソディ・イン・ブルー」で、主要なエピソードをワンフレーズずつ全部ハ長調でつなぎあわせたというとんでもない代物だった。この曲、最近やたらとお子様の発表会で人気のようで、どうやら「のだめカンタービレ」の影響らしい。だいたいにおいてテレビドラマの影響なんてろくなものではないけど(漫画だけならたぶんこうはならない)、こんなトホホな編曲がまかり通っているようではいけませんね。結局、同じガーシュウィンつながりだが、「サマータイム」をアレンジして使うことにした。

2009/11/03(火)

 絵本「じごくのそうべえ」(田島征彦作・絵、童心社)を図書館で借りてきた。上方落語が元なので、これは読んでやらねばなるまい、と風呂上がりに子供たちに読んでやった。これは傑作ですねえ。子供たちが読むにはちょっと関西弁がむつかしいかも知れんけどな。僕はネイティブだけど子供たちには外国語だし。

 同時に、「基本の六路盤」(鶴田郁夫著、あかね書房)も借りてきた。六路盤でときどき子供たち(主にヒメ)と石取りゲームをしているのだが、どうやったら本碁に移行できるかがわからなかったので、ちょうどよかった。残念なことに、坊が全く興味を示さない。対戦型ゲームはあかんのかな。

2009/11/01(日)

 そろそろこのサイトの容量が限界に近づいている。実は半分ぐらいは LinuxSampler のページにこっそり上げてある mp3 ファイルだったりする。ただのテスト結果なので別に消してしまってもいいんだけど、ちょっともったいない。昔の DTM 作品の mp3 もいずれ公開したいと思っているし、ぼちぼち置き場所を探すかな。ヤマハの MySound を狙ってたのに、終了しちゃうのは残念。