On Mon, 28 Feb 2000 07:49:06 +0000 Robin Becker robin@jessikat.demon.co.uk wrote:
... Sourceforge seems to be a victim of its own success. It's often too slow to use from this side of the ocean as timeouts occur somewhere along the line and shut me down. I guess that must be due to the heavy load.
SoureForge is hosted at Above.Net, a tier 1 ISP that is one hop from MAE West, and is multiply connected with an almost staggering bandwith as you can see here:
http://www.above.net/network/network.html
I also know the hardware and software at SF fairly well (I used to work at VA right next to the SourceForge guys (the called "Cold Storage")). You're not running into load problems. See the following for hardware specs:
http://sourceforge.net/docs/site/hardware.php
I suspect your performance problems are due to intercontinental bandwidth, not SourceForge directly.
Im using the monitor extensively to explore the running Zope application. Its an amazingly usefull tool. I mentioned in an earlier post the need for an object browser (as opposed to a class browser). Until theres a nice graphical object browser available, Im wondering if anyone has any tips on how to create a function that will display all of the methods and attributes available for a given object.
I can quite happily traverse the object and its inheritance tree using obj.__dict__ and obj.__class__.__dict__ and obj.__class__.__bases__ and such, but there seem to be a whole bunch of attributes and methods available for objects that I can only guess at. I assume they are acquired rather than inherited. Not being really familiar with acquisition (even after reading all the available docs), any tips on how best to traverse the acquisition path on my search for attributes and methods would be greatly appreciated.
On Tue, 29 Feb 2000, Damian Morton wrote:
I can quite happily traverse the object and its inheritance tree using obj.__dict__ and obj.__class__.__dict__ and obj.__class__.__bases__ and such, but there seem to be a whole bunch of attributes and methods available for objects that I can only guess at. I assume they are acquired rather than inherited. Not being really familiar with acquisition (even after reading all the available docs), any tips on how best to traverse the acquisition path on my search for attributes and methods would be greatly appreciated.
For a number of reasons, what you are wanting to do is not feasible. ANY object beneath the root of the ZODB can be acquired by ANY other object beneath the root of the ZODB. For instance, given the hierarchy:
- root - foo - index_html - bar - test_html
The following URLs are valid:
/foo/index_html /bar/test_html /foo/bar/test_html /foo/bar/index_html /bar/foo/index_html /bar/foo/test_html /foo/bar/foo/index_html ...
It is very hard to come at Zope and say, "Show me all of the possible methods I could apply on this object through acquisition." It is quite easy, though, to say, "Can I call this method on this object, through natural means or through acquisition?"
If you haven't read Jim's "Acquisition Algebra" talk from IPC8, I highly recommend you do so. It is located here:
http://www.zope.org/Members/jim/Info/IPC8/AcquisitionAlgebra/index.html
Hope this helps.
--Jeff
--- Jeff K. Hoffman 704.849.0731 x108 Chief Technology Officer mailto:jeff@goingv.com Going Virtual, L.L.C. http://www.goingv.com/
On Tue, 29 Feb 2000, Damian Morton wrote:
I can quite happily traverse the object and its inheritance tree using obj.__dict__ and obj.__class__.__dict__ and obj.__class__.__bases__ and such, but there seem to be a whole bunch of attributes and
methods available
for objects that I can only guess at. I assume they are
acquired rather than
inherited. Not being really familiar with acquisition (even
after reading
all the available docs), any tips on how best to traverse the
acquisition
path on my search for attributes and methods would be greatly
appreciated.
From: Jeff K. Hoffman [mailto:jeff.hoffman@goingv.com]
It is very hard to come at Zope and say, "Show me all of the possible methods I could apply on this object through acquisition." It is quite easy, though, to say, "Can I call this method on this object, through natural means or through acquisition?"
Hmm, I find myself wanting learn as much as possible. When Im looking at a given object, I can learn heaps by examining all of the methods related to the object. Thats the power of object-orientation. Being able to take a stab at a method name, and then asking how to apply it to my object seems very weird to me, especially given my meagre knowlege of the possible methods. For a beginer, the options need to be laid out and explored, that how I like to learn. Im really not sure how to approach learning Zope given the current state of the documentation, and the seeming impossibility of the object browser I seek. Am I missing something? (othe than a complete mastery of the subject)
On Tue, 29 Feb 2000, Damian Morton wrote:
On Tue, 29 Feb 2000, Damian Morton wrote:
I can quite happily traverse the object and its inheritance tree using obj.__dict__ and obj.__class__.__dict__ and obj.__class__.__bases__ and such, but there seem to be a whole bunch of attributes and
methods available
for objects that I can only guess at. I assume they are
acquired rather than
inherited. Not being really familiar with acquisition (even
after reading
all the available docs), any tips on how best to traverse the
acquisition
path on my search for attributes and methods would be greatly
appreciated.
From: Jeff K. Hoffman [mailto:jeff.hoffman@goingv.com]
It is very hard to come at Zope and say, "Show me all of the possible methods I could apply on this object through acquisition." It is quite easy, though, to say, "Can I call this method on this object, through natural means or through acquisition?"
Hmm, I find myself wanting learn as much as possible. When Im looking at a given object, I can learn heaps by examining all of the methods related to the object. Thats the power of object-orientation.
One of the powers, yes. Others of note would be encapsulation, inheritance, polymorphism, etc.
Being able to take a stab at a method name, and then asking how to apply it to my object seems very weird to me, especially given my meagre knowlege of the possible methods.
In re-reading my message, I realize that I may have mis-stated the reality. You can't ask Zope, "Given this method name, which means will you use to apply it: Normal or Acquisition?" What you have, instead, is, "Given this method name, try normal application first. If that doesn't work, try acquisition. If that doesn't work, throw an exception."
Perhaps others would be better equipped to instruct you on how to learn. Myself, I read the Zope source code and look at how other parts of Zope are implemented (the management interface itself is implemented in Zope; there is nothing special about the management interface that you couldn't do yourself.)
For a beginer, the options need to be laid out and explored, that how I like to learn.
I would argue that, for most purposes, the methods and attributes of an object are the most important things for you to know. Methods are acquired, yes, but not as often as they are called directly. IMHO.
Im really not sure how to approach learning Zope given the current state of the documentation, and the seeming impossibility of the object browser I seek.
I know Amos is working on documenting the Zope APIs. This will go a long way towards delivering the help you desire. The object browser has been discussed on this list in the past, and was discussed at IPC8. It ain't gonna happen, unless something changes.
Am I missing something? (othe than a complete mastery of the subject)
A good understanding of acquisition goes a LONG way. Other than that, exploring stuff that already works (learning by example) is a good way to go.
The documentation IS helpful; I am training our webmaster in Zope, and he has had the reference/tutorial manual we got at IPC8 by his side for the last week. During that week, coming from a proprietary platform with zero Zope experience, he implemented a web chat room (using ZODB for persistence; he did not use SQL because he wanted to learn Zope), and a few other cool doodads. Needless to say, I was impressed.
Lastly, this list is an incredible resource. In the short time I have been involved in the community, I have seen a number of people go from newbies asking "stupid" questions to experts answering the "stupid" questions of others. It's all a matter of persistence, at this point.
--Jeff
--- Jeff K. Hoffman 704.849.0731 x108 Chief Technology Officer mailto:jeff@goingv.com Going Virtual, L.L.C. http://www.goingv.com/
Perhaps I could restate my question:
Given an object path, say 'app.Stuff.Story', how can I determine what methods and attributes that object inherits and acquires.
On Tue, 29 Feb 2000, Damian Morton wrote:
I can quite happily traverse the object and its inheritance tree using obj.__dict__ and obj.__class__.__dict__ and obj.__class__.__bases__ and such, but there seem to be a whole bunch of attributes and
methods available
for objects that I can only guess at. I assume they are
acquired rather than
inherited. Not being really familiar with acquisition (even
after reading
all the available docs), any tips on how best to traverse the
acquisition
path on my search for attributes and methods would be greatly
appreciated.
From: Jeff K. Hoffman [mailto:jeff.hoffman@goingv.com]
It is very hard to come at Zope and say, "Show me all of the possible methods I could apply on this object through acquisition." It is quite easy, though, to say, "Can I call this method on this object, through natural means or through acquisition?"
On Tue, 29 Feb 2000 18:16:45 -0500, morton@dennisinter.com (Damian Morton) wrote:
Perhaps I could restate my question:
Given an object path, say 'app.Stuff.Story', how can I determine what methods and attributes that object inherits and acquires.
This howto includes an external method which returns a list of all the objects that app.Stuff.Story will acquire from, in the order they will be searched.
http://www.zope.org/Members/htrd/howto/aq_order
I hope this helps,
Toby Dickenson tdickenson@geminidataloggers.com
MAE West had some severe problems yesterday afternoon PST.
[J C Lawrence, on Tue, 29 Feb 2000] :: On Mon, 28 Feb 2000 07:49:06 +0000 :: Robin Becker robin@jessikat.demon.co.uk wrote: :: :: > ... Sourceforge seems to be a victim of its own success. It's :: > often too slow to use from this side of the ocean as timeouts :: > occur somewhere along the line and shut me down. I guess that must :: > be due to the heavy load. :: :: SoureForge is hosted at Above.Net, a tier 1 ISP that is one hop from :: MAE West, and is multiply connected with an almost staggering :: bandwith as you can see here: :: :: http://www.above.net/network/network.html :: :: I also know the hardware and software at SF fairly well (I used to :: work at VA right next to the SourceForge guys (the called "Cold :: Storage")). You're not running into load problems. See the :: following for hardware specs: :: :: http://sourceforge.net/docs/site/hardware.php :: :: I suspect your performance problems are due to intercontinental :: bandwidth, not SourceForge directly. :: :: -- :: J C Lawrence Home: claw@kanga.nu :: ----------(*) Other: coder@kanga.nu :: --=| A man is as sane as he is dangerous to his environment |=-- :: :: _______________________________________________ :: Zope-Dev maillist - Zope-Dev@zope.org :: 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 )