From dieter.menne@menne-biomed.de Thu Mar 6 10:01:24 2003 From: dieter.menne@menne-biomed.de (Dieter Menne) Date: Thu, 6 Mar 2003 11:01:24 +0100 Subject: [ZDP] Just to tell you Message-ID: ... your tutorial is great.. Dieter Menne --------------------------------------- Dr. Dieter Menne Biomed Software 72074 T=FCbingen Tel (49) (7071) 52176 FAX (49) (7071) 55 10 46 dieter.menne@menne-biomed.de www.menne-biomed.de From webmaster@zope.org Thu Mar 6 22:06:56 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Thu, 06 Mar 2003 17:06:56 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Testing and Debugging Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/TestingAndDebugging.stx#2-18 --------------- There is a few other testing and debugging techniques and tools not commonly used to test Zope. In this section we'll mention several of them. % Anonymous User - Oct. 16, 2001 6:49 pm - The Medusa monitor client is also a good debugging tool. It permits querying the ZODB from an interactive commandline interface, and would be familiar to many Python users. The only downside is that because persisted objects are based on ExtensionClass, it is not possible to query an object for its functions and attributes in the style of "dir(thisobject)". -- Chui Tey % Anonymous User - Nov. 1, 2001 8:39 am - Actually dir(object) works fine. It just breaks the *first* time you try to use it on a persistent object, where it returns an empty list. The second and subsequent times, it will show you the methods and attributes. Of course it won't show you acquired methods and attributes, but that's what aq_parent and such are for. -- chrism % Anonymous User - Mar. 6, 2003 5:06 pm: Perhaps it's something I'm doing, but the downside of Medusa monitor debugging on my setup is that all errors fail silently, rather than raising a traceback. So if you try to look at attribute "a" of object "o", and it doesn't exist, you get no response, rather than a TB/exception. Is this just me? From webmaster@zope.org Sun Mar 9 19:00:04 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Sun, 09 Mar 2003 14:00:04 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Testing and Debugging Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/TestingAndDebugging.stx#4-23 --------------- So, for the sake our example, let's say that you have a 'News' object which is defined in a Zope Product called 'ZopeNews', and is located in the 'lib/python/Products/ZopeNews' directory. The class that defines the 'News' instance is also called 'News', and is defined in the 'News.py' module in your product. % Anonymous User - Mar. 9, 2003 2:00 pm: What exactly is a News object and how was it defined? Is it a class that was registered with the registrar object? http://www.zope.org/Documentation/Boo ks/ZDG/current/Products.stx Object is to ambiguous of a term. From Dtimmons@mail.cyberlink.ws Mon Mar 10 15:52:02 2003 From: Dtimmons@mail.cyberlink.ws (David Timmons) Date: Mon, 10 Mar 2003 10:52:02 -0500 Subject: [ZDP] Shopping Cart example Message-ID: <200303101052.AA1602552064@mail.cyberlink.ws> Hello, I was looking at the shopping cart example at http://www.aixtraware.de/TCPware/TCPware/TCPware/Examples. It mentions that I could get the source by logging into the management interface; however, what is the user/password combo? do you have any other examples on using session data? This one does seem perfect. Thanks for the help From webmaster@zope.org Tue Mar 11 10:31:50 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Tue, 11 Mar 2003 05:31:50 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Testing and Debugging Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/TestingAndDebugging.stx#3-2 --------------- Profiling uses the standard Python profiler. This is turned on by setting the 'PROFILE_PUBLISHER' environment variable before executing Zope. % Anonymous User - Mar. 11, 2003 5:31 am: It doesn't work for me :( In ZOPE_HOME/start i set export PROFILE_PUBLISHER="/usr/local/zope/profile.out" exec /usr/local/bin/python $cwd/z2.py -D -u flo "$@" but i don't get any change in the profiling tab From webmaster@zope.org Wed Mar 12 07:21:20 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Wed, 12 Mar 2003 02:21:20 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Appendix B - Zope Directories Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/AppendixB.stx#1-0 --------------- This is a list of some important directories in the Zope source code. 'Extensions' -- Code for External Methods go in this directory. 'ZServer' -- Python code for ZServer and Medusa. 'ZServer/medusa' -- Sam Rushing's Medusa package upon which ZServer is built. 'doc' -- Miscellaneous documentation. 'import' -- Place Zope export files here in order to import them into Zope. 'inst' -- Installation scripts. 'pcgi' -- C and Python code for PCGI. 'utilities' -- Miscellaneous utilities. 'var' -- Contains the ZODB data file (Data.fs) and various other files (logs, pids, etc.) This directory should be owned and writable by the userid that Zope is run as. 'lib/Components' -- Python extension modules written in C including BTree, ExtensionClass, cPickle, zlib, etc. 'lib/python' -- Most of the Zope Python code is in here. 'lib/python/AccessControl' -- Security classes. 'lib/python/App' -- Zope application classes. Stuff like product registration, and the control panel. 'lib/python/BTrees' -- Btrees package. 'lib/python/DateTime' -- DateTime package. 'lib/python/DocumentTemplate' -- DTML templating package. DTML Document and DTML Method use this. 'lib/python/HelpSys' -- Online help system. 'lib/python/Interface' -- Scarecrow interfaces package. 'lib/python/OFS' -- Object File System code. Includes basic Zope classes (Folder, DTML Document) and interfaces (ObjectManager, SimpleItem). 'lib/python/Products' -- Zope products are installed here. 'lib/python/Products/OFSP' -- The OFS product. Contains initialization code for basic Zope objects like Folder and DTML Document. 'lib/python/RestrictedPython' -- Python security used by DTML and Python Scripts. 'lib/python/SearchIndex' -- Indexes used by ZCatalog. 'lib/python/Shared' -- Shared code for use by multiple Products. 'lib/python/StructuredText' -- Structured Text package. 'lib/python/TreeDisplay' -- Tree tag package. 'lib/python/ZClasses' -- ZClasses package. 'lib/python/ZLogger' -- Logging package. 'lib/python/ZODB' -- ZODB package. 'lib/python/ZPublisher' -- The Zope ORB. 'lib/python/Zope' -- The Zope package published by ZPublisher. 'lib/python/webDAV' -- WebDAV support classes and interfaces. % Anonymous User - Mar. 12, 2003 2:21 am: What's different between /lib/python/Products and /Products? From money4u@OperaMail.com Thu Mar 13 08:57:12 2003 From: money4u@OperaMail.com (GayleWilson) Date: Thu, 13 Mar 2003 03:57:12 -0500 Subject: [ZDP] ~ saw your site-http://www.hitech-accounting.com/examples Message-ID: Hello. 85% of all Internet surfers are directed by search engines. Search Engines are the super powerful traffic solution on the Internet. Your web site: http://www.hitech-accounting.com/examples can be evaluated for FREE for its keyword placement in the top twenty major search engines. By evaluate, we mean taking the search words that are important to your web site and checking the results of those words in the top twenty search engines to determine your web site's placement within those results. We will create a report that displays the results, and then a professional evaluator will look at your site to see if there is any 'search engine hostile' content. This valuable service is simply free for you as our gift.To take part in our free offer, simply click the link below: http://www.skirthikers.com/form_s.html I think you will be very surprised by the detail and results of our analysis. If by some misunderstanding we sent this email, click reply and type 'take away' in the subject line. - Gayle Wilson Extreme Monitoring From HugoMar@clientlogic.com Thu Mar 6 15:18:32 2003 From: HugoMar@clientlogic.com (Hugo Martires) Date: Thu, 6 Mar 2003 10:18:32 -0500 Subject: [ZDP] Zope Tuturial Message-ID: I just finished to pass trough the zope tuturial to learn the very basics of zope. It was very helpful to have this tuturial. Now I know what I can do with zope and how to start playng with it. What would be nice also, is to have more advanced tuturials. Many Thanks, Hugo From 4eer4e@yahoo.com Thu Mar 13 19:52:12 2003 From: 4eer4e@yahoo.com (Yboreviel) Date: Thu, 13 Mar 2003 19:52:12 GMT Subject: [ZDP] shildebr,A Trading Systems for the New Millennium Message-ID: Trading Systems for the New Millennium and the New Markets

To stop receiving our promotion, please send email to newsle_end@yahoo.com

Trading Systems for the New Millennium
and the New Markets!
For questions or orders please call 1-866-209-5450
Take Charge Of Your Future!
 

New! Second EditionNew Home Study ProgramThe Market Prophet is the ultimate software for mastering the markets. This interactive multimedia software program unveils the most advanced systems available for trading the stock and futures markets. Whether you have never traded before or are a seasoned professional, the program is a wealth of information and can give you the edge you need to be profitable in any market. All these systems are 100% mechanical, anyone can use them!
 

The truly wealthy know something that most working people don't understand. That is, that the best way to create a virtually limitless income stream, is to put your money to work!

"It is not enough to be in the right place at the right time, unless you also understand that you are there."
~ George Gilder

The Market Prophet has a complete basics section, which covers everything you need to set up your own home business. Next, the advanced systems section, which highlights all the money making systems and strategies of some of the worlds top traders, including some that have never been released before. The next step is that we have you trade a real time simulation trading account, to show you these strategies work without risking any real money. Then, when your confidence is high and you are ready then you can begin to trade for a living!


"Aim to be fearful when others are greedy, and greedy when others are fearful."
~ Warren Buffett

The program retails for $295.00 but for a limited time the software is being offered as a promotional for $99.00!

 

Order Your Copy of the Market Prophet Now!

 

The Software: Market Prophet 2000

The Software: Market Prophet 2000
 

New Home Study Program TThe software presents the 8-hour multimedia course with animated charts, interactive testing and audio commentary.

After each section, there is an interactive test to assure the competence of every trader. The program illustrates these systems using animated charts to show exactly how to apply each method and in which market. The guesswork is completely removed. These systems are 100% mechanical. All time frames are covered including day trading, short term (swing) trading, and long term (position) trading. No matter what market or time frame you prefer, the Market Prophet will customize a system for you.
 


 

Totally Mechanical, No Guesswork
Tested Over Thirty Years and Proven Effective!
Its like having the lights turned on in a room you've been stumbling around in. After I completed the program everything seemed clear."

Tracy Sanders Austin TX. (512) 291-4793 7 P.M. to 9 P.M. Monday through Friday

"7 out of 7 correct trades in one day"


" I've made $3000 in 3 hours using the methods I learned in 2 weeks with the Market Prophet. I don't think I'll be working for anyone else ever again. "

Jon Paul Robertson Long Beach, CA

"My account has doubled in the first two months. That's up 100%!!! "

Robert Ross Memphis Tenn.

System customization - The Market Prophet software actually designs and customizes a system for you to work in whatever market you our currently trading and under whatever time frame you are comfortable trading. If you would like to day trade and work full time trading the software will customize a system that allows you to do just that. If you ust want to know what the best long term stock picks are for the next year to buy and hold well then....the Market Prophet will do that as well!.

 

Market Personalities Software
A product of years of testing and research. This additional software is a breakdown of each market and how it responds to each method of trading. With the Market Prophet you learn the best possible systems for trading. With the Market Personalities software you learn the best markets to apply each of these systems in. This is a great way to fine-tune your trading accuracy.

 


 

A must have for all serious investors, the Market Prophet professional trader software is the most complete resource available for market prediction today. You cannot afford to trade in today's markets without having the best possible systems on your side. Thanks to this promotional offer you can have access to them for only $99.00!

Order Your Copy of the Market Prophet Now!
 

 

To stop receiving our promotion, please send email to newsle_end@yahoo.com

From webmaster@zope.org Mon Mar 17 21:22:28 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Mon, 17 Mar 2003 16:22:28 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Testing and Debugging Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/TestingAndDebugging.stx#3-2 --------------- Profiling uses the standard Python profiler. This is turned on by setting the 'PROFILE_PUBLISHER' environment variable before executing Zope. % Anonymous User - Mar. 11, 2003 5:31 am: It doesn't work for me :( In ZOPE_HOME/start i set export PROFILE_PUBLISHER="/usr/local/zope/profile.out" exec /usr/local/bin/python $cwd/z2.py -D -u flo "$@" but i don't get any change in the profiling tab % Anonymous User - Mar. 17, 2003 4:22 pm: It's ok now. - I'm not sure what my mistake was. From teyc@cognoware.com Thu Mar 20 00:30:29 2003 From: teyc@cognoware.com (Chui Tey) Date: Thu, 20 Mar 2003 10:30:29 +1000 Subject: [ZDP] masking email addresses Message-ID: <9DB60AFDAB1A5E4093762030DBB38978360C4A@WEBSERVER.advdata.com.au> This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C2EECB.BBBE7C30 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Since this is a dead project, I volunteer to modify ZDP to mask all the email addresses to reduce spam harvesting. Can I have an account please? Chui Tey ------=_NextPart_000_0000_01C2EECB.BBBE7C30 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Since = this is a dead=20 project, I volunteer to modify ZDP to mask all the email addresses to = reduce=20 spam harvesting. Can I have an account please?
 
Chui=20 Tey
------=_NextPart_000_0000_01C2EECB.BBBE7C30-- From webmaster@zope.org Fri Mar 21 17:53:45 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Fri, 21 Mar 2003 12:53:45 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Zope Development Gotchas (User Contributed) Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/Gotchas#0-0 --------------- Here is the place to add comments about "gotchas" related to Zope development. We will try to work these in to the ZDG narrative from time to time. % mcdonc - Jan. 17, 2002 6:23 pm - Methods declared in Product classes must have docstrings to callable by visiting them "through the web" (by calling them up by URL via a browser). % Anonymous User - Feb. 27, 2002 10:52 pm - Volatile attributes are not shared between threads, so using them for page counters or holding state between requests will not work (although it will sometimes appear to until your server is under load) % Anonymous User - May 22, 2002 7:18 am: DTMLMethod with a name ending '_alpha' was not rendered at all % Anonymous User - July 17, 2002 1:40 pm: From Zope Maillist: On Tue, 16 Jul 2002, Ross Boylan wrote: > The Zope Developer's Guide and the API docs (Zope 2.5) present > different stories about how to add things to object managers. I don't > really follow what the API stuff is doing. This is a request for > clarification. > > Devguide says do > def addFunction(dispatcher, id): > "Create object and add to self" > p = SomeProduct(id) > dispatcher.Destination()._setObject(id, p) > > This makes sense, though, as commented at > http://www.zope.org//Members/michel/Projects/Interfaces/ObjectManager, > it relies on a private, undocumented method. addFunction is in outer > scope of a module, and is hooked up wtih various calls in ___init__.py. Call this the "add function". Defined by the product, it is passed the dispatcher for the ObjectManager to which the object is being added. As you say, it apparently uses a private function, however despite it's (historical artifact of a) name, it is the proper way to do this operation. And it is documented, in the Dev Guide . > On the other hand, the ObjectManager API says to do > self.manage_addProduct['OFSP'].manage_addFolder(id, title). This is the action that non-Product code uses to add an object from the Product to an arbitrary object manager. 'self' being the object manager in question (eg: when called from an External Method, self will be the folder the External Method was called on). This sequence *calls* the "add function" defined above. In this case, it is calling the add function defined by the Folder object in the OFSP Product. > First, what scope should that be done in? Second, this seems to > create one product (OFSP) and then add a folder to it, so that it > creates two, nested products. Actually, it doesn't. This syntax has bothered me since I first encoutered it, and I'm sure I'm not alone. But we are stuck with it (for now). "manage_addProduct[]" is, essentially, a lookup in a registry keyed by product name. So that part looks up the Product from the registry, and then you have access to the module level functions in that Product, such as the "add function" defined above. > The API for Folder mentions manage_addFolder as a constructor, but > again the scope is unclear to me. Presumably it needs to know what to > add it to, but that is not passed in. You are calling the method on 'self' in the API example, or on some other reference to an ObjectManager in some other context. (Literally 'context' if you were doing this from a pythonscript.) 'manage_addProduct' gets "acquired" (from where I'm not quite sure ), and some magic that I haven't had a need to look in to arranges things so that your add function gets passed a dispatcher that has that ObjectManager as its Destination() as its first argument, followed by whatever arguments (id, title) in the API example) you pass it explicitly. This is an example of Zope2 "magic" that we are trying hard to eliminate from Zope3 . > Finally, the use of id in two places in the first code snippet (one > apparently associated with the container, the other with the object) > seems like an invitation to trouble. Why is it done that way? Tell us about it. This is an old Zope2 (or was it bobo?) design decision that has been revisited in Zope3. In Zope3, only containers know about ids in the general case, not the objects referenced by them. > One reason I want to know this is that I'm considering having a > container that would automatically label (or set id) of its contents > (e.g., 'a' is first, 'b' is second....). > > Thanks for any light you can shed. Hopefully I haven't told you anything untrue up above, but if I have someone will doubtless correct me . --RDM % eckamm - Nov. 11, 2002 10:05 pm: This one has bit me on more than one occassion: manage_add_XYZ_form = DTMLFile('dtml/manage_add_XYZ_form') instead of: manage_add_XYZ_form = DTMLFile('dtml/manage_add_XYZ_form', globals()) The error message is tough to interpret; it looks like an attempt is made to find manage_add_XYZ_form.dtml in {base}/lib/python/dtml/. This may send you on a wild goose chase if you're like me. % slinkp - Mar. 21, 2003 12:53 pm: i just posted this to the zope list... I find "Monkey patches" a useful way to expand or modify functionality provided by zope or 3rd-party products, but I just discovered something very important: it's apparently NOT safe to "refresh" a MonkeyPatch-style product. I have a monkeypatch that works fine until I refresh it, then I get mysterious errors like "Object of type 'None' is not callable" with no indication in the traceback of what object is None or even what's trying to call it! I've spent hours in a debugging session trying to find out what's None and came up with nothing. Then i discovered that if i restart zope, everything's fine. :-P From anja_S@yahoo.de Sun Mar 23 00:34:29 2003 From: anja_S@yahoo.de (Anja Sallborn) Date: Sat, 22 Mar 2003 19:34:29 -0500 Subject: [ZDP] Schau dir das an! Message-ID: <200303230034.h2N0YRp28355@ns2.zope.com> Hi s=FCsser,
Du willst geile Frauen und stehst auf harten Sex?? Kein Problem! Schau di= r einfach meine geilen Seiten an und du wirst dein blaues Wunder erleben!
http://members.lycos= .de/Anja_Sallborn/
=20 Vielleicht k=F6nnen wir uns ja auch mal treffen?!
ciao Anja From webmaster@zope.org Mon Mar 24 21:23:05 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Mon, 24 Mar 2003 16:23:05 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/ZODB Persistent Components Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/Persistence.stx#2-31 --------------- There are two solutions to this problem. First, you can assign a special flag, '_p_changed':: def addDepartment(self, department): self.department.append(department) self._p_changed = 1 % Anonymous User - Mar. 24, 2003 4:23 pm: It says there are "two solutions", and then, "First...". What is the second solution? From Manuel Hidalgo O." Hello, Do you have some document in spanish.. Thank You ____________________________ Manuel Hidalgo O. TI SIDALC Unidad de Informatica, Biblioteca Conmemorativa Orton IICA Tel 5582414 Fax 5560858 http://www.sidalc.net http://www.catie.ac.cr/biblioteca manuel.hidalgo@iica.ac.cr mhidalgo@catie.ac.cr ICQ 14195614 Messenger hotmail hidalgoo@hotmail.com Messenger Yahoo hidalgoo@yahoo.com ------------------------------------------------------------------- Este mensaje fue revisado por F-Secure Antivirus for Internet Mail From webmaster@zope.org Sat Mar 29 05:43:06 2003 From: webmaster@zope.org (webmaster@zope.org) Date: Sat, 29 Mar 2003 00:43:06 -0500 Subject: [ZDP] BackTalk to Document Zope Developer's Guide (2.4 edition)/Zope Development Gotchas (User Contributed) Message-ID: A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZDG/current/Gotchas#0-0 --------------- Here is the place to add comments about "gotchas" related to Zope development. We will try to work these in to the ZDG narrative from time to time. % mcdonc - Jan. 17, 2002 6:23 pm - Methods declared in Product classes must have docstrings to callable by visiting them "through the web" (by calling them up by URL via a browser). % Anonymous User - Feb. 27, 2002 10:52 pm - Volatile attributes are not shared between threads, so using them for page counters or holding state between requests will not work (although it will sometimes appear to until your server is under load) % Anonymous User - May 22, 2002 7:18 am: DTMLMethod with a name ending '_alpha' was not rendered at all % Anonymous User - July 17, 2002 1:40 pm: From Zope Maillist: On Tue, 16 Jul 2002, Ross Boylan wrote: > The Zope Developer's Guide and the API docs (Zope 2.5) present > different stories about how to add things to object managers. I don't > really follow what the API stuff is doing. This is a request for > clarification. > > Devguide says do > def addFunction(dispatcher, id): > "Create object and add to self" > p = SomeProduct(id) > dispatcher.Destination()._setObject(id, p) > > This makes sense, though, as commented at > http://www.zope.org//Members/michel/Projects/Interfaces/ObjectManager, > it relies on a private, undocumented method. addFunction is in outer > scope of a module, and is hooked up wtih various calls in ___init__.py. Call this the "add function". Defined by the product, it is passed the dispatcher for the ObjectManager to which the object is being added. As you say, it apparently uses a private function, however despite it's (historical artifact of a) name, it is the proper way to do this operation. And it is documented, in the Dev Guide . > On the other hand, the ObjectManager API says to do > self.manage_addProduct['OFSP'].manage_addFolder(id, title). This is the action that non-Product code uses to add an object from the Product to an arbitrary object manager. 'self' being the object manager in question (eg: when called from an External Method, self will be the folder the External Method was called on). This sequence *calls* the "add function" defined above. In this case, it is calling the add function defined by the Folder object in the OFSP Product. > First, what scope should that be done in? Second, this seems to > create one product (OFSP) and then add a folder to it, so that it > creates two, nested products. Actually, it doesn't. This syntax has bothered me since I first encoutered it, and I'm sure I'm not alone. But we are stuck with it (for now). "manage_addProduct[]" is, essentially, a lookup in a registry keyed by product name. So that part looks up the Product from the registry, and then you have access to the module level functions in that Product, such as the "add function" defined above. > The API for Folder mentions manage_addFolder as a constructor, but > again the scope is unclear to me. Presumably it needs to know what to > add it to, but that is not passed in. You are calling the method on 'self' in the API example, or on some other reference to an ObjectManager in some other context. (Literally 'context' if you were doing this from a pythonscript.) 'manage_addProduct' gets "acquired" (from where I'm not quite sure ), and some magic that I haven't had a need to look in to arranges things so that your add function gets passed a dispatcher that has that ObjectManager as its Destination() as its first argument, followed by whatever arguments (id, title) in the API example) you pass it explicitly. This is an example of Zope2 "magic" that we are trying hard to eliminate from Zope3 . > Finally, the use of id in two places in the first code snippet (one > apparently associated with the container, the other with the object) > seems like an invitation to trouble. Why is it done that way? Tell us about it. This is an old Zope2 (or was it bobo?) design decision that has been revisited in Zope3. In Zope3, only containers know about ids in the general case, not the objects referenced by them. > One reason I want to know this is that I'm considering having a > container that would automatically label (or set id) of its contents > (e.g., 'a' is first, 'b' is second....). > > Thanks for any light you can shed. Hopefully I haven't told you anything untrue up above, but if I have someone will doubtless correct me . --RDM % eckamm - Nov. 11, 2002 10:05 pm: This one has bit me on more than one occassion: manage_add_XYZ_form = DTMLFile('dtml/manage_add_XYZ_form') instead of: manage_add_XYZ_form = DTMLFile('dtml/manage_add_XYZ_form', globals()) The error message is tough to interpret; it looks like an attempt is made to find manage_add_XYZ_form.dtml in {base}/lib/python/dtml/. This may send you on a wild goose chase if you're like me. % slinkp - Mar. 21, 2003 12:53 pm: i just posted this to the zope list... I find "Monkey patches" a useful way to expand or modify functionality provided by zope or 3rd-party products, but I just discovered something very important: it's apparently NOT safe to "refresh" a MonkeyPatch-style product. I have a monkeypatch that works fine until I refresh it, then I get mysterious errors like "Object of type 'None' is not callable" with no indication in the traceback of what object is None or even what's trying to call it! I've spent hours in a debugging session trying to find out what's None and came up with nothing. Then i discovered that if i restart zope, everything's fine. :-P % Anonymous User - Mar. 29, 2003 12:43 am: slinkp: Yes, that's right, you should never try to refresh monkey patch products. However, I haven't found the right way to spread this warning so that the people who need to know it will hear it. How do you suggest this be documented? Shane Hathaway