Friday, September 30, 2005

Table Inheritance: A Great Gift From PostgreSQL

Though we have discussed PostgreSQL's object-relational features in our database class, it is not until now that I have used the database's inherit feature. It is a feature wherein a table can be designated as a parent table by one or more child tables. An entry in the child table would automatically be reflected in the parent table. Child tables may have other columns than its parent table - what's important is that it inherits all columns of the parent.

This is specially useful in users management, when most of the times users of the system are separated into roles. In UVLE, for example, there are five roles, namely, root, administrator, instructor, student, and guest.

When the "is-a" relationship, like administrator "is-a" user, is represented in non-object-relational database (or more specifically, MySQL), it spans at least two tables. The more the roles are, the more tables are "artifically linked" by foreign keys. This then adds problems to atomic insertion, id generation, and more complicated select statemetns, to name a few. Since we have to make non-trivial SQL queries, autogenerated data access objects are hard to create.

With PostgreSQL, all of these worries are wiped out. You don't have to worry how to get the last inserted autogenetated primary key to insert half chunk of the administrator user, PostgreSQL does it for you! =)

Another promising feature of PostgreSQL are views. I think this has a tremendous potential in making the UVLE data access object design a lot cleaner, but we'll stil l see.

Does MySQL have these features? Well, MySQL 5.0 is still to be released, but the beta version proved to be promising, though not as feature-robust as PostgreSQL.

Breathe In, Breathe Out

Breathe In, Breathe Out

Thursday, September 15, 2005

Progress

JSF Tile Mechanism

I've encountered some problems regarding the jsf tile mechanism like jsf tags not appropriately mixing with other standard html tags, but (i think) i found the solution.

The template is now ready, all we have to do now is to edit the content part of our assigned modules, which is in a separate jsp page. If you need to change something in the header / menu / footer parts just tell me.

UVLĂȘ Forums Summer version

The old forums module is in "Studio Creator Version" so it needs some alteration to fit the current specs. I'm now trying to convert the database part of it because the old version is using a weird (but somewhat easier, especially for drag-and-droppers, a.k.a DADers) jdbc / database implementation. This is the major part that needs modification.

After completing this modification, I will study RSS, which i have no idea on how to use / implement / or even what it is. (doh)

Sunday, September 11, 2005

Mythical Man Month

I suggest the book Mythical Man Month, a book written by Frederick Brooks, Jr. It is a book discussing and evaluating software engineering practices based from actual field experience of the author.

Some of the things I found relevant in UVLe 3.0 are:

1.) As much as possible, buy/get/reuse code of other people or from previous projects. This removes a lot of overhead time to create an application.

2.) Adding manpower to a late project will NOT save the project, actually it will make it later. This is due to the addition of needed time for the new men to learn the project, and the added overhead cost of communication.

3.) How does a project gets three months late in schedule? One day at a time (hint hint). One day that slipped in the schedule in the Gantt chart is the start of the catastrophe that is waiting for the whole project.

Though it was written in 1975, it is still very relevant in software engineering today.

Saturday, September 10, 2005

Progress!!! JSF tile mechanism

I've studied the jsf tile mechanism and I'm now tweaking the pages to fit it.