Thursday, April 28, 2005

United Airlines Sucks Big Time!

I travelled from London Heathrow to San Francisco on United Airlines. That is the worst experience I ever had till now. The experience was pretty bad when I flew from San Francisco to Heathrow on United Airlines. If you ask me about flying United Airlines, my answer is a BIG NO. Never ever fly on United Airlines, specially international desitnations. There are better airlines to fly international destination and are better than these domestic airlines operating international flights.

I wanted a ear plug (which is provided in Singapore Airlines). When I asked for that, air-hostess told me that they don't carry any ear plugs. That's reasonable since it is costlier than carrying cotton. They did not have even cotton supply. Rather she asked me to stuff my ear with tissue paper. How ridiculous is that? They carry first-aid kid in the flight, but without cotton in it. Should I beleive that? Do you beleive that?

There are 6 seats (window side) reserved as Crew Resting area, that too with a special curton separating them from normal passengers. Those seats are so much better than the normal passenger seats. That is a good way of keeping employees happy, but not their customers. I have never seen crew rest area in the international flight which is next to passenger seats.

There is a button on the hand-rest for assistance during the flight. On United Airlines, it is virtually not there. I pressed that button quite a few times (I needed water). Nobody showed up. I had to go to the food cabin for the water. They did not even apologize for not showing up. It was like you should come and get what you want. We are here to take rest in the crew rest area.

Thursday, April 14, 2005

Speech of Swami Vivekananda

Hear the speech here.


Transcript can be found here.

Saturday, March 26, 2005

Personalization Vs. Customization

I always hear about websites talking about personalization. What exactly is personalization. How different it is from customization.

People are confused about these 2 words. Take for example My Yahoo!. My Yahoo! allow me to change the background image, font, color and also let me choose the content I want to see on my home page. Effectively it lets me create a website of my own with minimal effort. For me this is not personalization. I call it customization, as it let me customize what I want to see and how I want to see.

So what is personalization? Take for example Amazon. When I go to Amazon, buy something or browse for something it records my activity. [ This is an invasion of privacy as Amazon privacy policy allow them to share this with their partner merchants ]. Based on this information, everytime I visit Amazon home page, it is very different and is having recommendations for me. This is personalization for me. Amazon is trying to personalize the content according to my needs and habits.

Customization should be unique to me, not to the computer I am working on. Recently Google News added a feature to customize Google News. If I customize my news when I am browsing at public library, when I come home and browse to Google News, customization is gone. What is the use of spending my time on customizing it then? I don't mind logging into Google using my username and let Google save the customization I have done on their server, so that I can get the same customization where ever I am.

Thursday, March 24, 2005

Multiple inheritence virtual table in C++

Consider the following code on 32 bit machine and gcc compiler


class A {
public:
virtual void a() { }
};

class B {
public:
virtual void b() { }
};

class C: public A, public B {
public:
virtual void c() { }
};

#include

int
main() {

printf("sizeof(A) = %d\n", sizeof(A));
printf("sizeof(B) = %d\n", sizeof(B));
printf("sizeof(C) = %d\n", sizeof(C));
}


In case of C, I was expecting a pointer to virtual table in every part of "C". So the output I was expecting was,

sizeof(A) = 4
sizeof(B) = 4
sizeof(C) = 12

But I turned out that

sizeof(A) = 4
sizeof(B) = 4
sizeof(C) = 8

After much analysis using gdb and printf's I figured that Virtual table for "C" part and the first base class having virtual method is shared.

This is done for memory efficiency. The memory layout is having A part followed by B part, followed by C part. When a a() method of A is called via pointer to C, a() will get "this" pointer same as original pointer. But when b() [method in B] is called via pointer to "C", b() get "this" as (original pointer) + (sizeof(A). [Assuming object is laid out from lower memory to higher memory address]. This is the reason virtual table is shared between "C" and first base class having virtual method.

Wednesday, March 16, 2005

Cost of Milk

Today when I went to Albertbson store located next to my apartment complex to buy milk, I realized how much cost difference is there for a gallon of milk in Indian grocery store and grocery chains.

I buy 1 gallon of milk for $2.99 in Namaste Plaza located at the intersection of Lawrence Expressway and Central Expressway. The same product cost $4.99 in Albertson.

I wonder who is at loss here?

Thursday, March 10, 2005

Lexis-Nexis Hacked!

New York Post says:

The Federal Bureau of Investigation and the Treasury Department are investigating the LexisNexis incident, people close to the inquiry said. The concern in such cases is that criminals can use the information to open credit card accounts in other people's names or engage in various other forms of so-called identity theft.

This is the 3rd incident in last few months where major company having consumer data got hacked. Lexis-Nexis joined the group of companies getting hacked after ChoicePoint and Bank Of America.

Who's next on the hitlist of hackers?

Sunday, February 27, 2005

Firefox IDN security flaw fixed

Few days back Firefoxannounced a new version 1.0.1. This release include IDN security flaw.

Release Notes here