Install activeCollab on Ubuntu Server

03-Aug-06

activeCollab is an open-source, web based collaboration and project management tool. I am excited about it after reading some materials from the web. Here I record down the steps I installed it on my newly installed Ubuntu 6.06 LTS (Dapper Drake) LAMP Server. I only use Putty (login as root onto the Ubuntu server) and a web browser to finish the task. It only takes me less than 15 minutes.

Step 1: Open a Putty session and type the following commands:

wget http://www.activecollab.com/files/0.6/activeCollab.zip

unzip activeCollab.zip

cp -r activeCollab /var/www/

cd /var/www

chown -R www-data activeCollab/

cd activeCollab

chmod -R 766 cache/

chmod -R 766 config/

chmod -R 766 public/

Step 2: Create MySQL database and database user. I use ‘activecollab’ as the database name, ‘acdbuser’ as the database username, and ‘******’ as the database password’. Type the following commands with the existing Putty session.

mysql -u root -p

Enter password: ******
mysql > create database activecollab;
mysql > grant all privileges on activecollab.*
to 'acdbuser'@'localhost' identified by '******';
mysql > exit

Step 3: Open a web browser and type ‘http://yourdomain.com/activecollab/install’ as the URL. Follow the instructions. You need to input the database name, username, and passowrd you decided earlier.

Software Configuration Management Systems

08-Mar-06

The following lists seven software configuration management tools. Some of them offer test drive to play with. Examples: BitKeeper’s 30-Minute Test Drive, Perforce’s Ten-Minute Test Drive.

CVS - Concurrent Versions System

CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you can record the history of sources files, and documents.

(more…)

Java Design Patterns Explained

08-Feb-06

I looked for some materials to aid teaching and learning of software design patterns. I wanted something suitable for students to play with during practical and tutorial sessions.

The first website I reached is Java Design Patterns Reference and Examples at FluffyCat.com. This site provides simple yet good and complete example codes for many design patterns. However, there are no detailed descriptions nor in-depth discussions.

The second website I reached is JavaWorld.com. It contains some good articles on Java design patterns. Each article (around 1,0000 in length) focuses on one design pattern at a time and has example applications with explanation and discussions. The following are what I found useful for student practical works and classroom discussions. (more…)

The Open-Closed and the Liskov Substitution Principles

16-Jan-06

These are two important principles for a good object-oriented design (OOD).

The Open-Closed principle states that well-designed code should be open for extension and closed for modification. In other words, in a well-designed program, new functionalities are added by adding new code rather than by modifying already working code. It is the foundation for building software that is maintainable and reusable. This principle was coined by Bertrand Meyer in his book titled Object Oriented Software Construction. The second edition of this book is introduced here in Eiffel Software.

(more…)

Top 16 Software Magazines

12-Dec-05

I learned this list of magazines from an international survey of readers about software. In making this list of hyperlinks for furture reference, I searched the web by entering the names of these 16 magazines, one by one, for Google Search. It took me very short time (around 20 minutes) to complete the task, since all the first entries in those 16 searches brought me to the right places.

(01) Application Development Trends: News and articles on application development trends, intended for software developers for enterprise environments.

(02) Better Software Magazine: Better Software Magazine helps software managers, testers and QA staff develop and deliver better software.

(03) C/C++ Users Journal: A great C/C++ journal for the intermediate to advanced user. (more…)

Learn Something Concrete about Software Architecture

24-Nov-05

In my teaching of software architecture, I introduced several architectural styles that can be used as a basis for the architecture of different systems. These include layered systems, pipes and filters, and model-view-controller design pattern. However, when it comes to giving some concrete examples of these software architectures, and how they can be integrated to deal with a particular software design problems, it is not easy to give some good examples. Therefore, I searched the Web to look for some good articles for this purpose. Finally, I found this article good for learning, which describes something concrete about software architecture and design patterns. (more…)