Created by OpenACS community, last modified by Gustaf Neumann 01 May 2015, at 09:43 AMTo try OpenACS, you might lease a hosted system with OpenACS installed on it:
Created by OpenACS community, last modified by Benjamin Brink 09 Sep 2013, at 07:44 PM
OpenACS for everyone
OpenACS (Open Architecture Community System) is:
- an advanced toolkit for building scalable, community-oriented web applications.
- a robust, scalable framework (see: en:openacs-system) for building dynamic content driven sites and enterprise-level web applications.
- a collection of pre-built applications and services that you can build on to create a custom web-site or application.
- derived from the ArsDigita Community System (ACS). ArsDigita (now part of Red Hat, Inc.) kindly made their work available under the GPL, making all of this possible.
Through a modular architecture, OpenACS has packages for user/groups management, content management, e-commerce, news, FAQs, calendar, forums, bug tracking, wiki (XoWiki ), full-text searching etc. See OpenACS repository.
- Ready "out of the box" for common features of collaborative web sites
- Proven Architecture. Components of the OpenACS (see en:openacs-system) are proving themselves in the most demanding of applications
- Designed for scalability See: http://en.wikipedia.org/wiki/Scalability#Design_for_scalability
- Proven in the field. OpenACS is working well, deployed at sites that have upwards of 40K users (See: AIESEC and OpenACS sites)
- Responsive Community See: en:community-culture
- Commercial Support In addition to Commercial Support, there are many independent consultants available for hire. This collection of commercial providers work together to maintain OpenACS in addition to competing for clients. Sometimes vendors work together for the same client. Most importantly, no client is ever left without support, even if his or her original provider goes out of business.
- Documentation is continually evolving and improving. (See: en:Documentation_Project)
- Institutional commitment. Including MIT Sloan School of Management which has initiated and led the development of .LRN, an open-source courseware system built on OpenACS. (See Institutions supporting .LRN)
- Extensible See: http://en.wikipedia.org/wiki/Extensible
What others say about OpenACS
- ohloh.net valuates Open Source projects, and OpenACS' is here: http://www.ohloh.net/projects/3877 and http://www.ohloh.net/projects/3877/analyses/latest along with an OpenACS thread elaborating on it.
- One users review of OpenACS, comparing it to LAMP, .NET, and the competition.
- What I saw at the revolution: .LRN/OpenACS meetings in Heidelberg, Germany 2004 by Cesar Brea
- FLOSS Usability report
Testimonials posted to forums on OpenACS
- OpenACS #1 for high traffic websites (Aug 2013 sample)
- One week after switching to naviserver from aolserver on openacs.org (Aug 2013)
- How does OpenACS Scale?
History of OpenACS
See: History of OpenACS en:docs-history
Bibliography and Credits
See: Documentation Credits en:doc-credits
Created by OpenACS community, last modified by Gustaf Neumann 12 Mar 2011, at 11:40 PM
Tutorials for OpenACS development
- Learn the pieces gradually and learn to read the docs so you can eventually Become Expert in the basics!
- Paper: OpenACS: robust web development framework (PDF)
- OpenACS Development Tutorial
- Emacs as an OpenACS IDE
- Vim as an OpenACS IDE
- Getting admin-level help
- OpenACS for administrators
- Prerequisites to installing OpenACS
- Coding Standards - Index
- Getting WAI-AA compliance from an unzenned package
- [OpenACS "cookbook", how-to tutorials]
- XOTcl for OpenACS developers (PDF) - includes basics of object-oriented programming
- XOTcl for OpenACS - An Introduction to XOTcl and the basic infrastructure of xotcl-core
- Learning XoWiki - A Tutorial for the XoWiki Toolkit
- Webinar - Part 1 - Basics
- Webinar - Part 2 - Site Map
- Webinar - Part 3 - Packages and ad_form
- Webinar - Part 4 - Survey
- Jade Rubick's Article Collection
Other related tutorials
- Tcl for Web Nerds
- A tDOM Tutorial
- SQL for Web Nerds
- Software Engineering for Internet Applications
- Philip and Alex's Guide to Web Publishing
- Anti-patterns, patterns to avoid in programming and managing systems
See also: OpenACS Mentorship Program
Other useful resources
LPI certification exam preps - A series of articles from IBM developerworks on basic and intermediate Linux skills (requires registration)
UNIX Power Tools - An excellent introduction to the command line tools and basic programs of UNIX
UNIX System Administration Handbook (formerly the "red book" - now the "purple" book)
UNIX System Administrator's Bible - (LePage and Iarerra 1998; IDG)
Created by OpenACS community, last modified by Torben Brosten 22 Aug 2008, at 08:37 AM
The managing of OpenACS documentation has evolved through a few phases. This is a draft plan for the current phase that we are beginning. Please direct any comments about this plan to the OpenACS Development forum (or in context with the appropriate wiki page ;)
to write superb documentation, so that users, developers and administrators of OpenACS installations can enjoy working with and using the system (with fewer headaches! =)
API Documentation: there are no plans to move the API docs to XoWiki. That ought to remain as is.
DocBook docs at: http://openacs.org/doc/index.html need significant work done.
Requirements is about setting specifications and milestones we can verify, and includes exploration of scenarios, use cases etc.
Here are documentation requirements for:
- en:docs-end-user-reqs includes Marketing documentation requirements and Package documentation requirements
- volunteers dedicated to regularly managing and updating the documentation
- other volunteers who contribute arguably more valuable documentation less frequently (such as magazine articles ;) (and may need some assistance etc. to have their work fit into docs well.)
- openacs.org website, including use of xowiki
- open-source software, text editors, spell checkers, html code validators etc.
Approaches in docs management exploredSee en:Documentation_Project_Discussion
Strategy is about creating an approach to doing work. It guides behavior and tactical decisions on the work effort.
Shape ongoing documentation efforts by using principles of continual improvement to re-engineer documentation production and management.
OpenACS documentation development is subject to the constraints of the software project development and release methods and cycles (the section called “Using CVS with OpenACS”). Essentially, all phases of work may be active to accommodate the asynchronous nature of multiple subprojects evolving by the efforts of a global base of participants with culturally diverse time references and scheduling idiosyncrasies.
The documentation strategy is to use project methods to involve others by collaborating or obtaining guidance or feedback (peer review) to distribute the workload and increase the overall value of output for the OpenACS project.
Work Breakdown Structure
Is about explicitly stating the way to implement the strategy as a set of milestones and the methods to use.
Status: this is a draft document, so there is no consensus on a WBS at this time. See en:Documentation_Project_Discussion for current activity.
This is where we measure how well this plan was implemented. Success is measured by A) verifying if the project has met the established goals and requirements, and B) reviewing for ongoing problem areas etc. Observations then help to modify the plan for the next documentation revision.
OpenACS follows verification through different means on different projects, but in all cases, the OpenACS community verifies the project as a success through feedback including bug reports, user and administrator comments, and code changes.
Related links and sources
Created by OpenACS community, last modified by Torben Brosten 22 Aug 2008, at 08:32 AM
OpenACS for developers
Besides the quality components of Openacs (See: en:openacs-system), OpenACS has these enterprise-quality features for developers:
- high-performance XML data processing with easy, powerful Tcl scripting functionality using en:tdom (as of OpenACS version 5.0)
- XOTCL object-oriented scripting, which combines the ideas of scripting and object-orientation in a way that preserves the benefits of both (as of OpenACS verison 5.3)
- Automated testing (see: en:Testing_with_Selenium and en:testing-with-tclwebtest)
- Flexible and easy caching, for improving the performance of your websites. http://openacs.org/doc/tutorial-caching.html
- programming in Tcl with AOLserver - A lightweight, simple, extremely fast scripting language that features a clean, easy-to-understand API (Application Programming Interface) for generating websites from the database. (See: http://openacs.org/doc/programming-with-aolserver.html )
- pooled DB connections (which reduces database connection startup and teardown time), much like the technique JDBC uses, but predating it by many years. (See: http://www.aolserver.com/docs/admin/dbadmin.html#2 )
- Component package system for easy installation and upgrading of packages (See: http://openacs.org/doc/apm-design.html
- Upgrade paths for code and database schemas (See: http://openacs.org/doc/tutorial-upgrade-scripts.html )
- Full internationalization, including an excellent workflow for translating content into new languages. (See: http://openacs.org/doc/i18n.html )
- Fully functional content repository and content management system. (See: http://openacs.org/doc/cms/cms-intro.html )
- An elegant templating system that separates code from presentation of content. (See: http://openacs.org/doc/templates.html )
- An object system that resides on top of the database, permitting site developers to create complex applications using an object API. Examples include an object level permissions system, audit trails, and ability to relate one object to another. (See: http://openacs.org/doc/object-system-requirements.html )
- OpenACS is released as open source under the GPL license, with millions of lines of open-sourced applications available to use as examples. There are also pre-written packages for you to use or adapt.
will be pulling in docs from here: http://openacs.org/doc/acs-package-dev.html and http://openacs.org/doc/acs-plat-dev.html
- OpenACS: robust web development framework (PDF)
- XOTcl for OpenACS developers (PDF) - includes basics of object-oriented programming
- OpenACS Tcl API
- OpenACS PL/SQL calls
- Coding Standards en:Index
Integrated Development Environments (IDE)
These text editors are commonly used when coding on OpenACS:
Bibliography and Credits
Created by OpenACS community, last modified by Torben Brosten 22 Aug 2008, at 08:29 AM
OpenACS for administrators
will be pulling in docs from here: http://openacs.org/doc/acs-admin.htmlGetting help: en:docs-admin-help
Install OpenACS: en:docs-install
set up database environment variables.. see end of http://openacs.org/doc/openacs.html
http://openacs.org/doc/backup-recovery.html and http://openacs.org/doc/snapshot-backup.html
creating custom pages: see developer tutorials ( http://openacs.org/doc/tutorial.html )
Administrating a system
- Is this a good time to remind about security? See "Securing your system" on en:os-nix-install
Also, these OpenACS packages are your friends:
Bibliography and Credits
Created by OpenACS community, last modified by Malte Sussdorff 26 Jun 2007, at 09:32 AM
Current topic: What approach should we use to upgrade the documentation?
See Documentation_Project for the current draft of "the plan".
Here are some recent approaches expressed in one form or another for managing the documentation in the context of "the plan":
Approach 0. Why not use docbook, which was the previous way documentation was being handled?
- docbook is open-source.
- A growing community surrounds DocBook (has mailing lists)
- A number of free and commercial tools are available for editing and publishing DocBook documents.
- docbook enables us to publish in a variety of formats.
- XML separates content from presentation: It relieves each contributor of the burden of presentation, freeing each writer to focus on content and sharing knowledge.
- docbook is well tested technology. It has been in development since the early 1990's).
problems: In 2002, Docbook still was not fully capable of representing online books as practiced by book publishers and expected from readers with regards to usability on the web. That meant DocBook did not entirely meet OpenACS publishing requirements at that time.
In 2004, Docbook released version 4.2, which complies with all the OpenACS publishing requirements. Producing a web friendly book hierarchy arguably remains DocBooks' weakest point. For example, a dynamically built document should be able to extract details of a specific reference from a bibliographic (table) and present a footnote at the point where referenced. DocBook 4.2 allows for this with bibliocoverage, bibliorelation, and bibliosource. Yet, OpenACS documentation does not follow a standard book hierarchy since most of the documentation was written before version 4.2, and re-organizing it in docbook source would be challenging.
Other problems with using docbook:
- Only developers can make changes, which makes it difficult for the rest of the community to coordinate changes and updates, especially when they are seeminly small (such as typos).
- OpenACS docbook has long documents, which puts extra stress on using consistent style to separate topics on the same page. For example, readers get confused when trying to follow the installation documents. Some instructions get missed, other instructions are done when they shouldn't have been.
- OpenACS docbook uses multiple tags for the same function and requires only certain tags to be used in certain contexts. The documentation in html is convoluted and displays inconsistent.
Based on the other recent suggestions, there seems to be a general consensus to move away from docbook, but perhaps keep the docbook organization.
Approach 1. from en:Proposed_project_goals, Robert writes:
- First: ..attempt to take the rest of Documenation over to XoWiki..
- Secondly: ..try to setup an automated versioning system. We should end up with categories such as 5.2 Documentation, 5.3 Documenation, HEAD Documenation, etc. My current thinking is that we can work on HEAD category of documenation, once 5.3 is release it becomes categorized as such and a copy of the docs gets created and recategorized as HEAD once again. This should allow versioning and easy upgrades/editing of docs (well easy may not be the right word, docs are a lot of work)
Robert, "Secondly" is how versioning has been accomplished using docbook. This method seems to work fine, and we can do it with xowiki docs by creating a set of static pages from the xowiki ones. --Torben
Approach 2. from [en:Structure_Ideas], Robert writes:
Documenation: [move] ..the rest of the documents to XoWiki. The idea would be to have categorized documents. We would start by moving the 5.2 docs over and expanding on them. When 5.3 is release we would do an automated copy/paste of the 5.2 docs, recategorize as 5.3 and start the editing process. This is just preliminary thinking at this point..
Robert, everyone seems to have their own way of slicing and dicing docs into categories. We ought to use the existing documentation requirements to guide how the documents are organized, and then they can be categorized any number of ways since multiple categories can be applied to each page. --Torben
Approach 3 (and previously 5). from en:Documentation_Project
STAGE A: CONVERT DOCUMENTATION TO XOWIKI (note: all api docs remain the same) Step #1. Catalog the current documentation.
(Malte writes) ..modify the script Gustaf provided to import the whole documentation in one go into a new XoWIKI instance with the structure (page_order) that has been added in XoWIKI 0.42 taken from the chapters of the documentation so that we do have an exact mirror of the documentation as it stands now. [Done, see http://openacs.org/test-doc].
Malte, why would we want an exact mirror of something that is not organized well.. too many topics per page and pages inconsistently presented.. requires a new reader to jump around to get familiarized with material. etc etc? Why not copy the docbook contents into a cleaner outline and work from there (as in approach 3 above)? --Torben
Torben, the /doc section is organized. That you do not like it is obvious and we could rework it later, but until we have the resource to rewrite the whole documentation, it makes much more sense to improve the documentation we have instead of putting it into the graveyard. And we need to come to terms. This discussion does not yield any results at the moment but keep us from doing the actual work: Improving the documentation -- Malte
[Then] ..assign categories to the documentation, allowing for an alternative view on the documents (so you could say "instead of showing the whole documentation only show the documents for a specific category"). Probably this needs some more detailed discussion with Gustaf finding out how this could be achieved in XoWIKI and what would make most sense. Ideally we could provide a different structure based on the target group (e.g. category) but this is probably shooting too far. Getting categorization and page ordering in a decent shape should provide us a lot of possibilities..
Malte, have you seen docs-admin-toc , docs-end-user-toc and docs-eng? These are outlines of existing pages in xowiki that represent a revised version of the Table of Contents (TOC) in the docbook version. Feel free to propose new pages there for us to fill in content. --Torben
Yes I have seen them. Do they resemble a book in any way to you? They are alternative stuctures, indeed, but you can impose them on a book view as well, any time. A book is what we need, something people can go to and start reading. If the book starts with four different pages, each outlining a different reading path, even the better. But a book it should be nevertheless, because this is how people still learn. If you do not like the book approach, that is fine, then we should open this question up for a TIP. My main goal at the moment is to finally get this done and start working. And I want to get rid of the myriads of confusing advise given at openacs.org. I have someone to work with me on that in the next two months and I want to have a clear way to go forward. So I will just TIP this. -- Malte
Approach 4 from en:Documentation_Project.
..port docbook pages to xowiki manually.. look at each part in detail.. separate to subsystems and how they are used (context). Why? "..the human mind can only deal with a relatively small number of independent pieces of data at one time, but if data are chunked together in appropriate ways, the mind can perform higher order abstractions, and these in turn can be chunked together, with successive abstractions, until an entire complex situation is encompassed. The systems approach addresses this property of the human mind by providing strategies for the data gathering, chunking, and abstracting process." George G. Lendaris, On Systemness and the Problem Solver: Tutorial comments 1983.
This work is in progress, with main page here: en:openacs-handbook
A systems strategy of multiple perspectives has these simple rules:
- Each xowiki page discusses a single topic.
- Topics are linked together by any number of other xowiki pages to present an ordered presentation of the topics with a common thread/topic connecting them. For example, en:openacs-system-install is a page that links together the topics of installing the component software of Openacs. Similarly, each component software, such as en:aolserver, has its own view of some overlapping topics.
multiple perspectives meets these significant documentation requirements:
- helps identify subsystems and how OpenACS works --becomes a natural tutorial without more words.
- reduces the burden of keeping documentation up to date since there is only one place to put relevant information for a particular topic --no redundancy
- pages are not organized by a dominant category morphology that tends to address the perspectives of just a few people. Most any perspective can be represented.
- Readers do not have to filter out a bunch of information that is irrelevant to them or their task at hand.
Move all but maybe the first and last 2 items from http://openacs.org/doc/dev-guide.html to http://openacs.org/doc/acs-kernel/ (and what ever else is relevent to kernel only); and move the first item to http://openacs.org/doc/acs-admin etc. That way the core docs are presented in a consistent context with the other packages. Also, do not migrate these docs around as a package is designated part of the core (or subsequently removed from it). This would help developers see appropriate context (and meets one of the documentation requirements).
Allow documentation to link directly to the api-docs, to reduce redundancy and links go to current, local API docs. In other words, http://openacs.org/api-doc/package-view?version_id=358136 becomes: /api-doc/index?about_package_key=acs-datetime The feature has been added to OpenACS 5.3 so will be released soon.[DONE]
Move Administrator's Guide to the xowiki [in progress, see en:docs-admin and en:docs-admin-toc ], because this section:
- has the most duplicated work (topics overlap on various pages). For example, more than one page explains how to add a package, how to restart the server, how to start the server etc.
- needs to be updated most frequently because of changing installation requirements. For example, PostgreSQL requires different instructions for different revisions, external links change sporatically etc.
Incorporate the work already done in the first wiki ( http://openacs.org/wiki ), where volunteers have already added a wealth of new documentation. Note that some of this will already exist in xowiki from previous importing of docs etc. [TO DO]
We need to get rid of the myriads of different installation instructions. First of all they are not kept up to date (all of them). -- Malte
Created by OpenACS community, last modified by Torben Brosten 18 Mar 2007, at 09:38 AM
Bibliography: Where did this document come from?
This document is really just plagiarism from a number of documents that came before it. If something is used without proper credit, let us know so we can fix it right away.
The short bibliography:
- OpenACS Documentation Versions 4.6.2 to present were edited by Joel Aufrecht.
- ArsDigita installation guide
- OpenACS 3.x installation guide
- Gilbert Wong's FreeBSD installation guide
- Vinod Kurup's Brief OpenACS4 installation guide
- Joel Aufrecht's OpenACS 4.5 Quick Guide
Known authors and contributors
Acknowledgments for versions of the above documents go (in no particular order) to Bryan Quinn, Adam Farkas, Brian Stein, Doug Hoffman, Ravi Jasuja, Hiro Iwashima, Ryan Lee, Jonathan Goler, Audrey Mcloghlin, Doug Harris, Zvi Boshernitzan, Michael Yoon, Cesar Brea, Dennis Gregorovic, David Fullagar, Chris Spears, Kevin Tupper, Michael Duffy, Simon Carstensen, Dave Bauer, Tracy Adams, Greg Haverkamp, Philip Greenspun, Jin Choi, Sean Yamamoto, David Cohen, Chris Rasch, Richard Li, Jon Griffin, Roberto Mello, Gilbert Wong, Don Baccus, Ben Adida, Michael Cleverly, Janne Blonqvist, Jonathan Ellis, Janine Sisk, Jade Rubick, Chris Hardy, Jonathan Marsden, Vinod Kurup, Charles Hall, Tom Jackson and Karl Lehenbauer.
Others who have contributed to this document: Robert Taylor, Ryan Gallimore, Gustaf Neumann, Torben Brosten, Don Baccus, Roberto Mello, Talli Somekh, Dave Bauer, Jim Lynch, Jon Griffin, Daryl Biberdorf, Bjorn Thor Jonsson, Jade Rubick, Fred Yankowski, Dan Chak, Sebastiano Pilla, Reuven Lerner, Malte Sussdorff, Stan Kaufman, Pascal Scheffers and Rocael Hernández.
Contributers to xowiki documents, including this one: en:contributors
Finally, much appreciation and thanks goes to the OpenACS community, who have provided much valuable feedback in the fora, which compromises the goals of this documentation.
Created by OpenACS community, last modified by Torben Brosten 22 Jan 2007, at 06:19 AM
- for Everyone docs-end-user
- for Administrators docs-admin
- for Beginning Developers docs-dev-tutorial
- for Developers docs-eng
Documentation Credits doc-credits
Documentation Project Documentation_Project
Created by OpenACS community, last modified by Torben Brosten 15 Jan 2007, at 01:37 AM