OpenACS/LAMP Comparison
Introduction
OpenACS
LAMP
Comparisons
Introduction
The OpenACS and LAMP represent approaches to developing large scale web enabled database applications. Both have a very strong track record of enabling developers to quickly and efficiently build websites with complex functionality while still maintaining high performance. The are significant differences between the two, however. This article attempts to address these differences and why the OpenACS is a preferred approach to developing scalable, complex web applications.
Note: This article assumes the use of a Unix-oriented operating system for both toolkits such as Linux, FreeBSD or Solaris. The use of Microsoft Windows is outside the scope of the discussion.
OpenACS
The OpenACS is a framework for developing web applications. It is characterized by a specific set of components around which a group of developers have spent nearly 10 years developing a stable data model and a set of business logic for reuse in user-oriented, data-centric web applications. A free and open source project released under the GNU General Public License, the OpenACS can be thought of as consisting of four components:
Web Application Server
The OpenACS uses AOLserver, a high performance web application server that has been proven in perhaps the most highly used environments on the web as it runs AOL.com, Netscape.com, MovieFone.com, Mapquest.com and other major web properties. AOLserver is a unique combination of efficient database connection pooling, native database APIs and an easy to use embedded scripting language called Tcl. This collection of features make it a very powerful rapid web development environment.
Relational Database Management System
Originally written for Oracle, the industry leading RDBMS, the OpenACS now uses either Oracle or PostgreSQL, the most advanced open source relational database. Both systems offer excellent performance, stability and features that the OpenACS community leverages to create complex data driven applications. These features include native atomic transactions, foreign key constraints and native procedural languages.
OpenACS Business Logic and Data Model
The truly unique component of the OpenACS is the time tested business logic and data model. These components have been in development and use for nearly 10 years and have seen over $50M of investment in their design, documentation and implementation. The components include a well defined and flexible templating language, extensive user registration, extremely powerful permissioning model and well considered security and authorization mechanisms. In addition, the OpenACS provides mechanisms for data input validation and automated testing among other things. These foundations provide developers with the ability to rapidly create and deploy packages such as forums, portals or a customized application.
The business logic of the OpenACS is written in Tcl, a popular scripting language that is embedded in AOLserver. Tcl is not as popular in the web development world as its "P" cousins, but it is a very well known and extensive scripting language. It is marked by a very shallow learning curve, simple syntax and excellent performance. Used, of course, by AOL for its web properties, Tcl also is heavily used in the networking world (Cisco uses it as the embedded language for its router hardware) and in the automated testing industry.
Community
The OpenACS has a large, focused and committed community of developers and users. The community consists of individuals, corporate vendors and institutional users. Some of the users include very influential organizations such as Greenpeace International, MIT's Sloan School of Management and the E-LANE consortium - a group of organizations in Latin and Spanish speaking nations collaborating as part of a grant from the European Union. Openacs.org is the nexus for this community to develop new tools, share experience and assist one another.
Support, training, and documentation are typical points of comparison between open-source and proprietary platforms, and rightly so. In this comparison, OpenACS comes out quite well in many areas. In some cases, users have assessed the level of support and basic documentation available for free from the community as superior to that from commercial vendors or from other open-source systems.
LAMP
The LAMP approach to web development is similar in scope but a different approach than the OpenACS. While the OpenACS is a framework that has a specific standard and focus, LAMP is far more open and represents many different approaches.
Apache
Apache is perhaps the most successful open source software project in the industry, running nearly two thirds of the sites on the web. It has proven itself in very demanding environments as a stable and flexible tool. It focuses on performing a single task, namely the processing of requests from web clients.
MySQL
MySQL is a popular free and open source database that has gained recognition for its friendly slant towards new developers and for its performance. It is well documented and has been used in many web applications and web sites.
Perl/PHP/Python
The final component of a LAMP system is a scripting language such as Perl, PHP or Python. Each language has a passionate and well developed community. They are all well documented and have a excellent track records where they have been used to deploy systems. Each has a module that acts as a web application server for Apache (e.g. mod_perl). Each language has a number of application frameworks that are independent but can be connected to one another fairly easily. For instance, Drupal can be connected with phpBB and OScommerce to create a CMS, bulletin board and ecommerce website.
Community
The LAMP community is indeed very large. There is a great number of books and websites dedicated to explaining how to use various components to create an application. Orielly's onLAMP.com is one such resource.
The sheer number of companies, individual developers and other resources makes the LAMP platform secure in its longevity. A customer will not have a difficult time finding developers who are familiar with its components or developers who can become familiar with the components quickly.
Comparisons
AOLserver vs Apache
The comparison of AOLserver and Apache is probably better explained as the comparison of AOLserver and Apache+mod_perl+mod_dbi. In other words, AOLserver's is a clean and simple integration of the equivalent of three separate Apache products - the web server, the application server and the database connector. In addition, AOLserver's multi-threaded architecture and database connection pooling provides very efficient performance in data intensive applications.
For instance, AOL uses AOLserver in their largest properties to process requests millions of simultaneous, data intensive requests. With a very simple Tcl script calling native database APIs that can access the first available database connection in the pool, AOL can easily manage sites like Moviefone.com, DigitalCities.com and Mapquest.com
Apache plus an application server module can certainly manage a similarly large site as many have proven. However, the administrative overhead of running multiple services is not as elegant as the AOLserver architecture. There are those, however, that prefer such a separation of web and application server in what is called a "multi-tiered architecture."
The OpenACS community believes that the efficiency gains - in terms of stability, performance and administrative ease - of an integrated web application server we've never felt the attraction of migrating to Apache.
PostgreSQL or Oracle vs MySQL
MySQL is perhaps the most popular open source SQL database in the free and open source software world. It is marked by being very well documented, tested in various real world applications and excellent performance for web applications. The community is quite healthy and the database seems to be improving.
The OpenACS was originally developed for Oracle and so it relies heavily on database features that only recently MySQL has begun to address. These features include native transaction atomicity (that is, a command is either completed or it is not - there is no halfway), foreign keys (data that is related to another table is consistent and that consistency is always enforced) and a procedural language which assists in the writing of complex data queries. It has always been the opinion that these items, in addition to others, are so critical for the integrity of the data of the application that we will not use MySQL until all of them have been implemented as first class features.
However, MySQL has achieved a great deal of popularity despite what we consider to be serious limitations. This popularity is due to the fact that MySQL has performed exceedingly well when developers have written applications that compensate for such shortcomings, in cases where the data stored is transient or data integrity is not as critical a characteristic for the application as performance.
Luckily, there is another free and open source database called PostgreSQL that not only conforms to the principles that the OpenACS community considers critical but has proven to be as performant as MySQL in real world scenarios. It has native transaction atomicity, supports foreign keys and has a number of procedural languages to choose from, including one that is a clone of Oracle's (which helps us maintain support for both databases.) PostgreSQL also continues to prove itself in demanding environments, including running the .ORG and .INFO registries.
As a result, we feel that in using PostgreSQL for the OpenACS, we have the best of both worlds - a free and open source database that is high performance and flexible while providing us with first-class data security and integrity.
(As a note, MySQL does have support for transactions and foreign keys with an external module called InnoDB. But these features are not turned on by default and they are not native. MySQL 5 promises to change both flaws, but it is not suitable for production use at this time, neither does it fix the absence of a quality procedural language..)
The OpenACS Business Logic and Data Model vs Perl/PHP/Python
This is perhaps the most difficult comparison to make because the items are not the same. The OpenACS is a framework that is written in Tcl because AOLserver is an excellent product that happens to have Tcl as an embedded scripting language. LAMP applications are often written because the developers' have a preference for Perl, PHP or Python.
The best comparison that can be made, then, is which approach provides the most consistency, stability and maintainability for the developers. The OpenACS is a foundation upon which complex applications can be built using a shared data model and reuse of standard components like a templating system, workflow and content repository. Most importantly, the permissioning infrastructure provides a way to design, build and administer secure data driven applications.
There are many similar applications in the LAMP world (Drupal, BinaryCloud, Midgaard, Typo3) but none of them have the track record or the fundamentally sound data model as the OpenACS. Furthermore, each only addresses part of the problem, either as a content management system, as a bulletin board application or an ecommerce package.
As a result, developers in the LAMP world often find themselves developing from first principles over and over again. This means that each time they develop a new system, they design the basic data model for user registration, authentication, content management, etc and then begin gluing different tools together. Even with excellent code repositories like CPAN for Perl for Perl or PEAR for PHP these efforts are usually ad hoc. They also lack a permissioning infrastructure that can manage the overall security of the application.
For instance, taking a content management system like Drupal, a bulletin board system like phpBB and an ecommerce package like OScommerce, each of which is extremely well built in their own right, but the developer must design a way to share each respective application's idiosyncratic data representation.
The OpenACS' shared data model, templating system and service oriented model allows for developing such a system much easier. The standard data model, presentation code and information processing facilities allows the developer to quickly cobble together a stable, powerful and maintainable application. Most importantly, the well designed and tested permissioning infrastructure allows developers to build very flexible and secure data-driven applications.
OpenACS vs LAMP communities
The LAMP community as a whole certainly dwarfs the OpenACS community. Considering that LAMP represents an approach including three or four languages vs the OpenACS which is a focused community, this is not surprising.
This is certainly a strength of LAMP. The fact that it is very simple to find developers who are familiar with each tool rather than a framework is something that a user should consider when selecting a software tool. The plentiful documentation is also extremely heartening.
The OpenACS community, however, is very successful and flourishing. There are over 25 international institutions that have deployed .LRN, the free and open source course management system. There are over 20 vendors listed on the OpenACS.org home page offering commercial support. The OpenACS forums and IRC channel is very active as developers discuss ways to enhance the framework.
The LAMP approach includes hundreds or thousands of different platforms. What this means for any specific LAMP solution is that it may draw from a broader library of other programs, but the list of actually tested, integrated pieces and of dedicated developers may be much smaller. LAMP developers are fragmented across many projects, but OpenACS holds the lions share of attention for its technologies and resists community splintering remarkably well.
While the LAMP community is much larger, the OpenACS has established itself in a community of users where technical proficiency and stability is most important. Due to and for this reason, the OpenACS community is vibrant and healthy.
The author would like to thank the following people for helping with this document: Joel Aufrecht, Dave Bauer, Carl Blesius, Cesar Brea, Bruno Mattarollo and Alfred Werner.
Copyright (c) 2004 Talli Somekh
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
in last 30 minutes
OpenACS.org
- HOME
- News
- OpenACS Projects
- Activity Graph
- Admin Package RFC
- Bugtracker Cleanup Project
- Collaboration Graph
- Community Metrics in OpenACS
- Debian/Ubuntu installer developing
- Documentation Project
- Documentation Project Discussion
- Documentation Project Plan (Approach 4)
- {done} Change Log from OpenACS 5.4.2 to OpenACS 5.4.3
- {done} OpenACS 5.3.x releases
- {done} Release Notes OpenACS 5.4.3
- Dynamic Object Types and Attributes
- Ecommerce G2
- E-Mail: Event Handling
- E-Mail: Incoming E-Mail
- E-Mail: Outgoing E-Mail
- Forums Project
- GETable resources, that should be POSTable resources
- Interface / CSS Coding Guidelines
- Logo
- .LRN
- Mentorship Program
- Migration from CVS to GIT
- Official Test Servers
- OpenACS 5.10.0 Change Summary
- OpenACS 5.10.1 Change Summary
- OpenACS 5.9 HTML validity fixes
- OpenACS/.LRN for Debian
- OpenACS Packaging for Debian and Ubuntu
- OpenACS Release Status
- OpenACS TODO List
- Package Object Types
- Package Testing Process
- Prerequisites and Procedures for Migrating to Subversion from CVS
- Site Nodes Proposal (Draft)
- Site Wide File Upload
- Site Wide Image Upload Widget
- (Sketch for) OpenACS Home
- Theme Manager
- Theming Project
- Translation server for OpenACS packages
- User interface mockups
- Website_Redesign
- XoWiki Design Ideas
- YUI Project
- Marketing
- Our Website
- Packages
- Available OpenACS Packages
- Core Packages
- ACS Admin
- ACS API Browser
- ACS Authentication
- ACS Automated Testing
- ACS Bootstrap Installer
- ACS Content Repository
- ACS Core Docs
- ACS Default Theme
- ACS Developer Support
- ACS Kernel
- ACS Lang
- ACS Mail Lite
- ACS Messaging
- ACS Reference Data
- ACS Service Contract
- ACS Subsite
- ACS Tcl
- ACS Templating
- ACS Translations
- Intermedia Driver
- Notifications
- Reference Data - Country
- Reference Data - Language
- Reference Data - Timezone
- Search
- Tsearch2 Driver
- Non-Core Packages
- ACS Date Time
- ACS Events
- ACS Interface
- ACS Object Management
- Address Book
- Ad Server
- Ajax Filestore UI
- Ajax Helper
- Ajax Photoalbum UI
- Anonymous Evaluation
- Assessment
- Attachments
- Attendance
- Attribute Management System
- Auth CAS
- Authentication Server
- Auth HTTP
- Authorize.net Gateway
- Beehive
- Bookmarks
- Bookshelf
- Boomerang Plugin
- B Responsive Theme
- Bug tracker
- Bulk mail
- Calendar
- Calendar Includelet
- Cards
- Categories
- Chat
- Chat Includelet
- Clickthrough
- Clipboard
- CMS
- CMS News Demo
- Connections
- Contacts
- Contacts Lite
- Content Includelet
- Cookie Consent Widget
- Cronjob
- Curriculum
- Curriculum Central
- Curriculum Tracker
- Datamanager
- dbm
- Diagram
- Directory
- Download
- Dynamic Object Type
- E-Commerce
- Ecommerce Serial Number Tracking
- Edit This Page
- EduWiki
- Email Handler
- Evaluation
- Expense
- Expense Tracking
- EZIC Gateway
- Facebook API
- FAQ
- Feed parser
- File Manager
- File storage
- File Storage Includelet
- Forums
- Forums Includelet
- GateKeeper
- General comments
- Glossar
- Glossary
- Image Magick
- IMS Enterprise
- Imsld
- Invoices
- Jabber
- Lab Report
- Lab Report Central
- LAMS Integration
- LAMS Integration Configuration
- Latest
- Layout Managed Subsite
- Layout Manager
- LDAP Authentication Driver
- Learning Content
- Logger
- LORS management Includelet
- Mail Tracking
- MMplayer
- Monitoring
- New portal
- News
- News aggregator
- News Includelet
- Notes
- OCT Election
- openacs-bootstrap3-theme
- Organization
- Outdated Library functions
- Package Builder
- Page
- Pages
- PAM Authentication Driver
- Payment Gateway
- Permissions Administrator
- Photo album
- Planner
- Poll
- Postal Address
- Post Card
- Press
- Profile provider
- Project Manager
- Q-Forms
- Quota
- Q-Wiki
- Ratings
- Recruiting
- Redirect
- Reference Data - Currency
- Reference Data - ITU Code
- Reference Data - UNSPSC code
- Reference Data - US County
- Reference Data - US State
- Reference Data - US Zipcode
- Related Items
- Richtext CKEditor 4
- Richtext CKEditor 5
- Richtext TinyMCE
- Richtext Xinha
- Robot Detection
- RSS support
- S5
- Sample Gateway
- Schema Browser
- Scholarship Fund
- Scorm Core
- Scorm Importer
- Scorm Player
- Scorm Simple LMS
- Selva theme
- Shipping Service Contract
- Simple Survey
- Simulation
- Site-wide Search
- Skin
- SOAP db
- SOAP Gateway
- Spreadsheet
- Static Pages
- Survey
- Survey Library
- Survey Reports
- T Account
- Tasks
- Tcl SOAP
- Telecom Information
- Trackback
- User preferences
- User profile
- Value-based Shipping
- Version Control
- Views
- WebDAV Support
- Weblogger
- Webmail System
- Wikipedia
- Wimpypoint slim
- Workflow
- XCMS User Interface
- XML RPC
- XO Learning Performance
- xolirc
- xooauth
- XOTcl Core
- XOTcl Request Monitor
- xowf plugin for Monaco code editor
- xowf (XoWiki Workflow)
- XoWiki
- XoWiki Includelet
- ecommerce-g2
- Accounts Desk
- Accounts Finance
- Accounts Payables
- Accounts Payroll
- Accounts Receivables
- Bulk Upload
- CL Custom Commerce
- Customer Service
- E-commerce 2
- Fabrication
- Field Service
- General Ledger
- Human Resources
- Inventory Control
- Manufacturing Design
- Online Catalog
- Production
- Reference Data - GIFI
- Ship-Track
- Vendors-Suppliers
- DotLrn
- Anon Eval Applet
- Anon Eval Portlet
- Application track
- Application track Applet
- Application track portlet
- Assessment Applet
- Assessment portlet
- Attendance Applet
- Beehive Applet
- Beehive Portlet
- Bulk mail Applet
- Bulk mail Portlet
- Calendar Applet
- Calendar portlet
- Cards applet
- Cards portlet
- Chat Applet
- Chat Portlet
- Contacts Applet
- Contacts Portlet
- Content Applet
- Content Portlet
- Courses
- Curriculum Applet
- Curriculum Portlet
- Datamanager Portlet
- dotLRN
- dotLRN Administration
- dotLRN applet
- dotLRN Bootstrap 3 Theme
- dotLRN Course Catalog
- dotLRN Datamanager Applet
- dotLRN - Ecommerce
- dotLRN portlet
- dotLRN Roadmap
- Edit-this-page Applet
- Edit-this-page Portlet
- EduWiki Applet
- EduWiki Portlet
- Evaluation applet
- Evaluation portlet
- Expense-tracking Applet
- FAQ Applet
- FAQ Portlet
- File Storage Applet
- File Storage Portlet
- Forums Applet
- Forums Portlet
- Glossar Applet
- Glossar Portlet
- Homework Applet
- IMS-LD Applet
- IMS LD Portlet
- Invoices Applet
- Invoices Portlet
- Jabber Applet
- Jabber Portlet
- LAMS Integration Applet
- LAMS Integration Portlet
- Latest Applet
- Latest Portlet
- Learning Content Applet
- Learning Content Portlet
- LORS central
- LORS - Learning Objects Repository Service
- LORS management
- LORS management Applet
- LORS management Portlet
- Messages Applet
- Messages Portlet
- MMplayer Applet
- MMplayer Portlet
- News Aggregator Applet
- News Aggregator Portlet
- News Applet
- News Portlet
- Photo Album Applet
- Photo Album Portlet
- Private-Message
- Project-manager Applet
- Project Manager Portlet
- Quota Applet
- Quota Portlet
- Random-photo Applet
- Random-photo Portlet
- Recruiting Applet
- Recruiting Portlet
- Research Applet
- Research Portlet
- Static Applet
- Static Portlet
- Survey Applet
- Survey Portlet
- Syllabus Applet
- Tasks Applet
- Tasks Portlet
- Theme Zen
- User Tracking
- User Tracking Applet
- User Tracking Portlet
- Weblogger Applet
- Weblogger Portlet
- Wikipedia Applet
- Wikipedia Portlet
- Wimpypoint Slim Applet
- Wimpypoint Slim Portlet
- XoWiki Applet
- XoWiki Portlet
- Contrib Packages
- Acknowledgement
- BCDS
- BCMS
- BCMS UI Base
- BCMS UI Wizard
- Classified Ads
- COP Base
- COP UI
- Events Management
- Form To Mail
- Irc Applet
- IRC Logger
- Mail Clickthrough
- mailing-lists
- PayFlowPro Gateway
- Personal Community
- Photobook
- Populate
- Research Papers
- Resource List
- Room Reservation
- Users Selection
- Vocabulary
- Deprecated Packages
- {deprecated} ACS Content
- {deprecated} ACS LDAP Authentication
- {deprecated} ACS Mail
- {deprecated} ACS Utility Services
- {deprecated} Bboard Portlet
- {deprecated} dotFOLIO
- {deprecated} dotFOLIO UI
- {deprecated} dotLRN BBoard Applet
- {deprecated} OpenFTS Driver
- {deprecated} Portal
- {deprecated} Sloan Bboard
- {deprecated} Spam System
- {deprecated} Webmail
- {deprecated} Wiki
- {deprecated} Workflow Service
- Community
- Getting admin-level help
- Getting help
- Goals / Ideas
- History of OpenACS
- Marketing Team
- Most Popular Pages
- OpenACS Translation server
- Events
- 2006 Fall Conference Interest in Attending
- 2006 Fall Conference Presentations
- 2006 Fall Conference Submissions and Program
- 2006 International Workshop on Community Based E-Learning Systems
- 2006 November 2nd (General Web Applications Focus - OpenACS)
- 2006 November 3rd and November 4th (Training and Hacking Days)
- 2006 OpenACS/.LRN Fall Conference
- 2006 Session 1: Towards full Accessibility in LMS
- 2007 Project Ideas for Google Summer of Code
- OpenACS conferences
- OCT
- F. A. Q.
- .LRN
- 2006 Fall Conference Submissions and Program
- Content development tools options
- Documentation and help pages for individual .LRN installations
- Educational Wiki (Eduwiki) Tool
- How to contribute code that passes accessibility tests
- Learning Content Tool
- .LRN
- .LRN Accessibility
- .LRN Core Team (DRAFT)
- .LRN Educational standards support
- .LRN Get Involved!
- .LRN Governance
- .LRN Installation
- .LRN Installation (up to .LRN 2.5.0)
- .LRN Leadership Team 2008
- .LRN Meetings
- .LRN Motions (DRAFT)
- Modelling Learners Preferences
- Plataforma Elearning
- SCORM support
- Simple Content Creator / Editor
- Time/Topics Planner for dotLRN Courses
- Consortium
- Releases
- .LRN 2.2 bugs
- .LRN 2.2 Release Management
- .LRN 2.2 to .LRN 2.3.0 Change Log
- .LRN 2.3.0 to .LRN 2.3.1 Change Log
- .LRN 2.3.1 Release Notes
- .LRN 2.3.1 to .LRN 2.4 Change Log
- .LRN 2.3 Release Management
- .LRN 2.4.0 to .LRN 2.4.1 Change Log
- .LRN 2.4.1 Release Notes
- .LRN 2.4 Release Management
- .LRN 2.4 Release Notes
- .LRN 2.5 Release Management
- Zen Project
- Coding Standards
- ADP Files
- Ajax and Accessibility
- Code Formatting
- Coding Standards - Index
- Commit Messages
- Emacs as an OpenACS IDE
- How to contribute code that passes accessibility tests
- Logging Conventions
- .LRN Zen Project: Standards
- Naming Conventions
- Security Guidelines
- SQL - XQL
- Tcl pages
- Tcl Procs
- template::head::*
- Vi as an OpenACS IDE
- WCAG 1.0 Checkpoints
- Web Forms
- Web Lists / Tables
- External Resources
- Cookbook
- Accessing LTI services from OpenACS
- Add extra headers
- Cookbook
- Creating adp box tags for consistent html/css
- Double Click Handling
- E-Mail: Event Handling
- E-Mail: Incoming E-Mail
- E-Mail: Outgoing E-Mail
- F. A. Q.
- Fresh install of OpenACS 5.10 on Oracle 19c
- Handling out of memory on "exec" calls
- Host Node Map
- How to configure a Network Place under Windows XP to access file-storage via WebDAV
- How to handle "connection already closed" errors
- How to manage/upgrade CKEditor versions
- How to tune cache sizes
- Interfacing with MS Teams and related services (Microsoft Graph)
- Managing Versions of External JavaScript Libraries
- Modifying the look of an installation
- NaviServer and OpenACS with Docker
- New Interface for Calling Database functions
- OpenACS Performance Tuning
- Passing values up from an include
- Permissions explored, a practical way exists
- Refactoring Recipes
- Running OpenACS behind a proxy
- Security: Content Security Policy (CSP)
- Security: Cross Site Request Forgery (CSRF)
- Server-sent events
- Setup with docker-s6
- SQL: How to log (slow) queries in the system log
- Streaming HTML
- Using OpenACS with External Identity Providers
- Using Pound as a reverse Proxy
- When to use URLencode
- XoWiki: How to save files directly in the wiki
- XoWiki: List of the available includelets
- Resources
- Accessibility
- Testing Pages
- category test
- Commit graph
- Commits
- Comparison of the CTRL Surveys Package vs. the OACS Assessment Package
- fullpage
- just playing around
- name with space
- OpenACS Object Types
- Pastebin for irc
- preview.png
- QUOTA
- Recently Changed Pages
- toc-test-page
- Wikipedia
- XoWiki Slides from the Vienna OpenACS conference
- Directory - Who's Who
- Documentation
- Collaboration Graph
- Documentation Credits
- Documentation History
- Documentation Introduction
- Documentation Process test-doc (Approach 3)
- Documentation Project Discussion
- Documentation Project Plan (Approach 4)
- for administrators
- for administrators - Table of Contents
- for beginning developers
- for developers
- for developers - Table of Contents
- for everyone
- for everyone - Table of Contents
- Most Popular Pages
- OpenACS Handbook
- Try Openacs
- WikiDoc Project Notice
- Package Documentation
- Aliases at CVS
- Available OpenACS Packages
- Packages available in the oacs-5-10 channel
- Packages available in the oacs-5-9 channel
- Documentation Non-Core Packages
- Marketing Documentation
- Tutorials
- Developer Tutorial - Req.
- for beginning developers
- Introduction to OpenACS
- Next Steps After Installation, Debian Specific
- OpenACS/dotLRN windows installer how to
- Theming in OpenACS
- Tutorials for Designers
- Tutorials for Users
- Tutorials for Administrators
- Tutorials for Programmers
- Add extra headers
- Automated Installs - Using install.xml
- Body Onload javascript event
- Emacs as an OpenACS IDE
- listbuilder tutorial
- OpenACS 5.1.4 / PG 7.3.6 => 5.2.3/8.0.7 Upgrade Path for acs-core
- OpenACS mode for Emacs
- Vi as an OpenACS IDE
- Webinar - Part 1 - Basics
- Webinar - Part 2 - Site Map Administration
- Webinar - Part 3 - Packages and ad_form
- Webinar - Part 4 - Survey
- Tutorials - The N00B Journey
- Core Documentation
- Subsystems Documentation
- Administrators - Req.
- AOLserver
- AOLserver administration
- Available OpenACS Packages
- Boost your application performance to serve large files!
- Conditional CREATE Index for Postgresql and Oracle
- Deployment feedback channel
- Developer - Requirements
- Developer Tutorial - Req.
- Emacs as an OpenACS IDE
- End-users - Requirements
- for administrators
- for administrators - Table of Contents
- for beginning developers
- for developers
- for developers - Table of Contents
- for everyone
- for everyone - Table of Contents
- Get the OpenACS Source Code
- Getting admin-level help
- hstore
- Install a *nix-based operating system (OS)
- Install AOLserver
- Install AOLserver 4.5
- Installation - Req.
- Installing OpenACS
- Installing OpenACS on Arch Linux
- Installing OpenACS on debian
- Installing OpenACS on FreeBSD
- Installing OpenACS on FreeBSD (quick)
- Installing OpenACS on FreeBSD with ports
- Installing OpenACS on Mac OS X
- Installing OpenACS on Redhat
- Installing OpenACS on RPM-based systems
- Installing OpenACS on Solaris
- Installing OpenACS on SuSE
- Installing OpenACS on win2k
- Installing OpenACS on Windows
- Install OpenACS distribution
- Install OpenACS on debian unstable / Ubuntu 7.10
- Install OpenACS on Linux
- Install OpenACS on Mac OS X 10.5 / 10.6 (Snow Leopard) Using Macports
- Install OpenACS - prereqs
- Install OpenACS with NaviServer from Scratch
- Install Oracle
- Install Postgresql
- Install Tcl
- Mail Transport Agents
- Monitoring Naviserver
- Nagios Monitoring
- NaviServer
- Next Steps After Installation, Debian Specific
- *nix operating system
- OpenACS compatibility matrix
- OpenACS Debian Install quicksheet
- OpenACS/dotLRN windows installer how to
- OpenACS/dotLRN Windows Installer Instructions
- OpenACS/.LRN for Debian
- OpenACS/.LRN for Ubuntu
- OpenACS Monitoring
- OpenACS Performance Tuning
- OpenACS Reference Platform
- OpenACS subsystem
- OpenACS system
- Oracle
- Oracle Notes
- Postgres 8.1.x to 9.1
- PostgreSQL
- PostgreSQL Administration
- PostgreSQL's Tsearch2
- Securing your system
- Source control
- Tcl
- Tcl Thread Library
- tDOM
- tDOM with OpenACS
- Testing with Selenium
- Testing with TCLWebtest
- Upgrade between PostgreSQL versions
- Upgrade from PostgreSQL 9.6 to 13.1
- Upgrade to OpenACS 5.10
- Upgrade to OpenACS 5.8
- Upgrade to OpenACS 5.9
- Vi as an OpenACS IDE
- ::xo::db Object Relational Database Interface
- XOTcl