Macintosh Developer Online (MDOnline)


2000年11月4日発行号 - Mac OS X版のDAVE



以前にお届けした記事の中で、TILの文書に10月に開発関連についての重要な発表があるといったような話が掲載されていることをお届けしましたけど、結局なかったですね。WebObjectsの取扱いがどうなるのかが固まっていないのかも知れません。Mac OS Xに最適化されているはずのWebObjects 5も、予定では今年中ということになっています。もしかして、これがサンフランシスコでのExpoでの1つの目玉にするのかもしれませんが、年が明けると約束と違うということになります。いったいどうなるのでしょうか。すでにDeveloper Toolsを持っている人も多いとは思いますが、相変わらずアップルは「機密」というスタンスだそうです。いずれにしても、Mac OS XはUNIXであったり、Classicもあり、CarbonもCocoaもありという複雑な環境です。そのため、開発環境も複雑怪奇と言ってもいいでしょう。昔のように、もう決まったツールがあって、それを使うというのが前提ではなく、開発のモデルは無数にあります。そこで何を使うのかということが非常に難しいOSだと思います。もちろん、Cocoaがネイティブなのはもちろんですけど、GUIを主体にしたアプリケーションばかりではありませんし、UNIX系のオープンソースものを使うこともできます。もちろん、ミックスした環境もあり得ることですし、Pure JavaもPublic Betaには問題がありそうですけど、いちおう注目もできるでしょう。次の土日はちょうどMOSAの年に1度のミーティングがあります。私も講演をしますが、いろいろな人の話が聞けるというのも楽しみなところです。まだまだ、どこに転がるか分からない混沌とした世界は続きそうです。
MOSA:http://www.mosa.gr.jp/
さて、マイクロソフトの携帯ストラップはYUUKIさんが当選です。クリップは希望者が残念ながらいらっしゃいませんでした。
(新居雅行 msyk@mdonline.jp


【小池邦人のプログラミング日記】2000/11/04<簡単にいかないのはいつもの事>

まずは前回のフォローからです。前回、Metrowerks CodeWarrior 6.0でコマンドキーを押しながらソースコード内のAPI名をダブルクリックすると、QuickView等を起動し、その内容を検索してくれる機能が動かなくなったという話しをしました。その後、optionキーに変更になったと言う噂も流れたのですが、結論として、これは仕様のようです! つまりQuickViewを呼ぶ時は、Searchメニューの「Find Definition & Reference」(英語版の場合)を利用しろという事です。いやはや、まいりました(涙)。Commandキーの方は、代わりにテキストのブロックコピーをサポートしたようですが、この機能はソースコードのどのような編集に必要とされるのでしょうか? どなたか教えてくださいませ。

さてさて、最近のCarbon SDKの進捗状況はどうなっているでしょうか? 11/2にはADCメンバーサイトに「CarbonLib 1.2d1 SDK」が登録されました。内容については別の機会にお話するとして...Ver.1.1のGMが登場しないうちにVer.1.2へと進んでしまったようです(笑)。その前に登録されていた「CarbonLib 1.1f3 SDK」をCarbonLib 1.1のGMだと認識しろという事なのでしょうか?それともVer.1.1は世に出ることはなく、Ver.1.2こそが本命となるのでしょうか?とりあえず「デベロッパーはこれを使ってちょうだい」という最新のフィックスバージョン(現状はVer.1.04のまま)の早期登場を望みたいと思います。

今回はアプりケーションのCarbon化で避けて通ることはできないコントロールのAqua化についてお話したいと思います。通常、アピアランス対応ダイアログに実装されているコントロールは、Mac OS X環境では自動的にAqua表示されます。ですからAqua化と言っても特別難しいわけではありません。しかし、なにせAppleのやる事ですから(笑)そうはすんなりと話しは進みません。その良い例が「CarbonLib 1.0.4 SDK」の「Sample Code」フォルダ内の「AppearanceSample」です。このサンプルはMac OS環境で利用できる全コントロールの表示と機能をデモしてくれる有用なアプリケーションです。このアプリケーションはCarbon化されていますので、Mac OS XのNaitive環境で起動すれば、その表示は自動的にAquaベースとなります。

まずは古典的なボタン、ポップアップメニュー、ラジオボタン、チェックボックスを比較してみます。
 

一見どれも問題なくAquaベースになっているように見えますが、よく見ると「Make It So」「Eject Core」「Raise Shields」と表記されているボタンのテキストの左右が切れてしまっています。ラジオボタンの表記もおかしいですね。Aqua化を考慮すると、コントロール内のテキストの左右には適度なスペースが必要なようです。

次はMac OS 8から導入された新しい3Dボタン(Bevel Button)を比較してみます。
 

まず注目すべき点は、Auqaベースのタブコントロールには、タブのすぐ下に8ピクセル幅の色付きラインが入っていることです。この変更のおかげで、タブのすぐ下に配置したコントロールがこのラインと重なり、実にみっともない状態になっています(涙)。

こちらの例でも、コントロール内に表示されているテキストが何カ所かでめちゃめちゃになっています。この現象にもテキストの長さが関係していると思われます。Mac OS 8や9では、パレットやツールバー用として小さなボタンを接して並べるケースがありました。こうしたレイアウトもAquaベースでは問題となります。ボタンが隣のボタンと重なってしまい右側が欠けた状態で表示されます。Aquaベースでは、小さなボタンであっても隣との間に数ピクセルの間隔を入れる必要がありそうです。システムリソースからアイコンなどを流用している場合も注意が必要です。当然、Mac OS Xでリソースとして用意されていないアイコンは表示できません。例では「アップルメニューフォルダ」のアイコンが表示されていません。Mac OS Xへの移行を考えると、システムリソース内のオブジェクト(アイコンやカーソルやPICT)の利用は極力避けた方が賢明です。

次の例は、私がMac OS 9環境で開発したアプリケーションのウィンドウの一部を示しています。
 

レイアウトをまったく変更せずにCarbon化するとこうなってしまうという好例(悪例?)です。ボタンの文字は欠け、その影の部分が下のカラーパレットの一部を消しています。また、密着させた3Dボタンは隣のボタンの一部を消してしまっています。いやはや、Aquaベースのコントロールは、きっちりスペースを使い切ろうとする(狭い所が大好きな)日本人の感覚でレイアウトしてはいけない物のようです(笑)。

最後にもう一つだけ注意点を上げておきます。
 

これは、やはり私が作成したアプリケーションのダイアログの一部を抽出した例です。Mac OS 9上では綺麗にチェックボックスが並んでいますが、これをMac OS X環境で表示するとチェックボックスのサイズがバラバラになってしまいます。これは、Aquaベースのチェックボックスやラジオボタンが、その矩形枠の高さに合わせてサイズ(見た目)を変えるようになったためです。Mac OS 8や9では、コントロールの矩形枠の高さを変えても、チェックボックスやラジオボタンのサイズに変化はありませんでした。ですから、かなりいい加減なサイズで並べたとしても見た目上は問題が無かったわけです。しかし、Mac OS Xでは見事にバラバラになってしまいます。とりあえず推奨サイズは18ピクセルらしいですので、几帳面にサイズを合わせてレイアウトすることにいたしましょう。

Aquaのガイドラインを示したドキュメント「Adopting the Aqua Interface 」は、以下のApple Carbon Documentサイトに登録されています。ダウンロード後のPDFファイル名は 「AdoptingAquaInterface.pdf」です。

 http://developer.apple.com/techpubs/carbon/HumanInterfaceToolbox/Aqua/aqua.html

11/4現在、このドキュメントをダウンロードしようとすると、何故だか「サイトが見つからない」と警告されます。アップされていたドキュメントの内容が古くなったため、Appleが差しかえ作業を行っているのかもしれません。とりあえず、近日中には復帰すると思われますので注目していてください。

自社製のサンプルアプリケーションがこうした状態になるわけですから、Appleにはもう少し頭を使ってもらいたいものです。実は、デベロッパー側のこうした経験は今回が初めてではありません。System 6.xからSystem 7.xへの移行の時に、Appleがシステムフォントのレイアウトを大幅に変更したおかげで、ダイアログ内のテキスト表示がボロボロになったことがありました。その時は、ダイアログをSystem 6.xでもSystem 7.xでも見栄えの良いレイアウトに作り直すのに大変苦労した記憶があります。格好が良いのは結構なのですが、複数のシステムバージョンでも同じように美しく表示させたいと言う開発者側の願いを、Appleはもう少し考慮すべきではないでしょうか?
[小池邦人/オッティモ]

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


Mac OS XをWindows向けサーバやクライアントにするDAVEをリリース予定

Thursby Softwareは、Mac OS Xで稼動する「DAVE for Mac OS X」を2001年1月に開催されるMacworld Expo/San Fransiscoで公開する。DAVEはMac OS向けにすでに発売されいる。Mac OS上で稼動し、Windowsのファイル共有サーバに対して接続することができる。また、Windowsクライアントに対してファイルサーバとしても機能する。プリンタ共有の機能も利用できる。WindowsのネットワークにMacintoshを参加させることなどに利用できる。
DAVEは、UNIX向けのオープンソースソフトウエアであるSambaをもとに作られたものである。Mac OS X ServerでもSambaをコンパイルして動かすことは可能だったことから、Mac OS用のDAVEに比べて、Mac OS X用のDAVEは極めて容易に稼動はさせることができる。また、Mac OS Xですでに稼動させたという報告もある。ソースコードからコンパイルすればいい。ただし、ファイル名の格納方法として、Shift-JISなどには対応しているものの、Mac OS Xの形式であるUTF-8には対応していないため、たとえばSambaをファイルサーバとして利用したときに、日本語のファイル名のファイルが正しく取り扱えなくなる。こうした点が解決されてDAVEが利用できるのであれば歓迎されることではある。
SambaとDAVEの違いは、おそらく各種の設定をきちんとしたユーザインタフェースで行えるようにしてくると思われる。その意味でオープンソースとして入手できるものとの差別化は行える。ちょうど、Tenon社のiToolsなどと同じような位置付けの商品となるだろう。いずれにしても、Mac OS X Public BetaにはWindows向けのファイル共有機能が組み込まれていない。Windowsとの共存はもはや必須の機能だけに、Mac OS X版のDAVEの登場は期待できるだろう。なお、Mac OS Xの正式リリースから90日以内に、DAVE for Mac OS Xを発売するとしている。日本の販売代理店であるメディアビジョンのサイトでは、Mac OS X対応版のDAVEについては何の記載もない。

関連リンク:Thursby Announces DAVE for Mac OS X
カテゴリ:ネットワーク, Windows


Mac OS Xでアップルメニューを表示できるようにするソフトがバージョンアップ

Sig Softwareは、Mac OS Xで、Mac OSにあったようなアップルニューやアプリケーションメニューを実現する「Classic Menu」のアップデート版Ver.2.1をリリースした。Classic Menuをインストールすれば、Mac OS Xのメニューバーのいちばん左にアップルメニューが登場する。また、メニューバーのいちばん左には稼動しているアプリケーションが項目として登場するアプリケーションメニューがでてくる。Mac OS X Developer Preview 4向けにリリースされていたが、Ver.2.1ではPublic Beta向けに調整を行い、Classicアプリケーションが稼動しているときにClassic Menuの機能は働かないようにすることや、表示関連の機能向上を図った。価格は$10のシェアウエアとなっている。

関連リンク:Classic Menu
カテゴリ:ユーティリティ


Webサーバをリアルタイムで監視するソフト、クライアントはMac OSからも利用可能

ディアイティはWebサーバやFTPサーバの稼動状況をリアルタイムでモニタする「WatchPoint」を2000年11月20日より発売する。Windows NT SP4あるいはWindows 2000でサーバを稼動させ、ネットワーク内にあるWebサーバなどの応答速度などを監視することができる。ネットワークを監視する形式のため、Webサーバには一切手を加えなくても運用ができる。解析結果は、WindowsやあるいはMac OSで参照することができる。単一のサーバを解析できる「WatchPoint Small Business Edition」が148,000円、複数サーバを解析できる「WatchPoint Enterprise Edition」が398,000円となっているが、機能制限があるフリー版「WatchPoint Lite」も用意されている。Webサイトが正常に機能しているかなどを随時監視する必要のあるeコマースサイトなどでは有用かもしれない。

関連リンク:WatchPoint
カテゴリ:サーバー関連


Mac OS X Public BetaのClassic環境に関する文書、コピー&ペーストに時間がかかることなど

Tech Info Libraryに、Mac OS Public BetaのClassic環境に関する文書がいくつか公開された。以下は文書のアドレスと要約だ。

◇Mac OS X Public Beta: Copy and Paste Between Classic and Mac OS X Applications
 http://til.info.apple.com/techinfo.nsf/artnum/n106059
Classic環境でコピーをして、Mac OS Xのアプリケーションでペーストするときに正しくペーストされないことがある。これは、クリップボードのデータの取込みに時間がかかっているためで、少し時間をおいてからペーストすれば良い。

◇Mac OS X Public Beta: No Serial Port Access from Classic
 http://til.info.apple.com/techinfo.nsf/artnum/n106060
Mac OS X Public Betaでは、Classic環境ではシリアルポートの利用ができない旨が、Tech Info Libraryに公開されている。たとえば、シリアルポートを使うプリンタを使おうとすると、「notInitErr (-900)」といったエラーが出る。シリアルポートを直接使うものは、Classic環境からはとにかく利用できないようで、Mac OS 9を起動するという対処方法が説明されている。将来的に修正されるということも記載されていない。

◇Mac OS X Public Beta: Access Not Provided in Classic for Certain Hardware-Oriented Applications
http://til.info.apple.com/techinfo.nsf/artnum/n106058
CDやDVDプレイヤのような、ハードウエアを直接利用するようなアプリケーションは、Classic環境では動作しない。同等な機能のMac OS X向けのアプリケーションを利用する必要がある。

◇Mac OS X Public Beta: Some Classic Applications Require Installation of System Folder Components
 http://til.info.apple.com/techinfo.nsf/artnum/n106057
ClassicアプリケーションはMac OSのシステムフォルダに特定のファイルやフォルダなどが必要なことがある。AppleWorks 5を例に説明されている。

カテゴリ:Knowledge Base(旧TIL), Mac OS X


Mac OS用のCVSクライアントがバージョンアップ

Mac OSで稼動するCVS(Concurrent Versions System)のクライアント「MacCVSClient 1.6」がリリースされている。CVSはクライアント/サーバ式でソースコードの配付や管理を行うためのシステムで、バージョンが更新されていくソースコードの管理に使われる。オープンソースで配付されているソースコードの管理によく利用している。サーバはLinuxなどで稼動するが、Mac版のサーバはない。なお、Mac OSのリソースもサーバに登録できる仕組みになっている。Ver.1.6でチェックアウト処理を高速化するなどの改良が加えられている。

関連リンク:MacCVSClient
カテゴリ:開発ツール


MacPythonのVer.2.0が登場、Carbon化バージョンは近々リリース

オブジェクト指向のプログラミング言語であるPythonのMacintosh版がVer.2.0になった。フリーウエアでありソースも配付されている。Ver.2.0ではPowerPCオンリーとなった。シンプルなスクリプトから大規模なアプリケーションまで作成できる言語として知られており、開発ツールも含めての環境が提供されている。Mac OSの機能を利用でき、オフスクリーンを含むQuickDrawの利用やQuickTime、あるいはAppleScriptを利用できる。ウインドウを作成するライブラリもあり、ドラッグ&ドロップにも対応している。CGIの作成にも利用されており、スダンドアロンのアプリケーションも生成できる。
なお、Mac OS X版については特に開発は進めていないようで、UNIXベースのものを利用するようにといった記載がWebページにある。ただし、カーボン化については予定があるとしている。

関連リンク:Jack’s MacPython Page
カテゴリ:開発ツール


Open TransportのセットトラッキングについてのTechnoteが更新

Open Transportでのアセットトラキングという考え方について説明されたTechnoteが更新されている。Open Transportを使うプログラマにとっては読むべき文書で、Carbon化に対する話題も書かれている。

関連リンク:Understanding Open Transport Asset Tracking
カテゴリ:Technote, ネットワーク


Macでの暗号化を扱うカンファレンスが2001年1月に開催

Macintoshにからめた暗号化の話題を取り扱うカンファレンス「Mac-Crypto Conference」が2001年1月29日の週に開催される予定となっており、発表者を募集している。場所は米国CupertinoのAppleキャンパスであり、すでに予約はしているそうだ。以前は1998年10月に開催されており、PGPやSSLなどの一般的な話題をMacintoshにからめたものや、暗号化関連のAPIについてなどが取り扱われている。

関連リンク:CALL for Papers: The Millennium Mac-Crypto Conference
カテゴリ:暗合化, イベント


DVIとADCのディスプレイ接続を変換するアダプタを発売

ディアイティは、DVIコネクタのディスプレイを、ADCコネクタを持つMacintoshに接続するためのアダプタ「BELKIN ADC-DVI Connector」を2000年11月下旬より発売する。価格は6,000円。以前のApple Studio DisplayなどではDVI(Digital Video Interface)が接続端子として搭載されていたが、PowerMac Cubeなどでは仕様が異なりADC(AppleDisplayConnector)に変更された。DVIタイプのディスプレイをそのまま使いながら、現在販売されているPowerMacを利用できることになる。DVIもADCもいずれもデジタル方式でのディスプレイ接続を行う。

関連リンク:ditshop.com
カテゴリ:周辺機器