Macintosh Developer Online (MDOnline)


2000年7月27日発行号 - 新製品がお披露目



iATOKがでるそうです。実は発表会の会場にWindowsパソコンが用意されていて、そこで自由に使えるようになっていました。もちろん、パソコンがある席に陣取って使いまくりましたが、マック系のメディアが全然登録されていません(笑)。「マック」で引くと、出てくるのはMacWIRE Onlineだけです。あと、日経MACは引くことができるけど「にっけいまっく」では出てこないで「にっけいMAC」だけなんでしょおう。その他のマック専門誌は全然登録されていないということのようです。もうすぐ、無償の登録が始まるので、忘れずに登録しておきましょう>メディアの方々。もちろん、来年の4月には12000円の請求書が来ることになりますが、まあ、ドメイン登録料程度ですから試しに入れておくくらいとしては許せる値段かもしれません。2万件がみんなお金を払ったとしても、2億4000万円ですね。なかなかおいしいビジネスかもしれません。だけど、登録有償のディレクトリは他になくもないですが、むしろ登録は無償というのが一般的です。そこまでビジネスとして行けるのか、非常に興味のあるところですね。
さて、明日はアップル様で、WebObjectsのセミナーです。会場でお会いできることを楽しみにしております。いらっしゃる方はせっかくの機会なので、濃い質問を御用意しておいてください。明日の配信は、必然的に午前中か、あるいは遅くかどっちかになりますね。
(新居雅行 msyk@mdonline.jp


Gigabit対応G4のデュアルプロセッサは制作環境に向けたハイパワー

2000年7月26日にアップルは新製品のプレス向け説明会を開いた。その中では、デュアルプロセッサ搭載のPower Mac G4についても説明が行われた。このマシンは、デザイナなどハイエンドの制作者向けであることを説明し、Pentium IIIの866MHzのシングルプロセッサマシンとのPhotoshopのバッチ処理を並行して動作させ、Power Mac G4の500MHzのCPUが2つ搭載されているマシンの方がより高速に処理できることをアピールした。対応ソフトとしては、PhotoshopとFinal Cut Proで、予定しているソフトとして、Media Clearner Pro、Lightwave 6、SoundJam MP、MPEG Powerが挙げられていた。いずれにしても、既存のソフトがそのままマルチプロセッサに対応するわけではなく、対応ということが必要となっている。Photoshopではマルチプロセッサに対応したフィルタがプラグインとして提供されるということだ。
Power Mac G4でのマルチプロセッサ利用は、Multiprocessing Serviceという機能を使う必要があるが、nanokernelとして知られているマルチタスクカーネルを利用する必要がある。なお、Java環境のメーリングリストMRJ-Devでの情報によると、MRJ環境下でのスレッドはマルチプロセッサには対応しておらず、Mac OSの協調的マルチタスク環境で複数のスレッドが動くという形式になっているということである。

関連リンク:Power Mac G4
カテゴリ:Power Mac, Macintosh本体


【小池邦人のプログラミング日記】2000/7/26<Mac OS Xへの道 Carbon対応の実際(2)>

既存のソースコードをCarbon APIに対応させ、Mac OS X環境でも起動できるアプリを作るための工程のうち、今回は(3)と(4)の工程について解説します。

(3)WinodwPtrとGrafPtrを明確に区別

まずは訂正です。前回「WinodwPtrとGrafPortを明確に区別」と書いていましたが、正確にはGrafPortでなくGrafPtr(CGrafPtrでも可)です。申し訳ありませんでした。ところで、古いソースコードのどこかに、まだ「GrafPtr」の定義が残っているなら、Carbon環境に移す時にすべてを「CGrafPtr」に変更しておくと良いでしょう。ToolBoxの新しいAPIには、引数にCGrafPortしか受け付けない(キャストすれば大丈夫なのですが)強情なやつもいますので、Carbon化のタイミングでGrafPtrを絶滅させておくのが得策です。

さて、今までの環境では、SetPort( window )といった具合に、SetPortに直接WindowPtrを渡してもエラーにはなりませんでした。ところがCarbon環境では、こうした処理は許されていません。それを補うために、以下のようなAPIが用意されています。

void SetPortWindowPort(WindowPtr window);
WindowPtr GetWindowFromPort(CGrafPtr port);

同様に、DialogPtrもWindowPtrとほとんど区別無しで扱われてきましたが、Carbon環境ではきっちり区別します。という事は、当然CGrafPtrとも区別する必要がありますので、以下のようなAPIが用意されています。

void SetPortDialogPort(DialogPtr dialog);
DialogPtr GetDialogFromWindow(WindowPtr window);

あまり実用的な例ではないのですが、CGrafPtrからDialogPtrを得るには以下のように記述します。残念ながらGetDialogFromPort()というAPIはありません。

dptr=GetDialogFromWindow( GetDialogFromWindow( port ) );

またCarbon環境にかぎった話しではないのですが、異なる色数(デプス)のCGrafPort間で画像を転送したり、PixMap画像をオリジナルとは異なる色数のウィンドウへ転送する場合、もしくはモニターの色数と異なる色数のCGrafPort(モニターが1600万色でCGrafPortが256色など)にQuickDrawを利用して描画するような場合には、GetPort()とSetPort()を使わずに、GetGWorld()とGetGWorld()を使います。こうしないと、ユーザがモニターの色数を切り替えた時、起動中のアプリで描画の不都合が起こることがあります。ただし描画処理がからんでいない場合には、引き続きGetPort()やSetPort()を使っても特に問題はありません。

(4)アクセッサーファンクションの利用

Carbon環境では、ToolBoxなどで定義されている構造体のメンバーには直接アクセスできなくなりました。ユーザが構造体のメンバーの入出力を行には、代わりに各構造体メンバー用として定義されたアクセッサー(accesspr function)を使います。例えば、WindowRecordの先頭のGrafPortを得るには以下のアクセッサーを利用します。

CGrafPtr GetWindowPort(WindowPtr window);

同様に、DialogRecordの先頭のWindowRecordを得るのには、以下のアクセッサーを利用します。

WindowPtr GetDialogWindow(DialogPtr dialog);

構造体メンバーに対して、どのようなアクセッサーが定義されているかは、CarbonPortingGuideにまとめられています。しかしそれを参照するよりは、その構造体が定義されているManagerのUnversal Headerファイルを検索し、構造体メンバーの横にコメント文で記述されているアクセッサー名を見るのが近道で確実でしょう。例えば、Dialogs.hに定義されているDialogRecord構造体を見ると、そのメンバーの横に対応しているアクセッサーが記述されています。


struct DialogRecord {

WindowRecord window; /* in Carbon use GetDialogWindow or GetDialogPort*/
Handle items; /* in Carbon use Get/SetDialogItem*/
TEHandle textH; /* in Carbon use GetDialogTextEditHandle*/
SInt16 editField; /* in Carbon use SelectDialogItemText*/
SInt16 editOpen; /* not available in Carbon */
SInt16 aDefItem; /* in Carbon use Get/SetDialogDefaultItem*/
};
typedef struct DialogRecord DialogRecord;

最後にアクセッサーを利用したサンプルを示しておきます。どちらもCopyBits()を利用して、オフスクリーンのCGrafPortからウィンドウへ画像を転送する簡単なルーチンです。oldCopyTest() ルーチンが今までのMac OSでのやり方であり(かなり古典的です)、newCopyTest()がCarbonLib用に変更を加えた物です。

void oldCopyTest(WindowPtr window,CGrafPtr off,Rect *srt,Rect *drt )
{
CGrafPtr cptr;

GetPort( &cptr );
SetPort( window );
CopyBits( &(off->portBits),&(window->portBits),srt,drt,srcCopy,NULL );
SetPort( cptr );
}

void newCopyTest(WindowPtr window,CGrafPtr off,Rect *srt,Rect *drt )
{
PixMapHandle spix,dpix;
CGrafPtr port;
GWorldPtr gptr;
GDHandle ghd;

GetGWorld( &gptr,&ghd );
port=GetWindowPort( window );
SetGWorld( port,NULL );
spix=GetPortPixMap( off );
dpix=GetPortPixMap( port );
CopyBits( (BitMap *)*spix,(BitMap *)*dpix,srt,drt,srcCopy,NULL );
SetGWorld( gptr,ghd );
}

本当ならCopyBits()内の(BitMap *)というキャストも外せると美しいのですが...。CarbonPortingGuideを読んでみると、CopyBits()の引数に関してはApple側にも色々と苦悩があるようです(笑)ソースだけを見ていると、ルールが厳しくなり融通が利かなくなった分だけ記述量が増え、はっきり言って良くなったのか悪くなったのか判断に悩むところですね。

次回は(5)以降の工程について解説する予定です。

関連リンク:オッティモ
カテゴリ:Carbon/CF, 小池邦人のプログラミング日記


インプットメソッドでサイト検索、ディレクトリ登録は有償化を予定

インプットメソッドでサイト検索、そして有償のディレクトリサービス…ジャストシステムは新しいインターネットサービス「ATOK Direct」を開始する。インプットメソッドのATOKの機能を拡張したiATOKは、変換途中の文字あるいは独自のパレットに入力した文字をキーワードにして、サイトを検索する。たとえば、「あっぷる」と入力するとアップルコンピュータのサイトがQuickブラウザという独自のブラウザに表示され、さらにInternet Explorerなどの普段使っているブラウザにも表示させることができる。前方一致でマッチさせるため、「にほん」などたくさんの登録サイトがある場合には、変換候補として表示させるサイトを一覧表示し、そこから選択できる。約2万語の登録から開始し、会社やサイト、有名人などがサイトとして登録されている。追加の登録も受け付けるが、現在登録されているサイトを含めて2001年4月より、年間\12,000での有償登録に切り替える。変換候補リストの上位に並べるなどのオプションも用意する。ユーザの利用動向については調査をしない方針の予定だが、逆にこのサービスを経由して訪問した数などの統計情報も得られない可能性もあるということになる。
iATOKはインプットメソッド自体がインターネット接続をして、変換候補のリストを取得し、それを利用者に提示する形式である。そのため、インターネットに接続した状態で利用する必要が出てくる。一方、インプットメソッドなので、どんなソフトを使っていても基本的に利用できる。サービス開始は2000年9月12日だが、8月8日より先行サービスが開始される。当初はWindows版のみで、Mac OS版は後日リリースとなる。クライアント側はこのサービスを利用するのは無償となる。iATOKの機能はモジュールとして無償配付されるが、今後はATOKに標準で組み込まれる。なお、ネットワーク経由でのキーワードからURLを検索するような利用については、基本的には開放しない方針としている。

関連リンク:インターネットフロントエンドサービス「ATOK Direct」 9月12日スタート
カテゴリ:サービス


100MBのファイルを5秒でコピーできるGigabit Ethernet

1000BASE-TといういわゆるギガビットEthernetの搭載はほとんど予測されなかっただけに、発表時には驚きを持って迎えられた。プレス説明会でもその話題はもちろん話された。10BASE-Tも100BASE-Tも、そして1000BASE-Tも同じ8ピンのコネクタで接続され、自動認識して切り替えが行われるようになっている。ただし、高速なためにケーブルはエンハンストカテゴリ5あるいはカテゴリ6を使って欲しいということ。そして、1000BASE-Tは従来のネットワークと同様ハブを使う形式のスター型ネットワークであるが高速なため、1000BASE-T用のスイッチングハブを使うのが一般的となる。ネットワークの形態が従来のネットワークと同様のため、Power Mac G4を導入し、ハブを1000BASE-T対応のスイッチと置き換えることで容易に導入できるという点を重視したということだ。1000BASE-T対応スイッチも、近々8ポートで10万円台で発売されるなど、環境も揃ってきていることが紹介された。
ベンチマークでは、100MBのファイルのコピーが5秒程度で行えることが紹介された。これだと160Mbpsという計算になるが、条件が良ければ190Mbpsほどの速度になるという。これも、Pentiumの高速マシンでも140Mbps程度しか出ないとのことで、Power Mac G4のGigabitでの高速さもアピールしていた。190Mbpsは、1Gbitではないのではあるが、100BASE-Tのフルスピードよりも速いという点がやはり重要だろう。

関連リンク:Power Mac G4
カテゴリ:Power Mac, ネットワーク, Macintosh本体


新型オプティカルマウスのTV CMは、「ワイルドで行こう」だ

2000年7月26日に開催されたプレス向けの新製品説明会での話題をいくつかお届けしよう。筆者はこのときに始めてApple Pro Mouseを見て、触った。透明で中が黒いデザインはなかなか独特のシャープさがある。クリックボタンがないと言うのは感圧センサ的なものがあるのかと思っていたが思い違いだった。要はマウス全体がクリックボタンになっていると言えば良いだろうか。前方に力を入れると、中からカチっという音が聞こえる。マウスの前半分の領域に少し力を入れると傾く感じがしてマウスクリックがなされるのである。このマウスだけのテレビコマーシャルを行うそうだ。ステッペンウルフのワイルドで行こうを流しながら、レーシングカーの走行音に合わせてマウスがシュイ〜ンと走り回るというものだ。このマウスは新製品にはバンドルされるが、AppleStoreでのみ販売される。\7,500の是非はともかく、送料については現状の\2,000という金額は適用されない方向で検討しているということだ。
ディスプレイやPower Mac G4 Cubeも見ることができ、G4 Cubeは中身を取り出すところまでを見せた。G4 Cubeでは底面にコネクタなどがある。裏返すと把手があって、プッシュしてそれを引き出し持ち上げることによって、外枠と中身が分離されるという仕組みだ。ディスプレイもADCという新しいコネクタになったが、コネクタから出ているケーブルが80度くらいの角度が付いているのが細かいながら印象的だった。ケーブルは通常は差し込むと垂直に延びるが、このために、ケーブル自体はコネクタのある面に平行に近い感じで延びる。垂直に飛び出すコネクタのおかげで思いのほか場所が取られるのであるが、ちょっとしたデザインの修正ながら気が利いていると感じた。また、G4 Cubeに含まれているUSBスピーカーもユニークなデザインだが、小さくて球形っぽく、クリスタル感がなかなかかっこいい。ハーマンカードンによる開発品だ。G4 Cubeはやはり内部には増設スロットはなく、中に追加できるのはメモリとAirMacカードだけだ。AirMac向けのアンテナが本体にあるのだが、セラミックをつかった非接触の電波増幅器となっているなど、目新しい技術も搭載されている。
iMacは新しいカラーで驚かされたが、雰囲気はかなり地味になった。iMacも大人になったということか? また、iMacの新しいコマーシャルもお披露目されたが、新カラーを強調したものである。1つはクリームのホワイトルームをバックにSnowカラーのiMac Special Editionを見せるものだ。そして、歌詞に「Ruby」という言葉が含まれる曲、「Green」という言葉が含まれる曲をバックにそれぞれのマシンを見せるというものだったが、曲名は分からなかった。iMovie 2のデモもあり、実際に使うこともできたが、ユーザインタフェースがかなり改善され、見通しよく作業できるという印象を持った。

カテゴリ:iMac, Power Mac, 周辺機器, イベント


Server版G4もGigabit Ethernet対応、だがシングルプロセッサ

Power Mac G4の新製品に伴い「Macintosh Server G4 with AppleShare IP」もモデルチェンジし、Gigabit Ethernetに対応した。CPUは450ないしは500MHzだが、デュアルプロセッサではなく、シングルプロセッサである。10/100/1000BASE-Tに対応する。メモリは最大1.5GBまで搭載できる。ハードディスクはATA/66の30GBか、SCSIの36GBとなっている。ソフトウエアはAppleShare IPである。AppleStoreでは、450MHz、128M、30GBのマシンが\378,000となっている。なお、Mac OS X Server搭載機はAppleStoreでは見当たらなかった。

関連リンク:Macintosh Server G4 with AppleShare IP
カテゴリ:ネットワーク, Power Mac


スタイルシートのエディタソフトStyle Masterがバージョンアップ

Western Civilisation社のスタイルシートエディタ「Style Master」が1.8にバージョンアップした。Style Masterは、ダイアログボックスによる設定で、スタイルシートの定義を作成することができる。CSS1および、CSS2(Pro版)に対応している。価格は通常版が$29、Pro版が$49となっている。Mac OS版とWindows版がある。

関連リンク:Style Master
カテゴリ:オーサリング系