|
HMDT - Back Number / December, 2002 |
December, 2002
ごぶさたしてました、mkino です。というわけで、NY へ遊びに行ってきました。始めてでしたよ。いやー、寒かった。25 日には雪が降って、ホワイトクリスマスでした。 で、見ての通り、SOHO の Apple Store にも行ってきました。SOHO は、NY のお買い物区域で、一流ブランドが立ち並ぶところ。Apple Store は、その中にぜんぜん違和感なくありました。ホリデーシーズンだったので、プレゼントを買う人たちで Apple Store も人がいっぱい。 Apple Store には、大きなスクリーンがあって、そこでいつも Mac のデモンストレーションをやっているんですが、その聴衆もいっぱいでした。で、Switch キャンペーン真っ最中なので、デモンストレータが質問を。「この中で、日頃 Windows マシンを使っている人は?」 見ていたところ、一人しか手を挙げないでやがんの。Apple Store で Windows ユーザを名乗ることを怖れたのか、もともと熱狂的な Mac ユーザしかこんなデモは見ないのか?どちらにしても、Switch 失敗のような気が。うーむ。 では、良いお年を。
Cocoa 1001、NSTextView のちょっとした話。。 NSTextView 私事ですが、明日から旅行に行くんで、しばらく更新が止まります。ニューヨーク行ってきます。寒そう。
Cocoa 1001でのXML の話。High level API を使うと、便利なんだけどエラー情報が受け取れなくなっちゃうんだ。それを回避する方法。 CFXML かなりたよりないパーサだけど、自分一人で使う分には充分でしょう。
えっと、まだひとりごとの段階なんで、聞き流してほしいんですけど、 CFString を使った、エンコーディングの流れを追っかけていたんですよ。その流れは、CFString から始まって、CFStringEncodingConverter.c にある CFStringEncodingUnicodeToBytes() と CFStringEncodingBytesToUnicode() に行き着くわけです。名前から分かる通り、byte を指定されたエンコーディングで Unicode にしたり、Unicode を指定されたエンコーディングの byte 列にしたりする関数ですな。 その実装を見ると、_CFEncodingConverter っていう構造体を使うんですよ。こいつは関数ポインタの集合で、実際にコンバートする関数を指定している。Darwin で公開されているコードには、build-in エンコーディングの分しか乗ってないんですな。MacRoman とか WindowsLatin1 とかだけ。日本語ないじゃん。 しょうがないなーと思って、今使っているシステムのシンボルテーブルを調べるわけですよ。ソースコードから、_CFEncodingConverter の実体は ___CFConverter で始まるだろう、という当たりはついてたので。そうすると、やっぱり ___CFConverterMacJapanese とか ___CFConverterISO_2022_JP があるわけですね。なるほど、こいつらが日本語エンコーディング用の関数ポインタを持っているわけね。たぶん、TextEncoding を使うんだろうけど。 で、つらつらと眺めていると、なんか ___CFConverterAutoDetect_JP っていうものがあるんですよ。これって、、、あれぇ?えへへ。いや、まぁ待て。名前だけっていうこともあるし、使い物になるかどうか分からんし。こっそり実験してみようっと、、、
昨日の続きのCocoa 1001、XML のノードの話。 CFXML いまさら XML の話題?って気もするけど。本人の備忘録なんで、笑って見過ごして下さい。
Cocoa 1001、今度は XML パーサを使う話。CFXML を Cocoa から使ってみた。 CFXML なんか、話があちこち飛んですまんねー。
Cocoa 1001、掲示板で話題になってた、ホットキーを登録する話だ。Carbon Event を使ってホットキーを登録するよ。慣れない Carbon なんで、手こずったぞ。 Carbon Event サンプルを実行すると、下の図みたいなアプリケーションが立ち上がる。こいつを使えば、任意のホットキーを登録することができるんだ。ユーテリティタイプのアプリケーションが作れるぜ。
Cocoa 1001、NSTimer のアニメーションの説明のところにサンプルを付け加えたよ。 NSTimer 前から書いてあった話なんで、あんまり目新しさはないけど。
Cocoa 1001、文字列を検索する話。 NSString ただの検索の話だとつまらないので、テキストエディタ内での検索の話もとりあげてます。
Apple から IP over FireWire の preview release が公開されてるぜ。これはその名の通り、FireWire に IP パケットを流すものだ。これを使えば FireWire を使って HTTP や FTP や SSH が可能になって、それでだから、ええっと、、、冷静になって考えると何がうれしいんだ?Ethernet でいいじゃん! と、突っ込みを入れてしまいたくなる IP over FireWire (IP over 1394) の話をしよう。 ■ 技術的な背景 IP over FireWire の話が始まったのは古い話で、1996 年ぐらいから始まってる。ちなみに FireWire の最初の規格がまとまったのが 1995 年(1394-1995)。仕様が決まって RFC になったのが 1999 年の 12 月のようだ(RFC 2734)。だから、いまごろ出しても遅いんだよ Apple、ってのが本音だけど、Mac OS X への移行でそれどころじゃなかった、ということで許してあげような。ちなみに Windows は Me と 2000 のあたりでサポートしているはず。 ■ IP over FireWire はスピードが凄、、、かった FireWire の利点といえば、そのスピード。この仕様が提案されたのは 10 base-T が使われていた頃。Ethernet では 10 Mbps だが、FireWire なら 400 Mbps だぜ。これは速い!Ethernet よりも FireWire だ!、、、しかし時代は流れ、いまや Ethernet は Gbps になっている。FireWire も次の規格(1394b)で 3.2 Gbps になるものの、まだものが出てこないし。 ■ IP over FireWire は取り扱いが楽、、、だった FireWire のもう 1 つの利点といえば、取り扱いの簡単さ。差しやすいプラグに、柔らかいケーブル。これだ!Ethernet よりも FireWire だ!、、、しかし時代はまたも流れ、無線である 802.11 を普通に目にするようになった。わざわざケーブル差すの?って言われちゃうよ。無線 1394 っていう規格が議論されてたときもあったけど、いまはどこにいったのか、、、 ■ IP over FireWire で楽ちん Mac ネットワーク、、、? で、IP over FireWire で何をやるかっていうと、1 つが FireWire による Mac ネットワークだ。FireWire で Mac 同士をつないで LAN を作るんだ。だけどやっぱり Ethernet でいいよなぁ。ましてや 802.11 使えば無線だし。 ■ FireWire デバイスの IP ゲートウェイとしての Mac というわけで、いちばん使い手がありそうなのが、FireWire 端子はあるけど Ethernet を持っていないデバイスの、インターネットにつなぐためのゲートウェイにするというもの。DV カメラや DVHS デッキとかは、FireWire (i.LINK) は持っているけど、Ethernet の口はないでしょ。それらが IP over FireWire を使えば、Mac 経由でインターネットにつながって、FTP からファイルをダウンロードしてきたり、Web ページに画像をアップしたりすることができる。ただし、これはそのデバイスが IP over FireWire に対応していることが必要になる。おそらく、現在のところほとんどない。 そこで思い付くのが、Apple 純正の FireWire デバイス iPod だ。将来の iPod は IP over 1394 に対応し、Web ブラウザを搭載して、直接インターネットから曲をダウンロードできる。iCal のカレンダーを Web からダウンロードして見れるようにしてもいいかもしれない。あと、iPod をポータブルストリーミングサーバとして活用とか。、、、うーん、ちょっといまいちかも。 そんな感じの IP over FireWire。あんまり期待しないで見守ろう。
Cocoa 1001、キーイベントを受け取る話。 NSEvent 掲示板の方でこの話が出てるぜ。
これは初心者向けの Cocoa プログラミングの本なんだけど、実は名前から想像できるとおり「Cookbook」なんだ。どういう意味かと言うと、プログラミングの 1 つ 1 つのトピックが「レシピ」として与えられている。たとえば、ウィンドウにボタンを配置したり、スライダーを付け加えたり、っていうことが、それぞれレシピになっているんだ。各レシピでは、ユーザがやるべきことを 1 ステップずつ書いてある。.nib を開く、ボタンをドラッグして貼付ける、名前をつける、属性を設定する、、、ということが事細かに。 書かれていることを 1 ずつ丁寧に実行していけば、アプリケーションが出来上がる、っていう寸法だ。まさしくレシピだね。ただし、本文にも書かれているけど、背景となる技術についてはぜんぜん説明されていない。たとえば Objective-C の文法の話はほとんどないし、オブジェクト指向の説明もなし。そういうことは他の本で学んでね、ってことだ。 理屈よりも、手を動かす方が性に合っている、という人にはぴったりな本だ。Cocoa 環境が完全に初めて、という人へのクイックスタートとしても使えるかもしれない。ただし、これ 1 冊では行き詰まることもありそうなので、他の Objective-C の本とかを併用しよう。 あと、ヘルプの作り方とか、OS や Cocoa のバージョンの調べ方といった、他の本に載ってないトピックがあるのがうれしいかも。
ちょっとごぶさたしてました。旅行とかいってたもんで。 掲示板の方で NSTableView のセルの属性の話が出たんで、サンプルを作ってみた。Cocoa 1001 の方で。 NSTableView こんな感じの、テーブルの列に色を設定するサンプルだよ。
|
|
Home | Link | Download | Back Number | Speciall Issue
|