<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6945177</id><updated>2012-01-26T11:22:48.683+05:30</updated><category term='design pattern'/><category term='sna'/><category term='csharp'/><category term='visualization'/><category term='javascript'/><category term='bootstraptoday'/><category term='opensource'/><category term='tctoolkit'/><category term='python'/><category term='treemap'/><category term='best practices'/><category term='quotes'/><category term='team'/><category term='version control'/><category term='svnplot'/><category term='c++'/><category term='design principle'/><category term='subversion'/><title type='text'>Thoughts of a Thinking Craftsman</title><subtitle type='html'>I have an eclectic (or eccentric) mix of hobbies and interest. Starting from software development, astrology to origami and mindmaping. This blog will be mostly about Software Development but I may talk about other things also.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6945177.post-6861772841496859136</id><published>2012-01-26T11:22:00.000+05:30</published><updated>2012-01-26T11:22:48.722+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='bootstraptoday'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Comparison of Emberjs vs Knockoutjs</title><summary type='text'>Recently I am experimenting with two Javascript MVC frameworks. Emberjs and Knockoutjs. Mainly to select the framework for the new UI design of BootStrapToday.
Yesterday I wrote a blog article about the experiences of using Emberjs and Knockoutjs with Django web framework.

Emberjs vs Knockoujs for Django projects </summary><link rel='related' href='http://blog.bootstraptoday.com/2012/01/23/emberjs-vs-knockoutjs/' title='Comparison of Emberjs vs Knockoutjs'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/6861772841496859136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=6861772841496859136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/6861772841496859136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/6861772841496859136'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2012/01/comparison-of-emberjs-vs-knockoutjs.html' title='Comparison of Emberjs vs Knockoutjs'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-4455370594600153534</id><published>2011-10-13T22:35:00.000+05:30</published><updated>2011-10-13T22:35:22.852+05:30</updated><title type='text'>Dennis Ritchie</title><summary type='text'>Dennis  Ritchie (Creator of C and key developer of unix and author of book  K&amp;R C) passed away. It seems Oct 2011 is bad for people of computer  science. World has lost another revolutionary thinker.
 
Dennis Ritchie - RIP.  We, programmer are forever in your debt. 
Dennis Ritchie Wikipedia page 
Herb Sutter on Dennis Ritchie 
Development of C Programming Language by Dennis Ritchie
 </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/4455370594600153534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=4455370594600153534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/4455370594600153534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/4455370594600153534'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2011/10/dennis-ritchie.html' title='Dennis Ritchie'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-252752402565948164</id><published>2011-08-30T11:24:00.000+05:30</published><updated>2011-08-30T11:24:35.006+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><title type='text'>write small functions</title><summary type='text'>In my team there was a rule, that maximum function size is 25 lines. Every time when a new team member joined the group, he/she expressed that it is not possible to follow this rule every time and they will have to write longer functions. So I always told them, Ok, but then they have to convince me that there is no way to break this long function in smaller logical chunks. In my 15 years of </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/252752402565948164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=252752402565948164' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/252752402565948164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/252752402565948164'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2011/08/write-small-functions.html' title='write small functions'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-2416902087146351762</id><published>2011-02-12T10:23:00.000+05:30</published><updated>2011-02-12T10:23:09.544+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>Insights from ‘The Design of Design’ - Part I</title><summary type='text'>I have good fortunate of meeting/interacting with some great software designers while working in Geometric Ltd and during last two years as independent consultant. I am always intrigued by how an expert software designer thinks and how he learns. As Sir Ken Robinson says the key skill in today's world is ‘knowing how to learn new things’. I think of myself as ‘Thinking Craftsman’ (i.e. someone </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/2416902087146351762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=2416902087146351762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2416902087146351762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2416902087146351762'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2011/02/insights-from-design-of-design-part-i.html' title='Insights from ‘The Design of Design’ - Part I'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-4247885260951691461</id><published>2010-11-09T08:23:00.003+05:30</published><updated>2010-11-09T08:29:53.119+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='team'/><title type='text'>Persistent Systems and Mr. Anand Deshpande.</title><summary type='text'>I think in last 7-8 years Persistent Systems has grown by leaps and bounds. I always wondered what is the key to Persistent's phenomenal growth. Few months back I met Mr. Anand Deshpande (CEO of Persistent) during a CSI (Computer Society of India) event. Well, I met him for 10 min but I keenly listened when he was talking to others. I also had a chance to have some informal discussion with few </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/4247885260951691461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=4247885260951691461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/4247885260951691461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/4247885260951691461'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/11/persistent-systems-and-mr-anand.html' title='Persistent Systems and Mr. Anand Deshpande.'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-620320793820967069</id><published>2010-10-13T10:20:00.001+05:30</published><updated>2010-10-19T19:23:22.529+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='csharp'/><title type='text'>Dear C# Programmers, please use 'using' and 'IDisposable'</title><summary type='text'>In C++ world, RAII (Resource Acquisition Is Initialization) is a widely accepted idiom. It used by std::auto_ptr&lt;&gt;, CComPtr&lt;&gt;, CWaitCurstor and all smart pointer implementations, streams, etc etc manage the lifetime of resources (e.g. memory, files, cursors, database connections etc). RAII ties the life time of a resource to a life time of a 'local object' (i.e. a object on stack). C++ guarantees</summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/620320793820967069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=620320793820967069' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/620320793820967069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/620320793820967069'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/10/dear-c-programmers-please-use-using-and.html' title='Dear C# Programmers, please use &apos;using&apos; and &apos;IDisposable&apos;'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-5888238647563185242</id><published>2010-10-10T09:54:00.000+05:30</published><updated>2010-10-19T19:21:52.948+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='design principle'/><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>The Design of Design : New book from Fred Brooks</title><summary type='text'>Some time back I blogged about the 'Mythical Man month'. Recently I have started reading the new book from Fred Brooks.' The Design of Design'. Like Mythical Manmonth this book is also a collection of essays and it also a book where you read a chapter and then you need to think and reflect on the ideas/thoughts in the chapter and your own experiences before continuing to next one. 
First thing </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/5888238647563185242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=5888238647563185242' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/5888238647563185242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/5888238647563185242'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/10/design-of-design-new-book-from-fred.html' title='The Design of Design : New book from Fred Brooks'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-3903646548771923989</id><published>2010-10-04T09:50:00.004+05:30</published><updated>2010-10-04T09:52:56.353+05:30</updated><title type='text'>Net banking &amp; Security and Customer Service</title><summary type='text'>Few days back, I was trying to make payment using Netbanking through HDFC bank. As part of internet payment process, some security questions were asked. I wrote the wrong answer. My account got locked. Now this is a good security features. However what happened next is classic example of 'how not to treat your customer'.In many cases, when account is locked because of wrong password entry, it is </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/3903646548771923989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=3903646548771923989' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3903646548771923989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3903646548771923989'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/10/net-banking-security-and-customer.html' title='Net banking &amp; Security and Customer Service'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-6696494694781577551</id><published>2010-09-23T09:19:00.000+05:30</published><updated>2010-09-23T09:19:59.501+05:30</updated><title type='text'>How YouTube detects copies of copyrighted material ?</title><summary type='text'>Coding Horror Blog of Jeff Atwood usually have very useful and well written articles.  In the recent article titled 'YouTube vs. Fair Use' he talks about his experience of uploading a 90 second video from a movie as reference to a blog article. The interesting part of the article is his observations about how You Tube is able to 'detect' that this 90 sec video is from some movie (a copyrighted </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/6696494694781577551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=6696494694781577551' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/6696494694781577551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/6696494694781577551'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/09/how-youtube-detects-copies-of.html' title='How YouTube detects copies of copyrighted material ?'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-1082362794360183210</id><published>2010-09-13T10:57:00.002+05:30</published><updated>2010-10-30T18:46:07.824+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>Rereading Mythical Manmonth - Flowcharts and UML</title><summary type='text'>This is a second entry about Rereading Mythical Manmonth. You can read the first one here.

When I started programming, I never used to create 'detailed flow charts' while many people (usually who are not actively coding) urged it. I did create some small flowchart to get overall picture in my mind but never detailed flowcharts. Later same thing happened with UML diagrams, I always felt little </summary><link rel='related' href='http://en.wikipedia.org/wiki/The_Mythical_Man-Month' title='Rereading Mythical Manmonth - Flowcharts and UML'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/1082362794360183210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=1082362794360183210' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1082362794360183210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1082362794360183210'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/09/rereading-mythical-manmonth-flowcharts.html' title='Rereading Mythical Manmonth - Flowcharts and UML'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-5832271306392956525</id><published>2010-09-08T10:22:00.000+05:30</published><updated>2010-09-13T11:06:24.050+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>Rereading Mythical Man month</title><summary type='text'>Recently I started rereading Mythical Man Month by Fred Brooks. The book is a collection of essays about programming and software development in general. First edition was published in 1974. I am reading the 20th Anniversary edition published in 1994. So the one I am reading is also 16 years old.
First time I read this book sometime in year 2000. At that time, I was a just a somewhat experienced </summary><link rel='related' href='http://en.wikipedia.org/wiki/The_Mythical_Man-Month' title='Rereading Mythical Man month'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/5832271306392956525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=5832271306392956525' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/5832271306392956525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/5832271306392956525'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/09/rereading-mythical-man-month.html' title='Rereading Mythical Man month'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-889452312582454242</id><published>2010-07-03T11:00:00.003+05:30</published><updated>2010-07-05T11:54:51.623+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='team'/><title type='text'>Students and Professional Software Development</title><summary type='text'>In May 2010, I conducted a workshop on 'Introduction to Profession Software Development' in Sir Padmapat Singhania University, Udaipur (SPSU). Previously I have conducted various introductory sessions for new joinees in Geometric Ltd (my previous employer). In all the projects that I worked on, usually 50% team members were 'freshers'. While working with these fresher/new joinees, I realized that</summary><link rel='related' href='http://www.spsu.ac.in/news/Workshop_software_Development/default.htm' title='Students and Professional Software Development'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/889452312582454242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=889452312582454242' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/889452312582454242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/889452312582454242'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/07/students-and-professional-software.html' title='Students and Professional Software Development'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-3819979675777660902</id><published>2010-03-29T21:40:00.002+05:30</published><updated>2010-03-29T21:42:17.532+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bootstraptoday'/><title type='text'>BootstrapToday</title><summary type='text'>In Aug 2009, we (I, Anand and Vishwajeet) started a software company. We named our company 'Sensible Softwares Pvt. Ltd.'  Our first product BootstrapToday is now officially available. BootstrapToday is a Simple and Sensible Application Lifecycle Management (ALM) software. BootstrapToday is a SaaS application.
There are many budding entrepreneurs in India &amp; around the world.  We believe that they</summary><link rel='related' href='http://www.bootstraptoday.com' title='BootstrapToday'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/3819979675777660902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=3819979675777660902' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3819979675777660902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3819979675777660902'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/03/bootstraptoday.html' title='BootstrapToday'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-1215200389865627597</id><published>2010-02-13T08:59:00.000+05:30</published><updated>2010-02-13T09:03:49.117+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='svnplot'/><title type='text'>svnplot - one year later</title><summary type='text'>About one year back (Dec 2008) I changed job. Between two jobs I had some free time. I wrote first version of svnplot during these 4-5 days. Then I released it as 'open source' project on Google Code. Soon many people started using it. I started getting the bug reports filed on the project page. To me, this was a indication that people are really using this project. I got bug reports from </summary><link rel='related' href='http://code.google.com/p/svnplot' title='svnplot - one year later'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/1215200389865627597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=1215200389865627597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1215200389865627597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1215200389865627597'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/02/svnplot-one-year-later.html' title='svnplot - one year later'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-8900568816546066387</id><published>2010-01-11T10:23:00.000+05:30</published><updated>2010-01-11T10:28:20.561+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='tctoolkit'/><title type='text'>Code Analysis and Visualization Tools</title><summary type='text'>Since last few years, I am studying how improve the effective of code reviews. In my experience, every organization have its own 'code review guidelines'. However, ROI of time spent on code reviews varies a tremendously. In some project groups, it works very well. While in other groups, many code review comments are of 'naming convention' related issues and not serious code problems. I developed </summary><link rel='related' href='http://thinkingcraftsman.in/articles/codeanalysistools.htm' title='Code Analysis and Visualization Tools'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/8900568816546066387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=8900568816546066387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8900568816546066387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8900568816546066387'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2010/01/code-analysis-and-visualization-tools.html' title='Code Analysis and Visualization Tools'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-7138260339384662658</id><published>2009-11-01T12:50:00.000+05:30</published><updated>2009-11-01T12:52:36.346+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><title type='text'>Installing (K)Ubuntu as guest os in Virtualbox</title><summary type='text'>So far I mainly used Windows machines as development machines as well at home. Recently I have started experimenting with Ubuntu linux. Hence I wanted to install Ubuntu as Guest os on VirtualBox.  However I faced few problems (like when maxium screen size was set to 800x600 and it took some time to figure out how enable screen size change). Hence i wrote down the steps that worked for me.

This </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/7138260339384662658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=7138260339384662658' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/7138260339384662658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/7138260339384662658'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/11/installing-kubuntu-as-guest-os-in.html' title='Installing (K)Ubuntu as guest os in Virtualbox'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-5365111764253781467</id><published>2009-08-09T19:46:00.009+05:30</published><updated>2009-08-10T19:52:29.382+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><title type='text'>Implementing a Well behaved Singleton - 4</title><summary type='text'>In part-3 of this series, I talked about implementing singleton such that construction sequence is guaranteed and the destruction is guaranteed however the sequence in which the destruction happens is not guaranteed.Sometimes one singleton object depends on another singleton object. In such cases, the technique described in part-3 will be useful to ensure that the singleton's are constructed in </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/5365111764253781467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=5365111764253781467' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/5365111764253781467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/5365111764253781467'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/08/implementing-well-behaved-singleton-4.html' title='Implementing a Well behaved Singleton - 4'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-8335859981301922914</id><published>2009-08-01T19:46:00.010+05:30</published><updated>2010-01-11T10:28:20.562+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='treemap'/><category scheme='http://www.blogger.com/atom/ns#' term='tctoolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Visualizing Code Duplication in a project</title><summary type='text'>Treemap visualization is an  excellent way to visualize the information/various metrics about the directory tree (e.g. source files directory tree).  I have used  treemaps for visualizing SourceMonitor metrics about entire project with excellent results. Unfortunately there are very few simple and opensource treemap visualization softwares available. There is JTreemap applet which can be use to </summary><link rel='related' href='http://thinkingcraftsman.in/projects/index.htm#tctools' title='Visualizing Code Duplication in a project'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/8335859981301922914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=8335859981301922914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8335859981301922914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8335859981301922914'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/08/visualizing-code-duplication-in-project.html' title='Visualizing Code Duplication in a project'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-4499541005614977294</id><published>2009-07-21T11:26:00.008+05:30</published><updated>2010-01-11T10:28:20.562+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='tctoolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Thinking Craftsman Toolkit on Google code</title><summary type='text'>I have created a project named 'Thinking Craftsman Toolkit (TC Toolkit)' on Google code. Currently it includes three small toolsCode Duplication Detector (CDD)Code duplication detector is similar to Copy Paste Detector (CPD) or Simian. It uses Pygments Lexer to parse the source files and uses Rabin Karp algorithm to detect the duplicates. Hence it supports all languages supported by </summary><link rel='related' href='http://code.google.com/p/tctoolkit/' title='Thinking Craftsman Toolkit on Google code'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/4499541005614977294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=4499541005614977294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/4499541005614977294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/4499541005614977294'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/07/thinkint-craftsman-toolkit.html' title='Thinking Craftsman Toolkit on Google code'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-2731888695944375482</id><published>2009-06-10T17:36:00.017+05:30</published><updated>2010-01-11T10:28:20.563+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='tctoolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Writing a Code Duplication Detector</title><summary type='text'>Now that I have started consulting on software development, I am developing a different way of analyzing code for quickly detecting code hotspots which need to addressed first. The techniques I am using are different than traditional 'static code analysis' (e.g. using tools like lint, PMD, FindBugs etc). I am using a mix of various code metrics and visualizations to detect 'anomalies'. In this </summary><link rel='related' href='http://thinkingcraftsman.in/projects/index.htm' title='Writing a Code Duplication Detector'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/2731888695944375482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=2731888695944375482' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2731888695944375482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2731888695944375482'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/06/writing-code-duplication-detector.html' title='Writing a Code Duplication Detector'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-3150523162955095175</id><published>2009-05-23T09:39:00.003+05:30</published><updated>2009-08-01T20:02:14.955+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='treemap'/><title type='text'>Treemap visualization of Results of 2009 General Elections of India</title><summary type='text'>Recently I am interested in various visualization techniques. One of the technique that I find very interesting is 'Treemaps'. While studying treemaps, I found excellent Javascript visualization library "The Javascript Information Visualization Toolkit"  .Using the treemap component from TheJIT and data from Election Commision's site, I made a treemap visualization of results of 2009 general </summary><link rel='related' href='http://thinkingcraftsman.in/articles/election2009vis/results2009.htm' title='Treemap visualization of Results of 2009 General Elections of India'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/3150523162955095175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=3150523162955095175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3150523162955095175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3150523162955095175'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/05/treemap-visualization-of-results-of.html' title='Treemap visualization of Results of 2009 General Elections of India'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-2453034399635855202</id><published>2009-05-04T07:16:00.030+05:30</published><updated>2009-05-04T08:07:23.518+05:30</updated><title type='text'>Thinking Craftsman website</title><summary type='text'>As you know, I am working as Consultant and teacher/mentor in the Craft of Software Development. Now I have my website Thinking Craftsman.Why the name Thinking Craftsman ???First Software Development is still a 'Craft'. We may call it 'Software Engineer' but it is really a Craft.  If you compare other engineering disciplines, software is still a much more person dependant. Quality of Code depends</summary><link rel='related' href='http://thinkingcraftsman.in/' title='Thinking Craftsman website'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/2453034399635855202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=2453034399635855202' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2453034399635855202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2453034399635855202'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/05/thinking-craftsman-website.html' title='Thinking Craftsman website'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-1956219789630477970</id><published>2009-04-13T09:42:00.005+05:30</published><updated>2009-05-01T17:23:58.115+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><title type='text'>Book recommendations for Software Developers</title><summary type='text'>As I mentioned in my previous post on 'C++ Book Recommendations', I have now published a list of books for software developers. These are the books helped me in developing my ideas about Software Development (irrespective of technlogy or programming languages)Check the list at "Book Recommendations for Software Developers"</summary><link rel='related' href='http://thinkingcraftsman.in/articles/softdevbookrepo.htm' title='Book recommendations for Software Developers'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/1956219789630477970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=1956219789630477970' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1956219789630477970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1956219789630477970'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/04/book-recommendations-for-software.html' title='Book recommendations for Software Developers'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-3320963515825043450</id><published>2009-04-06T19:26:00.050+05:30</published><updated>2009-05-01T17:28:21.686+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><title type='text'>Unusual way of Performance Optimization</title><summary type='text'>I have done performance optimizations in all my projects. Usually it involves selecting the appropriate data structure or algorithm, caching the calculated data to avoid recomputations etc. However, sometimes performance optimizations pose unique challenges.  In this particular case, the problem involved fitting a spline surface to cloud of points. To fit the final surface, a reference spline </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/3320963515825043450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=3320963515825043450' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3320963515825043450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/3320963515825043450'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/04/unusual-way-of-performance-optimization.html' title='Unusual way of Performance Optimization'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-2628664846378709664</id><published>2009-04-01T10:26:00.006+05:30</published><updated>2009-05-01T17:26:23.609+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><title type='text'>C/C++ Book Recommendations</title><summary type='text'>I have prepared a list of C/C++ books which helped me in improving my programming skills. I have put the list on my website. In few days I am planning to make two more lists. These lists are books and articles which influenced my thinking on software design and programming.List of C/C++ books (published on my website)List of books on software design and development (published on my website on 13 </summary><link rel='related' href='http://thinkingcraftsman.in/articles/cppbookreco.htm' title='C/C++ Book Recommendations'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/2628664846378709664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=2628664846378709664' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2628664846378709664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2628664846378709664'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/04/cc-book-recommendations.html' title='C/C++ Book Recommendations'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-6574753990808118751</id><published>2009-03-24T23:15:00.005+05:30</published><updated>2009-05-01T17:27:34.843+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><title type='text'>Comparison of VSS, CVS and SVN</title><summary type='text'>I have prepared a comparison among the three commonly used Version Control Systems Visual SourceSafe (VSS), CVS and Subversion.The weights and scores are based on my judgement. I think this type weight scores based comparison may help you in convincing people (e.g. your project team, colleages, senior mgmt in your company) to use Subversion.Total ScoreSubversion : 251CVS        : 171Visual </summary><link rel='related' href='http://thinkingcraftsman.in/articles/vss_cvs_svn.htm' title='Comparison of VSS, CVS and SVN'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/6574753990808118751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=6574753990808118751' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/6574753990808118751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/6574753990808118751'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/03/comparison-of-vss-cvs-and-svn.html' title='Comparison of VSS, CVS and SVN'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-7940621496375086006</id><published>2009-03-10T08:37:00.006+05:30</published><updated>2009-08-09T20:49:39.693+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='team'/><title type='text'>Leadership</title><summary type='text'>I found this good list of characteristics of Leader in 'C++ Coding Standard'. Well, c++ coding standard is not a likely place for finding advice on leadership. But sometimes you find get thought gems at unlikely places. So here it isLeaders: lead by exampledon't ask anything of anyone that they wouldn't do themselvesare called on to make difficult and unpopular decisions keep the team </summary><link rel='related' href='http://www.possibility.com/Cpp/CppCodingStandard.html#phases' title='Leadership'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/7940621496375086006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=7940621496375086006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/7940621496375086006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/7940621496375086006'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/03/leadership.html' title='Leadership'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-8289572575715815405</id><published>2009-03-02T19:38:00.000+05:30</published><updated>2009-03-02T19:39:27.462+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><title type='text'>Portable Precompiled Headers for c/c++</title><summary type='text'>If you are writing cross platform application which is fairly big, then one problem you may encounter is how to reduce compilation time. (Precompiled Headers)One way to reduce the compilation time is to reduce the number of #include class for the same file. Usually we add  #ifndef/#endif pair at start and end of header file to avoid problems of multiple includes. However, compiler still has to </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/8289572575715815405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=8289572575715815405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8289572575715815405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8289572575715815405'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/03/portable-precompiled-headers-for-cc.html' title='Portable Precompiled Headers for c/c++'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-1162385356432977705</id><published>2009-01-28T08:40:00.008+05:30</published><updated>2011-03-07T10:24:05.329+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='sna'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='svnplot'/><title type='text'>Using Social Network Analysis with Version control data</title><summary type='text'>As I mentioned in the last post, am experimenting about using social network analysis (sna) on verision control data.  Now with SVNPlot project, I have a way of converting the Subversion logs into sqlite database. It allows me to query the data in many different ways.

I used the Rietveld repository data and did some premilinary analysis. I am not an expert on SNA but Initial results look very </summary><link rel='related' href='http://thinkingcraftsman.in/projects/sna_subversion/sna_subversion.htm' title='Using Social Network Analysis with Version control data'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/1162385356432977705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=1162385356432977705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1162385356432977705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1162385356432977705'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/01/using-social-network-analysis-with.html' title='Using Social Network Analysis with Version control data'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-2802604860468890996</id><published>2009-01-18T07:52:00.009+05:30</published><updated>2009-06-10T18:09:59.247+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='sna'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='svnplot'/><title type='text'>Social Network Analysis and Version Control</title><summary type='text'>Recently I came across the concept of Social Network Analysis.Given below is small introduction of Social Network Analysis is from Orgnet siteSocial network analysis [SNA] is the mapping and measuring of relationships          and flows between people, groups, organizations, computers, web sites, and other information/knowledge          processing entities. The nodes in the network are the people</summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/2802604860468890996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=2802604860468890996' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2802604860468890996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/2802604860468890996'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/01/social-network-analysis-and-version.html' title='Social Network Analysis and Version Control'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-874084478416845648</id><published>2009-01-14T08:51:00.014+05:30</published><updated>2009-06-10T18:09:59.247+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='svnplot'/><title type='text'>SVNPlot - my first opensource project</title><summary type='text'>During the 1 week gap between the two jobs, I finally started an opensource project.  The project is called in SVNPlot.   It is inspired by the excellent StatSVN Subversion Statistics generation package.SVNPlot generates graphs similar to StatSVN.  The difference is in how the graphs are generated.  SVNPlot generates these graphs in two steps. First it converts the Subversion logs into a 'sqlite3</summary><link rel='related' href='http://code.google.com/p/svnplot/' title='SVNPlot - my first opensource project'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/874084478416845648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=874084478416845648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/874084478416845648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/874084478416845648'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2009/01/svnplot.html' title='SVNPlot - my first opensource project'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-8879469773027322095</id><published>2008-11-15T09:38:00.008+05:30</published><updated>2008-11-15T10:11:17.438+05:30</updated><title type='text'>changes</title><summary type='text'>After 12 years in the current organization, its now time for change. I have resigned and 21 Nov is my last day in the current orgnization. I am going to join another company. I will write more details after joining.These 12 years gave me tremendous amount of exposure in various parts of organization. It was great experience.  I have conducted and facilitated trainings and workshops ranging from </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/8879469773027322095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=8879469773027322095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8879469773027322095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/8879469773027322095'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2008/11/changes.html' title='changes'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-1614336679725584438</id><published>2007-07-02T18:29:00.019+05:30</published><updated>2007-07-02T19:01:21.621+05:30</updated><title type='text'>I am back</title><summary type='text'>For last 2 years, I was working on the most difficult project in my professional experience. The project was a library of intelligent algorithms for designing car exterior surfaces. We developed a new way of controling spline surfaces and many new techniques/algorithms. Last three years I was dreaming of splines, control points and matrices. Effectively, there was no free time for me, updating </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/1614336679725584438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=1614336679725584438' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1614336679725584438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/1614336679725584438'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2007/07/i-am-back.html' title='I am back'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-110093289444383069</id><published>2004-11-20T12:01:00.001+05:30</published><updated>2009-08-09T20:52:32.155+05:30</updated><title type='text'>Body language of the Oraganization - My Interpretations : Part 2</title><summary type='text'>I shall try to answer few more questions on what I will look for in a company during an interview. I could not write the blog very regular for last few months, because now I am working on most challenging project of my career.Lets look at some of the questions.   How much time you have to wait in Lobby ?       How much time you have to wait to hear the written test result ?How much time you have </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/110093289444383069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=110093289444383069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/110093289444383069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/110093289444383069'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/11/body-language-of-oraganization-my.html' title='Body language of the Oraganization - My Interpretations : Part 2'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-109411604653137120</id><published>2004-09-09T14:26:00.001+05:30</published><updated>2009-08-09T20:51:33.330+05:30</updated><title type='text'>Body Language of the Organization : My interpretations - Part 1</title><summary type='text'>Writing a blog entry after a month. When I wrote the last entry, I was in Munich, Germany. Now I am back in India and heavily involved in a new challenging project. Last one month was hectic and I could not write anything.As I promised, this time I am going to give my interpretations of the Body Language Observations. Remember these are 'my interpretation'.  You may not agree with those </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/109411604653137120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=109411604653137120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/109411604653137120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/109411604653137120'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/09/body-language-of-organization-my.html' title='Body Language of the Organization : My interpretations - Part 1'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-109101886080997738</id><published>2004-07-28T18:02:00.001+05:30</published><updated>2009-08-09T20:53:49.329+05:30</updated><title type='text'>Body language of the Oraganization</title><summary type='text'>The book 'Art of Innovation' has a interesting chapter on Body Language of Company. As you know verbal communication and communication from your Body Language can be different. Your posture and actions convey more about your thoughts than what you are speaking. In similar fashion, organizations also have Body Language the Verbal/Written communication from Organization may say 'employees are our </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/109101886080997738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=109101886080997738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/109101886080997738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/109101886080997738'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/07/body-language-of-oraganization.html' title='Body language of the Oraganization'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108964303783793182</id><published>2004-07-12T19:51:00.002+05:30</published><updated>2009-08-09T20:43:52.587+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><title type='text'>Implementing a Well behaved Singleton - 3</title><summary type='text'>Last time I showed an singleton implementation where 'User has to manage the destruction of Singleton object'. (the part-2 is here). In this part, lets see how to improve on that.class FooSingleton{ public:     ~FooSingleton(void);     static FooSingleton&amp; GetFooObj(void); private :     FooSingleton(void); private :    int m_var;};FooSingleton&amp;FooSingleton::GetFooObj(void){  static FooSingleton </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108964303783793182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108964303783793182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108964303783793182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108964303783793182'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/07/implementing-well-behaved-singleton-3.html' title='Implementing a Well behaved Singleton - 3'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108911681500672247</id><published>2004-07-06T17:49:00.000+05:30</published><updated>2004-07-06T17:57:03.763+05:30</updated><title type='text'> From Ward Cunningham's interview : Simplicity in programming</title><summary type='text'>Someone says, "You should always check your arguments to see if they're in range." Someone else says, "Half the statements in this program are checking arguments that are intrinsically in range." Have they made the program better or worse? No, I think they've made it worse. I'm not a fan of checking arguments. On the other hand, there ought to be a fail fast. If you make a mistake, the program </summary><link rel='related' href='http://www.artima.com/intv/simplest.html' title=' From Ward Cunningham&apos;s interview : Simplicity in programming'/><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108911681500672247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108911681500672247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108911681500672247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108911681500672247'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/07/from-ward-cunninghams-interview.html' title=' From Ward Cunningham&apos;s interview : Simplicity in programming'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108791989446036871</id><published>2004-06-22T21:27:00.000+05:30</published><updated>2009-08-09T20:45:08.108+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><title type='text'>Implementing a Well behaved Singleton - 2</title><summary type='text'>In the second part of this series,  Lets look at a simple singleton implementation and see how these questions affect the implementation.class FooSingleton{   public :       FooSingleton(void);       ~FooSingleton(void);       static FooSingleton* GetFooObj(void);   private :      int m_var;};static FooSingleton g_fooSingleton;FooSingleton*FooSingleton::GetFooObj(void){    return(</summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108791989446036871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108791989446036871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108791989446036871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108791989446036871'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/06/implementing-well-behaved-singleton-2.html' title='Implementing a Well behaved Singleton - 2'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108782708984315843</id><published>2004-06-21T19:35:00.000+05:30</published><updated>2009-08-09T20:45:08.109+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><title type='text'>Implementing a Well behaved Singleton - 1</title><summary type='text'>Singleton is one of the simplest design patterns. It also the one most abused. I have seen developers replace a global variable with a signleton object and argue that since its a design pattern, its good without really looking at the intent of the pattern and the effects.What do i mean by a Well Behaved Singleton ?  A well behaved Singleton will have following characteristics.1. Construction </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108782708984315843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108782708984315843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108782708984315843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108782708984315843'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/06/implementing-well-behaved-singleton-1.html' title='Implementing a Well behaved Singleton - 1'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108747983655187495</id><published>2004-06-17T19:08:00.000+05:30</published><updated>2009-01-28T08:54:45.329+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>Notion of Repeatable processes</title><summary type='text'>From the recent discussion on PragmaticProgrammer Mailing List:(From Mail from Andrew Hunt)Here's a side question for ya'll on the notion of repeatable process:  I want a formula of how to make a hit movie.  Perfectly repeatable, with no consideration of the talent involved.  Just turn the crank and rely on the process to work.Now replace the 'hit movie' with Software Product/Project. I </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108747983655187495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108747983655187495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108747983655187495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108747983655187495'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/06/notion-of-repeatable-processes.html' title='Notion of Repeatable processes'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108712077681885964</id><published>2004-06-13T15:17:00.001+05:30</published><updated>2009-01-28T08:53:14.547+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='team'/><title type='text'>Craft Of Programming and Mentors</title><summary type='text'>One thing I learned from my experiences in Software Development is 'Software Development' is not 'Computer Science'. Its not a science and its not fully an art also. Sometime back I read an article where the author called it 'Craft'. I really liked the idea. Indeed, programming is a craft and a Good Software Developer is like a Master Craftsman. As Craftsman you learn the tricks of the trade by </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108712077681885964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108712077681885964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108712077681885964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108712077681885964'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/06/craft-of-programming-and-mentors.html' title='Craft Of Programming and Mentors'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108609757405438801</id><published>2004-06-01T19:02:00.001+05:30</published><updated>2009-01-28T08:52:26.628+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='team'/><title type='text'>Trust your developers (employees) and treat them as Responsible Adults</title><summary type='text'>This is the first lesson I learned when I become a Manager of a development. 'Treat your Developers as Responsible Adults and Trust Them'. This simple advice, gave a me big advantage Trust and Support of the Development Team.  It starts with a simple ideas. Let me give an example to clarify my point.Scenerio : An Important release of your project/product is coming up and a developer comes to you </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108609757405438801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108609757405438801' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108609757405438801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108609757405438801'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/06/trust-your-developers-employees-and.html' title='Trust your developers (employees) and treat them as Responsible Adults'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108497420343865006</id><published>2004-05-19T19:05:00.001+05:30</published><updated>2009-02-26T19:48:37.332+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='design principle'/><title type='text'>set/get functions in class.</title><summary type='text'>This is actually a mail trail of a question that Ashish Khare asked me. With his permission I am putting parts of the discussion in this blog entry.The question was I am looking at a class which has 4 ints declared as private and for each one there is 1 Get and 1 Set functions which is public.        When  all these ints are exposed ( indirectly ) to external world, why should I declare them as </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108497420343865006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108497420343865006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108497420343865006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108497420343865006'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/setget-functions-in-class.html' title='set/get functions in class.'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108488619720587188</id><published>2004-05-18T18:33:00.000+05:30</published><updated>2004-05-18T18:46:37.206+05:30</updated><title type='text'>Lets create a check list</title><summary type='text'>Lets create a check listThis is Last of the 3 ideas that I posted in 'some ideas that just don't work'. Check lists were favourite of ISO 9000 (at least the ISO 9000 implementations, that I have seen). If your code is bad, customers are cribbing, create a check list for coding errors, check list for spec documents, check list for testing, check list for code review, check list for release etc </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108488619720587188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108488619720587188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108488619720587188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108488619720587188'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/lets-create-check-list.html' title='Lets create a check list'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108480215247430597</id><published>2004-05-17T19:07:00.001+05:30</published><updated>2009-08-09T20:49:09.493+05:30</updated><title type='text'>Lets use a project metric to measure individual performance</title><summary type='text'>'We need to distinguish between good and bad developers and promote good developers. We need an objective way to do this. We want to tie the compensation for developer to its performance. We need an Objective way to measure Developer Performance. 'A very nice and persuasive argument. Usually this ends with 'lets use a project metric to measure indivisual performance. Lets use bug/KLOC'. Remember </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108480215247430597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108480215247430597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108480215247430597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108480215247430597'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/lets-use-project-metric-to-measure.html' title='Lets use a project metric to measure individual performance'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108445333897826813</id><published>2004-05-13T17:40:00.000+05:30</published><updated>2004-05-13T18:40:19.113+05:30</updated><title type='text'>Illusion of   "We need some more processes. Then everything will be alright "</title><summary type='text'>Lets look at why this doesnot work.First Processes have to be people Centric. Any process implementation that ignores people or ignores people instincts is doomed to failure. Especially when the company (or departments) starts thinking if you have good processes you can replace developer X with developr Y without any impact on project. THAT NEVER WORKS.Ususal one can define only 80% percent </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108445333897826813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108445333897826813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108445333897826813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108445333897826813'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/illusion-of-we-need-some-more.html' title='Illusion of  &lt;em&gt; &quot;We need some more processes. Then everything will be alright &quot;&lt;/em&gt;'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108435740070244303</id><published>2004-05-12T15:52:00.000+05:30</published><updated>2004-05-12T16:00:39.620+05:30</updated><title type='text'>some ideas that just don't work in software development</title><summary type='text'>"The definition of insanity is doing exactly what you did before all over again, but expecting different results this time.". I don't remember where I have seen this quote first but I really liked it.In last 7 years in Software development I have seen few ideas which are already tried and failed. But invaribale after some months or years some one comes up with the same these AGAIN. Again it </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108435740070244303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108435740070244303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108435740070244303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108435740070244303'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/some-ideas-that-just-dont-work-in.html' title='some ideas that just don&apos;t work in software development'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108426887901271601</id><published>2004-05-11T15:16:00.000+05:30</published><updated>2009-01-28T08:54:30.370+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>The Quotes I liked - Software Development</title><summary type='text'>1. Computer science is not the same as Software Engineering.2.  "First make it work, then make it right." OR "Make it work, Make it right, Make it fast"- Kent Beck (I think)3.  "In my experience, the customer doesn't know what he wants until you don't give it to" --David Brady on the XP Mailing List</summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108426887901271601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108426887901271601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108426887901271601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108426887901271601'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/quotes-i-liked-software-development.html' title='The Quotes I liked - Software Development'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108426873639688078</id><published>2004-05-11T15:12:00.000+05:30</published><updated>2009-01-28T08:54:30.371+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><title type='text'>The Quotes that I liked - General</title><summary type='text'>These are some of my favourites quotes. Usually I use one of them as signature on my mails.1. To attain KNOWLEDGE, Add things every day;   To attain WISDOM, Remove things every day.      -- Lao-Tse2.  "You ordered a first-rate article and you must be content to pay the price"-- Joseph Clement (engineer, corresponding with his client, Mr. Charles Babbage) 3. "The definition of insanity </summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108426873639688078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108426873639688078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108426873639688078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108426873639688078'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/quotes-that-i-liked-general.html' title='The Quotes that I liked - General'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6945177.post-108426821695735160</id><published>2004-05-11T15:04:00.000+05:30</published><updated>2004-05-11T15:12:20.306+05:30</updated><title type='text'>Just starting</title><summary type='text'>This is my first step into the world of blogging. I keep reading excellent blogs by Martin Fowler, Larry Osterman etc. Which inspired me to start my own blog. For the start at least I am using it as place to pen random thoughs, ideas, links and articles that I have found etc.For those who want to know, little bit more about me. Please check my page at http://www.geocities.com/nitinbhide</summary><link rel='replies' type='application/atom+xml' href='http://nitinbhide.blogspot.com/feeds/108426821695735160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6945177&amp;postID=108426821695735160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108426821695735160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6945177/posts/default/108426821695735160'/><link rel='alternate' type='text/html' href='http://nitinbhide.blogspot.com/2004/05/just-starting.html' title='Just starting'/><author><name>Nitin Bhide</name><uri>http://www.blogger.com/profile/00559300191011023611</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
