Macintosh Developer Online (MDOnline)


2000年6月9日発行号 - Carbonの現状



山の手線に乗ったら、あちらこちらに、神田うのとかヒロミら芸能人5人の白黒集合写真がありました。どこかのテレビ局のドラマの宣伝かと思ったら、無料プロバイダのlivedoor(http://www.livedoor.com)の宣伝でした。みなさん単に立っているだけで、しかも白黒写真という濃いものだったりして、ほんとに“イメージ”だけのものです。無償プロバイダということで、サービスそのものが強調できるメリットだと思うのですけど、そういうことよりイメージの方が重要なのでしょうか。
それで、埼京線に乗ったら、今度はFMVのノートパソコンの広告が目に止まりました。開いたノートが空中に浮いている雰囲気で、横方向から撮影しているというPowerBookの広告写真をまったくパクリったようなデザインでした。背景が白いのと黒いのとの違いはあります。ただ、FMVだけでなく、ノートパソコンを横から撮影するというのは他でもパクっていましたけど、広告の世界はそれもありなんですね。
広告業界にはあまり関わって来なかったので、正直なところ制度的にも感覚的にも分からないことが多いです。あるミーティングでディスカッションしているときに、「“広告の3B”ってのがあって、必ずストライクゾーンに入るテーマがあるんですよ」と教えていただきました。きれいどころ(Beauty)、赤ちゃんや子供(Baby)を広告に使えばまず間違いなく好感度が高いとか? と教えていただきながら、「もう1つのBはなんだったけ?」なんておっしゃられていました。何か気になるので、どなたか御存じの方はこっそり(笑)、教えて下さい。
(新居雅行 msyk@mdonline.jp


【小池邦人のプログラミング日記】2000/6/7<Mac OS Xへの道 Carbonの現状>

現状のアプリケーションをMac OS X環境へ移植する作業を容易にするために、Appleは「Carbon」というAPI(Application Program Interface)セットを導入しました。Mac用アプリケーションを開発されている方は、Carbonの意味について正しく理解されていると思います。でも、そうでない方は、感覚的にはなんとなく理解できても「説明してみろ」と言われると、困ってしまうかもしれません。

我々調理人(プログラマー)は調理場(Mac OS)で、手に馴染んだ道具や食材(API)を用いて料理(アプリケーション)を作っています。古い道具ですと15年以上も愛用しています。5年ぐらい前になりますが、Jobsが「みなさん、もっとモダンな調理場と道具、そして素敵な食材を沢山用意しました。ぜひ、こちらへ移って料理を作ってください!」と訴えました。(その調理場はビルの20階にあったそうです)それが「Rhapsody」(現在のMac OS X Server)だったわけです。ところがどっこい、職人肌の頑固な調理人は、慣れ親しんだ道具や、使い方を熟知した食材を手放してまで、ほいほい調理場を変えるほど甘くはありませんでした(笑)。

メジャーな調理人達からまったく賛同の声が上がらないのを見て、Jobsは作戦を変更しました。「みなさんが愛用している道具や食材を、新しい調理場でも使えるよう確約しましょう!」 Jobsが言うところの新しい調理場が「Mac OS X」であり、その約束が「Carbon」なのです。新しい調理場に設置不可能ないくつかの古い道具は、結局捨てられる運命でしたが、「それなら、そちらも使ってみようか?」と思った調理人も多かったようです。Jobsの作戦は見事に成功したと言うわけです。では、Jobsの約束はどの程度実現されたのでしょうか? 現在では、AppleWorks 6.0程度のアプリケーションが開発できるレベルに到達しています。Mac OS 9環境では完全に実用的なレベルになりました。ただし、肝心の新しい調理場の完成が遅れ気味なのが気になります(笑)。

Carbon APIは、機能拡張フォルダに入っているCarbonLib(ライブラリ)により提供されています。プログラマーは、開発中のプロジェクトにCarbonLibをリンクすることでCarbon APIを利用できます。CodeWarrior IDEで、Carbonアプリケーションを作成するプロジェクト(Metrowerks C)を見てみましょう。リンクするライブラリの数を比較してみてください。Mac OS 9用アプリケーションでは、最新のOS機能を利用しようとすると、数多くのライブラリをリンクする必要があります。
 figs/koike/fig0001.gif
 figs/koike/fig0001.png

それと比較してCarbonアプリケーションの場合には、「MSL RuntimePPC.Lib」以外にリンクするのは「CarbonLib」だけです。
 figs/koike/fig0001.gif
 figs/koike/fig0001.png

これを見ると、Mac OSが15年の間に、いかにグチャグチャになっていたのかが良く分かります(笑)。Cabonは、そうした混沌の「リセット」でもあるわけです。

Appleは、ここ数年でToolbox APIを大量に増やしてきました。増強されたAPIを調べてみると、彼らがMac OS Xを視界に入れていたことは間違いありません。OSのバージョンが新しくなりAPIが増強されると、アプリケーションから利用できる便利な機能が増えます。このこと自体は悪いことではありません。しかし、バージョン変更に伴うAPIの変遷が激しいと「自分のアプリケーションは、どのOSバージョンまでサポートすべきなのか?」という「問題」をプログラマーに突きつけます。つまり、より最新の機能をアプリケーションに盛り込めば、古いOSがインストールされたままのMacはサポートから除外されることになります。

「古いOSを使っているユーザも考慮すべきか?」「古いOSを無視し最新機能を優先するのか?」例えば、いにしえの「Standard File Package」と、最新の「Navigation Service」の使い分けに苦慮された方も多いでしょう。こうした事態は、OSによる機能差を吸収したフレームワークを使えば、そこそこ解決できます。でも、そうした物を使わない(使えない)場合には、Gestalt()ルーチンでクライアント環境(OSバージョンやQuickTImeバージョン)を細かくチェックし、利用できる機能とできない機能を切り分ける必要があります。そして、もし利用できない機能があれば、それを(OSの機能を使わず)独自で実装する必要があります。当然、この作業はプログラマーの負荷を増やします。

嬉しいことに、CarbonLibを用いたアプリケーションは、この悩みをかなり軽減してくれます。CarbonLib v1.04をインストールしたMac OS 8.1では、Carbonアプリケーションを起動することができます。つまり、Carboアプリケーションを開発すれば、Mac OS 8.1からMac OS Xまでの幅広いクライアントに、最新機能を有したアプリケーションを提供できるわけです。まあ、将来的に「Mac OS XI」や「Mac OS XII」が出てくれば、元の木阿弥になることは目に見えていますが、「プログラマーしばし休息」と言ったところでしょうか(笑)。

次回は、「CarbonLib」と「Coorbon SDK」(Carbonアプリケーション開発キット)をお話しする予定です。

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


フリーのオーサリングツールiShellがVer.1.2.1に

Mac OSおよびWindowsで稼動するフリーのオーサリングツール「iShell」のVer.1.2.1がリリースされた。バージョンアップ点は2ボタンマウスサポートやバグ修正など小幅なものである。iShellは、ウインドウにオブジェクトを配置する形式のツールだが、ドラッグ&ドロップで設定などを構築し、オブジェクトの階層化ができるなど、高機能なツールだ。また、イベントに対するプログラムを作成するということができ、プラグインなどでの機能拡張も可能である。iShellを利用して、マルチメディアのプレゼンテーションやあるいはカスタマイズしたストリーミングプレイヤなどを作成することができる。こうしたツールやランタイムについてはフリーで配付できるが、$2000でメンバーシップを取得することでPulse 3Dのサポートなど、利用範囲が広がるという仕組みになっている。

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


Window Manager的にダイアログボックスを利用できるライブラリ

サンプルコードとして提供された「AuntieDialog」は、ダイアログボックスの処理を、Window ManagerやControl Manager的に作業できるようにすることを意図したライブラリだ。ソースコードも提供されている。Dialog ManagerのAPIでは、コントロール類はDITLリソースとして定義したものを利用するが、AuntieDialogの機能を利用すると、CNTLリソースで定義したコントロールをダイアログボックスに追加したり取り除くことができる。ダイアログボックスの処理をウインドウ的に行いたい場合には、このソースを利用することも検討するとよいだろう。Carbon対応である。(ところで、Auntieは会話や幼児語での「おばちゃん」という意味だそうだ)

関連リンク:AuntieDialog
カテゴリ:グラフィックス, アップルからの開発資料


G4でのコントロールパネルなどでの文字化けは、9.0.4へアップデートで回避

Tech Info Libraryに公開された文書によると、ある条件で、コントロールパネルの「テキスト」「サウンド」あるいはコンテキストメニューの表示などでの文字化けが発生する。500MHzのAGPタイプのPower Mac G4で、Mac OS 9.0.2を搭載している場合に発生する。回避するには、デスクトップの再構築とMac OS 9.0.4へのアップグレードを行えばよい。

関連リンク:Power Mac G4 (AGP) & Servers: Unreadable Text in Certain Control Panels and Contextual Menus
カテゴリ:Knowledge Base(旧TIL), Mac OS 9, Power Mac


Final Cut ProでのDVビデオ利用時の設定について

Tech Info Library-Jに、Final Cut Proで、DVビデオを取り込み、出力する場合の設定についての解説が掲載された。Final Cut Proでの「ビデオ収録の設定」「FCP 取り込み初期設定」「FCP シーケンス設定」を一致させることが必要であるとしており、代表的な設定例が詳しく記載されている。

関連リンク:100374JO:Final Cut Pro: DV ビデオを使用する際の設定
カテゴリ:Tech Info Library-J, ビデオ編集


TIL-JにMac OS 9についての文書が公開、マルチユーザ機能でのポイントなど

日本語での技術情報を提供するTech Info Library-Jに、Mac OS 9についての文書が公開された。文書のアドレスと要約は以下の通りだ。

◇60536JN:Mac OS 9.0 でサポートされていない Mac OS テクノロジー
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60536
QuickDraw GX、GeoPort Telecom Adapter、ファクス機能付きLaserWriterは、Mac OS 9ではサポートされていない。

◇60539JC:Mac OS 9: “Disk First Aid”と“ドライブ設定”の起動について
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60539
Mac OS 9で利用できるDisk First Aidとドライブ設定のバージョン情報。

◇60527JC:Mac OS 9: コントロールパネル書類が開けません
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60527
いくつかのコントロールパネルは、所有者でないと設定ができなくなっている。

◇60540JC:Mac OS 9:“利用者 & グループ”コントロールパネル
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60540
従来の「利用者&グループ」は「ファイル共有」コントロールパネルに含まれた。

◇60549JN:Mac OS 9: マルチユーザ・コントロールパネルでパスワード変更ができません
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60549
音声認証のパスワードを設定した場合の対処法が記載されている。

◇60553JN:Mac OS 9: マルチユーザ - 機能拡張マネージャを使用停止にする
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60553
制限付きユーザでも起動時にスペースキーを押したままにしておくと、機能拡張マネージャを利用できてしまう。これは、「EM機能拡張」を取り除いておくことで対処できる。

◇60534JN:Mac OS 9: マルチユーザ - Epson 社製プリンタを使用する場合
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60534
マルチユーザでエプソンプリンタを使えるようにするための処置が記載されている。設定の変更方法等が詳しく記載されている。

◇60547JC:Mac OS:“フォルダの保護”機能が使えません
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60547
「一般設定」コントロールパネルのフォルダ保護は機能しない。同じ機能はマルチユーザ機能で提供している。

◇60503JN:Mac OS: フォルダがアプリケーションパッケージのように見える
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60503
Package First Aidを使って修復する。

◇60469JC:Mac OS 9: “ネットワークブラウザ”がオープンできません
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60469
AppleShareクライアントが使えない状態だと、表題のようなエラーが出る。AppleShare機能拡張を使うようにする。

◇60642JC:Mac OS 9: サウンドコントロールパネルのヘッドホン接続表示
 http://til.info.apple.co.jp/cgi-bin/artnum?id=60642
サウンド出力端子に、ヘッドフォンあるいはスピーカーが接続されると、「サウンド」コントロールパネルで、ヘッドフォンの絵が表示されるようになる。

◇58477JN:Startup Manager で起動デバイスを選択する(更新)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58477

◇25125JN:Mac OS 9.0.4: Apple DVD Player 2.2 をご利用ください(更新)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=25125

関連リンク:Tech Info Library - Japan
カテゴリ:Tech Info Library-J, Mac OS 9


TIL-Jにネットワーク関連文書が公開、AppleShare IPでPOP受信したときなど

日本語での技術情報を提供するTech Info Library-Jで、ネットワーク関連の文書が翻訳されるなどして公開されている。文書のアドレスと要約は以下の通りだ。

◇86030JN:POP メールの回収はヘッダの記載に依存します
 http://til.info.apple.co.jp/cgi-bin/artnum?id=86030
SMTPによるメール配信では、ToやCcなどのヘッダ情報ではなく、サーバ間のコマンドのやり取りであて先がきめられる。Toなどは表示用のものである。こうしたメカニズムを使っているので、Bccの配送ができる。

◇86029JN:AppleShare IP 6.x: メールが Postmaster に誤って送信される場合があります。
 http://til.info.apple.co.jp/cgi-bin/artnum?id=86029
前のTIL-Jにあるような理由から、AppleShare IPで、メールの配信をPOPで受けるような設定にした場合、送信者の情報が欠けてしまい、Postmaster宛になってしまうことがある。基本的には、SMTPでメールを受けるようにする。

◇58500JC:一般的な PC カードスロットで、AirMac カードを使用しないでください(更新)
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58500

◇58536JC:Power Mac G4 (AGP Graphics): AirMac カード取付方法
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58536

関連リンク:Tech Info Library - Japan
カテゴリ:Tech Info Library-J, ネットワーク, サーバー製品


通常の形以外のCD-ROMなどのメディアは最新のiMacでは利用できない

Tech Info LibrarYに、スロットローディング方式のiMacで利用できないCD-ROMメディアについての解説文書が掲載された。通常の円形のCD-ROMでないと利用できないが、利用できないタイプのメディアとして、円形でないものの写真が例として掲載されている。そうしたイレギュラーな形のメディアを見ることができるという意味では、一見の価値のある文書だ。

関連リンク:iMac (Slot Loading): Non-Standard CD Shapes Not Supported
カテゴリ:Knowledge Base(旧TIL), 周辺機器, iMac


WebObjects 4.5のJavaに関する文書が公開

Tech Info Libraryに、WebObjects 4.5のJavaに関する文書が公開されたが、WebObjects 4のJavaの文書からの抜粋のような内容だ。WebObjects 4.5がサポートするJavaのVMは、Windows NTとSolarisがJDK 1.1.8、HP-UXが1.1.7となっている。また、JITは利用できないとしているが、フレームワーク内のコードの実行が大半を占めるので、JITがないことでのデメリットは少ないとしている。
◇(参考)WebObjects 4: Java FAQ
 http://til.info.apple.com/techinfo.nsf/artnum/n70003

関連リンク:WebObjects 4.5: Java FAQ
カテゴリ:Java, WebObjects


2000/6/8に公開されたTIL-Jの記事

日本語での技術情報を提供するTech Info Library-Jで、別掲の記事以外に6月8日に以下の記事が公開されている。文書のアドレスと要約は以下の通りだ。

◇58482JN:iBook & iMac: Mac OS 8.6 CD から起動すると、スリープから正しく復帰しません
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58482
表題の通りで、復帰方法などが記載されている。Mac OS 9のCD-ROMから起動した場合には、こうしたことは発生しない。

◇58226JN:Power Macintosh G3 (Blue and White): 技術的な仕様
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58226

◇24274JC:Power Macintosh G3: リスタート時に RAM ディスクが保存されない
 http://til.info.apple.co.jp/cgi-bin/artnum?id=24274
古いタイプのG3では、RAMディスクの内容は再起動時には保存されない。メモリコントローラの仕様について、少し詳しく記載されている。

◇58406JN:PowerBook G3 Series (Bronze keyboard): PowerBook SCSI 設定コントロールパネル内の SCSI ID の設定について
 http://til.info.apple.co.jp/cgi-bin/artnum?id=58406
SCSIディスクモードのSCSI IDが設定に関わらず2になってしまう現象についての対処法。

◇43005JC:USB: ハブについて
 http://til.info.apple.co.jp/cgi-bin/artnum?id=43005
USBハブには、ACアダプタから電源を取るセルフパワーモードのものと、コンピュータなど別の機器から電源を取るバスパワーモードの2種類がある。

◇25142JN:AppleWorks 6: スタートポイントの Web タブにおける白紙のアイコン
 http://til.info.apple.co.jp/cgi-bin/artnum?id=25142
AppleWorks 6のスタートポイントにあるWebタブでは、アイコンが白紙になっている。これを解決する方法が手順として示されている。

◇24270JN:Apple Software Restore: Resore CD の使用方法について
 http://til.info.apple.co.jp/cgi-bin/artnum?id=24270
Apple Software Restoreについての情報だが、英語版の画面が出ている。

関連リンク:Tech Info Library - Japan
カテゴリ:Tech Info Library-J