Subject: Re: OK, enough with atom:id

From: Graham Parks <[email-masked]>
Date: Mon, 09 Aug 2004 18:26:28 -0400

On Monday, August 09, 2004, at 03:24PM, Sam Ruby <[email-masked]> wrote:

>My fear is that by not precisely defining equivalence, we enable an arms 
>race whereby one implementation uses a normalization rule during 
>comparison, then some feeds are produced that work with that 
>implementation, and then other consumers are required to reverse 
>engineer the rule and implement aggressive canonicalization, etc.

Well, you and I both define equivalence as by Simple String Comparison, and nothing else (I think), so I'm not sure why that's relevant.

>Canonicallizing all possible schemes is a large task.  By comparison, 
>producers of new entries know what schemes they are producing, generally 
>have only to check a few simple rules (or let the validator do the 
>checking for them), and often they will have to do nothing.  Clients, 
>like shrook, also have to do nothing.

Maybe I'm missing something, but the 2 options are:
i) As long as everyone canonicalizes their output, then all strings will be the same and it will all work.
ii) As long as everyone makes sure the output is the same as the input, then all strings will be the same and it will all work.

The second one looks way more straightforward and elegant and easier to implement.

Grahajm

---

From: Walter Underwood <[email-masked]>
Date: Mon, 09 Aug 2004 15:57:53 -0700

--On Monday, August 09, 2004 06:26:28 PM -0400 Graham Parks <[email-masked]> 
wrote:
> ii) As long as everyone makes sure the output is the same as the input,
> then all strings will be the same and it will all work.
>

But harder to verify as correct. Without the input, it can't be
tested at all. The first one can be tested by checking for
canonical form.

wunder
--
Walter Underwood
Principal Architect
Verity Ultraseek

---

From: Sam Ruby <[email-masked]>
Date: Mon, 09 Aug 2004 19:02:43 -0400

> The second one looks way more straightforward and elegant and easier to implement.

i) and ii) are not mutually exclusive.

If you generate new ids, generate them right (lowercase scheme, etc).

If you copy valid ids, copy them bit for bit.

- Sam Ruby

---

From: Graham <[email-masked]>
Date: Mon, 9 Aug 2004 18:12:11 -0500

> If you copy valid ids, copy them bit for bit.

In which case, what does requiring canonicalization get us except more 
traffic to your validator?

> tested at all. The first one can be tested by checking for

So if we have a rule we can test that the rule is being followed? It 
doesn't get us any closer to testing whether implementations use the 
same/different IDs at the appropriate time, which is the only thing 
worth testing for.

Graham

(PS You two know Glory and Ben are the same person, right?)

---

From: Sam Ruby <[email-masked]>
Date: Mon, 09 Aug 2004 20:30:02 -0400

> traffic to your validator?

No, if Tim wants to write a spider that canonicalizes, or somebody 
accidentally uses one of the classes that was explicitly designed for 
this purpose that comes with the .Net framework or Java, that too will 
work.  And if things break, we actually can tell what needs to be fixed.

"cleanly and thoroughly specified."

- Sam Ruby

---

From: Graham <[email-masked]>
Date: Mon, 9 Aug 2004 19:40:37 -0500

> "cleanly and thoroughly specified."

Or it might be easier to tell them DON'T CANONICALIZE YOU FULE.

"Is everyone here very stoned?"

Graham

---

From: Joe Gregorio <[email-masked]>
Date: Mon, 9 Aug 2004 22:49:33 -0400

> work.  And if things break, we actually can tell what needs to be fixed.

If all feeds are *generated* so that equialent 
atom:ids are the same character-for-character,
than any comparison of them,
either character-by-character, or the accidental use
of .Net, or Java, will find all the equivalent entries.

    -joe

-- 
Joe Gregorio        http://bitworking.org

---

From: Mark Nottingham <[email-masked]>
Date: Mon, 9 Aug 2004 21:35:04 -0700

On Aug 9, 2004, at 5:30 PM, Sam Ruby wrote:

>> alization get us except more traffic to your validator?
>
> No, if Tim wants to write a spider that canonicalizes,

How exactly would Tim's spider work? Would it merrily canonicalise 
those URIs just because they're there? Or, are you saying that now we 
want to be able to dereference atom:id?

> or somebody accidentally uses one of the classes that was explicitly 
> designed for this purpose that comes with the .Net framework or Java, 
> that too will work.

We're now protecting against accidental code misuse in the spec? I'm at 
a loss. Doing so shifts all of the burden onto people who are authoring 
the feed.

> "cleanly and thoroughly specified."

Uh huh. "Mom and apple pie."

--
Mark Nottingham     http://www.mnot.net/