MDOnlineは今日がいちおう4月最後の発行です。カレンダー通りに休みをいただきますので、次の発行は5月1日になります。
約1週間ほど前に、部屋の模様替えを大きく行いました。その後のちょぼちょぼと移動などしてやっとなんとか落ち着いてきたところです。模様替えした理由は、CRTディスプレイを使わなくなったからで、PowerBookとDynabook SSさえ使えればいいという状況になったからです。17インチのCRTもいろいろと使ってはいたのですけど、ほとんど使わない状況になり、そしてPower Macintosh G3をサーバとして使うことにもしたのでそれにCRTをつなぎ、本棚の奥に押しやりたかったという次第です。併せて本棚を整理していると、Apple関連の書籍がどっさりでてきます。やっぱり今回も捨てることができませんでしたが、さすがに物置に移動させました。黒い背表紙の「New Inside Macintosh」(もちろん、いまさらNewではないですけど)も、まだ見える場所に置いてあったのですが、さすがにWebで必要な箇所は見ることができる上に、さらにNew Inside Macintoshの内容も多くは古くなってしまっていることがあります。しかし、初期のInside Macintoshなども含めて、残してある書籍は膨大です。物置もそろそろいっぱいになってきているのですが、なかなか引っ越しでもしないとものは減らないですね。もちろん、Inside Macintoshに限らず使わないものを残してはいますが、捨ててもいいものとは言え、なかなか踏ん切りがつかないものです。Mac OS Xの中にも新旧のさまざまなものが混在するのもなんとなく納得できるというところでしょうか。
(新居雅行 msyk@mdonline.jp)
QuickTime 5のMac OS版も英語版ではあるが正式版が公開されたが、Appleのデベロッパー向けのサイトで「What’s New in QuickTime 5」という文書が公開された。QuickTime 5の新機能を詳細に解説したドキュメントでかなり詳しく書かれている。たとえば、新しい機能であるスキンの作り方も、図やサンプルを示しながら詳しく書かれている。QuickTimeの新しい機能を開発の中にどう取り入れるかということを検討するための基礎資料になる文書だと言えるだろう。
関連リンク:What’s New in QuickTime 5
カテゴリ:アップルからの開発資料, QuickTime
あいや、またもやちっとごぶさたしてしまった。かたじけない。実は4月に入ってすぐ、PowerBookがいかれちゃったんである。具体的には、AC電源が認識されなくなったのだ。半年程前に、液晶と本体とのヒンジ部分が壊れてクイックガレージさんで修理してもらった話はしたけど、今回は簡単にはいかなかった。
何はともあれ、本体とACアダプタを京都のクイックガレージさんに持ち込んだ。で、別のPowerBookでACアダプタが認識されるのかテストしてくれたんだが、結果は問題無しだった。ということは、壊れているのはACアダプタの方でなくて、本体側ということになる。ということは…。そう、半年前と違ってこの手の修理はアップルに送ってしてもらわなくてはならないのだ。ともかくアップルに電話してみた。おおよそ10日程かかかるという。直さないわけにはいかないし、ともかくおねがいすることにした。
ところでまあ当然ながら、「ハードディスクの中身は保証しません。」と言われて、はたと気がついた私・・・。そうだ、10日間もデータごといっちゃったら困るなあ…。と、そこに悪魔だか天使だかがささやいた。「いやあ、そりゃ困るねえ。いっそのことハードディスクを入れ替えたらどう?10Gではいまさら手狭だし。あ、いや、ハードディスクが欲しいわけではなく、データがね、いっちゃうと、ほら、困るやん?つまりこれはやむを得ないことなんだから、かみさんもきっと納得してくれるよ…。」そうだなあ、いやあ困った。(にやにや)仕方ないなあ。(にやにや)残念だけど、(にやにや)ハードディスクを入れ替えよう。(にやにや)
というわけで、寺町の電気街まで出かけていって20Gに入れ替えた。で、本体はアップルにお願いした次の日の昼に、日通のお兄さんがやってきて梱包、引き取られていった。この後見積もりが郵送で送られてきて、あらびっくりのそんなにするのん?と思いつつもなおしてもらわんことにはしようがないし…。で、最初の予定より3日程遅れてかえってきたのである。
と言うことがあってなかなか次が書けないでいたのであるが、悪いこともあれば良いこともあるものだ。実はハードディスクを入れ替えたので、帰ってきた本体には当然まっさらのハードディスクしか入っていない。というわけで、Mac OSをインストールしてMac OS X Server 1.2をインストールした。そう。みんな今はもうDarwinなMac OS Xの時代なんだが、うちのサーバはMac OS X Server 1.2で運用している。PowerBookはそのための開発環境としての意味もあるので、今もってRapsodyなMac OS X Server 1.2をインストールしたのである。ちなみに、今回の故障がお金を喰っちゃったので、ビンボーな私はまだMac OS Xを購入できずにいる。そう言ってるうちに、Mac OS X Serverも2.0になっちゃいそうなのであるが…。
まあともかく、良かったのはこの連載の続きが、思いもかけずリアルタイムに書けちゃうのである。つまり、PowerBook上に環境を構築するそのままが書けると言うわけだ。さあ、ちっと気合を入れていくぞー!
前回までで、あなたのハードディスクの中のあなたのホームフォルダの中のLibraryの中のOpenUpの中には、解凍されたBINDのソースなどが展開されているはずである。ところで、OpenUpフォルダ以下は、OpenUpを終了する時にダイアログが出て、きれいに消し去ってくれるようになっている。私の場合、OpenUpフォルダと同階層、つまりホームフォルダの中のLibraryの中に、「src」というフォルダを作って、解凍されたもののうちとっておく物はその中に入れるようにしている。
さて移動したということにして続きを行こう。あなたがダウンロードした物は、すでにMac OS X Server用に作られた物である。OpenUpのインストールの時ほど簡単ではないが、それでも簡単である。さっそくやってみよう。今回は、いよいよMacでは馴染みがなかったコマンドラインから操作するわけだ。
アップルメニューからTerminalを起動しよう。するとウインドウが開いて何文字か出たのちにカーソルが点滅しているはずだ。その状態で「cd」と打ち込み、半角スペースを入力する。そのあと、ここからはMacならではなのだが、WorkspaceManagerのウインドウの中で、解凍して出てきた中のBINDというフォルダの中の、srcという項目を見つけてほしい。
項目をクリックすると今BINDと表示されているフォルダの位置にsrcというフォルダがあらわれる。このアイコンをTerminalウインドウの中にDrag&Dropしてみよう。するとそのパスが入力される。そこでリターンするとTerminalの上で、そのフォルダに焦点が合わされるのだ。
さて次回はファイルやフォルダの所有権、アクセス権について話さなくては…
[森下克徳]
カテゴリ:Mac OS X Server, 崖っぷちからWebObjects
このシリーズは、2000年12月にInterface BuilderとProject Builderを使った基本的な開発手法をまずお届けし、そこではOutletsとActionについての概念を詳しく説明した。Interface Builderで設定をすることにより、プログラム内でテキストフィールドなどのコントロール類を参照する方法などを示した。また、2001年3月には、抽選用アプリケーションがそこまでの知識で簡単に作成できることも示した。その続きで、今回はアプリケーションの起動を行う場面を中心に説明をしたい。ダブルクリックして起動するアプリケーションが作成できるのは、Mac OS X向けにビルド可能なProject Builderでは当然のことだとして、やはり目指すはドラッグ&ドロップによって起動し、さらにはそのファイルを読み込むなどの処理につなげたい。もちろん、起動時だけでなく、起動後にドラッグ&ドロップもあるだろう。ドラッグ&ドロップにはFinderの項目間でもあるが、起動したアプリケーションはDockにアイコンも表示され、そこへのドラッグ&ドロップもある。なお、Finderからのドラッグ&ドロップは、FinderでのアプリケーションアイコンでもDockのアイコンでもプログラム上では同じイベントとなるため、それぞれ機能を組み込むという必要はないことは最初に押さえておこう。
従来までのMac OS向けアプリケーションでも、ドラッグ&ドロップが可能だったが、これは、OpeDocumentsと呼ばれる種類のAppleEventに対応する必要があった。C言語でフレームワークなどを使わないとすると、AppleEventのハンドラとなる関数を記述し、その関数が所定のイベントで呼び出されるようにするといった処置が必要だった。このイベントはFinder絡みでもあったので、「Finderイベント」としてひとくくりにされることもあったが、いずれにして、そうしたイベント処理を組み込むのがポイントであった。イベントを登録する処理や、あるいはイベントからパラメータを取り出す処理などが煩雑であったので、このあたりはプログラミングを進める上での関門にもなっていた。
Mac OS Xでもやはり同様な仕組みが働いている。少なくとも、Carbonアプリケーションでは、そうしたOpenDocumentsというAppleEventの処理を組み込むことになる。背後でどう動いているかまでは分からないが、こうしたイベントはFinderだけでなくDockで表示されているアプリケーションに対してドラッグ&ドロップしても発生する。
同じように、Cocoaアプリケーションでもやはりドラッグ&ドロップを受け付ける仕組みが作られているが、こちらはフレームワークに機能が組み込まれているので、AppleEventを直接処理することはまずしなくてすむというメリットがある。まずはその考え方から説明したい。「イベント」ということをまずは概念的に理解してもらいたい。Mac OSの頃からのイベントと同じように、実行しているソフトウエアの内部で「何か起こった」ということをイベントと考える。もちろん、何か起こることをどうやって検知するのかといった問題も知りたいところだが、フレームワークを使うときにはまずはどんなイベントが起こるのかという点に注目しよう。イベントにはいろいろあるのだが、フレームワークでサポートしているイベントの処理を理解するというのがまずは第一歩となる。
Cocoaのフレームワークで作成されるアプリケーションは、NSApplicationクラスの1つのインスタンスであるというのが大前提だ。このクラスはアプリケーション作成ではきわめて重要なので、ドキュメントについては是非とも目を通しておこう。このアプリケーションの中でさまざまなイベントが発生し、それに対する処理が行われているように作られている。
また、イベント以外にNotification(通知)という機能もある。これは、何かあったときに別のオブジェクトからメッセージが送られるという形式のものだ。通常、Notificationはその発生をあらかじめ予約しておき、何かが起こればメッセージ送信(具体的にはメソッド呼び出し)が行われるという具合である。今回の記事ではその部分的な使い方を説明するが、その範囲内ではイベントもNotificationも同じようなものと思われるかもしれない。だが、フレームワーク内での動作としては違うものであるので注意をしておいてもらいたい。
ではそのイベントが発生したことをどうやれば知ることができるのだろうか? NSApplicationのインスタンスで発生したとは言っても、どうやってイベントに対応した処理をすればいいのかということになるが、もちろんそうした機能をフレームワークで用意している。その機能がDelegate(委譲)と呼ばれる機能だ。JavaでもJDK 1.1以降ではDelegateに基づくイベント処理が行われているので、Javaに詳しい人はピンと来るかもしれない(もっとのその後にイベントモデルを指す言葉としてDelegateは使わなくなったが…)。要は、イベント処理を別のオブジェクトにまかせてしまうというやり方なのである。Javaのライブラリ機能ではさまざまな処理形態が組み立てられるものの、ちょっと気持ちを入れない理解はできなかったかもしれない。CocoaのDelegateはJavaのものに比べてもっとシンプルなのである。1つの方法であるが、おまかせするという設定を、Interface Builder上でできてしまうのだ。しかも、まかせられた側のクラス設計の縛りも弱く、必要なイベント処理だけの記述で良い。本質的に悪いというわけではないが、Javaではabstractクラスで定義された決められたクラスを元にしたり、メソッドを全部定義しないといけないこともあるなど規則の上ではやや厳しい面があるのと比べれば、CocoaのDelegateはシンプルに利用することができる。
□Delegateにより処理を別のオブジェクトにまかせることができる
ここで少し具体的にどんなイベントがあるかを紹介したいが、もうご想像されているかと思うが、Finderからファイルをドラッグ&ドロップしてくると、それを受けてNSApplicationではイベントが発生する。しかしそのままでは、ドラッグ&ドロップしたファイルの処理ができないので、NSApplicationから別クラスのオブジェクトにDelegateを設定しておく。すると、イベント処理がDelegateしたオブジェクトに投げられる。具体的には、Delegateしたオブジェクトの規定のメソッドが呼び出されるのである。もちろん、そのメソッドでは、ドラッグ&ドロップしてきたファイルが何かを知ることができる。こうしてドラッグ&ドロップしてきたファイルの処理を自分で作成することができるのだが、次回以降示すように、その処理の組み立ては実にシンプルに記述できるのである。プログラムがシンプルなのは、オブジェクト間の関連付けなどをInterface Builderでできるからだとも言えるだろう。
Notificationの例も示しておこう。NSApplicationでは、アプリケーションの起動処理が始まったときや終了したときに、Notificationが発生するような仕組みになっている。Notificationを起こすようなプログラムが、NSApplicationに組み込まれているので、プログラマから見れば自動的に発生するとように見えるだろう。ここで、NSApplicationから別のオブジェクトにDelegateすると、NotificationはDelegateしたオブジェクトの方にメッセージングされるのである。つまり、Delegateしたオブジェクトに規定のメソッドを書いておけば、Notificationが発生したときにそのメソッドが呼び出されるというわけだ。だから、Notificationを受けて独自の処理を実行させることができる。
これらのイベントやNotificationを利用して、ドラッグ&ドロップされたファイルの処理を行ったり、さらにはダブルクリックして起動したときに別の処理を行うといった機能をCocoaアプリケーションとして作り上げるポイントを説明しよう。具体的には次回以降に説明を行う。
なお、こうしたDelegateのメカニズムは、NSApplicationだけではなく、ウィンドウやコントロールなど、Cocoaフレームワークのいたるところで見られる。Delegateをうまく使うことが、Cocoaフレームワークを使う上での1つのポイントになるとも言えるだろう。
(この項続く)
カテゴリ:Cocoa, 今から始めるCocoaプログラミング
◇Multiple Users 1.4.1
http://asu.info.apple.com/swupdates.nsf/artnum/n12175
◇Macintosh Users 1.4.1: Document and Software
http://til.info.apple.com/techinfo.nsf/artnum/n120005
Mac OS 9.x向けのコントロールパネル「Multiple Users 1.4.1」が公開された。Mac OS 9.1にはVer.1.2.2が組み込まれている。英語版と、英語版国際版が公開されているため、日本語版のMac OS 9.xにはインストールできない。変更点については、上記のTech Info Library文書で参照できる。デスクトップテーマの保存が正しくできるようになった。システムフォルダにあるいくつかのフォルダを保護したため、セキュリティの問題を解決した。ログアウト時のある種の設定のときに、コントロールバーを隠れるようにするなどの変更を施した。また、Disk Burnerを使う上での注意点も記載されており、パネルや制限付きユーザで書き込みをさせないためにメディアの取り出しをできなく設定することや、書き込み途中でクラッシュした場合には作業用ファイルが残ってしまう点などが示されている。
カテゴリ:Knowledge Base(旧TIL), ネットワーク
Tech Info Library-Jに、Mac OS X Serverおよびネットワーク関連の文書が掲載された。以下は、アドレスと要約である。
◇25204JN:Mac OS X Server: NetInfo が読み込み専用になる
http://til.info.apple.co.jp/cgi-bin/artnum?id=25204
IPアドレスの認識ができないときに発生するトラブルで、その対象方法が掲載されている。
◇60347JN:Mac OS X Server: NetBoot クライアントのファームウェアアップデート
http://til.info.apple.co.jp/co.jp/cgi-bin/artnum?id=60347
内蔵のハードディスクで起動してファームウエアのアップデートをしなければならない。
◇30822JN:TCP/IP: LAN で AppleTalk の代わりに TCP/IP を使用する
http://til.info.apple.co.jp/cgi-bin/artnum?id=30822
可能であり、システムの利用やアプリケーションの利用についての留意点がまとめられている。
◇30821JC:TCP/IP: プライベートネットワークのセットアップ
http://til.info.apple.co.jp/cgi-bin/artnum?id=30821
プライベートのIPアドレスの範囲や、プライベートアドレスでネットワークを構築する場合の注意点などがまとめられている。
◇106121JC:AppleShare IP 6.3.x: ダウンロード可能なアップデートをインストールする
http://til.info.apple.co.jp/cgi-bin/artnum?id=106121
アップデータがいくつかあるが、それらのアップデータはこの文書に記載された順序で適用する必要がある。
◇90001JN:AppleShare IP 6.3.1: Windows 2000 SMB クライアントがフォルダ名を変更できない
http://til.info.apple.co.jp/cgi-bin/artnum?id=90001
AppleShare IP/9.0.4 アップデートで解決できる。
◇58738JN:AppleShare Client for Windows をインストールする
http://til.info.apple.co.jp/cgi-bin/artnum?id=58738
NetWareやWindows for Workgroupを使っているWindowsシステムにAppleShare Client for Windowsをインストールするときの問題点などがまとめられている。
◇25267JN:iTools HomePage: Windows ベースのコンピュータを使って、ファイル共有 Web ページからファイルをダウンロードする
http://til.info.apple.co.jp/cgi-bin/artnum?id=25267
WindowsでのWebブラウザでダウンロードするときのポイント。BinHexになっていることや拡張子の問題、右クリックしてファイルに落とすなどのことがまとめられている。
◇46011JN:Connect To:「接続する...」アプレットで使用するデフォルト URL の変更方法
http://til.info.apple.co.jp/cgi-bin/artnum?id=46011
AppleScriptのプログラムなので、プログラムを変更できる。なお、このアプレットはMac OS 9以降は組み込まれていない。
◇24803JN:安定性のないモデム接続のトラブルシューティング(修正)
http://til.info.apple.co.jp/cgi-bin/artnum?id=24803
カテゴリ:Tech Info Library-J, ネットワーク
Tech Info Library-Jに、Macintosh Manager関連の文書が掲載された。以下は、アドレスと要約である。
◇25229JN:Macintosh Manager 1.3: FireWire ドライブの設定と使用
http://til.info.apple.co.jp/cgi-bin/artnum?id=25229
FireWireドライブはリムーバブルメディアとして扱われる。そのときの設定などでの注意点がまとめられている。
◇25081JN:Macintosh Manager: パネル環境でアイコンが正しく表示されない
http://til.info.apple.co.jp/cgi-bin/artnum?id=25081
Mac OS 8.1で発生するトラブルで、対処方法や原因についても記載されている。
◇58820JN:Macintosh Manager: クライアントログインのトラブルシューティング
http://til.info.apple.co.jp/cgi-bin/artnum?id=58820
ログインできない場合のトラブルシューティングが手順として詳しく掲載されている。
◇58821JN:Macintosh Manager: 推奨されるソフトウェアのバージョン
http://til.info.apple.co.jp/cgi-bin/artnum?id=58821
OSのバージョンごとに利用するMacintosh Managerなどのバージョンが表にまとめられている。
◇106127JN:Macintosh Manager: Macintosh マネージャを別のサーバに移動する方法
http://til.info.apple.co.jp/cgi-bin/artnum?id=106127
サーバの移動手順が、AppleShareIPを使っている場合とMac OS X Serverを使っている場合で掲載されている。
◇25080JN:Macintosh Manager:「要求された環境を起動できません」メッセージ(修正)
http://til.info.apple.co.jp/cgi-bin/artnum?id=25080
カテゴリ:Tech Info Library-J, ネットワーク
Tech Info Library-Jに2001年4月26日に、別掲の記事以外に以下の文書が公開された。アドレスと要約を示す。
□ハードウエア関連
◇15271JN:Apple Monitors: ストライプピッチとドットピッチ
http://til.info.apple.co.jp/cgi-bin/artnum?id=15271
タイトルの用語の違いについて説明されている。
◇20216JN:Macintosh: 起動時に“?”マークが点滅する
http://til.info.apple.co.jp/cgi-bin/artnum?id=20216
マウスボタンが押されたままになっている場合が考えられる。
◇24605JN:PowerBook: Open Firmware と Mac OS への復帰
http://til.info.apple.co.jp/cgi-bin/artnum?id=24605
Open Firmwareの起動の仕方と、そこからMac OSを起動する方法などが説明されている。
◇88070JN:Power Mac G4: Apple Pro Mouse の使用時にコンピュータが応答しなくなる
http://til.info.apple.co.jp/cgi-bin/artnum?id=88070
CPU Plugin 2.7をインストールすることで解消できる。
◇88104JN:PowerBook: 電源とバッテリに関してよくお問い合わせいただくご質問 (FAQ)、Part 2
http://til.info.apple.co.jp/cgi-bin/artnum?id=88104
バッテリを長持ちさせる方法や、プロセッササイクリングに関する説明などが含まれている。
◇88113JN:PowerBook G4: Troubleshooting: FAX ソフトウェアが動作しない
http://til.info.apple.co.jp/cgi-bin/artnum?id=88113
ソフトウエアの開発元に連絡してサポートを受けるようにと記載されている。
□Mac OS関連
◇25277JN:Mac OS 9.1: Network Assistant の省エネルギー設定が機能しない
http://til.info.apple.co.jp/cgi-bin/artnum?id=25277
管理者のコンピュータでMac OS 9.1が稼働している場合、Network Assistantのクライアントでの省エネルギー設定ができない。
◇106119JN:Mac OS 9.0.4:「制限付き」環境および「パネル」環境でファンクションキーを使用する
http://til.info.apple.co.jp/cgi-bin/artnum?id=106119
タイトルの環境ではコンピュータが応答しなくなるが、Mac OS 9.1では解消されている。
カテゴリ:Tech Info Library-J