Pages

2009-02-03

ファイルにメタデータを与えるとき

例えば愛用のテキストエディタで何か書いて、後にそれが必要となるので保存しておく。このとき、後でそのファイルを探しやすいように色々な情報を与える。ファイル名がその代表。後で見つけるときのためにわかりやすい名前をつけておく。もちろんファイル名だけじゃなくて、その他のメタデータ(OpenMetaもそうじゃない各アプリ独自のも)も付けるときがある。もちろん、見つけるためだけじゃなく、見つけた後に「これなんだっけ?」という時のヘルプにもなる。

ファイルを保存するとき、保存ダイアログでファイル名を入力する。このとき、Office等の一部アプリはそのアプリ固有のメタデータも一緒に入力できるようになっている。そうすることでファイルにメタデータが埋め込まれて、次回から利用できる。

ところがOpenMetaの場合は、一度保存したファイルに対して専用アプリ(Tagitとか。QSBOpenMetaもだけど)を使って後からメタデータを与えなきゃいけない。これは非常に面倒でナンセンス。もちろんOpenMetaに対応したアプリなら保存時に専用のインターフェイスを提供するかもしれないけど、どんな書類でもOKというOpenMetaのウリ(の1つ)が半分ウソみたいなものになってしまう。

何が言いたいかって言うと、OpenMetaの普及にはAppleが保存ダイアログで専用のインターフェイスを提供するのが一番。だけど現実的じゃないので、サードパーティに期待しなきゃいけない。幸い、Default Folder XがOpenMetaに対応する予定らしいので、これでOpenMetaが少し便利になるかもしれません。

でも本気でOpenMetaを普及させたいなら最終的にはAppleの協力が必要だと思うけどね。

2009-02-02

OMWizard 1.1


omwizard11ss
Originally uploaded by s.take

OMWizardですが、ちょこっといじってみました。検索フィールを廃してタグのリストからブラウジングするような形に。ついでに検索範囲も設定できるように(スクリーンショット上部のホームディレクトリを表示してる部分がそれです)。ついでにタグ絞り込みフィールドも付けたかったんだけど、これは先送り。


今回はタグを付けられたファイルを探し出すことに重点を置いてみた。前バージョンのようにタグをわざわざタイプしなくてもリストから選べるようにしたことで、(ものすごく個人的に)操作性がアップ。ただし、タグを選択するごとに再検索をかけているので環境によっては重いかも。で、探しだしたファイルはもちろんダブルクリックで開ける。これでこのOMWizardとQSBOpenMetaでタグに関する操作は一通りできるようになったと思う。多分。


Download OMWizard 1.1. ずいぶんと操作性が変わった(ちょっと変態的な挙動も)ので、古いバージョンも残しておきます:Older Verion (1.0.1)


2009-01-30

Cocoa用OpenMetaクラスの疑問

先日CocoaアプリケーションからOpenMetaによるメタデータを操作するで書いたように、CocoaアプリケーションからOpenMetaによるメタデータを操作するにはGoogle Code上で公開されているOpenMetaクラスを利用するのが簡単です。しかしこれ、使っていくうちに色々と首を傾げたくなる部分が出てきます。

1. メソッド名がCocoaの命名規則に則っていない

まず最初に気になるのがこれ。例えばファイルに付けられたタグを得るには+ [OpenMeta getUserTags:url:]というクラスメソッドを使いますが、これはメソッドの返り値としてタグを配列を得ることができます。普通Cocoaでは求めているオブジェクトが返り値から得られるとき、メソッド名にgetは付けません。getを付けたときは普通引数に目的のものをコピーすることを意味します。もちろん、DOM APIのように外部で標準のAPIが定められている場合はこれに当てはまらないこともありますが、Cocoa内で完結するものはたいていこの規則に従います。しかしOpenMetaはなぜかこれを無視しています…

2. メソッド名が意味不明

OpenMetaアプリケーションはたいてい最近使ったタグを簡単に扱えるようになっています(OMWizardやQSBOpenMetaも自動補完という形で対応しています。OMWizardのほうは少し不具合がありますが…)。このリストは全OpenMetaアプリケーションで共有されていて、アプリケーションからこれを更新するには+ [OpenMeta updatePrefsNewTags:newTags:というメソッドを使います。…私は最初にこのメソッドを見たときわけがわかりませんでした。newTagsという名前が2回でてきてどっちがどっちだかさっぱりでした。幸い、仮引数名がoldTagsnewTagsだったのでわかりましたが、これはちょっとおかしいんじゃないかな…

3. ライセンスが不明

そして3つ目の問題。Google Codeのプロジェクトページにはしっかりと"Apache License 2.0"と書かれているのに、OpenMeta.mでは一番上の目立つところに"MIT license"と書かれています。まあ確かに両者は似た性質を持っていますが、それでも同一ではありません。

…とまあいろいろと挙げちゃいましたが、これはOpenMetaそのものの問題ではなくそのためにIronicが用意したライブラリの問題です(OpenMetaそのものの問題についてもIronicのフォーラムで議論されているようですが… それについては今後書くかもしれないです)。多くのデベロッパに採用してほしいなら、この辺はちょっと修正してもらいたいところです。

Quick Search BoxからOpenMetaタグを編集できるプラグイン:QSBOpenMeta

Macの手書き説明書さんにOMWizardを取り上げていただきました。確かにOMWizardは既にタグを付けてあるファイルを扱うのには便利なんですが、タグがなにもついていないまっさらなファイルは扱えません。あらかじめTagitなどでタグを付けておく必要があります。Tagitもいいアプリなんですけど、わざわざ画面の端までドラッグしていくのは面倒だったりします。

そこで(?)、Google Quick Search Boxから簡単にOpenMetaタグを付与・編集できるプラグインQSBOpenMetaを作ってみました。QSBOpenMetaをインストールすると、QSBでファイルを選んだ時に出てくるコマンドのリストに"Add OpenMeta Tags"というのが現れるようになります。Addって書いてあるけどDeleteだってできます。

download(Updated! v1.0.3: fixed some bugs... DON'T USE OLDER VERSION!)

QSBのバージョンアップにより、使えなくなりました。今後のアップデートで対応予定です。

2009-01-28

Adobe CSでOpenMetaタグが消えてしまう問題

IronicのフォーラムにProblem with Tagit (or OpenMeta?) losing tagsというトピックが。Adobe PhotoshopやIllustratorのCS3やCS4でファイルを上書き保存すると、そのファイルに設定されてたOpenMetaメタデータが消えてしまうというもの。

原因は簡単で、ファイルを保存する際に一度テンポラリファイルに書き出してから元のファイルに置き換えるという作業を行っているから。OpenMetaはファイルそのものにはメタデータを埋め込まず、ファイルシステムに拡張属性という形で記録しておくものだから、今回のケースだと元ファイルと保存後のファイルは別物ということになってせっかく付与したメタデータが消えてしまうというわけです。

このテンポラリファイルに一度書き出す方法はCocoaアプリケーションでもよく使われますが(ファイル保存系メソッドのatomically:YESにすれば)、おそらくCocoa API内(もしくはそれ以下)で同じファイルとして扱われるような処理をしているんでしょう。この辺はあまり詳しくないので微妙ですが…

とりあえず、Creative SuitユーザでOpenMetaをバリバリ活用!って方は注意してみてください。