Created by OpenACS community, last modified by Gustaf Neumann 16 Jul 2019, at 10:13 AM
The OpenACS project was born when Don Baccus, Ben Adida, and others decided to port ACS from Oracle to PostgreSQL, thus making it a fully open-source solution. With OpenACS 4, Oracle and PostgreSQL support were combined in one code base and with OpenACS 5, support for internationalization and localization has been added.
A vibrant and productive community has sprung up around the OpenACS software and there are many volunteer contributors as well as a commercial companies able to provide support, hosting, and custom development. Many of the production users are actively funding and contributing work back to the project. Formal, consensus driven governance has been established (with semi-annual elections) which ensures the project serves the needs of it's constituents.
More detailed analysis:
- Michael Aram, Stefan Koch, Gustaf Neumann: Long-Term Analysis of the Development of the Open ACS Community Framework, in: Francisco José García-Peñalvo, Alicia García-Holgado (ed) , Open Source Solutions for Knowledge Management and Technological Ecosystems, IGI GLobal, 2017.
- Neophytos Demetriou, Stefan Koch, Gustaf Neumann: The Development of the OpenACS Community, in: Miltiadis Lytra and Ambjörn Naeve (ed) , Open Source for Knowledge and Learning Management: Strategies Beyond Tools, Idea Group Publishing, 2006 . [BibTex, pdf]
Original version by Ben Adida
In the Beginning ...
Back in the summer of 1995, Philip Greenspun, Brian Tivol and I spent a few weeks in New York working at Hearst Publishing developing the Multimedia Newsstand. The tools available at the time were pretty pathetic. Netscape was at version 1.1 (barely), and about 30% of our visitors were still using v0.9.
Philip had done his homework, though, and had chosen NaviServer as our web server platform. NaviServer was the brainchild of Jim and Doug, two amazing hackers who immediately understood how to build server-side web technology:
- Built-in, simple, string-oriented, scripting language: Tcl,
- Efficient multi-threading,
- Simple and abstracted database access and connection pooling.
We set out to create a web site with daily editorials, magazine sales and ordering, customer tracking, and quite a few more pieces. In about 12 weeks, it was up and running and happy. The Illustra RDBMS would crap out every now and then thanks to the Elan License Manager (among other problems), but overall Hearst was happy. The numerous utility procedures that we created and used that summer came together into what is now the utilities.tcl file in your ACS installation. The information so far should allow you to guess the reason why bt_mergepiece is called bt_mergepiece.
Driving the Idea
It was Philip who then started to use NaviServer (later GNNserver, now AOLserver, all the same product) and Illustra to create a host of services that became greenspun.com, in addition to the early versions of photo.net. Philip created the initial versions of bboard, classified, neighbor-to-neighbor, and many other pieces all in order to manage the growing photo.net community.
Philip continued to push AOLserver, eventually dropping Illustra by hiring Cotton Seed, another hard-core hacker, to write an Oracle driver. Oracle brought a whole new level of scalability and reliability to the thousands of lines of Tcl code already written. At that time, in early 1998, Philip officially created ArsDigita, LLC, in order to push the consulting work he was already doing. He brought on 6 people (Philip, Olin, Cotton, Terence, Ulla, and myself) to carry the initial ArsDigita flag (although I had almost nothing to do with the setup of ArsDigita to begin with).
Philip brought on Jin Choi, one of the only people I know who deserves the title of "monster hacker." Together they went ahead and built entirely new services based on AOLserver/Oracle. The most famous of these was, of course, scorecard.org, an amazing site that anyone claiming to understand web scalability should take a look at (30 db-backed hits/second on Earth day running on one Sun Ultra 2).
And There Was A Toolkit...
It was right around that time that Philip convinced me to come back and work full-time for ArsDigita. Jin, Eve, Tracy, Philip and I worked through the summer of 1998 on various projects (Levi Strauss, Cognet, ASME, Greentravel now away.com), while Philip kept talking about his grand-integration goal: combining all of these pieces into the ArsDigita Community System.
Soon enough, the ACS was real. The first release was posted on December 8th, 1998, after a huge packaging, debugging, and integration effort led by Philip. The ACS became the backbone of all ArsDigita projects, and many hackers around the world started using it.
With the rise of open-source software and the realization that good software can still be free, many people started wondering if the ACS could be made to run on some RDBMS other than Oracle. An Interbase port of the ACS v2.1 was created, but Interbase still cost money at the time (although it should be open-source and free by end of 2000). Many cheered for MySQL, but the lack of transaction and subselects makes it unacceptable for a true ACS (or for any critical system, for that matter).
In December 1999, a small group of ACS hackers came together on SourceForge to create the ACS port to PostgreSQL. Following true open-source methods, we gave write permissions to anyone who showed enough competence to help out. The group soon grew to more than 20 people, with about 5 active developers.
The initial name of the project, ACS/pg, was changed to OpenACS as the group realized that there was a need to push porting to possibly other databases than PostgreSQL (Interbase?). OpenACS further represents the importance of a fully open-sourced system that truly works in symbiosis with the Open-Source community.
Philip and his team have done a tremendous job creating the processes and data model necessary to build scalable, reliable online communities. OpenACS hopes to bring this tremendous contribution to the world of fully open-sourced systems, available to anyone interested in building their own online community.
Other Accounts that could be incorporated
Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Dec 2018, at 09:45 PM
The OpenACS translation server is currently not supported. Volunteers are welcome to help to revive this project which helps to collect message keys in various languages from users and to feed this into the OpenACS core distributions.
On interest, please send a mail to email@example.com.
Created by OpenACS community, last modified by Benjamin Brink 07 Jul 2017, at 07:06 AM
Keeping track of the commands you run and recording their output has important diagnostic value. I like to create a literal history of my installations in a shell inside of emacs (M-x shell) so that I can save the output if needed. An alternative would be to use the script command.
Check the error logs. We point out the location of error logs for the various pieces of software. Output from those logs will help you, and help us help you. Do not worry if you feel overwhelmed by all the information in the error logs. Over time, you will find that they make more and more sense. At some point, you may actually look forward to errors so that you can run to the log and diagnose the problem.
If something goes wrong, do not panic. There are plenty of ways to get help. Here are some:
Search the forums at openacs.org - Frequently, people who have struggled through the same issue have already posted and received help with answers immediately available to you.
The bottom of each page has a link to OpenACS.org, where you can post comments and read other users comments about the contents of the page.
Post a question on the forums. Make sure you've done a search first. When you do post, be sure to include your setup information (OS, etc) as well as the exact commands that are failing with the accompanying error. If there is a SQL error in the TCL error or in the log, post that too.
Ask questions at the irc channel on freenode.net (#openacs). They're knowledgeable and quite friendly if you can keep them on topic.
If you find errors in this document or if you have ideas about making it better, please post them in the forum or BugTracker.
Created by Caroline Meeks, last modified by Gustaf Neumann 20 Apr 2017, at 06:31 PM
OpenACS/.LRN Marketing Team
The Marketing Team works to improve adoption and recognition of OpenACS including .LRN and other OpenACS projects.
Team members are those people who are want to be on the team or are proposed to be on the team, and willing to contribute to it, those members will be selected and ratified. Terms and roles and responsibilities will be determined by the Marketing Team. This process will be reviewed in a year to see if a more formal process is needed.
The Decision Making Process
- Make it easy for motivated people to make decisions and implement them with minimal overhead.
- Give the elected OCT and .LRN Board oversight over decisions without requiring too much time.
- All members of the OCT, .LRN Board and Marketing Team subscribe to a designated Forum, email list or Wiki page.
- Members of the Marketing Team are responsible for reaching out to the appropriate people while making major decisions. Depending on the decision this includes the greater OpenACS community, the OpenACS, .LRN Board and/or membership, and the .LRN Leadership committee.
- When an individual believes he has done an appropriate level of communication and consensus building on a decision he posts it in the designated place.
- If no one objects or calls for a vote the decision is confirmed in 2 weeks.
- If people agree they need take no action; however if there is disagreement or concern, any member of the Board, OCT or Marketing Team may “Call for a Vote” on any decision posted to the decision forum within 2 weeks of the post.
- The .LRN Board should only call for a vote on things that relate to .LRN brand or dotlrn.org and only the .LRN Board members vote.
- The OCT should only call for a vote on things that relate to the OpenACS brand or openacs.org or have a technical component that relates to the core (training materials might be an example). In an OpenACS related issue only OCT members vote. The role of the OCT maybe temporary as its charter was to deal with technical issues. However it is currently the only elected body of OpenACS. We will revisit this issue in a year.
- In the rather unlikely situation where the distinction between OpenACS and .LRN is not clear and its controversial issue then either should call for a vote and both organizations should try to come to agreement.
- A decision is upheld with 2 Yes and 0 No’s or a 2/3 majority of all members of the appropriate organization (either the OCT or .LRN Board). This is usually 5 people.
Informal description of the process
If you have an idea you'd like to implement, discuss it with people who care, post in OpenACS and/or talk about it in an online or meeting or conference. . After you have listened, post your decision Then implement it. Mostly we all want the same things and we need action. The OCT and .LRN Board vote is available as an oversight and in those hopefully infrequent times when there is significant dissent.
This is an interim process
This process is based on a discussion at the Vienna Conference. There were many different ideas about whether the Marketing Team should be directly elected or report to the current elected boards. There was also discussion about two teams (OpenACS and .LRN) versus 1 team. This process is the simplest we think could work and our intent is to revisit these questions in a year (or less) and refine the process as needed.
The Marketing Team will be formed when both the OCT and the .LRN Board approve its formation.
Created by Caroline Meeks, last modified by Nima Mazloumi 26 Apr 2007, at 05:16 PM
- Recognized as a Web 2.0 Leader
- Training/ Learning Curve
- Brand recognition (OpenACS/dotLRN)
- Missing Functionality
- Consolidating Functionality
- Developer Collaboration
Ideas & Votes
|Top 10 Hall of Shame of Packages / Bugs ||5 |
|Better categorization of Bugs ||5 |
|Only include modules of certain quality in future releases ||19 |
Incentive to announce code and/or allow charge of code
|How to behave - when modifying code ||5 |
|Process for submitting & processing patches ||9 |
|Move official documentation to Wiki ||15 |
| Small chunks of advice / code , recipes||5 |
|Create a way to contribute learning material, presentation, marketing material ||13 |
|Clean frontpage / website for .LRN / Openacs ||16 |
|OpenACS book ||16 |
|Move to sourceforge ||17 |
|Move to a non viral license like BSD ||2 |
| || |
What are you working on?
- fix package per page
- create a "twitter" type page where you write what you are doing
- PO Client and Security service
- auto search of forums & wiki
Pimping the websites
- different sections for different persons (developers, users, ...)
- e-learning course on how to work with the toolkit, curriculum integration
Created by Jade Rubick and OpenACS community, last modified by Torben Brosten 16 Jul 2006, at 10:18 PM
Introduction to the OpenACS Community
How to get help from the OpenACS community most effectively.
by Jade Rubick
OpenACS is more than a technology, it is a vibrant community. If you are new to OpenACS.org, you are coming into this community as a newbie, or a new person. The OpenACS folks are extremely helpful. However, consider what resources you have available for getting information most effectively.
Communities work similarly to how a bank account works. You make deposits by doing things that are beneficial to the community, and you make withdrawals by doing things that take time and energy from the community. The more helpful you are, the more people are going to be willing to help you out. If you have a pattern of being demanding and unhelpful, people are less likely to help you as much. This is not a conscious effort to punish, but common social equitable practices. It is just how people tend to participate in general.
What have you to offer?
What have you to offer the community? You are new, so maybe you cannot offer much in the way of technical knowledge. Can you trade for detailed technical help from more knowledgeable individuals?
- If there is no documentation for what you're trying to do, then the single most helpful thing you can do is write documentation as you learn. Use documentation to both keep track of what you’ve learned, and as a way of sharing that knowledge with others. It is also something you can trade for the time of more experienced developers. They know that if they help you out, you'll write up documentation for it, and they might not have to answer that question again.
- As you find bugs, you can file them in the OpenACS bug-tracker.
- If you have a particular project in mind, or something you're planning on creating, then building that project and sharing it with the community is good incentive for people to help you. They may be interested in what you're building.
- When a newer newbie asks a question you know the answer to, answer it! Many OpenACS developers budget out a certain amount of time a day to help the general community. This builds goodwill, strengthen the platform you're using, and helps those users become more knowledgeable so they can contribute to the community.
- As a newcomer, you have a unique perspective to OpenACS. You can often see deficiencies and areas to improve that old-timers might not even notice. Feel free to bring them up as suggestions. Remember that the OpenACS community is a community, not a company. It isn't their responsibility to fix things for you, or make them better. But it is often in their self-interest to improve things, and they will. Flames won't get you anywhere, but thoughtful suggestions will.
- Even though you aren't proficient with OpenACS (yet), you may have other skills that are useful. For example, some people have UI design skills, others may have Linux administration skills, or a security background.
I write this not because you're going to have trouble getting help. On the contrary, I've seen people in the OpenACS community help out people that are being very demanding and troublesome. My main hope in writing this is to give newbies a guide to how to most effectively get information.