Posts Tagged ‘openacs’

I’m back!

Wednesday, December 17th, 2003

This site was down for the past few days due to a SNAFU with acornhosting’s upstream provider. You’d think I’d have learned to have a backup strategy in place by now, but you’d be overestimating my intelligence. Luckily, Cathy was somehow able to negotiate with her failed upstream provider to get my (and other acornhosting customers’) data back. After this episode, I promise to backup religiously and I’m even more sold on acornhosting as a solid web hosting provider.

Why OpenACS?

Monday, September 29th, 2003

Bhavesh responded to my seemingly irrational exuberance about OpenACS asking, “What’s the excitement about OpenACS?”

There are much better answers to this question, starting with Why OpenACS?, by my web host Cathy Sarisky, but here’s my super brief answer.

OpenACS is a toolkit to build online communities, that is, sites which value users and their contributions. OpenACS provides applications which allow users to create and manage content - applications like forums, photo albums, blogs, calendars, wikis, and file storage areas. Users can obviously create content in these areas, but they can also be given extra privileges to moderate the content or grant privileges to others. So, administrators can delegate the management of the site to those who are most invested in it - the community. Currently, OpenACS’s main focus has been at educational institutions (MIT, the University of Heidelberg, and many others) where it’s ideally suited for course management. It’s currently not polished enough to be used out-of-the-box unless you’re comfortable with Linux system adminstration, but improvements are being made in that area.

This site is built on OpenACS, but I barely scratch the surface of the features available. I plan to add more stuff soon, but OpenACS is in the midst of releasing its next version, so I’m concentrating my extensive free time in that endeavor. Once OpenACS 5 is out, I’ll upgrade this site and then add some of the bells and whistles.

To be honest, I’m not sure that OpenACS is the right application if you’re just looking to build a personal website. Movable Type is much more suited to that purpose. OpenACS is useful when you want to allow a bunch of users to each have complete control over their own personal websites, yet also allow those users to interact with each other, perhaps even aggregating content from multiple users in one place. So, if you wanted to create a service that competed with TypePad, you could use OpenACS to do that.

OpenACS’s main power lies in the fine-grained control that it gives you. Every object and area can be controlled the way you want, so the level of control that users have is up to you. The database API is clean and gives you full access to the database of your choice - Oracle or PostgreSQL. Your hands aren’t tied. The templating system is intuitive yet offers a lot of features for more complex, specific cases if needed. A lot of work is currently going into building and improving an automated testing framework. There are plenty of other reasons why I love OpenACS and I’ll write about them some more as examples of them come up.

In short, OpenACS is the way for me to get things done on the web.

OpenACS everywhere

Tuesday, September 16th, 2003

Forget MTV. I want my OpenACS! So, I finally got around to install OpenACS on my Powerbook. Mostly, I just followed MarkD’s excellent directions, but I used tDom and AOLserver 4, so there were a few differences.

OpenACS Screenshot

Updating from CVS

Sunday, July 20th, 2003

Here’s the steps I take in order to update my site from the latest OpenACS CVS. All of this info comes from Andrew Piskorski’s great CVS page or from pages listed in his document.

  1. Make sure that I’ve committed all the local changes that I’ve made.
     vinod:~$ cd web/kurup vinod:~/web/kurup$ cvs commit -m "Fixed foo, bar and blah" 
  2. Go into the directory containing my OpenACS CVS checkout and grab the latest sources. I’m using the oacs-4-6 branch.
     vinod:~/web/kurup$ cd ~/web/openacs-4 vinod:~/web/openacs-4$ cvs update -r oacs-4-6 
  3. Import the code into a vendor branch. My repository name is kurup. OpenACS is the vendor tag.
     vinod:~/web/openacs-4$ cvs -d /var/lib/cvs \      import -m "importing latest OpenACS 4.6 branch" \      kurup OpenACS openacs-4-6-3-20030719 
  4. This produces the usual CVS scroll and then a message like this:
     7 conflicts created by this import. Use the following command to help the merge:      cvs -d /var/lib/cvs checkout -j<prev_rel_tag> \         -jopenacs-4-6-3-20030719 kurup 
  5. Follow the instructions just given above. This will checkout a full set of code into the kurup directory, while simultaneously merging the new imported code in.
     vinod@vkurup:~/web/openacs-4$ cd vinod@vkurup:~$ mkdir tmp vinod@vkurup:~$ cd tmp vinod@vkurup:~/tmp$ cvs -d /var/lib/cvs checkout \      -jOpenACS:yesterday \      -jopenacs-4-6-3-20030719 kurup 
  6. Go through and fix all the conflicts. This is the part that I sometimes find confusing. How to find the files that have conflicts? The command in instruction #3 above will list conflict files with a C in front of the filename. Check each file that has a C in front of it. This is why I like to do this process inside an emacs shell, so that I can look over the output as needed. For example, one piece of my listing looked like this:
     U kurup/packages/lars-blogger/www/blog-oracle.xql U kurup/packages/lars-blogger/www/blog.adp C kurup/packages/lars-blogger/www/blog.tcl U kurup/packages/lars-blogger/www/calendar-oracle.xql 

    So, I need to check ~/tmp/kurup/packages/lars-blogger/www/blog.tcl, look for conflict markers and resolve any conflicts. Do this for every file marked ‘C’ in your listing.

  7. Commit my work.
     vinod:~/tmp$ cd kurup vinod:~/tmp/kurup$ cvs commit \ -m "merged with openacs-4-6-3-20030719, conflicts resolved" 
  8. Blow away that tmp checkout
     vinod:~/tmp/kurup$ cd vinod:~$ rm -r tmp 
  9. Update my local checkout
     vinod:~$ cd web/kurup vinod:~/web/kurup$ cvs update 
  10. Restart my server.
     vinod:~$ svc -t /service/master 
  11. Once the server is back up, I visit http://kurup.org/acs-admin/apm with my broswer and click on ‘Install Packages’. I look for any packages that are listed as ‘Upgrade’. Click on these packages and follow the instructions to perform any needed upgrades. This is always a touchy process because if the upgrade script errors out, your server may be left in an in-between state. Hope and pray liberally.
  12. Repeat as needed, maybe monthly, or whenever there’s a new feature/bugfix available that you need.

 

My first OpenACS port

Thursday, January 4th, 2001

I finished porting the homepage module from ACS to OpenACS. Actually, it had already been ported, but the ACS version changed substantially, so I guess I merged the new ACS version with the old OpenACS version. Anyway, it works! Here’s the file -> homepage.tar.gz