<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.7 on Sat, 25 May 2002 10:55:41 GMT -->
<rss version="0.92">
	<channel>
		<title>Jon Udell: Zope</title>
		<link>http://radio.weblogs.com/0100887/categories/zope/</link>
		<description></description>
		<copyright>Copyright 2002 Jon Udell</copyright>
		<lastBuildDate>Sat, 25 May 2002 10:55:41 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss092</docs>
		<managingEditor></managingEditor>
		<webMaster></webMaster>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<item>
			<pubDate>5/25/2002; 6:51:07 AM</pubDate>
			<title>Zope Page Templates and DTML</title>
			<link>http://radio.weblogs.com/0100887/categories/zope/2002/05/25.html#a266</link>
			<description>Jeffrey P Shell follows up with more on Zope Page Templates: &lt;b&gt;...&lt;/b&gt;</description>
			<fullitem>&lt;P&gt;Jeffrey P Shell follows up with more on Zope Page Templates:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;EM&gt;Page Templates have a wonderfully clean syntax in the TAL/TALES combination. There are very few TAL attributes, and their operations and operational order are clearly defined. TALES eliminates much of DTML&apos;s guesswork by eliminating the whole &quot;is it an expression? a literal? a name lookup?&quot; game.&lt;/EM&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;I should clarify my &lt;A href=&quot;http://radio.weblogs.com/0100887/2002/05/23.html#a263&quot;&gt;earlier comments&lt;/A&gt; about ZPT. What I do in Zope, nowadays, requires minimal to no design. I have therefore abandoned DTML almost entirely in favor of Python Scripts which are so much cleaner and more powerful. From script, I emit quoted chunks of HTML. This works fine for a simple and purely functional application.&lt;/P&gt;
&lt;P dir=ltr&gt;Writes Jeffrey of DTML:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P dir=ltr&gt;&lt;EM&gt;Its namespace stack is a powerful but often untamed beast, and its full of grotesque shortcuts and workarounds. Anyone who&apos;s seen _[_[&apos;sequence-item&apos;]] knows what I mean.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Yes. I finally decided to just say no to DTML. If and when I need to coordinate with heavily-designed pages, I&apos;ll certainly want to give ZPT a spin. It&apos;s just overkill for my needs right now.&lt;BR&gt;&lt;/P&gt;</fullitem>
			</item>
		<item>
			<pubDate>5/23/2002; 9:08:06 AM</pubDate>
			<title>Zope Page Templates, triangulation, and shared blogspace</title>
			<link>http://radio.weblogs.com/0100887/categories/zope/2002/05/23.html#a263</link>
			<description>&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Jeffrey P Shell gives us a Zope insider&apos;s view of &lt;/FONT&gt;&lt;A href=&quot;http://radio.weblogs.com/0106123/2002/05/22.html#a113&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;working with ZPT&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt; (Zope &lt;/FONT&gt;&lt;A href=&quot;http://www.zope.org/Documentation/Articles/ZPT1&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Page Templates&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;). I&apos;m a Zopista who&apos;s yet to take the plunge into ZPT, &lt;/FONT&gt;&lt;A href=&quot;http://dev.zope.org/Wikis/DevSite/Projects/ZPT/TAL&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;TAL&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;, and &lt;/FONT&gt;&lt;A href=&quot;http://dev.zope.org/Wikis/DevSite/Projects/ZPT/TALES&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;TALES&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;. Jeffrey&apos;s essay confirms for me what I&apos;ve suspected about these technologies: &lt;/FONT&gt; &lt;b&gt;...&lt;/b&gt;</description>
			<fullitem>&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Jeffrey P Shell gives us a Zope insider&apos;s view of &lt;/FONT&gt;&lt;A href=&quot;http://radio.weblogs.com/0106123/2002/05/22.html#a113&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;working with ZPT&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt; (Zope &lt;/FONT&gt;&lt;A href=&quot;http://www.zope.org/Documentation/Articles/ZPT1&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Page Templates&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;). I&apos;m a Zopista who&apos;s yet to take the plunge into ZPT, &lt;/FONT&gt;&lt;A href=&quot;http://dev.zope.org/Wikis/DevSite/Projects/ZPT/TAL&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;TAL&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;, and &lt;/FONT&gt;&lt;A href=&quot;http://dev.zope.org/Wikis/DevSite/Projects/ZPT/TALES&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;TALES&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;. Jeffrey&apos;s essay confirms for me what I&apos;ve suspected about these technologies: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;1. The learning curve (for me) would be fairly steep.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;2. The benefits would be substantial if I had to work closely with a GoLive- or Dreamweaver-based designer.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;We could further &lt;/FONT&gt;&lt;A href=&quot;http://scriptingnews.userland.com/backissues/2002/05/19#l6cc7894806642236e3b8f4b0b7682163&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;triangulate&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt; on this if another ZPT user, ideally one less Zope-savvy than Jeffrey (who used to work for Digital Creations) were to weigh in.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;I can remember debates, a few years ago, about whether and how to implement a rating system for CPAN modules. The problem was (and is) that you go to CPAN, find four modules that address some problem, and can&apos;t easily figure out which would be right for you without investing a lot of time.&amp;nbsp; A formal rating mechanism is fraught with problems. But the informal triangulation effects that we see happening in blogspace are becoming a Googlish solution.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Jeffrey said a while back, of his blogging experience, &quot;&lt;/FONT&gt;&lt;A href=&quot;http://radio.weblogs.com/0106123/2002/05/09.html#a99&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;the sense of community hasn&apos;t really hit me yet&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;.&quot; Understood. It&apos;s more of an act of faith than it should be, right now, to put stuff out there as you&apos;ve been doing. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;A next level of organization will happen. Ad-hoc blog registries will surely emerge, around topics like Zope, and will restore some of the architecture of shared public space that we are currently sacrificing in order to make progress in other ways. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Meanwhile I very much appreciate that Jeffrey has opened a window into his always-agile mind. I know others do too.&lt;/FONT&gt;&lt;/P&gt;</fullitem>
			<source url="http://radio.weblogs.com/0106123/rss.xml">Industrie Toulouse</source>
			</item>
		<item>
			<pubDate>4/18/2002; 3:39:10 PM</pubDate>
			<title>Jeffrey P Shell, Zope's lizard brain, and loosely-coupled messaging</title>
			<link>http://radio.weblogs.com/0100887/categories/zope/2002/04/18.html#a197</link>
			<description>I had a nice response to a recent &lt;A href=&quot;http://www.byte.com/documents/byt1018644007316/&quot;&gt;column on Zope&lt;/A&gt; from Jeffrey P Shell, a longtime Zopista and former Digital Creations guy who has decamped&amp;nbsp;to&amp;nbsp;the skiiing life in Utah. Jeffrey wrote one of the first BYTE columns on Python, longer ago than the web seems to remember. Anyway, in my column I talked about scripting Zope from the outside, using the RESTian approach of reverse-engineering its HTML management forms and calling them as URLs. I knew that XML-RPC was another way to do this. Jeffrey pointed out a third, little-known approach that taps into Zope&apos;s &quot;lizard brain.&quot;  &lt;b&gt;...&lt;/b&gt;</description>
			<fullitem>&lt;P&gt;I had a nice response to a recent &lt;A href=&quot;http://www.byte.com/documents/byt1018644007316/&quot;&gt;column on Zope&lt;/A&gt; from Jeffrey P Shell, a longtime Zopista and former Digital Creations guy who has decamped&amp;nbsp;to&amp;nbsp;the skiiing life in Utah. Jeffrey wrote one of the first BYTE columns on Python, longer ago than the web seems to remember. Anyway, in my column I talked about scripting Zope from the outside, using the RESTian approach of reverse-engineering its HTML management forms and calling them as URLs. I knew that XML-RPC was another way to do this. Jeffrey pointed out a third, little-known approach that taps into Zope&apos;s &quot;lizard brain.&quot; &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;&lt;EM&gt;Did you know that Zope has always had a simple RPC mechanism, predating XML-RPC, and even predating Zope itself? There was a little piece of Bobo, which is now ZPublisher, called &apos;bci&apos; for &apos;Bobo Call Interface&apos;. I&apos;m almost ashamed that more wasn&apos;t done to promote BCI, or turn it into an actual RPC mechanism (it doesn&apos;t marshal return data), because XML-RPC, while simple, is just a little too simple (no concept of None/NIL? No concept of authentication except as part of the API?). And SOAP.. *sigh*.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Anyways, ZPublisher.Client (which can be used without any other Zope modules, so you could install a copy of it into a common place) is another wy to do that Perl script that you wrote, while maintaining a cleaner syntax than writing a long URL. It basically generates the same URL (with all of the correct Zope marshalling, although I don&apos;t know if it knows of the more recent marshalling options) and does the same job.&lt;/EM&gt;&lt;/P&gt;&lt;PRE&gt;&lt;EM&gt;&lt;FONT face=Verdana&gt;from ZPublisher.Client import Object myCatalog = Object (&lt;BR&gt;&amp;nbsp; &lt;A href=&quot;http://host:port/repository/myCatalog&quot;&gt;&lt;a href=&quot;http://host:port/repository/myCatalog&quot;&gt;http://host:port/repository/myCatalog&lt;/a&gt;&lt;/A&gt;) &lt;BR&gt;myCatalog.manage_catalogFoundItems( &lt;BR&gt;&amp;nbsp; obj_metatype=[&apos;Image&apos;, &apos;File&apos;], &lt;BR&gt;&amp;nbsp; obj_permission=&quot;Access contents information&quot;, &lt;BR&gt;&amp;nbsp; search_sub=1, btn_submit=&quot;Find and Catalog&quot;&lt;BR&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;EM&gt;You can see the similarities to XML-RPC, which you might even be able to use in this situation, but there are some niceties about BCI. When constructing a ZPublisher.Client.Object or ZPublisher.Client.Function method, you can specify a username and password and you will be authenticated over Basic Auth. You can specify which HTTP method to use (GET/POST/PUT). You can upload files just by passing a Python file object (basically anything with a &apos;read()&apos; method).&amp;nbsp; You can also catch remote exceptions. While I recognize that XML-RPC has the concept of &apos;fault&apos;, for more intimate Zope scripting, sometimes more knowledge of the cause of the fault is required. This is the only real marshalled data that ZPublisher.Client (BCI) sends back.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Cool! By the way, Jeffrey is trying out &lt;A href=&quot;http://radio.weblogs.com/0106123/&quot;&gt;a blog&lt;/A&gt;. I hope he sticks with it. He&apos;s a wonderfully thoughtful and articulate writer, and a really clever guy.&amp;nbsp; l&amp;nbsp; bet he&apos;ll have OmiOutliner hooked in before long.&lt;/P&gt;
&lt;P dir=ltr&gt;Looking into blogspace with fresh eyes, Jeffrey wondered &quot;Why write when there&apos;s so much else to do? Who&apos;s reading?&quot; &lt;/P&gt;
&lt;P dir=ltr&gt;These are&amp;nbsp;great questions. I of course get paid for my writing, though not for what I write here. But what about most folks? Why write? Who will read? Lots of people have lots of different reasons. For me, it&apos;s&amp;nbsp;mainly about optimizing information flow and managing attention.&amp;nbsp;In a &lt;A href=&quot;http://www.byte.com/documents/byt20010524s0001/&quot;&gt;recent column&lt;/A&gt; I explored the idea of storytelling as a tool for project coordination. That&apos;s closely related to what Dave Winer means&amp;nbsp;by &quot;narrating work&quot; (and is demonstrating in his outline). We do this narration all the time in interpersonal email. Something interesting happens when we instead write &lt;A href=&quot;http://radio.weblogs.com/0100887/2002/01/23.html#a35&quot;&gt;messages addressed to spaces&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr&gt;Defining why it&apos;s interesting is&amp;nbsp;hard to do. But I&apos;m closing in on it. Today I realized the following &lt;A href=&quot;http://www.byte.com/documents/byt1016214357418/&quot;&gt;analogy&lt;/A&gt; may hold:&amp;nbsp;loosely-coupled message-driven architecture,&amp;nbsp;the&amp;nbsp;mantra of the web services movement, is precisely what blogspace is becoming for the realm of human communication. When we adopt this style of communication, we give up some of the benefits of tight coupling: message acknowledgement, tight feedback loops. But we gain (maybe) the ability to scale beyond what is possible when tightly-coupled messaging (email, discussion groups) is the only available mode. This doesn&apos;t mean there&apos;s no benefit to tightly-coupled interpersonal messaging.&amp;nbsp;It only suggests that the loosely-coupled mode is also important.&lt;/P&gt;</fullitem>
			</item>
		</channel>
	</rss>
