I am a father now. A wonderful and overwhelming feeling.

Wonderful, to see him, feel him, hold his hands, share his smile, think about what would be running in his tiny mind, to watch him sleep, move, hiccup, yawn. Wow, all children are beautiful, but mine is the most handsome (in my eyes :))

Overwhelming, changing diapers, cleaning, bathing, cooking, working, staying up all night for him to sleep, exhausting.

Few things that struck me upon becoming a dad.

  • My admiration for the strength of all moms, especially my wife increased multiple fold.
  • Respect for the patience of parents, including mine. Mom and Dad, you are the best.
  • Responsibility increased

Now its time to become a good dad to my son. Welcome to the world,  Son!



Maintaining .net configurations across development, test and production regions have always been a problem that is faced. To ease this process,  I was thinking of creating a utility that makes it easy to use and help deployments. The goal was to eliminate need to save and maintain multiple files for various regions. Here it is, “MergeConfig”

The utility uses ‘MergeConfig.xml’ as XML file to hold this information. The structure of this XML file is organized as:

  • Deployment Region <deploymentRegion>
  • File Info <fileInfo>
  • Maintain Configuration <maintainConfig>

The Deployment Region specifies the name of the region, i.e. dev, test, prod.This section is to be defined one per region.

<deploymentRegion name="Development">

The File Info section specifies the file path that is to be merged. This section is defined one per region per file

<fileInfo fileName="D:\Project\App.config">

The Maintain Configuration section specifies what attribute to be replaced with what.

<maintainConfig findXPath="//root/configuration/add[@key='TestConfig']" replaceAttribute="value" replaceWith="ABC" />

Here the ‘findXPath’ attribute defines which element to look for in the configuration file. ‘replaceAttribute’ defines which attribute in the element has to replaced and ‘replaceWith’ defines the new value for that region. For example, consider the following in the App.config file

		<connection ID="main" connectionString="DataSource=DEV;Password=PWD;UID=UID" />
		<connection ID="log" connectionString="DataSource=DEV;Password=PWD;UID=UID" />

We would need to use,

<maintainConfig findXPath="//root/connections/connection[@ID='main']" replaceAttribute="connectionString" replaceWith="Data Source=localhost" />

The syntax for running this command line utility is:

MergeConfig.exe {/r | /region}: {/v | /verbose}

The switch /r specifies which region to use, and /v specifies if verbose output is required.

MergeConfig.exe /r:Development /v
MergeConfig.exe /r:Development /verbose
MergeConfig.exe /region:Development

Click Download to get the compiled utility.

Using Calibre

I have been getting a lot of questions about how to convert Tamil books using Calibre after my post on reading Ponniyin Selvan on Kindle. So I decided to dedicate a post to explain how to do it.


  • Calibre
  • HTML copy of the book
  • Patience

Once you have Calibre downloaded and installed, fire the application up. You will be presented the Calibre screen. Remember Calibre is a software for e-book management. So the screen presented is the library.

Click on the Add Books button on the toolbar. You will be presented with a ‘Select Books’ dialog window

Select the HTML file that you wish to convert and select ‘Open’ button. Your book should be now added to the library and Calibre recognizes this as a ZIP file as shown below.

After the book is added, right click on the book in the library and choose, Convert Books -> Convert Books Individually Option.

This presents the Convert Dialog. Choose the Format that you wish to convert to. For Kindle, choose MOBI. For iPad choose EPUB. All other parameters are optional. Click on OK in the dialog to begin conversion

Once the conversion job is complete, the Library window will show the new format available.

Now using Calibre, if the device is attached, you can use the Send to Device option and transfer it to iPad or Kindle. Happy Reading!

Android App – Cows and Bulls Game

When I considering the next thing that I could consider for my side projects other than just fiddling with Python, Android App Development struck a chord. In order to learn this new thing, I wanted to create something that I would like doing, and immediately, Cows and Bulls game came to mind. It is simple, yet a wonderful start to learn a new platform.

Cows and Bulls as a game was introduced to us (College Friends), by Mr. Barath (a.k.a Mr B). A simple four letter word game, where the aim is to find the four letter word. We used to play this during class in the last bench.

Today, I have it released on the Android Play Store, thanks to my wife, who was kind enough to grant me $25.00 to get myself registered as a developer in Android Play. Please do check this out and let me know if any issues and feedback.

Customer Service – Whole Foods

Monday, I was in Whole Foods store with my wife doing the usual grocery shopping. At the checkout counter, there was a guy in queue before us who got a wine bottle. There was a problem with the wine bottle. It seemed from the conversation that the bottle was not properly tagged. So the guy manning the check-out called for help from the manager.

The manager came and took the bottle and tried to hunt down for the tag from the rack. She couldn’t find one. So she came back to the check-out and told the customer to just pay the least price of all wine bottles in store, accepting that it was a mistake on their part not to tag an item correctly. The customer was happy that he got a good wine for so less a price.

All this took place for nearly 5 minutes. After the guy left, I was the next person on queue. The manager instructed the guy who did the billing to not bill for the milk I took from the store. That was a pleasant surprise. All I did was wait patiently in the queue. So nice of a move from the Store Manager. The price they get to please two customers, is more business.

I really appreciate the customer service.

Ponniyin Selvan on Kindle

My current employers, Sagitec Solutions LLC, presented a Kindle Touch as the  Christmas and New Year 2012 gift. I have been long wanting to buy one as I gifted my Kindle Keyboard to my dad when I went back home for my marriage.

I have been downloading books from Google Books, mostly classics that are free and have been reading them till now. My wife wanted to read tamil books on her iPad and I have been downloading HTML files from projectmadurai website and converting them to ePUB format that is compatible with iPad. Here I have to mention the good work of people at projectmadurai. They have a good collection of tamil literary works which is made available to everyone in unicode tamil and TSCII tamil formats.

After I received the Kindle Touch, I wanted to read the tamil books on the Kindle. So I was looking all over to get the Font Hack installed on the Kindle Touch to have it display Tamil Fonts. But the new kindle supports Unicode. So I didn’t need to jailbreak or install any hacks on the Kindle. What I needed is to convert the files to MOBI format that is parsed by Kindle.

The first book that I converted was ‘Ponniyin Selvan’, the great tamil classic by Kalki. To convert the book, all you need is the software ‘calibre’ which is a free software and the UNICODE html version of the book found in projectmadurai website. I am not publishing the books that I converted because, even though the books are released under GPL license, I have no written consent from the authors that allows me to publish the books.

I was originally not interested in reading the book as everytime I took the book, I got put off by the lengthy introduction to the hero, Vanthiyathevan. But this time, I thought I should not give up. After moving through the first chapter, I feel that this book is not the kind that I thought. It is fast paced and contains a lot of historical facts over which the story is spun. I am impressed.

Rooted Samsung Galaxy S II

Just now rooted my AT&T Samsung Galaxy S II phone using heimdall on my Mac. Instructions: (11:30 PM)

Was not able to copy the file (zImage) of Siyah into the phone’s card using Mac Terminal. Wasted a lot of time on this. Decided to go ahead and copy the file to the phone’s /download folder for following instructions 3d in the above link.

Installing ClockWorkRecoveryMod is completed (12:23 AM)

Tried Ultimatum and SHOStock2. Ultimatum crashes the service. Reverted to backup (05/03/2012 : 12:20 AM)