2009-02Takeba.mehttp://takebayashi.asia/に移転しました。このブログは今後更新されません。s.take久々にOMWizardをアップデートしました。バグフィックスが中心でしたが、ちょっとした仕様変更と新機能も。前バージョンではタグ履歴に基づいてウインドウ上部のタグブラウザを表示していましたが、このバージョンでは起動時にタグ付きファイルをSpotlightで全て探し出し、見つかったタグを一覧にするようになりました。これで履歴に残ってないタグも探し出せます。Directory..."ボタンがなくなったのでパスバーをダブルクリックすることで指定してやる必要があります。指定後は右側の更新ボタンをクリックすることで再検索できます。ところ)をドラッグし、Finderにドロップするとそのタグを持つファイルを集めてくれるスマートフォルダが作られます。頻繁にアクセスするタグがあって、いちいちOMWを使うのが面倒なときに有用かも。OMタグを持つファイルやフォルダを集めたいときは“kOMUserTags属性を持つ”みたいな感じの式を書けばいいんだけど、これがなかなか書けなかった。'*'って書いてMDQueryやNSMetadataQueryに渡せばいいみたい。''って書いて上手く行かなかったんだけど、考えてみれば当然ですね。共有iphloxの情報整理ノートのphloxさんが、ニコニコ動画からダウンロードした動画ファイルに自動でOpenMetaタグを付けてくれるAppleScriptドロップレットを公開しています。動画上で付けられているタグをそのままローカルのファイルにもOMタグとして付与するようで、AppleScriptからSafariとomtool(最近openmetaという紛らわしい名前に変わりましたが、名前を変えれば使えます)を操作することで実現しているようですというわけでさっそく試してみました。椎野茂さんの毒舌実況4回の表。動画の動画をダウンロードするツールは色々あるようですが、私はNNDDというAIRアプリケーションを使っています。NNDDでダウンロードしたflvファイルはファイル名の後ろに動画IDなどがくっついているので、それらを削って動画タイトルだけのファイル名にします。そのファイルをMetaCompNにドロップ。するとタグの取得作業が行われるのでしばらく待つと作業完了。チェックしてみたら、ちゃんとタグが付いてくれています。生のflvファイルじゃなくてm4vなどに変換したファイルでもファイル名さえ合っていれば使えるようです。面白いのでぜひ試してみてはどうでしょうか。Boxプラグインの作り方。意外とまとまった情報があまりなかったので個人的メモを兼ねて。QSBのプロジェクトページからQSB本体のソースコードが手に入る。プラグイン(拡張子.hgsのCocoaバンドル)の中心となるのはHGSExtensionのサブクラス。HGSExtensionをそのままサブクラス化するのではなく、すでに種類別にいくつか用意されているHGSExtensionのサブクラスをさらにサブクラス化して実装する。QSBOpenMetaのようになっている)。サブクラスで実装しなければならない諸々のメソッド等はソースコードにコメントがあるし、デフォルトで組み込まれてるプラグインのコードがわかりやすいから参考になる。ちなみにアクション(HGSActionを継承)の場合、最低限-performActionWithInfo:と-doesActionApplyTo:の2つを実装すれば大丈夫。前者は実際にアクションを実行するメソッドで、後者はユーザの選択したアイテムがアクションの処理できるものかどうかを判定するもの。サブクラスを実装したら、Info.plistを編集。HGSExtensionsってキーのArrayを追加して、そこに実装したHGSExtensionサブクラスの数だけDictionaryを追加していく。下はアクションを実装したときにDIctionaryで設定する内容。HGSActionDirectObjectTypesアクションが対象とするオブジェクトの種類。QSBOpenMetaの場合はローカルファイル限定だから、fileとした。HGSExtensionClassアクションを実装したHGSActionのサブクラス名HGSExtensionIdentifierそのアクションの識別子。バンドルの識別子ではない。プラグイン内で複数のHGSExtensionを実装した場合はそれぞれに違う識別子を与える。HGSExtensionPoint拡張の種類。アクションの場合はHGSExtensionPoint。HGSExtensionUserVisibleName実際に表示される名前。こんな感じで、別段難しいような所はないはず。ドキュメントが用意されてないので、もしかしたら間違ってるところがあるかもしれない。Previewを名乗るならドキュメントぐらい用意してくれてもいいのに...。共有Tagitでタグを付けたり検索したりすると、パネルのクラウドっぽい感じのところにそのタグが追加されます。このタグはcom.openmeta.shared.plistっていうplistファイルに記録されてるってのはもう既に色々なところで耳にされた方も多いと思います。このデータはなにもTagit専用のものではなくて、他のOM対応アプリからも利用されます。QSBOpenMetaやOMSavePanelのタグ補完もこれを使ってますし、OMWizardのタグ一覧もこの内容をそのまま表示しています。ところが、このcom.openmeta.shared.plistには最近使ったタグが200件までしか記録されません。「最近」だから件数に制限があるのは当たり前で、普段はそれで不便なことはありません。ところが、OMWizardの場合は話は別です。タグ検索フィールドを廃止したので、OMWでファイルを検索するにはリストからタグを選ぶしかありませんが、タグリストには200件しか表示されないのでそれより古いタグは検索することができません(表示されないのはリストの最左カラムで、それより右のカラムでは古いタグも表示されます)。これを解決しようとしたら、やっぱり何らかの方法で全てのタグを集めなきゃ行けないんだけど、毎回それはそれで大変。s.take先日のポストでメタデータは保存パネルで入力するのが良いって書いた。DFXが対応予定だから期待するって書いたけど、OMのために$35も払うのもバカバカしい。いうことでヤケになって保存パネルでOMメタデータを入力できるようにするSIMBLプラグインを作ってみた。スクリーンショットの通り、OMSavePanelをインストールすると保存パネルの下にタグと星レーティングを入力するエリアが現れるので、ここに入力するとOMのメタデータとして保存される。SIMBLなのでCocoaアプリでしか使えない上、全てのアプリで上手く動くとも限らない。一応、Safari、Mail、プレビュー、テキストディット、CotEditorではうまく動いた。10.5上でのみ動作します。Extenderを使用してください。愛用のテキストエディタで何か書いて、後にそれが必要となるので保存しておく。このとき、後でそのファイルを探しやすいように色々な情報を与える。ファイル名がその代表。後で見つけるときのためにわかりやすい名前をつけておく。ファイル名だけじゃなくて、その他のメタデータ(OpenMetaもそうじゃない各アプリ独自のも)も付けるときがある。見つけるためだけじゃなく、見つけた後に「これなんだっけ?」という時のヘルプにもなる。ファイルを保存するとき、保存ダイアログでファイル名を入力する。このとき、Office等の一部アプリはそのアプリ固有のメタデータも一緒に入力できるようになっている。することでファイルにメタデータが埋め込まれて、次回から利用できる。ところがOpenMetaの場合は、一度保存したファイルに対して専用アプリ(Tagitとか。QSBOpenMetaもだけど)を使って後からメタデータを与えなきゃいけない。これは非常に面倒でナンセンス。OpenMetaに対応したアプリなら保存時に専用のインターフェイスを提供するかもしれないけど、どんな書類でもOKというOpenMetaのウリ(の1つ)が半分ウソみたいなものになってしまう。何が言いたいかって言うと、OpenMetaの普及にはAppleが保存ダイアログで専用のインターフェイスを提供するのが一番。現実的じゃないので、サードパーティに期待しなきゃいけない。XがOpenMetaに対応する予定らしいので、これでOpenMetaが少し便利になるかもしれません。本気でOpenMetaを普及させたいなら最終的にはAppleの協力が必要だと思うけどね。s.takeOMWizardですが、ちょこっといじってみました。検索フィールを廃してタグのリストからブラウジングするような形に。ついでに検索範囲も設定できるように(スクリーンショット上部のホームディレクトリを表示してる部分がそれです)。ついでにタグ絞り込みフィールドも付けたかったんだけど、これは先送り。今回はタグを付けられたファイルを探し出すことに重点を置いてみた。前バージョンのようにタグをわざわざタイプしなくてもリストから選べるようにしたことで、(ものすごく個人的に)操作性がアップ。タグを選択するごとに再検索をかけているので環境によっては重いかも。探しだしたファイルはもちろんダブルクリックで開ける。これでこのOMWizardとQSBOpenMetaでタグに関する操作は一通りできるようになったと思う。