More Zope tips

In response to my Zope tips entry the other day, I've received a few more tips and clarifications. Tonico Strasser solved the problem of getting Casey Duncan's ExternalEditor to work with Firebird:

You can get it working with the "Things They Left Out (TTLO)" extension for Firebird: http://cdn.mozdev.org/ttlo/.

Yup. That did the trick. Thanks Tonico! The TTLO extension includes the MIME-type editor that you use to map application/x-zope-edit to the helper app which in turn launches your text editor. I've been doing a bunch of Zope stuff lately, and it just rocks to be able to load Zope objects (Python scripts, HTML and JavaScript files) straight into my text editor of choice (Epsilon) on Windows. (There's a recipe for a MacOS X helper app as well, but I couldn't quite get it to work. If you know where a binary can be found, let me know and I'll post that address.)

The TTLO extension, by the way, brings back some familiar stuff (certificate management, control of HTTP Keep-Alive) but also introduces some Firebird-specific options. You can, for example, tweak the Find As You Type feature. By default, Firebird finds links on the current page that match what you type. You can extend the search to everything on the page by typing a forward slash, but that little extra bit of modality has prevented me from getting over the activation threshold and really using the feature. In TTLO you can turn off the Links Only setting, so that typing in a Web page always searches the complete text of the page. Nice!

In my earlier item I mentioned that it's a challenge to retain the interactivity of Python while working in the Zope environment. Ken Manheimer responded:

There are some great opportunities for interacting with Zope directly from the Python prompt -- I describe a few (in some detail) in a paper I presented at the PyCon DC 2003 conference: http://www.zope.org/Members/klm/ZopeDebugging/ConversingWithZope.

Excellent. In the class I attended, Casey Duncan showed how it's possible to launch an entire instance of Zope interactively at the Python prompt, like so:

app = Zope.app()

I did so, and was able to poke around inside the app object, but the missing ingredient that we didn't have time to explore in the class was the ZEO (Zope Enterprise Objects) "storage server" which enables multiple instances of Zope to communicate with a common object database. It's normally used for high-availability clustering but is also handy for advanced debugging. A ZEO-aware command-line-interactive instance of Zope can share a database with a standard (also ZEO-aware) instance that responds normally to Web requests. Ken's paper gives the recipe for setting up that scenario.


Former URL: http://weblog.infoworld.com/udell/2003/07/29.html#a758