<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>George Chiramattel&apos;s Blog</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://george.chiramattel.com/blog/atom.xml" />
    <id>tag:george.chiramattel.com,2011-12-02:/blog//2</id>
    <updated>2010-08-17T17:59:26Z</updated>
    <subtitle>This is a place where I log the &apos;Revelations&apos; that I have each day.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.12</generator>

<entry>
    <title>FlipThroughMovies.com has a new theme</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2010/08/flipthroughmoviescom-has-a-new.html" />
    <id>tag:www.chiramattel.com,2010:/george/blog//2.230</id>

    <published>2010-08-17T17:54:29Z</published>
    <updated>2010-08-17T17:59:26Z</updated>

    <summary>Last night we rolled out a new theme for FlipThroughMovies.com. We have also made it easy for you to share your feedback. So keep &apos;em coming :)...</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="FlipThroughMovies" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Site" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="flipthroughmovies" label="FlipThroughMovies" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[Last night we rolled out a new theme for <a href="http://www.flipthroughmovies.com/">FlipThroughMovies.com</a>.<div><br /><a href="http://www.flipthroughmovies.com/" title="FlipThroughMovies by George C K, on Flickr"><img src="http://farm5.static.flickr.com/4073/4901284651_2e3d99a24d.jpg" width="500" height="398" alt="FlipThroughMovies.com home" /></a>

</div><div><br /></div><div>We have also made it easy for you to share your feedback. So keep 'em coming :)</div>]]>
        
    </content>
</entry>

<entry>
    <title>Launched FlipThroughMovies.com</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2010/08/launched-flipthroughmoviescom.html" />
    <id>tag:www.chiramattel.com,2010:/george/blog//2.228</id>

    <published>2010-08-15T13:32:15Z</published>
    <updated>2010-08-15T14:13:16Z</updated>

    <summary><![CDATA[I am happy to announce the launch of FlipThroughMovies.com. This is the culmination of the hack that we worked on during Yahoo OpenHack. You can use this site to navigate through movies available at BigFlix, the popular movie rental site in India. The site uses publically available data from BigFlix and presents it in very interesting manner - check out the video to get a feel of the site's capabilities.&nbsp;*Please view in HD and in FullScreen mode*&nbsp; I would like to acknowledge the contribution of the following three individuals in making this site a success. Ann Catherine Jose Manojayan Vembakkam Ram Adhikari Yours truly :) Some technical highlights that might interest you: We used Microsoft Silverlight Pivot control to visualize the data The site is powered by about 2 GB of data. We are using Amazon S3 to store this data To enable efficient delivery, we are using Amazon CloudFront for CDN 'edge caching'. I will write a different post explaining other difficulties that we faced on getting this site up and running....]]></summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Personal" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Site" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amazons3" label="Amazon S3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudfront" label="CloudFront" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flipthroughmovies" label="FlipThroughMovies" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p></p>I am happy to announce the launch of <a href="http://www.flipthroughmovies.com">FlipThroughMovies.com</a>. This is the culmination of the hack that we worked on during <a href="http://openhackindia.eventbrite.com/">Yahoo OpenHack</a>. You can use this site to navigate through movies available at BigFlix, the popular movie rental site in India.<p></p>

<p>The site uses publically available data from BigFlix and presents it in very interesting manner - check out the video to get a feel of the site's capabilities.&nbsp;</p><p style="text-align: center;"><i>*Please view in HD and in FullScreen mode*&nbsp;</i></p>

<p><object width="640" height="360"><param name="movie" value="http://www.youtube.com/v/fy6nR1naxOY?fs=1&amp;hl=en_US&amp;rel=0&amp;hd=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/fy6nR1naxOY?fs=1&amp;hl=en_US&amp;rel=0&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="360"></object></p>

<p><br /></p><p>I would like to acknowledge the contribution of the following three individuals in making this site a success.</p><ul>
      <li>Ann Catherine Jose</li><br />
      <li>Manojayan Vembakkam</li><br />
      <li>Ram Adhikari</li><br />
      <li>Yours truly :)</li></ul>
<p>Some technical highlights that might interest you:</p>
<ul>
<li>We used <a href="http://www.getpivot.com/">Microsoft Silverlight Pivot control</a> to visualize the data</li>
<li>The site is powered by about 2 GB of data. We are using <a class="zem_slink" href="http://aws.amazon.com/s3" title="Amazon S3" rel="homepage">Amazon S3</a> to store this data</li>
<li>To enable efficient delivery, we are using Amazon <a class="zem_slink" href="http://aws.amazon.com/cloudfront/" title="CloudFront" rel="homepage">CloudFront</a> for <a class="zem_slink" href="http://en.wikipedia.org/wiki/Content_delivery_network" title="Content delivery network" rel="wikipedia">CDN</a> '<a class="zem_slink" href="http://en.wikipedia.org/wiki/Edge_computing" title="Edge computing" rel="wikipedia">edge caching</a>'.</li></ul>
I will write a different post explaining other difficulties that we faced on getting this site up and running.<p></p>]]>
        
    </content>
</entry>

<entry>
    <title>You aren&apos;t gonna need it!</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2010/04/you-arent-gonna-need-it.html" />
    <id>tag:www.chiramattel.com,2010:/george/blog//2.226</id>

    <published>2010-04-12T00:21:57Z</published>
    <updated>2010-04-12T00:49:23Z</updated>

    <summary>There is an abbreviation for it - YAGNI. What does it mean? Let me explain by a story. There was this project that was started under a lot of time pressure (btw, which project is not?). And since, success was crucial, the best minds were assembled to form the team. Considering the urgency and the need to get going fast, the team hurried through the requirements. When it was time to start implementation, it was clear that there were two distinct schools of thought on how to proceed. The design-purists wanted to make sure that the system could accommodate all scenarios that were considered. They were also creative enough to come up with some very reasonable use cases that were not thought of initially. The second group, guided by the principles of agile-development, was crying out - yes, you guessed right - YAGNI. They had their rational: Every additional feature that is built is a liability to maintain, and Only time can tell which features would eventually become useful. Both camps were adamant on their stance. On one hand, there were claims that said &apos;&apos;design should be elegant; and if it&apos;s worth doing it, it should be done right&apos;. On the other hand, the agile camp was equally strong with their set of arguments. This is the after-effect of having a team with good caliber people with strong opinions. Now that we have reached this far in the story, let&apos;s analyze how to proceed. To make it more interesting, let&apos;s assume that the management decided to hire YOU as a consultant to help resolve this situation. Did I hear YOU say - &apos;Nice try George - why drag ME into this mess&apos;? I agree - it&apos;s not fair on my part to create a plot and put YOU on a spot?. So, I will help you by joining in the analysis. Let&apos;s start by acknowledging that this is a classic conflict scenario. The real problem comes when you become &apos;too agile&apos; or &apos;too formal&apos;. In simple terms, extremes - be it over-design or under-design - are not good. You have to have a pragmatic solution. &apos;Easy to say George, but how do you suppose I solve this problem?&apos; Let&apos;s continue the analysis. It&apos;s good to know the variability in the system. After all, architecture is all about managing variability and protecting those things that are difficult to change against - well, change! But if you design the system to accommodate all possible variability, the system might become too complex. That is the time when &apos;being agile&apos; - which essentially means &apos;the readiness to change&apos; - helps. In fact, change can be less costly if the system is not complex to start with. So, if you cannot anticipate all variability, it might be more pragmatic to be simple to start with, but at the same time be prepared for change, the inevitable. So, it&apos;s good to think through all possible scenarios, as a thought exercise, but resist the urge to go ahead and implement all of them. Also, being agile is not an excuse to be unaware of complexities. Ignorance is bliss, but can turn out to be costly later. Both camps should be aware that in a solution space, there can be local minimum and global minimum. Being pragmatic is to invest time to be aware of the global minimum (with the knowledge available at that point) but resist the urge to build for it. Instead, focus on the critical few that will get you going. &apos;Ah ha! So I get it George, I should check with the agile camp to see if they are being plain lazy. And also check with the purists to see if they are getting carried away by the elegance of the design and inadvertently make the system too complex&apos;. Yes, so I conclude the story and take the author&apos;s privilege to declare that YOU managed to resolve the conflict and came out victorious. Congrats YOU! p.s. I encourage you to read up on the following related topics - K.I.S.S and D.R.Y....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Architecture" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="architecture" label="Architecture" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>There is an abbreviation for it - <a href="http://en.wikipedia.org/wiki/You_ain't_gonna_need_it">YAGNI</a>. What does it mean? Let me explain by a story.</p>

<p>There was this project that was started under a lot of time pressure (btw, which project is not?). And since, success was crucial, the best minds were assembled to form the team. Considering the urgency and the need to get going fast, the team hurried through the requirements. When it was time to start implementation, it was clear that there were two distinct schools of thought on how to proceed. </p>

<p>The design-purists wanted to make sure that the system could accommodate all scenarios that were considered. They were also creative enough to come up with some very reasonable use cases that were not thought of initially.<br />
The second group, guided by the principles of agile-development, was crying out - yes, you guessed right - YAGNI. They had their rational:</p>

<ul>
	<li>Every additional feature that is built is a liability to maintain, and</li>
	<li>Only time can tell which features would eventually become useful.</li>
</ul>
Both camps were adamant on their stance. On one hand, there were claims that said ''design should be elegant; and if it's worth doing it, it should be done right'. On the other hand, the agile camp was equally strong with their set of arguments.  This is the after-effect of having a team with good caliber people with strong opinions.

<p>Now that we have reached this far in the story, let's analyze how to proceed. To make it more interesting, let's assume that the management decided to hire YOU as a consultant to help resolve this situation.</p>

<blockquote>Did I hear YOU say - 'Nice try George - why drag ME into this mess'? I agree - it's not fair on my part to create a plot and put YOU on a spot?. So, I will help you by joining in the analysis.</blockquote>

<p>Let's start by acknowledging that this is a classic conflict scenario. The real problem comes when you become 'too agile' or 'too formal'. In simple terms, extremes - be it over-design or under-design - are not good. You have to have a pragmatic solution.</p>

<blockquote>'Easy to say George, but how do you suppose I solve this problem?'</blockquote>

<p>Let's continue the analysis. It's good to know the variability in the system. After all, architecture is all about managing variability and <a href="http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf">protecting those things that are difficult to change against - well, change</a>! But if you design the system to accommodate all possible variability, the system might become too complex. That is the time when 'being agile' - which essentially means 'the readiness to change' - helps. In fact, change can be less costly if the system is not complex to start with. So, if you cannot anticipate all variability, it might be more pragmatic to be simple to start with, but at the same time be prepared for change, the inevitable.</p>

<p>So, it's good to think through all possible scenarios, as a thought exercise, but resist the urge to go ahead and implement all of them. Also, being agile is not an excuse to be unaware of complexities. Ignorance is bliss, but can turn out to be costly later.</p>

<p>Both camps should be aware that in a solution space, there can be <a href="http://en.wikipedia.org/wiki/Maxima_and_minima">local minimum and global minimum</a>. Being pragmatic is to invest time to be aware of the global minimum (with the knowledge available at that point) but resist the urge to build for it. Instead, focus on the critical few that will get you going.</p>

<blockquote>'Ah ha! So I get it George, I should check with the agile camp to see if they are being plain lazy. And also check with the purists to see if they are getting carried away by the elegance of the design and inadvertently make the system too complex'.</blockquote> 

<p>Yes, so I conclude the story and take the author's privilege to declare that YOU managed to resolve the conflict and came out victorious. Congrats YOU!</p>

<p>p.s. I encourage you to read up on the following related topics - <a href="http://en.wikipedia.org/wiki/KISS_principle">K.I.S.S</a> and <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">D.R.Y</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Yahoo Open Hack Day 2009</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2009/02/yahoo-open-hack-day-2009.html" />
    <id>tag:www.chiramattel.com,2009:/george/blog//2.214</id>

    <published>2009-02-08T08:11:51Z</published>
    <updated>2009-02-08T08:57:56Z</updated>

    <summary>I have decided to attend this years Yahoo Open Hack Day - 2009. More details about the event [http://www.hackday.org/]where ... : taj residency, bangalorewhen .... : 14 - 15 february 2009 I am looking for a hacker buddy - so if someone is interested in forming a team, let me know....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web 2.0" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>I have decided to attend this years <a href="http://upcoming.yahoo.com/event/1454613/">Yahoo Open Hack Day - 2009</a>. </p>

<p>More details about the event [<a href="http://www.hackday.org/">http://www.hackday.org/</a>]<ul><li>where ... : taj residency, bangalore</li><li>when .... : 14 - 15 february 2009</li></ul></p>

<p>I am looking for a hacker buddy - so if someone is interested in forming a team, let me know.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Back online!</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2009/02/back-online.html" />
    <id>tag:www.chiramattel.com,2009:/george/blog//2.213</id>

    <published>2009-02-03T12:23:14Z</published>
    <updated>2009-02-03T12:46:29Z</updated>

    <summary>Some server maintenance done by my domain hosting provider had caused my blog engine to crash. The error log clearly stated that DBD::mysql was missing. Though I had raised multiple service requests, the problem remain unresolved. I got frustrated to the point where I was thinking of switching to a new hosting provider. I kept pushing this because of all the work involved in the migration - lazy me :-). I thought of stretching my luck by reopening the support request for one last time - Fortunately, this time, some one *did* take a look at this and the problem was resolved. So, here I am - back online....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Site" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>Some server maintenance done by my <a href="http://www.aspnix.com">domain hosting provider</a> had caused my <a href="http://www.movabletype.org/">blog engine</a> to crash. The error log clearly stated that DBD::mysql was missing. Though I had raised multiple service requests, the problem remain unresolved. I got frustrated to the point where I was thinking of switching to a new hosting provider. </p>

<p>I kept pushing this because of all the work involved in the migration - lazy me :-). I thought of stretching my luck by reopening the support request for one last time - Fortunately, this time, some one *did* take a look at this and the problem was resolved.</p>

<p>So, here I am - back online.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Open positions at Intuit Bangalore</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2008/06/open-positions-at-intuit-banga.html" />
    <id>tag:www.chiramattel.com,2008:/george/blog//2.211</id>

    <published>2008-06-05T20:02:05Z</published>
    <updated>2008-06-05T20:02:05Z</updated>

    <summary><![CDATA[I would like to announce some open positions that we have at Intuit Bangalore. Position: Principal Engineer 7-12 years of software industry experience 5+ years of hands-on experience with C++/VC++/java/C# object oriented language Proven Desktop and Online development experience System integration &amp; web app development and deployment experience Position: Senior Software Engineer - QA 5+ years experience in software testing/development with at least 3 years in QA Proven experience with test automation Significant experience with tools such as Silk, WinRunner, LoadRunner, Test Director and Quality Center. Scripting experience is needed for automation. Position: Senior SCM Engineer 7+ years hands-on experience Experience handling SCM responsibilities for multiple projects Experience in Windows/C and C++/Perforce OR Clearcase OR CVS Thorough knowledge of SDLC If you are looking for a career change and if you find one of the above positions suitable, let me know (by dropping a comment). I will be happy to refer you at Intuit. You can also reach me at 'mailto (dot) george (@) gmail (dot) com. p.s. The views expressed herein are my personal views and are not intended to reflect the views of my employer....]]></summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Intuit" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>I would like to announce some open positions that we have at Intuit Bangalore.</p> <a title="Work Together as a team" href="http://www.flickr.com/photos/gchiramattel/2554163086/"><img height="344" alt="Work Together as a team @ Intuit Bangalore" src="http://farm4.static.flickr.com/3194/2554163086_5679548a6c_o.gif" width="420" /></a>   <p>Position: <strong>Principal Engineer</strong>     <br /></p>  <ul>   <li>7-12 years of software industry experience </li>    <li>5+ years of hands-on experience with C++/VC++/java/C# object oriented language </li>    <li>Proven Desktop and Online development experience </li>    <li>System integration &amp; web app development and deployment experience </li> </ul>  <br />  <p>Position: <strong>Senior Software Engineer - QA</strong>     <br /></p>  <ul>   <li>5+ years experience in software testing/development with at least 3 years in QA </li>    <li>Proven experience with test automation </li>    <li>Significant experience with tools such as Silk, WinRunner, LoadRunner, Test Director and Quality Center. </li>    <li>Scripting experience is needed for automation. </li> </ul>  <p></p>  <br />  <p>Position: <strong>Senior SCM Engineer</strong>     <br /></p>  <ul>   <li>7+ years hands-on experience </li>    <li>Experience handling SCM responsibilities for multiple projects </li>    <li>Experience in Windows/C and C++/Perforce OR Clearcase OR CVS </li>    <li>Thorough knowledge of SDLC </li> </ul>  <p>If you are looking for a career change and if you find one of the above positions suitable, let me know (by dropping a comment). I will be happy to refer you at Intuit. You can also reach me at 'mailto (dot) george (@) gmail (dot) com. </p>  <p>p.s. The views expressed herein are my personal views and are not intended to reflect the views of my <a href="http://www.intuit.com/">employer</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Broadband nirvana in Bangalore</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2008/06/broadband-nirvana-in-bangalore.html" />
    <id>tag:www.chiramattel.com,2008:/george/blog//2.210</id>

    <published>2008-06-05T19:34:15Z</published>
    <updated>2008-06-05T19:54:17Z</updated>

    <summary>I recently got myself an Internet broadband connection through Airtel. So far, I am quite satisfied with their service. I opted for their 8 Mbps plan (something that is unimaginable a few years back) for 1299/- per month. Ten years back, I got my first taste of Internet through a phone modem with a speed of 9 Kbps - and yes, I was using a text based browser. 8Mbps is a far cry from that! To give you an idea of how much bandwidth I am &apos;really&apos; getting, I have captured a screen shot of &apos;Aritel speed test utility&apos; running on my browser over my home WiFi. &#160; As you can see, I am not really getting 8 Mbps :) Following is their tariff: Hope this helps in making your decision on choosing a broadband provider in Bangalore....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Personal" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>I recently got myself an Internet broadband connection through <a href="http://airtel.in/wps/wcm/connect/airtel.in/Airtel.In/Home/ForYou/Broadband+Internet/">Airtel</a>. So far, I am quite satisfied with their service. I opted for their 8 Mbps plan (something that is unimaginable a few years back) for 1299/- per month. Ten years back, I got my first taste of Internet through a phone modem with a speed of 9 Kbps - and yes, I was using a text based browser. 8Mbps is a far cry from that!</p>  <p>To give you an idea of how much bandwidth I am 'really' getting, I have captured a screen shot of '<a href="http://speed.ktk.airtelbroadband.in/">Aritel speed test utility</a>' running on my browser over my home WiFi.</p>  <p>&#160; <br /><a title="Airtell home broadband Speed test by George Chiramattel, on Flickr" href="http://www.flickr.com/photos/gchiramattel/2554340602/"><img height="431" alt="Airtell home broadband Speed test" src="http://farm4.static.flickr.com/3046/2554340602_9fa0c2fece_o.png" width="575" /></a></p>  <p>As you can see, I am not really getting 8 Mbps :) Following is their <a href="http://airtel.in/wps/wcm/connect/airtel.in/Airtel.In/Home/ForYou/Broadband+Internet/Tariffs/">tariff</a>:</p>  <p></p> <a title="Airtel Broadband 8 Mbps Tariff by George Chiramattel, on Flickr" href="http://www.flickr.com/photos/gchiramattel/2553530667/"><img height="530" alt="Airtel Broadband 8 Mbps Tariff" src="http://farm4.static.flickr.com/3162/2553530667_eb18a39641_o.png" width="618" /></a>   <p>Hope this helps in making your decision on choosing a broadband provider in Bangalore.</p>]]>
        
    </content>
</entry>

<entry>
    <title>My first month at Intuit Bangalore</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2008/06/my-first-month-at-intuit-banga.html" />
    <id>tag:www.chiramattel.com,2008:/george/blog//2.209</id>

    <published>2008-06-05T18:38:21Z</published>
    <updated>2008-06-05T18:38:21Z</updated>

    <summary>I just completed my first month at Intuit and I should say that I am thoroughly enjoying it here. There is lot of focus on innovation, both customer driven (something that Intuit has pioneered) and technology driven innovation. All of us have 10% unstructured time, where we can work on anything that is passionate to us. We also have &apos;IdeaJam&apos;, where we spend one full day hacking something that is really useful and cool! I have great colleagues who are passionate about what they do and are really fun to work with. I also get to learn a lot of new stuff - all in all a great place to be in! p.s. The views expressed herein are my personal views and are not intended to reflect the views of my employer....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Intuit" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>I just completed my first month at Intuit and I should say that I am thoroughly enjoying it here. There is lot of focus on innovation, both customer driven (something that Intuit has pioneered) and technology driven innovation. All of us have 10% unstructured time, where we can work on anything that is passionate to us. We also have 'IdeaJam', where we spend one full day hacking something that is really useful and cool! I have great colleagues who are passionate about what they do and are really fun to work with. I also get to learn a lot of new stuff - all in all a great place to be in!</p>  <p>p.s. The views expressed herein are my personal views and are not intended to reflect the views of my <a href="http://www.intuit.com/">employer</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>A new start (after 7 years...)</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2008/05/a-new-start-after-7-years.html" />
    <id>tag:www.chiramattel.com,2008:/george/blog//2.205</id>

    <published>2008-05-01T17:51:36Z</published>
    <updated>2008-05-01T18:32:56Z</updated>

    <summary>Yesterday was my last day working in Philips. I throughly enjoyed the last 7 years that I spent here where I learned a lot of stuff, from my mistakes as well as from the new technology/areas that I explored. Also, I made a lot of good friends, who had a very good influence on me, and I will always cherish the moments that I spent with them. And now, the time has come to start anew and to face new challenges. I am joining Intuit Bangalore as a Software Architect. I am quite excited about this opportunity. From all the interactions that I had so far, Intuit look like a very promising place to work....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Intuit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Personal" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="personal" label="personal" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>Yesterday was my last day working in <a href="http://www.bangalore.philips.com">Philips</a>. I throughly enjoyed the last 7 years that I spent here where I learned a lot of stuff, from my mistakes as well as from the new technology/areas that I explored. Also, I made a lot of good friends, who had a very good influence on me, and I will always cherish the moments that I spent with them. And now, the time has come to start anew and to face new challenges. </p>

<p>I am joining <a href="http://www.intuit.com/">Intuit</a> <a href="http://www.intuit.com/india/">Bangalore</a> as a Software Architect. I am quite excited about this opportunity. From all the interactions that I had so far, Intuit look like a very promising place to work.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Comments missing in Movable Type!!</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2008/05/comments-missing-in-movable-ty.html" />
    <id>tag:www.chiramattel.com,2008:/george/blog//2.206</id>

    <published>2008-05-01T15:46:04Z</published>
    <updated>2010-05-07T13:42:26Z</updated>

    <summary>When I logged into MT after a long time, I was surprised to find that all the previous comments were missing!! After some googling found that the problem was caused by a corrupt mt_comment table. I tried to do a repair by issuing the following command. REPAIR TABLE mt_comment But this didn&apos;t help. I then used MySQL Administrator (GUI tools) and selected repair on the table with the following settings. This fixed the problem....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
    <category term="movabletype" label="MovableType" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>When I logged into MT after a long time, I was surprised to find that all the previous comments were missing!! After some googling <a href="http://forums.sixapart.com/index.php?showtopic=61514">found</a> that the problem was caused by a corrupt mt_comment table. I tried to do a repair by issuing the following command.<br />
<pre><br />
REPAIR TABLE mt_comment</pre><br />
But this didn't help.</p>

<p>I then used MySQL Administrator (GUI tools) and selected repair on the table with the following settings.</br><br />
<a href="http://www.flickr.com/photos/gchiramattel/2457544814/" title="Repair Table"><img src="http://farm3.static.flickr.com/2173/2457544814_97177ac547_o.png" width="513" height="615" alt="Repair Table option" /></a></br><br />
This fixed the problem.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Got an XBox 360 Elite</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2007/11/got-an-xbox-360-elite.html" />
    <id>tag:www.chiramattel.com,2007:/george/blog//2.204</id>

    <published>2007-11-12T19:50:06Z</published>
    <updated>2007-11-12T19:50:06Z</updated>

    <summary>Yes... I finally got my XBox 360 Elite. My brother helped me get this from Europe. So, it is PAL version, and the DVD region is 2. The region setting of XBox cannot be changed even once. This would mean that I will not be able to play any regional DVD movies on it :( XBox 360 Elite is available in India exclusively through Indiatimes shopping and the price is Rs. 34,990. So my decision to buy this from Europe was well worth it. While I was a student I used to playing Quake 3 Arena. Though I am not much of a gamer, I bought Halo 3 and I am thoroughly enjoying it. I have also taken a one month free subscription of XBox live. My profile on XBox live is here....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="Personal" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>Yes... I finally got my XBox 360 Elite. My brother helped me get this from Europe. So, it is PAL version, and the DVD region is 2. The region setting of XBox cannot be changed even once. This would mean that I will not be able to play any regional DVD movies on it :( </p>  <p>XBox 360 Elite is available in India exclusively through <a href="http://shopping.indiatimes.com/ism/faces/tiles/product.jsp?productID=1466649&amp;catalogueID=20375613">Indiatimes shopping</a> and the price is Rs. 34,990. So my decision to buy this from Europe was well worth it. </p>  <p><a title="XBox 360 Elite" href="http://www.flickr.com/photos/gchiramattel/1987470399/"><img height="425" alt="XBox 360 Elite" src="http://farm3.static.flickr.com/2318/1987470399_e19cb25f3f_o.jpg" width="320" /></a></p>  <p>While I was a student I used to playing Quake 3 Arena. Though I am not much of a gamer, I bought <a href="http://www.halo3.com/">Halo 3</a> and I am thoroughly enjoying it. I have also taken a one month free subscription of XBox live. My profile on XBox live is <a href="http://live.xbox.com/member/George C K">here</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Tools used for DotSVN - Resharper</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2007/09/resharper-tools-used-dotsvn.html" />
    <id>tag:www.chiramattel.com,2007:/george/blog//2.193</id>

    <published>2007-09-21T06:58:11Z</published>
    <updated>2007-09-21T17:53:50Z</updated>

    <summary>I have been using a trial version of ReSharper for my DotSVN project and I should say that I just got hooked to it. I would not have made this much progress without it and that leaves me wondering what I would do once the trial expires!! A tool with this ease of use is needed to improve the design and code without any hesitation to refactor. ReSharper&apos;s code navigation capabilities are also extra ordinary. You can read more about it here. I have also used dotTrace to fix a nasty performance issue. Overall I am very satisfied with the product....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term=".Net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="C#" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="DotSVN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="NTrac" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OpenSource" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dotsvn" label="DotSVN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ntrac" label="NTrac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="OpenSource" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="resharper" label="Resharper" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>I have been using a trial version of <a href="http://www.jetbrains.com/resharper/">ReSharper</a> for my <a href="http://www.dotsvn.net">DotSVN</a> project and I should say that I just got hooked to it. I would not have made this much progress without it and that leaves me wondering what I would do once the trial expires!!</p>

<p>A tool with this ease of use is needed to improve the design and code without any hesitation to refactor.<br />
ReSharper's code navigation capabilities are also extra ordinary. You can read more about it <a href="http://www.jetbrains.com/resharper/features/">here</a>.</p>

<p>I have also used <a href="http://www.jetbrains.com/profiler">dotTrace</a> to fix a nasty <a href="http://www.chiramattel.com/george/blog/2007/09/19/performance-of-datetime-parse.html">performance issue</a>.</p>

<p>Overall I am very satisfied with the product. </p>]]>
        
    </content>
</entry>

<entry>
    <title>Performance of DateTime.Parse()</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2007/09/performance-of-datetime-parse.html" />
    <id>tag:www.chiramattel.com,2007:/george/blog//2.194</id>

    <published>2007-09-19T07:10:11Z</published>
    <updated>2010-05-07T13:39:03Z</updated>

    <summary>I would like to write a series of posts describing the various performance issues I faced while implementing DotSVN. In this post I discuss the performance penalty of using DateTime.Parse(). During my testing, I found that DotSVN was running quite slow. I used a trial version of &apos;JetBrains dotTrace 3.0&apos; to analyze the problem. The following is a screen-shot of the dotTrace session. As you can see, 26% of the time is spend on the method call &apos;System.DateTime.Parse()&apos;. This was unacceptable. After some investigation I found that the performance of the DateTime Parse method can be improved if we give some clue on formatting of the date string. This can be achieved using the ParseExact() method. note: I have updated the code to re-use the CultureInfo class. AlexKucherenko - Thanks for the comment. private static readonly CultureInfo en_us_Culture = new CultureInfo(&quot;en-US&quot;); // Parse in the format [2007-09-06T10:20:26.689093Z] private static readonly string dateTimeFormat = &quot;yyyy-MM-ddTHH:mm:ss.FFFFFFFZ&quot;; public static DateTime parseDate(String dateString) { DateTime parsedDate; bool parseResult = DateTime.TryParseExact(dateString, dateTimeFormat, en_us_Culture, DateTimeStyles.AdjustToUniversal, out parsedDate); if(!parseResult) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.BAD_DATE); SVNErrorManager.error(err); } return parsedDate; } The performance gain is quite obvious with the following figure, which shows the dotTrace session after applying the above fix. As you can see, DateTime.Parse() is no longer a hot Spot. This also shows the power of dotTrace, and how it helped to quickly narrow down the issue....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term=".Net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="C#" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="DotSVN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OpenSource" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dottrace" label="DotTrace" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jetbrains" label="JetBrains" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="performance" label="performance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="resharper" label="ReSharper" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[I would like to write a series of posts describing the various performance issues I faced while implementing <a href="http://dotsvn.net">DotSVN</a>.<br />
<br />
In this post I discuss the performance penalty of using <strong>DateTime.Parse()</strong>.<br />
<br />
During my testing, I found that DotSVN was running quite slow. I used a trial version of '<a href="http://www.jetbrains.com/profiler/">JetBrains dotTrace 3.0</a>' to analyze the problem. The following is a screen-shot of the dotTrace session.<br />
<img src="http://farm2.static.flickr.com/1298/1402710335_e5fcff9753_o.png" width="833" height="523" alt="DateTime.Parse() Performance issue" /><br />
<br />
As you can see, 26% of the time is spend on the method call 'System.DateTime.Parse()'. This was unacceptable. After some investigation I found that the performance of the DateTime Parse method can be improved if we give some clue on formatting of the date string. This can be achieved using the ParseExact() method.<br />
<br />
<strong><small>note</small></strong>:<em> I have updated the code to re-use the CultureInfo class. <br />
AlexKucherenko - Thanks for the comment.</em>
<br /> <br />
<pre class="brush: c-sharp;">

private static readonly CultureInfo en_us_Culture = new CultureInfo("en-US");

// Parse in the format [2007-09-06T10:20:26.689093Z]
private static readonly string dateTimeFormat = "yyyy-MM-ddTHH:mm:ss.FFFFFFFZ";

public static DateTime parseDate(String dateString)
{
	DateTime parsedDate;

	bool parseResult = DateTime.TryParseExact(dateString, dateTimeFormat, 
							en_us_Culture, 
							DateTimeStyles.AdjustToUniversal, out parsedDate);
	if(!parseResult)
	{
		SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.BAD_DATE);
		SVNErrorManager.error(err);    
	}
	return parsedDate;
}

</pre>
<br />
The performance gain is quite obvious with the following figure, which shows the dotTrace session after applying the above fix.<br />
<img src="http://farm2.static.flickr.com/1344/1402710367_df0f99e178_o.png" width="833" height="523" alt="DateTime.ParseExact() solution" /><br />
<br />
As you can see, DateTime.Parse() is no longer a hot Spot. This also shows the power of dotTrace, and how it helped to quickly narrow down the issue. ]]>
        
    </content>
</entry>

<entry>
    <title>Announcing DotSVN.Net site</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2007/09/announcing-dotsvnnet-site.html" />
    <id>tag:www.chiramattel.com,2007:/george/blog//2.202</id>

    <published>2007-09-18T18:56:28Z</published>
    <updated>2007-09-18T19:10:46Z</updated>

    <summary>I have registered the domain dotsvn.net. This will be the new home of DotSVN project. I will continue to host the code in google code itself. The site is pretty empty right now. I am planning to get some content uploaded during the weekend. I have also hosted the DotSVN Asp.Net sample at code.dotsvn.net. This sample demonstrates basic functionality of browsing any subversion FSFS repository. My target is to make this as functional as bsSvnBrowser. You can see a live demo of bsSvnBrowser here. Once this code becomes feature complete, I will be using the same for the nTrac project....</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="DotSVN" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dotsvn" label="DotSVN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="OpenSource" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[<p>I have registered the domain <a href="http://www.dotsvn.net">dotsvn.net</a>. This will be the new home of DotSVN project. I will continue to host the code in google code itself.</p>

<p>The site is pretty empty right now. I am planning to get some content uploaded during the weekend.</p>

<p>I have also hosted the DotSVN Asp.Net sample at <a href="http://code.dotsvn.net">code.dotsvn.net</a>.<br />
This sample demonstrates basic functionality of browsing any subversion FSFS repository. My target is to make this as functional as <a href="http://bssvnbrowser.bountysource.com/">bsSvnBrowser</a>. You can see a live demo of bsSvnBrowser <a href="https://bssvnbrowser.bountysource.com/svn">here</a>.</p>

<p>Once this code becomes feature complete, I will be using the same for the <a href="http://ntrac.googlecode.com">nTrac</a> project.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Connecting to SVN repository using DotSVN</title>
    <link rel="alternate" type="text/html" href="http://george.chiramattel.com/blog/2007/09/connecting-to-svn-repository-u.html" />
    <id>tag:www.chiramattel.com,2007:/george/blog//2.199</id>

    <published>2007-09-12T06:18:37Z</published>
    <updated>2010-05-07T13:37:39Z</updated>

    <summary>In this post I would like to highlight how easy it is to connect to SVN repository using DotSVN. Steps to follow: 1) Create an instance of ISVNRepository using the SVNRepositoryFactory // The path to the root of an SVN FSFS repository string repositoryPath = &quot;file://&quot; + &quot;SomeValidPathToFSFS&quot;; // Creates an ISVNRepository driver according to the protocol // that is to be used to access a repository. ISVNRepository repository = SVNRepositoryFactory.Create(new SVNURL(repositoryPath)); repository.OpenRepository(); 2) Now that we have a connection to the repository, we can get contents using the GetDir method. // Dictionary to receive the SVN properties IDictionary properties = new Dictionary(); // Now we call GetDir to get the contents at the specified path // Here we specified an empty string to get the contents of the root // Second argument is the version, -1 indicated the latest version // Third argument is the property collection ICollection dirEntries = repository.GetDir(&quot;&quot;, -1, properties); The SVNDirEntry representation of a versioned directory entry, It contains The Entry name Entry kind (is it a file or directory). File size (in case an entry is a file) The last changed revision The date when the entry was last changed The name of the author who last changed the entry The commit log message for the last changed revision. 3) Now we can iterate through the SVNDirEntry collection. foreach (SVNDirEntry dirEntry in dirEntries) { string DirName = dirEntry.Name; System.Diagnostics.Debug.WriteLine(DirName); } And that is it. We can also call other methods in the repository like // Gets the Universal Unique IDentifier (UUID) of this repository string repostoryUUID = repository.GetRepositoryUUID(true); // Returns the latest revision of this repository long latestRev = repository.GetLatestRevision();...</summary>
    <author>
        <name>George Chiramattel</name>
        <uri>http://chiramattel.com</uri>
    </author>
    
        <category term="DotSVN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="NTrac" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OpenSource" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dotsvn" label="DotSVN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ntrac" label="NTrac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="OpenSource" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="subversion" label="Subversion" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://george.chiramattel.com/blog/">
        <![CDATA[In this post I would like to highlight how easy it is to connect to SVN repository using <a href="http://www.dotsvn.net">DotSVN</a>.<br>
<br>
Steps to follow:<br>

1) Create an instance of <code>ISVNRepository</code> using the <code>SVNRepositoryFactory<code>
<br>
<pre class="brush: c-sharp;">
// The path to the root of an SVN FSFS repository
string repositoryPath = "file://" + "SomeValidPathToFSFS";

// Creates an ISVNRepository driver according to the protocol 
// that is to be used to access a repository.
ISVNRepository repository = SVNRepositoryFactory.Create(new SVNURL(repositoryPath));
repository.OpenRepository();
</pre>

2) Now that we have a connection to the repository, we can get contents using the <code>GetDir</code> method.<br>
<pre class="brush: c-sharp;">
// Dictionary to receive the SVN properties
IDictionary<string, string> properties = new Dictionary<string, string>();

// Now we call GetDir to get the contents at the specified path
// Here we specified an empty string to get the contents of the root
// Second argument is the version, -1 indicated the latest version
// Third argument is the property collection
ICollection<SVNDirEntry> dirEntries = repository.GetDir("", -1, properties);
</pre>

The <code>SVNDirEntry</code> representation of a versioned directory entry, It contains
<ul>
	<li>The Entry name</li>
	<li>Entry kind (is it a file or directory).</li>
	<li>File size (in case an entry is a file)</li>
	<li>The last changed revision</li>
	<li>The date when the entry was last changed</li>
	<li>The name of the author who last changed the entry</li>
	<li>The commit log message for the last changed revision.</li>
	<li></li>
</ul>

3) Now we can iterate through the <code>SVNDirEntry</code> collection.
<pre class="brush: c-sharp;">
foreach (SVNDirEntry dirEntry in dirEntries)
{
    string DirName = dirEntry.Name;
    System.Diagnostics.Debug.WriteLine(DirName);
}
</pre>

And that is it. We can also call other methods in the repository like
<pre class="brush: c-sharp;">
// Gets the Universal Unique IDentifier (UUID) of this repository 
string repostoryUUID = repository.GetRepositoryUUID(true);

// Returns the latest revision of this repository
long latestRev = repository.GetLatestRevision();
</pre>]]>
        
    </content>
</entry>

</feed>

