30 January 2011

Fantastic CGI!

Silestone -- 'Above Everything Else' from Alex Roman on Vimeo.

Not sure about you people, but I think the above video is simply superb! And to make it even "more superb", it was made just by 2 person in 2 1/2 month. They certainly have the skill...

NB: If somehow the above embedded video isn't shown in this blog, just head over to this site to watch it.



29 January 2011

Order of argument evaluation in C, left-to-right or right-to-left?

Suppose you have written the below codes:

  int global_a = 10;
  int increase(void)
       return global_a += 10;

 int main(void)
      printf("%d,%d\n", increase(), global_a);
And you compile it, what output would you expect? "20,10"? or "20,20"? 
I was thinking "surely it is 20,20!". But this post says both are right! Wow.....
Note: the original poster was actually comparing GCC to TCC (Tiny C Compiler).


27 January 2011

NoSQL==No SQL in mind at all? :D

Making latest 2.6.x Linux kernel works with recent Linux distro

If you wanna compile new Linux kernel, let's say 2.6.35 onwards and you want it to run on fairly "old" distro, let's say CentOS 5.5, you might find it weird that it refuses to boot somewhere during root device mount?

Note: Wait, you say CentOS 5.5 is "old"? What I mean here is not "old" as "it's released 6-8 years ago", but old as "using quite old userspace tools"

What happen? You might think that you missed to enable (or possibly) include the filesystem driver in the initrd/initramfs. It's not. Thanks to various discussion archieve I found in Internet, it's a matter of enabling these two items in kernel config:

If you're confused where to find them, it's in "General Setup". The item is named "enable deprecated sysfs features to support old userspace too". Then you're ready to plunge the new kernel into the distro.



23 January 2011

gdb trick for printing array content

This is taken from Fedora planet, somekind of blog aggregator of the member of Fedora Community. This post discusses about the way we can print array values in gdb.

Here is the link, written by Sami Wagiaalla.

....And here is some excerpt from it:

 int main(){
   int *a;
   int b[3] = {1,2,3};
   a = b;

   int *c[3] = {a, b, 0};
   int **d = c;
   return 0;

   While debugging the above code if you do:

 (gdb) print b
 $4 = {1, 2, 3}

   that works.

 (gdb) print a
 $5 = (int *) 0x7fffffffe0f0

   that works too, but in order to print a as an array you must do:

 (gdb) print (int []) *a
 $7 = {1}

   and when you specify the size it gets better:

 (gdb) print (int [3]) *a
 $8 = {1, 2, 3}



05 January 2011

Money saving: how exactly we do that?

This is taken from a posting I received from PROFEC, an Indonesian entrepeneurship mailing list. Pretty interesting and valuable on how you're supposed to save your money. Please read on....

In a public financial training, a Financial Planner (FP) asked the participants: "How much money do you usually save every month? "

So many versions of the responses from the participants but it appears a remarks that said: "Saving? Just for a standart living alone is not even enough! "

Financial Planner (FP): "So, how many person in this room who do not have the habit of saving each month?"

Nearly half the participants raised their hands.

FP: "Why are you reluctant to save each month?"

Budi: Well, Sir, like my friend has said, was "...for living alone is just barely not even enough! "

FP: "Well now let me kindly ask you :what's the principle of saving as you know? "

Budi: "At the beginning of each month, I shall allocate my money to cover the expenditures that month, including paying existing debts and bills. If there are some amount of money left, I will save them. However, the problem is, every month there's virtually nothing left in my pocket."

FP: "(laughing) yes that is why you can not save because that is a wrong mindset. The correct principle of saving money was not from residual income but it is budgeted. Then you allocate the rest of your income to cope with the expenses".

Syamsul: "Ah yes. I read that principle too, which says that saving is done in front. Which is called "Pay yourself first?"

FP: "Yes principally, do that in front or we could say  "pay yourself first". Why? Because there is a financial law applicable universally known as Parkinson's Law. The law says that any income earned by
someone will be soo caught by the amount of expenditures. Let's say your income is 1 million rupiahs, then your spending will likely approach or exceed 1 million.

When you get to 3 million increase in income, then your spending will somehow increase to 3 million too. Hence you barely have nothing to save."

Syamsul: "It means the more income I have, the more expense I shall have too?"

FP: "Exactly and this is causing a lot of people unable to save money. Because their expenses are close to or even exceed their income."

Budi: "Then how are we supposed to save exactly?"

FP: "Take a percentage of your salary and then save or invest thme. The allocate the rest to cover the expenses accordingly."

Syamsul: "What is the ideal percentage on how much we should save?"

FP: "It's up to you. You may decide the percentage initially, then adjust it to meet your financial ability and then gradually increase up to 10-30% of your total monthly income. Practice this habit and you can always save no matter what."

Syamsul: "Yes I totally agree and this will be our new year's resolution for me and family."

-00 -

Why are people unable to save money? Actually there's no such big issue, just wrong mindset. So change your mindset and your life will change too.

-Change Your Mind Change Your Life-



02 January 2011

How to fix stuck mouse in aptosid as KVM guest ( + broken DNS resolve)

There's a small irritating problem when you install aptosid as KVM (Kernel Virtual Machine) guest: mouse "stuck"! When I take the focus to the KVM's SDL guest window, it just stays there.... For the record, I used aptosid-2010-03-apate-kde-lite-i386-201012262151.iso as the installation basis.

Turns out, you have to uninstall these packages (somehow they are installed automatically due to unknown reason). To avoid trouble, run it in either run level 2 or 3:

Just to be safe, uninstall virtualbox-ose-guest-x11 and virtualbox-ose-guest-utils too.

Re-run X again. You should be just fine this time.

PS: I also noticed I can't resolve any host names initially ( I used e1000 ethernet card emulation). What's the solution? Rather cheating actually: switch back to your terminal. Resolve the name of hosts mentioned inside /etc/apt/sources.list.d/ files, you may use "host", "nslookup" or "dig" command or else. Got the IP address? Good. Paste them inside those files. Then do:
$ sux

# apt-get update
# apt-get dist-upgrade
# apt-get install dnsutils

I have no idea why dnsutils is left there you go.