Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Steve Alexander

>>No, we just make the registration of layers optional. If you want layers
>>to be registered (and marked with an ILayerType marker) for whatever
>>reason, it's your choice. The framework shouldn't make you like it does
>>now.
> 
> This will definitely backfire. Let's say I want to extend the wiki views 
> using 
> some TTW development. But the wiki package does not register the layer, then 
> the TTW developer is cut off.
> 
> Note that I am not saying that the *framework* should require this, but it 
> should be at least a strong convention and people should do this registration 
> all the time.

I disagree.

The wiki package either supports the ZMI or it does not do.  If it
supports the ZMI, then it will register its layers.  If it does not,
then it won't.

I would encourage people to register their layers with the ZMI, and to
do things that couple their products to the ZMI, only when they make a
decision that the ZMI is relevant to their stuff.

If they decide that the ZMI is not relevant to their goals, they should
stay well away from it.

Let's say that the wiki system authors decide that the ZMI is out of
scope for them.  Someone else can come along and produce a wiki-in-zmi
product that depends on the ZMI and on the original wiki.  This is
great, because it keeps the plain wiki produdct simpler and more
approachable, and it keeps the dependency on the ZMI clear.

-- 
Steve Alexander
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Steve Alexander

>>I understand from this discussion that registering layers is needed only
>>for certain ZMI things, to be implemented later on.  So, I guess the
>>ZCML will be implemented later on, or not implemented later on.  In
>>either case, later on.
> 
> I disagree. The layers are registered now. You rip them out now, just so I 
> have to add them later again? That sounds dubious to me.

Earlier, you were saying that you didn't see a need for a specific zcml
statement to register layers, so your statement above confuses me.  I'm
proposing a consideration, later on, of special zcml to register layers
for use in the ZMI.

In addition, I'd like to say that I believe that it is important to keep
things that are just for the ZMI separate from the "core", where they
add complexity to the "core".

-- 
Steve Alexander
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Stephan Richter
On Tuesday 13 December 2005 08:34, Philipp von Weitershausen wrote:
> No, we just make the registration of layers optional. If you want layers
> to be registered (and marked with an ILayerType marker) for whatever
> reason, it's your choice. The framework shouldn't make you like it does
> now.

This will definitely backfire. Let's say I want to extend the wiki views using 
some TTW development. But the wiki package does not register the layer, then 
the TTW developer is cut off.

Note that I am not saying that the *framework* should require this, but it 
should be at least a strong convention and people should do this registration 
all the time.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Philipp von Weitershausen
Stephan Richter wrote:
> On Tuesday 13 December 2005 06:15, Steve Alexander wrote:
> 
>>I understand from this discussion that registering layers is needed only
>>for certain ZMI things, to be implemented later on.  So, I guess the
>>ZCML will be implemented later on, or not implemented later on.  In
>>either case, later on.
> 
> I disagree. The layers are registered now. You rip them out now, just so I 
> have to add them later again? That sounds dubious to me.

No, we just make the registration of layers optional. If you want layers
to be registered (and marked with an ILayerType marker) for whatever
reason, it's your choice. The framework shouldn't make you like it does now.

Philipp
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Stephan Richter
On Tuesday 13 December 2005 06:15, Steve Alexander wrote:
> I understand from this discussion that registering layers is needed only
> for certain ZMI things, to be implemented later on.  So, I guess the
> ZCML will be implemented later on, or not implemented later on.  In
> either case, later on.

I disagree. The layers are registered now. You rip them out now, just so I 
have to add them later again? That sounds dubious to me.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Stephan Richter
On Tuesday 13 December 2005 04:30, Philipp von Weitershausen wrote:
> That said, I still think that in the long term, local registration should
> not be done TTW.

Who said that I just want to register local components? :-) I want to attack 
true TTW development, similar to how ZClasses worked. I have a couple of use 
cases in mind that are not served with Zope 3 right now.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Dominik Huber

Steve Alexander wrote:


Who will use these interfaces?  In what parts of the code will they be
present?

I think these marker interfaces are used only in infrastructure code to
do with setting up layers and skins.  In this case, they will not be
typed often, and will not even be read often.  So, I think it is more
important that the name be clear than the name be short, so that it can
be understood quickly upon reading it.
 

As I mentioned,  the dotted name already provides some semantics. IMO 
zope.app.publisher.browser.ISkinType does explicitly means that such a 
type is used for browser applications, otherwise it should be not  
within the browser package (unwritten convention).



want your layer interface to show up for TTW view registration, you'll need 
ILayerType so
that it shows up in the "Browser Layers" vocabulary and thus among the list of 
selectable
layer interfaces.
   


I strongly support this being an optional feature; a price you pay only
if you care about TTW stuff.
 


Me too.


That said, I still think that in the long term, local registration should not 
be done TTW.
So this optional notion of ILayerType might not be necessary in the future 
after all. For
filesystem-based development I don't find any compelling usage for it at all.
   


Me too.

I'm not a TTW-fan at all, but IMO it is important that such a framework 
supports potential use cases as long we don't get unacceptable 
drawbacks. I'm really not interested in the never-ending file versus ttw 
development debate ;)


Regards,
Dominik
begin:vcard
fn:Dominik Huber
n:Huber;Dominik
email;internet:[EMAIL PROTECTED]
tel;work:++41 56 534 77 30
x-mozilla-html:FALSE
version:2.1
end:vcard

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Steve Alexander

>>It is simple to create a zcml directive specifically for registering a
>>layer.  If there is a good reason to register layers, then I think there
>>should be a zcml directive for it.
> 
> I disagree. Just because it is simple to create new ZCML directives
> doesn't mean we don't have to. The less special ZCML directives there
> are, the less people need to learn and the more people can reuse
> reoccurring idioms. That's a good thing. If we can pass on architectural
> simplifications to the developer who's writing Python and ZCML, we
> should do that.

I see what you're saying.

I didn't explain where I'm coming from.  I think that the ZMI is really
a separate product than the core of Zope 3.  This is a controversial
position to hold.

>From that position, I think that if the ZMI product wants to define its
own ZCML to make doing ZMI-related things easy, then it should.

I understand from this discussion that registering layers is needed only
for certain ZMI things, to be implemented later on.  So, I guess the
ZCML will be implemented later on, or not implemented later on.  In
either case, later on.


-- 
Steve Alexander
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Philipp von Weitershausen
Steve Alexander wrote:
I would suggest to register the
layers like skins using a ILayerBrowserType interface:

>>> interface=".interfaces.I18NFeatures"
 type="zope.publisher.interfaces.browser.IBrowserLayerType"
 />
> 
> It is simple to create a zcml directive specifically for registering a
> layer.  If there is a good reason to register layers, then I think there
> should be a zcml directive for it.

I disagree. Just because it is simple to create new ZCML directives
doesn't mean we don't have to. The less special ZCML directives there
are, the less people need to learn and the more people can reuse
reoccurring idioms. That's a good thing. If we can pass on architectural
simplifications to the developer who's writing Python and ZCML, we
should do that.

Philipp
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Steve Alexander

>>>I would suggest to register the
>>>layers like skins using a ILayerBrowserType interface:
>>>
>  interface=".interfaces.I18NFeatures"
>>>  type="zope.publisher.interfaces.browser.IBrowserLayerType"
>>>  />

It is simple to create a zcml directive specifically for registering a
layer.  If there is a good reason to register layers, then I think there
should be a zcml directive for it.

Of course, it may be that there's not really a good reason for
registering layers.


>>>2. I liked the naming ISkinType and ILayerType much more (instead of
>>>IBrowserSkinType/ IBrowserLayerType), because this browser-specific
>>>differentiation is already given by the package hierarchy and those
>>>ILongCamelCaseWordingsThatTriesToExplainEverything are hard to type and
>>>at the end they confuse newcomers even more than the simple ones. Please
>>>keep the naming also simple and stupid like the skinning simplification
>>>itself  :)
> 
> 
> I don't feel strongly about this at all. It was mostly Steve's idea and I 
> took his
> suggestion as it adds some conherence (IBrowserRequest, IBrowserResponse,
> IBrowserLayerType, ...). It would be up to Steve to defend it, for all I care 
> we can use
> the shorter forms.

Who will use these interfaces?  In what parts of the code will they be
present?

I think these marker interfaces are used only in infrastructure code to
do with setting up layers and skins.  In this case, they will not be
typed often, and will not even be read often.  So, I think it is more
important that the name be clear than the name be short, so that it can
be understood quickly upon reading it.


>>Two good points I agree with. I wanted to write a similar response as 1., but
>>did not have a good argument. Dominik just gave it. I think it is important
>>to keep a registry of all layers, especially for TTW development, an area I
>>really want to put some effort in for 3.3.

Why do you need a registry of all layers?  What use-cases drive this
requirement?  Maybe you just need to be able to look them up?


> Thanks, I guess this is a good use case. The good thing is that the whole 
> ILayerType thing
> can be *optional*.

This is important to me.  The core of a publisher-with-layers can be
based on just a request's interfaces.  No need for extra complexity or
infrastructure.  It should be possible to strip a use of Zope 3 down to
this level.

> The 'type' argument of browser:page et.al. won't require an ILayerType
> interface; any interface will do as long as it is or extends IBrowserRequest.

This is important too.


> Only if you
> want your layer interface to show up for TTW view registration, you'll need 
> ILayerType so
> that it shows up in the "Browser Layers" vocabulary and thus among the list 
> of selectable
> layer interfaces.

I strongly support this being an optional feature; a price you pay only
if you care about TTW stuff.


> That said, I still think that in the long term, local registration should not 
> be done TTW.
> So this optional notion of ILayerType might not be necessary in the future 
> after all. For
> filesystem-based development I don't find any compelling usage for it at all.

Me too.


> So, if there are no other comments on this proposal, I will update it with 
> your latest
> suggestions and get started on the implementation (on a branch, of course).

-- 
Steve Alexander

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-13 Thread Philipp von Weitershausen
Stephan Richter wrote:
> On Monday 12 December 2005 16:29, Dominik Huber wrote:
> > 1. The brand *skin* and *layer* are fairly common and they are
> > reflecting two logical uses cases. At a first glance the usage for a
> > layer type is not given, but the layer concept is still interesting to
> > build modular skins. The layer audience could be the developers which
> > like to share layer specific informations. IMO an use case for an
> > Browser Layer Names utility could be a corresponding
> > online-documentation within the api-doc.

Well, the vocabulary would probably be a "Browser Layers" vocabulary (listing 
the actual
interface objects, not their names, since layers won't have human-readable 
aliases
anymore).

However, I don't see how that vocabulary would be necessary for the 
documentation (it
would be necessary for TTW development, see below). It's not like we mark every 
interface
we have with some special marker and put it in a vocabulary, just so it shows 
up in a
certain category in APIDoc. If you want to find the layer interface, you'll 
find it just
fine by walking the code browser in APIDoc, as with any other interface or 
component.
Layer interfaces are just marker interfaces; if we'd treat every kind of marker 
interface
specially, we'd not be simplifying at all...

> > I would suggest to register the
> > layers like skins using a ILayerBrowserType interface:
> >
> >  >   interface=".interfaces.I18NFeatures"
> >   type="zope.publisher.interfaces.browser.IBrowserLayerType"
> >   />
> >
> >
> > 2. I liked the naming ISkinType and ILayerType much more (instead of
> > IBrowserSkinType/ IBrowserLayerType), because this browser-specific
> > differentiation is already given by the package hierarchy and those
> > ILongCamelCaseWordingsThatTriesToExplainEverything are hard to type and
> > at the end they confuse newcomers even more than the simple ones. Please
> > keep the naming also simple and stupid like the skinning simplification
> > itself  :)

I don't feel strongly about this at all. It was mostly Steve's idea and I took 
his
suggestion as it adds some conherence (IBrowserRequest, IBrowserResponse,
IBrowserLayerType, ...). It would be up to Steve to defend it, for all I care 
we can use
the shorter forms.

> Two good points I agree with. I wanted to write a similar response as 1., but
> did not have a good argument. Dominik just gave it. I think it is important
> to keep a registry of all layers, especially for TTW development, an area I
> really want to put some effort in for 3.3.

Thanks, I guess this is a good use case. The good thing is that the whole 
ILayerType thing
can be *optional*. The 'type' argument of browser:page et.al. won't require an 
ILayerType
interface; any interface will do as long as it is or extends IBrowserRequest. 
Only if you
want your layer interface to show up for TTW view registration, you'll need 
ILayerType so
that it shows up in the "Browser Layers" vocabulary and thus among the list of 
selectable
layer interfaces.
That said, I still think that in the long term, local registration should not 
be done TTW.
So this optional notion of ILayerType might not be necessary in the future 
after all. For
filesystem-based development I don't find any compelling usage for it at all.

So, if there are no other comments on this proposal, I will update it with your 
latest
suggestions and get started on the implementation (on a branch, of course).

Philipp



This message was sent using IMP, the Internet Messaging Program.
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-12 Thread Stephan Richter
On Monday 12 December 2005 16:29, Dominik Huber wrote:
> 1. The brand *skin* and *layer* are fairly common and they are
> reflecting two logical uses cases. At a first glance the usage for a
> layer type is not given, but the layer concept is still interesting to
> build modular skins. The layer audience could be the developers which
> like to share layer specific informations. IMO an use case for an
> Browser Layer Names utility could be a corresponding
> online-documentation within the api-doc. I would suggest to register the
> layers like skins using a ILayerBrowserType interface:
>
>            interface=".interfaces.I18NFeatures"
>           type="zope.publisher.interfaces.browser.IBrowserLayerType"
>           />
>
>
> 2. I liked the naming ISkinType and ILayerType much more (instead of
> IBrowserSkinType/ IBrowserLayerType), because this browser-specific
> differentiation is already given by the package hierarchy and those
> ILongCamelCaseWordingsThatTriesToExplainEverything are hard to type and
> at the end they confuse newcomers even more than the simple ones. Please
> keep the naming also simple and stupid like the skinning simplification
> itself  :)
Two good points I agree with. I wanted to write a similar response as 1., but 
did not have a good argument. Dominik just gave it. I think it is important
to keep a registry of all layers, especially for TTW development, an area I 
really want to put some effort in for 3.3.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-12 Thread Dominik Huber

Philipp von Weitershausen wrote:


(http://dev.zope.org/Zope3/SimplifySkinning) yet another overhaul.

Basically, it now proposes to go one step further: Layers and skins will always 
be simple
interfaces extending IBrowserRequest. The only difference between skins and 
layers is
that only skins are registered as local utilities under a human readable name 
whereas
layers are plain old boring interfaces with no extra marker (it's not needed at 
all).

Along with that we can get rid of the  and  
ZCML
directives and simply reuse existing, much simpler directives from the standard 
Component
Architecture ( and ). This is not only a good step 
towards
reducing the ZCML directive proliferation, it's also a reflection of what's 
going on
under the hood. If we simplify under the hood, the Zope 3 developer should 
benefit from
that simplification as well. That's now happening.

The rest of the changes deal with small harmonizations that should make the 
understanding
of certain patterns easier (if they're always the same).

Looking-for-comments-as-usual-ly
 


+1 in general, but two cosmetics-change-requests.

1. The brand *skin* and *layer* are fairly common and they are 
reflecting two logical uses cases. At a first glance the usage for a 
layer type is not given, but the layer concept is still interesting to 
build modular skins. The layer audience could be the developers which 
like to share layer specific informations. IMO an use case for an 
Browser Layer Names utility could be a corresponding 
online-documentation within the api-doc. I would suggest to register the 
layers like skins using a ILayerBrowserType interface:





2. I liked the naming ISkinType and ILayerType much more (instead of 
IBrowserSkinType/ IBrowserLayerType), because this browser-specific 
differentiation is already given by the package hierarchy and those 
ILongCamelCaseWordingsThatTriesToExplainEverything are hard to type and 
at the end they confuse newcomers even more than the simple ones. Please 
keep the naming also simple and stupid like the skinning simplification 
itself  :)


Regards,
Dominik
begin:vcard
fn:Dominik Huber
n:Huber;Dominik
email;internet:[EMAIL PROTECTED]
tel;work:++41 56 534 77 30
x-mozilla-html:FALSE
version:2.1
end:vcard

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-12 Thread Philipp von Weitershausen
Stephan Richter wrote:
> On Monday 12 December 2005 02:53, Philipp von Weitershausen wrote:
> 
>>Basically, it now proposes to go one step further: Layers and skins will
>>always be simple interfaces extending IBrowserRequest. The only difference
>>between skins and layers is that only skins are registered as local
>>utilities under a human readable name whereas layers are plain old boring
>>interfaces with no extra marker (it's not needed at all).
> 
> 
> Hold on, but skins and layers can also still extend other skins and layers 
> (as 
> they do now), right?

Sure. I should have said: Layers and skins will always be simple
interfaces **directly or indirectly** extending IBrowserRequest. The
"indirectly" means by inheriting from some other skin or layer interface.

Philipp
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] RFC: Simplify Skinning Redux

2005-12-12 Thread Stephan Richter
On Monday 12 December 2005 02:53, Philipp von Weitershausen wrote:
> Basically, it now proposes to go one step further: Layers and skins will
> always be simple interfaces extending IBrowserRequest. The only difference
> between skins and layers is that only skins are registered as local
> utilities under a human readable name whereas layers are plain old boring
> interfaces with no extra marker (it's not needed at all).

Hold on, but skins and layers can also still extend other skins and layers (as 
they do now), right? Because otherwise I do not see how you want to realize 
the proposal.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com