About Ajaqs

Install it!

What is Ajaqs

Ajaqs is a web-based application used to warehouse FAQs on a per-project basis. In that sense, it functions like the original FAQ-o-matic, written by Jon Howell.

The original FAQ-o-matic

I first used the original FAQ-o-matic at apache.org in 1999 when I was working for a company called MATRAnet in San Carlos, California. I found the online question-and-answer forum very helpful. At the time, I was becoming familiar with Internet technologies and Java tools (like servlets), and thought it would be interesting to re-implement the FAQ-o-matic as a servlet application. So, finally finding some spare time in Africa (where I work as a Peace Corps Volunteer in Uganda), I've done it. Ajaqs is the result.

Ajaqs is Free Software

Because of the tremendous effort of the Free Software Foundation, and the role it has played in my own professional development, I have felt compelled to donate this work to the software community (please see licensing details). My hope is that Ajaqs will help engineering groups maintain and perpetuate their knowledge-base. In my own experience, one of the great challenges of engineering a new project is not in fact the project itself, but instead, the storage, transmission (often to novices), and searching, of all the knowledge that grows up around the project. Companies have a vested interest not only in making this knowledge readily understood, but also stand to gain when their top-tier engineers are spending time on new projects, not dealing with questions on old ones.

Main Features

Technologies used in Ajaqs

Ajaqs uses modern, open-source Java technologies. This table lists which technologies are required:

configuration / build Ant 1.6.1
compilation Java 1.5.0-beta2
front-end Java Servlets 2.4
front-end Java Server Pages (JSP) 2.0
front-end JSP Standard Tag Library (JSTL) 1.1
front-end request (custom taglib from jakarta) 1.0.1
front-end XHTML 1.0 Transitional
front-end Cascading Style Sheets 2.0
back-end Castor
back-end MultipartRequest 1.30b3
back-end MySQL MySQL-4.0.20c
PoolMan 2.0.4
logging / debugging log4j 1.2.8

We use Castor for two reasons:

  1. To make Ajaqs independent of the database vendor. That is, Ajaqs in theory can be mapped onto a variety of database products, provided Castor supports the vendor in question.

  2. To support transactions. That is, every page in Ajaqs is processed as a transaction, so either the whole page works fine and we commit (where need be) to the database, or we rollback and do not commit any changes at all.

The default configuration for Ajaqs relies on MySQL-Max. We use INNODB tables, provided in MySQL-Max, in order to get transactional behavior in the back-end.

Advantages of Ajaqs

Here are some key advantages of using Ajaqs:

Disadvantages of Ajaqs

Here are some disadvantages of using Ajaqs:

Whence the name Ajaqs?

Ajaqs stands for a Java FAQ-o-matic, and is pronounced like the proper noun Ajax, which is the name once given to a great warrior in ancient Greek mythology.


Here are some contributors who have helped make this package possible:

How You Can Help

You can help make Ajaqs a better tool in the following ways:

Get ajaqs at SourceForge.net. Fast, secure and Free Open Source software downloads