Re: Blocks URIs

2003-09-23 Thread Bertrand Delacretaz
Le Mardi, 23 sep 2003, à 14:38 Europe/Zurich, Stefano Mazzocchi a écrit 
:
...Sylvain pointed out the case where a namespace needs to be 
associated to a particular block, but the more I think about this, the 
more I think this is wrong and shouldn't happen.

I have no problems if one 'certified' cocoon block uses a particular 
namespace that had to create because nobody else provides it, but this 
namespace should *NOT* be associated with that block anyhow...

Sounds reasonable - either namespaces are of general use and 
"registered" as such, or they are not associated with a particular 
block.

I would go as far as saying that is should *NOT* be allowed to have a 
namespace associated to a particular block or that contains the word 
"block" inside, unless is a namespace that about *blocks in general* 
(say the namespace of the block wiring markup, for example).
Yes, will help avoid confusion.

With this restriction, we can use one single scheme and have

 http://apache.org/cocoon/ -> Cocoon URI prefix

 http://apache.org/cocoon/block/ -> Cocoon Block-ID URI prefix

where "namespaces" have to belong to the cocoon URI prefix but *NOT* 
on the Cocoon Block-ID URI prefix.
Sounds good to me!

-Bertrand


Re: Blocks URIs

2003-09-23 Thread Stefano Mazzocchi
On Tuesday, Sep 23, 2003, at 14:10 Europe/Rome, Bertrand Delacretaz 
wrote:

Le Mardi, 23 sep 2003, à 14:03 Europe/Zurich, Stefano Mazzocchi a 
écrit :
...Yeah, well, too bad we already have something along 20 namespaces 
who already don't follow that convention.
We could for blocks at least, couldn't we?

using

  http://apache.org/cocoon/block/pdf/namespaces/foo/.1.0

instead of

  http://apache.org/cocoon/blocks/pdf/foo/.1.0
yes, but there are a few things I dislike about that:

 1) the URI space of blocks id and namespaces get mixed

 2) the above seems to suggest that block implementors are freed from 
the usual namespace-creation policies under cocoon.

Sylvain pointed out the case where a namespace needs to be associated 
to a particular block, but the more I think about this, the more I 
think this is wrong and shouldn't happen.

I have no problems if one 'certified' cocoon block uses a particular 
namespace that had to create because nobody else provides it, but this 
namespace should *NOT* be associated with that block anyhow.

I would go as far as saying that is should *NOT* be allowed to have a 
namespace associated to a particular block or that contains the word 
"block" inside, unless is a namespace that about *blocks in general* 
(say the namespace of the block wiring markup, for example)

With this restriction, we can use one single scheme and have

 http://apache.org/cocoon/ -> Cocoon URI prefix

 http://apache.org/cocoon/block/ -> Cocoon Block-ID URI prefix

where "namespaces" have to belong to the cocoon URI prefix but *NOT* on 
the Cocoon Block-ID URI prefix.

This would remove the need of a duplicate URI prefix 
http://cocoon.apache.org/cocoon.

Thoughts?

--
Stefano.


Re: Blocks URIs

2003-09-23 Thread Bertrand Delacretaz
Le Mardi, 23 sep 2003, à 14:03 Europe/Zurich, Stefano Mazzocchi a écrit 
:
...Yeah, well, too bad we already have something along 20 namespaces 
who already don't follow that convention.
We could for blocks at least, couldn't we?

using

  http://apache.org/cocoon/block/pdf/namespaces/foo/.1.0

instead of

  http://apache.org/cocoon/blocks/pdf/foo/.1.0

-Bertrand


Re: Blocks URIs

2003-09-23 Thread Stefano Mazzocchi
On Tuesday, Sep 23, 2003, at 07:38 Europe/Rome, Bertrand Delacretaz 
wrote:

Le Lundi, 22 sep 2003, à 15:59 Europe/Zurich, Stefano Mazzocchi a 
écrit :
On Monday, Sep 22, 2003, at 14:05 Europe/Rome, Sylvain Wallez wrote:
...
Taking the above example, does this mean :
- http://cocoon.apache.org/blocks/pdf/1.0 for the block ID and
- http://apache.org/cocoon/blocks/pdf/foo/.1.0 for the "foo" 
namespace defined by the pdf block ?

Mmmh... it certainly avoids conflicts, but can be confusing and 
looks somewhat inconsistent : why apache.org/cocoon on one side and 
cocoon.apache.org on the other side ?
because all namespaces (and only those!) are located on 
apache.org/cocoon. I think this is very consistent.
Sorry to jump in late, but at some point I saw the word "namespaces" 
in these URIs, and I think it can help avoid confusion.

Why not

  http://namespaces.apache.org/cocoon...

for namespaces?

But it might be too late to change this one, so maybe use

  http://apache.org/cocoon/block/pdf/namespaces/foo/.1.0

instead of

  http://apache.org/cocoon/blocks/pdf/foo/.1.0

for the "foo" namespace defined by the pdf block ?

The idea is to make these URI's purpose explicit without hidden 
conventions.
Yeah, well, too bad we already have something along 20 namespaces who 
already don't follow that convention.

--
Stefano.


Re: Blocks URIs

2003-09-22 Thread Bertrand Delacretaz
Le Lundi, 22 sep 2003, à 15:59 Europe/Zurich, Stefano Mazzocchi a écrit 
:
On Monday, Sep 22, 2003, at 14:05 Europe/Rome, Sylvain Wallez wrote:
...
Taking the above example, does this mean :
- http://cocoon.apache.org/blocks/pdf/1.0 for the block ID and
- http://apache.org/cocoon/blocks/pdf/foo/.1.0 for the "foo" 
namespace defined by the pdf block ?

Mmmh... it certainly avoids conflicts, but can be confusing and looks 
somewhat inconsistent : why apache.org/cocoon on one side and 
cocoon.apache.org on the other side ?
because all namespaces (and only those!) are located on 
apache.org/cocoon. I think this is very consistent.
Sorry to jump in late, but at some point I saw the word "namespaces" in 
these URIs, and I think it can help avoid confusion.

Why not

  http://namespaces.apache.org/cocoon...

for namespaces?

But it might be too late to change this one, so maybe use

  http://apache.org/cocoon/block/pdf/namespaces/foo/.1.0

instead of

  http://apache.org/cocoon/blocks/pdf/foo/.1.0

for the "foo" namespace defined by the pdf block ?

The idea is to make these URI's purpose explicit without hidden 
conventions.

-Bertrand


Re: Blocks URIs

2003-09-22 Thread Stefano Mazzocchi
On Monday, Sep 22, 2003, at 14:05 Europe/Rome, Sylvain Wallez wrote:

Stefano Mazzocchi wrote:

On Monday, Sep 22, 2003, at 00:38 Europe/Rome, Ugo Cei wrote:

Stefano Mazzocchi wrote:

On Sunday, Sep 21, 2003, at 18:46 Europe/Rome, Sylvain Wallez wrote:

So what about the following convention :
- http://apache.org/cocoon/block-id/pdf/1.0 for the pdf block 
_identifier_
- http://apache.org/cocoon/block/pdf/foo/1.0 for the "foo" 
namespace of the pdf block ?
I'm not enthusiastic about it, but I can't come up with anything 
better than this.
Does anybody else care about this? alternative ideas anyone?


Since the block id should be a resolvable URL, why not 
http://cocoon.apache.org/blocks/pdf/1.0 ?

This way, it's difficult to confuse it with the namespace and we 
don't need any rewrites on apache.org.


D'oh! you are so right. +1

what do others think?


Taking the above example, does this mean :
- http://cocoon.apache.org/blocks/pdf/1.0 for the block ID and
- http://apache.org/cocoon/blocks/pdf/foo/.1.0 for the "foo" namespace 
defined by the pdf block ?

Mmmh... it certainly avoids conflicts, but can be confusing and looks 
somewhat inconsistent : why apache.org/cocoon on one side and 
cocoon.apache.org on the other side ?
because all namespaces (and only those!) are located on 
apache.org/cocoon. I think this is very consistent.

Besides, it is rare that you use block-id *and* namespaces in the same 
document... and users never have to do that, only block developers in 
the block.xml file.

Remember : you moved namespaces from xml.apache.org/cocoon to 
apache.org/cocoon because of the promotion of Cocoon to top-level 
project. What if we decide in the future to rename the TLP from 
"cocoon" to e.g. "cms" ??
and what if we change the name of the project to "blaboon" because Sony 
decided to sue us for trademark infringment? [ for the movie or for the 
tivo-like thing]

or what if the apache nation changes leaders and they want royalties 
from their name and we are required to change the ASF main location?

good URI shouldn't change, but it's hard to avoid changing something 
that has a meaning associated to it... because that meaning drifts with 
time. This is why DOI, for example, uses numbers instead.

for example, TimBL explained that the use of 1999 in the XSLT namespace 
is because in a hundreds years from now, people might want to reuse the 
XSLT name to mean something completely different.

Forward thinking or egocentric naiveness?

cocoon.apache.org is not going anywhere from all the signals I can 
feel, so it seems solid enough to base this infrastucture upon.

--
Stefano.


Re: Blocks URIs

2003-09-22 Thread Sylvain Wallez
Stefano Mazzocchi wrote:

On Monday, Sep 22, 2003, at 00:38 Europe/Rome, Ugo Cei wrote:

Stefano Mazzocchi wrote:

On Sunday, Sep 21, 2003, at 18:46 Europe/Rome, Sylvain Wallez wrote:

So what about the following convention :
- http://apache.org/cocoon/block-id/pdf/1.0 for the pdf block 
_identifier_
- http://apache.org/cocoon/block/pdf/foo/1.0 for the "foo" 
namespace of the pdf block ?
I'm not enthusiastic about it, but I can't come up with anything 
better than this.
Does anybody else care about this? alternative ideas anyone?


Since the block id should be a resolvable URL, why not 
http://cocoon.apache.org/blocks/pdf/1.0 ?

This way, it's difficult to confuse it with the namespace and we 
don't need any rewrites on apache.org.


D'oh! you are so right. +1

what do others think?


Taking the above example, does this mean :
- http://cocoon.apache.org/blocks/pdf/1.0 for the block ID and
- http://apache.org/cocoon/blocks/pdf/foo/.1.0 for the "foo" namespace 
defined by the pdf block ?

Mmmh... it certainly avoids conflicts, but can be confusing and looks 
somewhat inconsistent : why apache.org/cocoon on one side and 
cocoon.apache.org on the other side ?

Remember : you moved namespaces from xml.apache.org/cocoon to 
apache.org/cocoon because of the promotion of Cocoon to top-level 
project. What if we decide in the future to rename the TLP from "cocoon" 
to e.g. "cms" ??

Sylvain

--
Sylvain Wallez  Anyware Technologies
http://www.apache.org/~sylvain   http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com



Re: Blocks URIs

2003-09-22 Thread Gianugo Rabellino
Stefano Mazzocchi wrote:


Since the block id should be a resolvable URL, why not 
http://cocoon.apache.org/blocks/pdf/1.0 ?

This way, it's difficult to confuse it with the namespace and we don't 
need any rewrites on apache.org.


D'oh! you are so right. +1
+1 too.

/me hates A records on domain names ;-))

Ciao,

--
Gianugo Rabellino
Pro-netics s.r.l. -  http://www.pro-netics.com
Orixo, the XML business alliance - http://www.orixo.com
(Now blogging at: http://blogs.cocoondev.org/gianugo/)


Re: Blocks URIs

2003-09-22 Thread Stefano Mazzocchi
On Monday, Sep 22, 2003, at 00:38 Europe/Rome, Ugo Cei wrote:

Stefano Mazzocchi wrote:
On Sunday, Sep 21, 2003, at 18:46 Europe/Rome, Sylvain Wallez wrote:
So what about the following convention :
- http://apache.org/cocoon/block-id/pdf/1.0 for the pdf block 
_identifier_
- http://apache.org/cocoon/block/pdf/foo/1.0 for the "foo" namespace 
of the pdf block ?
I'm not enthusiastic about it, but I can't come up with anything 
better than this.
Does anybody else care about this? alternative ideas anyone?
Since the block id should be a resolvable URL, why not 
http://cocoon.apache.org/blocks/pdf/1.0 ?

This way, it's difficult to confuse it with the namespace and we don't 
need any rewrites on apache.org.
D'oh! you are so right. +1

what do others think?

--
Stefano.


Re: Blocks URIs

2003-09-21 Thread Ugo Cei
Stefano Mazzocchi wrote:
On Sunday, Sep 21, 2003, at 18:46 Europe/Rome, Sylvain Wallez wrote:
So what about the following convention :
- http://apache.org/cocoon/block-id/pdf/1.0 for the pdf block 
_identifier_
- http://apache.org/cocoon/block/pdf/foo/1.0 for the "foo" namespace 
of the pdf block ?
I'm not enthusiastic about it, but I can't come up with anything better 
than this.

Does anybody else care about this? alternative ideas anyone?
Since the block id should be a resolvable URL, why not 
http://cocoon.apache.org/blocks/pdf/1.0 ?

This way, it's difficult to confuse it with the namespace and we don't 
need any rewrites on apache.org.

	Ugo




Re: Blocks URIs

2003-09-21 Thread Stefano Mazzocchi
On Sunday, Sep 21, 2003, at 18:46 Europe/Rome, Sylvain Wallez wrote:

Mmmh... a good structuration of namespace URIs would require 
block-defined namespaces to be in a block-related area of the URI 
space such as "the http://apache.org/cocoon/block/";. But then we 
conflict with block IDs.

So what about the following convention :
- http://apache.org/cocoon/block-id/pdf/1.0 for the pdf block 
_identifier_
- http://apache.org/cocoon/block/pdf/foo/1.0 for the "foo" namespace 
of the pdf block ?

By using different "block-id" and "block" URI sub-spaces, we avoid the 
naming conflict. And using different sub-spaces makes sense IMO since 
they're not used to identify the same kind of information.
I'm not enthusiastic about it, but I can't come up with anything better 
than this.

Does anybody else care about this? alternative ideas anyone?

--
Stefano.


Re: Blocks URIs

2003-09-21 Thread Sylvain Wallez
Stefano Mazzocchi wrote:

On Saturday, Sep 20, 2003, at 23:59 Europe/Rome, Sylvain Wallez wrote:

Stefano Mazzocchi wrote:

I spent the afternoon cleaning up the block section in the wiki and, 
after an interesting discussion I had with Tim Berners-Lee over at 
[EMAIL PROTECTED], I was looking at the Block URI concept again and 
found out that, as TimBL suggested in another context, the use of 
HTTP URI might yield unforseen results.

I proposed to deprecate the use of http: as URI scheme identifier 
for the blocks because I wanted to remove the "direct dereferencing" 
ability and wanted to introduce a lookup mechanism.

As TimBL suggested while referencing to the XML namespaces that 
include an HTTP URI, the ability to "directly look it up" is 
powerful. And any non-dereferenciable URI (such as my proposed cob: 
scheme) is simply another URN and the lookup machanism is just a 
reinvention of what's already there.

After careful thinking, I think he is totally right.

So, regarding to this, I proposed the following changes:

 1) substitute cob: with http:
 2) substitute the http://apache.org/cocoon/blocks/*** namespace uri 
with http://apache.org/cocoon/*** and keep 
http://apache.org/cocoon/blocks/*** for block URI

#2 is required for proper handling of dereferenced cocoon namespaces.

What will be found at those block URI is yet to be decided, but 
having the ability to do it is powerful and should not be thrown >> 
away.

Comments?


Sounds good. The reason behind "cob:" instead of "http:" was that you 
did not want people to assume that it could be the download location 
of the block.


yes, this is still the main concern.

We now have to decide what meaningful information we place at these 
locations and RDDL was made just for this.


I doesn't really matter, as we are starting, what ends up being in 
that location. For example, take a look at

 http://www.w3.org/1999/XSL/Transform

(the XSLT namespace URI), not even the W3C knows what to put there yet 
;-)


;-) Yeah. That's not an important point to get started, but it would to 
define what _should_ be put there, to allow people (or tools) to get 
some minimal information about a block without having to download it first.

[I didn't know that those URI were actually usable as URLs, it was 
something that came out from the discussion at www-tag]

I don't understand the reason for #2. Why don't we include "block" ?


I'm afraid of the collision between the "namespaces" used in the block 
realm and the "block id". It's just basic URI managing practices, but 
I wouldn't want people to think that

 http://apache.org/cocoon/block/cob/1.0

is a block, while

 http://apache.org/cocoon/block/pdf/1.0

is a namespace

It would be nice if the prefix

 http://apache.org/cocoon/block

would be used *ONLY* and exclusively for block IDs and never for 
namespaces. 


Mmmh... a good structuration of namespace URIs would require 
block-defined namespaces to be in a block-related area of the URI space 
such as "the http://apache.org/cocoon/block/";. But then we conflict with 
block IDs.

So what about the following convention :
- http://apache.org/cocoon/block-id/pdf/1.0 for the pdf block _identifier_
- http://apache.org/cocoon/block/pdf/foo/1.0 for the "foo" namespace of 
the pdf block ?

By using different "block-id" and "block" URI sub-spaces, we avoid the 
naming conflict. And using different sub-spaces makes sense IMO since 
they're not used to identify the same kind of information.



Practical point : can the Cocoon team put something behind 
http://apache.org/cocoon/ ? We should ask infrastucture@


yes. I was thinking that we could host those things into

 http://cocoon.apache.org/namespaces/cocoon/*

[note the "cocoon" subdirectory that would allow subprojects to have 
their namespace declarations there as well]

and have

 http://apache.org/cocoon/

do some transparent URI rewriting over that. I think we already have 
the ability to do this, if we ask infrastructure@ to create a /cocoon/ 
directory over www.apache.org and use .htaccess to configure mod_rewrite.


That would be great.

Sylvain

--
Sylvain Wallez  Anyware Technologies
http://www.apache.org/~sylvain   http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com



Re: Blocks URIs

2003-09-21 Thread Stefano Mazzocchi
On Saturday, Sep 20, 2003, at 23:59 Europe/Rome, Sylvain Wallez wrote:

Stefano Mazzocchi wrote:

I spent the afternoon cleaning up the block section in the wiki and, 
after an interesting discussion I had with Tim Berners-Lee over at 
[EMAIL PROTECTED], I was looking at the Block URI concept again and 
found out that, as TimBL suggested in another context, the use of 
HTTP URI might yield unforseen results.

I proposed to deprecate the use of http: as URI scheme identifier for 
the blocks because I wanted to remove the "direct dereferencing" 
ability and wanted to introduce a lookup mechanism.

As TimBL suggested while referencing to the XML namespaces that 
include an HTTP URI, the ability to "directly look it up" is 
powerful. And any non-dereferenciable URI (such as my proposed cob: 
scheme) is simply another URN and the lookup machanism is just a 
reinvention of what's already there.

After careful thinking, I think he is totally right.

So, regarding to this, I proposed the following changes:

 1) substitute cob: with http:
 2) substitute the http://apache.org/cocoon/blocks/*** namespace uri 
with http://apache.org/cocoon/*** and keep 
http://apache.org/cocoon/blocks/*** for block URI

#2 is required for proper handling of dereferenced cocoon namespaces.

What will be found at those block URI is yet to be decided, but 
having the ability to do it is powerful and should not be thrown >> away.

Comments?


Sounds good. The reason behind "cob:" instead of "http:" was that you 
did not want people to assume that it could be the download location 
of the block.
yes, this is still the main concern.

We now have to decide what meaningful information we place at these 
locations and RDDL was made just for this.
I doesn't really matter, as we are starting, what ends up being in that 
location. For example, take a look at

 http://www.w3.org/1999/XSL/Transform

(the XSLT namespace URI), not even the W3C knows what to put there yet 
;-)

[I didn't know that those URI were actually usable as URLs, it was 
something that came out from the discussion at www-tag]

I don't understand the reason for #2. Why don't we include "block" ?
I'm afraid of the collision between the "namespaces" used in the block 
realm and the "block id". It's just basic URI managing practices, but I 
wouldn't want people to think that

 http://apache.org/cocoon/block/cob/1.0

is a block, while

 http://apache.org/cocoon/block/pdf/1.0

is a namespace

It would be nice if the prefix

 http://apache.org/cocoon/block

would be used *ONLY* and exclusively for block IDs and never for 
namespaces.

 Furthermore, we already have a large number of namespaces for 
pipeline components, and there's a risk of conflict and/or confusion 
if we cannot distinguish easily block URIs from namespaces URIs.
this is exactly my point.

But I can also have missed something as I'm a bit swamped and have to 
catch up on the "Implementing Cocoon blocks" thread...
no worries.

Practical point : can the Cocoon team put something behind 
http://apache.org/cocoon/ ? We should ask infrastucture@
yes. I was thinking that we could host those things into

 http://cocoon.apache.org/namespaces/cocoon/*

[note the "cocoon" subdirectory that would allow subprojects to have 
their namespace declarations there as well]

and have

 http://apache.org/cocoon/

do some transparent URI rewriting over that. I think we already have 
the ability to do this, if we ask infrastructure@ to create a /cocoon/ 
directory over www.apache.org and use .htaccess to configure 
mod_rewrite.

thoughts?

--
Stefano.


Re: Blocks URIs

2003-09-20 Thread Sylvain Wallez
Stefano Mazzocchi wrote:

I spent the afternoon cleaning up the block section in the wiki and, 
after an interesting discussion I had with Tim Berners-Lee over at 
[EMAIL PROTECTED], I was looking at the Block URI concept again and found 
out that, as TimBL suggested in another context, the use of HTTP URI 
might yield unforseen results.

I proposed to deprecate the use of http: as URI scheme identifier for 
the blocks because I wanted to remove the "direct dereferencing" 
ability and wanted to introduce a lookup mechanism.

As TimBL suggested while referencing to the XML namespaces that 
include an HTTP URI, the ability to "directly look it up" is powerful. 
And any non-dereferenciable URI (such as my proposed cob: scheme) is 
simply another URN and the lookup machanism is just a reinvention of 
what's already there.

After careful thinking, I think he is totally right.

So, regarding to this, I proposed the following changes:

 1) substitute cob: with http:
 2) substitute the http://apache.org/cocoon/blocks/*** namespace uri 
with http://apache.org/cocoon/*** and keep 
http://apache.org/cocoon/blocks/*** for block URI

#2 is required for proper handling of dereferenced cocoon namespaces.

What will be found at those block URI is yet to be decided, but having 
the ability to do it is powerful and should not be thrown away.

Comments?


Sounds good. The reason behind "cob:" instead of "http:" was that you 
did not want people to assume that it could be the download location of 
the block. We now have to decide what meaningful information we place at 
these locations and RDDL was made just for this.

I don't understand the reason for #2. Why don't we include "block" ? 
Furthermore, we already have a large number of namespaces for pipeline 
components, and there's a risk of conflict and/or confusion if we cannot 
distinguish easily block URIs from namespaces URIs.

But I can also have missed something as I'm a bit swamped and have to 
catch up on the "Implementing Cocoon blocks" thread...

Practical point : can the Cocoon team put something behind 
http://apache.org/cocoon/ ? We should ask infrastucture@

Sylvain

--
Sylvain Wallez  Anyware Technologies
http://www.apache.org/~sylvain   http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com



Blocks URIs

2003-09-20 Thread Stefano Mazzocchi
I spent the afternoon cleaning up the block section in the wiki and, 
after an interesting discussion I had with Tim Berners-Lee over at 
[EMAIL PROTECTED], I was looking at the Block URI concept again and found 
out that, as TimBL suggested in another context, the use of HTTP URI 
might yield unforseen results.

I proposed to deprecate the use of http: as URI scheme identifier for 
the blocks because I wanted to remove the "direct dereferencing" 
ability and wanted to introduce a lookup mechanism.

As TimBL suggested while referencing to the XML namespaces that include 
an HTTP URI, the ability to "directly look it up" is powerful. And any 
non-dereferenciable URI (such as my proposed cob: scheme) is simply 
another URN and the lookup machanism is just a reinvention of what's 
already there.

After careful thinking, I think he is totally right.

So, regarding to this, I proposed the following changes:

 1) substitute cob: with http:
 2) substitute the http://apache.org/cocoon/blocks/*** namespace uri 
with http://apache.org/cocoon/*** and keep 
http://apache.org/cocoon/blocks/*** for block URI

#2 is required for proper handling of dereferenced cocoon namespaces.

What will be found at those block URI is yet to be decided, but having 
the ability to do it is powerful and should not be thrown away.

Comments?

--
Stefano.