<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Moment of Inertia [ Hiran ]</title>
    
    <link rel="alternate" type="text/html" href="http://blogs.inxsasia.com/hiran/" />
    <id>tag:typepad.com,2003:weblog-1272926</id>
    <updated>2010-08-05T12:29:31+00:00</updated>
    <subtitle>I = mr2</subtitle>
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/typepad/inxsasia/hiran" /><feedburner:info uri="typepad/inxsasia/hiran" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
        <title>gcc 4.5.1</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/ng6wIU3khao/gcc-451.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2010/08/gcc-451.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83452386969e2013486008e3f970c</id>
        <published>2010-08-05T12:29:31+00:00</published>
        <updated>2010-08-05T12:29:31+00:00</updated>
        <summary>GCC 4.5.1 was released last week. See the release notes for the changes. One thing which caught was eyes was the introduction of the experimental profile mode. It is true that programmers do misuse the STL. There should be some...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>GCC 4.5.1 was released last week. See the release notes for the <a href="http://gcc.gnu.org/gcc-4.5/changes.html">changes</a>.</p>
<p>One thing which caught was eyes was the introduction of the experimental <a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html">profile mode</a>.</p>

<p>It is true that programmers do misuse the STL. There should be some way to correct it. Now, need to get my hands dirty with the profile mode and see the usefulness.</p></div>
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2010/08/gcc-451.html</feedburner:origLink></entry>
    <entry>
        <title>DES with openssl v/s DESCryptoServiceProvider in .NET</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/5CnOdv7N0Q0/des-with-openssl-vs-descryptoserviceprovider-in-net.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2010/07/des-with-openssl-vs-descryptoserviceprovider-in-net.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83452386969e2013485725aae970c</id>
        <published>2010-07-15T10:16:38+00:00</published>
        <updated>2010-07-15T10:16:38+00:00</updated>
        <summary>Recently, I had to deal with some encryption, for which the documentation included some piece of code in VB, which used DESCryptoServiceProvider class for encryption. After spending almost a day trying to understand the implementation, I have come up with...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="DES" />
        <category scheme="http://sixapart.com/ns/types#tag" term="DESCryptoServiceProvider" />
        <category scheme="http://sixapart.com/ns/types#tag" term="EVP" />
        <category scheme="http://sixapart.com/ns/types#tag" term="openssl" />
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Recently, I had to deal with some encryption, for which the documentation included some piece of code in VB, which used &lt;b&gt;DESCryptoServiceProvider&lt;/b&gt; class for encryption. After spending almost a day trying to understand the implementation, I have come up with the equivalent implementation in C with openssl.&lt;/p&gt;
&lt;p&gt;The stupidest thing, which I had to scratch my head for majority of the time spent on was the problem that, why is the VB code generating a 16-byte encrypted data for an input of length 8-bytes. I found the answer to this &lt;a href="http://bytes.com/topic/c-sharp/answers/265237-descryptoserviceprovider-encryption-question"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Until now, I had been using the DES_* functions. After realizing that 8-byte padding is required, I had to use low-level EVP_* functions.&lt;/p&gt;
&lt;p&gt;Some piece of code is given here:&lt;/p&gt;
&lt;pre&gt;
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&amp;ctx);
EVP_EncryptInit_ex(&amp;ctx, EVP_des_cbc(), NULL, key, iv);

EVP_CIPHER_CTX_set_padding(&amp;ctx, 8);
//output_length and output_length1 need to be different.
EVP_EncryptUpdate(&amp;ctx, output, &amp;output_length, input, input_length);
EVP_EncryptFinal_ex(&amp;ctx, output+output_length, &amp;output_length1);
output_length += output_length1;
&lt;/pre&gt;
&lt;p&gt;Phew...!!&lt;/p&gt;&lt;/div&gt;
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2010/07/des-with-openssl-vs-descryptoserviceprovider-in-net.html</feedburner:origLink></entry>
    <entry>
        <title>be64toh - Another problem with gcc versions</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/rm3-HRTU1S4/be64toh-another-problem-with-gcc-versions.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2010/04/be64toh-another-problem-with-gcc-versions.html" thr:count="1" thr:updated="2011-12-21T08:54:58+00:00" />
        <id>tag:typepad.com,2003:post-6a00d83452386969e201347fe9eafc970c</id>
        <published>2010-04-16T10:01:12+00:00</published>
        <updated>2010-04-16T10:01:12+00:00</updated>
        <summary>Recently, I have been integrating another API, in which data transmission is in binary format, and as usual, the format is big-endian. Sounds familiar!! Generally, in C, you have functions ntohl, ntohs, for converting long integer and short integer values...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Recently, I have been integrating another API, in which data transmission is in binary format, and as usual, the format is big-endian. Sounds familiar!!&lt;/p&gt;

&lt;p&gt;Generally, in C, you have functions &lt;a href="http://linux.die.net/man/3/ntohl"&gt;ntohl, ntohs&lt;/a&gt;, for converting long integer and short integer values from big-endian to the format of host machine. And obviously, they are more portable way of handling the conversion, rather that your test and shift method of conversion.&lt;/p&gt;

&lt;p&gt;Now this time, I had to deal with some 64-bit data and was wondering if there were any functions, and I found the manual pages for &lt;a href="http://www.kernel.org/doc/man-pages/online/pages/man3/endian.3.html"&gt;endian&lt;/a&gt;. This was cool. A week later, I was ready to deploy for testing and got stuck with the problem of the function &lt;b&gt;be64toh&lt;/b&gt; not being defined.&lt;/p&gt;

&lt;p&gt;The problem was my development environment used g++ 4.4.1 and the test environment used g++ 4.3.2. Ohh god!!! What now? I tried searching for equivalent ones, and found some macros in /usr/include/byteswap.h.&lt;/p&gt;

&lt;p&gt;So, now I modified my C++ code to look like this:&lt;/p&gt;
&lt;pre&gt;
double readDouble(void * &amp; data)
{
        uint64_t *ptr = (uint64_t *)data;
#if ( (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 3) &amp;&amp; \
             (__GNUC_PATCHLEVEL__ &gt; 2) )
        uint64_t value = be64toh( *ptr );
#elif __BYTE_ORDER == __LITTLE_ENDIAN
        uint64_t value = bswap_64( *ptr );
#else
        uint64_t value = *ptr;
#endif
        ptr++;
        data = ptr;
        double *dptr = (double *)&amp;value;
        return *dptr;
}
&lt;/pre&gt;

&lt;p&gt;Code is now deployed for testing. :-)&lt;/p&gt;&lt;/div&gt;
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2010/04/be64toh-another-problem-with-gcc-versions.html</feedburner:origLink></entry>
    <entry>
        <title>ntohl and the left shift</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/O5Irg_eu7cA/ntohl-and-the-left-shift.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/11/ntohl-and-the-left-shift.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83452386969e20120a64691b8970b</id>
        <published>2009-11-01T10:34:14+00:00</published>
        <updated>2009-11-01T10:34:14+00:00</updated>
        <summary>Recently, I got into a small argument about an efficient code in converting big-endian data to little-endian. I was using `ntohl' library call and the argument against it was to use left shift and sum operation. //Use ntohl void *readUint32(void...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Recently, I got into a small argument about an efficient code in converting big-endian data to little-endian. I was using `ntohl' library call and the argument against it was to use left shift and sum operation. 


&lt;pre&gt;
//Use ntohl
void *readUint32(void *ptr, uint32_t *value)
{
	uint32_t *uint_ptr = (uint32_t *)ptr;
	*value = (uint32_t)ntohl( *ptr );
	ptr += sizeof(uint32_t);
	return ptr;
}

//Use left shift
unsigned char *readUint32ByShift(unsigned char *p,unsigned int *n) 
{
        unsigned int v = 0;
        v &lt;&lt;= 8; v += *p++;
        v &lt;&lt;= 8; v += *p++;
        v &lt;&lt;= 8; v += *p++;
        v &lt;&lt;= 8; v += *p++;
        *n = v;
        return p;
}
&lt;/pre&gt;
&lt;p&gt;This is with the implementation of a streaming market data with responses in network-byte (big-endian) order. Since it is time critical market data, the application should be faster in parsing and dispatching the data to end client.&lt;/p&gt;
&lt;p&gt;The argument was that using `ntohl' was unnecessary, since the code is always going to run in x86 machine (little-endian) and will be faster than the library call implementation. Well, at that time, I didn't know how `ntohl' is implemented, and neither did I know if a left-shift will be faster than the library call. I did a benchmark and found that the &lt;b&gt;library call implementation was twice as fast as the left-shift implementation&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Well, I got my answer.&lt;/p&gt;&lt;/div&gt;
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/11/ntohl-and-the-left-shift.html</feedburner:origLink></entry>
    <entry>
        <title>Stupid FUTEX and glibc</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/18m5K7T3SAA/stupid-futex-and-glibc.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/07/stupid-futex-and-glibc.html" thr:count="3" thr:updated="2011-08-09T14:45:39+00:00" />
        <id>tag:typepad.com,2003:post-6a00d83452386969e2011571d25798970b</id>
        <published>2009-07-07T12:39:37+00:00</published>
        <updated>2009-07-07T12:40:08+00:00</updated>
        <summary>I have a multi-threaded C++ application, used as a component end for one of the integration channels. Since last 2-3 weeks, I have been facing a strange issue of application getting hanged and not responding. Debugging started with `strace' and...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>I have a multi-threaded C++ application, used as a component end for one of the integration channels. Since last 2-3 weeks, I have been facing a strange issue of application getting hanged and not responding.</p>
<p>Debugging started with `strace' and I found that the application hangs in futex as:</p>
<pre>
futex(0x5ac9df, FUTEX_WAIT, ....
</pre>
<p>I thought, it had something to do with pthread_mutex that I was using, to share a queue across the application. I ensured that, pthread_mutex_lock and pthread_mutex_unlock are happening correctly, since problem solving always starts with the assumption that, the problem is in your code.</p>
<p>Well, I did that and also put more debug statements around usage of `mutex'. Unfortunately, that did not help, since the problem persisted.</p>
<p>I was on the verge of restructuring the entire application, when on googling `futex_wait hangs', I stuck upon a <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301511">link</a>, where there is a discussion about the same issue what I was facing. Some text from the link:</p>
<p><i>
Unfortunately, ctime() is not defined on this list.  So, glibc does not guarantee the sane behavior when one uses ctime() in signal handler.  BTW, I'm surprised that sysklogd calls some functions in signal handler.
</i></p>

<p>Unfortunately, my application was doing the same, i.e., using a function `localtime' (which calls __libc_lock_lock() in glibc), in a signal handler. I couldn't believe it. Though the purpose of the signal handler was to clean up resources and exit the application, I was logging some data. The logging function was calling `localtime'.</p>
<p>Pathetically, it has not yet been fixed, as it seems that this is a problem with glibc on 2.6 kernel, and not application programmers are at the disposal of glibc or kernel developers to fix this.</p></div>
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/07/stupid-futex-and-glibc.html</feedburner:origLink></entry>
    <entry>
        <title>An important week ahead</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/qhtnNvprP7g/an-important-week-ahead.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/05/an-important-week-ahead.html" thr:count="2" thr:updated="2009-05-23T17:14:45+00:00" />
        <id>tag:typepad.com,2003:post-67183543</id>
        <published>2009-05-23T10:27:49+00:00</published>
        <updated>2009-05-23T10:27:49+00:00</updated>
        <summary>Next week is very important, to me and to INXS. All the hard work put into by me, by entire INXS for the last 8-10 weeks is going to see some light. It is not the end of the tunnel....</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Personal" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Next week is very important, to me and to INXS. All the hard work put into by me, by entire INXS for the last 8-10 weeks is going to see some light. It is not the end of the tunnel. But a small break in the tunnel to expose what the team has done till now.</p>
<p>Keeping fingers crosses, as someone said, being `cautiously optimistic'.</p>
<p>All the best to INXS.</p></div>
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/05/an-important-week-ahead.html</feedburner:origLink></entry>
    <entry>
        <title>GnuTLS, OpenSSL, and libgcrypt</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/d4z0N7J8hjU/gnutls-openssl-and-libgcrypt.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/04/gnutls-openssl-and-libgcrypt.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-66084021</id>
        <published>2009-04-27T21:00:30+00:00</published>
        <updated>2009-04-27T21:00:30+00:00</updated>
        <summary>I had written a multi-threaded application in C++, which was using libcurl and GnuTLS for making https post requests to a webservice call. Now, when I was making individual requests, it was working fine and faster than an equivalent Ruby...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
<div xmlns="http://www.w3.org/1999/xhtml"> <p>I had written a multi-threaded application in C++, which was using libcurl and GnuTLS for making https post requests to a webservice call. Now, when I was making individual requests, it was working fine and faster than an equivalent Ruby program. When I did a load test of 300 requests per milli second, it crashed with the following error:</p>
<pre>
ath.c:184: _gcry_ath_mutex_lock: Assertion `*lock == ((ath_mutex_t) 0)' 
failed.
Aborted!!
</pre>
<p>From the assertion, it seemed to be an issue with variables not being initialized. Digging more, I found people suggesting to use libgcrypt &gt; 1.2, which was stable and has fixed this error. Well, I was not sure, that GnuTLS was using it and neither did I know that, a multi-threaded application will have to make some `init' calls before using the library calls.</p>
<p>Now, I found this <a href="http://lists.gnupg.org/pipermail/gcrypt-devel/2006-January/000910.html">link</a>, which looked to me like the solution. But, it didn't look convincing. My idea was, if a library uses another library, it should do all these initialization tasks, rather than expecting the application to do it. :)</p>
<p>Well, I changed from GnuTLS to OpenSSL and, my load test seemed to work, without crashing the application.</p>
<p>Now, I am not sure, where will I end up, if I start exploring `GnuTLS versus OpenSSL`. That is not my current priority.</p></div>
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/04/gnutls-openssl-and-libgcrypt.html</feedburner:origLink></entry>
    <entry>
        <title>Back and weak</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/Gcm214c36dU/back-and-weak.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/03/back-and-weak.html" thr:count="2" thr:updated="2009-03-16T04:02:06+00:00" />
        <id>tag:typepad.com,2003:post-64040041</id>
        <published>2009-03-13T12:39:05+00:00</published>
        <updated>2009-03-13T12:39:05+00:00</updated>
        <summary>Was away from work for almost a week due to viral fever. 2 days stuck in Chennai, and 5 days stuck in Kerala. I had gone to Kerala with that fever, for an extended weekend, hoping to return to work...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Was away from work for almost a week due to viral fever. 2 days stuck in Chennai, and 5 days stuck in Kerala. I had gone to Kerala with that fever, for an extended weekend, hoping to return to work on Tuesday. But couldn't. </p>
<p>Now, I have a small pile of work, waiting for me to be consumed, and I have my health, which I do not want to take chances with. Have lost almost 3-4 kilos in the last 1 week. I can recover that in no time, but what about time. Have to answer that....!!</p></div>
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/03/back-and-weak.html</feedburner:origLink></entry>
    <entry>
        <title>Making it work for different version</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/pddO0BVrgVY/making-it-work-for-different-version.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/02/making-it-work-for-different-version.html" thr:count="1" thr:updated="2009-12-28T17:26:08+00:00" />
        <id>tag:typepad.com,2003:post-63216593</id>
        <published>2009-02-23T07:37:39+00:00</published>
        <updated>2009-02-23T07:38:42+00:00</updated>
        <summary>Few days ago, I found the solution for QuickFIX to make it work with g++ 4.3.X. I had to edit the source for QuickFIX and add two headers in src/C++/Utility.h. #include  #include  This is fixed in the office...</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technical" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Few days ago, I found the solution for QuickFIX to make it work with g++ 4.3.X. I had to edit the source for QuickFIX and add two headers in src/C++/Utility.h.</p>
<pre>
#include &lt;cstdlib&gt;
#include &lt;cstring&gt;
</pre>
<p>This is fixed in the office laptop, which I am using at home. The next problem, I faced was making my FIX application to run with g++ 4.2 and 4.3 version. For this, I added the following lines:</p>
<pre>
#if ((__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 3))
#include &lt;cstdlib&gt;
#include &lt;cstring&gt;
#endif
</pre>
<p>That solved it!!</p>
<p>Now, whether I have a machine with quickfix installed, my application will work, irrespective of the version of g++. Hope g++ does not give more surprises.</p></div>
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/02/making-it-work-for-different-version.html</feedburner:origLink></entry>
    <entry>
        <title>Beginning the year with mixed events</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/inxsasia/hiran/~3/pOS19_sPykA/beginning-the-year-with-mixed-events.html" />
        <link rel="replies" type="text/html" href="http://blogs.inxsasia.com/hiran/2009/01/beginning-the-year-with-mixed-events.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-62101228</id>
        <published>2009-01-29T15:56:41+00:00</published>
        <updated>2009-01-29T15:56:41+00:00</updated>
        <summary>Before, I mention, how 2009 has begun for me, I will list down something about my eventful 2008. my sister as well as myself fell for chicken pox, one after the other. 4 of my very close relatives, committing suicide....</summary>
        <author>
            <name>Hiran Ramankutty</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Personal" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.inxsasia.com/hiran/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Before, I mention, how 2009 has begun for me, I will list down something about my eventful 2008.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;my sister as well as myself fell for chicken pox, one after the other.
&lt;li&gt;4 of my very close relatives, committing suicide.
&lt;li&gt;one of my cousin sisters getting married
&lt;li&gt;one of my best friends, escaping a not so fatal accident
&lt;li&gt;one of my best friends, effected by recession
&lt;li&gt;one of my best friends, going the family way
&lt;li&gt;some of my colleagues, including my CEO, going the family way
&lt;li&gt;INXS tying up with TD Ameritrade, and stamping on our vision for Unified Brokerage Access Channel
&lt;li&gt;launching our Mobile application for trading with TD Ameritrade.
&lt;li&gt;one of my cousins getting into PhD Sanskrit, following in the footsteps of my grandpa.
&lt;li&gt;Amma, succumbing to office politics and resigning, later coming to stay with me.
&lt;/ul&gt;

I know the list is endless.&lt;/p&gt;
&lt;p&gt;After all this, I thought, may be this year I will see more good news than bad news. But, I was in for a surprise.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;expanded our device coverage for the trading application.
&lt;li&gt;in talk with some more big brokers, for expansion of business
&lt;li&gt;one of my cousin's marriage getting fixed
&lt;li&gt;one of my cousins, getting a divorce notice (shockingly), after 1.5 years of marriage
&lt;/ul&gt;

&lt;p&gt;It has been a month in 2009, with full of mixed emotions. A prayer for giving courage and peace of mind, for things beyond our control, and a constructive attitude towards things that are is in our control, is what I am looking forward to.
&lt;/p&gt;
&lt;p&gt;I have been selfish, in mentioning events, only having direct relation to me. Those are things, which I feel, everyone is effected and does not need to be explicit.&lt;/p&gt;
&lt;p&gt;Still, positive for the year ahead.&lt;/p&gt;&lt;/div&gt;
</content>



    <feedburner:origLink>http://blogs.inxsasia.com/hiran/2009/01/beginning-the-year-with-mixed-events.html</feedburner:origLink></entry>
 
</feed><!-- ph=1 -->
