Tags : Spotlight

このTagsの登録数:3件 表示 : 1 - 3 / 3

Spotlight ハックのアイデア

post : 2005-09-10 18:28 | ,

更新されたファイルが即座に Spotlight データベースに反映されるという特徴を殺してしまうのはどうか。すぐに索引更新させずに、キューに溜め込んでおいて定期的、あるいは手動でまとめて更新する。

利点はいろいろある。
・一時的に作成したファイルは索引を作らないまま削除される可能性が高いので無駄に索引を作らない
・システム環境設定のプライバシーよりも細かな無視設定が可能
・更新されたファイルのログが取れる

技術的な問題は、
・このハック自体可能かどうか
・データベースの整合性が保たれるかどうか
・パフォーマンス
といったところか。

MDItemSetAttribute(s)

post : 2005-08-11 11:38 | ,

Metadata.framework を調べていたら探していたものを発見

Boolean MDItemSetAttributes(MDItemRef item, CFDictionaryRef dict);
Boolean MDItemSetAttribute(MDItemRef item, CFStringRef name, CFTypeRef attribute);

これですよ、これ。ファイルの種類・内容に依らない自由な値を好きなタイミングで付加できる魔法の関数。以前「個人的には、メタデータはファイルそのものの情報のみで構築されるべきだと思っている」とか書いたけどあっさり取り消し。
どちらの関数も低レベルの ___MDItemSetAttributes() を呼び出しているから挙動は同じ。
これを使って設定した値はファイル移動や内容編集では消えずに残る。ただし複製すると複製先のファイルには引き継がれない。この仕様は kMDItemWhereFroms と同じ。というか kMDItemWhereFroms は上記の関数を使って書き込まれているのだろうと思う。

具体的に何をやるかと言うと、タグです。mp3 にも mov にもテキストにもアプリケーションにも共通のタグを付加できるようにする。また、タグ自体にも属性を付けられるようにして、そのタグが人名なのか何かのジャンルなのか、とかそういうことを設定できるようにする。タグの編集は専用アプリケーションを作る。タグの付加は専用アプリケーション、コンテクストメニューなど様々な方法でできるようにする。ファイル属性だけに使うのはもったいないので、あらゆるアプリケーションから参照できるようにする(ブックマーク管理アプリなど)。そうなると一元管理が必要になってきて、編集アプリで管理するのがいちばん楽なんだけど、他アプリとの同期などが難しい。Core Data を使うつもりなので、ファイルベースでも同期の取りようはあるみたいだけど、サーバアプリを立ち上げる方が良いか。読み込みだけならファイルベースで大丈夫か。

しっかりしたものができれば Tiger の使い心地が格段に良くなるのは間違いない。が、まだ絵に描いた餅なのであった。

kMDItemWhereFroms

post : 2005-05-06 22:55 |

Safari でダウンロードしたファイルを mdls で調べてみたら kMDItemWhereFroms というメタデータがくっついていて、なんと URL とリファラが入っていた。いつのまに! MDItem Reference: Common Metadata Attribute Keys にも載ってた。
しかしこれ、ファイルをコピーするとコピー先のファイルには引き継がれない。個人的には、メタデータはファイルそのものの情報のみで構築されるべきだと思っているので、どちらかと言うと引き継がれなくて構わない。