<?xml version="1.0" encoding="utf-8"?> 
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
     version="2.0">

    <channel>
        <title>Berehulyak - Zope</title>
        <link>http://berehulyak.com/blog/zope</link>
        <description></description>
        <language>en-us</language>
        <generator>Plone CMS</generator>
        

        

        
            
                  <item>
                      <title>Zope Hosting and Performance, ZEO</title>
                      <link>http://berehulyak.com/blog/zope/zope-hosting</link>
                      <description>Very nice article about Zope Hosting and Performance from author who provides professional Zope hosting for some years running systems that range in the 2000-3000 hits per minute scale. He  put together some of the stuff He learnt (sometimes the hard way) about Zope performance.</description>
                      
                      
                      <pubDate>Thu, 25 Aug 2005 08:01:53 -0500</pubDate>
                      
     
        <category>zope</category>
     
     
        <category>zope hosting</category>
             
        <content:encoded><![CDATA[<p>Read full article here:<a href="http://hugo.muensterland.org/2005/01/19/zope-hosting-and-performance-english-version/">Zope Hosting and Performance</a></p>
<p>Short part:</p>
<p>Use ZEO. ZEO rocks. Really. In essence it’s just the ZODB with a small communication layer on top. This layer is used in Zope instances instead of using the ZODB directly. That way you can run several process groups on your machine, all connecting to the same database. This helps with the above mentioned process restarting: when one is down, the other does the work. Use mod_backhand in Apache to distribute the load between the process groups or use other load balancing tools. ZEO makes regular database packs easier, too: they run on the server and not in the Zope instances - they actually don’t notice much of the running pack. 
If you have, use a SMP machine. Or buy one. Really - that helps. You need to run ZEO and multiple Zope instances, though - otherwise the global interpreter lock of Python will hit you over the head and Zope will just use one of the two processors. That’s one reason why you want multiple process groups in the first place - distribution of load on the machine itself, making use of multiple processors. </p>
 
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/zope"
                      rel="tag">zope</a></strong>
           
           |&nbsp;
                      <strong><a
    href="http://www.technorati.com/tag/zope+hosting"
    rel="tag">zope hosting</a></strong>
           
     </span>
]]>
</content:encoded>
     

                  </item>
            
        
        
            
                  <item>
                      <title>How to delete spam in COREBlog</title>
                      <link>http://berehulyak.com/blog/zope/COREBlog-spam</link>
                      <description></description>
                      
                      
                      <pubDate>Mon, 22 Aug 2005 06:12:42 -0500</pubDate>
                      
     
        <category>COREBlog</category>
             
        <content:encoded><![CDATA[This recipe and code is based on <a href="http://blog.tcchou.org/code/misc/spameraser">tcchou's work</a>.  <br />
<br />
Briefly analyze Products/COREBlog/COREBlog.py  to determine where to make the following changes.<br />
<br />
<div style="padding-left: 1em; border-left: 1px solid #336699;"><br />
from SpamEraser import SpamEraser<br />
<br />
class COREBlog(ZCatalog.ZCatalog, SpamEraser):<br />
<br />
{'label':'Spam', 'icon':'', 'action':'manage_spamForm', 'target':'manage_main'},<br />
<br />
</div><br />
<br />
Add the following files.<br />
<br />
<div style="padding-left: 1em; border-left: 1px solid #336699;"><br />
/Products/COREBlog/<a href="/Projects/SpamModule/SpamEraser.py">SpamErasor.py</a><br />
<br />
/Products/COREBlog/dtml/<a href="/Projects/SpamModule/manage_spamForm.dtml">manage_spamForm.dtml</a><br />
<br />
</div><br /> 
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/coreblog"
                      rel="tag">COREBlog</a></strong>
           
     </span>
]]>
</content:encoded>
     

                  </item>
            
        
        
            
                  <item>
                      <title>What is Zope</title>
                      <link>http://berehulyak.com/blog/zope/what-is-zope</link>
                      <description>Here is description of Zope found in mailing lists. Author: Terry Hancock.</description>
                      
                      
                      <pubDate>Thu, 07 Jul 2005 03:34:15 -0500</pubDate>
                      
     
        <category>zope</category>
             
        <content:encoded><![CDATA[<h2>Zope is the "Z Object Publishing Environment". </h2>
<p> It publishes a <em>tree</em> of <em>objects</em> stored in the ZODB which is 
an object oriented database.  Think of it as a monstrous pickle 
implementation. </p>
<p>Zope folders are a lot like user-defined classes in your application. 
They contain things, which is why they're called "folders". But 
basically, from a programming perspective, what they contain 
are their "attributes" in the class/object jargon (in reality it can 
be more complicated, some containers use Python container 
types like dictionary or list as their internal structure). </p>
<p>Of course, "publishes" means "publishes to the web". </p>
<h2>Z: </h2>
<p> So Zope includes an <em>object store</em>, a <em>publisher</em>, 
and a <em>web server</em>.   When the web server receives a request, 
it asks the publisher to get it, which digs it out of the object 
store.  Then it goes back the other way, back to the requester 
via the web. </p>
<p>Usually, you run the Zope webserver behind another proxy 
like Apache, but it is possible to serve a site directly from 
Zope.  I never do that for production, because, Apache, being 
much more completely tested is a safer bet for not crashing 
or misbehaving under heavy loads.  However, the built-in 
Zope webserver (I believe it was once called Medusa) is 
quite convenient for development and testing. </p>
<h2>OBJECT: </h2>
<p> Because Zope publishes Python <em>objects</em> instead of  <em>files</em>, 
they can have much richer structure (e.g. metadata) than 
a site based on files stored in a filesystem.  However, a set 
of files stored in a filesystem is very much like an object 
database, so </p>
<p>1) The ZODB is sometimes called the Zope Object FileSystem, 
which I find a useful idea --- especially since ZOFS has some 
extra constraints beyond what ZODB requires. </p>
<p>2) You actually can store contents of the ZODB <em>as</em> a filesystem 
with associated metadata in auxiliary files. I believe this is 
how the "filesystem storage" option for ZODB works (by default, 
ZODB lumps all its data into one big container file "Data.fs" -- 
this is the "filestorage" option). </p>
<h2>PUBLISHING: </h2>
<p> Zope has also been called a "web application server", because 
it's relatively easy to write highly-integrated, highly-dynamic 
sites with it (and overkill to use it for purely static sites). </p>
<p>Objects are defined in such a way that they can be represented 
as web pages.  The publisher has a lot of default behaviors for 
built-in types and the objects that come with Zope. </p>
<p>Zope "product" developers have the responsibility (and control) 
over how their objects will appear when published. </p>
<h2>ENVIRONMENT: </h2>
<p> If you want to think of it as a "web application server", then 
basically, Zope is your "operating system", and your site is 
your "web application software". </p>
<p>Zope also provides some specialized programming language 
help --- Python scripts that can be edited through the web, 
and two "Templating Languages" for designing web pages that 
will have dynamic content.  You can think of the templating 
languages as being similar to PHP or ASP style programming. </p>
<p>But "Zope Zen" says that the serious code should be either 
in Python scripts or in Python products (on the filesystem, 
instead of in the ZODB, like scripts).   Templates are meant 
to be simple, simple, simple.  But that's a style issue. </p>
<p>This stuff provides the Zope "operating system" with a 
"shell".  And the "Zope Management Interface", which is 
what you see when you visit the /manage page at a Zope 
site, is the "window system" or, perhaps more accurately, 
the "file browser" of that "operating system". </p>
<p>So, in fact, Zope does quite a bit.  But it isn't really all 
that hard to understand. It's just not been well-introduced, 
because the people explaining it have a tendency to forget 
that it isn't all obvious, because it seems that way to 
them, now that they know it. </p>
 
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/zope"
                      rel="tag">zope</a></strong>
           
     </span>
]]>
</content:encoded>
     

                  </item>
            
        
        
            
                  <item>
                      <title>Separate Data.fs files for each Zope  instance, cache size</title>
                      <link>http://berehulyak.com/blog/zope/separate-data-fs-cache</link>
                      <description>Running one instance but using a separate db file for each instance. A single zope instance consums less memory. Add and mount a data.fs for every plone instance. It's very easy using zope 2.7:</description>
                      
                      
                      <pubDate>Fri, 10 Jun 2005 05:45:20 -0500</pubDate>
                      
     
        <category>zope</category>
             
        <content:encoded><![CDATA[<pre>
 &lt;zodb_db plone1&gt;
     &lt;filestorage&gt;
       path $INSTANCE/var/Data-plone1.fs
     &lt;/filestorage&gt;
     mount-point /plone1
     cache-size 5000
 &lt;/zodb_db&gt;
</pre>
<p>Restart zope and add a plone site with the id plone1. Note: You must create the folder <em>after</em> adding the moint point.</p>
<p>When using seperate dbs it's <em>very</em> easy to migrate some instances to a second server. You don't need to export a large site but simply copy the files and the sections in the zope.conf</p> 
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/zope"
                      rel="tag">zope</a></strong>
           
     </span>
]]>
</content:encoded>
     

                  </item>
            
        
        
            
                  <item>
                      <title>Zope disadvantages</title>
                      <link>http://berehulyak.com/blog/zope/disadvantages</link>
                      <description>Lennart Regebro welcomes the fact that Zope 3 rewrites many things in Zope that were showing their age. But what won't automatically be solved with Zope 3, he believes, is people's tendency in the Zope community to first of all do things their own way, and secondly, not move these "own ways" into the common codebase, even when they could be of use to others</description>
                      
                      
                      <pubDate>Fri, 15 Apr 2005 06:06:53 -0500</pubDate>
                      
     
        <category>zope</category>
             
        <content:encoded><![CDATA[<p><a class="reference" href="http://blogs.nuxeo.com/sections/blogs/lennart_regebro/2005_04_11_sickness_zope">http://blogs.nuxeo.com/sections/blogs/lennart_regebro/2005_04_11_sickness_zope</a></p>
 
     _____<br />
     tags:
     <span class="simpleBlogBylineCats">
           <strong><a href="http://www.technorati.com/tag/zope"
                      rel="tag">zope</a></strong>
           
     </span>
]]>
</content:encoded>
     

                  </item>
            
        
    </channel>
</rss>

