Subject: Fyi, Apache project proposal

From: James M Snell <[email-masked]>
Date: Mon, 22 May 2006 14:59:12 -0700

Just an FYI,

http://wiki.apache.org/incubator/AriProposal
http://www.snellspace.com/wp/?p=323
http://www.snellspace.com/public/ari.tar.gz

We are proposing the creation of an Atom Reference Implementation
project at Apache and have donated source to kick things off.  Currently
the source fully implements RFC4287 and includes preliminary support for
parsing APP introspection documents and the Feed Thread Extensions.
Coming soon is APP client and server code.

The goal of the project is to provide a feature-complete reference
implementation of the syntax and protocol specs along with any
standardized extensions.

The proposal is currently being reviewed by the Incubator PMC and has
not yet been approved.

- James

---

From: Elliotte Harold <[email-masked]>
Date: Tue, 23 May 2006 08:29:27 -0400

> Coming soon is APP client and server code.

Could you elaborate a little more on what this actually is? For instance 
does it include a web server? or does it sit on top of one, and if so 
which?

How would you describe this product to a programmer who is not familiar 
with the relevant RFCs and does not know what Atom is?

-- 
Elliotte Rusty Harold  [email-masked]
XML in a Nutshell 3rd Edition Just Published!
http://www.cafeconleche.org/books/xian3/
http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim

---

From: Elliotte Harold <[email-masked]>
Date: Tue, 23 May 2006 08:32:04 -0400

James M Snell wrote:

> project at Apache and have donated source to kick things off. 

What minimum Java version are you targetting? 1.2? 1.4? 5?

---

From: Elliotte Harold <[email-masked]>
Date: Tue, 23 May 2006 08:30:59 -0400

> project at Apache and have donated source to kick things off. 

I'm not sure if this is the right place for comments of this nature or 
not, but here goes. The one alarm bell that went off when i read this 
was Woodstox. That project has a history of nonconformance to XML. Is 
there any chance you could be convinced to throw that way in favor of a 
more correct STAX implementation such as Sun's?

---

From: Ugo Cei <[email-masked]>
Date: Tue, 23 May 2006 15:18:18 +0200

On May 23, 2006, at 2:59 PM, Sylvain Hellegouarch wrote:

> It seems to be good idea to do such promotion. However I wonder why  
> you
> have not considerated using an existing project such as demokritos [1]
> which is quite well advanced.

Demokritos might be quite well advanced but unfortunately Python code  
is not very suited for us poor souls who still have to struggle with  
java environments ;-)

	Ugo

-- 
Ugo Cei
Blog: http://agylen.com/
Open Source Zone: http://oszone.org/
Evil or Not?: http://evilornot.info/
Company: http://www.sourcesense.com/

---

From: James Tauber <[email-masked]>
Date: Tue, 23 May 2006 09:31:30 -0400

I could certainly do with more of a critical mass of users /  
contributors / people-on-the-mailing-list

James

On 23/05/2006, at 8:59 AM, Sylvain Hellegouarch wrote:
> - Sylvain
> [1] http://www.jtauber.com/demokritos
>

---

From: "Sylvain Hellegouarch" <[email-masked]>
Date: Tue, 23 May 2006 14:25:51 +0100 (BST)

> is not very suited for us poor souls who still have to struggle with

I guess I kind of got that as well. That being said, it will be nice of
the project at some point can state exactly how it will either support
other environments or at least what bridges it will offer to those,
because equally to the fact Python is not suited to your needs, Java is
not even on my book ;)

I definitely don't want to start a language flame but I merely want to
understand if that project will concern me on the long run or not.

- Sylvain

---

From: "Sylvain Hellegouarch" <[email-masked]>
Date: Tue, 23 May 2006 13:59:21 +0100 (BST)

>> project at Apache and have donated source to kick things off.

It seems to be good idea to do such promotion. However I wonder why you
have not considerated using an existing project such as demokritos [1]
which is quite well advanced.

- Sylvain

---

From: Walter Underwood <[email-masked]>
Date: Tue, 23 May 2006 07:53:59 -0700

--On May 23, 2006 3:18:18 PM +0200 Ugo Cei <[email-masked]> wrote:
>
> Demokritos might be quite well advanced but unfortunately Python code is not
> very suited for us poor souls who still have to struggle with  java environments ;-)

The goal is a reference implementation. The goal is to be exactly correct.
Being in a particular language, or even being fast enough to be usable,
is beside the point. In particular, a reference implementation should
always choose code readability over speed.

If the goal is to have a standard, free implementation that everyone uses,
that is different from a reference implementation and the goals should
say that.

wunder
--
Walter Underwood
Principal Software Architect, Autonomy (Ultraseek)

---

From: "Sylvain Hellegouarch" <[email-masked]>
Date: Tue, 23 May 2006 16:09:51 +0100 (BST)

> always choose code readability over speed.

Fair enough.

> that is different from a reference implementation and the goals should

I'm sorry to ask but I'm not sure to understand the meaning of having an
implementation which is exactly correct. As we have already seen on this
list, RFC4287 lacks of precision in some context, therefore I wonder what
being "exactly correct" represents. I believe Jigsaw [1] is a an example
of what you mean. Sadly it seems to be hardly referenced anywhere.

Besides, that does not really answer the question of whay not improving an
existing project over starting a new one from scratch.

Again, I don't really care about the fact it is built using Java or else
as long as the project ensure bridges to other environment.

- Sylvain

---

From: "Sylvain Hellegouarch" <[email-masked]>
Date: Tue, 23 May 2006 16:16:06 +0100 (BST)

> I believe Jigsaw [1] is a an example of what you mean.

Jigsaw: http://www.w3.org/Jigsaw/

But you all knew that. ;)

- Sylvain

---

From: Elliotte Harold <[email-masked]>
Date: Tue, 23 May 2006 11:26:55 -0400

> of what you mean. Sadly it seems to be hardly referenced anywhere.

1. It finds bugs in the spec.

2. When the spec isn't clear, the answer is "what the reference 
implementation does"

Of course, this requires the reference implementation to be developed 
with the same authority that the spec writers have. That's not at all 
the case here, so I suspect "reference implementation" is a false 
statement. This will not be the reference implementation, and shouldn't 
call itself one.

-- 
Elliotte Rusty Harold  [email-masked]
Java I/O 2nd Edition Just Published!
http://www.cafeaulait.org/books/javaio2/
http://www.amazon.com/exec/obidos/ISBN=0596527500/ref=nosim/cafeaulaitA/

---

From: James M Snell <[email-masked]>
Date: Tue, 23 May 2006 08:35:36 -0700

The goal is to have a reference implementation that is also usable.
However, I do have to be careful here, the IETF doesn't really do
reference implemenations so the naming of this project is a bit wrong.
We really shouldn't be calling it a "reference implementation" although
that is the kind of thing we're wanting this to be.

- James

Walter Underwood wrote:
>> is not

---

From: James M Snell <[email-masked]>
Date: Tue, 23 May 2006 08:35:31 -0700

I don't really want to get into a lot of detail here (it's not the
proper forum for it). The project will provide a Java-language Atom
parser, APP client, and some APP server side code with the goal of
providing as complete an implementation as possible.

And regarding the choice of the XML parser... again, that's not
something I want to get into here.

- James

---

From: James M Snell <[email-masked]>
Date: Tue, 23 May 2006 08:35:22 -0700

In this particular case, it means providing an implementation that
allows, as closely as possible, everything that the spec allows.  For
instance, if you look at the code, the Link element is marked as being
extensible and as allowing string content, both of which are explicitly
allowed by RFC4287 via the use of the undefinedContent element.

Regarding the choice of language, with any new standard, especially one
like Atom, it is important to have as many implementations as possible
available in as many languages as possible in order to tease out any
interoperability issues and to ensure as broad a reach as possible.

- James

---

From: Peter Saint-Andre <[email-masked]>
Date: Tue, 23 May 2006 09:48:19 -0600

> statement. This will not be the reference implementation, and shouldn't

Is it ever the case (at least in the IETF context) that the developers
of a reference implementation have the same authority that the spec
authors have? As far as I can see, the authority of the spec authors (if
there is such authority) is granted by the Internet Standards Process
itself. But the Internet Standards Process talks about specifications
rather than implementations, so I don't see how any developers could
have the same kind of authority (even if they were the spec authors).
Ergo we can never have an "authorized" reference implementation for any
IETF standard.

Peter

- --
Peter Saint-Andre
Jabber Software Foundation
http://www.jabber.org/people/stpeter.shtml

---

From: Ugo Cei <[email-masked]>
Date: Tue, 23 May 2006 17:51:03 +0200

at

> that is different from a reference implementation and the goals should

Yes, sorry, I wasn't considering it from this angle.

By the way, someone commented on my blog that:

"ARI (or whatever it will be called) will *NOT* be a reference  
implementation. According to Roy F, the IETF doesn’t allow reference  
implementations, just implementations"

<http://agylen.com/2006/05/23/atom-reference-implementation/#comments>

	Ugo

---

From: "A. Pagaltzis" <[email-masked]>
Date: Tue, 23 May 2006 17:47:29 +0200

* Sylvain Hellegouarch <[email-masked]> [2006-05-23 17:20]:
> As we have already seen on this list, RFC4287 lacks of
> precision in some context, therefore I wonder what being
> "exactly correct" represents.

Did I miss something? I remember several oversights of omission,
but none of imprecision.

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

---

From: James M Snell <[email-masked]>
Date: Tue, 23 May 2006 09:08:22 -0700

FWIW, I removed the term "reference implemenation" from the proposal to
properly reflect the nature of the implementation.

Ugo Cei wrote:
> --Ugo Cei

---

From: James M Snell <[email-masked]>
Date: Tue, 23 May 2006 09:05:28 -0700

Right. IETF specs cannot have an official reference implementation.  The
best we can do, in this case, is to have a number of implementations
available that strive to a) implement the spec as completely as possible
and b) interoperate with one another as best as possible.  The
"reference implementation" then becomes a union of everything these
available alternatives seem to get right.

We made a mistake calling our stuff a "reference implementation" but it
was an honest one born out of frustration trying to come up with a name
our lawyers would actually clear (naming the damn thing was actually
holding up our ability to open source it).

- James

---

From: Sylvain Hellegouarch <[email-masked]>
Date: Tue, 23 May 2006 17:29:28 +0100

That sounds good to me.

Please not though that I didn't care about the language, my only 
questions were:

1. Why not using an existing project?
2. How interoperable had you planned to be?

It seems these questions have more or less been answered so I'm fine :)

- Sylvain

---

From: Bill de hÓra <[email-masked]>
Date: Tue, 23 May 2006 17:31:42 +0100

> understand if that project will concern me on the long run or not.

Dude, Rails like totally does all that already.

:-)

cheers
Bill

---

From: Tim Bray <[email-masked]>
Date: Tue, 23 May 2006 13:41:29 -0700

> that is the kind of thing we're wanting this to be.

Yes, I think it's a good idea for Apache to include tools for  
processing Atom data and implementing the Atom protocol.  The only  
reason I can imagine for doing this is so that people could use it  
and thus avoid re-inventing the Atomic wheel.  Apache does not have,  
and would not claim to have, the standing to do a "reference" in the  
sense of having any normative force.  So yes, I think the term  
"reference" is probably misleading enough to constitute a problem.   
Why not just call it something breathtakingly original like Apache  
Atom Library or some such? -Tim

---

From: "Robert Sayre" <[email-masked]>
Date: Wed, 24 May 2006 09:44:05 -0400

On 5/23/06, James M Snell <[email-masked]> wrote:
>
> We made a mistake calling our stuff a "reference implementation"

It's OK. We're used to this kind of thing coming from your direction.

-- 

Robert Sayre

---

From: "Bob Wyman" <[email-masked]>
Date: Sun, 28 May 2006 21:28:52 -0400

James M Snell mentioned his Apache Project...

It would be *very* nice if you could see your way to implementing
"RFC3229+feed"[1] support in your implementation. As I think you know, the
use of this mechanism results in massive reductions in the bandwidth and
client-side processing required in fetching updates to Atom feeds. Also,
Microsoft will be supporting RFC3229+feed in their browsers[2], thus, we can
anticipate that support for fetching delta-feeds will soon be considered
expected. The only "issue" with Apache is that Apache *still* does not
support the "226" response code...

	bob wyman

[1] http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html
http://bobwyman.pubsub.com/main/2004/09/implementations.html
http://www.intertwingly.net/blog/2004/09/15/Syndication-with-RFC3229
[2] http://bobwyman.pubsub.com/main/2006/04/microsoft_to_su.html

---

From: James M Snell <[email-masked]>
Date: Sun, 28 May 2006 19:20:49 -0700

Yep, I've already implemented support for this in the as yet unavailable
client code I've been working (rather slowly, unfortunately) to clean up.

- James