18 Things I Wish Were True About Plone

122 messages Options
Embed this post
Permalink
1 2 3 4 5 6 7
Godefroid Chapelle

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
Laurence Rowe wrote:
> I've not looked closely at collective.rope, but from what I can tell it
> is AT based.

Collective.rope has different base classes:

some are zope2 only, CMF or AT. just choose the one you need.

>
> With tin you have a single root folder which is linked to a table. The
> content objects in this folder are read from the database rows. These
> content objects may themselves be folderish, containing objects in
> another table linked by a foreign key.
>
> There is support for versioning and workflow in the database for these
> obejcts, and some support for deletion (by setting a deleted flag on the
> row) and the ability to poll the database for new content and index it
> into the plone catalogue.

How is the security managed today ? Last time I looked at
collective.tin, I did not see anything related.

>
> If you get stuck, give me a shout.
>
> I would imagine performance would be fairly similar as they both use
> sqlalchemy underneath. Though as tin uses zope schemas, formlib seem a
> little quicker to generate than AT based ones.
>
> Laurence
>
>

For our project, we will be using z3 schemas and forms with rope as well.

--
Godefroid Chapelle (aka __gotcha) http://bubblenet.be


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Christian Scholz-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
Godefroid Chapelle wrote:

> Laurence Rowe wrote:
>> I've not looked closely at collective.rope, but from what I can tell it
>> is AT based.
>
> Collective.rope has different base classes:
>
> some are zope2 only, CMF or AT. just choose the one you need.
>> With tin you have a single root folder which is linked to a table. The
>> content objects in this folder are read from the database rows. These
>> content objects may themselves be folderish, containing objects in
>> another table linked by a foreign key.
>>
>> There is support for versioning and workflow in the database for these
>> obejcts, and some support for deletion (by setting a deleted flag on the
>> row) and the ability to poll the database for new content and index it
>> into the plone catalogue.
>
> How is the security managed today ? Last time I looked at
> collective.tin, I did not see anything related.
>> If you get stuck, give me a shout.
>>
>> I would imagine performance would be fairly similar as they both use
>> sqlalchemy underneath. Though as tin uses zope schemas, formlib seem a
>> little quicker to generate than AT based ones.

I was more thinking compared to Plone ;-)

BTW, I still have this idea about what ZPatterns did back then (in sort
of a hackish way though thanks to old Zope2) which is

- having some factory which creates instances on the fly (might be ZODB
based then or completely virtual)
- having some means of retrieving attributes for them (from SQL or from
other means like ZODB). This only should get triggered if one attribute
in the set is also accessed. Thus you could have basic attributes which
are fast to retrieve and another set which might be more expensive but
not that often needed.
- having some means of storing these attributes back via a trigger (and
only if those have been actually changed). SkinScript which was used
back then also had the possibility to look at the old value and
eventually do something with it.

I liked this very much as it made the actual object more a container to
which you could configure what attributes are additionally fetched and
stored. This also was easy to configure so everybody could choose where
to store things, e.g. storing one field on the filesystem such as images
etc.

Still not sure how to best implement it these days but it's something I
want to experiment with.


-- Christian


--
Christian Scholz                         video blog: http://comlounge.tv
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                              Homepage: http://comlounge.net
Tel: +49 241 400 730 0                           E-Mail [hidden email]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

connect with me: http://mrtopf.de/connect


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Christian Scholz-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Alexander Limi
Hi!

> Paul Everitt-3 wrote:
>> Per Erik Strandberg wrote:
>>> #19 Zero threshold for new Plone-wannabe's
>>>
>>> Trying to get under the skin of Plone is just days or months of work and
>>> *fresh converts* only have a limited amount of patience before they
>>> reconvert into some other church. Plone will die without these fresh
>>> converts.
>> Can we make this, and your points below, #1 on the list?  You have
>> expressed very well my leading concern.
>>
>
> Just as a clarification here, it is #0 on my list of priorities — we have an
> entire third of the Planning Summit that has the "Approachable Plone" as its
> theme, which is why I didn't call it out as a separate point. It spans a
> number of my points, it is is exactly what my #1 point is talking about,
> giving people an entry point to start their customization. #2, Deliverance
> is another. #5, Unified install experience is another. Et cetera.

What about new developers? Because even me who is somewhat familiar with
Zope3 stuff is often lost in the code (like wondering what actually that
@implementer decorator is doing and why it is used there).

In Plone lots of stuff is due to Zope3 very indirect already and some
coding constructs make it even more so. And if you then search for it on
Google you usually find 1-2 hits which might explain a little bit (if
you are lucky).

So the least we need here is online documentation. Philip's book is a
great ressource but it's too heavy for always carrying it.

Maybe developers should also document their programming idioms a bit and
link to these explanations from within the code.

In the end it might be a tradeoff in how much you need to do yourself
(in e.g. Django) and how much time you invest in trying to learn that
platform (but to tell the truth, in Django I also encountered
Metaclasses ;-).

-- Christian




--
Christian Scholz                         video blog: http://comlounge.tv
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                              Homepage: http://comlounge.net
Tel: +49 241 400 730 0                           E-Mail [hidden email]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

connect with me: http://mrtopf.de/connect


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Martin Aspeli-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
Christian Scholz wrote:

> What about new developers? Because even me who is somewhat familiar with
> Zope3 stuff is often lost in the code (like wondering what actually that
> @implementer decorator is doing and why it is used there).

In that file, you saw:

  from zope.interface import implementer

As is conventional, there's an interfaces.py in zope.interface, which
has this to say about 'implementer':

     def implementer(*interfaces):
         """Create a decorator for declaring interfaces implemented by
         a facory

         A callable is returned that makes an implements declaration on
         objects passed to it.
         """

I think if you understand the concepts here (decorator, interfaces
implemented by, factory, callable) then that's straightforward. It'd be
really great if we could foster some development and introspection tools
to make this more clear, though. An in-Plone API browser for all
interfaces in all installed packages would be cool, for example.
Clouseau is another tool we should embrace more fully.

If you *don't* understand those concepts, you need to reference more
fundamental documentation. Again, there's more to do here, but there are
at least two books that cover it.

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Stephan Richter-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Christian Scholz-2
On Friday 01 February 2008, Christian Scholz wrote:
> Maybe developers should also document their programming idioms a bit and
> link to these explanations from within the code.

I promise to try much harder this year to document the latest development
patterns that I am developing (especially with Roger). One of my goals this
year is to finally get a blog that I frequently post to.

I have seen Paul Carduner starting to document the z3c.* development patterns.

http://docs.carduner.net/z3c-tutorial/

BTW, he would like to know what other z3c.* packages you might be interested
in seeing documented.

Regards,
Stephan
--
Stephan Richter
Web Software Design, Development and Training
Google me. "Zope Stephan Richter"

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Stephan Richter-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Martin Aspeli-2
On Friday 01 February 2008, Martin Aspeli wrote:
> I think if you understand the concepts here (decorator, interfaces
> implemented by, factory, callable) then that's straightforward. It'd be
> really great if we could foster some development and introspection tools
> to make this more clear, though. An in-Plone API browser for all
> interfaces in all installed packages would be cool, for example.
> Clouseau is another tool we should embrace more fully.

I think you should port APIDOC to Plone and make it more flexible with respect
to it finding code. If you have not seen it, look at http://apidoc.zope.org.
There is a lot of potential there and a lot of cool features, such as
full-text search, could be implemented for it.

Regards,
Stephan
--
Stephan Richter
Web Software Design, Development and Training
Google me. "Zope Stephan Richter"

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Christian Scholz-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Martin Aspeli-2
Martin Aspeli wrote:

> Christian Scholz wrote:
>
>> What about new developers? Because even me who is somewhat familiar with
>> Zope3 stuff is often lost in the code (like wondering what actually that
>> @implementer decorator is doing and why it is used there).
>
> In that file, you saw:
>
>   from zope.interface import implementer
>
> As is conventional, there's an interfaces.py in zope.interface, which
> has this to say about 'implementer':
>
>      def implementer(*interfaces):
>          """Create a decorator for declaring interfaces implemented by
>          a facory
>
>          A callable is returned that makes an implements declaration on
>          objects passed to it.
>          """
>
> I think if you understand the concepts here (decorator, interfaces
> implemented by, factory, callable) then that's straightforward. It'd be
> really great if we could foster some development and introspection tools
> to make this more clear, though. An in-Plone API browser for all
> interfaces in all installed packages would be cool, for example.
> Clouseau is another tool we should embrace more fully.

I looked at this file and I understand the concepts but it still wasn't
clear to me. It became clear to me when I put some debug statements in
there to see when this is actually called.
I also found a blog post from timte which explained this in more detail
with an example.

The more general problem with Zope3 stuff in gneral is maybe also that
it's hard to follow where things are happening as it's so losely bound.
I know this is a feature but it also makes understanding this stuff
somewhat complicated.

So maybe it's also a question of how much indirection is really needed.
I am also using this pattern in the commenting stuff but I also wonder
if in my case I should not simply put the creation of the annotation
into the CommentManager which is the adapter for commentable objects. It
might be there in the __init__ (but this might mean write-on-read) or
maybe in the first write.

> If you *don't* understand those concepts, you need to reference more
> fundamental documentation. Again, there's more to do here, but there are
> at least two books that cover it.

I know and these are very good books. The problem is that they are heavy
(and I noticed at the EuroPython sprint that you are somewhat lost
without them if you want to do something you haven't look into before).

So I also want to blog more about things I encounter in Zope/Plone
source code maybe it's helpful to some people.

-- Christian


--
Christian Scholz                         video blog: http://comlounge.tv
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                              Homepage: http://comlounge.net
Tel: +49 241 400 730 0                           E-Mail [hidden email]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

connect with me: http://mrtopf.de/connect


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Christian Scholz-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Stephan Richter-2
Stephan Richter wrote:

> On Friday 01 February 2008, Christian Scholz wrote:
>> Maybe developers should also document their programming idioms a bit and
>> link to these explanations from within the code.
>
> I promise to try much harder this year to document the latest development
> patterns that I am developing (especially with Roger). One of my goals this
> year is to finally get a blog that I frequently post to.
>
> I have seen Paul Carduner starting to document the z3c.* development patterns.
>
> http://docs.carduner.net/z3c-tutorial/

That looks like a good start and looking forward to your blogging :-)

BTW, I liked what I saw with Django. The documentation on the web seems
to be instantly updated when some features is changed/added. They of
course have a simpler system and the documentation is also in svn so
that's easier to generate and sync. Nevertheless it was great to see
that. I also know it's hard to do and usually manpower for documentation
is missing.

-- Christian

--
Christian Scholz                         video blog: http://comlounge.tv
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                              Homepage: http://comlounge.net
Tel: +49 241 400 730 0                           E-Mail [hidden email]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

connect with me: http://mrtopf.de/connect


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Martin Aspeli-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Christian Scholz-2
Christian Scholz wrote:

> So maybe it's also a question of how much indirection is really needed.
> I am also using this pattern in the commenting stuff but I also wonder
> if in my case I should not simply put the creation of the annotation
> into the CommentManager which is the adapter for commentable objects. It
> might be there in the __init__ (but this might mean write-on-read) or
> maybe in the first write.

Yes, I think this is key. Having lots of "toys" to use in writing
software doesn't excuse inappropriate designs with excessive indirection
or poorly thought-out interface contracts. Code should be written to be
easy to understand. However, I think it's a fair assumption that people
understand the four core Zope 3 concepts - interfaces, adapters,
utilities, events - as axioms.

Also, we should follow Stephan's advice and make Zope 3's ApiDoc work in
Plone. Maybe it does already, I haven't checked.

> I know and these are very good books. The problem is that they are heavy
> (and I noticed at the EuroPython sprint that you are somewhat lost
> without them if you want to do something you haven't look into before).

You can buy mine as an e-book. ;-)

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Christian Scholz-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
Martin Aspeli wrote:

> Christian Scholz wrote:
>
>> So maybe it's also a question of how much indirection is really needed.
>> I am also using this pattern in the commenting stuff but I also wonder
>> if in my case I should not simply put the creation of the annotation
>> into the CommentManager which is the adapter for commentable objects. It
>> might be there in the __init__ (but this might mean write-on-read) or
>> maybe in the first write.
>
> Yes, I think this is key. Having lots of "toys" to use in writing
> software doesn't excuse inappropriate designs with excessive indirection
> or poorly thought-out interface contracts. Code should be written to be
> easy to understand. However, I think it's a fair assumption that people
> understand the four core Zope 3 concepts - interfaces, adapters,
> utilities, events - as axioms.

And maybe some documentation of existing patterns might also help if
they are used regularly.
Like I think b-org

> Also, we should follow Stephan's advice and make Zope 3's ApiDoc work in
> Plone. Maybe it does already, I haven't checked.

That would also help.

>
>> I know and these are very good books. The problem is that they are heavy
>> (and I noticed at the EuroPython sprint that you are somewhat lost
>> without them if you want to do something you haven't look into before).
>
> You can buy mine as an e-book. ;-)

I know and I am planning to buy this, too. I also asked Philipp but it
seems Springer is not that kind of modern company ;-)

-- Christian

--
Christian Scholz                         video blog: http://comlounge.tv
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                              Homepage: http://comlounge.net
Tel: +49 241 400 730 0                           E-Mail [hidden email]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

connect with me: http://mrtopf.de/connect


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
WouterVH

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by per9000
Per Erik Strandberg wrote:

> #19 Zero threshold for new Plone-wannabe's
>
> Trying to get under the skin of Plone is just days or months of work and
> *fresh converts* only have a limited amount of patience before they
> reconvert into some other church. Plone will die without these fresh
> converts.

This is certainly also our experience,
we tried several people to get started with Plone, but they all give up
within a few days.

We do not have that same problem with Django or Drupal.






> #19.2 Minimal but complete tutorials on "all" of the features of Plone
> (one at a time)

For me the single most useful page on plone.org is
http://plone.org/documentation/tutorial/manipulating-plone-objects-programmatically/

I like the idea of minimalism very much, explain one thing,
with some minimalistic examples


> I don't know if more documentation/tutorials is the key - but it might
> be. The problem I have with most documentation/tutorials is that they
> want too much at the same time (or to little).

Plone documentation (also) needs structured documentation for beginners
chapter 1, chapter 2, ....





> #19.4 Complete/Simple/Working documentation
>
> As I said: I don't know if more documentation is the key. I'd vote for
> less but "better" documentation. What better is I am afraid I do not know.

For Learning Django, it's simple, you go to
http://djangobook.com/en/1.0/  and start with chapter 1.
People like it.


The same with Grok,  http://grok.zope.org/
Learn Grok?  -->
    Brand new to Grok?  -->
           http://grok.zope.org/documentation/book/

Even Zope had the Zope Book that was nice to learn
http://www.zope.org/Documentation/Books/ZopeBook/


But for learning Plone, you install it,
you get in the ZMI if you want to do more then just using it as an ordinary
enduser. And there you are, staring at all this stuff, with no help at all.

I invite everyone to remember what they thought if they took their first
look at Plone from the ZMI.




w.









-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Martin Aspeli-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Alexander Limi
Alexander Limi wrote:
> (This is a duplicate of my post at  
> http://limi.net/articles/18-things-i-wish-were-true-about-plone - I'm  
> including the full text here, to make it easier to quote selective parts  
> if you want to add comments or feedback. Thanks! :)

For what it's worth, here's my story from the future:

  http://martinaspeli.net/articles/pete-and-andy-try-plone-4

Feel free to comment here or elsewhere. I realise it's a bit low on
detail, but I'm pretty sure I know how all of this could be done (given
enough time and resources, of course). Feel free to ask for more
information.

Cheers,
Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Alexander Limi

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
On Sat, 02 Feb 2008 15:18:19 -0800, Martin Aspeli  
<[hidden email]> wrote:

> Alexander Limi wrote:
>> (This is a duplicate of my post at
>> http://limi.net/articles/18-things-i-wish-were-true-about-plone - I'm
>> including the full text here, to make it easier to quote selective parts
>> if you want to add comments or feedback. Thanks! :)
>
> For what it's worth, here's my story from the future:
>
>   http://martinaspeli.net/articles/pete-and-andy-try-plone-4
>
> Feel free to comment here or elsewhere. I realise it's a bit low on
> detail, but I'm pretty sure I know how all of this could be done (given
> enough time and resources, of course). Feel free to ask for more
> information.

This is awesome, as usual you read my mind perfectly. It's also a great  
way to approach a problem, "story-driven development". This is  
approachability at its finest, and the story will be incredibly useful as  
a guiding post towards the next Plone release.

Applause!

--
Alexander Limi · http://limi.net


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Alexander Limi · http://limi.net

Jon Stahl

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
Alexander Limi wrote:

> On Sat, 02 Feb 2008 15:18:19 -0800, Martin Aspeli  
> <[hidden email]> wrote:
>  
>> For what it's worth, here's my story from the future:
>>
>>   http://martinaspeli.net/articles/pete-and-andy-try-plone-4
>>
>> Feel free to comment here or elsewhere. I realise it's a bit low on
>> detail, but I'm pretty sure I know how all of this could be done (given
>> enough time and resources, of course). Feel free to ask for more
>> information.
>>    
>
> This is awesome, as usual you read my mind perfectly. It's also a great  
> way to approach a problem, "story-driven development". This is  
> approachability at its finest, and the story will be incredibly useful as  
> a guiding post towards the next Plone release.
>
> Applause!
>
>  
+1, Martin.  Phenomenal.

best,
jon

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
-----
Jon Stahl, Director of Web Solutions
ONE/Northwest - Online Networking for the Environment
http://www.onenw.org
Alexander Limi

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Christian Schneider-10
On Fri, 01 Feb 2008 05:55:04 -0800, Christian Schneider  
<[hidden email]> wrote:

> I'm not sure I'm "in the know", but if we could get some of the really
> "in the know" people to agree to get in contact with me (or not be
> annoyed if I bug them via mail/chat) I'll be up for that one as well. I
> love compiling info like that actually, I'm just not sure if my writing
> skills are worthy of an official news section.

If you want to take responsibility for this, you could hardly wish for a  
more exciting week to start. Several posts about how people see the future  
of Plone on the blogs (especially Martin's great post), Hanno starting  
full-time Plone work at Jarn, $10 000 in donations for the Planning  
Summit, Chris' controversial "Zope is dead" blog post, Plone Conference  
2008 proposals accepted, the Science Sprint in Davis, Tarek's experiments  
with RelStorage — and much more.

Up for it? :)

--
Alexander Limi · http://limi.net


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Alexander Limi · http://limi.net

Ricardo Alves-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Martin Aspeli-2
Martin Aspeli wrote:

>> #3: Fantastic searching/grouping/batching operations for content should be  
>> accessible to everyone
>>    
>
> Yup. For that to happen, we need to ditch the idea that criteria are AT
> content types and rethink the data model and query API. Actually, that's
> pretty simple and is something that's already been done elsewhere to an
> extent (I believe hurry.query has some syntax for this, for example). We
> also need to come up with the UI metaphors for batch editing.
> Implementing batch editing is not terribly hard, but the UI is dull so
> no-one is doing it.
>
I agree with ditching the idea that criteria are AT content types.

For a project I'm currently working on, I needed different search forms
on several folders.
I'm following an implementation strategy based on annotations to add
criteria (non-AT objects) to a search context (e.g. a folder). Then,
based on the criteria defined, I can generate a search form that fills
'contentFilter' and can be used by folder_listing and
folder_tabular_view, for example. Soon, I'll be able to share this code.
Is anybody working on something similar...


What do you mean by "rethink the data model and query API"?


Ricardo

--
Ricardo Alves <[hidden email]>
Eurotux <http://www.eurotux.com>


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Laurence Rowe

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Godefroid Chapelle
Godefroid Chapelle wrote:

> How is the security managed today ? Last time I looked at
> collective.tin, I did not see anything related.

Assuming the object supports workflow, the workflow tool is called to
set the appropriate permissions:

     def updatePermissionsFromWorkflow(self):
         '''Set up security from the workflow definition'''
         wtool = getToolByName(self, 'portal_workflow')
         wfs = wtool.getWorkflowsFor(self)
         for wf in wfs:
             wf.updateRoleMappingsFor(self)

(This is on the workflow.PluggableWorkflowHistory mixin, which will be
chnaged to an adapter once the necessary CMF adapterization is merged)

There is currently no support for local roles, though it should be
fairly trivial to implement these with the help of the borg.localrole
package.

Laurence



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Laurence Rowe

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Christian Scholz-2
Christian Scholz wrote:
>>> I would imagine performance would be fairly similar as they both use
>>> sqlalchemy underneath. Though as tin uses zope schemas, formlib seem a
>>> little quicker to generate than AT based ones.
>
> I was more thinking compared to Plone ;-)

On my laptop with a small amount of data, collective.tin seems snappier.
  I'm not sure how much of this is due to the simpler rendering on the
browser (I'm not using kupu or kss for zope 3 schemas yet), but using
zope3 forms means none or the portal_factory dance, none of the widget
rendering in restricted python and only recataloguing objects once.

One problem with sqlalchemy at the moment is that I need to flush the
session cache at the end of each transaction, as it has no way of
tracking invalidations. It looks like the beginnings of support for
keeping mapped objects in the session cache and only reconstructing them
if the mapped db attributes change is in the works though.

>
> BTW, I still have this idea about what ZPatterns did back then (in sort
> of a hackish way though thanks to old Zope2) which is
>
> - having some factory which creates instances on the fly (might be ZODB
> based then or completely virtual)

collective.tin's TableFolders sort of work like this, using sqlalchemy's
orm to construct an object on container access.

> - having some means of retrieving attributes for them (from SQL or from
> other means like ZODB). This only should get triggered if one attribute
> in the set is also accessed. Thus you could have basic attributes which
> are fast to retrieve and another set which might be more expensive but
> not that often needed.

sqlalchemy has some support for constructing objects from multiple
tables, but I haven't looked into this yet. It could be useful to store
file / body text data in a separate table to metadata for instance.

> - having some means of storing these attributes back via a trigger (and
> only if those have been actually changed). SkinScript which was used
> back then also had the possibility to look at the old value and
> eventually do something with it.

This is similar to how sqlalchemy works, it stores a copy of the mapped
attributes at load time which it compares the current state of the
object to at flush time.

> I liked this very much as it made the actual object more a container to
> which you could configure what attributes are additionally fetched and
> stored. This also was easy to configure so everybody could choose where
> to store things, e.g. storing one field on the filesystem such as images
> etc.
>
> Still not sure how to best implement it these days but it's something I
> want to experiment with.

Personally I don't like the idea of the canonical data store for an
object being split over multiple systems, it makes disaster recovery
planning a nightmare. The ZODB is great, and when that is best for your
data-model, use-it. Especially now BLOB support is nearly there.

You should be able to model such a requirement though, each subset of
attributes has an interface, to which you can adapt an object. Maybe
this object only contains a UID, which each store can use as it's reference.

At some point I would like to experiment with such a system using
collective.tin:
   * At the root of the content hierarchy would be a table of (uid,
parent-uid, portal_type).
   * For each set of attributes you would create a table and an
interface. e.g one for file data (uid, file-name, file-size, file-data);
one for metadata (uid, title, description...); etc.
   * A portal_type would be a list of tables from which to construct the
object.

It should be possible to configure and customize such a system entirely
through the web.

Laurence


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Christian Scholz-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
Laurence Rowe wrote:

> Christian Scholz wrote:
>>>> I would imagine performance would be fairly similar as they both use
>>>> sqlalchemy underneath. Though as tin uses zope schemas, formlib seem a
>>>> little quicker to generate than AT based ones.
>> I was more thinking compared to Plone ;-)
>
> On my laptop with a small amount of data, collective.tin seems snappier.
>   I'm not sure how much of this is due to the simpler rendering on the
> browser (I'm not using kupu or kss for zope 3 schemas yet), but using
> zope3 forms means none or the portal_factory dance, none of the widget
> rendering in restricted python and only recataloguing objects once.

Ok, maybe not 100% comparable then. But I will give it a try, too :-)

>> BTW, I still have this idea about what ZPatterns did back then (in sort
>> of a hackish way though thanks to old Zope2) which is
>>
>> - having some factory which creates instances on the fly (might be ZODB
>> based then or completely virtual)
>
> collective.tin's TableFolders sort of work like this, using sqlalchemy's
> orm to construct an object on container access.

I just saw this part in the package, cool.

>> - having some means of retrieving attributes for them (from SQL or from
>> other means like ZODB). This only should get triggered if one attribute
>> in the set is also accessed. Thus you could have basic attributes which
>> are fast to retrieve and another set which might be more expensive but
>> not that often needed.
>
> sqlalchemy has some support for constructing objects from multiple
> tables, but I haven't looked into this yet. It could be useful to store
> file / body text data in a separate table to metadata for instance.

Well, I was also thinking not only mutiple tables but multiples data
sources in general, be it filesystem, some web service, whatever.
(ok webservice does not sound too performance happy ;-)

>> I liked this very much as it made the actual object more a container to
>> which you could configure what attributes are additionally fetched and
>> stored. This also was easy to configure so everybody could choose where
>> to store things, e.g. storing one field on the filesystem such as images
>> etc.
>>
>> Still not sure how to best implement it these days but it's something I
>> want to experiment with.
>
> Personally I don't like the idea of the canonical data store for an
> object being split over multiple systems, it makes disaster recovery
> planning a nightmare. The ZODB is great, and when that is best for your
> data-model, use-it. Especially now BLOB support is nearly there.

Well, I have my issues with the ZODB these days a bit ;-) Esp. with data
reuse/accessibility etc. I also heard bad stories especially from Lovely
Systems but of course they have maybe different use cases and lots of
data. But nevertheless I really would like to have an option here. But
it also seems there are some out there.

As for the storage I'd like to have some separate configuration layer in
which you can define outside the actual content structure how storage is
handled. I agree that a too diverse storage is a bad idea but I want
some flexibility.

I might experiment with this a bit (although it might go a bit into the
direction of writing a simple ORM).

> You should be able to model such a requirement though, each subset of
> attributes has an interface, to which you can adapt an object. Maybe
> this object only contains a UID, which each store can use as it's reference.

This is sort of how ZPatterns worked, with a unique id as a general key
for everything. But that's the natural approach to that anyway.


> At some point I would like to experiment with such a system using
> collective.tin:
>    * At the root of the content hierarchy would be a table of (uid,
> parent-uid, portal_type).
>    * For each set of attributes you would create a table and an
> interface. e.g one for file data (uid, file-name, file-size, file-data);
> one for metadata (uid, title, description...); etc.
>    * A portal_type would be a list of tables from which to construct the
> object.
>
> It should be possible to configure and customize such a system entirely
> through the web.

Sounds cool :-)

Thanks for the answers :)

-- Christian



--
Christian Scholz                         video blog: http://comlounge.tv
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                              Homepage: http://comlounge.net
Tel: +49 241 400 730 0                           E-Mail [hidden email]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

connect with me: http://mrtopf.de/connect


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Martin Aspeli-2

Re: 18 Things I Wish Were True About Plone

Reply Threaded More More options
Print post
Permalink
In reply to this post by Martin Aspeli-2
Martin Aspeli wrote:

> For what it's worth, here's my story from the future:
>
>   http://martinaspeli.net/articles/pete-and-andy-try-plone-4

And here's a follow-up...

     http://martinaspeli.net/articles/is-plone-too-hard

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
1 2 3 4 5 6 7