Earlier I was watching television in my usual desultory fashion and happen to catch some part of Hoobastanks latest video If I were you on MTV-2. Even though I wasn't impressed much with this song, I felt nostalgic for a while, as it just happened to be the same band's single, The Reason, was in my top singles list of 2004. I guess it was released in 2003, but in heavy rotation for more than an year in many FM stations.
Whenever I spend a lot of time sitting in front of my laptop doing some work, I prefer to tune into our local (San Francisco) radio station Star 101.3, for some decent music. While I was working on our record breaking Sun-Siebel benchmark, I got a chance to hear pretty good (and nice) singles like Hoobastank's The Reason, Lionel Richie's Just For You, Matchbox 20's Unwell, countless times; and they are sort of stuck in my head since then. All the above mentioned songs have great vocals with not so noisey music. Since my half dead brain is in an oblivious state (I am not drunk. I'm not a boozer -- feeling not so well, just to clarify) and refusing to co-operate in putting together some useful content, I chose to post the lyrics of The Reason and Just For You, for the second time in a row.
HOOBASTANK - THE REASON
(courtesy: absolutelyrics.com)
Listen to a 30 sec preview at: last.fm
I'm not a perfect person
As many things I wish I didn't do
But I continue learning
I never meant to do those things to you
And so I have to say before I go
That I just want you to know
I've found a reason for me
To change who I used to be
A reason to start over new
And the reason is you
I'm sorry that I hurt you
It's something I must live with everyday
And all the pain I put you through
I wish that I could take it all away
And be the one who catches all your tears
That's why I need you to hear
I've found a reason for me
To change who I used to be
A reason to start over new
And the reason is you
And the reason is you
And the reason is you
And the reason is you
I'm not a perfect person
I never meant to do those things to you
And so I have to say before I go
That I just want you to know
I've found a reason for me
To change who I used to be
A reason to start over new
And the reason is you
I've found a reason to show
A side of me you didn't know
A reason for all that I do
And the reason is you
LIONEL RICHIE - JUST FOR YOU
(courtesy: azlyrics.com)
Golden days
Night was play
Pain was all a world away
We went to school
We learned the rules
We trusted all they had to say
Then life took a turn
We all had to learn
And we cant go back again
And my heart is breaking
Just for you
Just for you
And my arms are open
Just for you
Just for you
Just for you
God was God
And dreams were dreams
Life was all pecan ice cream
Truth was true
And lies were lies
And we thought love would never die
But the world moved on
My illusions gone
And I don't know who to blame
And my heart is breaking
Just for you
Just for you
And my arms are open
Just for you
Just for you
And these tears I'm crying are for you
Just for you
Just for you
I'm looking for protection
Give me shelter from the storm
I just hope this light inside me
Keeps me strong
And my heart is breaking
Just for you
Just for you
And my arms they're open
Just for you
Just for you
And these tears I'm crying are for you
Just for you
Just for you
Just for you
Oh my heart is breaking
And my arms are open
Oh these tears I'm crying are just for you
Oh yeah
______________
Technorati tag: Music
Friday, 28 April 2006
Sunday, 23 April 2006
Make a noise and make it clear
I am not saying that - John Farnham did, in his 1986 single You're The Voice. I found this incredible song in the audio CD, Greenpeace: Rainbow Warriors, that I borrowed from our local library. I can't get it out of my head ever since I heard it for the very first time. This song has got a nice lyric, great vocals, very cool chorus and superb music. I'm afraid I am going deaf playing it so loud; and of course there is fairly an equal chance of going dumb, as I am bellowing along and straining my vocal folds/cords.
Here's the song verbatim (Courtesy: Leoslyrics.com):
Technorati tag: Music
Here's the song verbatim (Courtesy: Leoslyrics.com):
JOHN FARNHAM - YOU'RE THE VOICE______________
We have the chance to turn the pages over
We can write what we want to write
We gotta make ends meet before we get much older
We're all someone's daughter
We're all someone's son
How long can we look at each other
Down the barrel of a gun?
You're the voice, try and understand it
Make a noise and make it clear
Oh-wo-wo-wo, oh-wo-wo-wo (chorus)
We're not gonna sit in silence
We're not gonna live with fear
Oh-wo-wo-wo, oh-wo-wo-wo (chorus)
This time we know we call can stand together
With the power to be powerful
Believing we can make it better
We're all someone's daughter
We're all someone's son
How long can we look at each other
Down the barrel of a gun?
Technorati tag: Music
Thursday, 20 April 2006
Solaris: NULL pointer bugs & /usr/lib/0@0.so.1 library
Some programmers assume that a NULL character pointer is the same as a pointer to a NULL string. However de-referencing a NULL pointer (ie., location I still need to find out why?. [Update: 04/26/06] According to Chris, first few pages were intentionally unmapped to catch poorly written code. Thanks Chris.
The following simple C program illustrates the NULL pointer de-referencing, and the subsequent process crash:
Observe that
How to prevent the crash?
The recommended way is to modify the source code. The quick and dirty way is to pre-load the Solaris specific
eg.,
Read man page of run-time linker, ld.so.1, for more.
Acknowledgements:
Jim Fiori
___________________
Technorati tags: Solaris | Open Solaris | dbx
0x00000000 in the address space of a 32-bit process) results in a segmentation fault on Solaris; and hence the process dies with a signal SEGV. On Solaris, typically application text loads at 0x00001000. All the address space between 0x00000000 and 0x0000FFFF (that is about 64K of address space) is not used. The following simple C program illustrates the NULL pointer de-referencing, and the subsequent process crash:
% cat strlen.c
#include <stdio.h>
#include <string.h>
int main()
{
char *string = NULL;
printf("\nString length = %d", strlen(string));
return (0);
}
% cc -g -o strlen strlen.c
% ./strlen
Segmentation Fault (core dumped)
% dbx strlen core
Reading strlen
core file header read successfully
Reading ld.so.1
Reading libc.so.1
Reading libdl.so.1
Reading libc_psr.so.1
program terminated by signal SEGV (no mapping at the fault address)
0xff2b44e4: strlen+0x0080: ld [%o1], %o2
Current function is main
8 printf("\nString length = %d", strlen(string));
(dbx) print $o1
$o1 = 0
(dbx) where
[1] strlen(0x0, 0x0, 0x36a2c, 0x7efefeff, 0x81010100, 0xff3cdc4c), at 0xff2b44e4
=>[2] main(), line 8 in "strlen.c"
(dbx) whatis string
char *string;
(dbx) examine string
0x00000000: 0x00000000
(dbx) regs
current frame: [2]
g0-g1 0x00000000 0x00000000 0x00000000 0xff2b4464
g2-g3 0x00000000 0x00000000 0x00000000 0x00000000
g4-g5 0x00000000 0x00000000 0x00000000 0x00000000
g6-g7 0x00000000 0x00000000 0x00000000 0x00000000
o0-o1 0x00000000 0x00000000 0x00000000 0x00000000
o2-o3 0x00000000 0x00036a2c 0x00000000 0x7efefeff
o4-o5 0x00000000 0x81010100 0x00000000 0xff3cdc4c
o6-o7 0x00000000 0xffbff8b8 0x00000000 0x00010c14
l0-l1 0x00000000 0x00000000 0x00000000 0x00010c70
l2-l3 0x00000000 0xff342070 0x00000000 0x00000000
l4-l5 0x00000000 0x00000000 0x00000000 0x00000000
l6-l7 0x00000000 0x00000000 0x00000000 0xff3ee7c4
i0-i1 0x00000000 0x00000001 0x00000000 0xffbff984
i2-i3 0x00000000 0xffbff98c 0x00000000 0x00020c00
i4-i5 0x00000000 0x00000000 0x00000000 0x00000000
i6-i7 0x00000000 0xffbff920 0x00000000 0x000107d0
y 0x00000000 0x00000000
ccr 0x00000000 0xfe400006
pc 0x00000000 0x00010c14:main+0x14 call strlen [PLT] ! 0x20cdc
npc 0x00000000 0xff2b44e8:strlen+0x84 inc 4, %o1
Observe that
dbx is actually showing six arguments (addresses) instead of just one argument that is the address of the string being passed to this routine. These six arguments are the registers %o0 to %o5 which hold the outgoing arguments. You can match the arguments to strlen() in the call stack with the addresses in regs output. Note that the registers %i0 to %i5 hold the incoming arguments.How to prevent the crash?
The recommended way is to modify the source code. The quick and dirty way is to pre-load the Solaris specific
/usr/lib/0@0.so.1 library into process address space. /usr/lib/0@0.so.1 is an user compatibility library that Sun started shipping with Solaris 2.6, provides a mechanism that will cause location 0x00000000 {for 32-bit processes} to be mapped to a valid address containing the value 0. Note that the address 0x00000000 (or 0x0 in short) of the virtual address space is not mapped, by default.eg.,
% setenv LD_PRELOAD_32 /usr/lib/0@0.so.1
%./strlen
String length = 0
Read man page of run-time linker, ld.so.1, for more.
Acknowledgements:
Jim Fiori
___________________
Technorati tags: Solaris | Open Solaris | dbx
Saturday, 15 April 2006
Building Enterprise Applications with Sun Studio Profile Feedback
article on Sun Developer Network (SDN) can be accessed through the URL:
http://developers.sun.com/prodtech/cc/articles/building.html
Many thanks to Chris Aoki, Mukesh Kapoor, Richard Friedman and Dr. SG, for their time and effort in reviewing and suggesting changes to this document.
Needless to say, the content of this article is a concoction of technical material from my earlier blog posts:
Sun Studio C/C++: Profile Feedback Optimization
Sun Studio C/C++: Profile Feedback Optimization II
Sun Studio 11: Asynchronous Profile Feedback Data Collection
Sun Studio C/C++: PFO - single feedbin for all executables
___________________
Technorati tags: Sun Studio | C | C++
http://developers.sun.com/prodtech/cc/articles/building.html
Many thanks to Chris Aoki, Mukesh Kapoor, Richard Friedman and Dr. SG, for their time and effort in reviewing and suggesting changes to this document.
Needless to say, the content of this article is a concoction of technical material from my earlier blog posts:
Sun Studio C/C++: Profile Feedback Optimization
Sun Studio C/C++: Profile Feedback Optimization II
Sun Studio 11: Asynchronous Profile Feedback Data Collection
Sun Studio C/C++: PFO - single feedbin for all executables
___________________
Technorati tags: Sun Studio | C | C++
Thursday, 13 April 2006
My Favorite Music VI
Appending few more to the incessant list of my favorite singles .. Parts of this list are at: I | II | III | IV | V.
________________
Technorati tag: Music
Aerosmith - Crazy |
|
Technorati tag: Music