|
HMDT - Back Number / May, 2002 |
May, 2002
Quartz Extreme の話に反応してみる。あろ日記さんとか、Mac プロ裏ミング日記さんとかで Quartz Extreme に関する話が出てるよな。まず、分かっていることは、
ってこと。だから、一部で出ているらしい、旧機種の切り捨て、っては言えないと思う。ただ、Quartz Extreme の機能を積極的に使うソフトが出てきたときが、問題だろうね。例えば、Open GL を使って、Aqua とシームレスなユーザインタフェースを作るとか。そうすると、旧機種では動かなくなる。 歴史的に、こういう場合解決策は 3 つ。まず Quartz Extreme を積極的には使わない。そうなっちゃうと、日陰の機能になってしまう。次は旧機種を切り捨てる。シェアウェアや、一部の高機能ソフトではありか。最後は Quartz Extreme をエミュレートするソフトウェアを作る。ただし激重。 やっぱり、最後の解決策が Mac ぽいよな。誰かが作るに違いない。いや、もう作ってるとこか?
Project Sketch BP、ツールの追加の話に入るよ。まずは円弧ツールから。仕様を考えてみた。 Project Sketch BP
まずは、ツールパレットにツールを追加してみた。ツールパレットが大きくなり、見た目が変わると結構満足感が。誰の役にも立ってない連載だけど、まだまだ続くのだ! Project Sketch BP
Project Sketch BP、もう先を読んでいる人もいるかもしれないけど、ドローオブジェクトの編集の話だ。ドローオブジェクトをダブルクリックすると、編集モードに入るでしょ。あの話。 Sketch では、実際にはテキストオブジェクトしか編集可能じゃ無いんだよね。だから、それも詳細に取り上げてみた。NSTextView を、どうやって動的に表示させてるか、とかね。 Project Sketch BP
Project Sketch BP、ドローオブジェクトの移動、変形のお話。ドローオブジェクトを選択すると、周りにノブがでるでしょ?それをどうやって描いてるのか、とか、それをつかむと何が起こるのか、っていう話。 Project Sketch BP
Project Sketch BP、再開!今回はドローオブジェクトの作り方、だ。どんどんドローアプリケーションの内部へ。ツールパレットを選択してから、画面にオブジェクトを作るまでの流れだ。 Project Sketch BP
この前、ハードディスクの中のサイトのデータを消しちゃったんで、復旧作業をしてたんだけど、だいぶ戻ってきたよ。ついでに、サイトをほんの少し整理。右側にバナーを作って、アクセスしやすくしてみた。
スティーブン・ジェイ・グールド死す。享年 60 歳。 高校の頃、彼の著作を読んだとき、日頃の学校での飽き足らない気持ちが解放されて、自分で学ぶことを覚えました。理学の徒としての道を選ぶのに、大きな影響を受けました。冥福を祈ります。 ちなみに、情報の道をこころざしたのは、「ゲーデル・エッシャー・バッハ」か、やはり。
Mulle kybernetiK から。
ちなみに、エピソード 2 見てきたよ。ヨーダ大活躍。映画館大爆笑。
さっき、OS をインストールしようとして、あるパーティションをフォーマットしたら、そこに HMDT の html が入っていて、全部消えちゃった。あはは。 サーバにアップしてある分しか、バックアップないし。こりゃ、しばらく復旧モードだな。
Project Sketch BP、新しいセクションに入るよ。「Sketch に見るドローアプリケーションの作り方」だ。いよいよ、それらしくなってきたな! まずは、ドローオブジェクトを選択するときの処理から。マウスで画面をクリックして、ドローオブジェクトを探して、それを選択するまでの処理だ。 Project Sketch BP
また戻ってきました、Project Sketch BP。今日はアンドゥの話。Cocoa でのアンドゥのやり方と、Sketch でどういう実装をしているか、って話だ。Cocoa のアンドゥは、なかなかエレガントだよね。 Project Sketch BP
Jaguar では Address Book が一新される、っていう発表もあったよね。個人的には、あまり Address Book そのものには、興味がない。そそられるのは、Address Book の裏には、個人情報を管理するためのデータベースがあって、その API が公開されるらしい、っていうことだ。 みんな気付いていることだと思うけど、PC の使い勝手を悪くしている一つの原因は、友達のメールのアドレスとか、電話番号とか、いろんなアプリケーションで必要になる情報を管理する、統一的な手段が提供されていないことなんだ。いろんなメールソフトがあるけど、それぞれ勝手にメールアドレスを管理してるでしょ。だから、メールソフトを乗り換えるときは、コンバートしないといけない。また、Web ブラウザを使っているときにそのアドレスが必要になるかもしれないのに、アクセスする手段がない、とかね。 この問題を解決するには、システムに統一的な個人情報データベースがあればいい。そいつが API を提供して、他のアプリケーションからも使えるようにすればいいんだ。これって、ソフトベンダがやることじゃなくて、OS ベンダ(つまり Apple)がやることだよね。もしかすると、Address Book の裏にあるデータベースが、その役割を果たすことになるんじゃないか?そう考えると、面白い展開ができるよな。 そうすると、次に気になるのは、そのデータベースの仕組みと API だ。今さら関係データベースで、SQL でアクセスだったらいやだなー。XML ベースにした、オブジェクト指向データベースならいいのに。デベロッパが簡単に拡張できるようにして。メールアドレスだけでなく、Web のブックマークを放り込む拡張とかが、簡単にできて。あ、ついでに SOAP を使って外からアクセスできるといいな。あ、さらにいえば Randevous にも対応してしまって。どのマシンからも簡単に見れて、、、と、いろいろ夢想したけど、API がまだ一般には公開されていないので、何も分からないのでした。
こんなところで、このシリーズはおしまい。とにかく、公開されている情報が圧倒的に少ないので、妄想を膨らませるしかなかったよ。基調講演じゃ技術的なところはぜんぜん分からんし。あぁ、WWDC 行きてぇなぁ、、、
WWDC の細切れの情報から、勝手に予測をするシリーズ第二弾。今度は Randevous の話だ。どうやら、ネットワークの新しい技術らしい。 基調講演では、iTunes のストリーミング再生のデモをしたらしいけど、それだけではなんだかよく分からない。というわけで Apple の Jaguar のページを調べてみる。 そうすると、Randevous ってのは ZeroConf っていうプロトコルのことらしい、っていうことが分かるんだ。 まず、ZeroConf のめざす世界とはなにか?それは、Zero Configuration の名前が示す通り、設定を必要としないネットワークなんだ。ほら、いまのインターネット、つまり TCP/IP を使うワールドワイドなネットワーク、は、マシンの IP アドレスを手で設定しないといけないじゃない。または、DHCP サーバが必要でしょ(アドレスの割り当て)。で、DNS サーバも必要でしょ(ホスト名と IP アドレスの変換)。ネットワークのプリンタにつなぐのにも IP アドレスか、プリンタを管理するサーバが必要でしょ(サービスの検索)。 ZeroConf は、これらをサーバなしでやろうとするんだ。早い話が AppleTalk みたいなものだと思ってもらうと、理解しやすい。ネットワークにさえつなげればオッケー、っていう世界だ。ZeroConf の目標は、
ってことらしい。こういうネットワークの自動設定の規格ってのは、他だと Universal Plug and Play (UPnP) とかかな。Jini もちょっと似てるか。IP ではないけど、1394(FireWire ね)も似たような思想でできているんだ。 さて、こんな感じの ZeroConf を使った Randevous は、何ができるのか?まず、メディアは、Ethernet だけではなくて、AirPort でもいいし、FireWire でも Bluetooth でもいいらしい。その場合、FireWire デバイスや、Bluetooth デバイスにも IP を割り振るのか?そこんところは謎。それらがネットワークにつながれば、自動的にアドレスが割り当たって、ホスト名が得られて、サービスを提示するらしい。 こっから先は、想像になるよ。あるネットワークがあると、そこに存在するデバイスのサービスの一覧を得ることができるんだ。たとえば、プリンタやファイル共有。もちろん、それだけではない。まず iTunes サービス。iTunes サーバがあって、そこから MP3 を再生できる。あと iPhoto サービス。iPhoto サーバに写真をたくわえておけば、それをどこらでも見ることができる。もちろん iMovie サービスも考えられる。DV のストリーミングね。将来的には iPod も Randevous に対応して、iPod の中の曲をどこからでも再生できるかもしれない。こんな感じのネットワークが、特に設定しないでもできるようになるんだ。アイディアは、決して新しいものではないけど、実現できる土壌(Mac OS X)が整って、アプリケーションもちゃんと提案(iApplication のサービス)できるのが大きい。 まだ、技術の詳細は分からないけど、予想される問題点は、動的なネットワーク設定の調査には、たくさんのパケットが飛び交うことになること。AppleTalk とかそうだよね。これを問題なく解決できるか、っていうこと。あと、UPnP より先に Randevous を普及させることができるか、という点。動的ネットワーク技術が実を結びそうになれば、とうぜん Microsoft がしゃしゃりでてくることが予想されるからね。
San Jose では、華々しく WWDC が開催されてるよね。ここ数年、Apple の OS を含むソフトウェアは、比較的おとなしかったよね。もちろん、Mac OS X っていう大きなジャンプ、っていうかほとんどテレポーテーション、は、あったけど、「どうにか動かしてみました」っていうレベルだったよな。しかし、その長い助走期間が過ぎて、Jaguar では攻めの姿勢が見えるね。「どーだい、こんな面白いもの作っちゃったよ、すごいだろ!」っていう、往年の Apple らしい「おれたちが未来を作るぜっ!」っていうメッセージが見えるじゃないか!え、見えないって?よーし、じゃ、どんな未来が来るか、考えてみるぜっ! 「未来を予想するのは、簡単だ。おれが未来だ」(アラン・ケイ) で、まずは Quartz Extreme だ。こいつは、Quartz を OpenGL のアクセラレータを使って速くするっていう技術。いまの Mac OS X って、「遅い」っていうイメージがあるでしょ?いろいろ遅いところはあるけど、一番いらいらさせられるのが、画面描画だ。ウィンドウをリサイズするたびに、またはメニューを引き出すたびに、「あー、おせぇーなー」って。なんで遅いかって、プロファイルしたわけじゃないから正確には分からないけど、やっぱり半透明じゃない?メニューの半透明とか、ウィンドウのドロップシャドウとか。そのへんの、GUI の 2 次元の描画は、Quartz(正確にいうと Core Graphics)がやっているんだけど、それを OpenGL アクセラレータを使って高速化してやろうぜ、っていうのが Quartz Extreme らしい。 実は、WWDC の数日前に、Quartz Extreme 用と思われるサンプルコード "Alphabet" が Apple のサイトにアップされてたんだよね。コードの説明には、「WWDC 用のデモ・スクリーンセイバー」とだけ書かれている。解凍してみても、Read me もなんにも無いの。動かしてみると、アルファベットが回転したり、落っこちたりするスクリーンセイバーだ。
見かけは 2 次元のグラフィックなんだけど、ソースコードを覗いてみると OpenGL を使っていることが分かる。NSOpenGLView をはりつけているんだ。その上に、文字をテクスチャで書いて、それを回転、拡大させて、半透明にする、っていうことを、OpenGL を使ってやってるんだ(z 軸はすべて 0)。回転、拡大や半透明といった、重そうな処理を OpenGL に割り振ってやるんだ。おそらく、GUI の部品(ウィンドウとかメニューとか)も、こういった感じで書くんだろうね。 「ふーん。でもそれっだたら、いまでもできるんじゃない?」いや、そうではない。いまの OS では、NSOpenGLView を Core Graphics に混ぜ合わせることができなかったんだ。たしか、OpenGL って直接 VRAM に描いていて、Core Graphics を使ったパスと違うんだよね。たとえば、Dock のアイコンを OpenGL を使って描画することができないとか。その辺が統合されたらしい。うーむ、説明がいまひとつだな。とにかく、びっくりしたのは、PC Watch に載っていたこの画像なんだよ。背景が透明になっている OpenGL の画像が、デスクトップにぽっかり浮いてる。これがいままでできなかったんだよね。GL と Quartz の処理が統合されている、っていうところが、このデモの驚くべきところだ(その点、新居雅行さんの記事はきちんとポイントを押さえている。流石だ)。 これが何を意味しているかっていうと、OpenGL がいままでの枠を超えて、いろいろなところで使うことができるようになったんだ。たとえば、GUI。ボールを OpenGL で描いて、画面上でくるくる回して使う、トラックボール GUI とか。デスクトップに、直接 3 次元風にファイルが浮かぶ、Finder とか。もっと統合が進めば、OpenGL のテクスチャとして、NSView を貼付けることができるかもしれない。OpenGL で描かれたキューブがあって、その各面にウィンドウやボタンが張り付いている、、、使いやすいかどうか分からんけど。 なんにせよ、Quartz と OpenGL とを、シームレスに統合できそうなこの技術、Apple らしいね。
Project Sketch BP、次は印刷の話。NSPrintOperation を使った印刷の処理の流れだ。 Project Sketch BP
SNAX の作者の方からメールがあったんで紹介しますが、SNAX 1.2.8 がリリースされたそうです。SNAX ってのは、Finder の代替となるファイルブラウザ。今回はスピードが大幅にアップしたそうな。
Project Sketch BP、書類の保存があったら、次は読み込みでしょう。というわけで、書類の読み込みの話だよ。メニューから「開く...」を選んだ後の挙動だね。 Project Sketch BP
きょう、いろいろ gcc 3 を試していたんだけど、どーにも速くならん。リリースノートによると、C++ のときはとっても速くなる、って書いてあったんだけど、変わらないぞ。設定が間違ってるのか?なんか、2.95 ではエラーが出ないのに、3 にするとエラーが出ることもあるし。もうちょっと試してみるか、、、
Project Sketch BP
前の記事(April 9)で、Project Builder から Cocoa の API ドキュメントを素早く見る方法、って話をしたよね。しかし、まだ方法はある!というわけで、Cocoa API をブラウズするアプリケーション、Cocoa Browser の話。作者のほしさんから、案内をいただきました。ありがとうございます。 Cocoa Browser は、NSBrowser を使った階層メニュー付きの、Cocoa API ブラウザなんだ。階層メニューが付いているんで、素早く簡単に、目的のオブジェクトのリファレンスを見ることができるのがポイントね。あと、動作が非常に軽快です。いままでの Apple の Help Viewer だと、起動始めてから立ち上がるまでに、トイレに行って帰ってくることができたけど、Cocoa Browser では、そんなストレスを感じることもないです。 ソースコードもついてくるし、非常にいい感じです。つか、おれも使おう。 あと、5 月になったからタイトルバーの色を変えたんですけど、'May' のスペルを間違えてました。これもご指摘ほしさん。恥ずかしいっす。
新しい Developer Tools 、April 2002 が出たよ!もう 5 月になっちゃったけど。 今回の目玉は、gcc 3 でしょう。コンパイラがメジャーバージョンアップしました。うーむ、だいじょぶなのか?お仕事で使っている人は、様子を見ながらアップデートすることになるでしょう。HMDT は、もちろんとっととアップデートしてみるつもり。リリースノートによると、プリプロセスが速くなったから、コンパイル時間が短くなったのこと。どの程度変わるものかな? で、リリースノートによるアップデートの内容は、、、
そして、誇らし気に書いてあるのが、
What's new には、「もう Description forth coming はないぜ!」って書いてある。やっとできたか!つーか、おせーよ。一年前に終わらせておいてくれ、Apple。 あ、ダウンロードには ADC への加入が必要です、念のため。
Project Sketch BP、続くよ! 今日からは、Sketch を題材としたドキュメントベースアプリケーションの作り方だ。Cocoa を使うと、ドキュメントの保存とかオープンとかは、簡単にできるんだけど、その例を Sketch に求めるのだ。 Project Sketch BP
|
|
Home | Link | Download | Back Number | Speciall Issue
|