[Zope-dev] Test(Persistent) failing with AttributeError: __hash__

2000-09-06 Thread John D. Heintz

In the following code either I am using dictionaries wrong or I'm
missing something with ExtensionClass in general.  Can someone explain
the best way for me to map from one instance to another?

I have tried searching Zope and Python mailing lists and resources for
an answer to this question but have become confused by different
conflicting messages.  On the one hand I have heard that dictionary keys
are supposed to be immutable.  On the other, I've heard that
dictionaries are used to simulate (key is object, value is ignored) some
aspects of sets.  Which is correct?  

What I really want is to be able to map a Persistent object to a string.

Thanks for any help.
John Heintz


import ZODB
from Persistence import Persistent

class Test1:
pass

class Test2(Persistent):
pass

dict = {}
t1 = Test1()
t2 = Test2()

try:
dict[t1] = 1
except:
print "Using instance of Test1 as key failed!"

try:
dict[t2] = 2
except:
print "Using instance of Test2(Persistent) as key failed!"


-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Please help - Persistent dictionary keys

2000-09-19 Thread John D. Heintz

Can someone please explain the best way for me to map from one instance
to another?

In the following code either:
(1) I am using dictionaries wrong, or
(2) I'm missing something with ExtensionClass in general.  

I have tried searching Zope and Python mailing lists and resources for
an answer to this question but have become confused by different
conflicting messages.  On the one hand I have heard that dictionary keys
are supposed to be immutable.  On the other, I've heard that
dictionaries are used to simulate (key is object, value is ignored) some
aspects of sets.  Which is correct?  

What I really want is to be able to map a Persistent object to a string
with fast lookup.

Thanks for any help.
John Heintz


import ZODB
from Persistence import Persistent

class Test1:
pass

class Test2(Persistent):
pass

dict = {}
t1 = Test1()
t2 = Test2()

try:
dict[t1] = 1
except:
print "Using instance of Test1 as key failed!"

try:
dict[t2] = 2
except:
print "Using instance of Test2(Persistent) as key failed!"


-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Please help - Persistent dictionary keys

2000-09-21 Thread John D. Heintz

Thanks for the reply Martijn,

I do want the objects of Test2 class to be compared by identity, like
I'm assuming Test1 objects are.  

If I have to define __cmp__ and __hash__ then I will basically be making
them up because the object in question are mutable - except for their
identity.

Why do the Python class instances naturally act as dictionary keys while
the ExtensionClass instances don't?

Thanks for the time,
John

Martijn Pieters wrote:
> 
>From the Python Library Reference:

  """A dictionary's keys are almost arbitrary values. The only types of
  values not acceptable as keys are values containing lists or
  dictionaries or other mutable types that are compared by value rather
  than by object identity."""

<...>

> So, if you want to be able to use a Persistent based object as keys to a
> dictionary, implement __cmp__ and __hash__ methods on that class:
> 
> >>> import ZODB
> >>> from Persistence import Persistent
> >>> class Test1:
> ... pass
> ...
> >>> class Test2(Persistent):
> ...   def __cmp__(self): return 1
> ...   def __hash__(self): return 1
> ...
> >>> dict = {}
> >>> t1 = Test1()
> >>> t2 = Test2()
> >>> dict[t1] = 1
> >>> dict[t2] = 2
> >>> dict
> {: 2, <__main__.Test1 instance at 80a3e78>: 1}
> >>>
> 
> --
> Martijn Pieters
> | Software Engineer  mailto:[EMAIL PROTECTED]
> | Digital Creations  http://www.digicool.com/
> | Creators of Zope   http://www.zope.org/
> -

-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Please help - Persistent dictionary keys

2000-09-21 Thread John D. Heintz

Thanks for the reply Martijn,

I do want the objects of Test2 class to be compared by identity, like
I'm assuming Test1 objects are.  

If I have to define __cmp__ and __hash__ then I will basically be making
them up because the object in question are mutable - except for their
identity.

Why do the Python class instances naturally act as dictionary keys while
the ExtensionClass instances don't?

Thanks for the time,
John

Martijn Pieters wrote:
> 
>From the Python Library Reference:

  """A dictionary's keys are almost arbitrary values. The only types of
  values not acceptable as keys are values containing lists or
  dictionaries or other mutable types that are compared by value rather
  than by object identity."""

<...>

> So, if you want to be able to use a Persistent based object as keys to a
> dictionary, implement __cmp__ and __hash__ methods on that class:
> 
> >>> import ZODB
> >>> from Persistence import Persistent
> >>> class Test1:
> ... pass
> ...
> >>> class Test2(Persistent):
> ...   def __cmp__(self): return 1
> ...   def __hash__(self): return 1
> ...
> >>> dict = {}
> >>> t1 = Test1()
> >>> t2 = Test2()
> >>> dict[t1] = 1
> >>> dict[t2] = 2
> >>> dict
> {: 2, <__main__.Test1 instance at 80a3e78>: 1}
> >>>
> 
> --
> Martijn Pieters
> | Software Engineer  mailto:[EMAIL PROTECTED]
> | Digital Creations  http://www.digicool.com/
> | Creators of Zope   http://www.zope.org/
> -

-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] New Proposal: PersistentBlob

2000-09-26 Thread John D. Heintz

Hi all,

Yesterday I put up a new proposal on the http://dev.zope.org site that
documents my vision of PersistentBlob.  The main idea is the be able to
mark blocks of strings (text or binary) content for storage in a file
system as individual files.  (Or blobs in a relation table.)

The two motivations for this are keeping a ZODB FileStorage small and
exposing blocks of string content to external processes (i.e. full-text
indexing).

Thanks for taking a look.
John


-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Only using ZODB, not Zope Re: New Proposal: PersistentBlob

2000-09-29 Thread John D. Heintz

Hi Greg,

Thanks for the pointer.  I briefly looked at this Product and the
CVSMixin Product as well, but have one requirement that unfortunately I
_didn't_ explain clearly in my proposal.

I am not using Zope, only the ZODB so a Zope Product will not help me.

My first goal with the proposal was to get feedback on if my idea is
correct and what implementation problems could occur, i.e. transactions
and file locking.

My second goal is to inspire someone to implement it and merge it into
the official ZODB.  I think that the idea has enough merit and could be
useful for a large number of applications.

We might have the time and need to implement PersistentBlob ourselves,
but I can't say for sure now.

Thanks all,
John

Gregor Heine wrote:
> 
> > Hi all,
> >
> > Yesterday I put up a new proposal on the http://dev.zope.org site that
> > documents my vision of PersistentBlob.  The main idea is the be able to
> > mark blocks of strings (text or binary) content for storage in a file
> > system as individual files.  (Or blobs in a relation table.)
> >
> > The two motivations for this are keeping a ZODB FileStorage small and
> > exposing blocks of string content to external processes (i.e. full-text
> > indexing).
> >
> > Thanks for taking a look.
> > John
> 
> Hi John!
> 
> Have you had a look at the ExtFile Product
> (http://www.zope.org/Members/MacGregor/ExtFile)?
> It basically does all the things you want to achive with the PersistentBlob
> (i.e. storing files externally and making them accessible for external
> processes), except that it's not that deeply integrated into the Zope
> machinery and stores the files only in the file system and not in an RDBMS
> (which nevertheless could be implemented).
> 
> Cheers, Gregor!

-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] CORBA-ZODB: Is replacing global get_transaction() the only way...

2000-10-04 Thread John D. Heintz
globals to return the appropriate
> > Transaction regardless of thread.
> 
> It currently returns a different transaction depending on the thread.

In the CORBA exposure I would never call get_transaction().  I would use
the reference to a transaction from the CORBA Session object that
originally open()ed a database connection.
 
> > Again, my preference is number one.  After going over the ZODB code, I
> > _think_ that a Connection is always associated with one Transaction.  If
> > this assumption is true, then it should be safe to make the change I'm
> > proposing. If not, then I need to understand why so that I can rethink
> > how to solve my problem. ;-)
> >
> > I hope that I've made my problems and ideas for solutions clear, if not
> > please let me know.
> 
> I dunno. You'll probably be able to tell from my response. :)

Only the difference between thread/Connection/transaction per request
versus exposing the same cached object across multiple CORBA requests.
 
> > Also, I think that I should be able to make the
> > changes to ZODB myself within the next few week, but only if there is
> > the _possibility_ of folding them back into the main Zope codebase.
> 
> I sincerely hope that no ZODB changes are necessary.

This is, in Python, the changes to Persistent that I feel would solve my
problem.  I think that in general this code would allow multiple thread
to modify ZODB objects while still keeping the right transaction up to
date.

import ZODB
from Persistence import Persistent
class TestPersistent(Persistent):
  self __changed__(self):
"Completely ignoring self->state from c code..."

if self._p_jar:
  self._p_jar.transaction.register(self)

and then in DB.py the open() method must add a transaction attribute to
the connection before returning.

I've got one more question.  What happens if I:
- make a connection to a database
- navigate to some objects and store references to them
- make some changes to these objects
- call get_transaction().abort()
- make some changes to the same objects (that I have references to)
- call get_transaction().commit()

Will everything do what I expect in this case?

Thanks so much for you time,
John Heintz


 
> > Thanks for any help,
> > John D. Heintz
> >
> > CORBA Threading description:
> > CORBA defines the POA, which has two standard threading policies:
> > ORB Controlled Model
> > Single Threaded Model
> >
> > The POA is basically a controller for requests to one or more
> > distributed objects, with thread policy as one of its parameters.
> >
> > The first threading policy means whatever the ORB gives you - single or
> > multi, and you have to deal with all synchronizations.
> >
> > The second I consider a mis-nomer because there can be many threads, but
> > only one at a time will access objects for a given POA.  (This is the
> > model that I perceive being used by default for ZODB object from a
> > specific Connection.)
> 
> No. Multiple threads can be accessing the same logical object.
> Each thread has it's own copy (and DB connection and transaction).
> 
> Jim
> 
> --
> Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
> Technical Director   (888) 344-4332http://www.python.org
> Digital Creationshttp://www.digicool.com   http://www.zope.org
> 
> Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email
> address may not be added to any commercial mail list with out my
> permission.  Violation of my privacy with advertising or SPAM will
> result in a suit for a MINIMUM of $500 damages/incident, $1500 for
> repeats.

-- 
John D. Heintz
DataChannel, Inc.
Senior Engineer
512-633-1198
[EMAIL PROTECTED]

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Significance of the ZODB split?

2000-12-08 Thread John D. Heintz

The Sourceforge exposure gives people like me with an itch to scratch a 
place to work on a publicly visible branch of ZODB for my two proposals 
without breaking anything or relying on patch files continually.

John Heintz

PS My proposals are ExplicitTransactions and PersistentBlob ;-)

Michel Pelletier wrote:

> On Fri, 8 Dec 2000, Robin Becker wrote:
> 
> 
>> Anyone know why AM Kuchling needs to split off a Sourceforge project
>> based on ZODB?
> 
> 
> I don't think it's a "split", but AMK is using ZODB internally at his
> job, and externally with his own projects, so I can see him wanting to
> have some control over the distribution that he uses.  
> 
> Other than that, there could be other reasons, we, for example, do not
> provide a mechanism for community checkin privledges, Sourceforge
> does.  I don't think we have a ZODB specific mailing list, sourceforge
> offers this.
> 
> That being said, I'm pretty sure we've allways kept up with Andrew's
> patches and suggestions, and we'd be happy to create a mailing list.
> 
> Andrew has also extended any developer at DC checkin privledges at the
> sourceforge project; although I suspect we'll just continue to check
> into our CVS and he'll "sync" with us that which he wants.  I am, in
> particular, barely not lazy enough to check stuff into branches, much
> less whole other repositories. ;)
> 
> 
>> I really liked the ZEO examples, but where's this going?
> 
> 
> It's just open source.  More power to him in my opinion.  He's
> definatly taking Zope and ZEO to new levels and audiences.
> 
> -Michel
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Announcing ZODB-Corba code release

2000-12-13 Thread John D. Heintz

Here is the first release of code that exposes a ZODB database through
CORBA (omniORB).

The code is functioning, the docs are sparse, and it should work on your
machines.  ;-)

I am only going to be in town for the next two days, then I will be
unavailable until Jan 1.

See http://www.zope.org/Members/jheintz/ZODB_CORBA_Connection to
download the code.

It's not perfect, but it works for me.

Enjoy,
John


-- 
.. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Bug reports, feature requests, etc. go in the ZEO Tracker:
http://www.zope.org/Products/ZEO/Tracker

Conversations etc. can take place in the Wiki:
http://www.zope.org/Products/ZEO/Wiki

Zope-ZEO maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-zeo





___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] How would I keep _v_* attributes from getting thrown away?

2001-01-19 Thread John D. Heintz

Hello all,

I am using ZODB along with CORBA to expose peristent objects.  Some of 
my objects have per-connection/session state.  The clear example is 
file-like objects - effectively exposing persistent StringIO objects 
through CORBA.

The issue is that I want multiple clients to be able to read() iterate 
over the same file-like corba objects.

My initial idea is to have a _v_position attribute that is unique for 
each Connection cache object and maintains the correct position in the 
StringIO for each session.  I obviously wouldn't want this to be a 
persistent attribute because a spurious commit would put it into the db 
and mess up any other users iterating through the same object from a 
different session.

A volatile attribute, _v_position, however can be destroyed at any time 
with a cache cleanup via deactivate() call.

How do I maintain volatile, but per connection stable, attributes on 
persistent objects?

I thought about overriding the _p_deactivate() method, but I am also 
defining the __call_method__() hook and am bound by Bug 1783 that 
prevents this kind of thing.

My thoughts on building this into cPersistent.c after looking through 
the code is to provide special processing to not remove some special 
attributes that also don't get saved into the db.

Two ideas come to mind for this:
1) define _vs_* as volatile stable that is neither persisted nor 
clear()ed.  This would slow down the deactivate() method though.

2) define _v_stable as a special volatile that doesn't go away.  This 
would be quick processing in deactivate() and could be a dictionary to 
account for many stable volatile attributes.

Thanks for any help,
John


-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Better test case for Bug 1783: Persistent __call_method__() interferes with __getstate__

2001-01-20 Thread John D. Heintz

Hello all,

The following is the best test case I have so far for bug 1783.

The behavior of the bug is that no CMethods from Persistent can be 
called indirectly when the __call_method__ hook is present.  This means 
that I can't override any of __getstate__, __setstate__, _p_deactivate.

#!/usr/bin/python
import ZODB
from Persistence import Persistent

class P(Persistent):
def __call_method__(self, meth, methArgs, methKW={}):
return apply(meth, methArgs, methKW)

p = P()

p.__getstate__()

#This throws exception!
Persistent.__getstate__(p)


TypeError: function requires exactly 0 arguments; 1 given


-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] How would I keep _v_* attributes from getting thrown away?

2001-01-22 Thread John D. Heintz

Thanks for the warning Dieter,

but I'm managing threads/connections/sessions/POAs and a few other 
things already to expose ZODB objects through CORBA sessions.

I wanted the _v_* attributes to live for the life of the DB Connections.

Last night I found a fix for the bug that prevented me from overriding 
the _p_deactivate() method on Persistent objects, so I think that I will 
just do this:

class ...
def _p_deactivate(self):
temp_position = self._v_position
Persistent._p_deactivate(self)
self._v_position = temp_position


Thanks for the help though.

John

Dieter Maurer wrote:

> John D. Heintz writes:
>  > I am using ZODB along with CORBA to expose peristent objects.  Some of 
>  > my objects have per-connection/session state.
>  > ...
>  > My initial idea is to have a _v_position attribute ...
> Using "_v_" attributes for session state is a very bad idea.
> They are thread(!) local and not session local.
> This means, if a following request of your user (in the same session)
> happens to get assigned a different thread, it will read
> and update a different position. Chaos is garanteed (though you
> will see it only, if your site is loaded).
> 
> Use a session product (-> zope.org) for session data.
> 
> 
> Dieter
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] ANNOUNCE: Zope 2.3.0 beta 3 released - Plea for bug #1884

2001-01-24 Thread John D. Heintz

Zope-maintainers,

Please evaluate the patch in bug #1884.  There is an ExtensionClass.c
bug in CMethod_call that prevents calling unbound super-class methods
when the __call_method__ hook exists.

http://classic.zope.org:8080/Collector/1884/view

thanks,
John


Brian Lloyd wrote:

 > Hi all,
 >
 > Zope 2.3.0 beta 3 is now available. You can download it
 > from Zope.org:
 >
 > http://www.zope.org/Products/Zope/2.3.0b3/
 >
 > This beta contains fixes for various issues reported to
 > date in the beta cycle, and some older Collector bugs.
 > Barring any major unforseen problems, this will be the
 > last 2.3 beta release.
 >
 > For more information on what is new in this release, see the
 > CHANGES.txt and HISTORY.txt files for the release:
 >
 > - http://www.zope.org/Products/Zope/2.3.0b3/CHANGES.txt
 >
 > - http://www.zope.org/Products/Zope/2.3.0b3/HISTORY.txt
 >
 >
 >
 >
 > Brian Lloyd[EMAIL PROTECTED]
 > Software Engineer  540.371.6909
 > Digital Creations  http://www.digicool.com
 >
 >
 >
 >
 > ___
 > Zope-Dev maillist  -  [EMAIL PROTECTED]
 > http://lists.zope.org/mailman/listinfo/zope-dev
 > **  No cross posts or HTML encoding!  **
 > (Related lists -
 > http://lists.zope.org/mailman/listinfo/zope-announce
 > http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Q: Specialists, Racks, and ZCatalogs?

2001-02-05 Thread John D. Heintz

Wow, it's fun to hear people talking about Catalysis!

Catalysis is an analysis and design methodology that focuses on 
components and frameworks.  It stresses being able to specify component 
interactions with invariants, pre/post conditions, and supporting graphics.

The book, "Objects, Components, and Frameworks with UML" by Desmond 
D'Souza and Alan Wills is no light read, but well worth it.  Composing 
multiple frameworks together with package substitutions is really cool. ;-)

We are actually combining the analysis precision from Catalysis with the 
code focus from XP and having really good success.

John "who worked for Desmond in past life" Heintz



Johan Carlsson wrote:

>> ...
>> When you're thinking about a system, it is often helpful to think about
>> just a part of the system rather than the system as a whole. To do this, 
>> you define a limited "scope" around a particular subsystem.
>> In this case, an Actor represents the role something from outside your
>> subsystem plays when interacting with something inside your subsystem.
>> 
>> The "something" can be an object, a person, a separate computer system,
>> a corporation...
>> 
> 
> 
> Thanks Steve,
> You cleared up my confusion.
>  
> 
>>> How should I look at roles in ZPatterns?
>> 
>> This is all standard object-oriented stuff, and is not specific to ZPatterns.
>> Get the Coad book, read it, and things should get clearer :-)
> 
> 
> It's on my ToReadList :-)
>  
> 
> 
>> Also, the Catalysis method puts an emphasis on defining interactions and 
>> collaborations between objects in terms of roles. You might want to take
>> a look at that.
> 
> 
> Is Catalysis method a pattern in Coads book?
> 
> Regards,
> Johan Carlsson
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Storing part of an object on the file system

2001-02-22 Thread John D. Heintz

Andy,

I'm just checking an assumption that I'm making about the Ext* Products:
They do no work out of the box with ZEO, right?

That is, they would require some sort of shared network drive for all 
ZEO clients to functions correctly.

Thanks,
John

Andy McKay wrote:

> Actually just follow up I realised I never told you how I solved this
> problem. I compacted all data types into File, Image or DTML Document. Since
> I had ExtFile and ExtImage I chopped those into one class called it
> ExtThing, and the wrote classes off it. ExtFile and ExtImage I cut and
> pasted (not complete) for the most part.
> 
> Then I wrote a class that called ExtHTML that is a DTML Document that
> overrides the munge() and read() read functions. Instead I passed those onto
> ExtThing. And there you go a DTML Document that has the main body stored on
> the local file system.
> 
> Thanks McGregor.
> --
>   Andy McKay.
> 
> 
> - Original Message -
> From: "Andy McKay" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, February 08, 2001 4:15 PM
> Subject: [Zope-dev] Storing part of an object on the file system
> 
> 
> 
>> Ok whack idea #34... Well sort of, the idea was sparked by ExtFile (yes
> 
> its
> 
>> all his fault honest). We want to have files on the file system for many
>> reasons which I won't go into now, just take it for granted. But we also
>> want some of the objects information to be in the standard data.fs, so we
>> can catalog it use acquisition provide a simple interface to it and so on.
>> So far you are saying thats ExtFile and you are right.
>> 
>> But we want to extend it to any object anywhere, instead of storing the
> 
> data
> 
>> attribute in the object and pickling it in the ZODB I want to be able to
>> store the data attribute on the file system. This gives us loads of
>> advantages we also thought this would be extremely useful to other people.
>> We've bounced around ideas on how to do this and here the only two so far:
>> 
>> -we could overload the data attribute with a class that on Pickling
> 
> into
> 
>> the ZODB instead writes it on to the filesystem...
>> -we could in the ZODB put a hack to say if pickling something with so
>> and so attribute do this instead...
>> 
>> I feel like this something I should just not be doing, but it would be
> 
> great
> 
>> if I could get it work...
>> 
>> --
>>   Andy McKay.
>> 
>> 
>> 
>> 
>> ___
>> Zope-Dev maillist  -  [EMAIL PROTECTED]
>> http://lists.zope.org/mailman/listinfo/zope-dev
>> **  No cross posts or HTML encoding!  **
>> (Related lists -
>>  http://lists.zope.org/mailman/listinfo/zope-announce
>>  http://lists.zope.org/mailman/listinfo/zope )
>> 
> 
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] is there a hook for before the transaction is committed

2001-03-05 Thread John D. Heintz

Hi Tim,

I have two suggestions, I hope one of them helps.

1) Attached is a TM.py file that I wrote based on the one you mention 
below.  I've tried to make it more obvious and better documented.

2) Don't use this kind of functionality, but rather use sub-transaction 
commits.

The first suggestion has more overhead than what I assume you would 
need, but the second one won't work for all situations.

A Fishbowl proposal of mine, HashingSupport, was going to use the same 
kind of hook you are asking about.  In this case though, using 
sub-transaction commits made a lot more sense.

In general though, I think that _v_* attributes pose a non-trivial 
problem that probably requires a hook on abort() if not commit() as well.

John

Tim McLaughlin wrote:

> Is there a hook for before the transaction is committed for objects which
> subclass Persistent?  I found __inform_commit__ for a "registered" object,
> but I can't seem to get that to work as I thought it did.  I also tried
> subclassing TM like a DA, but to no avail.
> 
> TIA,
> Tim
> 
> ___
> Tim McLaughlinBCSwebservices.net
> Director, Technical Group 1950 Old Gallows Road
> tel:  (703) 790.8081 x111 Suite 201
> [EMAIL PROTECTED]Vienna, VA 22182
> www .bcswebservices. net
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


##
# 
# Zope Public License (ZPL) Version 1.0
# -
# 
# Copyright (c) Digital Creations.  All rights reserved.
# 
# This license has been certified as Open Source(tm).
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# 
# 1. Redistributions in source code must retain the above copyright
#notice, this list of conditions, and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright
#notice, this list of conditions, and the following disclaimer in
#the documentation and/or other materials provided with the
#distribution.
# 
# 3. Digital Creations requests that attribution be given to Zope
#in any manner possible. Zope includes a "Powered by Zope"
#button that is installed by default. While it is not a license
#violation to remove this button, it is requested that the
#attribution remain. A significant investment has been put
#into Zope, and this effort will continue if the Zope community
#continues to grow. This is one way to assure that growth.
# 
# 4. All advertising materials and documentation mentioning
#features derived from or use of this software must display
#the following acknowledgement:
# 
#  "This product includes software developed by Digital Creations
#  for use in the Z Object Publishing Environment
#  (http://www.zope.org/)."
# 
#In the event that the product being advertised includes an
#intact Zope distribution (with copyright and license included)
#then this clause is waived.
# 
# 5. Names associated with Zope or Digital Creations must not be used to
#endorse or promote products derived from this software without
#prior written permission from Digital Creations.
# 
# 6. Modified redistributions of any form whatsoever must retain
#the following acknowledgment:
# 
#  "This product includes software developed by Digital Creations
#  for use in the Z Object Publishing Environment
#  (http://www.zope.org/)."
# 
#Intact (re-)distributions of any official Zope release do not
#require an external acknowledgement.
# 
# 7. Modifications are encouraged but must be packaged separately as
#patches to official Zope releases.  Distributions that do not
#clearly separate the patches from the original work must be clearly
#labeled as unofficial distributions.  Modifications which do not
#carry the name Zope may be packaged in any form, as long as they
#conform to all of the clauses above.
# 
# 
# Disclaimer
# 
#   THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
#   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#   PURPO

Re: [Zope-dev] is there a hook for before the transaction is comm itted

2001-03-05 Thread John D. Heintz

Hi Tim,

I'm glad that worked for you.  I think _vote() is the right place to do 
what you want.

See my reply to Steve Alexander for my comments on _v_* attributes.

John

Tim McLaughlin wrote:

> In what respect are the _v_* attribs gonna cause problems.  My guestimate
> was that they disappeared upon transaction commit/abort.  I'm also not sure
> as to why I would need subtrans since I'm only messing with properties of
> the object.  To my knowledge, subtrans are only necessary to conserve
> resources.  Anyway, what you gave me works!  Thanks.  It seems I need to
> override the _vote method (since it is only called once and allows
> exceptions).  As to the other stuff, I'm sure you can enlighten me further
> as to why.  I appreciate the help.
> 
> Cheers.
> Tim
> 
> -Original Message-
> From: John D. Heintz [mailto:[EMAIL PROTECTED]]
> Sent: Monday, March 05, 2001 12:45 PM
> To: Tim McLaughlin
> Cc: '[EMAIL PROTECTED]'
> Subject: Re: [Zope-dev] is there a hook for before the transaction is
> committed
> 
> 
> Hi Tim,
> 
> I have two suggestions, I hope one of them helps.
> 
> 1) Attached is a TM.py file that I wrote based on the one you mention 
> below.  I've tried to make it more obvious and better documented.
> 
> 2) Don't use this kind of functionality, but rather use sub-transaction 
> commits.
> 
> The first suggestion has more overhead than what I assume you would 
> need, but the second one won't work for all situations.
> 
> A Fishbowl proposal of mine, HashingSupport, was going to use the same 
> kind of hook you are asking about.  In this case though, using 
> sub-transaction commits made a lot more sense.
> 
> In general though, I think that _v_* attributes pose a non-trivial 
> problem that probably requires a hook on abort() if not commit() as well.
> 
> John
> 
> Tim McLaughlin wrote:
> 
> 
>> Is there a hook for before the transaction is committed for objects which
>> subclass Persistent?  I found __inform_commit__ for a "registered" object,
>> but I can't seem to get that to work as I thought it did.  I also tried
>> subclassing TM like a DA, but to no avail.
>> 
>> TIA,
>> Tim
>> 
>> ___
>> Tim McLaughlin   BCSwebservices.net
>> Director, Technical Group1950 Old Gallows Road
>> tel:  (703) 790.8081 x111Suite 201
>> [EMAIL PROTECTED]   Vienna, VA 22182
>> www .bcswebservices. net
>> 
>> 
>> ___
>> Zope-Dev maillist  -  [EMAIL PROTECTED]
>> http://lists.zope.org/mailman/listinfo/zope-dev
>> **  No cross posts or HTML encoding!  **
>> (Related lists - 
>>  http://lists.zope.org/mailman/listinfo/zope-announce
>>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] is there a hook for before the transaction is committed

2001-03-05 Thread John D. Heintz

Hi Steve,

ZPatterns is something that is very high on my must investigate list, 
but I am not doing Zope development, but rather ZODB based development.

I'm sure that I can still get lots of good ideas though...

My comment below about _v_* attributes is primarily about not using 
functionality like Keeper or TM, but rather just taking advantage of 
_v_* attributes for caching purposes.

What I would want from caching, volatile variables is to reset only when 
the object, or more safely the session, has conflicted and needs to be 
reset.

I wouldn't want to take the performance hit for the cases where I have 
only successful commits on the same Connection cache of objects.  In 
that case I would needlessly be reseting my volatile cache.

In our code we are overriding _p_deactivate() like this:
def __p_deactivate__(self):
temp = _v_something
Persistent.__p_deactive__(self)
_v_something

We are only doing this for instance vars that are not sensitive to 
commit/abort cycles.

I think that the ideal situation would allow the volative cache to be 
reset only in the case of a Conflict, i.e. abort()

There are two scopes that this can happen at:
1) The _v_* vars that are only local to the Persistent object that they 
are defined within.

This would be a __p_reset__() method or something that is called by the 
ZODB Connection mechanism.

2) Session wide, i.e. _v_* vars that are dependent on multi-object state 
but happen to be stored on one of the Persistent objects.

This would be handled by Keeper or TM like solutions.

Anyway, this is just my current mental state dump.  ;-)

Thanks,
John

Steve Alexander wrote:

> John D. Heintz wrote:
> 
>> Hi Tim,
>> 
>> I have two suggestions, I hope one of them helps.
>> 
>> 1) Attached is a TM.py file that I wrote based on the one you mention 
>> below.  I've tried to make it more obvious and better documented.
>> 
>> 2) Don't use this kind of functionality, but rather use 
>> sub-transaction commits.
>> 
>> The first suggestion has more overhead than what I assume you would 
>> need, but the second one won't work for all situations.
>> 
>> A Fishbowl proposal of mine, HashingSupport, was going to use the same 
>> kind of hook you are asking about.  In this case though, using 
>> sub-transaction commits made a lot more sense.
>> 
>> In general though, I think that _v_* attributes pose a non-trivial 
>> problem that probably requires a hook on abort() if not commit() as well.
> 
> 
> 
> Take a look at ZPatterns; specifically, the classes Keeper and Kept from 
> ZPatterns/Transactions.py
> 
> You can see examples of how they are used in DataSkins.py and Rack.py, 
> although there really isn't much to it.
> 
> I've included the docstrings below.
> 
> class Keeper:
> """Resets an object's per-transaction cache attributes at txn boundaries
>Note that Keepers are created by Kept objects semi-automatically, 
> and   there is usually no need to create one manually.  A Keeper
>automatically registers itself with the Zope transaction upon
>creation, and instructs its Kept client to clear its per-transaction
>cache at all transaction boundaries.  Keeper methods are called only
>by the Zope transaction, so don't mess with them."""
> 
> 
> class Kept(Base):
> """Thing which has a Keeper to clear its per-transaction cache.
> 
> Objects derived from Kept should reference the 'self._v_Keeper'
> attribute whenever they need to flag that they have made changes to
> their cache that would require it to be cleared.  (Note that
> '_v_Keeper' is an *attribute*, not a method, and so should not be
> called, just referenced.)
> 
> Once this has been done, the next transaction state transition
> that occurs (sub/main transaction commit or abort) will cause
> the object's Keeper to call for a cache reset.
> 
> Subclasses of Kept should define a '__per_transaction_cache_attrs__'
> attribute as a sequence of attributes which they would like to have
> deleted from their '__dict__' at reset time.
> """



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] FTP interface being worked on?

2001-03-18 Thread John D. Heintz
at we want to be able to work with
> representations of objects using tools like emacs and dreamweaver.  In
> fact, we'd like to use emacs as our front end to CVS.  The ideal
> situation would be to edit Zope objects in emacs, publish them to a Zope
> object database, test them (perhaps using a separate web browser like
> Netscape or Internet Explorer), and then once everything is working,
> commit the objects to a CVS repository (using emacs or from the command
> line).
> 
> 
>> If you want a lossless "morally binary" representation, it's
>> probably best to use XML export, which is great for your
>> purposes, because it already exists!  ;-)
> 
> 
> I've heard it said that all progress is due to the unreasonable man.  So
> to do my part for progress, what I want is a lossless "morally plain
> text" representation. ;-)
> 
> If the existing XML export really was great for our purposes, I'd be
> done!  The problem is that everything comes out in one big monolithic
> file.  That's not good for project management using CVS.  (At least, as
> far as I can tell.)
> 
> I think there is the potential for a really good solution that solves
> our need to manage our project via CVS, and to solve the greater need to
> enhance the Zope management interface to support tools that work with
> filesystem objects.
> 
> I am about to jump into this project next week.  I do want to stay in
> touch with anyone who is working on similar projects, so please keep in
> touch!  I will post reports as I make progress in case anyone is
> interested.
> 
> Thanks,
> Fred



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] FTP interface being worked on?

2001-03-19 Thread John D. Heintz
ialized as binary for lots of good reasons.

Just listing that my example serialized file is used by some other 
objects doesn't help because ZCatalog may not refer directly to the 
object anyway.

The editing and import process must work together to track changed 
files, moved files, and deleted files at a minimum.

This may not be good enough, because the code written into a Zope 
Product may say that when property "x" is changed on these objects to 
reindex the "foo" ZCatalog for that object.  When I import the object 
from the serialized format all I can know is that something changed, but 
without expensive processing (XML diffing is hard in the general case, 
we might be able to limit the structures to managable scope though) we 
can't know that the "foo" ZCatalog should be updated instead of the 
"bar" ZCatalog.

> 
> 
>> a) XML is structured enough that it can reliably hold the
>> data from the 
>> ZODB.  The current XML dump is not useful for this - it
>> would need to 
>> create individual files and folders to represent
>> containment.
> 
> 
> This is pretty easy right now.  Ten lines of recursive code
> can walk the whole tree if necessary and export only leaf
> objects.
>  
> 
>> b) A hybrid XML and custom dump solution.  An Image for
>> example could 
>> dump out as a binary image file with meta-data in a
>> similiarly name XML 
>> file.
> 
> 
> Yes, each object should make its own policy regarding its
> body.  Its metadata format should be standardized, however.
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] FTP interface being worked on?

2001-03-19 Thread John D. Heintz
ctured enough that it can reliably hold the
>>>> data from the
>>>> ZODB.  The current XML dump is not useful for this - it
>>>> would need to
>>>> create individual files and folders to represent
>>>> containment.
>>> 
>>> 
>>> This is pretty easy right now.  Ten lines of recursive code
>>> can walk the whole tree if necessary and export only leaf
>>> objects.
>> 
> 
> Great.  Maybe I am closer than I realize to the CVS management
> solution.  I need to look more closely at ZCVSmixin to see what it
> does.  But for our immediate need (which is to allow a distributed team
> of developers to share code and track changes via a central CVS
> repository), maybe it makes the most sense just to segment the existing
> XML export into directories and files and enhance the existing import to
> allow overwriting objects.
> 
> 
>>>> b) A hybrid XML and custom dump solution.  An Image for
>>>> example could dump out as a binary image file with meta-data in a
>>>> similiarly name XML file.
>>> 
>>> Yes, each object should make its own policy regarding its
>>> body.  Its metadata format should be standardized, however.
>> 
> 
> I like this idea.
> 
> After I have the XML export/import working in a way that fits better
> with CVS (even if the sreialized representation is essentially a black
> box), then I can tackle how each object represents its body in a
> "morally plain text" serialized format.

I want to add here that it may be very useful to not specify that any 
object have only one serial format separate from the XML default.

Specifically it might make it an easier problem if the author of the 
export code for a type of object can dump property "x" as 
-x. and property "y" as -y.

For example instead of just:
|
-- foo_page.xml
-- foo_page.dtml

it might be useful to have arbitrary other files created when foo_page 
is dumped:
|
-- foo_page.xml
-- foo_page.dtml
-- foo_page-description.txt

This would imply that the description property is not captured in the 
foo_page.xml,but instead the easier to use text file.

I'm worried about the parsing complexity when trying to build a single 
"morally plain text" serialized format, and I think that "morally plain" 
can be applied at a sub-object level to make it easier to work with.

The example that comes to mind it Image:
|
-- icon.xml
-- icon.png
-- icon-description.txt

The "morally plain" output here would be binary, not text.  A single 
output file would be hard pressed to allow binary and text editing in 
the same file.

John



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] FTP interface being worked on?

2001-03-19 Thread John D. Heintz

Chris McDonough wrote:

>> I think there is really only one issue nobody has been able to sort out:
>> do we want the objects to be actually stored on the filesystem or do we
>> want to be able to mirror a ZODB?  Or do we want both?
> 
> 
> My conception of it is that objects won't be served from the filesystem, but
> just put in a editable serialized format for version control and tool
> purposes.

How useful/difficult would it be to put the SMB protocol on top of a ZEO 
server?  As serialized formats are build, would this be useful to anyone?

Another use for this that I think would be great for is schema 
migration.  Right now with ZODB we can have custom __setstate__() 
methods that do schema migration, but being able to perform text 
processing changes with common tools would be great.

Just thinking out loud...

> 
> 
>>> Nobody wants to edit XML, AFAICT.
>> 
>> Careful, that's a religious issue in some circles. :-)  I know of many
>> people who prefer that data be stored in XML just because humans can
>> read and change it if the need arises.  (This from a guy who has
>> actually edited ZODB XML export files. :-) 

> 
> 
> Eek.  ;-)
> 
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )



-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] External transaction integration bug?

2001-04-19 Thread John D. Heintz

I can't directly address the concerns you've raised, but for my project 
I have rewritten TM.py to work better within the begin/vote/finish/abort 
protocol framework.  I've also added more documentation.

John

Randall F. Kern wrote:

> I may just be missing something obvious here, but it seems like there is
> a hole in ZODB.Transaction.Transaction.commit and Shared.DC.ZRDB.TM.TM,
> that can cause external transactions (those that use the TM mixin class,
> like psycopg) to be abandoned (never get committed or rolled back).
> 
> Let's say somewhere around line 300 in Transaction.py (the call to
> j.commit(o, self)) we get an exception.  Furthermore, let's say the TM
> derived database object has already been committed (the only effect of
> which is to move the DB into the jars mapping, since TM.tpc_begin() and
> TM.commit() both do nothing).
> 
> The exception dumps us down to about line 353, where we call
> _p_jar.abort() on all the uncommitted objects (note: it's important that
> the database connection isn't in this list, because TM.abort() will
> rollback the transaction.  the way we keep the db out of this list is by
> having it appear in objects _before_ the object that failed the commit).
> 
> Next we reach line ~366, where we should "unwind TPC for the jars that
> began it".  What this means is calling tpc_abort() on each jar from the
> objects that were already committed (which includes the database).
> However, TM.tpc_abort() does nothing, leaving the external database
> transaction open.
> 
> Does this make sense?
> 
> If this makes sense (i.e. seems bad :), does catching tpc_abort() in TM
> and calling TM.abort() seem like a valid fix?
> 
> Thanks,
> -Randy
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
> 
> 
> 




##
# 
# Zope Public License (ZPL) Version 1.0
# -
# 
# Copyright (c) Digital Creations.  All rights reserved.
# 
# This license has been certified as Open Source(tm).
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# 
# 1. Redistributions in source code must retain the above copyright
#notice, this list of conditions, and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright
#notice, this list of conditions, and the following disclaimer in
#the documentation and/or other materials provided with the
#distribution.
# 
# 3. Digital Creations requests that attribution be given to Zope
#in any manner possible. Zope includes a "Powered by Zope"
#button that is installed by default. While it is not a license
#violation to remove this button, it is requested that the
#attribution remain. A significant investment has been put
#into Zope, and this effort will continue if the Zope community
#continues to grow. This is one way to assure that growth.
# 
# 4. All advertising materials and documentation mentioning
#features derived from or use of this software must display
#the following acknowledgement:
# 
#  "This product includes software developed by Digital Creations
#  for use in the Z Object Publishing Environment
#  (http://www.zope.org/)."
# 
#In the event that the product being advertised includes an
#intact Zope distribution (with copyright and license included)
#then this clause is waived.
# 
# 5. Names associated with Zope or Digital Creations must not be used to
#endorse or promote products derived from this software without
#prior written permission from Digital Creations.
# 
# 6. Modified redistributions of any form whatsoever must retain
#the following acknowledgment:
# 
#  "This product includes software developed by Digital Creations
#  for use in the Z Object Publishing Environment
#  (http://www.zope.org/)."
# 
#Intact (re-)distributions of any official Zope release do not
#require an external acknowledgement.
# 
# 7. Modifications are encouraged but must be packaged separately as
#patches to official Zope releases.  Distributions that do not
#clearly separate the patches from the original work must be clearly
#labeled as unofficial distributions.  Modifications which do not
#carry the name Zope may be packaged in any form, as long as they
#conform to all of the clauses above.
# 
# 
# Disclaimer
# 
#   THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
#   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#   PURPOSE ARE DISCLAIMED.  IN

Re: [Zope-dev] Experiments with ORMapping

2001-05-14 Thread John D. Heintz

I think this is a great idea!  I would definetely like to use and contribute 
to this effort.  Having this kind of flexibily would be fantastic.

After demonstratable Python code is working I would request that usability 
issues (UI Schema mapper, data migration/schema evolution tools, ZEO 
integration, multi-Storage uses) be addressed sooner than later.  

John

On Monday 14 May 2001 10:47, Shane Hathaway wrote:
> Chris Withers wrote:
> > Shane Hathaway wrote:
> > > I'm telling you there's a lot more you can do with the code that makes
> >
> > 
> >
> > > The next thing to do is to write a fishbowl proposal.
> >
> > This sounds cool but made my head hurt :-S
> >
> > Can you try and bring this back down to the level of us mere mortals by
> > explaining how your OR stuff would let me take a table of data in an
> > RDBMS table and have it appear as objects in the Management Inteferace?
>
> Sorry, this is at a pretty low level and I do need to explain it better.
>
> One would define an "ObjectMappingSchema" whose job it is to store and
> retrieve objects of a specific type and in a specific location.  It
> would usually grab a database connection object to do its work.  When
> loading, it would perform a query then manually put attributes into a
> persistent object.  When storing, it would grab specific attributes from
> the persistent object and execute a statement to store those attributes.
>
> So let's say you want a ZODB to store and retrieve users in a specific
> table while putting everything else in pickles.  You would create an
> instance of PickleSchema, which implements the ObjectMappingSchema
> interface, and tell it to manage everything *except* the users mapping
> in BasicUserFolder objects.  You would tell it to store and retrieve
> this object using your UserFolderSchema instead.  Your UserFolderSchema
> would store and retrieve the users from the USERS and USER_PREFS
> tables.  The user table wouldn't require the use of OIDs but would
> require unique user IDs.
>
> So in the management interface nothing would change.  Nor would the
> application-level Python code.  You would only define a layer that maps
> objects to a relational database.  You would still see the user folder
> as you do now.
>
> Now, it may be useful to provide a management interface for defining the
> schema mapping.  I haven't approached that yet; AFAICT this is where the
> work done on SmartObjects and DBObjects would be very useful.  Initially
> I was planning for people to code the mapping purely in Python so we
> could gain experience and find common patterns before inventing a UI.
>
> Shane
>
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )

-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Experiments with ORMapping

2001-05-14 Thread John D. Heintz

A way to approach how this would be useful would be to contrast different use 
environments for ZODB code.

The same code could be used for:
- Unit testing, prototyping, and general exploration could use ZODB with 
DemoStorage and the default Connection objects.

- Production use could make use of ZODB and custom Connection objects that 
map to/from relational tables.

John

On Monday 14 May 2001 09:51, Chris Withers wrote:
> Shane Hathaway wrote:
> > I'm telling you there's a lot more you can do with the code that makes
>
> 
>
> > The next thing to do is to write a fishbowl proposal.
>
> This sounds cool but made my head hurt :-S
>
> Can you try and bring this back down to the level of us mere mortals by
> explaining how your OR stuff would let me take a table of data in an RDBMS
> table and have it appear as objects in the Management Inteferace?
>
> I know that's horribly oversimplified, but some of us only have small
> brains ;-)
>
> cheers,
>
> Chris
>
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )

-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] another Zope hanging..

2001-05-20 Thread John D. Heintz

I've added a patch to Python 2.1 on sourceforge that helped me considerably 
when diagnosing multi-threaded Python lock ups.  See 
http://sourceforge.net/tracker/index.php?func=detail&aid=421709&group_id=5470&atid=305470
 
for the submitted patch.

I created this to give me at least as much functionality as Java has to dump 
the stack trace of all Java threads and Java monitors.

For an example of how I used it see 
http://lists.zope.org/pipermail/zodb-dev/2001-May/000703.html in the ZODB dev 
list.

Hope this helps,

John


On Friday 18 May 2001 09:13, Christian Scholz wrote:
> Hi!
>
> Just FYI: The server still hangs once a day and another one is doing
> the same..
> It even does this when simply accessing one page or image over and over
> again.
> More precisely I've started the server and did
>
> ab -n 10 -c 10 http://foo.bar/we/pics/someimg.gif
>
> (ab being the apache benchmarking utility)
>
> and after a while I get the broken pipe error.
>
> I've also changed my python version to 2.0 and tested it with this
> but still the same effect. Also changing the server (and thus
> hardware and system) did not help it.
> I've also removed the mysqlda from the zope installation but also this
> did not help..
> I will try now to create the smallest version of the site that still
> hangs..
>
> Dunno if anybody has some idea, I actually have none..
>
> I'll keep you informed..
>
> -- christian
>
> PS: strangely it works on the development server but also here I am doing
> some tests with ab right now.. and this one is still 1.5.2
>
> On Thu, May 03, 2001 at 02:16:30PM -0400, Chris McDonough wrote:
> > > Well, my problem might be that in my case most sql statement are done
> >
> > inside
> >
> > > some attribute provider of ZPatterns.. This is using ZSQL methods
> >
> > internally
> >
> > > but actually those then won't show up I guess..
> >
> > Even if you weren't using ZPatterns, the error probably wouldn't jump out
> > and say "here I am!"  So I don't think there's much difference between
> > using ZPatterns and not using ZPatterns.  The process of detecting when
> > something hangs is just like any other troubleshooting process, it's a
> > matter of exclusion.  If you notice that the request named
> > "foobargorf/fleafang" *always* hangs, you investigate what it does, and
> > try to reproduce it.  If it's incidental, so be it, and move on to the
> > next theory.
> >
> > > I've also seen that some more recent version of the mysql stuff is
> > > around and I am using this now..
> > >
> > > The problem's also that I just have a few methods to invoke from the
> >
> > outside
> >
> > > which do lots of things by calling other object. Thus I might not
> > > really
> >
> > see
> >
> > > what's really causing the problem.. I hope though that my upgrade will
> >
> > show some
> >
> > > benefit..
> >
> > The -M log perhaps won't show you the actual operation that's causing the
> > hang, but it will show you the entry point into a routine which causes
> > the hang.  It's your job from there to track down the cause.  This is
> > just like debugging a program.  You get an error somewhere, and you need
> > to track it back to its root, which may be six levels up the call stack
> > buried in some godforsaken regex.  ;-)

-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Bulletproof ZCatalog proposal

2001-06-07 Thread John D . Heintz

Me too! Me too!

John

On Thursday 07 June 2001 08:49, Chris Withers wrote:
> Shane Hathaway wrote:
> > But I think I have a solution for all of the issues in conflict
> > resolution.  If you, or anyone else, is also interested in this, please
> > show support (if only by saying "please do this"!) :-)  I can't work on
> > it unless I have a reason to.
>
> Please do this! :-)
>
> I'm particularly interested in ZCatalog becoming a standard ZODB feature,
> and I know there are otehrs on ZODB-dev who are dying for this right now...
>
> cheers,
>
> Chris
>
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )

-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Bulletproof ZCatalog proposal

2001-06-08 Thread John D . Heintz

Please remove the del statement in the ZODB __init__.py file to make this 
possible.  I am simply trying to create my own Transaction objects and can't 
without patching the StandaloneZODB release to do this.

Thanks,
John


On Friday 08 June 2001 16:21, Phillip J. Eby wrote:
> At 04:58 PM 6/8/01 -0400, Shane Hathaway wrote:
> >On Thursday 07 June 2001 21:28, Phillip J. Eby wrote:
> > > Upon being told to perform a transaction or subtransaction commit,
> > > the transaction would notify all the ruleAgents, and then all the
> > > indexingAgents.  Objects could still subscribe to either queue while
> > > this notifying is taking place.  (So that triggered actions could
> > > cause indexish objects to register as indexingAgents, not to mention
> > > causing updated objects to fire additional triggers.)
> > >
> > > Once all agents in a queue are notified, that queue should be cleared
> > > so that notifications are on a per-subtransaction basis.  Once both
> > > queues are cleared, normal transaction behavior goes forward.
> >
> >Would you say this would occur before tpc_begin() messages or just
> >after?
>
> Before.  I'm saying this would take place immediately at the start of the
> existing Transaction.commit() method.
>
> > > Hm.  That's simpler than I thought it was going to be.  Shoot, I can
> > > even see how to implement it as a runtime patch, that would've been
> > > simpler than all the shenanigans ZPatterns goes through to fake out
> > > the transaction machinery...  and it's a better
> > > implementation.  Ah well.  At the time I wanted to avoid trying to
> > > convince Jim to add machinery to transactions "just" for ZPatterns,
> > > given that ZPatterns wasn't a particularly established product at the
> > > time.
> > >
> > > Let me know if you guys put something like this in, though, and I'll
> > > definitely look at reworking ZPatterns to use the mechanism.  It
> > > could potentially cut a lot of code out and improve the robustness at
> > > the same time.
> >
> >I don't foresee us adding this capability right away since we need to
> >understand it better and it only applies to one working product and a
> >hypothetical product.  I'd suggest you go ahead with the runtime patch.
>
> I think I'll wait until ZPatterns works with Zope 2.4, unless it becomes
> necessary otherwise.  Replacing what I've got now is a pretty significant
> undertaking, and risk-prone to boot, so I don't want to delay the finishing
> of ZPatterns' support for Zope 2.3.x.
>
> Basically, the runtime patch would be to replace
> ZODB.Transaction.Transaction with a subclass that implemented the
> notification queues in the commit() method.  There'd be a few other little
> extensions needed, like clearing the queues on any abort operation, and
> adding registerIndex() and registerRule() or some such methods.
>
>
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )

-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



OracleStorage? Re: [Zope-dev] DCOracle2 Beta 3

2001-06-12 Thread John D . Heintz

Are there any plans to port OracleStorage over to use DCOracle2?

John


On Tuesday 12 June 2001 10:46, Matthew T. Kromer wrote:
> For all of you (or at least, BOTH of you) Oracle users out there,
> I packed up DCOracle2 Beta 3 this morning, including Z Oracle Stored
> Procedures as part of ZOracleDA.
>
> It can be found in the usual place,
>
> http://www.zope.org/Members/matt/dco2
>
> This isn't much different from Beta 2 except for some SP tweaks and the
> Z Oracle Stored Procedures, except that the NT builds are release
> versions with Oracle 8i (e.g. SP discovery code) features enabled --
> when I built Beta 2 I goofed the build and packaged a debug release
> without the 8i specific features on.
>
> I'll confess that I'm not a heavy user of Stored Procedures, so your
> mileage may vary; particulary when using IN/OUT binds where type
> conversions need to take place from unweildy Oracle native types (like
> SQLT_NUM.)
>
> If you play with the stored procedure objects in Zope, it's probably
> worth pointing out that the default permissions won't include execute
> permission -- you have to specifically enable that for non-manager roles.
>
> On the far-out front, a few people have asked how you might do
> user-specific connections to the database (ie instead of pooling by a
> common connection, you individually authenticate to Oracle with your own
> password).  Clearly, cloning the base Connection object would be fairly
> straighforward, but authenticating it to Oracle would not be, as the
> user password wouldn't be available.  If anyone feels strongly about
> that (ie you have a notion on how you would make it work and/or you need
> it), feel free to write me.  From a performance standpoint it would be
> terrible, but security auditors would love it.
>
>
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )

-- 
. . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | [EMAIL PROTECTED]

w w w . d a t a c h a n n e l . c o m

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )