Wednesday, July 2, 2008

കാറ്റ്...

ഒരു വലിയ മരത്തിന്റെ ചുവട്ടില്‍ ആണ് അവള്‍. മുന്നില്‍ ശബമുണ്ടാക്കാതെ ഒഴുകുന്ന പുഴയില്‍ കാര്‍മേഘം പാതി മറച്ച പൂര്‍ണ ചന്ദ്രനെ കാണാം. അരണ്ട വെളിച്ചത്തില്‍ അവളുടെ മുഖം കാണാനാവുന്നില്ല. രാത്രിയില്‍ ഇവള്‍ അവിടെ എന്തെടുക്കുകയാണ്? അവള്‍ നോക്കിനിക്കുന്നത് മുകളില്‍ മേഘങ്ങല്‍ക്കിടയിലെ ചന്ദ്രനെയോ താഴെ പുഴയെയോ അല്ല. രാത്രിയുടെ സൌന്ദര്യവും നിഗൂഡതയും ഉള്ളിലേക്ക് ആവാഹി ച്ചതുപോലെ ദൂരേക്ക്‌ നോക്കിയിരിക്കുകയാണ് അവള്‍.
അടുത്തേക്ക്‌ ചെന്നാലോ? വേണ്ട. പുഴയുടെ സൌന്ദര്യമാസ്വദിക്കുന്ന നാളത്തെ ഒരു മാധവിക്കുട്ടി ആവാം ഇവള്‍. ഇവളുടെ കഥയില്‍ എന്തായാലും ഞാന്‍ ഒരു കഥാപാത്രമല്ല.

അതോ യക്ഷിക്കഥകളിലെ സ്ഥിരം ചുറ്റുപാടില്‍ വെളുത്ത വേഷം ധരിച്ചുനില്‍ക്കുന്ന യക്ഷിയോ?

കാറ്റ് അല്പംകൂടി ശക്തിയില്‍ വീശിയാല്‍ ചിത്രം കൂടുതല്‍ മനോഹരമാകുമായിരുന്നു.
ആരോ തന്നെ ശ്രദ്ധിക്കുന്നത് അവള്‍ തിരിച്ചറിഞ്ഞുവോ? മുഖത്തേക്കു വീണുകിടക്കുന്ന മുടി പുറകിലേക്ക് മാടിയൊതുക്കി അവള്‍ തിരിഞ്ഞു നോക്കുകയാണ്.. പുഴയിലെ ചന്ദ്രന്റെ വെളിച്ചത്തില്‍ അവളുടെ മുഖത്ത്‌ കണ്ണില്‍നിന്നും കവിളിലേക്കു ഒരു വെള്ളിച്ചാല്‍... അവള്‍ നില്കുന്നത് പുഴയുടെ തീരത്തല്ല.. ഇടനാഴിയുടെ അങ്ങേ അറ്റത്തു ബാല്‍കണിയില്‍ .. പുറത്തു മഴ പെയ്യുന്നുണ്ട്.. അവള്‍ എന്നെ കണ്ടിട്ടില്ല.. അവള്‍ എന്തു ചെയ്യാന്‍ പോക്കുകയാണ്?

സ്ക്രീനില്‍ വന്ന പോപ്പ്അപ് അവളെ എന്നില്‍ നിന്നും മറച്ചു.
സഹപ്രവര്‍ത്തകന്റെ IM- "Is it ready?"

ഞാന്‍ ചെറുതായി വിയര്‍ക്കുന്നുണ്ടോ? ഇതുവരെ ഞാന്‍ ശ്വാസം കഴിക്കുന്നു ണ്ടായി രുന്നില്ലേ? കസേരയില്‍ നിന്നും പതുക്കെ എണീറ്റ് ഞാന്‍ ജനാലയിലേക്ക് നടന്നു. പുറത്തു ഇപ്പോഴും മഴ പെയ്യുന്നുണ്ട്.

പതുക്കെ ഫോണ്‍ കയ്യിലെടുത്തു ഡയല്‍ ചെയ്തു.
"That black splash is no good. and that silver icon on top." ഞാന്‍ പറഞ്ഞു.
"It was her last work. Her family's here to collect her belongings. Are you in?"

ഞാന്‍ ജനാലയിലൂടെ താഴേക്ക് നോക്കി. ബാല്‍ക്കണിക്ക് താഴെ ദൂരെക്കൊഴുകുന്ന മഴവെള്ളത്തിനു ഇപ്പോഴും ആ ചുവന്ന നിറമുണ്ടോ?

Tuesday, May 20, 2008

വീട്

ഇന്നു ഞാന്‍ നാട്ടിലേക്കു...
ഒരു സ്വപ്നത്തിലേക്ക്‌...

Saturday, April 12, 2008

ശൂന്യ പ്രധമം()

മലയാന്മയ്ക്ക് അതിന്റെ സ്വന്തം ഭാഷയും ചരിത്രവും പുരാണവും രുചിയും വേഷവും ജീവിതരീതിയും എല്ലാമെല്ലാമുണ്ട്. പുലബന്ധമില്ലാത്ത സംസ്ക്രുതികളുടെ അധിനിവേശമുണ്ടായിരുന്നില്ല എങ്ങില്‍, മാനവികതയുടെ ഉയര്‍ച്ചയുടെ പടികള്‍ അത് തനിയെ പിന്നിട്ടിരുന്നുവെങ്കില്‍ ഉണ്ടാവുമായിരുന്ന ഒരു 'ഇന്ന് ' നെ പറ്റി സങ്ങല്‍പ്പിച്ചു നോക്കിയിടുണ്ടോ ?
'my foot' അല്ലെ?
ഇന്ന് അല്പം ബോറിംഗ് ആയിരുന്നു വര്‍ക്ക്‌. വിഷ്വല്‍ സ്റ്റുഡിയോ യുടെ കോഡ് എഡിറ്ററില്‍ കൈകളും മനസ് വേറെ എവിടെയോ ആയിരിക്കുകയുമായിരുന്ന ഒരു സമയത്ത് തോന്നി - 'ഇതു മലയാളത്തിലയിരുന്നു എങ്ങില്‍?' അങ്ങിനെ ഒരു പോസ്റ്റ് ഉണ്ടായി... :)
ഇതാ ഒരു 'hellow world' program മലയാളത്തില്‍ ...
തെറ്റുകള്‍ അറിവുള്ളവര്‍ പറഞ്ഞുതരുക...



#include

void main()
{
int a,b;
a=120;
b=30;
try
{
if(a=b)
{
cout << "Uncertainity at macro level";
}
else
{
cout << "Some things are really that simple!";
}
}
catch( e exception)
{
cout << "Beacuse sometimes life's really a piece of cake! :)";
}
getch();
}


================================================
#സമഗ്രഹം <മാനകപ്രവേശനിഷ്ക്രമധാര >

ശൂന്യ പ്രധമം()
{

അഭിന്യം ക ,ഖ;

ക = ൧൨൦ ; //120

ഖ = ൩൦; //30

പ്രയത്നം
{
യദി (ക=ഖ)
{
നിഷ്ക്രമം("അസ്ഥിരതാ തത്വം സ്ഥൂല മാനത്തില്‍. ");
}
അഥ
{
നിഷ്ക്രമം("ചില കാര്യങ്ങല്‍ ഇത്രയും സരളമാണ്");
}
}
അധീനം( ഇ അസ്ഥിരത )
{
നിഷ്ക്രമം("എന്തുകൊണ്ടെന്നാല്‍ ജീവിതം ചിലപ്പോള്‍ ഒരു കേക്കിന്‍ കഷണം തന്നെയാണ് :) ");
}
അക്ഷരം();
}

Friday, April 4, 2008

മഴയത്ത്‌...

ജീവിതം ഒരു മൊബൈല്‍  ഫോണിനുള്ളില്‍  കുടുങ്ങിക്കിടക്കുകയാണ്.
ഫോണിന്റെ മറ്റേ അറ്റത്തു എനിക്കുവേണ്ടി കുടുങ്ങിക്കിടന്നവര്‍ പലരും കേട്ടുപോട്ടിച്ചു സ്വതന്ത്രരായി.എനിക്കും പറന്നുപോകണം. ദൂരേക്ക്‌. വളരെ ദൂരേക്ക്‌. മോനിട്ടറിനുള്ളിലേക്ക് ചാടിയിറങ്ങി ഇന്റെര്‍നെറ്റിലൂടെ ഒഴുകി ദൂരെ ആമസോണ്‍ വനത്തില്‍ ആദിവാസികള്‍ കാട്ടുവള്ളി കെട്ടിയുണ്ടാക്കിയ വള്ളത്തില്‍ ആകാശം നോക്കി കിടന്നു എങ്ങോട്ടെന്നറിയാതെ ഒഴുകി നീങ്ങാന്‍ കഴിഞെങ്ങില്‍...

കസേരയില്‍ പിറകിലേക്ക്‌ ചാരി കണ്ണുകളടച്ചു...
ചിന്തകള്‍ കാടുകയറും മുമ്പ് സഹപ്രവര്‍ത്തകന്‍ ചായ കഴിക്കാന്‍ ക്ഷണിച്ചു. നന്നായി.

പുറത്ത് മഴപെയ്യുകയാണ്. കഫെറ്റെറിയയിലെ പ്ലാസ്മ സ്ക്രീനില്‍ പതിവില്ലാതെ  വാര്‍ത്താചാനല്‍. ഡല്‍ഹിയില്‍ മഴ.
മഴ എന്നെ പുറത്തേക്ക് വിളിക്കുന്നുണ്ട്. ലിഫ്റ്റ് ഉപേക്ഷിച്ചു സ്ടയര്‍കേസിലൂടെ മുകളിലേക്ക് നടന്നു. ഇടെക്കെവിടെയോ ആരോ ഹായ് പറഞ്ഞോ? ശബ്ദം കാതുകളില്‍ എത്താന്‍ താമസിക്കുന്നു. അതോ ഞാന്‍ അതിലുമുറക്കെ ചിന്തിക്കുകയാണോ?

ടെറസിലെ മങ്ങിയ വെളിച്ചത്തില്‍ മഴയെ നന്നായി കാണാനാവുന്നില്ല. പക്ഷെ അതിന്റെ സംഗീതം കേള്‍ക്കാം. സുഗന്ധമാസ്വദിക്കാം.

 ഞാന്‍ മഴയുടെ ഭാഗമായി, മഴയോടൊപ്പം പെയ്തു. ഉള്ളിലെ കാര്‍മേഘങ്ങള്‍ കണ്ണിലൂടെ ആകാശമേഘങ്ങള്‍ക്ക് കൈകോര്‍ത്തു.

മഴത്തുള്ളികളോടൊപ്പം ഒരു നനഞ്ഞ അപ്പൂപ്പന്‍താടിപോലെ താഴേക്ക് പറന്നിറങ്ങിയാലോ?....

മഴയുടെ തണുപ്പ് ഇഷ്ടമാവാത്തതുപോലെ മൊബൈല്‍ഫോണ്‍ വിറച്ചുകൊണ്ട് കുലുക്കിവിളിച്ചു.
"Hey! am online! wer u?"
"I'm in the rain." ഞാന്‍ പറഞ്ഞു.

Monday, March 31, 2008

Exceptions Handlers...

The so called Big Bang was the beginning of all these mess...
Mess...
Disorder...
And it's increasing along the psychological arrow of time.
എല്ലാവരും ആ സമയ ചക്രത്തില്‍ 'മുന്നോടു' നീങ്ങുകയാണ്...

MailRouter. Oceansconnect ന്റെ ഏറ്റവും പുതിയ പ്രൊജക്റ്റ് ആണ്. എനിക്ക് എന്റെ സ്വന്തം പ്രൊജക്റ്റ് എന്ന് പറയാം. ഒരു ഇമെയില്‍ മാനേജ്‌മെന്റ് സിസ്റ്റെം ആണ്. രണ്ടു മെയില്‍ എക്സ്ചെന്ഞുകള്‍, നാലു മെയില്‍ locations ... , ഒരു ദിവസം രണ്ടായിരത്തിലധികം മെയിലുകള്‍... അവയുടെ attachments...

MailRouter ന്റെ കണ്സോളിലേക്ക് നോക്കിയിരുന്നാല്‍ എനിക്ക് അതിനുള്ളിലേക്ക്‌ ഓരോ പാക്കാറ്റും ഓടി വരുന്നത് കാണാം. ഓരോ പാക്കറ്റും അടുക്കിവച്ചിട്ടു mail object exchange server നോട് മറുപടി അയക്കാന്‍ പറയുന്നു.. ഒരുനിമിഷം... രണ്ടു നിമിഷം... മൂന് .. നാല് ... കാത്തിരുന്നു മുഷിഞ്ഞ മെയില്‍ object അതാ വലിചെരിയുന്നൂ ഒരു exception. 'Timeout Expired'. എതായാലും കാത്തിരുന്ന Exception handler ആ Exception നെ long-on ല്‍ പിടിച്ചു പുറത്താക്കി.

ജീവിതം തന്നെ ഒരു Try-Cath block നു ഉള്ളിലല്ലേ എന്ന് എനിക്ക് പലപ്പോഴും തോന്നാറുണ്ട്.
ഇന്‍ഷുറന്‍സ് പ്രീമിയം deduct ആയെന്നു അലേര്‍ട്ട് വരുമ്പോള്‍... വീടിലേക്ക് തിരിച്ചു വരുമ്പോള്‍ വഴിയില്‍ വച്ച്‌ ഉറങ്ങിപ്പോയ കാബ് ഡ്രൈവറെ വീണ്ടും കാണുമ്പോള്‍...

പുതിയതായി ജോയിന്‍ ചെയ്ട നേഹ ഗോവാടെ യെ DJ Parti ക്കിടയില്‍ Dance ചെയ്യാന്‍ ക്ഷണിക്കുമ്പോള്‍ അത് ഒരു Nested Try-Catch ആയിരുന്നു.. ബൌണ്ടറി ക്ക് ഉള്ളില്‍ പിടിക്കാന്‍ പറ്റിയില്ല എങ്ങില്‍ ഗ്യാലറി ക്ക് പുറത്തെന്കിലും ആ exception പിടിക്കണ്ടേ?

UK യില്‍ നിന്നും നാളെ Tandis Mexico യിലേക്ക് തിരിച്ചു പോകുകയാണ്‌. തനിച്ച്‌. English പഠിക്കാന്‍ എന്ന പേരില്‍ ഉപേക്ഷിച്ചു പോയ ബോയ്‌ ഫ്രെണ്ട് നെ കാനാനെത്തിയതാണ് UK യില്‍ .

Mexico യില്‍ നിന്നും വളരെ നാളായുള്ള ചാറ്റ് ഫ്രണ്ട് ആണ് ടാണ്ടിസ്.
ടാണ്ടിസ് നെപ്പറ്റി ചുരുക്കത്തില്‍ പറഞ്ഞാല്‍ ഇത്രയുമാണ്.

- അമേരിക്ക വിരോധം.
- ഫുട്ബോള്‍ പ്രേമം
- പള്ളിയില്‍ പോകുന്നത് ആവശ്യമാണോ എന്ന ഒരു സംശയം.

ഫുട്ബോള്‍ എത്ര ഇഷ്ടമാണോ അത്ര വിരോധം അമേരിക്കയോട്. അമേരിക്ക യെ പ്പറ്റി ഏക നല്ല അഭിപ്രായം - 'ഷോപ്പിങ്ങ് നു കൊള്ളാം'
UK യിലേക്ക് തിരിക്കുമ്പോള്‍ ഒരു വലിയ ബുജി തൊപ്പിയും വച്ച്‌ ഞാന്‍ അവളോട് ചോദിച്ചത് - 'Tandis, the question is whether it worth trying to' എന്നോ മറ്റോ ആണ്.
Well, 'Trying' to. :)

Mexico യിലേക്ക് തിരിക്കും മുമ്പ് ടാണ്ടിസ് ന്റെ IM - 'നിനക്ക് ദൈവത്തില്‍ വിശ്വാസമുണ്ടോ?'
കുടുംബ ക്ഷേത്രത്തിലെ ഉത്സവം ഉപേക്ഷിച്ച്‌ Jayanth Narlikar ന്റെ Lecture കേള്‍ക്കാന്‍ പോയ എനിക്ക് ഒരു തമാശ പറയാനാണ് തോന്നിയത്. പക്ഷെ ഞാന്‍ പറഞ്ഞു - "Yes Tandis. I really do." കാരണം അവിടെ എനിക്ക് ഒരു Exception-handler ന്റെ റോള്‍ ആയിരുന്നു.

Monday, March 24, 2008

കാറ്റ്‌...

കാറ്റ്‌... കളഭ ചാര്‍ത്തിന്റെ സുഗന്ധവും , മഴനനഞ്ഞ നാട്ടു വഴിയുടെ ഗ്രാമീനതയും നെല്‍ കറ്റയുടെ വിയര്‍പ്പോഴുകിപ്പിക്കുന്ന ചൂടും ഹൃദയത്തിന്റെ കോണില്‍ സൂക്ഷിച്ചുവച്ചു സഹ്യാദ്രിയും കായലോരവും വിട്ടു ദൂരേക്ക്‌ പറന്നകന്ന കാറ്റ്‌... സങ്ങല്‍പ്പതിലെ ഓണവും ട്ടെലെഫോനിലെ വിഷുവും സ്വപ്നത്തിലെ ഉത്സവങ്ങളും തരുന്ന ഊര്‍ജവും പേറി വീണ്ടും ദൂരേക്ക്‌... Yes.. Life's calling...,

ഇത് ഒരു നിവെദ്യമാണ്... എന്‍റെ അമ്മ മലയാളത്തിനു... അകലേക്ക്‌ ഒരു അപ്പൂപ്പന്‍ താടി പോലെ പറന്നുപോയ അവരുടെ മക്കള്‍ക്ക്‌...

Wednesday, January 16, 2008

UDF to Convert Number to Words in Indian System

I was in search of a udf which converts number to words in indian numeric sytem, ie. Lakh- crore system. I couldn't find any but an interesting one in the western number system in Novic Software newsletter. I modified it for Indian numeric system. Here it is...



CREATE FUNCTION dbo.udf_Num_ToWords (

@Number Numeric (38, 0) -- Input number with as many as 18 digits

) RETURNS VARCHAR(8000)
/*
* Converts a integer number as large as 34 digits into the
* equivalent words. The first letter is capitalized.
*
* Attribution: Based on NumberToWords by Srinivas Sampath
* as revised by Nick Barclay
* modified by Anuraj Raveendran for Indian Numeric System
*
* Example:
select dbo.udf_Num_ToWords (1234567890) + CHAR(10)
+ dbo.udf_Num_ToWords (0) + CHAR(10)
+ dbo.udf_Num_ToWords (123) + CHAR(10)
select dbo.udf_Num_ToWords(76543210987654321098765432109876543210)

DECLARE @i numeric (38,0)
SET @i = 0
WHILE @I <= 1000 BEGIN
PRINT convert (char(5), @i)
+ convert(varchar(255), dbo.udf_Num_ToWords(@i))
SET @I = @i + 1
END
*
* Published as the T-SQL UDF of the Week Vol 2 #9 2/17/03
****************************************************************/
AS BEGIN

DECLARE @inputNumber VARCHAR(38)
DECLARE @NumbersTable TABLE (number CHAR(2), word VARCHAR(10))
DECLARE @outputString VARCHAR(8000)
DECLARE @length INT
DECLARE @counter INT
DECLARE @loops INT
DECLARE @position INT
DECLARE @chunk CHAR(3) -- for chunks of 3 numbers
DECLARE @tensones CHAR(2)
DECLARE @hundreds CHAR(1)
DECLARE @tens CHAR(1)
DECLARE @ones CHAR(1)
DECLARE @Skip INT

IF @Number = 0 Return 'Zero'

-- initialize the variables
SELECT @inputNumber = CONVERT(varchar(38), @Number)
, @outputString = ''
, @counter = 1
SELECT @length = LEN(@inputNumber)
, @position = LEN(@inputNumber) - 2
, @loops = (LEN(@inputNumber)-1)/2
, @Skip=1

-- make sure there is an extra loop added for the remaining numbers
IF (LEN(@inputNumber)-1) % 2 <> 0 or @loops=0 SET @loops = @loops + 1

-- insert data for the numbers and words
INSERT INTO @NumbersTable SELECT '00', ''
UNION ALL SELECT '01', 'one' UNION ALL SELECT '02', 'two'
UNION ALL SELECT '03', 'three' UNION ALL SELECT '04', 'four'
UNION ALL SELECT '05', 'five' UNION ALL SELECT '06', 'six'
UNION ALL SELECT '07', 'seven' UNION ALL SELECT '08', 'eight'
UNION ALL SELECT '09', 'nine' UNION ALL SELECT '10', 'ten'
UNION ALL SELECT '11', 'eleven' UNION ALL SELECT '12', 'twelve'
UNION ALL SELECT '13', 'thirteen' UNION ALL SELECT '14', 'fourteen'
UNION ALL SELECT '15', 'fifteen' UNION ALL SELECT '16', 'sixteen'
UNION ALL SELECT '17', 'seventeen' UNION ALL SELECT '18', 'eighteen'
UNION ALL SELECT '19', 'nineteen' UNION ALL SELECT '20', 'twenty'
UNION ALL SELECT '30', 'thirty' UNION ALL SELECT '40', 'forty'
UNION ALL SELECT '50', 'fifty' UNION ALL SELECT '60', 'sixty'
UNION ALL SELECT '70', 'seventy' UNION ALL SELECT '80', 'eighty'
UNION ALL SELECT '90', 'ninety'

SET @chunk = RIGHT('000' + SUBSTRING(@inputNumber, @position, 3), 3)
WHILE @counter <= @loops BEGIN

-- get chunks of 3 numbers at a time, padded with leading zeros
if @counter>1
set @Skip=0

IF @chunk <> '00' BEGIN
SELECT @tensones = SUBSTRING(@chunk, 1+@Skip, 2)
, @hundreds = SUBSTRING(@chunk, 0+@Skip, 1)
, @tens = SUBSTRING(@chunk, 1+@Skip, 1)
, @ones = SUBSTRING(@chunk, 2+@Skip, 1)

if @counter>1
set @hundreds=0

-- If twenty or less, use the word directly from @NumbersTable
IF CONVERT(INT, @tensones) <= 20 OR @Ones='0' BEGIN
SET @outputString = (SELECT word
FROM @NumbersTable
WHERE @tensones = number)
+ CASE @counter WHEN 1 THEN '' -- No name
WHEN 2 THEN ' thousand ' WHEN 3 THEN ' lakh '
WHEN 4 THEN ' Crore ' WHEN 5 THEN ' Arawb '
WHEN 6 THEN ' Kharawb ' WHEN 7 THEN ' Neel '
WHEN 8 THEN ' Padma ' WHEN 9 THEN ' Shankh '
WHEN 10 THEN ' Mahashankh ' WHEN 11 THEN ' Ten Mahashankh '
WHEN 12 THEN ' Hundred Mahashankh ' WHEN 13 THEN ' Thousand Mahashankh '
ELSE '' END
+ @outputString
END
ELSE BEGIN -- break down the ones and the tens separately

SET @outputString = ' '
+ (SELECT word
FROM @NumbersTable
WHERE @tens + '0' = number)
+ '-'
+ (SELECT word
FROM @NumbersTable
WHERE '0'+ @ones = number)
+ CASE @counter WHEN 1 THEN '' -- No name
WHEN 2 THEN ' thousand ' WHEN 3 THEN ' lakh '
WHEN 4 THEN ' Crore ' WHEN 5 THEN ' Arawb '
WHEN 6 THEN ' Kharawb ' WHEN 7 THEN ' Neel '
WHEN 8 THEN ' Padma ' WHEN 9 THEN ' Shankh '
WHEN 10 THEN ' Mahashankh ' WHEN 11 THEN ' Ten Mahashankh '
WHEN 12 THEN ' Hundred Mahashankh ' WHEN 13 THEN ' Thousand Mahashankh '
ELSE '' END
+ @outputString
END

-- now get the hundreds
IF @hundreds <> '0' BEGIN
SET @outputString = (SELECT word
FROM @NumbersTable
WHERE '0' + @hundreds = number)
+ ' hundred '
+ @outputString
END
END

SELECT @counter = @counter + 1
, @position = @position - 2

SET @chunk = RIGHT('00' + SUBSTRING(@inputNumber, @position, 2), 2)
END

-- Remove any double spaces
SET @outputString = LTRIM(RTRIM(REPLACE(@outputString, ' ', ' ')))
SET @outputstring = UPPER(LEFT(@outputstring, 1)) + SUBSTRING(@outputstring, 2, 8000)


RETURN @outputString -- return the result
END

-- Enjoy!

Tuesday, January 15, 2008

Here I am... the wind...

Just like the wind,
I've always been
Drifting high up in the sky that never ends
Through thick and thin,
I always win
'Cause I would fight both life and death to save a friend

I face my destiny every day I live
And the best in me is all I have to give

Just like the sun (Just like the sun)
When my day's done
Sometimes I don't like the person I've become
Is the enemy within a thousand men?
Should I walk the path if my world's so dead ahead?

Is someone testing me every day I live?
Well, the best in me is all I have to give

I can pretend (I can pretend)
I am the wind (I am the wind)
And I don't know if I will pass this way again
All things must end
Goodbye, my friend
Think of me when you see the sun or feel the wind

I am the wind,
I am the sun
And one day we'll all be one

I am the wind,
I am the sun
And one day we'll all be one

I am the wind,
I am the sun
And one day we'll all be one

I am the wind,
I am the sun
One day we'll all be one

Lyrics/Composition: A BONE Performed by A BONE feat.Y