Friday, June 17, 2005


I have been questioning myself about which GUI is best fit to my GNU/Linux. From user perspective, KDE is more comprehensive and complete. It supports many things and structured, because it uses QT from The graphics itself is really good. On the other hand, GNOME is very open and easier to compile and also it comes from GNU with GNU Public License (GPL) and also seems more stable.

I have tried to compile my KDE from scratch and enabled many optimizations on my Pentium4 laptop (-O3, -mSSE2, -MFPMATH=SSE, -march=pentium4 -mthreads etc.). First I compiled my QT. This QT depends on CUPS, mySQL and some other modules to compile. After compilation, my KDE applications were not stable anymore. The printing did not work, my KMail sometimes crashed and so on.

While with GNOME, I compile some applications such as GAIM which required me to compile some GNOME modules and still it worked fine.

The total size of the modules are also less on GNOME than KDE. While in KDE, there is a lot of applications and modules, GNOME seems is more thin and fits to lower-end PCs.

Anyway, Linux community must decide which GUI they want to use for desktop Linux. Otherwise, they will be crushed by Apple's Mac OS which has decided to pulling their steer towards Intel processors. Yes!, they have decided for their next Mac computers to use Intel x64 dual or quad processors.

Sunday, June 5, 2005

CORBA header

The CORBA messages are carried over TCP. Inside, each message consist of message header and message data.

The structure of message header is :

char[4] magic;
octet[2] GIOP_version;
octet flags;
octet message_type;
unsigned long message_size;

First 4 octets contain "GIOP", then followed with 2 octets of GIOP version (high byte is for Major version, low byte is for minor version).

flags (in GIOP 1.1, 1.2, and 1.3) is an 8-bit octet. The least significant bit indicates the byte ordering used in subsequent elements of the message (including message_size). A value of FALSE (0) indicates big-endian byte ordering, and TRUE (1) indicates little-endian byte ordering. The byte order for fragment messages must match the byte order of the initial message that the fragment extends.

The second least significant bit indicates whether or not more framents follow. A value of FALSE (0) indicates this message is the last fragment, and TRUE (1) indicates more fragments follow this message. The most significant 6 bits are reserved. These 6 bits must have value 0 for GIOP version 1.1, 1.2, and 1.3.

message_type indicates the type of the message; these correspond to enum values of type MsgType.

message_size contains the number of octets in the message following the message header, encoded using the byte order specified in the byte order bit (the least significant bit) in the flags field (or using the byte_order field in GIOP 1.0). It refers to the size of the message body, not including the 12-byte message header. This count includes any alignment gaps and must match the size of the actual request parameters (plus any final padding bytes that may follow the parameters to have a fragment message terminate on an 8-byte boundary).

MsgType definition:

enum MsgType_1_1 {
Fragment // GIOP 1.1 addition

So, message_type may containt 0 for "Request", octet 1 (00000001) for Reply an so on.

Forget My Ignorance! (answer to Bad Documentation...)

I am supposed to write this blog a while ago, but with all workload and family life, no time to update this blog. Anyway, a few days after I wrote the blog "Bad Documentation of Compaq Products", I went to CompUSA. A salesperson approached me and asked what he could help.
I told him that I was looking for FireWire cable for my new Compaq laptop. He then brought me to a rack full of different kind of cables. I told him that I had bought one (4-pin to 4-pin), but somehow could not fit to the laptop.

He asked me what kind of laptop I have. I explained to him that it is Compaq Presario R3000. He then brought me to computer section and we found the kind. He then tried the cable. In the beginning, it could not go all the way to the socket. He then carefully reinserted, and amazingly it fitted!.

I was stunned! How could this cable fits to the connector, while mine does not. Rushing back home (after saying to the salesperson that I will buy the cable if mine still does not fit), I carefully inserted it. First, it's kinda hard. I tried again, but now really align it and with little force. Voila!, it worked!

So, with this blog I would like to revise my previous blog. But, still Compaq does not provide a complete detail about some parts of the laptop.