Macintosh Developer Online (MDOnline)


2001年4月12日発行号 - XのSherlockを考える



たぶん、来週の月曜くらいが正式発表になるかと思いますが、MOSA会員の方は、MDOnlineの1年分の購読権を取得できるようになります。いちおう、昨日正式に決まりました。現在、読者の方の場合、2001年度中に申し込みを行うことで、購読期間を1年間延長するということになります。申し込み方法は、追ってお知らせをしますが、もし、4月中に購読期限がきれる方で、継続を申し込むおつもりで、MOSA会員の方は(AND条件)、もう少し待って下さい。今月あるいは先月にすでにMOSA会員なのに継続してしまったという方もいっしゃるかもしれませんが、どこまで考慮するかは微妙ですけど、3月以降に4月以降分の継続を申し込んだというMOSA会員の方がいらっしゃったら、御一報いただけますでしょうか。その点は考慮したいと思います。2月に更新してしまった方は、申し訳ないですが、来年3月からの1年分の購読権となります。ほんとにすみません。2月は考慮するとなると、じゃあ1月は…となりきりがありません。また、逆に、今後の更新を睨んで、MOSA会員になっておくという選択肢もありますね。申し遅れましたが、2001年度よりMOSAの理事をやることもなりましたので、よろしくお願いします。

◇MOSA
http://www.mosa.gr.jp/
(新居雅行 msyk@mdonline.jp


Browsing Mac OS X》Sherlockは進歩したか?マルチタスクとそのコントロール

Sherlockと言えば、インターネットのメタ検索アプリケーションとしての評価が高いが、忘れてはいけないのは、ファイルの中身を高速に検索する機能がある。Sherlockが登場したMac OS 8.5の頃からすでにその機能はあるものの、いくらかは改良されているとは言え、Mac OS 9.1の時代でもそれほど多く使われているという印象はない。その理由の1つは明白だ。ファイルの内容をいきなり検索するということはさすがに高速に行えない。そこで、ファイルの中身から、文節を考慮しながら単語を抜き出すなど文章のエッセンス部分を取り出し、「索引」データベースを作成しておく。そして、検索の時には逆に検索語から索引を照らし合わせて、対応するファイルを一覧するといった動作を行う。索引を作成する時には、日本語の文法を考慮した解析を行い、キーワードを取り出すような作業を行う。単なるテキストの寄せ集めをするのではなく、複雑な処理をMac OSはこなしている。基本的には辞書を使って作業をするような形態になっているらしいのだが、この辞書についてはかなり注意を払って作っていることは、以前、Appleから説明された。辞書をうまく作ることで、「当たりのいい」検索ができるということなのだ。だが、こうした解析処理を1つ1つのファイルに対して行う必要がある。その処理に時間がかかるのである。Mac OS 9ではハードディスク全体に対して作成していた索引が、部分的な索引作成に対応するなど、かなり使い勝手は上がってきた。ちなみに手前味噌で申し訳ないが、筆者が作っている「Mac OSメール環境」は、メールのメッセージをテキストファイルに保存する形態を取っているが、メールの検索をSherlockで行うことができるので、索引さえ作っておけばメール検索は非常に快適にできた。それでも、時々深夜にえんえんと索引の更新を行うといった運用をうまくしないと使えないものでもあった。索引の更新には時間がかかる以上に、システムに負荷をかけることもある。索引を作成中は、Mac OSの操作にかなり支障が出る。一方、支障がない程度の設定にすると、今度は索引作成に時間が余計にかかる。コンピュータが今の100倍も早いとこんなことでは悩まなくなるのだろうけど、今現在のコンピュータでは、やはりこの種の検索処理を難無くこなすまでには至っていないと言えるだろう。

さて、Mac OS XでもSherlockは入った。シャーロックホームズの帽子のようなアイコンがDockにあるわけで、それなりに高い存在感だ。基本的な機能は、Mac OS 9.1までと変わりはなく、プラグインを利用したインターネット検索と、ファイルの中身の検索機能が用意されている。ファイルの中身の検索では、細かい点ではいろいろと違っているので、それを見て行くことにしよう。
まず、ボリューム全体の索引を作ると形式ではなく、フォルダごとに索引を作るような感じだと思えば良い。Finderは見えないが、索引を作ったフォルダには、.FBCIndexというファイルと.FBCLockFolderというフォルダが作られるので、これらがSharlockのファイルの内容検索の手がかりになるものと思われる。SherlockもMac OS 9.1までのように、いきなり全部のボリュームの索引を作るといった動作は行わない。最初は、自分のユーザ名と同じ名前のホームフォルダの中だけが索引作成対象となっている。索引を作成する対象は、もちろん、後から追加できるが、ボリューム全体に渡って作ることはあまりないと思われる。また、起動ボリュームのSystemなどのようにアクセスが制限されているフォルダもあるので、ホームフォルダ以下を検索対象にするというのは妥当な機能だと言えるだろう。ボリューム全体に渡って索引を作りたいのなら、Sherlockのウインドウに一覧されたボリュームの項目を選択して、「検索」メニューから「今すぐ索引作成」を選択すれば良い。
Sherlockを起動すると、最初はボリューム名が並んでいるのに加えて、ホームフォルダも一覧に加わっているはずだ。そのホームフォルダの表示をよく見ると、すぐさま索引の作成に取りかかっている。また、Finderからフォルダをドラッグ&ドロップするなどして、フォルダを一覧に追加することもできる。こうして、検索対象のフォルダを指定できるのはMac OS 9.1までと同様だが、追加したフォルダについても、すぐさま索引の更新を始める。つまり、Sherlockの起動とともに、フォルダの索引作成を始めるようになっている。もし、この機能を使わないで、手作業で索引作成を開始させたいのであれば、初期設定で自動的に索引の更新を行う機能を切っておけばよい。
いずれにしても、Sherlockを起動することで、索引の更新が行われる。ただし、実際に索引の更新を行うのは、別に起動されたContentIndexingというプロセスだ。Mac OS 9.1まででも別のアプリケーションが起動して索引を更新していたが、Mac OS Xではバックグランドで動くプロセスがそれを行うようになった。気になる索引作成時のレスポンスだが、さすがに何もしていないかのように軽いというわけではない。エディタでキータイプしても、やはり背後で索引作成しいると、レスポンスは悪くなる。ただ、Mac OSの時と違って、一定してレスポンスが悪くなるという感じだ。Mac OS 9.1までだと、まったく反応しない時間帯があるかと思うと、急にキー入力が出てくるという感じだが、Mac OS Xでは全体的に平均して緩慢になる。プリエンティティブなマルチタスクの恩恵といったところだろうか。そこそこレスポンスがいい場合には、索引作成をしながらも他の作業はできるという場合もあるだろう。
ContentIndexingというプロセスが索引を裏でバンバン作るわけだが、Sherlockを終了しても索引作成が完了していないのなら、ContentIndexingは終了されず、実行し続ける。だから、Sherlockを終了しても操作感は重たいままというのは、背後での索引作成は引き続き行うからだ。索引作成をやめたいのなら、Sherlockで索引作成中の項目を選択して「検索」メニューから「索引作成を停止」を選ぶ。すると、索引作成はいったん中断される。ちなみに、その後「検索」メニューから「今すぐ索引作成」を選択すれば、前に中断したところからの索引作成を再開する。こうして、手作業で索引作成をコントロールすることで、とりあえずは、ちょっとずつ索引をアップデートするというのが1つの方法だ。Mac OS 9.1までのSherlockではスケジュールを決めて索引作成ができたが、Mac OS Xではその機能はない。もちろん、なんらかの方法でSherlockを起動すれば、勝手に索引を作るようにはできるわけだ。
ただ、注意をしたいのは、メニュー選択で索引作成を中止しないで、システムを終了した場合である。もちろん、ContentIndexingも終了はするのだが、そのときにそこまでに作った索引情報を書き込んでおくということをしないで、いきなり終了するようなのである。フォルダごとに索引情報が作られているので、フォルダごとに作業が完結しているという予測もできるのだが、再起動して同じフォルダの索引を作る時には、また最初からやっているという具合にしか見えない。どうも、途中まで作った索引情報はシステムの終了によって水の泡になってしまうようで、いずれにしても、手作業で索引作成をとめるというのがとにかく必要なようだ。
また、フォルダに索引情報のファイルを書き込むため、Sherlockで索引を作ると、フォルダの更新日時が更新される。Finderではファイルは見えないので、一見するといつの間にかフォルダの日付けが変わっているという感じだ。だから支障があるというわけではないが、フォルダの日付けが索引作成によって変わることは認識しておくのが良いだろう。

いずれにしても、フォルダ単位で索引作成ができるなど、使い勝手が向上したし、マルチタスクの恩恵もいくらかは享受できそうな雰囲気でもある。やはりそれでも、ある規則(たとえば、カッコで囲ったフォルダなど)を設けて特定のフォルダ以下は索引作成をしないといったオプションは欲しいとも考える。また、索引をスケジュールをきめて作成する機能も手軽に利用したい。その場合、索引の作成開始だけではなく、作成を中止する時間の設定もあるとより使い手があると言える。

カテゴリ:Browsing Mac OS X


テキストで与えたAppleScriptのプログラムを実行するサンプルプログラム

Technical Q&Aに、AppleScriptのプログラムを、アプリケーションの中から実行する方法が紹介されている。C言語で書かれたサンプルプログラムは、CあるいはC++言語で作成しているアプリケーションだと、そのままサブルーチンとして使えるものとなっている。テキストで与えたAppleScriptのプログラムを実行することができる。Toolboxの機能としてはOpen Scripting Archtectureのところで解説がされているが、テキストで記述されたAppleScriptのプログラムを実行するにはいくつかのAPIコールを利用しなければならない。Appleが公開しているドキュメントのInside Macintoshにはサンプルプログラムも掲載されているが、Pascalで記述したものとなっていた。

関連リンク:Calling AppleScript from an Application
カテゴリ:Technical Q&A, AppleScript


TIL》Mac OS Xでのファンクションキー設定はClassicアプリケーションを使っているときだけ機能する

最近の機種はファンクションキーに機能を割り付けることできるが、Mac OS Xでの動作についてTech Info Libraryに掲載された。Classic環境で、キーボードコントロールパネルでファンクションキーの設定はできる。ただし、ファンクションキーの動作は、Classic環境のアプリケーションがいちばん手前(フォアグランド)に表示されているときにしか使えない。CarbonやCocoaのアプリケーションがフォアグランドのときには、ファンクションキーの動作は行われない。

関連リンク:Mac OS X 10.0: Using the Keyboard Control Panel in Classic
カテゴリ:Knowledge Base(旧TIL), Classic


TIL》Mac OS Xではoptionキーを押しながらゴミ箱を空にする機能は使えない

Tech Info Libraryに、Mac OS Xでのゴミ箱の扱いについての文書が掲載された。ゴミ箱は、ユーザのホームディレクトリ内にフォルダを設けて管理されるため、ユーザごとに異なるゴミ箱を持つ。ゴミ箱の中身を消し去るには、メニュー選択だけでなく、ゴミ箱アイコンをクリックしてメニューから選択する方法もある。以前のバージョンではoptionキーを押しながらゴミ箱を空にする操作を行うと、ロックがかかったファイルでも消去できたが、Mac OS Xではその機能は働かない。ロックのかかったファイルを消去するには、基本的にはFinderのファイル情報でロックの解除を行う必要がある。

関連リンク:Mac OS X 10.0 : About Trash, Deleting Locked Files
カテゴリ:Knowledge Base(旧TIL), Mac OS X


Mac OSで利用できるXMLエディタがリリース

ElfData社は、Mac OSおよびMac OS Xで利用できるXMLエディタの「XML Editor 1.0」をリリースした。現在は$50で販売されているが、近々$70となる。XMLの要素をリスト形式に配置して、編集作業などができるといった形式のXMLエディタである。REALbasicを使って作られたアプリケーションだ。

関連リンク:ElfData XML Editor 1.0 for Macintosh. OSX and Classic compatible
カテゴリ:ユーティリティ


TIL,TIL-J》Mac OS Xの画面ショットツールGrabはウインドウの撮影はできない

◇Mac OS X 10.0: Grab ユーティリティで“ウインドウ”コマンドでの取り込みが動作しない
http://til.info.apple.co.jp/cgi-bin/artnum?id=106209JC
◇Mac OS X 10.0: The Capture Window Command Does Not Work in the Grab Utility
http://til.info.apple.com/techinfo.nsf/artnum/n106209
Mac OS XにはGrabというユーティリティが付属しており、画面ショットの撮影ができる。ウインドウを撮影するメニューは用意されているが、グレーとなっていて選択できない。これは現在のバージョンの機能制限となっており将来的には使えるようにする予定となっている。

カテゴリ:Tech Info Library-J, Knowledge Base(旧TIL), Mac OS X


TIL,TIL-J》Mac OS XでのSherlockに関する文書、読み書き権限のないフォルダには索引は作れないなど

Tech Info LibraryおよびTech Info Library-Jにおいて、Mac OS XでのSherlock関連の文書が掲載されている。1つはSherlockに限らない内容であるが、ここで紹介しておこう。以下、アドレスと要約である。

◇Mac OS X 10.0: Sherlock ウインドウに「索引を作成できません」が表示される
http://til.info.apple.co.jp/cgi-bin/artnum?id=106206JC
◇Mac OS X 10.0: "Can’t index" Appears in Sherlock Window
http://til.info.apple.com/techinfo.nsf/artnum/n106206
ログインしているユーザが読み書きの権限を持っているフォルダの中身しか、Sherlockの索引は作成できない。

◇Mac OS X 10.0: Sherlock が更新、または索引を作成しているときは処理性能が低下します
http://til.info.apple.co.jp/cgi-bin/artnum?id=106190JC
◇Mac OS X 10.0: Performance Slower When Sherlock Updates or Creates an Index
http://til.info.apple.com/techinfo.nsf/artnum/n106190
索引の自動作成をオフにすることでの対処が記載されている。もちろん、その場合は索引は作成されないので、メニュー選択して索引作成などを行わないと検索対象にはならない。

◇Mac OS X 10.0, Sherlock: アプリケーションやコントロールパネルの、クローズと終了の違い
http://til.info.apple.co.jp/cgi-bin/artnum?id=106195JC
◇Mac OS X 10.0, Sherlock: Closing Versus Quitting Applications and Control Panels
http://til.info.apple.com/techinfo.nsf/artnum/n106195
この文書はSherlockに限定した内容ではない。コントロールパネル書類はMac OSでは閉じるとアプリケーションとしても終了していたが、システム環境設定はウインドウを閉じてもアプリケーションとしては起動したままの動作になる。

カテゴリ:Tech Info Library-J, Knowledge Base(旧TIL), Mac OS X


TIL,TIL-J》Mac OS Xの印刷関連の文書、キューの移動はできないなど

Tech Info LibraryおよびTech Info Library-Jに掲載されたMac OS X関連の文書のうち、印刷関連のものでまだ紹介していないものを以下に示す。アドレスと要約は次の通りだ。

◇Mac OS X 10.0: プリントジョブキューを他のプリンタに移動できない
http://til.info.apple.co.jp/cgi-bin/artnum?id=106177JN
◇Mac OS X 10.0: Cannot Move a Queued Print Job to a Different Printer
http://til.info.apple.com/techinfo.nsf/artnum/n106177
Print Centerのプリンタ間でのジョブの移動はできない。プリンタを選択しなおして、アプリケーションで再度印刷作業を行う必要がある。

◇Mac OS X 10.0: Printing AppleWorks 6.0.4 Clip Art
http://til.info.apple.com/techinfo.nsf/artnum/n106232
AppleWorks 6.0.4のEPSのクリップアートは、Mac OS X上では印刷できない。Mac OS 9で起動してAppleWorksを使うか、AppleWorks 6.1にアップデートする。

◇Mac OS X 10.0: プリントするとき警告メッセージ 9781 が表示される
http://til.info.apple.co.jp/cgi-bin/artnum?id=106233JN
◇Mac OS X 10.0: Alert Message 9781 When Printing
http://til.info.apple.com/techinfo.nsf/artnum/n106233
システムのインストール時に、カスタムインストールでBSD Subsystemをインストールしない場合に、タイトルのようなエラーが出る。

◇Mac OS X 10.0: Printing Fails Without Alert Message
http://til.info.apple.com/techinfo.nsf/artnum/n106266
ApplicationsフォルダのUtilitiesフォルダの名前を変更しているとエラーが出る。

カテゴリ:Tech Info Library-J, Knowledge Base(旧TIL), 周辺機器