[Checkins] SVN: zope2book/trunk/ Added simple Sphinx setup and converted the introduction chapter manually to reST

Hanno Schlichting plone at hannosch.info
Tue Feb 10 07:16:58 EST 2009


Log message for revision 96383:
  Added simple Sphinx setup and converted the introduction chapter manually to reST
  

Changed:
  _U  zope2book/trunk/
  D   zope2book/trunk/IntroducingZope.stx
  A   zope2book/trunk/Makefile
  D   zope2book/trunk/Preface.rst
  A   zope2book/trunk/README.txt
  A   zope2book/trunk/source/
  A   zope2book/trunk/source/Contributions.rst
  A   zope2book/trunk/source/IntroducingZope.rst
  A   zope2book/trunk/source/Preface.rst
  A   zope2book/trunk/source/_static/
  A   zope2book/trunk/source/_templates/
  A   zope2book/trunk/source/conf.py
  A   zope2book/trunk/source/index.rst

-=-

Property changes on: zope2book/trunk
___________________________________________________________________
Added: svn:ignore
   + develop-eggs
eggs
fake-eggs
bin
parts
downloads
var
build
dist
local.cfg
*.egg-info
.installed.cfg
*.pyc
.Python
include
lib


Deleted: zope2book/trunk/IntroducingZope.stx
===================================================================
--- zope2book/trunk/IntroducingZope.stx	2009-02-10 12:08:12 UTC (rev 96382)
+++ zope2book/trunk/IntroducingZope.stx	2009-02-10 12:16:58 UTC (rev 96383)
@@ -1,463 +0,0 @@
-Introducing Zope
-
-  Zope is a framework that allows developers of varying skill levels to
-  build *web applications*.  This chapter explains Zope's purpose, what
-  problems it solves and what audience it targets in greater detail.
-  It also describes what makes Zope different and more powerful than
-  similar applications.
-
-  *NOTE*: The moniker "Zope" stands for the *Z Object Publishing
-  Environment* (the "Z" doesn't really mean anything in particular).
-
-  The Static Web Site Dilemma
-
-    When a company or organization goes through the process of
-    developing and eventually deploying a website, one its most
-    important goals is to present timely and
-    up-to-date information to its website visitors.
-
-    Let us consider two examples of such time-dependent sites:
-
-    - a stock market information site that needs to be updated with
-      new information continually, maybe as often as every five or 10
-      minutes. It will also present information tailored to each
-      visitor's preferred settings (portfolios, stocks to follow, etc.)
-
-    - a commercial website that helps its visitors sell and buy used
-      automobiles. It is usually required that such a site run
-      advertisements only for cars that have not yet been sold.  It is
-      also important that new ads be posted immediately after
-      they've been placed by a seller.
-
-    These two examples describe two very different sites that
-    nevertheless have one basic requirement in common: automated and
-    periodic updates of the information presented. If this single
-    requirement is not met, these sites will likely be
-    unsuccessful.
-
-    So, how does Zope work to fulfill such a requirement? To understand
-    this, we need to consider how websites are perceived by their
-    visitors and the basic ways in which websites can be constructed.
-
-    In general, many website visitors think about navigation in terms
-    of moving "from page-to-page" within a website.  When they click
-    a hyperlink, their browser transports them to a new page.  When they
-    hit their browser's *back* button, they are returned to the last page
-    they visited, and so on.
-
-    Some websites are *static*. A static website stores its
-    information in files on a web server. Each file then represents a
-    complete page on the website. This may seem like a simple and
-    efficient way of creating a website; however, *updating the
-    information* within those pages becomes a problem when the site consists of
-    more than a few pages, and the pages, or parts of the pages, need to be updated 
-    frequently.
-
-    The layout of text and images that are displayed in a user's web browser
-    when the user visits a website are commonly composed in a simple
-    language known as Hyper Text Markup Language (HTML). When a user
-    visits a typical website, a chunk of text that is "marked-up"
-    with formatting in HTML is transferred between the website and the user's
-    browser. The browser interprets the chunk of text and displays text
-    and images to the user.  The chunk of text which is transferred is
-    typically referred to as a *page*.
-
-    To achieve this, the static website requires a person with a
-    privileged level of access (sometimes termed the *webmaster*) to
-    manually create and update the site's content.
-
-    Typically, this is done by editing a set of text-based files on the *web
-    server* (the machine that runs the website), where each file
-    represents a single page. In some cases, a site-wide change to the "look-and-feel"
-    of a static website requires that the webmaster visit and update
-    each and every file that comprises the website.
-
-    The webmaster responsible for our automobile advertising website
-    has the additional responsibility of keeping the ads themselves
-    fresh.  If each page in the website represents an ad for a
-    particular automobile, he needs to delete the pages representing
-    ads that have expired and create new pages for ads that have been
-    recently sold.  He then needs to make sure that no hyperlinks on
-    other pages point to any of these deleted pages.
-
-    Obviously, this quickly becomes a lot of work.  With any more than a 
-    few pages to update each day, this type of repetitive work 
-    can become pretty dull.  In addition, being a human being, the webmaster 
-    may also make mistakes, such as forgetting to update or remove
-    critical pages.  While updating a static website with only 10 to 20
-    pages might be dull, it's perfectly manageable.  However, websites
-    can typically grow to encompass thousands of files, making the
-    process of "timely updates" a non-trivial (and sometimes
-    impossible) task.
-
-    Somewhere down the line, smart webmasters begin to think to
-    themselves, "Wow, this is a lot of work.  It's tedious and
-    complicated, and I seem to be making a lot of mistakes.  Computers
-    are really good at doing tedious and complicated tasks, and they
-    don't make very many mistakes.  I bet my web server computer could
-    automatically do a lot of the work I now do manually."  And he would 
-    be right.
-
-    At this point, the webmaster is ready to be introduced to *web
-    applications*. It is in this area where Zope's strength and power
-    becomes clear.
-
-  What Is A Web Application?
-
-    A *web application* is a computer program that users invoke by
-    using a web browser to contact a web server via the Internet. Users
-    and browsers are typically unaware of the difference between
-    a web server that fronts a statically-built website
-    and one that fronts a web application.  But unlike a
-    static website, a web application creates its "pages"
-    *dynamically*, or on-the-fly, upon request.  A website that is dynamically-
-    constructed uses an a computer program to provide its content.
-    These kinds of dynamic applications can be written in any number of
-    computer languages.
-
-    Web applications are everywhere.  Common examples of web
-    applications are those that let you search the web, like *Google*;
-    collaborate on projects, like *SourceForge* or *ProjectPlace*; buy
-    items at an auction, like *eBay*; communicate with other people over
-    e-mail, like *Hotmail*; or view the latest news ala *CNN.com*.
-
-    In a dynamically-constructed website, the webmaster is not
-    required to visit the site "page-by-page" in order to update its
-    content or style.  Instead, he is able to instruct the web server
-    to *generate the site's HTML pages dynamically*, where each page is
-    made up of different bits of content. While each bit of content is
-    unique, each can nevertheless appear in several pages if so 
-    instructed by the web server. In this way, the webmaster is able to create
-    a common "look and feel" for the set of pages that make up his
-    site. The software on the web server that generates these
-    pages is the web application.
-
-    If our auto-classifieds webmaster chose to construct a web
-    application to maintain his classifieds system, he could maintain a
-    list of "current" ads separate from the HTML pages, perhaps stored
-    in a database of some kind.  He could then instruct his web
-    application to query this database and generate a particular chunk
-    of HTML that represented an ad, or an index of ads, when a user
-    visited a page in his website.
-
-    A framework that allows people to construct a web application is
-    often called a *web application server*, or sometimes just an
-    *application server*.  Zope is a web application server, as are
-    competing products like "BEA WebLogic":http://www.bea.com/,
-    "Macromedia ColdFusion":http://www.macromedia.com/, and (to some
-    extent) "Vignette StoryServer":http://www.vignette.com/.
-
-    Zope is a web application server, which is not
-    a web application in itself; rather it is *framework that allows
-    people to construct web applications*. Sometimes this framework is
-    called an *application server*.
-
-    Using some common computer programming language, an application
-    server typically allows a developer to create a web application,
-    but it also provides services *beyond* the basic capabilities of
-    the programming language used. Examples of such services are web
-    page template creation facilities, a common security model, data
-    persistence, sessions, and other features that people find useful
-    when constructing a typical web application.
-
-
-  How You Can Benefit From Using An Application Server
-
-    If you are considering writing even a moderately-sized web
-    application, it is typically a good idea to start your project
-    using an application server framework, unless your application
-    requirements are extremely specialized.  By starting a web
-    application project with an application server framework (as
-    opposed to a "raw" computer language, such as Java, Perl, Python, or
-    C), you are able to utilize the services of the framework that have
-    already been written and proven to work, and you avoid the need to
-    write the functionality yourself "from scratch" in a "raw"
-    language.
-
-    Many application servers allow you to perform some of the following tasks:
-
-    Present Dynamic Content -- You may tailor your web site's
-    presentation to its users and provide users with search features.
-    Application servers allow you to serve dynamic content and typically come with facilities for
-    personalization, database integration, content indexing, and
-    searching.
-
-    Manage Your Web Site -- A small web site is easy to manage, but a
-    web site that serves thousands of documents, images, and files
-    requires heavy-duty management tools. It is useful to be able to
-    manage your site's data, business logic, and presentation from a
-    single place.  An application server can typically help manage
-    your content and presentation in this way.
-
-    Build a Content Management System -- A fairly new breed of
-    application, a *content management system* allows non-technical
-    editors to create and manage content for your website.  Application 
-    servers provide the tools with which you can build a
-    content management system.
-
-    Build an E-Commerce Application -- Application servers provide a
-    framework in which sophisticated e-commerce applications can be
-    created.
-
-    Securely Manage Contributor Responsibility -- When you deal with
-    more than a handful of web users, security becomes very important.
-    You must be able to safely delegate tasks to different
-    classes of system users. For example, folks in your engineering
-    department may need to be able to manage their web pages and
-    business logic, designers may need to update site templates, and
-    database administrators need to manage database queries.
-    Application servers typically provide a mechanism for access
-    control and delegation.
-
-    Provide Network Services -- You may want to produce or consume
-    *network services*.  A network service-enabled web site must
-    to be able to accept requests from other computer programs.  For
-    example, if you're building a news site, you may wish to share
-    your news stories with another site; you can do this by making
-    the news feed a network service.  Or perhaps you want to make
-    products for sale on your site automatically searchable from a
-    product comparison site.  Application servers 
-    offer methods for enabling these kinds of network services.
-
-    Integrate Diverse Systems -- Your existing content may be
-    contained in many places: relational databases, files, separate
-    web sites, and so on.  Application servers typically allow you
-    to present a unified view of your existing data by integrating
-    diverse, third-party systems.
-
-    Provide Scalability -- Application servers allow your web
-    applications to scale across as many systems as necessary to
-    handle the load demands of your sites.
-
-    The Zope application server allows you to perform all of these
-    tasks.
-
-  Why Use Zope Instead of Another Application Server
-
-    If you're in the business of creating web applications, Zope can
-    potentially help you create them at less cost and at a faster rate
-    than you could by using another competing web application server.
-    This claim is backed by a number of Zope features:
-
-    - Zope is free of cost and distributed under an open-source
-      license.  There are many non-free commercial application servers
-      that are relatively expensive.
-
-    - Zope itself is an inclusive platform.  It ships with all the
-      necessary components to begin developing an application.  You
-      don't need to license extra software to support Zope (e.g., a
-      relational database) in order to develop your application.  This
-      also makes Zope very easy to install.  Many other application
-      servers have "hidden" costs by requiring that you license
-      expensive software or configure complex, third-party
-      infrastructure software before you can begin to develop your
-      application.
-
-    - Zope allows and encourages third-party developers to package and
-      distribute ready-made applications.  Due to this, Zope has a
-      wide variety of integrated services and add-on products
-      available for immediate use.  Most of these components, like
-      Zope itself, are free and open-source.  Zope's popularity has
-      bred a large community of application developers.  Many other
-      application servers do not have a large base of third-party
-      support or a means by which plug-ins are so neatly packaged.
-
-    - Applications created in Zope can scale almost linearly using
-      Zope's built-in "Zope Enterprise Objects" (ZEO) clustering
-      solution.  Using ZEO, you can deploy a Zope application across
-      many physical computers without needing to change much (if any)
-      of your application code.  Many application servers don't scale
-      quite as transparently or as predictably.
-
-    - Zope allows developers to create web applications using only a
-      web browser.  The Internet Explorer, Mozilla, Netscape, OmniWeb,
-      Konqueror, and Opera browsers are all known to be able to both
-      display and manipulate Zope's development environment
-      (the *Zope Management Interface*, also known as the *ZMI*).  Zope
-      also allows developers to safely delegate application
-      development duties to other developers "through the web" using
-      the same interface.  Very few other application servers, if any,
-      deliver the same level of web functionality.
-
-    - Zope provides a granular and extensible security framework.  You
-      can easily integrate Zope with diverse authentication and
-      authorization systems, such as LDAP, Kerberos, and RADIUS,
-      simultaneously and using pre-built modules.  Many other application
-      servers lack support for important authentication and
-      authorization systems.
-
-    - Zope allows teams of developers to collaborate effectively.
-      Collaborative environments require tools that allow users to work
-      without interfering with each other.  Zope has *Undo*,
-      *Versions*, *History*, and other tools to help people work safely
-      together and recover from mistakes.  Many other application
-      servers do not provide these kinds of features.
-
-    - Zope runs on most popular microcomputer operating system
-      platforms: Linux, Windows, Solaris, FreeBSD, NetBSD,
-      OpenBSD, and Mac OS X.  Many
-      other application server platforms require that you run an
-      operating system of their licensor's choosing.
-
-    - Zope can be extended using the interpreted
-      "Python":http://www.python.org scripting language.  Python is
-      popular and easy to learn, and it promotes rapid development.
-      Many libraries are available for Python that can be used when
-      creating your own application.  Many other application servers
-      must be extended using compiled languages, such as Java, which
-      cuts down on development speed.  Many other application servers
-      use less popular languages for which there are not as many
-      ready-to-use library features.
-
-    For examples of applications that have already been created using
-    Zope, please see Zope Corporation's "case studies
-    page":http://www.zope.com/CaseStudies online at Zope.com.
-
-  Zope Audiences and What Zope Isn't
-
-    Managing the development process of a large-scale site can be a
-    difficult task. It often takes many people working together to
-    create, deploy, and manage a web application.
-
-      o *Information Architects* make platform decisions and keep track
-        of the "big picture".
-
-      o *Component Developers* create software intended for reuse and
-        distribution.
-
-      o *Site Developers* integrate the software written by component
-        developers and native application server services, building an
-        application in the process.
-
-      o *Site Designers* create the site's look and feel.
-
-      o *Content Managers* create and manage the site's content.
-
-      o *Administrators* keep the software and environment running.
-
-      o *Consumers* use the site to locate and work with useful
-      content.
-
-    Of the parties listed above, Zope is most useful for *component
-    developers*, *site developers*, and *site designers*.  These three
-    groups can collaborate to produce an application using
-    Zope's native services and third-party Zope *Products*.  They 
-    typically produce applications useful to *content managers* and
-    *consumers* under the guide of the *information architect*.
-    *Administrators* deploy the application and tend to the
-    application after it is has been created.
-
-    Note that Zope is a web application construction framework that
-    programmers of varying skill levels may use to create web-based
-    applications.  It *is not* itself an application that is ready to
-    use "out of the box" for any given application.  For example, Zope
-    itself is not a blog, a content management system, or a
-    "e-shop-in-a-box" application.
-
-    However, freely available *Products* built on top of Zope offer
-    these kinds of services.  At the time of this writing, the
-    Zope.org website catalogs roughly 300 Products that you can
-    "browse":http://www.zope.org/Products and even reuse in your
-    own applications.  These include Products for blogging, content
-    management, and internationalization, and e-commerce.
-
-    Zope is not a visual design tool.  Tools like Macromedia
-    Dreamweaver and Adobe GoLive allow designers to create "look and
-    feel".  You may use these tools to successfully manage Zope-based
-    web sites, but Zope itself does not replace them.  You can edit
-    content "through the web" using Zope, but the limitations of current
-    cross-platform browser technology prevent Zope from doing as good
-    a job as these kinds of tools for designing web presentation.
-
-  Introduction to Zope Maintenance and The Zope Community
-
-    A community of developers is responsible for maintaining and
-    extending the Zope application server.  Many community members are
-    professional consultants, developers, and webmasters who develop
-    applications using Zope for their own gain.  Others are students
-    and curious amateur site developers.  Zope Corporation is a member
-    of this community.
-
-    Zope Corporation controls the distribution of the defacto,
-    "canonical", official Zope version, and permits its developers, as
-    well as other selected developers, to modify the distribution's
-    source code.
-
-    The Zope community gets together occasionally at conferences, but it
-    commonly discusses all things Zope on the many Zope mailing
-    lists and web sites. You can find out more about Zope-related
-    mailing lists at "Zope.org's mailing list
-    page":http://www.zope.org/Resources/MailingLists.
-
-    Zope Corporation makes its revenue by using Zope to create web
-    applications for its paying customers, by training prospective
-    Zope developers, by selling support contracts to companies who use
-    Zope, and by hosting Zope-powered websites; it does not make any
-    direct revenues from the distribution of the Zope application
-    server itself.
-
-  Zope's Terms of Use and License
-
-    Zope is free of cost. You are permitted to use Zope to create and
-    run your web applications without paying licensing or usage fees.
-    You may also include Zope in your own products and applications
-    without paying royalty fees to Zope's licensor, *Zope Corporation*.
-
-    Zope is distributed under an open source license, the "Zope Public
-    License or 'ZPL'":http://www.zope.org/Resources/License .  The
-    terms of the ZPL license stipulate that you will be able to obtain
-    and modify the source code for Zope.
-
-    The ZPL is different than another popular open source license, the
-    "GNU Public License":http://www.gnu.org .  The licensing terms of
-    the GPL require that if you intend to redistribute a GPL-licensed
-    application, and you modify or extend the application in a
-    meaningful way, when you "redistribute":
-    http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
-    a GPL-licensed application, you must distribute it under the terms
-    of the GPL, including licensing any modifications or extensions
-    you make under the GPL.  You must also provide the full source
-    code, including source for your modifications.
-
-    However, this is *not* required for ZPL-licensed applications.
-    You may modify and redistribute Zope without contributing your
-    modifications back to Zope Corporation, as long as you follow the
-    other terms of the license faithfully.
-
-    Note that the ZPL has been
-    "certified":http://www.opensource.org/licenses/zpl.php as
-    "OSD":http://www.opensource.org/docs/definition.html compliant by
-    the "Open Source Initiative":http://www.opensource.org/ and is
-    listed as "GPL compliant":
-
-    http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses
-    by the "Free Software Foundation":http://www.fsf.org/ .
-
-  Zope History
-
-
-    In 1996, Jim Fulton (the current CTO of Zope Corporation, the
-    distributors of Zope) was drafted to teach a class on CGI
-    programming, despite not knowing very much about the subject.  CGI,
-    or *common gateway interface*, programming is a commonly-used web
-    development model that allows developers to construct dynamic
-    websites.  Jim studied all of the existing documentation on CGI on
-    his way to the class.  On the way back from the class, Jim
-    considered what he didn't like about traditional, CGI-based
-    programming environments.  From these initial musings, the core of
-    Zope was written on the plane flight back from the class.
-
-    Zope Corporation (then known as Digital Creations) went on to
-    release three open-source software packages to support web
-    publishing: *Bobo*, *Document Template*, and *BoboPOS*.  These
-    packages were written in a language called Python, and respectively
-    provided a web publishing facility, text templating, and an object
-    database.  Digital Creations developed a commercial
-    application server based on their three open-source components.
-    This product was called *Principia*.  In November of 1998,
-    investor Hadar Pedhazur convinced Digital Creations to open source
-    Principia.  These packages have evolved into what today are the
-    core components of Zope.
-
-    Most of Zope is written in the "Python":http://www.python.org
-    scripting language, with performance-critical pieces written in C.

Added: zope2book/trunk/Makefile
===================================================================
--- zope2book/trunk/Makefile	                        (rev 0)
+++ zope2book/trunk/Makefile	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,75 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html      to make standalone HTML files"
+	@echo "  pickle    to make pickle files"
+	@echo "  json      to make JSON files"
+	@echo "  htmlhelp  to make HTML files and a HTML help project"
+	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  changes   to make an overview over all changed/added/deprecated items"
+	@echo "  linkcheck to check all external links for integrity"
+
+clean:
+	-rm -rf build/*
+
+html:
+	mkdir -p build/html build/doctrees
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
+	@echo
+	@echo "Build finished. The HTML pages are in build/html."
+
+pickle:
+	mkdir -p build/pickle build/doctrees
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+web: pickle
+
+json:
+	mkdir -p build/json build/doctrees
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	mkdir -p build/htmlhelp build/doctrees
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in build/htmlhelp."
+
+latex:
+	mkdir -p build/latex build/doctrees
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in build/latex."
+	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+	      "run these through (pdf)latex."
+
+changes:
+	mkdir -p build/changes build/doctrees
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
+	@echo
+	@echo "The overview file is in build/changes."
+
+linkcheck:
+	mkdir -p build/linkcheck build/doctrees
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in build/linkcheck/output.txt."


Property changes on: zope2book/trunk/Makefile
___________________________________________________________________
Added: svn:eol-style
   + native

Deleted: zope2book/trunk/Preface.rst
===================================================================
--- zope2book/trunk/Preface.rst	2009-02-10 12:08:12 UTC (rev 96382)
+++ zope2book/trunk/Preface.rst	2009-02-10 12:16:58 UTC (rev 96383)
@@ -1,267 +0,0 @@
-Preface
-=======
-
-Welcome to *The Zope Book*.  This book is designed to introduce you
-to ``Zope``, an open-source web application server.
-
-To make effective use of the book, you should know how to use a web
-browser and have a basic understanding of the ``Hyper
-Text Markup Language`` (HTML) and ``Uniform Resource Locators`` (URLs).
-
-You don't need to be a highly-skilled programmer in order to use Zope,
-but you may find the understanding of some programming concepts (particularly
-in object-oriented programming) to be extremely helpful.
-
-How the Book Is Organized
--------------------------
-
-This book is laid out in the following chapters:
-
-1. Introducing Zope
-
-    This chapter explains what Zope is and what it can do for you.
-    You'll also learn about the differences between Zope and other
-    web application servers.
-
-2. Zope Concepts and Architecture
-
-    This chapter explains fundamental Zope concepts and describes
-    the basics about Zope's architecture.
-
-3. Installing and Starting Zope
-
-    This chapter explains how to install and start Zope for the
-    first time.  By the end of this chapter, you will have Zope
-    installed and working.
-
-4. Object Orientation
-
-    This chapter explains the concept of *object orientation*,
-    which is the development methodology most often used to
-    create Zope applications.
-
-5. Using the Zope Management Interface
-
-    This chapter explains how to use Zope's web-based management
-    interface. By the end of this chapter, you will be able to
-    navigate around the Zope object space, copy and move objects,
-    and use other basic Zope features.
-
-6. Using Basic Zope Objects
-
-    This chapter introduces *objects*, which are the most
-    important elements of Zope.  You'll learn the basic Zope
-    objects: content objects, presentation objects, and logic
-    objects, and you'll build a simple application using these
-    objects.
-
-7. Acquisition
-
-    This chapter introduces *acquisition*, which is Zope's
-    mechanism for sharing site behavior and content.
-
-8. Basic DTML
-
-    This chapter introduces *DTML*, Zope's tag-based scripting
-    language.  You'll learn DTML syntax, its basic tags, 
-    and how to use DTML templates and
-    scripting facilities.  After reading this chapter,
-    you'll be able to create dynamic web pages.
-
-9. Using Zope Page Templates
-
-    This chapter introduces *Zope Page Templates*, another Zope tool
-    used to create dynamic web pages. You will learn about basic
-    template statements that let you insert dynamic content, and how
-    to create and edit page templates.
-
-10. Creating Basic Zope Applications  
-
-    This chapter presents several real-world
-    examples of building a Zope application.  You'll learn how to
-    use basic Zope objects and how they can work together to form
-    basic applications.
-
-11. Users and Security
-
-    This chapter looks at how Zope handles users, authentication,
-    authorization, and other security-related matters.
-
-12. Advanced DTML
-
-    This chapter takes a closer look at DTML. You'll learn about DTML
-    security, the tricky issue of how variables are looked up
-    in DTML, advanced use of basic tags, 
-    and the myriad of special purpose tags.
-
-13. Advanced Page Templates
-
-    This chapter goes into more depth with Zope Page Templates. You will learn 
-    all about template statements, expression
-    types, and macros, which let you reuse presentation
-    elements.
-
-14. Advanced Zope Scripting
-
-    This chapter covers scripting Zope with Python and Perl.  You will learn
-    how to write business logic in Zope using tools more
-    powerful than DTML, about the idea of *scripts* in
-    Zope, and about Python and Perl-based scripts.  This
-    chapter shows you how to add industrial-strength scripting to
-    your site.
-
-17. Zope Services
-
-    This chapter covers Zope objects that are considered "services," which
-    don't readily fit into any of the basic "content,"
-    "presentation," or "logic" object groups.
-
-15. Searching and Categorizing Content
-
-    This chapter shows you how to index and search objects with
-    Zope's built-in search engine: the *Catalog*. You'll learn about 
-    indexing concepts, different patterns for
-    indexing and searching, metadata, and
-    search results. 
-
-16. Relational Database Connectivity
-
-    This chapter describes how Zope connects to external
-    relational databases.  You'll learn about features that allow you
-    to treat relational data as though it were Zope
-    objects, and security and performance
-    considerations.
-
-17. Virtual Hosting Services
-
-    This chapter explains how to set up Zope in a "virtual hosting"
-    environment, in which Zope sub-folders can be served as "top-level"
-    host names.  It includes examples that allow virtual hosting to
-    be performed either "natively" or using Apache's 'mod_rewrite'
-    facility.
-
-18. Sessions
-
-    This chapter describes Zope's "sessioning" services, which allow
-    Zope developers to "keep state" between HTTP requests.
-
-19. Scalability and ZEO
-
-    This chapter covers issues and solutions for building and
-    maintaining large web applications, and focuses on issues of
-    management and scalability. In particular, the Zope Enterprise
-    Option (ZEO) is covered in detail.  You'll learn about the
-    tools and techniques needed to turn a small site into a
-    large-scale site, servicing many simultaneous visitors.
-
-20. Managing Zope Objects Using External Tools
-
-    This chapter explains how to use tools outside of your web
-    browser to manipulate Zope objects.
-
-21. Extending Zope
-
-    This chapter covers extending Zope by creating your own
-    classes of objects. You'll learn about *ZClasses*, how instances
-    are built from classes, and how to build a ZClass and
-    its attendant security and design issues.  You'll also learn how to create 
-    Python base classes for ZClasses, and about 
-    the base classes that ship with Zope.
-
-22. Maintaining Zope
-
-    This chapter covers Zope maintenance and administration tasks,
-    such as database "packing" and Product installation.
-
-23. Appendix A: DTML Reference
-
-    Reference of DTML syntax and commands.
-
-24. Appendix B:  API Reference
-
-    Reference of Zope object APIs.
-
-25. Appendix C:  Page Template Reference
-
-    Reference of Zope Page Template syntax and commands.
-
-25. Appendix D:  Zope Resources
-
-    Reference of "resources" which can be used to further enhance
-    your Zope learning experience.
-
-26. Appendix E: DTML Name Lookup Rules
-    Describes DTML's name lookup rules.
-
-Conventions Used in This Book
------------------------------
-
-This book uses the following typographical conventions:
-
-*Italic*
-  Italics indicate variables and names and is also used to introduce new terms.
-
-``Fixed width``
-  Fixed width text indicates objects, commands, hyperlinks, and code
-  listings.
-
-Contributors to This Book
--------------------------
-
-Contributors to this book include Amos Latteier, Michel Pelletier,
-Chris McDonough, Evan Simpson, Tom Deprez, Paul Everitt, Bakhtiar
-A. Hamid, Geir Baekholt, Thomas Reulbach, Paul Winkler, Peter Sabaini, 
-Andrew Veitch, Kevin Carlson, Joel Burton and the Zope Community.
-
-Amos and Michel wrote the entirety of the first edition of this
-book, and kept the online version of the book current up until Zope
-2.5.1.
-
-Tom Deprez provided much-needed editing assistance on the first
-book edition.
-
-Evan Simpson edited the chapters related to ZPT for the 2.6
-edition.
-
-Paul Everitt contributed to the first few chapters of the first
-edition, edited the first few chapters of the second edition for
-sanity and contributed some "Maintaining Zope" content for the
-2.6 edition.
-
-Bakhtiar Hamid edited the ZEO chapter for the 2.6 edition.
-
-Geir edited and extended the Users and Security chapter for the 2.6
-edition.
-
-Paul Winkler with help from Peter Sabaini expertly massaged the
-Advanced Scripting chapter into coherency for the 2.6 edition.
-
-Peter Sabaini greatly fleshed out and extended the "Maintaining Zope"
-and the "Searching and Categorizing Content" chapter for the 2.6 Edition. 
-
-Andrew Veitch cheerfully performed the thankless task of
-editing and extending the Relational Database Connectivity chapter
-for the 2.6 edition.
-
-Kevin Carlson masterfully edited and expanded the Advanced DTML
-chapter. 
-
-Joel Burton rewrote the ZCatalog chapter late in the 2.6 book's
-lifetime.
-
-Dario Lopez-Kästen updated the "Introducing Zope" chapter for the
-2.7 edition.
-
-Chris McDonough edited the entirety of the book for the 2.6
-edition, entirely rewrote a few chapters and added new material
-related to object orientation, using the Zope management interface,
-acquisition, installation, services, virtual hosting, sessions, and
-DTML name lookup rules.
-
-Tres Seaver moved the text into the Zope Subversion repository, and
-helped with the conversion of the text from ``Structured Text``
-to ``ReStructured Text``.
-
-Anyone who added a comment to the online BackTalk edition of the
-first online edition of this book contributed greatly.  Thank you!
-

Added: zope2book/trunk/README.txt
===================================================================
--- zope2book/trunk/README.txt	                        (rev 0)
+++ zope2book/trunk/README.txt	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,51 @@
+Zope2 Book
+==========
+
+Background
+----------
+
+The `Zope2 Book` has been the canonical source of information about Zope2 for
+a long time.
+
+During its lifetime it has seen many different places. The original location
+has been: http://www.zope.org/Documentation/Books/ZopeBook/
+
+Chris McDonough has done a great job of updating it for Zope 2.7 and
+hosting the updated copy at http://www.plope.com/Books/2_7Edition
+
+Various attempts to update the book and maintain it took place afterwards,
+for example https://code.launchpad.net/zope2book and
+http://wiki.zope.org/zope2/ZopeBook.
+
+This is yet another attempt to bring the book back to live.
+
+Technology
+----------
+
+This time we use `Sphinx`_ based on a conversion of the original content to
+reStructured as the tool.
+
+To install Sphinx you can simply do::
+
+  easy_install Sphinx
+
+You might want to use a `virtualenv`_ to protect your global Python from any
+changes.
+
+Sphinx can generate various different formats from the same source. If you
+want to build a HTML version of the book, you can do::
+
+  make html
+
+To what extent this works on Windows is unknown.
+
+Contact
+-------
+
+At this point the book is best discussed at:
+
+http://mail.zope.org/mailman/listinfo/zope-dev
+
+
+.. _Sphinx: http://sphinx.pocoo.org/
+.. _virtualenv: http://pypi.python.org/pypi/virtualenv/


Property changes on: zope2book/trunk/README.txt
___________________________________________________________________
Added: svn:eol-style
   + native

Added: zope2book/trunk/source/Contributions.rst
===================================================================
--- zope2book/trunk/source/Contributions.rst	                        (rev 0)
+++ zope2book/trunk/source/Contributions.rst	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,60 @@
+Contributions
+=============
+
+Contributors to this book include Amos Latteier, Michel Pelletier,
+Chris McDonough, Evan Simpson, Tom Deprez, Paul Everitt, Bakhtiar
+A. Hamid, Geir Baekholt, Thomas Reulbach, Paul Winkler, Peter Sabaini, 
+Andrew Veitch, Kevin Carlson, Joel Burton and the Zope Community.
+
+Amos and Michel wrote the entirety of the first edition of this
+book, and kept the online version of the book current up until Zope
+2.5.1.
+
+Tom Deprez provided much-needed editing assistance on the first
+book edition.
+
+Evan Simpson edited the chapters related to ZPT for the 2.6
+edition.
+
+Paul Everitt contributed to the first few chapters of the first
+edition, edited the first few chapters of the second edition for
+sanity and contributed some "Maintaining Zope" content for the
+2.6 edition.
+
+Bakhtiar Hamid edited the ZEO chapter for the 2.6 edition.
+
+Geir edited and extended the Users and Security chapter for the 2.6
+edition.
+
+Paul Winkler with help from Peter Sabaini expertly massaged the
+Advanced Scripting chapter into coherency for the 2.6 edition.
+
+Peter Sabaini greatly fleshed out and extended the "Maintaining Zope"
+and the "Searching and Categorizing Content" chapter for the 2.6 Edition. 
+
+Andrew Veitch cheerfully performed the thankless task of
+editing and extending the Relational Database Connectivity chapter
+for the 2.6 edition.
+
+Kevin Carlson masterfully edited and expanded the Advanced DTML
+chapter. 
+
+Joel Burton rewrote the ZCatalog chapter late in the 2.6 book's
+lifetime.
+
+Dario Lopez-Kästen updated the "Introducing Zope" chapter for the
+2.7 edition.
+
+Chris McDonough edited the entirety of the book for the 2.6
+edition, entirely rewrote a few chapters and added new material
+related to object orientation, using the Zope management interface,
+acquisition, installation, services, virtual hosting, sessions, and
+DTML name lookup rules.
+
+Tres Seaver moved the text into the Zope Subversion repository, and
+helped with the conversion of the text from ``Structured Text``
+to ``ReStructured Text``.
+
+Anyone who added a comment to the online BackTalk edition of the
+first online edition of this book contributed greatly.  Thank you!
+


Property changes on: zope2book/trunk/source/Contributions.rst
___________________________________________________________________
Added: svn:eol-style
   + native

Copied: zope2book/trunk/source/IntroducingZope.rst (from rev 96344, zope2book/trunk/IntroducingZope.stx)
===================================================================
--- zope2book/trunk/source/IntroducingZope.rst	                        (rev 0)
+++ zope2book/trunk/source/IntroducingZope.rst	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,487 @@
+Introducing Zope
+================
+
+Zope is a framework that allows developers of varying skill levels to
+build *web applications*.  This chapter explains Zope's purpose, what
+problems it solves and what audience it targets in greater detail.
+It also describes what makes Zope different and more powerful than
+similar applications.
+
+*NOTE*: The moniker "Zope" stands for the *Z Object Publishing
+Environment* (the "Z" doesn't really mean anything in particular).
+
+
+The Static Web Site Dilemma
+---------------------------
+
+When a company or organization goes through the process of
+developing and eventually deploying a website, one its most
+important goals is to present timely and
+up-to-date information to its website visitors.
+
+Let us consider two examples of such time-dependent sites:
+
+- a stock market information site that needs to be updated with
+  new information continually, maybe as often as every five or 10
+  minutes. It will also present information tailored to each
+  visitor's preferred settings (portfolios, stocks to follow, etc.)
+
+- a commercial website that helps its visitors sell and buy used
+  automobiles. It is usually required that such a site run
+  advertisements only for cars that have not yet been sold.  It is
+  also important that new ads be posted immediately after
+  they've been placed by a seller.
+
+These two examples describe two very different sites that
+nevertheless have one basic requirement in common: automated and
+periodic updates of the information presented. If this single
+requirement is not met, these sites will likely be
+unsuccessful.
+
+So, how does Zope work to fulfill such a requirement? To understand
+this, we need to consider how websites are perceived by their
+visitors and the basic ways in which websites can be constructed.
+
+In general, many website visitors think about navigation in terms
+of moving "from page-to-page" within a website.  When they click
+a hyperlink, their browser transports them to a new page.  When they
+hit their browser's *back* button, they are returned to the last page
+they visited, and so on.
+
+Some websites are *static*. A static website stores its
+information in files on a web server. Each file then represents a
+complete page on the website. This may seem like a simple and
+efficient way of creating a website; however, *updating the
+information* within those pages becomes a problem when the site consists of
+more than a few pages, and the pages, or parts of the pages, need to be updated 
+frequently.
+
+The layout of text and images that are displayed in a user's web browser
+when the user visits a website are commonly composed in a simple
+language known as Hyper Text Markup Language (HTML). When a user
+visits a typical website, a chunk of text that is "marked-up"
+with formatting in HTML is transferred between the website and the user's
+browser. The browser interprets the chunk of text and displays text
+and images to the user.  The chunk of text which is transferred is
+typically referred to as a *page*.
+
+To achieve this, the static website requires a person with a
+privileged level of access (sometimes termed the *webmaster*) to
+manually create and update the site's content.
+
+Typically, this is done by editing a set of text-based files on the *web
+server* (the machine that runs the website), where each file
+represents a single page. In some cases, a site-wide change to the "look-and-feel"
+of a static website requires that the webmaster visit and update
+each and every file that comprises the website.
+
+The webmaster responsible for our automobile advertising website
+has the additional responsibility of keeping the ads themselves
+fresh.  If each page in the website represents an ad for a
+particular automobile, he needs to delete the pages representing
+ads that have expired and create new pages for ads that have been
+recently sold.  He then needs to make sure that no hyperlinks on
+other pages point to any of these deleted pages.
+
+Obviously, this quickly becomes a lot of work.  With any more than a 
+few pages to update each day, this type of repetitive work 
+can become pretty dull.  In addition, being a human being, the webmaster 
+may also make mistakes, such as forgetting to update or remove
+critical pages.  While updating a static website with only 10 to 20
+pages might be dull, it's perfectly manageable.  However, websites
+can typically grow to encompass thousands of files, making the
+process of "timely updates" a non-trivial (and sometimes
+impossible) task.
+
+Somewhere down the line, smart webmasters begin to think to
+themselves, "Wow, this is a lot of work.  It's tedious and
+complicated, and I seem to be making a lot of mistakes.  Computers
+are really good at doing tedious and complicated tasks, and they
+don't make very many mistakes.  I bet my web server computer could
+automatically do a lot of the work I now do manually."  And he would 
+be right.
+
+At this point, the webmaster is ready to be introduced to *web
+applications*. It is in this area where Zope's strength and power
+becomes clear.
+
+
+What Is A Web Application?
+--------------------------
+
+A *web application* is a computer program that users invoke by
+using a web browser to contact a web server via the Internet. Users
+and browsers are typically unaware of the difference between
+a web server that fronts a statically-built website
+and one that fronts a web application.  But unlike a
+static website, a web application creates its "pages"
+*dynamically*, or on-the-fly, upon request.  A website that is dynamically-
+constructed uses an a computer program to provide its content.
+These kinds of dynamic applications can be written in any number of
+computer languages.
+
+Web applications are everywhere.  Common examples of web
+applications are those that let you search the web, like *Google*;
+collaborate on projects, like *SourceForge* or *ProjectPlace*; buy
+items at an auction, like *eBay*; communicate with other people over
+e-mail, like *Hotmail*; or view the latest news ala *CNN.com*.
+
+In a dynamically-constructed website, the webmaster is not
+required to visit the site "page-by-page" in order to update its
+content or style.  Instead, he is able to instruct the web server
+to *generate the site's HTML pages dynamically*, where each page is
+made up of different bits of content. While each bit of content is
+unique, each can nevertheless appear in several pages if so 
+instructed by the web server. In this way, the webmaster is able to create
+a common "look and feel" for the set of pages that make up his
+site. The software on the web server that generates these
+pages is the web application.
+
+If our auto-classifieds webmaster chose to construct a web
+application to maintain his classifieds system, he could maintain a
+list of "current" ads separate from the HTML pages, perhaps stored
+in a database of some kind.  He could then instruct his web
+application to query this database and generate a particular chunk
+of HTML that represented an ad, or an index of ads, when a user
+visited a page in his website.
+
+A framework that allows people to construct a web application is
+often called a *web application server*, or sometimes just an
+*application server*.  Zope is a web application server, as are
+competing products like `BEA WebLogic`_, `Macromedia ColdFusion`_, and
+(to some extent) `Vignette StoryServer`_.
+
+.. _BEA WebLogic: http://www.bea.com/
+.. _Macromedia ColdFusion: http://www.macromedia.com/
+.. _Vignette StoryServer: http://www.vignette.com/
+
+Zope is a web application server, which is not
+a web application in itself; rather it is *framework that allows
+people to construct web applications*. Sometimes this framework is
+called an *application server*.
+
+Using some common computer programming language, an application
+server typically allows a developer to create a web application,
+but it also provides services *beyond* the basic capabilities of
+the programming language used. Examples of such services are web
+page template creation facilities, a common security model, data
+persistence, sessions, and other features that people find useful
+when constructing a typical web application.
+
+
+How You Can Benefit From Using An Application Server
+----------------------------------------------------
+
+If you are considering writing even a moderately-sized web
+application, it is typically a good idea to start your project
+using an application server framework, unless your application
+requirements are extremely specialized.  By starting a web
+application project with an application server framework (as
+opposed to a "raw" computer language, such as Java, Perl, Python, or
+C), you are able to utilize the services of the framework that have
+already been written and proven to work, and you avoid the need to
+write the functionality yourself "from scratch" in a "raw"
+language.
+
+Many application servers allow you to perform some of the following tasks:
+
+Present Dynamic Content -- You may tailor your web site's
+presentation to its users and provide users with search features.
+Application servers allow you to serve dynamic content and typically
+come with facilities for personalization, database integration,
+content indexing, and searching.
+
+Manage Your Web Site -- A small web site is easy to manage, but a
+web site that serves thousands of documents, images, and files
+requires heavy-duty management tools. It is useful to be able to
+manage your site's data, business logic, and presentation from a
+single place.  An application server can typically help manage
+your content and presentation in this way.
+
+Build a Content Management System -- A fairly new breed of
+application, a *content management system* allows non-technical
+editors to create and manage content for your website.  Application 
+servers provide the tools with which you can build a
+content management system.
+
+Build an E-Commerce Application -- Application servers provide a
+framework in which sophisticated e-commerce applications can be
+created.
+
+Securely Manage Contributor Responsibility -- When you deal with
+more than a handful of web users, security becomes very important.
+You must be able to safely delegate tasks to different
+classes of system users. For example, folks in your engineering
+department may need to be able to manage their web pages and
+business logic, designers may need to update site templates, and
+database administrators need to manage database queries.
+Application servers typically provide a mechanism for access
+control and delegation.
+
+Provide Network Services -- You may want to produce or consume
+*network services*.  A network service-enabled web site must
+to be able to accept requests from other computer programs.  For
+example, if you're building a news site, you may wish to share
+your news stories with another site; you can do this by making
+the news feed a network service.  Or perhaps you want to make
+products for sale on your site automatically searchable from a
+product comparison site.  Application servers 
+offer methods for enabling these kinds of network services.
+
+Integrate Diverse Systems -- Your existing content may be
+contained in many places: relational databases, files, separate
+web sites, and so on.  Application servers typically allow you
+to present a unified view of your existing data by integrating
+diverse, third-party systems.
+
+Provide Scalability -- Application servers allow your web
+applications to scale across as many systems as necessary to
+handle the load demands of your sites.
+
+The Zope application server allows you to perform all of these
+tasks.
+
+
+Why Use Zope Instead of Another Application Server
+--------------------------------------------------
+
+If you're in the business of creating web applications, Zope can
+potentially help you create them at less cost and at a faster rate
+than you could by using another competing web application server.
+This claim is backed by a number of Zope features:
+
+- Zope is free of cost and distributed under an open-source
+  license.  There are many non-free commercial application servers
+  that are relatively expensive.
+
+- Zope itself is an inclusive platform.  It ships with all the
+  necessary components to begin developing an application.  You
+  don't need to license extra software to support Zope (e.g., a
+  relational database) in order to develop your application.  This
+  also makes Zope very easy to install.  Many other application
+  servers have "hidden" costs by requiring that you license
+  expensive software or configure complex, third-party
+  infrastructure software before you can begin to develop your
+  application.
+
+- Zope allows and encourages third-party developers to package and
+  distribute ready-made applications.  Due to this, Zope has a
+  wide variety of integrated services and add-on products
+  available for immediate use.  Most of these components, like
+  Zope itself, are free and open-source.  Zope's popularity has
+  bred a large community of application developers.  Many other
+  application servers do not have a large base of third-party
+  support or a means by which plug-ins are so neatly packaged.
+
+- Applications created in Zope can scale almost linearly using
+  Zope's built-in "Zope Enterprise Objects" (ZEO) clustering
+  solution.  Using ZEO, you can deploy a Zope application across
+  many physical computers without needing to change much (if any)
+  of your application code.  Many application servers don't scale
+  quite as transparently or as predictably.
+
+- Zope allows developers to create web applications using only a
+  web browser.  The Internet Explorer, Mozilla, Netscape, OmniWeb,
+  Konqueror, and Opera browsers are all known to be able to both
+  display and manipulate Zope's development environment
+  (the *Zope Management Interface*, also known as the *ZMI*).  Zope
+  also allows developers to safely delegate application
+  development duties to other developers "through the web" using
+  the same interface.  Very few other application servers, if any,
+  deliver the same level of web functionality.
+
+- Zope provides a granular and extensible security framework.  You
+  can easily integrate Zope with diverse authentication and
+  authorization systems, such as LDAP, Kerberos, and RADIUS,
+  simultaneously and using pre-built modules.  Many other application
+  servers lack support for important authentication and
+  authorization systems.
+
+- Zope allows teams of developers to collaborate effectively.
+  Collaborative environments require tools that allow users to work
+  without interfering with each other.  Zope has *Undo*,
+  *Versions*, *History*, and other tools to help people work safely
+  together and recover from mistakes.  Many other application
+  servers do not provide these kinds of features.
+
+- Zope runs on most popular microcomputer operating system
+  platforms: Linux, Windows, Solaris, FreeBSD, NetBSD,
+  OpenBSD, and Mac OS X.  Many
+  other application server platforms require that you run an
+  operating system of their licensor's choosing.
+
+- Zope can be extended using the interpreted `Python`_ scripting language.
+  Python is popular and easy to learn, and it promotes rapid development.
+  Many libraries are available for Python that can be used when
+  creating your own application.  Many other application servers
+  must be extended using compiled languages, such as Java, which
+  cuts down on development speed.  Many other application servers
+  use less popular languages for which there are not as many
+  ready-to-use library features.
+
+.. _Python: http://www.python.org/
+
+
+Zope Audiences and What Zope Isn't
+----------------------------------
+
+Managing the development process of a large-scale site can be a
+difficult task. It often takes many people working together to
+create, deploy, and manage a web application.
+
+*Information Architects*
+  make platform decisions and keep track of the "big picture".
+
+*Component Developers*
+  create software intended for reuse and distribution.
+
+*Site Developers*
+  integrate the software written by component developers and native
+  application server services, building an application in the process.
+
+*Site Designers*
+  create the site's look and feel.
+
+*Content Managers*
+  create and manage the site's content.
+
+*Administrators*
+  keep the software and environment running.
+
+*Consumers*
+  use the site to locate and work with useful content.
+
+Of the parties listed above, Zope is most useful for *component
+developers*, *site developers*, and *site designers*.  These three
+groups can collaborate to produce an application using
+Zope's native services and third-party Zope *Products*.  They 
+typically produce applications useful to *content managers* and
+*consumers* under the guide of the *information architect*.
+*Administrators* deploy the application and tend to the
+application after it is has been created.
+
+Note that Zope is a web application construction framework that
+programmers of varying skill levels may use to create web-based
+applications.  It *is not* itself an application that is ready to
+use "out of the box" for any given application.  For example, Zope
+itself is not a blog, a content management system, or a
+"e-shop-in-a-box" application.
+
+However, freely available *Products* built on top of Zope offer
+these kinds of services.  At the time of this writing, the
+Zope.org website catalogs roughly 300 `Products that you can
+browse`_ and even reuse in your own applications.  These include Products
+for blogging, content management, and internationalization, and e-commerce.
+
+.. _Products that you can browse: http://www.zope.org/Products/
+
+Zope is not a visual design tool.  Tools like Macromedia
+Dreamweaver and Adobe GoLive allow designers to create "look and
+feel".  You may use these tools to successfully manage Zope-based
+web sites, but Zope itself does not replace them.  You can edit
+content "through the web" using Zope, but the limitations of current
+cross-platform browser technology prevent Zope from doing as good
+a job as these kinds of tools for designing web presentation.
+
+
+Introduction to Zope Maintenance and The Zope Community
+-------------------------------------------------------
+
+A community of developers is responsible for maintaining and
+extending the Zope application server.  Many community members are
+professional consultants, developers, and webmasters who develop
+applications using Zope for their own gain.  Others are students
+and curious amateur site developers.  Zope Corporation is a member
+of this community.
+
+Zope Corporation controls the distribution of the defacto,
+"canonical", official Zope version, and permits its developers, as
+well as other selected developers, to modify the distribution's
+source code.
+
+The Zope community gets together occasionally at conferences, but it
+commonly discusses all things Zope on the many Zope mailing
+lists and web sites. You can find out more about Zope-related
+mailing lists at `Zope.org's mailing list page`_.
+
+.. _Zope.org's mailing list page: http://www.zope.org/Resources/MailingLists
+
+Zope Corporation makes its revenue by using Zope to create web
+applications for its paying customers, by training prospective
+Zope developers, by selling support contracts to companies who use
+Zope, and by hosting Zope-powered websites; it does not make any
+direct revenues from the distribution of the Zope application
+server itself.
+
+
+Zope's Terms of Use and License
+-------------------------------
+
+Zope is free of cost. You are permitted to use Zope to create and
+run your web applications without paying licensing or usage fees.
+You may also include Zope in your own products and applications
+without paying royalty fees to Zope's licensor, *Zope Corporation*.
+
+Zope is distributed under an open source license, the `Zope Public
+License or 'ZPL'`_.  The terms of the ZPL license stipulate that you will
+be able to obtain and modify the source code for Zope.
+
+.. _Zope Public License or 'ZPL': http://www.zope.org/Resources/License
+
+The ZPL is different than another popular open source license, the
+`GNU Public License`_. The licensing terms of
+the GPL require that if you intend to redistribute a GPL-licensed
+application, and you modify or extend the application in a
+meaningful way, when you `redistribute`_
+a GPL-licensed application, you must distribute it under the terms
+of the GPL, including licensing any modifications or extensions
+you make under the GPL.  You must also provide the full source
+code, including source for your modifications.
+
+.. _GNU Public License: http://www.gnu.org
+.. _redistribute: http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
+
+However, this is *not* required for ZPL-licensed applications.
+You may modify and redistribute Zope without contributing your
+modifications back to Zope Corporation, as long as you follow the
+other terms of the license faithfully.
+
+Note that the ZPL has been `certified`_ as `OSD`_ compliant by
+the `Open Source Initiative`_ and is listed as `GPL compliant`_
+by the `Free Software Foundation`_.
+
+.. _certified: http://www.opensource.org/licenses/zpl.php
+.. _OSD: http://www.opensource.org/docs/definition.html
+.. _Open Source Initiative: http://www.opensource.org/
+.. _GPL compliant: http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses
+.. _Free Software Foundation: http://www.fsf.org/
+
+
+Zope History
+------------
+
+In 1996, Jim Fulton (the current CTO of Zope Corporation, the
+distributors of Zope) was drafted to teach a class on CGI
+programming, despite not knowing very much about the subject.  CGI,
+or *common gateway interface*, programming is a commonly-used web
+development model that allows developers to construct dynamic
+websites.  Jim studied all of the existing documentation on CGI on
+his way to the class.  On the way back from the class, Jim
+considered what he didn't like about traditional, CGI-based
+programming environments.  From these initial musings, the core of
+Zope was written on the plane flight back from the class.
+
+Zope Corporation (then known as Digital Creations) went on to
+release three open-source software packages to support web
+publishing: *Bobo*, *Document Template*, and *BoboPOS*.  These
+packages were written in a language called Python, and respectively
+provided a web publishing facility, text templating, and an object
+database.  Digital Creations developed a commercial
+application server based on their three open-source components.
+This product was called *Principia*.  In November of 1998,
+investor Hadar Pedhazur convinced Digital Creations to open source
+Principia.  These packages have evolved into what today are the
+core components of Zope.
+
+Most of Zope is written in the `Python`_ scripting language, with
+performance-critical pieces written in C.

Copied: zope2book/trunk/source/Preface.rst (from rev 96344, zope2book/trunk/Preface.rst)
===================================================================
--- zope2book/trunk/source/Preface.rst	                        (rev 0)
+++ zope2book/trunk/source/Preface.rst	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,208 @@
+Preface
+=======
+
+Welcome to *The Zope Book*.  This book is designed to introduce you
+to ``Zope2``, an open-source web application server.
+
+To make effective use of the book, you should know how to use a web
+browser and have a basic understanding of the ``Hyper
+Text Markup Language`` (HTML) and ``Uniform Resource Locators`` (URLs).
+
+You don't need to be a highly-skilled programmer in order to use Zope2,
+but you may find the understanding of some programming concepts (particularly
+in object-oriented programming) to be extremely helpful.
+
+
+How the Book Is Organized
+-------------------------
+
+This book is laid out in the following chapters:
+
+1. Introducing Zope
+
+    This chapter explains what Zope is and what it can do for you.
+    You'll also learn about the differences between Zope and other
+    web application servers.
+
+2. Zope Concepts and Architecture
+
+    This chapter explains fundamental Zope concepts and describes
+    the basics about Zope's architecture.
+
+3. Installing and Starting Zope
+
+    This chapter explains how to install and start Zope for the
+    first time.  By the end of this chapter, you will have Zope
+    installed and working.
+
+4. Object Orientation
+
+    This chapter explains the concept of *object orientation*,
+    which is the development methodology most often used to
+    create Zope applications.
+
+5. Using the Zope Management Interface
+
+    This chapter explains how to use Zope's web-based management
+    interface. By the end of this chapter, you will be able to
+    navigate around the Zope object space, copy and move objects,
+    and use other basic Zope features.
+
+6. Using Basic Zope Objects
+
+    This chapter introduces *objects*, which are the most
+    important elements of Zope.  You'll learn the basic Zope
+    objects: content objects, presentation objects, and logic
+    objects, and you'll build a simple application using these
+    objects.
+
+7. Acquisition
+
+    This chapter introduces *acquisition*, which is Zope's
+    mechanism for sharing site behavior and content.
+
+8. Basic DTML
+
+    This chapter introduces *DTML*, Zope's tag-based scripting
+    language.  You'll learn DTML syntax, its basic tags, 
+    and how to use DTML templates and
+    scripting facilities.  After reading this chapter,
+    you'll be able to create dynamic web pages.
+
+9. Using Zope Page Templates
+
+    This chapter introduces *Zope Page Templates*, another Zope tool
+    used to create dynamic web pages. You will learn about basic
+    template statements that let you insert dynamic content, and how
+    to create and edit page templates.
+
+10. Creating Basic Zope Applications  
+
+    This chapter presents several real-world
+    examples of building a Zope application.  You'll learn how to
+    use basic Zope objects and how they can work together to form
+    basic applications.
+
+11. Users and Security
+
+    This chapter looks at how Zope handles users, authentication,
+    authorization, and other security-related matters.
+
+12. Advanced DTML
+
+    This chapter takes a closer look at DTML. You'll learn about DTML
+    security, the tricky issue of how variables are looked up
+    in DTML, advanced use of basic tags, 
+    and the myriad of special purpose tags.
+
+13. Advanced Page Templates
+
+    This chapter goes into more depth with Zope Page Templates. You will learn 
+    all about template statements, expression
+    types, and macros, which let you reuse presentation
+    elements.
+
+14. Advanced Zope Scripting
+
+    This chapter covers scripting Zope with Python and Perl.  You will learn
+    how to write business logic in Zope using tools more
+    powerful than DTML, about the idea of *scripts* in
+    Zope, and about Python and Perl-based scripts.  This
+    chapter shows you how to add industrial-strength scripting to
+    your site.
+
+17. Zope Services
+
+    This chapter covers Zope objects that are considered "services," which
+    don't readily fit into any of the basic "content,"
+    "presentation," or "logic" object groups.
+
+15. Searching and Categorizing Content
+
+    This chapter shows you how to index and search objects with
+    Zope's built-in search engine: the *Catalog*. You'll learn about 
+    indexing concepts, different patterns for
+    indexing and searching, metadata, and
+    search results. 
+
+16. Relational Database Connectivity
+
+    This chapter describes how Zope connects to external
+    relational databases.  You'll learn about features that allow you
+    to treat relational data as though it were Zope
+    objects, and security and performance
+    considerations.
+
+17. Virtual Hosting Services
+
+    This chapter explains how to set up Zope in a "virtual hosting"
+    environment, in which Zope sub-folders can be served as "top-level"
+    host names.  It includes examples that allow virtual hosting to
+    be performed either "natively" or using Apache's 'mod_rewrite'
+    facility.
+
+18. Sessions
+
+    This chapter describes Zope's "sessioning" services, which allow
+    Zope developers to "keep state" between HTTP requests.
+
+19. Scalability and ZEO
+
+    This chapter covers issues and solutions for building and
+    maintaining large web applications, and focuses on issues of
+    management and scalability. In particular, the Zope Enterprise
+    Option (ZEO) is covered in detail.  You'll learn about the
+    tools and techniques needed to turn a small site into a
+    large-scale site, servicing many simultaneous visitors.
+
+20. Managing Zope Objects Using External Tools
+
+    This chapter explains how to use tools outside of your web
+    browser to manipulate Zope objects.
+
+21. Extending Zope
+
+    This chapter covers extending Zope by creating your own
+    classes of objects. You'll learn about *ZClasses*, how instances
+    are built from classes, and how to build a ZClass and
+    its attendant security and design issues.  You'll also learn how to create 
+    Python base classes for ZClasses, and about 
+    the base classes that ship with Zope.
+
+22. Maintaining Zope
+
+    This chapter covers Zope maintenance and administration tasks,
+    such as database "packing" and Product installation.
+
+23. Appendix A: DTML Reference
+
+    Reference of DTML syntax and commands.
+
+24. Appendix B:  API Reference
+
+    Reference of Zope object APIs.
+
+25. Appendix C:  Page Template Reference
+
+    Reference of Zope Page Template syntax and commands.
+
+25. Appendix D:  Zope Resources
+
+    Reference of "resources" which can be used to further enhance
+    your Zope learning experience.
+
+26. Appendix E: DTML Name Lookup Rules
+    Describes DTML's name lookup rules.
+
+
+Conventions Used in This Book
+-----------------------------
+
+This book uses the following typographical conventions:
+
+*Italic*
+  Italics indicate variables and names and is also used to introduce new terms.
+
+``Fixed width``
+  Fixed width text indicates objects, commands, hyperlinks, and code
+  listings.

Added: zope2book/trunk/source/conf.py
===================================================================
--- zope2book/trunk/source/conf.py	                        (rev 0)
+++ zope2book/trunk/source/conf.py	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,190 @@
+# -*- coding: utf-8 -*-
+#
+# Zope2 Book documentation build configuration file, created by
+# sphinx-quickstart on Tue Feb 10 00:26:02 2009.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# The contents of this file are pickled, so don't put values in the namespace
+# that aren't pickleable (module imports are okay, they're removed automatically).
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If your extensions are in another directory, add it here. If the directory
+# is relative to the documentation root, use os.path.abspath to make it
+# absolute, like shown here.
+#sys.path.append(os.path.abspath('.'))
+
+# General configuration
+# ---------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'Zope2 Book'
+copyright = u'2009, Zope Community'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '2.12'
+# The full version, including alpha/beta/rc tags.
+release = '2.12dev'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of documents that shouldn't be included in the build.
+#unused_docs = []
+
+# List of directories, relative to source directory, that shouldn't be searched
+# for source files.
+exclude_trees = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+
+# Options for HTML output
+# -----------------------
+
+# The style sheet to use for HTML and HTML Help pages. A file of that name
+# must exist either in Sphinx' static/ path, or in one of the custom paths
+# given in html_static_path.
+html_style = 'default.css'
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_use_modindex = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, the reST sources are included in the HTML build as _sources/<name>.
+#html_copy_source = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'Zope2Bookdoc'
+
+
+# Options for LaTeX output
+# ------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, document class [howto/manual]).
+latex_documents = [
+  ('index', 'Zope2Book.tex', ur'Zope2 Book Documentation',
+   ur'Zope Community', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_use_modindex = True


Property changes on: zope2book/trunk/source/conf.py
___________________________________________________________________
Added: svn:eol-style
   + native

Added: zope2book/trunk/source/index.rst
===================================================================
--- zope2book/trunk/source/index.rst	                        (rev 0)
+++ zope2book/trunk/source/index.rst	2009-02-10 12:16:58 UTC (rev 96383)
@@ -0,0 +1,24 @@
+The Zope2 Book
+==============
+
+Welcome to *The Zope Book*.  This book is designed to introduce you
+to `Zope2`, an open-source web application server.
+
+
+Contents
+--------
+
+.. toctree::
+   :maxdepth: 1
+
+   Preface.rst
+   IntroducingZope.rst
+   Contributions.rst
+
+
+Indices and tables
+------------------
+
+* :ref:`genindex`
+* :ref:`search`
+


Property changes on: zope2book/trunk/source/index.rst
___________________________________________________________________
Added: svn:eol-style
   + native



More information about the Checkins mailing list