[Zope] request for advice

Chris McDonough chrism@digicool.com
Fri, 21 Jul 2000 13:00:32 -0400


Steve Spicklmire has also written the ZCVSMixin product (which I've
never actually used) that might let you integration filesystem
versioning with Zope more easily as well...

> -----Original Message-----
> From: Patrick Lewis [mailto:pl@teleport.com]
> Sent: Friday, July 21, 2000 12:50 PM
> To: 'zope@zope.org'
> Subject: Re: [Zope] request for advice
> 
> 
> On Fri, Jul 21, 2000 at 04:29:01PM +0100, Seb Bacon wrote:
> > Hello folks,
> > 
> > I'm just beginning to design my first big Zope application. 
>  I'm writing to
> > ask zopististitiatatas for some advice, since I'm a bit of 
> a newbie and I
> > want to make sure:
> > 
> > [a] I reuse as much code as possible 
> > [b] I make my code as reusable as possible
> > [c] my application is stable and scalable
> > 
> > 1. Background to the application
> > 
> > I'm building an extranet product in Zope.  Much of it will 
> be centered
> > around a 'VersioningObject'.
> > 
> > An example of such an object might be an image, a Word 
> document.  The
> > objects will have a preview view associated with them.  For 
> word docs, this
> > will be a html-ised version, for photos it will be a 
> thumbnail.  Perhaps in
> > the future each object will also have rudimentary online 
> editing facilities.
> > 
> > The objects will all support versioning.  This means each 
> object can be
> > superceded by another object of the same type.  The version 
> number will be
> > incremented.  Versions will also have Confera forums 
> associated with them,
> > and ACLs.
> > 
> > Now as I see it, I want a VersioningObject to be a 
> Folderish object that can
> > contain a set of Versions, which are just a load of File 
> objects of the same
> > type.  The folder has a method which slects its most recent 
> child file
> > object and displays it by calling its preview method.  
> Older versions are
> > read-only and are listed by title only.
> > 
> > 2) My questions:
> > 
> > i) I'm worried about the sheer volume of binary data that 
> would accrue in
> > the VersioningObject: a single VersioningObject might be a 
> Word doc of 25Mb.
> > If it has 10 versions and there are 10 such objects, that's 
> 2.5Gb in the
> > ZOBD.  I presume this would be a bad idea performance-wise; 
> any suggestions?
> > ii) I'm interested in using ZPatterns because I reckon they 
> sound like they
> > might enhance the reusability etc. of the code; I know 
> there have been some
> > pointers recently, but which ZPatterns could I benefit 
> from?  or are they
> > too arcance to worry about for now?
> > iii) Is there any other miscellaneous advice?  e.g. has 
> anything like this
> > been done already?
> > 
> > 
> > Thanking you all, ladies and gentlemen.
> > 
> > Seb.
> 
> A couple of ideas: 
> 
> - Don't save your data (documents, images) in the ZODB. 
> Instead, save it
> to disk using the Local File System product.  This will 
> prevent the ZODB
> from getting too big for most OSes.
> 
> - I think it would be kind of interesting to use RCS for 
> something like
> this on the backend. Build your methods in Zope to manipulate RCS, and
> then you get all the functionality of RCS "for free", and 
> don't have to
> reinvent the wheel. You may run into problems with people not 
> working with
> the most current document (I grab something from the database, Jill
> commits some changes to the same document, I make some changes, commit
> them, and destroy Jill's changes), but you would have that 
> problem anyway
> as you initially described it.
> 
> Hope this helps.
> 
> -- 
> Patrick Lewis <pl@teleport.com>
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
>