Building Websites with Plone an In-Depth and Comprehensive Guide to the Plone Content Management System

Total Page:16

File Type:pdf, Size:1020Kb

Building Websites with Plone an In-Depth and Comprehensive Guide to the Plone Content Management System Building Websites with Plone An in-depth and comprehensive guide to the Plone content management system Cameron Cooper Building Websites with Plone An in-depth and comprehensive guide to the Plone content management system Copyright © 2004 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First edition: November 2004 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 1-904811-02-7 www.packtpub.com Cover Design by www.visionwt.com Credits Author Layout* Cameron Cooper Ashutosh Pande Technical Reviewers Indexers* Godefroid Chapelle Niranjan Jahagirdar Brent Hendricks Ashutosh Pande Dmitry Makovey Jason Wilson Proofreader Chris Smith Commissioning Editor Louay Fatoohi Cover Designer Helen Wood Technical Editors* Niranjan Jahagirdar Nanda Padmanabhan Ashutosh Pande * Services provided by www.editorialindia.com About the Author J. Cameron Cooper is a Plone developer based in Houston, Texas. He works on the Connexions Project at Rice University (http://cnx.rice.edu/) and at Enfold Systems LLC (http://enfoldsystems.com/), in the company of many of the founders and bright lights of Plone development. He has contributed several facilities to Plone, as well as a number of independent Products. Cameron holds degrees in Computer Science and History from Rice University, where he learned the underpinnings of programming, and has experience in other web development technologies— especially Java—from other efforts. But Python, Zope, and Plone always seemed like a different and better way to do things. He will often grouse about being just a bit too young to have capitalized on the dot-com phenomenon, though he did manage to snag enough to pay his way through university. But he is very glad to be in the midst of the Open Source phenomenon, even if it isn't quite so lucrative. Cameron likes to keep himself too busy for his own good, with such projects as writing this book. He also enjoys playing with his dog, being with family and friends, and usually reads a little Shakespeare once a year. When I first encountered the World Wide Web, frames were brand new and I was very proud of creating a website that used them. But the magic behind creating what we know today as web applications always seemed a bit mysterious. And even when it was not mysterious it was arcane. But that all changed when I was introduced to Zope (by Alan Runyan, one of the eventual founders of Plone) just after its public release. Zope made it seem like everything else had missed the point of web application development. Sure, there are some dark corners out there, and the famous “Z-shaped learning curve”, but Zope was wonderfully unlike anything out there at the time. And still is. Several years later, Plone followed that same path, and is now one of the main drivers of Zope and open source in general. And I'm terribly pleased with the small part I've played in that. I wrote this book to help people of all skill levels, but especially new users, get into Plone as well; I hope that what I learned by helping out on the Plone users list makes this book a good resource. If you have any questions, I'm still on the list along with a bunch of other very helpful people. This book is intended not just as a reference, but as a guide to understanding Plone at a fundamental level. Plone as a system is not much like anything else out there, and even if it weren't so unique, I think there's a whole lot more to be gained by understanding than just mastering a few basic skills. I would like readers to come away from this book with a good mental model of Plone, well adapted to solving the wide variety of problems that will inevitably accompany the wide variety of potential Plone sites. But most readers will probably come away with a bit of mental overload, at least the first time; just remember to stick with it and to learn by doing: experience is always the best teacher. This book would not have been possible without a lot of other people. The developers of Zope, CMF, Plone, and related projects are to be congratulated for creating a great and growing stack of software. I also owe no small debt to the many people on the Zope and Plone lists who educated me as I helped them. I also would be remiss without thanking my editors, especially Louay Fatoohi, for the opportunity to write this book, and for the patience and encouragement to get it done. The reviewers for this book are in no small measure responsible for its ultimate quality; any lack thereof you can lay at the feet of the author. This book would also not have been feasible without the kind cooperation of Brent Hendricks and the rest of the people at Connexions Project; Alan Runyan at Enfold Systems; and Phil Bedient and Jude Benavides of the Rice Hydrology Department. My writing often made for some late nights and creative hours. I must also thank my parents, Jim and Pam Cooper for their support, material and otherwise, even though, as my mom says, she has no idea what I'm writing about. And no, I don't know if anyone would consider this book the equivalent to a Masters thesis. Thanks also to Aaron Martz for providing me access to his computer (and knowledge) on a number of sporadic and probably inconvenient occasions. And I must mention Anna and Cory, who were endlessly enthusiastic about the prospect of getting a dedication. (There's an awful lot of people who deserve a dedication; I would have to write an awful lot to get to them all.) My fun-loving dog Mozi is also to be thanked for dealing with so many late nights by herself. She hasn't complained, but I'll do my best to make it up to her anyway. This book is dedicated to my grandfather, Neil Cooper, who I wish could have seen it in print. If I am ever half so good a man as he, I will count myself lucky. About the Reviewers Godefroid Chapelle Godefroid Chapelle is a software engineer with more than 10 years of industry experience. He manages BubbleNet (http://www.bubblenet.be/) at Louvain-la-Neuve, Belgium. BubbleNet has worked with Zope for more than five years. Godefroid is engaged in community work since June 2002. He has committed code to Plone, Archetypes, Zope 2, and Zope 3. He is part of the i18n (internationalization) team of Plone. Brent Hendricks Brent Hendricks has been an active free/Open Source software advocate and contributor over the last decade. Although his degrees are in Electrical Engineering from Michigan State University and Rice University, he's not so much a hardware guy as a software guy with a hardware candy- coating. He currently works for the Connexions Project (http://cnx.rice.edu/), a collaborative Open Content repository of educational materials at Rice. On different days his titles range from Chief System Architect to Lead Developer to guy-who- makes-things-work. In actuality he's just happy to be making a career developing with fun, exciting technologies like Python, XML, and of course, Plone. Dmitry Makovey Dmitry Makovey started as a Pascal programmer in 1992 and slowly developed into an ASM programmer with conversion into C++, diverging into Perl & PHP, and finally Python. He has worked as both programmer and system administrator for over 10 years, working almost exclusively with Open Source products. He is currently Web Systems Administrator in Athabasca University, working on systems integration, which includes Plone as the CMS part of the puzzle. He has been 'doing' Plone for about two years now, covering all the aspects—installation, customization, and development of new content types. He maintains his own Plone-based product CMFSyllabus along with a couple of University in-house products. Jason Wilson James Wilson is an avid computer user running multiple operating systems. He got started on Plone when the company he works for wanted to utilize a popular content-management system that had a large user help section. In his free time he plays video games and lots of soccer. The season before last he won his division and scored some really cool shirts. He also enjoys watching movies and has a fairly extensive collection. Table of Contents Chapter 1: Introducing Plone 5 What Is Plone? 5 Plone Hierarchy 6 Operating System 6 Python 7 Zope 7 CMF 8 The Web 9 Content Management with Plone 9 Features 9 The Plone Community 11 Users 11 Developers 12 Plone License 13 Summary 13 Chapter 2: Installing and Running Plone 15 System Requirements 15 Server 15 Clients 16 Installing the Software 17 New Installations 17 Windows Installer 17 Mac Installer 21 Linux and BSD Packages 24 From Scratch 25 Running Plone 26 Linux and Unix 26 Command Line 26 Service 27 Windows 27 Plone Controller 27 Service 30 Mac OS X 30 Adding a Plone Site 30 Table of Contents Upgrading
Recommended publications
  • Load Balancing for Heterogeneous Web Servers
    Load Balancing for Heterogeneous Web Servers Adam Pi´orkowski1, Aleksander Kempny2, Adrian Hajduk1, and Jacek Strzelczyk1 1 Department of Geoinfomatics and Applied Computer Science, AGH University of Science and Technology, Cracow, Poland {adam.piorkowski,jacek.strzelczyk}@agh.edu.pl http://www.agh.edu.pl 2 Adult Congenital and Valvular Heart Disease Center University of Muenster, Muenster, Germany [email protected] http://www.ukmuenster.de Abstract. A load balancing issue for heterogeneous web servers is de- scribed in this article. The review of algorithms and solutions is shown. The selected Internet service for on-line echocardiography training is presented. The independence of simultaneous requests for this server is proved. Results of experimental tests are presented3. Key words: load balancing, scalability, web server, minimum response time, throughput, on-line simulator 1 Introduction Modern web servers can handle millions of queries, although the performance of a single node is limited. Performance can be continuously increased, if the services are designed so that they can be scaled. The concept of scalability is closely related to load balancing. This technique has been used since the beginning of the first distributed systems, including rich client architecture. Most of the complex web systems use load balancing to improve performance, availability and security [1{4]. 2 Load Balancing in Cluster of web servers Clustering of web servers is a method of constructing scalable Internet services. The basic idea behind the construction of such a service is to set the relay server 3 This is the accepted version of: Piorkowski, A., Kempny, A., Hajduk, A., Strzelczyk, J.: Load Balancing for Heterogeneous Web Servers.
    [Show full text]
  • Zope Documentation Release 5.3
    Zope Documentation Release 5.3 The Zope developer community Jul 31, 2021 Contents 1 What’s new in Zope 3 1.1 What’s new in Zope 5..........................................4 1.2 What’s new in Zope 4..........................................4 2 Installing Zope 11 2.1 Prerequisites............................................... 11 2.2 Installing Zope with zc.buildout .................................. 12 2.3 Installing Zope with pip ........................................ 13 2.4 Building the documentation with Sphinx ............................... 14 3 Configuring and Running Zope 15 3.1 Creating a Zope instance......................................... 16 3.2 Filesystem Permissions......................................... 17 3.3 Configuring Zope............................................. 17 3.4 Running Zope.............................................. 18 3.5 Running Zope (plone.recipe.zope2instance install)........................... 20 3.6 Logging In To Zope........................................... 21 3.7 Special access user accounts....................................... 22 3.8 Troubleshooting............................................. 22 3.9 Using alternative WSGI server software................................. 22 3.10 Debugging Zope applications under WSGI............................... 26 3.11 Zope configuration reference....................................... 27 4 Migrating between Zope versions 37 4.1 From Zope 2 to Zope 4 or 5....................................... 37 4.2 Migration from Zope 4 to Zope 5.0..................................
    [Show full text]
  • Table of Content Plone Installation
    Table of content 1. Plone Installation • Plone dependencies • Download Plone 4.3 Unified Installer • Install Plone 2. Install Baobab LIMS 3. Test your installation Plone Installation Here we describe how to install Plone onto the Ubuntu Linux system. For an installation in a different operating system check the Plone online documentation, here. The installation process requires users to have root privileges and a basic knowledge of Linux command lines using the Terminal. If you are not familiar with a UNIX operating system, read this tutorial Linux shell tutorial. Please note that a single line must be complete at a time. Plone dependencies Plone framework requires the installation of additional system packages. Without these packages available in your system, Plone will not compile. sudo apt-get install build-essential gcc python-dev git-core libffi-dev sudo apt-get install libpcre3 libpcre3-dev autoconf libtool pkg-config sudo apt-get install zlib1g-dev libssl-dev libexpat1-dev libxslt1.1 sudo apt-get install gnuplot libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 Download Plone 4.3 Unified Installer The Baobab LIMS is implemented and tested with Plone 4.3.11, a version released in 2016-09-12. You can download Plone 4.3.x by visiting the Plone site. Select and click on the Unified installer of your choice or use wget command line in your terminal with the path to the Plone version to install. Only Plone 4.3.11 can be used. wget --no-check-certificate https://launchpad.net/plone/4.3/4.3.11/+download/Plone- 4.3.11-r1-UnifiedInstaller.tgz Version 1.1 Installation If the download has been done from the Plone site, the installer would be located in the ~/Downloads directory.
    [Show full text]
  • The Application of Drupal to Website Development in Academic Libraries Cristina Tofan Eastern Kentucky University, [email protected]
    Eastern Kentucky University Encompass Library Faculty and Staff aP pers and Presentations EKU Libraries January 2010 The Application of Drupal to Website Development in Academic Libraries Cristina Tofan Eastern Kentucky University, [email protected] Follow this and additional works at: http://encompass.eku.edu/faculty_staff Part of the Library and Information Science Commons Recommended Citation Tofan, Cristina, "The Application of Drupal to Website Development in Academic Libraries" (2010). Library Faculty and Staff aP pers and Presentations. Paper 2. http://encompass.eku.edu/faculty_staff/2 This is brought to you for free and open access by the EKU Libraries at Encompass. It has been accepted for inclusion in Library Faculty and Staff Papers and Presentations by an authorized administrator of Encompass. For more information, please contact [email protected]. The Application of Drupal to Website Development in Academic Libraries Cristina Tofan Eastern Kentucky University Libraries 1. Introduction Academic libraries think very carefully about how they design their website, because the website is the primary avenue to provide access to resources, do library instruction, promote collections, services and events, and connect with students, faculty and potential donors. Library websites are expected to be able to respond to two major types of needs: to offer high functionality to the patrons, and to allow librarians and library staff to participate in the un‐intermediated creation and publication of content. Web content management systems are software systems that provide tools for both. In the realm of open source content management systems, Drupal has the lead compared to other systems, in its adoption in libraries.
    [Show full text]
  • Web CMS Comparison: Plone Vs. Drupal
    Web CMS Comparison: Plone vs. Drupal" Ken Wasetis - Contextual " [email protected]" twitter: @ctxlken" irc: ctxlken" www.contextualcorp.com 1 2 Why Compare? To Learn To Advise: Be able to compare/contrast in Web CMS discussion To Improve Every problem doesn’t require a hammer http://www.contextualcorp.com3 What is a CMS? Database-driven Content Repository + User Interface + Content Services ----------------------------------------------------- = CMS + Web ------------ = WCMS http://www.contextualcorp.com4 Content Services of CMS Version Control / Audit Trail & Rollback Capabilities Locking (check-in/check-out) Workflow / Approval Process Review Lists and Notifications Content Types - Built-in and/or Custom Fine-grained Permissions Searching/Indexing of Content *Plone is a Web CMS (WCMS) Tool (CMS for managing websites/web content) http://www.contextualcorp.com5 Content Versioning / Audit Trail http://www.contextualcorp.com6 Additional CMS Features Simple WYSIWYG Visual Editor / Rich Text Editing In-context Editing (sometimes) Content Preview with Theme Applied Accessibility (WCAG, Section 508, etc.) Visual Comparison of Revision Differences Management of Metadata (tags, keywords, pub dates, author, credits, other) Sitemap and Taxonomy Management Scheduling of Publishing/Expiration of Content http://www.contextualcorp.com7 Built-in Search http://www.contextualcorp.com8 Typical Add-on Features/Modules Web Forms Slideshows Calendar Microsites Faceted Navigation/Search Embed Videos RSS Feeds/Syndication SEO Enhancements Email Campaign
    [Show full text]
  • Linux Install and Configure Pound Reverse Proxy for Apache Http / Https Web Server 21/03/2011 15:17
    Linux install and configure pound reverse proxy for Apache http / https web server 21/03/2011 15:17 About Blog Forum Low graphics Shell Scripts RSS/Feed Flash Linux FAQ / Howtos Linux install and configure pound reverse proxy for Apache http / https web server by Vivek Gite on December 11, 2007 · 21 comments Q. How do I install and configure pound reverse proxy for Apache web sever under Debian Linux? A. Pound is a reverse-proxy load balancing server. It accepts requests from HTTP / HTTPS clients and distributes them to one or more Web servers. The HTTPS requests are decrypted and passed to the back- ends as plain HTTP. It will act as: a) Server load balancer b) Reverse proxy server c) Apache reverse proxy etc d) It can detects when a backend server fails or recovers, and bases its load balancing decisions on this information: if a backend server fails, it will not receive requests until it recovers e) It can decrypts https requests to http ones f) Rejects incorrect requests h) It can be used in a chroot environment (security feature) If more than one back-end server is defined, Pound chooses one of them randomly, based on defined priorities. By default, Pound keeps track of associations between clients and back-end servers (sessions). Install Pound Software Type the following command to install pound: $ sudo apt-get install pound If you are using RHEL / CentOS, grab pound rpm here and type the command: # rpm -ivh pound* If you are using FreeBSD, enter: # cd /usr/ports/www/pound/ && make install clean How it works? Let us assume your public IP address 202.54.1.5.
    [Show full text]
  • Loadbalancer.Org Appliance Administration V5.5
    Loadbalancer.org Appliance Administration v5.5 Copyright © Loadbalancer.org Limited 2002-2007 Table of Contents Loadbalancer.org Appliance Administration v5.5................................................................................1 Introduction......................................................................................................................................4 Console configuration......................................................................................................................4 Remote configuration......................................................................................................................6 Edit Configuration...........................................................................................................................7 Logical Load balancer configuration..........................................................................................7 Modify Logical Virtual Severs ..................................................................................................7 Modify Logical Real Severs .....................................................................................................11 Modify Global Settings ............................................................................................................13 Modify logical Virtual Servers (Layer 7 HAProxy)..................................................................14 Modify logical Real Servers (Layer 7 HAProxy)......................................................................15
    [Show full text]
  • Key Configurations and Some Apis
    APPENDIX A Key Configurations and Some APIs THIS APPENDIX CONTAINS some of the key development configurations for Zope, Plone, and Python. This appendix provides information for developers of sites, and it also lists some ofthe most usefulApplication Programming Interfaces (APIs). Setting Up Your Environment The following sections relate to configuring your development or production environment for optimal usage. If you're developing a lot with Plone, I rec­ ommend these settings. Setting Up PYTHONPATH Setting up PYTHONPATH is extremely useful because it allows you to easily access all the Zope functionality from a Python prompt. You can easily test if you have this set up-you can just attempt to import the PageTemplate module from Products. If this isn't set up, you should see the following: $ python -c "import Products.PageTemplates" Traceback (most recent call last): File "<string>", line 1, in ? ImportError: No module named Products.PageTemplates Unix} Linux} and Mac OS X First, find the Products directory of your Zope installation (not the instance horne). On the standard installation, this is at /opt/Zope- 2.7 /lib/python; on Windows it's at c: \Program Files\Plone\Zope\lib\python. When Python starts, it reads an envi­ ronmentvariable called PYTHONPATH and puts all those directories in thatvariable into the search path for new modules. So you need to add your directory to that variable. 465 AppendixA You do this using the export command, to see if PYTHONPATH contains anything initially, run the following: $ export I grep PYTHONPATH declare -x PYTHONPATH="/home/andy/modules" In my case, I already have an environment variable called PYTHONPATH, although chances are your computer won't have this set up.
    [Show full text]
  • An Introduction to Plone for Developers
    An introduction to Plone for developers Roché Compaan Founder of Upfront Systems A small consultancy founded in 1998, that specialises in web development with Zope and Plone Why do we love Plone? ● It is written in Python ● Rapid development ● Huge amount of web infrastructure (workflow, session, membership, security, webdav, ftp, xmlrpc) ● ZODB (Z Object Database) ● It scales ● Huge amount of 3rd party products (plone.org/products) Goals of this talk ● Show you how to install Zope and Plone ● Introduce Zope concepts (ZODB, Page Templates, Acquisition, ZEO) ● Do some development ● Introduce Plone features ● General Plone Plug Installing Plone ● Learn how to install from source so that you can experiment with versions that are not bundled in your distro. It©s the familiar configure make install dance. ● Always install a ZEO cluster so that you debug a running Zope. ● Some commands to remember: – Create a zope instance: /path/to/zope/bin/mkzopeinstance.py – Create a zeo instance: /path/to/zope/bin/mkzeoinstance.py – Start zope: /path/to/instance/bin/zopectl start – Run zope in debug mode: /path/to/instance/bin/zopectl fg – Debug zope: /path/to/instance/bin/zopectl debug – Start zeo: /path/to/zeoinstance/bin/zeoctl start ZODB ● Powerful object database for Python ● High read, low write database ● Use Python pickle module to serialise objects ● Transactional ● Uses multi-version concurrency control (MVCC) ● No locking, raise ConflictErrors ● Example Page Templates ● HTML-editor-safe way of dynamically generating HTML or XML: <span tal:content="request/name"> name appears here </span> ● Consists of: – Template Attribute Language (or TAL) – Macro Expansion for TAL (or METAL) Acquisition ● Allows dynamic behavior to be shared between Zope objects via containment.
    [Show full text]
  • Assessment of Content Management System Joomla and Plone for the Development of Dynamic Web Applications
    SIIPRIN Conference Proceedings Simposio Iberoamericano en Programación Informática (Ibero-American Symposium on Computer Programming) SIIPRIN’2017 Conference Paper Assessment of Content Management System Joomla and Plone for the development of dynamic web applications Valeria Andino1, Vinicio Ramos2, and Blanca Hidalgo2 1Empresa F&R Constructores, Riobamba, Ecuador 2Escuela Superior Politécnica de Chimborazo, Riobamba, Ecuador Resumen One of the tasks of content managers is to automatically perform the technical tasks of publishing on the web, which allows to control the content management for a website. This work is a compilation of the thesis of degree of its same name developed in the ESPOCH in him a performance analysis was implemented; comparing two prototypes one developed in PLONE and another in JOOMLA. The study establishes Corresponding Author: benefits, disadvantages and similarities between them. The method used was the Valeria Andino scientific inductive method that was applied to obtain and measure the results of [email protected] the performance variables. The result obtained in the comparative study, shows Received: 28 July 2017 that the content manager PLONE allows to obtain a yield of 99.92% of fulfillment, in Accepted: 5 September 2017 Published: 30 January 2018 comparison with JOOMLA with a percentage of 89.09%. Therefore, the study points to PLONE as the most efficient technology. Publishing services provided by Knowledge E Keywords: Ploone, Joomla, Dynamic web, Web Application Valeria Andino et al. This article is distributed under the terms of the Creative Commons Attribution License, which 1. Introducción permits unrestricted use and redistribution provided that the Hace algún tiempo la idea de web consistía en simplemente indicar una colección original author and source are credited.
    [Show full text]
  • State of Plone 4 and 5
    Stability versus new features STATE OF PLONE 4 AND 5 STATE OF PLONE 4 AND 5 Maurits van Rees, Dec 7 2020 PLONE CONFERENCE Hello everyone. I will be presenting the State of Plone 4 and 5. As a general theme throughout this talk I will focus on stability versus new features. WHO AM I? Maurits van Rees Netherlands -> Belgium Zest Software, Netherlands 15 years Plone Security Team Release Team I have lived in The Netherlands for most of my life. Two years ago I moved to Belgium, where I got married with Fiorella, the lovely lady on the right. And there is my daughter Nika and since 15 October I have a sonTobias. Since the beginning of 2020 I am the second release manager. The idea is that I focus on the current versions of Plone, getting regular, stable releases out. Since then I made four Plone releases: 4.3.20, 5.1.7, 5.2.2 and 5.2.3. I will talk a bit about those. https://plone.org/download/release-schedule But one of the first things that I did, was to create a Plone release schedule. This was inspired by the Django release schedule. Django has it a bit easier, because its core is only one package, where Plone has lots. So the Plone release schedule is by nature less predictable. You can fine the schedule at https://plone.org/download/release-schedule This is the place to go when you are looking for information on what is the latest version within a Plone release, and is this Plone release still supported, and how long will it be supported.
    [Show full text]
  • Zope Project and Community Documentation
    Zope Project and Community Documentation The Zope developer community Jun 21, 2021 Contents 1 The World of Zope 3 1.1 Frameworks...............................................3 1.2 Databases.................................................4 1.3 Application Servers...........................................4 1.4 Tools...................................................4 2 Documentation 5 2.1 Documentation..............................................5 3 Community 7 3.1 Community................................................7 3.2 Developer Information..........................................8 i ii Zope Project and Community Documentation Zope is a free and open source web application server written in the object-oriented programming language Python. Since its release in 1998, Zope continues to grow into many distinct applications, frameworks, libraries and tools. The World of Zope highlights the most important components. Zope community projects are hosted in the Zope Foundation organization on GitHub. Contents 1 Zope Project and Community Documentation 2 Contents CHAPTER 1 The World of Zope A Bit of History In 1996 Jim Fulton, now Zope Corporation CTO, was drafted to teach a class on common gateway interface (CGI) programming, despite not knowing very much about the subject. CGI programming is a commonly-used web development model that allows developers to construct dynamic web sites. Traveling to the class, Jim studied all the existing documentation on CGI. On the way back, Jim considered what he didn’t like about traditional CGI- based programming environments. From these initial musings the core of Zope was written while flying back from the CGI 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 provided a web publishing facility, text templating, and an object database, respectively.
    [Show full text]