Wouldn't it be better to release the code before you ship Leap, in 
case we find bugs or have issues with something about the 
implementation?
- Jon
-- 
________________________________________________________________________
         Jon Gotow                     go...@stclairsoft.com
    St. Clair Software              http://www.stclairsoft.com/
     Fax (540)552-5898               ftp://ftp.stclairsoft.com/
If you will not implement the tag mirroring, how do you feel about a  
branch or fork where I add that functionality? If I do this, can I  
still be deemed OpenMeta compliant/compatible?
Also, what is the status of any domains that can be used for this  
purpose? I see that OM currently uses openmeta.com for preferences but  
the whois record for that domain indicates someone in South Korea owns  
it. I don't know if this is someone affiliated with you so any  
clarification on this would be appreciated.
It would be very easy for me to drop all this now as it seems like you  
are doing everything possible to make sure I quit in frustration. If  
you want OM to be seriously considered, I ask that please you stop  
evading the questions.
paul
> In other words - since I know I need backup for Adobe applications,
> and other eventualities, - lets make sure the backup system works.
> Simplicity is everything in code and data.
What do you plan to do to make sure it works? The current backup  
system does not seem to be simple (especially with the aggressive new  
directory caching) and has many shortcomings (previously discussed).  
It's also no more accurate in the face of non-conformant applications  
than the mirrored xattrs--less so, really, because it would be much  
easier for a second codebase to look in the xattrs than to re- 
implement your backup system.
I can see different apps possibly rolling their own backup systems,  
e.g. to handle security differently. Simplicity is exactly the reason  
to define xattrs as the official storage: they're simple to access and  
stuck to the file so that there's no "domain mismatch." And, unlike  
with a backup system, the data itself will be so simple as to not  
change between versions.
> Also to say it again: how would we tell when to use the mirrored tags?
> I don't see a way.
I thought we already discussed this and determined that it was  
possible by looking at the tag time--which Gravity's Tags does set.
> So I'm not putting it in.
This is disappointing. First, you agreed to put it in. Paul offered to  
write the code, but you said you were going to do it. He delayed his  
beta waiting for you. Then you said you were working on it, but that  
you wouldn't let us see it until after Leap shipped. Now, Leap has  
shipped, the code is not written (what you wrote and commented out is  
not what we discussed), and you apparently won't accept a patch, either.
--Michael
First off, as usual, not all my questions have been answered. Maybe  
they are moot at this point but it is just confirming a pattern of  
evading straightforward questions. It doesn't help build confidence  
when you gloss over the weak spots.
Secondly, I have a hard time believing you just came up with this  
decision on the day you released the code. If you had changed your  
mind (or had no intention of really doing it), it would have saved me  
a lot of time if you had told me then. The lack of communication on  
this front is pretty appalling.
I don't understand your bending over backward for an app whose  
developers, last I heard, have no interest in support OpenMeta. A  
standard is something for people to adhere to, not a formalization of  
someone else's bad practices.
As for not doing mirroring, you should look at it the other way. To  
solve the Adobe problem, you have cooked up a pretty complicated  
backup system, one that, by your comments in the code itself, you  
aren't even sure works properly. Most of your arguments you levy  
against mirroring can apply to your backup system. You talk about  
simplicity but looking at the code for your backup system, I do not  
see it. In the very least, I do not consider the current  
implementation ready for prime time. But no one is going to convince  
you on this point. I don't get the sense you are actually open to any  
feedback that may differ at all from what you already had in mind.
Also, to quote:
 > The obvious way to do it would  be to also set the tags with out  
the "com.apple.metadata:" prefix.
I can't believe you just said this, and your commented out code also  
follows this. After all the debate over domains, you suggest we (the  
proponents of observing proper ownership rules with regards to xattr  
namespaces) use an unprefixed xattr. If you disagree with us, that's  
one thing, but things like this seem to indicate a real  
misunderstanding over what was being discussed.
In the end, I can't officially support OpenMeta based on flaws in both  
the design and implementation as well a strong resistance towards  
addressing them (or even giving straight answers). Right now, I am  
considering a hidden default that certain users can set that will  
point to an already installed 'omtool' binary. This would be  
unsupported and, this way, I won't have to link against this code.  
Also, users would have to read up on the risks involved before being  
able to learn about this default. Note that this support would be  
unofficial and unsupported so do not use my company or product in  
conjunction with OpenMeta for any promotional purposes.
Good luck.
> One thing that is bothering
> me, though: would the mirrored xattr tags survive the Adobe apps?
No. Basically, there is a tension between designing a backup system to  
handle the situation with the Adobe apps, and designing a simple,  
reliable, and future-proof system for storing tags under our own  
namespace. Neither design solves both problems well. Mirrored xattrs  
do not address the former at all, but they are great for the latter.  
Tom's plist backup partially solves the Adobe problem, but it is poor  
at the latter.
I think the mirroring is easy to do now and clearly the right choice  
for the future. It can be supplemented with another system to work  
around the Adobe problem, until those applications are updated to work  
with xattrs.
> As a developer of Punakea, where we have recently switched to using
> OpenMeta, I was very glad of a good solution finally available for
> tagging, but, as others here, I'm concerned with the tag safety and
> future-proofness of the whole system. If Tags has a good solution, why
> doesn't OpenMeta go the same way?
As far as I know, Tags does not currently have *any* solution.
--Michael
> I think the mirroring is easy to do now and clearly the right choice
> for the future. It can be supplemented with another system to work
> around the Adobe problem, until those applications are updated to work
> with xattrs.
I agree with you there.
> As far as I know, Tags does not currently have *any* solution.
I was referring to this part of your last mail:
"I thought we already discussed this and determined that it was
possible by looking at the tag time--which Gravity's Tags does set."
Which would make the mirroring between to xattrs feasible, as far as I 
understand. It would be a solution to keeping the xattr tags in sync 
properly, right?
I have followed the discussion over the last few weeks, about using the 
apple.com namespace, and I haven't been commenting on it. It is also my 
opinion, especially for an "open standard", which OpenMeta should be, 
and also tries to be if I understand the whitepaper correctly, a 
namespace that isn't owned by the standard creators is not a solution in 
my eyes. I know this has all been said before, but the more, the 
merrier, right? ;)
Regards,
Johannes Hoffart
>> As far as I know, Tags does not currently have *any* solution.
>
> I was referring to this part of your last mail:
>
> "I thought we already discussed this and determined that it was
> possible by looking at the tag time--which Gravity's Tags does set."
>
> Which would make the mirroring between to xattrs feasible, as far as I
> understand. It would be a solution to keeping the xattr tags in sync
> properly, right?
What I meant was that Tags does not currently do xattr mirroring or  
any other sort of backup. However, because it does set the tag time  
(as does OpenMeta), we can use that to make sure the xattrs are in sync.
--Michael
The problem with Adobe apps will continue for quite a while - Adobe's 
apps use a method of saving files that destroys xattrs - we have to 
deal with that out of practical necessity.  Even if they've fixed it 
in CS4 (have they?) there are still piles of CS3 users that will 
continue using that for the foreseeable future.  I'm one of those, 
because I've yet to see a compelling reason to shell out for CS4.
>Even if this is not the case, though, I would still propose to go
>forward with the mirrored tags as a primary store (mirrored in the
>public namespace that is, not in Apple's).
The mirrored tags were agreed upon in the last flurry of activity on 
OpenMeta, and I was under the impression that everyone, including 
Tom, saw them as a reasonable solution to future-proofing us against 
any changes that impact the use of the com.apple.metadata naming 
convention.  Even without a built-in recovery mechanism, just 
mirroring the data to org.openmeta (or whatever) xattrs will 
safeguard the user's data.
I think several developers made it clear that this was crucial for 
their buy-in.  Tom, I'm not understanding your approach - if we want 
this effort to succeed, we have to come to some consensus with other 
developers and put code in place that makes the community happy, not 
just you.  And communication is necessary too.  I understand being 
busy - I've been off coding and running my business too - but if you 
spearhead a project like this, it's imperative that you at least 
answer other developers' questions.
I'm feeling pretty stupid for adopting OpenMeta in Default Folder X 
if it's going to fall flat now - pulling OpenMeta out of DFX would be 
messy now, and there will be unhappy users.  I'd certainly rather see 
the mirroring added to the code so everyone can move forward.  It's a 
good idea and generally works well - why is it so hard to be 
pragmatic and get everything working?
The backup solution is practical for dealing with apps that strip 
xattrs, but it's not a substitute for mirroring at-risk data in 
another store.
>So, while we will not hold back on the Punakea release waiting for the
>final decision (we have migrated our tags once alreay ;)), I still
>encourage the OpenMeta developers to address this issue quickly, if you
>truly want to create an open standard.
That means you, Tom.  You have control over the code, so we 
ultimately need your input.  Please respond.
> What we have agreed on: (at least from my viewpoint)
> [...]
> Apple should endorse and recognize OpenMeta as an example of how to
> properly interact with the metadata store for applications writing
> metadata to any file type.
What I'd like is for Apple to provide a documented and supported means  
for third-party developers to attach Spotlight-indexable metadata to  
files. I don't think relying on a a "com.apple.metadata" prefix is  
necessarily the best design, because it's not very flexible and  
imposes an unnecessary constraint on the data. Stuffing two kinds of  
information (indexability and ownership/name) into one field is a hack.
It might be better for applications to declare (via an API or  
Info.plist key) which xattrs should be indexed, or to extend the  
Spotlight importer system to allow multiple plug-ins to operate on the  
same file, or to use some other design entirely. So I hope that Apple  
will add official support for this type of functionality, but I also  
hope they will come up with something better than using a prefix.
> What we disagree on: the mirror
> [...]
> In my view the need to mirror is based on fear uncertainty and doubt  
> (FUD).
In my view, it's good engineering to rely on the specifications of the  
parts you are building with. If you have a part that's rated for  
between 50-80 degrees and you try use it at 20 degrees, it might not  
work as intended. You want to use it anyway, on the grounds that you  
don't foresee any problems. Maybe it really did pass the tests at 20  
degrees. Just to be sure, we ask the vendor whether they support the  
use of the part at 20. They say no. At this point, you still decide to  
use the part.
I don't want to ride in a vehicle that was built this way. I certainly  
don't want to sell one and be responsible for all the passengers. I  
don't think this is FUD. FUD would be if the part actually *was* rated  
for 20 degrees, but I told people that you were using shoddy parts  
that weren't up to spec.
> A) There has to be a prefix of some sort as a hint to apple to index
> the metadata:
Prefixing is simply the technique that Apple is currently using within  
the OS and built-in apps. There's no reason it has to remain that way.  
It is also ambiguous what "com.apple.metadata" *means*. Is it metadata  
assigned by Apple? Or is it metadata that's indexed by Spotlight?  
Since it is an undocumented prefix, we only know how it *currently  
behaves*. I think it's unwise to infer meaning and a contract from  
what may be a temporary implementation detail.
> com.apple.metadata makes sense - it does not mean that apple owns  
> the data
Yes, this is as clear as can be. I think it's obvious that "com.apple"  
means Apple ownership; you don't.
> B) What's the problem?
> Apple also owns the "com.apple.iwork.pages.pages"  but are they going
> to start erasing peoples pages documents?
I don't think this is a good analogy because  
"com.apple.iwork.pages.pages" is a UTI (an abstract property that a  
file may or may not conform to) whereas the xattr is a concrete  
storage location. Another concrete storage location is the /System/ 
Library/CoreServices/ folder. If you store Pages documents there, I  
would not expect the OS to preserve them.
> Similarly, if you make an
> application that writes rtfd files (com.apple.rtfd) will apple then
> remove them from the computer ever? Or change the format without
> notice?
Well, they actually did change the Pages format without notice. It  
used to be a package, and now it's a Zip file.
RTFD is different because Apple provides an API for accessing it.  
Apple would be free to make changes to RTFD that do not violate those  
contracts.
Note that if you use the QuickLook API to view a Pages document, the  
change is invisible to your application.
> So is the key name of an attribute like the extension on a
> file?
No.
> C) Where is the complaint from Apple?
First, the prefix is not documented as a supported technique. So  
assuming that it does what you want and will continue to do so is  
guess-work. Second, as previously discussed, I filed a DTS incident  
asking Apple whether developers could rely on "com.apple.metadata",  
and they said no. In other words, the lack of documentation is not an  
accidental omission; they do not support this.
> Assume for a moment all the mirrored data is written. Under what
> circumstance do you use it?
You would use the data with the most recent tag time. Eventually,  
perhaps, the transition is over and you simply define org.openmeta to  
be the one official location.
> Simple precedence won't work, as
> attributes can be erased easily by anyone, on purpose. It would be
> really frustrating to erase tags in one app only to have them reappear
> again. So if there are no com.apple.metadata kOMUserTags but there are
> some openmeta.org ones - do we use those? Likely not - it is far more
> likely that the com.apple.metadata ones are correct.
I don't think it makes sense to take the absence of com.apple.metadata  
to mean that the *user* deleted the tags. To indicate deleted tags, I  
would expect to see an empty array and a recent tag time. As with  
anything, a user who runs a script that modifies the data in a non- 
conforming way may see unexpected results. By defining a standard and  
a providing an open-source reference implementation, we make it easy  
for people to access the data in a reliable way.
> So I think that the only reason to ever use the mirror would be if
> Apple were to start erasing user data from the xattrs, based on
> partial key names only  (say for 10.7) and  we would have plenty of
> time.
I just don't think it makes sense to store data in an unsure location,  
with promises to migrate later if necessary. It's easy to get it right  
now, so why not do it? Any sort of transition would only be more  
difficult later, when there's more user data, more applications and  
versions of them, and more versions of the OS to contend with.
> Can you write some code that would automatically switch to using
> org.openmeta* tags?
Yes: you use the most recent non-absent value.
--Michael
>>> So is the key name of an attribute like the extension on a
>>> file?
>>
>> No.
> The xattr is the name of a storage location in the same way that .rtfd
> is the name of a storage location.
Prefixes and suffixes have (by convention) different meanings. Google  
owns all the URLs beginning with google.com, but no one owns all the  
URLs ending with .html.
>> You would use the data with the most recent tag time. Eventually,
>> perhaps, the transition is over and you simply define org.openmeta to
>> be the one official location.
>
> That will not work, as removing tags with any shipping application
> will simply not work, once a new mirror capable application ships and
> has mirrored all the tags.
Please give a specific example, because I have no idea what you're  
referring to.
> There will be applications that  directly
> set only what they need to - user scripts, etc.
Really? How do you even construct a binary plist from AppleScript or sh?
> Then, if you define org.openmeta as the 'real' location - using any
> old application will change the spotlight DB so searches will see one
> thing, while the tag editor will see another.
That's why I said "eventually, perhaps." At some point, people won't  
even be able to run the old applications, just like I can't run  
FrameMaker in Classic on my MacBook Pro.
>> I don't think it makes sense to take the absence of  
>> com.apple.metadata
>> to mean that the *user* deleted the tags. To indicate deleted tags, I
>> would expect to see an empty array and a recent tag time. As with
>> anything, a user who runs a script that modifies the data in a non-
>> conforming way may see unexpected results. By defining a standard and
>> a providing an open-source reference implementation, we make it easy
>> for people to access the data in a reliable way.
> It would be great if all software was written by and conformed to
> everything with no bugs but that is not the case.
Do you have an example of an application that doesn't conform? Or is  
this just a hypothetical that someone might write code that actively  
ignores the standard? I just tested this with Leap 2 and with Tags,  
and both remove the tags by setting an empty array.
Also, if there were an application that deleted the xattr instead of  
setting an empty array, this would create equal problems for the xattr  
mirroring and for your existing plist backup system.
--Michael
Just think of the way Spotlight works at the moment. Spotlight importers 
overwrite any changes made to the Spotlight DB directly, effectively 
only caching the documents for efficient search. What if Apple would, in 
the future, adopt a system that handles metadata the same way? They 
might give developers an API to write their metadata, and then, upon 
_really_ writing the metadata to the file, flush the com.apple.metadata 
stuff, rebuilding it from the original sources, just to avoid 
synchronization issues with apps that do not use the Apple API?
Even if this is a remote possibility , it highlights the basic sense of 
a namespace, and I think that there should be no doubt about what 
namespaces are used for. Namespaces were introduced to have your own 
area in a shared environment, precisely to avoid conflicts.
Tom, I share your concern about irritating users, but do you really 
think any serious developer would use the xattrs, but not know about 
OpenMeta? Most probably he would get to know of the method to add user 
generated metadata to files through OpenMeta, and in the course learn of 
the very simple API. Why should a potential developer not use OpenMeta then?
I think that mirroring the attributes to "our own" namespace, but 
keeping the com.apple.metadata one as a primary for the time being 
should be a good comprise, and very easy to implement, right? 
Performance issues should be negligible I believe.
I really hope we can resolve this issue, because I love the idea and I'm 
very thankful that Ironic made OpenMeta available in the first place!
Regards,
Johannes Hoffart
How about (hate to partial quote Johannes)
> I think that mirroring the attributes to "our own" namespace, but
> keeping the com.apple.metadata one as a primary for the time being
> should be a good comprise, and very easy to implement, right?
> Performance issues should be negligible I believe.
I have registered openmetainfo.org - should we use that for a mirror -  
anyone feel free to reply with a better domain - i think that it makes  
sense to use a domain thats not already taken.
If you do find a good free one, don't post it in public - just email  
it around a bit. A public post will likely result in the domain being  
swiped by someone.
I registered it in my name - there is no 'openmeta' company or  
organization to register it under.
What I coud do is post a letter to code.google.com/p/openmeta that  
says that the openmetainfo.org domain will not be held for ransom or  
sold for any money be me when the initial 2 year period is up. Would  
that be ok?
Perhaps there is someone with more knowledge of how to handle the  
domain ownership?
--Tom
> I think that mirroring the attributes to "our own" namespace, but
> keeping the com.apple.metadata one as a primary for the time being
> should be a good comprise, and very easy to implement, right?
I would rather figure out something that makes sense technically,  
before acting. This compromise seems to postpone that, and add more  
cases to consider, with a possible second code transition down the line.
We were agreed before that we could migrate to org.openmeta while  
maintaining compatibility by using the tag time to determine which  
domain was primary. Tom now says, "that will not work...with any  
shipping application." I think he's wrong and that it will be  
compatible with the currently shipping applications. The only  
potential problem is someone writing a script that modifies one domain  
but not the other *and* doesn't set the tag time. But if Tom is right,  
then obviously we need to re-think this. So, Tom, please explain why  
you think this won't work.
--Michael
> I have registered openmetainfo.org - should we use that for a mirror -
> anyone feel free to reply with a better domain - i think that it makes
> sense to use a domain thats not already taken.
Agreed. There are also a few variants of openmeta.* available.  
Whichever domain we pick, the preferences should be stored there as  
well.
> I registered it in my name - there is no 'openmeta' company or
> organization to register it under.
>
> What I coud do is post a letter to code.google.com/p/openmeta that
> says that the openmetainfo.org domain will not be held for ransom or
> sold for any money be me when the initial 2 year period is up. Would
> that be ok?
Yes.
--Michael
I've been off at WWDC for the last week, so am just catching up now. 
Tom and I were discussing this via email before I left, so I'll pick 
that up and see where we are.
> This thread has gone a bit cold, and I'm curious:  is this issue
> essentially "resolved", from Tom's point of view and that of the other
> developers here (such as Default Folder X, Hazel, etc.)?
As I see it, nothing has changed and we're waiting for a response from  
Tom.
--Michael
> All because people cannot agree about "the best way
> to do it". Oh really, folks, seriously?
>
> From an user perspective, what is needed is a tagging system that just
> works.
I think we're all agreed that finer details like the backup system can  
be polished up later.
For the basic tag storage, it's not so much a question of agreeing on  
the "best way" as that some feel that the current code is  
unacceptable. I think "just works" means more than working on a  
particular Mac with a particular version of the OS. Users expect that  
their data will stay intact and that tagging applications will  
continue to interoperate correctly (given reasonable assumptions about  
the future).
> Using Spotlight comments was no less one
> than injecting xattr metadata into com.apple namespace
I don't like Spotlight comments, either, but that statement simply  
isn't true. Apple has provided developer access to the comments since  
System 7.
> Michael, Jon, everybody who objected: don't deny your users a feature
> because its future proofness is not set in stone. No computer
> technology is, everything developed is only ever done so "for the time
> being".
Not knowing what the future may bring is one thing. Unnecessarily  
relying on something that we know ahead of time to be out-of-bounds  
would be negligent.
> openmeta is no 100 % solution, but it is further up that path
> that anything developed before.
The thing is, in April we agreed on (what we thought was) a 100%  
solution. So I see no reason to go backwards from that unless someone  
can point to a reason why some other way would be better.
As I see it, the current situation is that:
(a) Tom rejects the April solution but has not identified a specific  
problem with it.
(b) Tom controls the code.
So I would like to move forward, but I don't think the ball is in my  
court.
--Michael
> Now I do understand that robustness over time is exactly the issue at
> hand: does the *potentially* lower robustness over OS incarnations of
> openmeta outweigh the *actual* user facing advantages so much that it
> justifies not implementing it?
That is a false dichotomy because there are ways to have both  
robustness and the user-facing advantages.
--Michael
> OpenMeta code has had mirroring since June 4, 2009.
Cool. I think things would move along more quickly if you could tell  
the group when you make a change like this.
> All attributes written to com.apple.metadata:* are also written to
> org.openmetainfo:*
What's the status of openmetainfo.org? It looks like it's parked at  
GoDaddy.
> To read from these requires code that I don't think can be written at
> this point
Why can't the code be written? Didn't we discuss using the  
kOMUserTagTime in April?
> No one has ever offered one line of code for me to include in
> OpenMeta.
I offered on January 30:
<http://ironicsoftware.com/community/comments.php?DiscussionID=632>
Paul offered on May 8:
<http://groups.google.com/group/openmeta/msg/71263063ec54a05a?hl=en>
You never actually accepted or rejected the offers.
> I feel that this whole discussion compares well to discussing 'how
> many angels can dance on the head of a pin'. Or what if Apple changes
> its disk format to ext4 without telling the developers or users ahead
> of time. ?
Do you have an example of an unsupported HFS+ feature that would not  
work on ext4? Otherwise, I don't see the analogy.
> The chances of Apple changing this technology are both distant in time
> and unlikely.
As far as I can tell, that's just your hunch. The official word from  
Apple is that it's not supported (i.e. subject to change).
> Things like Time Machine backups use
> them - backups that need to be viable years down the road.
My understanding is that most of the metadata is actually stored  
elsewhere. Apple mirrors it into com.apple.metadata for the benefit of  
Spotlight. I don't believe com.apple.metadata is the primary data  
store for any user-entered data, except for OpenMeta. It is the  
primary store for kMDItemWhereFroms, but Apple considered that so  
unimportant that in 10.4 it was only "stored" in the Spotlight index.
> Furthermore: Say we wrote a 'internet downloader' application: would
> it not be 'right' to set com.apple.quarantine on disk images
> downloaded with it? Or set the com.apple.kMDItemWhereFroms?
That would be incorrect because you should use the LSQuarantine API to  
do this.
--Michael
> openmetainfo.org is likely parked I bought the name - but that's it. I
> guess its not too hard to point it to google code openmeta.
Sounds good.
> I added some lines of code to write the org.openmetainfo as paul
> suggested. I don't know if he wants reading or not. Most people here
> don't seem to want to use org.openmetainfo as the primary store.
Is that true? I thought Jon and Paul both supported moving in the  
direction of using org.openmetainfo as the primary store. The only  
benefit to having com.apple.metadata as primary is that's what the  
currently deployed apps do. But by using the kOMUserTagTime we can  
transition to the non-Apple namespace while maintaining compatibility.
>> Do you have an example of an unsupported HFS+ feature that would not
>> work on ext4? Otherwise, I don't see the analogy
> I was trying to say that Apple will tell people before they erase
> their data.
OK. My point is that Apple is only responsible for telling you when  
they break a contract. They don't tell people when they remove a  
private API or change a private file format. You can't expect a  
warning if you weren't supposed to put your data there in the first  
place.
--Michael
I want to keep com.apple.metadata as the primary store and mirror 
data to org.openmetainfo.  We can switch this at a later date if 
that's desirable to you and others (I'm comfortable just having a 
backup of the data in org.openmetainfo that can be salvaged if 
necessary, though I personally don't think that will be necessary).
Delaying the switch would give Gravity some time to incorporate 
OpenMeta so that users are all using apps based on OpenMeta before we 
transition to org.openmetainfo as the primary store.  If we do this, 
then all apps will be writing to both stores by the time the 
transition occurs and there will be far fewer instances of OpenMeta 
having to "fix" things by shuffling tags and deciding which source is 
the correct one in a particular instance.
Yes!  I wasn't aware it'd been done either.  I was just wondering if 
I'd missed something while I was away at WWDC...
> I want to keep com.apple.metadata as the primary store and mirror
> data to org.openmetainfo.  We can switch this at a later date if
> that's desirable to you and others (I'm comfortable just having a
> backup of the data in org.openmetainfo that can be salvaged if
> necessary, though I personally don't think that will be necessary).
>
> Delaying the switch would give Gravity some time to incorporate
> OpenMeta so that users are all using apps based on OpenMeta before we
> transition to org.openmetainfo as the primary store.  If we do this,
> then all apps will be writing to both stores by the time the
> transition occurs and there will be far fewer instances of OpenMeta
> having to "fix" things by shuffling tags and deciding which source is
> the correct one in a particular instance.
I'm not sure I understand your reasoning. You seem to agree that we  
*can* figure out which tags are correct, but you're reluctant to do  
this. From my perspective:
1. Doing the transition now (in OpenMeta) means that even apps that  
use com.apple.metadata will get automatic mirroring in  
org.openmetainfo, as soon as the tags are read by any OpenMeta  
application. So I see having to "fix things" as a pro, not a con.
2. If we switch now, deployed apps would "just work" if anything  
happened to com.apple.metadata. There would be no need to issue  
updates that salvage the data in org.openmetainfo.
3. The code will be the same whether or not we write it before Gravity  
incorporates OpenMeta.
4. Even after Gravity switches, we would still want to "decide which  
source is the correct one" in order to remain compatible with any  
legacy apps.
So I see several advantages to switching earlier, and no  
disadvantages. Am I missing something?
--Michael
The disadvantage I see of doing it now is that you're taking on the 
responsibility for data synchronization for Tags and old apps that 
don't support org.openmetainfo themselves.  Yes, the code for this 
will work in nearly all cases, but there will always be the isolated 
users that, for whatever reason have some bizarre system problem, 
disk corruption, or other unanticipated circumstance that will result 
in the OpenMeta code doing the wrong thing, or things getting blown 
apart somewhere.
Yes, that's ambiguous, but in my experience such problems crop up 
every so often and serve to make some poor user's life hell for a few 
days while they try and unwind the damage (I do code very 
defensively, but still get blindsided by weird stuff like last week, 
when a user's disk developed a bad block underneath a cache file and 
would lock whenever anything tried to delete the cache.  I wasn't 
sure that was it until she emailed me a week later to tell me the 
whole drive went went south and was being replaced under AppleCare).
By waiting 6 months, we significantly reduce the number of cases in 
which OpenMeta needs to make critical decisions about which data is 
"correct" (org.openmetainfo vs. com.apple.metadata) and thus reduce 
the chance for error.  By that time, most apps will be writing to 
both org.openmetainfo and com.apple.metadata themselves because 
they'll all be using OpenMeta.
Again, this is all predicated on my take that exception cases on 
individual Macs are more of a present concern than com.apple.metadata 
going away.  I guess it's a more simplistic view - don't add more 
logic than you have to until it's needed (where we obviously differ 
on the term 'needed').  In the end, I honestly think we're arguing 
awfully small details.  If it makes you happy to write the code now 
and include it, I'm not going to pitch a big fuss.
> The disadvantage I see of doing it now is that you're taking on the
> responsibility for data synchronization for Tags and old apps that
> don't support org.openmetainfo themselves.  Yes, the code for this
> will work in nearly all cases, but there will always be the isolated
> users that, for whatever reason have some bizarre system problem,
> disk corruption, or other unanticipated circumstance that will result
> in the OpenMeta code doing the wrong thing, or things getting blown
> apart somewhere.
OK. I'm happy with a two-phase transition (first add mirroring, then  
switch the primary) if that will make people more comfortable.
Tom, are you working on the reading code, or would it help if I  
submitted a patch? I think we discussed before the idea of making a  
preference. Developers could set it when initializing OpenMeta, or it  
could kick in automatically after 6 months or so.
--Michael
> I have registered openmetainfo.org
Could you set this up to forward to code.google.com/p/openmeta?
--Michael
> Done that,
Thanks!
--Michael