Forum OpenACS Q&A: Would OpenACS be a good choice for my web site?

I've looked at many web framework options including various Java based frameworks, a few Python based frameworks, not to mention Ruby on Rails, etc., etc.

I discovered OpenACS quite a while back and after exploring some other options I'm back to give it a second look. Let me give y'all a little history about the web site in question and explain the functionality I'd like to add to it. Please forgive me if I ramble on a bit.

I'm a member of a local canine agility club. A few years back I was asked to take over the webmaster duties of their web site. At the time I knew next to nothing about HTML, etc. When I inherited the site it looked something like this:

http://www.WacoAgilityGroup.org/OldWAG/

It didn't take long to realize that several of the site's pages were not well suited to static content. So, after learning a little HTML I started learning PHP, not to mention a little CSS etc. Now the site looks like:

http://www.WacoAgilityGroup.org

Before long I realized PHP was not my cup of tea. I've been searching for alternatives ever sense. At present the Upcoming Events, Brags, and Photo Gallery pages on the site are dynamic. I would like to convert those pages from PHP to something else and also transform some of the other pages, such as the Members and Class Schedules pages, into dynamic pages. Any suggestions on OpenACS products that might help in those areas would be greatly appreciated. I've already found the photo album package and it looks like it might fit our needs. It would be nice if it included a "LightBox" feature.

I've installed OpenACS on a test server using the instructions at:

https://openacs.org/xowiki/openacs-system-install-freebsd-ports

and also followed the instructions for using Postgres 8.x.

I'm trying to work through the developer's tutorial but have hit a snag. The myfirstpackage-create.sql script appears to work correctly. But, when I try to test the myfirstpackage-drop.sql script I get the following error:

psql:myfirstpackage-drop.sql:12: NOTICE: function mfp_notes_f(mfp_notesi) depends on type mfp_notesi
CONTEXT: SQL statement "drop view mfp_notesi"
PL/pgSQL function "content_type__drop_type" line 90 at execute statement
psql:myfirstpackage-drop.sql:12: ERROR: cannot drop view mfp_notesi because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too.
CONTEXT: SQL statement "drop view mfp_notesi"
PL/pgSQL function "content_type__drop_type" line 90 at execute statement

The latest docs I found on the OpenACS site were for version 5.2.x. The version of OpenACS in the FreeBSD ports tree is 5.3.1. Could that be causing me problems?

Also, are there any OpenACS mailing lists? Yes, I've found the forums' notification feature. But, the e-mails I receive from the forum don't include Message-Id and/or In-Reply-To headers so my e-mail client can't thread them.

Thank You,

Kevin Monceaux

Collapse
Posted by Jay Dubanik on
Hi Kevin,

You dont need to drop your existing system in order to get fiew new features. OACS is a big system in my opinion to big for your requirements.
As you said what you realy need is to change "the Members and Class Schedules pages, into dynamic pages"
It is much easier to find some help and build new features to your existing site then to change the whole site all together. Good luck.

Jay

Collapse
Posted by Jim Lynch on
Heya Kevin...

The error indicates the problem is our fault... we -still- haven't fixed our content_type__drop_type() call... I keep thinking we did; this is at least a 4-year old problem. I'll be back here to provide a fix you can apply to your installation.

Meanwhile, you can continue the tutorial as you pretend the drop script works. You'll want to see if tcl is your cup of tea as well, there's a "tcl for web nerds" somewhere on the net.

Collapse
Posted by Jim Lynch on
And, having said all that, yes, openacs is -big- with lots to learn and such. Overall, it's for big sites like amazon and like that. See: http://photo.net for a real example of the collaborative features of the original ACS (ArsDigita Community System).

I'd say work with it for awhile... see what you think, and see how easy it is to customize. Keep going thru the tutorial; I have an unobtrusive solution for the content repository thing, I'll look for it

Collapse
Posted by Kevin Monceaux on
Jim,

On Sat, May 26, 2007 at 03:26:38PM +0000, Jim Lynch wrote:

The error indicates the problem is our fault... we -still- haven't
fixed our content_type__drop_type() call... I keep thinking we did;
this is at least a 4-year old problem. I'll be back here to provide a
fix you can apply to your installation.

I'm sorry for taking so long to reply to this. I had OpenACS installed
under FreeBSD which was running under VMWare. My FreeBSD VMWare
installation got sacrificed when I ran short on drive space. But, I now
have it and OpenACS reinstalled so I'm back to working my way through
the tutorial.

Was the above mentioned fix ever posted? If so, I missed it.

Meanwhile, you can continue the tutorial as you pretend the drop
script works. You'll want to see if tcl is your cup of tea as well,
there's a "tcl for web nerds" somewhere on the net.

Will do. I might have a few more questions shortly.

P.S. I tried to reply to this via e-mail but it bounced back with a 553 No such user error.

Kevin
http://www.RawFedDogs.net
http://www.WacoAgilityGroup.org
Bruceville, TX

Collapse
Posted by Jim Lynch on
(To Moderator: Hi... Could someone edit the above post to replace my email addr with my name? thanks :)

I put some diffs that might still work in 5.3.1 here:

https://openacs.org/storage/index?folder%5fid=585243

Enjoy

Hello Kevin,

this is how I see it, being - like you - someone who has little experience with programming.
I started using the excellent "Project-Open"-ERP in my company three years ago. Because it is based on OpenACS (although on an earlier version of the plattform), I recently got curious about how things work inside.
Well, it has been really frustrating. OpenACS is hard to install, very badly documented (the "up-to-date" documentation refers to a previous version of OpenACS). Afer all the hassle you just see a very spartan thing, where nothing seems to be there. You start installing packages, but some of them don't work (Photo Album). You uninstall them, reinstall, and they still don't work. You browse/search the forums, and there are confusing replies ("try this ... might work") and high nosed technical discussions. A quiet frustrating enterprise.
For your need I'd recommend a CMS like Joomla or Drupal. You can install then in no-time. They are attractive, easy to use and quiet reliable.
OpenACS is fascinating, but intended for software engineers only (in my oppinion).

Collapse
Posted by Kevin Monceaux on
Forgive me if this gets mangled. I tried sending this reply via e-mail and it failed with a "no such user" error.

Michael,

On Sun, 10 Aug 2008, mailto:m.marti.menzel@eurotransmit.com wrote:

this is how I see it, being - like you - someone who has little experience
with programming.

I wouldn't exactly say I had little programming experience. All my
experience might be described as "amateur" experience, though. I started
programming in BASIC in junior high and high school(mid to late '80s).
Although I went on to college after high school I unfortunately I dropped
out towards the end of my second semester. But, while I was there I
learned Pascal on a VAX 11/750, and dBase on PCs(286 PCs at the time to be
exact). At home I did quite a bit of dBase and Clipper programming
through the years, and still do. I'm currently using clip, a open source
Clipper compatible compiler from www.itk.ru, on my FreeBSD box at home.
For the past decade or so I've been working as an IBM mainframe operator.
At work I've done a bit of COBOL, Eztrieve, and Gener/OL programming and
have picked up the basics of IBM mainframe assembler. And, as for web
environments I've tried PHP, Python, and Ruby.

Well, it has been really frustrating. OpenACS is hard to install, very
badly documented (the "up-to-date" documentation refers to a previous
version of OpenACS). Afer all the hassle you just see a very spartan
thing, where nothing seems to be there.

Installation can be a challenge. I've got it working on FreeBSD using the
OpenACS port from the FreeBSD ports collection, and I've also managed to
get it working installing everything from source on OpenSolaris.

After a couple of tries it's become obvious the OpenACS community doesn't
want newcommers. My post you replied to is about a year old which is back
when I first tried OpenACS. Back then I ran into problems just trying to
get through the developer's tutorial, which one would expect to be one of
the first things a new developer would try. One problem I was told was
due to a four to five year old bug that should have been fixed long ago.
Well, I'm back a year later and the tutorial hadn't changed, and the same
bugs are still present. I posted to the forum and received no replies.
Eventually I tried asking a few questions on the IRC channel and finally
got through the tutorial with some help from there and a couple of
patches. Then, I was told the tutorial in no way, shape, or form
resembles current best practices. It was written before the content
repository TCL API was complete. And although the content repository TCL
API is now complete, the tutorial has never been updated. This is a
paragraph near the beginning of the tutorial:

This tutorial uses the content repository package. This radically
simplifies the database work, but forces us to work around the content
repository's limitations, including an incomplete TCL API. So the
tutorial is messier than we'd like right now. Code that is temporary
hackage is clearly marked.

It's clear parts of the tutorial were meant to temporary. But, as long as
it's been since the tutorial has been updated those parts are bordering on
being permanent.

The rest of the documentation is in a similar shape. The front page of
the web site says 5.4.1 is the current version. The project status page,
from the link in the "About OpenACS" menu on the right hand side, says the
current version is 5.3.2. The FAQ says PDF documentation is available,
but the link from the FAQ is to a forum post, which in turn has a link to
a rough draft of some 5.2.x PDF documentation.

I asked on IRC if someone could point me towards some packages that were
examples of current best practices. I was told there are none. I even
offered to try to write a tutorial from a newbie perspective if someone
would give me some example code showing current best practices. I was
told that would be great, but no one has come forward with any code
examples. I think I've just about given up on OpenACS. A little while
back I converted one of my web sites to Django to see how I liked it. I
like it fairly well but I'm considering moving towards Ruby on Rails. I
think I like Ruby a little better than Python.

Another bit of misleading documentation - The main page on the OpenACS web
site says it's one of the most active open source projects in the world.
That would imply that there are lots of folks working on it. If that were
true, one would think some of the folks actively working on OpenACS would
concentrate on documentation, and that some would be willing to help
newbies. Of all the times I've recently visited the OpenACS web site, the
largest number of members I've seen signed on has been two. Right at the
moment, none are signed on. That doesn't sound very active.

You start installing packages, but some of them don't work (Photo
Album). You uninstall them, reinstall, and they still don't work.

I've gotten the Photo Album to work on all my installs. On my most recent
installs I couldn't get it to install from the repository. I had to
download the package manually, then install from the local files.

You browse/search the forums, and there are confusing replies ("try this
... might work") and high nosed technical discussions. A quiet
frustrating enterprise.

You couldn't be more right there.

For your need I'd recommend a CMS like Joomla or Drupal. You can install
then in no-time. They are attractive, easy to use and quiet reliable.
OpenACS is fascinating, but intended for software engineers only (in my
oppinion).

Well, I've looked at both Joomla and Drupal in the past but I don't care
much for PHP. For now Django is serving me well, and Rails might be
serving me well in the near future.

Kevin
http://www.RawFedDogs.net
http://www.WacoAgilityGroup.org
Bruceville, TX

Si hoc legere scis nimium eruditionis habes.
Longum iter est per praecepta, breve et efficax per exempla!!!

Collapse
Posted by Torben Brosten on
Hello Kevin and Michael,

You have valid observations and somewhat incomplete conclusions. Hopefully these points address them.

OpenACS can appear more difficult than other platforms when one's background is mainly with the higher-level operations of applications, where end-user documentation is paramount.

You are right that this is a project biased to software engineers. One of the popular issues over the years has been if OpenACS is a web toolkit or a ready-to-use solution. Software engineers tend to appreciate the former, and end-users the latter. Advances in OpenACS (largely due to software engineers) are documented at the coding (api) level where coders use the documentation, and few other places. Efforts are made to address other documentation needs, but they have been more difficult than usual to address. Read more about the history here: https://openacs.org/xowiki/doc-history and coordinated efforts and addressing it here: https://openacs.org/xowiki/Documentation_Project_Plan

The community-based effort at documentation is most complete and accurate, and found here: https://openacs.org/xowiki/openacs-handbook

Software engineers are more likely to appreciate the relative ease in customizing it compared to customizing other platforms. That's why OpenACS appears as a blank slate. You can read more about OpenACS features for developers here: https://openacs.org/xowiki/docs-eng

The openacs.org website is confusing because it is controlled by a pool of developers, each with their own ideas. They rarely visit the parts of the website that end-users do. They are unwilling to give publishing control of the website to end-users who likely don't appreciate their needs and the needs of the development initiatives of the project. That has been their experience. The community documentation above, is an effort to find balance that respects multiple perspectives that people are coming from.

Developers tend to be helpful when there is enough context provided with a problem for them to be able to diagnose it. More about getting help here: https://openacs.org/xowiki/docs-admin-help

cheers,

Torben

Collapse
Posted by Kevin Monceaux on
Torben,

I'm going to try one more time to reply via e-mail. If that fails, I'll have to cut/paste this into the forum, so please forgive any format mangling if I have to do so. Did the server move break the notification e-mail reply system in addition to the IRC log system?

Would an OpenACS mailing list be too much to ask for? Mailing lists are so much easier to keep up with than online forums.

On Wed, 20 Aug 2008, mailto:torben@dekka.net wrote:

You have valid observations and somewhat incomplete conclusions. Hopefully
these points address them.

Your points might help. Then, again, they might help further exemplify our incomplete conclusions. Sorry, I don't mean to be difficult. I see a lot of potential in OpenACS. If I could just find a few examples showing
how to get started and demonstrating current best practices, it would be great.

address. Read more about the history here:
https://openacs.org/xowiki/doc-history and coordinated efforts and addressing
it here: https://openacs.org/xowiki/Documentation_Project_Plan

Following a link on the above page to the Documentation Requirements for Developer Tutorials page:

https://openacs.org/xowiki/docs-dev-tutorial-reqs

It looks like the OpenACS community realizes the kind of tutorial I'm asking for is needed. And, it looks like they realized that back in 2003. I think the most important point listed is:

* Provide working examples that highlight the various subsystems, tcl environment ....

And, the key words in that point are ***working examples***. And, it should probably be changed to read: working examples of current best practices. The current developer tutorial isn't a working example. If one installs the current version of OpenACS, and then tries to work through the developer tutorial, the first thing that will fail will be the SQL drop script. If they're lucky enough to find the patch to get past that problem, there's at least two other problems, if I remember correctly. If one follows the "quick start" instructions on the first
page and just copies the code, only one more patch is needed to get it to work. Sorry, I don't have my notes handy right now, but I'd be happy to nit-pick my way through the tutorial again and note all the problems and
fixes I found. The quick start instructions have one copy note-procs.tcl from packages/acs-core-docs/www/files/tutorial . If one instead chooses to work through the tutorial step by step, it has one copy note-procs.tcl from packages/acs-core-docs/www/files , which is a slightly different version of note-procs.tcl, which doesn't work. If one takes the step by step route and copies note-procs.tcl as instructed in that part of the
tutorial, they'll get an error saying the required id parameter is missing when trying to add a note. In the version of note-procs.tcl copied via the quick start instructions, the add proc doesn't require an id parameter. The version copied using the instructions in the step-by-step tutorial requires an id field.

The community-based effort at documentation is most complete and accurate,
and found here: https://openacs.org/xowiki/openacs-handbook

Okay, it looks like there might be a bit of good information there. If I follow the link from that page to:

https://openacs.org/xowiki/docs-dev-tutorial

The very first link to an actual tutorial on that page points to the outdated buggy developer tutorial:

https://openacs.org/doc/current/tutorial.html

Some of the other links contains some bits and pieces of info, but I don't see anything resembling a complete tutorial as described at:

https://openacs.org/xowiki/docs-dev-tutorial-reqs

If I'm missing one somewhere, please point me in the right direction.

The openacs.org website is confusing because it is controlled by a pool
of developers, each with their own ideas. They rarely visit the parts of
the website that end-users do. They are unwilling to give publishing
control of the website to end-users who likely don't appreciate their
needs and the needs of the development initiatives of the project.

So? That might be a reason for the website being confusing, but it's not a valid excuse. Someone in the OpenACS community who has publishing control of the website needs to take charge and make an effort to keep the parts of the website that end-users visit up to date.

That has been their experience. The community documentation above, is an
effort to find balance that respects multiple perspectives that people
are coming from.

That's great, but coordinate the effort. If an up-to-date developer tutorial is created somewhere on the xowiki, change the developer tutorial link on the front page of the web site so that it points to it instead of the outdated buggy tutorial. It's not a difficult concept.

Kevin
http://www.RawFedDogs.net
http://www.WacoAgilityGroup.org
Bruceville, TX

Si hoc legere scis nimium eruditionis habes.
Longum iter est per praecepta, breve et efficax per exempla!!!

Collapse
Posted by Torben Brosten on
Hi Kevin,

yes, apparently the email-reply broke during the server change.

I agree with most of your statements. So, how do we go about doing them?

Can you post your fixed tutorial version to https://openacs.org/storage ?

Torben,

On Thu, 21 Aug 2008, mailto:torben@dekka.net wrote:

yes, apparently the email-reply broke during the server change.

Heavy sigh.

I agree with most of your statements. So, how do we go about doing them?

Get someone involved with update access to the web site to make any needed web site updates.

As for the tutorial:

Can you post your fixed tutorial version to https://openacs.org/storage ?

I don't have OpenACS installed at the moment. I can reinstall it over the weekend and go through the tutorial again to make sure I have all this right. But, if the bugs are fixed in the current tutorial there's still the problem that it's based on OpenACS as it was back before the content repository TCL API was complete. I think the following is what was needed to get the current tutorial working:

The first problem one hits with the tutorial is that the drop script will fail. The patch located at:

https://openacs.org/storage/file?file%5fid=585244

will fix that problem.

If one works through the tutorial step by step instead of just copying all the files using the "quick start" instructions at the beginning, they will eventually get to a point where it tells them to copy note-procs.tcl from
packages/acs-core-docs/www/files. For some reason, there are two versions of note-procs.tcl included in the tutorial. Both have bugs, but the one located at the above mentioned path has more bugs than the other one. So, they should copy note-procs.tcl from packages/acs-core-docs/www/files/tutorial instead.

There's also two other bugs in that version of note-procs.tcl. A discussion of them can be found in the IRC logs from July 19th, if you happen to have a local copy of the log from that date. In case there's someone who doesn't have a copy, but wants to see the log, I've put a copy at:

http://www.RawFedDogs.net/OpenACS-IRCLog-07-19-2008.txt

When one tries to add, or edit if there are notes in the database to edit, a note, one gets an "(exception NSDB, "Query was not a DML or DDL command.")" error. Derickl, on IRC, posted the following link:

http://snippets.dzone.com/posts/show/5789

with suggested code changes which seems to fix that problem. Code in both the add and edit procs need to be changed.

But, as I said, once the bugs are fixed, the tutorial is still outdated. Is it worth trying to fix it?

I think it would benefit from a complete rewrite. Ideally it would probably be best if the rewrite was done by someone who knows OpenACS like the back of their hand. Short of that, I made this offer on IRC and I'm still willing to give it a try. If someone would be willing to give me some example code, demonstrating current best practices, I'd be willing to try to dissect it, figure out how it works, and try to write up a tutorial from a newbie perspective. Anything I might come up with would probably
need to be polished by a member of the OpenACS community, and I'd very likely have lots of questions along the way. I think the tutorial should, at least, cover setting up a simple project that handles some type of relational data. An example I've seen used in other tutorials is a simple
book information system. Books can have one publisher and one or more authors.

Kevin
http://www.RawFedDogs.net
http://www.WacoAgilityGroup.org
Bruceville, TX

Si hoc legere scis nimium eruditionis habes.
Longum iter est per praecepta, breve et efficax per exempla!!!

Collapse
Posted by Dave Manginelli on
I think both the pros and cons from this similar ancient thread are still true:

https://openacs.org/forums/message-view?message_id=29256

Now, as then, I am in no position to complain having made only very minor contributions myself...

Collapse
Posted by Dave Manginelli on
I meant to say _mostly_ true.