Pages

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をバリバリ活用!って方は注意してみてください。

2009-01-26

OMWizard 1.0.1とmulti-words-tag

hogeさんがIronicのフォーラムでOMWizardを紹介してくれました。さっそくバグがあったようで、修正したOMWizard 1.0.1を公開します。

問題があったのは複数語(multi-words)からなるタグの扱い。一語タグしか使ってなかったんで気づきませんでしたけど、Tagitでfoo_barのように入力したタグは実際にはfoo barのようにアンダースコアではなくスペースで区切られて記録される。で、Spotlightで検索するときもtag:"foo bar"のように検索。これに気づいていなかったので、OMWizardでは上手く検索できませんでした。Thanks! > Jono

2009-01-25

CocoaアプリケーションからOpenMetaによるメタデータを操作する

OpenMetaプロジェクトで公開されているOpenMetaクラスを使うのが簡単。ライセンスはApache License 2.0。

今のところ全部クラスメソッド。ファイルを指定するにはNSURLを使う。

タグの追加
[OpenMeta addUserTags:tags url:url];
タグの削除
[OpenMeta clearUserTags:tags url:url];

こんな感じで簡単。第一引数のtagsはNSStringを要素に持つNSArray。タグ以外の他のメタデータについても専用のメソッドが用意されているし、NSDictionaryを使って一括して扱うこともできる。

OpenMetaをちょっと扱ってみるツールOMWizard


OMWizard
Originally uploaded by s.take

OpenMetaをちょっとテストしてみるような感じでOMWizardなるツールを作ってみました。Wizardといっても別に凄い機能はなくて、指定されたタグでファイル検索し、検索結果からタグのリネームができる程度。OMWizardをダウンロード。


この程度ならGoogle Code上で公開されているOpenMeta.[hm]を使ってすぐに書けちゃう。この辺の手軽さは普及の後押しになると思う。


2009-01-24

OpenMetaで定義されているメタデータ語彙

OpenMetaで定義されているメタデータの語彙はGoogle Code上のスキーマで見ることができます。

  • kOMUserTags
  • kOMStarRating
  • kOMHidden
  • kOMLatitude
  • kOMLongitude
  • kOMAltitude
  • kOMAddress
  • kOMCity
  • kOMStateProv
  • kOMPostalCode
  • kOMCountry
  • kOMBookmarks
  • kOMApproved
  • kOMWorkflow
  • kOMProjects
  • kOMAuthors
  • kOMEmailAddresses
  • kOMItemDueDate
  • kOMInformation
  • kOMDirector
  • kOMProducer
  • kOMGenre
  • kOMPerformers

タグやレーティングといった基本的なメタデータはもちろん、経度緯度のような地理情報、住所、作曲者や演奏者などの音楽関係のメタデータがあるみたいです。今後どうなるかが楽しみです。

2009-01-23

OpenMetaって何ぞや?

最近何かと話題のOpenMeta。私もMacの手書き説明書経由で知りました。なんでもxattr(ファイルシステムの拡張属性)を使ったタギングの共通規格のようです。 Ironic Softwareって会社が頑張ってるみたい。

Google Codeにプロジェクトがホスティングされているので、早速アクセス。簡単な概要が記されたPDFがダウンロードできます。ざっと読んでみた。

  • 各ベンダがバラバラに実装したらタグの便利さが損なわれる。だから統一しよう。
  • 非公開APIは使ってない。xattrだから簡単にアクセス。
  • もちろんSpotlightで検索できる。
  • Ironic Softwareからは、対応アプリとしてTagger、Deep、またコマンドラインツールとしてomtoolをリリース。YepやLeapももうすぐOpenMetaに対応するよ。
  • プライベートなメタデータを追加するのも簡単だし、みんなで統一したければOpenMeta規格に追加できるかも。

PDFの後ろのほうには他の似たようなもの(SpotlightやAdobeのXMPなど)とどう違うのかが説いてあったりします。英語ですが4ページと短いので興味のある方は読んでみてはいかがでしょうか。

2009-01-11

Firefox率が高いサイト=おっさん臭いサイト?

Firefox率が高いサイト=おっさん臭いサイトより。

だって、10代はわざわざFirefoxなんてインストールしないし、小学生や幼稚園児はFirefoxを知らない。 30代、40代の主婦、というか女性一般はFirefoxなんてインストールしないし、高齢者もインストールしない。

じゃあ、残ったのは誰って、ほとんどがおじさん。

これは違うんじゃないだろうか。10代ってのがどの層を指してるのかにもよりますが、少なくとも私の大学の知り合いはFirefoxユーザは多いですね。あとSFCのせいかMacユーザもわりと多いのでSafariを使っている人も結構見かけます。そしてこれくらいの学生層が今の日本のWWW利用者層の中心なんじゃないでしょうかねえ。mixiみたいなSNSにしろ、個人ブログにしろ、おっさんより学生のほうが多く利用しているように思えます。もちろん、「10代」ってのが「ポケモン攻略!」みたいな児童を指してるんならまた話は変わってきますが。20代男性について全く書かれていないので、多分そういう学生層を最初から考えてないのかもしれません。

私?Firefox使っていませんよ。