“Billions of Entrepreneurs: How China and India are Reshaping Their Futures and Yours” is excellent book written nicely by Tarun Khanna
Tarun has captured many current, past stories about India and China and presented them in a right manner. It lays the strengths and gapping holes in both India and China.
He has always kept the main subject of the book in focus while writing those stories – no deviation from the subject even though a few topics require a separate book.
You may have many book shelf for subjects like “Politics”, “Economics”, “Current Affairs” etc.. , the “Billions of Entrepreneurs” belongs to all these book shelves. Tarun presented the stories, the numbers and made the conclusions in a right manner.
The book gives good commentary on Indias “soft power” and Chinas “Hard power” . The book also sheds light on Neharu’s comments in 1950 –“During these thousand years… each country (China and India) learned something from each other, not only in region of thoughts and philosophy, but also in the arts and science of life. Probably China was more influenced by India, than India by China, which is pity, for India could well have received, with profit to herself…..”
The book covers stories about Enterprises like Mahindra and Mahindra , GE which has cross-border collaborations affecting life’s of China, India and the world.
The book also touches the questions like – Can company really make profits in China/India? How much time it takes to get the fruits from the investments or how much returns one should really expect from the investments?
This is one of the best book – you must have if you are of Entrepreneur mind, you must have this book if you ever deal with people from China/India in any time in life.
My technical and personal observations about softwares and other entities
Monday, December 15
Entrepreneurs from 2.4 Billions are affecting your life
Sunday, November 16
Colama can treat your Virtual Appliance as version controlled Entity
Recently I was working on a task of building a Virtual Appliance for my software application. I had to add many missing packages in Guest OS, make modifications to the application. Every Modification in the application, every addition/deletion of packages forced me to rebuild the Appliance.
Was wondering – why can’t I have system similar to Subversion/CVS – which version controls Software Code. The answer is – YES, the Colama developed by Coriolis can actually help you version control your Appliances.
Virtualization has actually converted our servers to structured data. Virtual machines are a new form of data, which must be managed by the enterprise. Like other types of data e.g. documents and source code, it has its own life cycle, being created (perhaps from a similar version), modified to suit requirements, revision controlled and tagged with metadata to checkpoint critical stages in its evolution, its contents indexed so as to be searchable, backed up, deployed, and finally, destroyed.
I got the chance to explore/use Colama – my observations are as follows:
Colama, a next-generation, vendor-neutral Virtual Machine Warehousing software with following change management related features:
- Virtual Machine change Management (similar to svn/cvs for source code)
- Cloning/snapshots (similar to Ghost images)
- Search, based on virtual machine image contents (this is one of the USPs of Colama)
There are other powerful features of Colama. These include:
- Web based collaborative user interface (virtual machine grouping/categorization) along with strict access control (ACL)
- Virtual machine asset management (Discovery, Cataloging, Repository, Revision control, Image inspection, Search)
- Automation ( Provisioning, Unattended installation, Patch Application, End to end QA automation)
- Storage Optimization ( 70-80% reduction in Storage Requirement) using de-duplication
- Policy Management (License compliance, Provisioning Policies)
Coriolis is targeting QA groups, IT administrators of the enterprises and training institutes for Colama’s Users. Even the Colama can be useful for the companies who deliver applications bundled inside Virtual Appliances.
Thursday, November 13
"Collective Intelligence in Action" would provide you a great foundation for developing Enterprise Class Application
Have you ever surprised to see line similar to "Hello, Sopan. We have recommendations for you" at the top
when you login into the Amazon.com site. Yes, this kind of functionality is very easy to
implement into your application after reading Satnam's "Collective Intelligence in Action"
Have you ever wonder how Netflix is able to recommend movies, what are the latest trends
in the making search more intelligent or how you can intelligently gather new content and
present it to your application?
In this book, Santnam does an excellent job providing the answers to all these questions
The book covers the wide breadth of the topics with amazing focus and detail-architecture
for adding intelligence, tagging and tag clouds, content aggregation through focused web
crawling and from the blogospare, leveraging machine learning techniques such as clustering
and predictive modeling, intelligent search and building recommendation engine.
I particularly like the approach to explain the mathematical concepts with simple examples,
followed by implementing it in simple Java and then leveraging open-source software.
This book can be useful if you are interested in integrating different Open Source Software
to deliver Enterprise Class Application.
I also liked the authors style of providing summary at the end of each chapter.
He also provides huge set of very useful resources for reading further on the topics
covered into the chapters.
You must pickup this book if you are
- serious (developer/manager/architect type of Eng) on adding search or intelligent/smartness into your Application
- person involved in developing (programmer, tester, manager) Social Networking Application
- involved in managing "Knowledge Management Infrastructure" of any size organization
This Book will provide you a great foundation for developing Enterprise Class
Features.
I highly recommend it.
Monday, April 21
The sunnyvale flowers
I am very much impressed with flowers at Sunnyvale.
On Any sunny day - they blossom in a very short time
Have a look at couple of them:


Friday, April 4
Kids are Growing
This is latest picture of my kids - they are growing faster ...
Nimitt is in Red and Sarthak is in School Dress.
Sunday, March 30
Google: Turned lights out

I was surprised to see today the google.com page as a black - then i recalled, i had seen some article which talks about "..lot more energy can be saved if websites turn there flashy/bright white background into Black".. - i guess that was this article - http://ecoiron.blogspot.com/2007/01/black-google-would-save-3000-megawatts.html
Good see the first screen-back. Yes, if they adapt as this as default color, then they should be changing the logo to suite the black. Right now-it does not suite that much.
Looking forward to see the actual numbers of saved energy because of putting lights off between 8:00pm to 9:00pm tonight.
Monday, December 25
New Years Resolutions
The year 2006 was really good for my personal life. Most exciting things which happened in my life are:
- Second child- Nimitt
- House in Pune-965 sq feet area, i can say i have my own house in pune
My new years (2007) resolutions are as follow:
- My Job
- Improve myself on delivery part
- Improve myself in communication
- Will not take anyone for granted
- Will change my friendly nature
- Will talk less (during lunch/snacks time)
- Every task will be taken very seriously
- Unit Test/Benchmarking the packages-become serious about it.
- My Career
- Learn Ruby, Ruby on Rails Web framework
- Learn Python to advance Level, Python Based Web Frameworks like Turbogears, Pylon, Django
- Increase participation in TWiki Community
- Learning JBoss Seam, Spring Hibernet etc from Java Technology
- Utilizing Lucene knowledge
- My Family
- Giving more time to family-especially to Deepali.
- Giving more time to Sarthak-changing my teaching technique
- MY Financial State
- Improving Financial condition
- Making investments seriously (long term) and submitting documents for IT at proper time.
- Reading Economic Times regularly-again jump into the stock market.
- My Personal Life
- Increase Weight
- Visiting Dentist-twice in a year (off-course for cleaning)
- Manage to spend at least 2 days per month on personal life.
- Social Life
- will donate some money to Cry which will be used for education of kids
Wednesday, August 16
Blessed with Son

Me and my wife Deepali are blessed with son on 9th August 2006. His name will be Divij. Sarthak, the elder one is the happiest "Dada" in my family.
In the image you can see my both son's.
Friday, February 3
Monday, January 30
Monday, December 26
Mod_Survey
Installed intersting system called Mod_Survey. I think its very interesting system to conduct poll/surveys..
Saturday, December 17
Perl Course (Day 3)
Third day was long day (Actually we had a meeting twice in the last week but the duration was small-So I am calling this as a single day).
Following stuff was covered:
- Arrays, Array operations like push, pop, shift, unshift.
- split function on strings - to covert them into arrays (did not get time to talk about join-later)
- Introduced -foreach- also shown the use of foreach(0..10), how it can be used on any list.
- Regular Expression(RE)- Just introduction. Explained meaning of RE. A few examples. Explained command "grep". The shown some similarites. Played with many strings, wrote small scripts. The five rules-how RE works will be covered on next day. I am planing to talk more from Regular Expression tutorial.
- Example - Count the number of lines from a text file.
- Example - Count the number of words (what do i mean by "word"?) from a text file.
- Example -various parsing stuff on /etc/passwd file using RE, using split command on each line.
- Example-How to build the a script which can give current status/details of Linux system-use /proc filesystems. e.g. /proc/cpuinfo shows details on cpu, so how RE can be helpful to get the exact information. Assginment will be given to create the script which will have output similar to phpsysinfo in text format. Thats in next lecture.
It was good day. Response was also good.
Saturday, December 10
Sarthak Shewale (My Son)
Sarthak Enjoyes playing, watching TV, sometimes reading/painting, loves water colors. He loves visiting "I am loving it" i.e. McDonald..
Sarthak is in LKG -D at Bishops, Kalyni Nagar Pune.
Poor fellow has to get-up everyday moring 7:00 to attend the school.
Perl Course (Day 2)
I have covered the following stuff-
- How Perl treats integers, floating numbers, strings? Gave simple examples.
- Played with simple values, how one can declare simple variables, how to assign them values, how to modify there values, how to access those values, how to print those values
- Explaination on "my" syntax, scope of the variable.
- Played with arithmetic operations (+, -, *, etc), String operation (.) concatenation. Also covered things like $int++, $str .= $str, explained the real life situation- while creating the log files how these things are used (e.g. $log="Log"; $log .=$date."txt"; this helps to create log file names like "Log20051208.txt").
- Introduced loops (if-else, for, while). Explained on comparison operators like >, < , ==, eq, ne etc. Wrote small scripts for them to show how they are used.
- Introduced $_ ? Gave example while using "while" loop?
- How to pass the command line arguments to scripts? Yes, I have not introduced arrays yet, but told them to assume this thing. On the first day I have covered, how script can take input from user, so I have converted the script from taking inputs using command line arguments to take input from user in interactive mode.
- Quiz 1. Write a script which takes two integers as input from user and prints the bigger number.
- Quiz 2. Write the script which takes the input as two integers, prints the gcd .
- How to do file operations? Yes I explained them today.
- Quiz 3. Use ping command, use file operation, use while loop, use system() command, write script to check the availability of particular set of hosts on the network.
BTW- I have not explained them yet use strict;, use warnings;. I Wanted them to write something productive, then introduce all that things- so on third day I will introduce them.
Thursday, December 8
Perl Course (Day 1)
Perl Course (Day 1)
- Introduction to Perl -
- My Plans on Course - details on Books (1. Begging Perl from online library 2. Advanced Perl Programming by Sriram Srinivasan)
- Main differences between Windows and Unix Perl programs, Meaning of Perl Libraries/Modules, where to get modules?, why to create modules? etc details. Also talked on advantages of learning perl.
- How to write the perl program? How to make it executable? How to add comments in the program? Meaning of first line #!/usr/bin/perl, how to find the details on installed perl in the system.
- Example program - Hello.pl
- How to write interative - taking input from user and doing someting on that, wrote hellouser.pl script, takes input from user, displays Hello Username.
- Interpolation of variable, main difference between double quotes and single quotes.
- How to run a system commands like "df -k" in the scripts, how to print there outout - my $output = `df -k`; Also another method is my $result = system("df -k"); Covered which method to be used when.
Monday, September 5
Thursday, July 21
sqlite database and perl
Some lines of perl scripts which can be used to connect to sqlite database.
Just connection
$adbh = DBI->connect( "dbi:SQLite:action_database.db" ) || die "could not connect to the action database: $DBI::errstr";
Inserting some records..
my $esql = "INSERT INTO eventtable (ActionID, Event, Notified, Due) values (?, ?, ?, ?)";
my $esth = undef;
eval{
$esth= $edbh->prepare($esql) or die "Not able to prepare $esql";
$esth->execute($actionid, $event, 'N', $duedatetime) or die "Not able to execute $esql";
};
if ($@) { print "ERROR: $@\n"; }
Updating some records
my $asql = "UPDATE actiontable set Owner = ?, Due = ?, Notify = ?, Status = ?, Description = ? WHERE ActionID == ? ";
Tuesday, July 19
Date::Manip difficulties
Date::Manip-Some of the things we have to write down some where to reuse. Its difficult to re-do calculations whenever required. So I am writting some of my required items in this posting.
For the following two questions I can use ParseRecur subroutine defined in Date::Manip subroutine.
The syntax of subroutine is
@dates=&ParseRecur($string [,$base,$date0,$date1,$flags]);
Where $string is of the form Y:M:W:D:H:MN:S and $date0-starting date, $date1 is enddate. $base -the first event that occurs, $flags.-change the behavior of event, but dont bother much,
Also note that $base, $date0 and $date1 should not contain any asterixes..
Following part is cut+paste from "perldoc Date::Manip" command.
Any value "N" to the left of the asterisk refers to the "Nth" one. Any value to the right of the asterisk refers to a value as it appears on a calendar/clock. Values to the right can be listed a single values, ranges (2 numbers separated by a dash "-"), or a comma separated list of values or ranges. In a few cases, negative values are appropriate.
Q. 1. Get the Array of Every Monday between two dates ?
A. 1. Following script can gives the answer to our question.
===============
#!/usr/bin/perl
use strict;
use warnings;
use Date::Manip;
my $date0 = '07/20/2005'; # 20 July 2005
my $date1 = '11/21/2005'; # 21 Nov 2005
my $base = '07/18/2005'; # 18 th july was Monday..
my $string = "0:0:1:0:0:0:0";
my @dates = map UnixDate($_, "%m\/%d\/%Y"), ParseRecur($string, $base, $date0, $date1);
print "The Mondays between $date0 and $date1 are : @dates\n";
=====================
When executed this gives the result
The Mondays between 07/20/2005 and 11/21/2005 are : 07/25/2005 08/01/2005 08/08/2005 08/15/2005 08/22/2005 08/29/2005 09/05/2005 09/12/2005 09/19/2005 09/26/2005 10/03/2005 10/10/2005 10/17/2005 10/24/2005 10/31/2005 11/07/2005 11/14/2005
Q.2. Get the Array of days betwen two days ?
A. 2. Following example gives the answer.
===============
#!/usr/bin/perl
use strict;
use warnings;
use Date::Manip;
my $date0 = '07/20/2005'; # 20 July 2005
my $date1 = '8/15/2005'; # 21 Nov 2005
my $base = '07/18/2005'; # 18 th july was some day, we are looking for
# every day..
my $string = "0:0:0:1:0:0:0";
my @dates = map UnixDate($_, "%m\/%d\/%Y"), ParseRecur($string, $base, $date0, $date1);
print "The Days between $date0 and $date1 are : @dates\n";
=============
This gives the result ..
The Days between 07/20/2005 and 8/15/2005 are : 07/20/2005 07/21/2005 07/22/2005 07/23/2005 07/24/2005 07/25/2005 07/26/2005 07/27/2005 07/28/2005 07/29/2005 07/30/2005 07/31/2005 08/01/2005 08/02/2005 08/03/2005 08/04/2005 08/05/2005 08/06/2005 08/07/2005 08/08/2005 08/09/2005 08/10/2005 08/11/2005 08/12/2005 08/13/2005 08/14/2005
Q.3. List only Monday to Friday days between two dates..i.e. Working Days between two dates. ?
A.3. The string $string = "0:0:1*1-5:0:0:0" gives the result.
See the following script.
==========================
#!/usr/bin/perl
use strict;
use warnings;
use Date::Manip;
my $date0 = '07/20/2005'; # 20 July 2005
my $date1 = '8/15/2005'; # 15 Aug 2005
my $base = '07/18/2005'; # 18 th july was some day, we are looking for
# every day..
my $string = "0:0:1*1-5:0:0:0";
my @dates = map UnixDate($_, "%d\/%b\/%Y"), ParseRecur($string, $base, $date0, $date1);
print "The Working Days between $date0 and $date1 are : @dates\n";
=====================
The script gives the following result...
The Working Days between 07/20/2005 and 8/15/2005 are : 20/Jul/2005 21/Jul/2005 22/Jul/2005 25/Jul/2005 26/Jul/2005 27/Jul/2005 28/Jul/2005 29/Jul/2005 01/Aug/2005 02/Aug/2005 03/Aug/2005 04/Aug/2005 05/Aug/2005 08/Aug/2005 09/Aug/2005 10/Aug/2005 11/Aug/2005 12/Aug/2005
=================
Thursday, July 7
Action Tracker Plugin
Trying to fix some of my own requirements of Action Tracker Plugin of TWiki.
-sending e-mail when the action is modified..
-adding event database support
Still browsing the code of action tracker plugin...looks interesting.
