<?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-4844372685838985101</id><updated>2012-04-12T05:34:22.822+05:30</updated><category term='techmaddy'/><category term='developers quotes'/><category term='quantification'/><category term='Object Orientation'/><category term='seven'/><category term='search engines'/><category term='Green programmer'/><category term='OOPs'/><category term='Damping'/><category term='suceed as team'/><category term='damping saves lives'/><category term='go plus'/><category term='ICRISAT'/><category term='seven plus or minus two'/><category term='magic number'/><category term='uncertainty'/><category term='certainity'/><category term='Green-Programmer'/><category term='GUI'/><category term='Abstract'/><category term='key ingredients for a successful product employee is the key'/><category term='Need not restart your servers(weblogic or tomcat) for compilation of a class - hot swap'/><category term='jmeter jvisualvm performance testing tuning'/><category term='Eco-Friendly Programmers'/><category term='variability techmaddy'/><category term='7±2'/><category term='limitations of search engines'/><category term='goplus'/><category term='Green code'/><category term='OOP'/><category term='Eco-Friendly Programming'/><category term='quotes'/><category term='composability'/><category term='originality techmaddy blogs'/><category term='magic number seven'/><category term='encapsulation'/><category term='Inheritance'/><category term='Object'/><category term='google'/><title type='text'>techmaddy blog</title><subtitle type='html'>Imagine&amp;gt;&amp;gt;Implement&amp;gt;&amp;gt;Inspire</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.daemonthread.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-3428410581281479524</id><published>2011-10-06T17:13:00.000+05:30</published><updated>2011-10-10T12:01:04.918+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='key ingredients for a successful product employee is the key'/><title type='text'>Why every employee is important, every employee.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For a successful product to be launched the key ingredients are&lt;br /&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Passion&lt;/li&gt;&lt;li&gt;Brand&lt;/li&gt;&lt;li&gt;Innovation&lt;/li&gt;&lt;li&gt;Technology&lt;/li&gt;&lt;li&gt;Care&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;and the most important and commonly ignored one is&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;EVERY employee&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I'm not going to expand on the other terms, as the words are self-explanatory.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Let me share an incident that happened to me recently-the reason behind writing this blog. I recently planned to buy a headphones, and quite excited from the reviews went ahead to buy it from a mall near by. &amp;nbsp;From the brand value, I expected a warm welcome to the valuable customer, who is about to buy their innovation. My apparel was casual and hence I was blaunt and did not make a great impression for a warm welcome or at least welcome. There were two sales men and both of them were talking to a customer-a well dressed old man. I could make from his body language that he is not going to buy the product-ofcourse not my job. I waited for ten minutes and requested for an attention.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One sales man came to me after five minutes and I requested for a demo for the product I am going to buy. He shuffled the products that he had and left. For a second, I was feeling like &lt;a href="http://www.imdb.com/character/ch0002332/"&gt;Dr. Malcolm Crowe&lt;/a&gt; in Sixth Sense, unnoticed. I asked him twice and he did not mind to give an attention.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The moral, "every employee is important" and I walked away. &amp;nbsp;Sales men are not the only ones, every employee is important. Just think of situations where your friends working for an organization gives a bad review on how it treats employees, &amp;nbsp;where a person annoys you in an interview, a single 404 page during a transaction (referring to the employee who is responsible for it), &amp;nbsp;a new joinee give a bad review of the previous employer, etc.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, even if every employee gives their best for the product and one employee does anything bad, customers walk away.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-3428410581281479524?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/3428410581281479524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2011/10/why-every-employee-is-important-every.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/3428410581281479524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/3428410581281479524'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2011/10/why-every-employee-is-important-every.html' title='Why every employee is important, every employee.'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-3048616976676924034</id><published>2011-06-01T21:41:00.000+05:30</published><updated>2011-06-01T21:41:12.727+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='jmeter jvisualvm performance testing tuning'/><title type='text'>Site performance tuning using jMeter and jVisualVm</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;I recently had to work on a requirement where I had to support (response time &amp;nbsp;less than 5 seconds) for &amp;nbsp; 500 concurrent users, with&amp;nbsp;10 million users in database&amp;nbsp;and a single server. I tried going through many forums and open source tools, from which I finalized on &lt;a href="http://jakarta.apache.org/jmeter/"&gt;jMeter&lt;/a&gt; for performance testing and &lt;a href="http://download.oracle.com/javase/6/docs/technotes/tools/share/jvisualvm.html"&gt;jVisualVm&lt;/a&gt; for finding bottlenecks.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This was my approach:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;Make sure that the server (hardware can be as per the staging/production requirements) has no other installations that can affect the performance.&amp;nbsp;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;For setting up the users in DB, a &lt;a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#i4075"&gt;procedure&lt;/a&gt; can be used and can be called as a part of jmeter test plan.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Install jmeter on a&amp;nbsp;separate&amp;nbsp;machine, so that jmeter won't affect the performance.&amp;nbsp;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Create a test plan in jmeter (as shown in the figure 1) for all the uri's, with response checking and timer based requests. &amp;nbsp;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Take the initial benchmark, using jmeter.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Check for the low performance uri's. These are the points to expect for bottlenecks.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Try different options for performance improvement, but focus on only one bottleneck at a time. Some of them can be&amp;nbsp;&lt;/li&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;Database index. Use the DB server logging to find the slow queries, use explain plan and improve the sql statements.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Check the configuration parameters for any third party tools.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Check if there are any dead locks (can be checked with jVisualVM as shown in Figure 2).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Profiling the application using jVisualVm(can be checked with jVisualVM as shown in Figure 3).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Data structures, algorithms&amp;nbsp;and&amp;nbsp;loops.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;UI components, try advices from &lt;a href="http://developer.yahoo.com/yslow/"&gt;YSlow&lt;/a&gt;. Try streaming, caching, etc.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Read the hardware configuration and try for any options like &lt;a href="http://en.wikipedia.org/wiki/CPU_cache"&gt;cpu cache&lt;/a&gt;, &lt;a href="http://www.caucho.com/resin-3.0/performance/jvm-tuning.xtp"&gt;jvm tuning&lt;/a&gt;, paging, etc. This step does not include hardware scaling.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Check for memory leaks using jVisualVm.&lt;/li&gt;&lt;/ol&gt;&lt;li style="text-align: justify;"&gt;Try any one fix from step 6 and then take an benchmark. If there is any improvement commit the changes and repeat from step 5. Otherwise revert and try for any other options from step 6.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;The next step would be to use load balancing, hardware scaling, clustering, etc. This may include some physical setup and hardware/software cost. Give the results with the&amp;nbsp;scalability&amp;nbsp;options.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;jMeter test plan&lt;/i&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qE75cMTY71Q/TeZSHAj4ZeI/AAAAAAAABwQ/SAY7V2lOEVE/s1600/jmeter.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://2.bp.blogspot.com/-qE75cMTY71Q/TeZSHAj4ZeI/AAAAAAAABwQ/SAY7V2lOEVE/s640/jmeter.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 1: jMeter test plan&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;jVisualVM run for a s&lt;a href="http://download.oracle.com/javase/tutorial/essential/concurrency/deadlock.html"&gt;ample deadlock program&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-aeamfs-7cNk/TeZZJ5vXrAI/AAAAAAAABwY/z4IXvTAHVsg/s1600/jVisualVMThreads.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="458" src="http://4.bp.blogspot.com/-aeamfs-7cNk/TeZZJ5vXrAI/AAAAAAAABwY/z4IXvTAHVsg/s640/jVisualVMThreads.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 2: jVisualVM shows Thread 1 and 2 waiting for the monitor&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-hkD6Z4xTpiU/TeZZYOP-fHI/AAAAAAAABwc/mSyb7DAvRz4/s1600/jVisualVMMemoryDump.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="458" src="http://2.bp.blogspot.com/-hkD6Z4xTpiU/TeZZYOP-fHI/AAAAAAAABwc/mSyb7DAvRz4/s640/jVisualVMMemoryDump.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 3: jVisualVm showing profile results for memory&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Results:&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the end it is better to prepare a complete report from the benchmarks and finally define the performance with details of the hardware, software, maximum db load, maximum number of concurrent users supported(users active every 2 seconds), maximum number of sessions, changes made and the improvement&amp;nbsp;achieved. &amp;nbsp;Any unimplemented changes can be suggested for improvement, so that the effort to find the bottleneck is improved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-3048616976676924034?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/3048616976676924034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2011/06/site-performance-tuning-using-jmeter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/3048616976676924034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/3048616976676924034'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2011/06/site-performance-tuning-using-jmeter.html' title='Site performance tuning using jMeter and jVisualVm'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-qE75cMTY71Q/TeZSHAj4ZeI/AAAAAAAABwQ/SAY7V2lOEVE/s72-c/jmeter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-4540934187416667002</id><published>2010-12-11T16:10:00.000+05:30</published><updated>2010-12-11T16:10:57.060+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='originality techmaddy blogs'/><title type='text'>Originality</title><content type='html'>&lt;div style="text-align: justify;"&gt;I believe the most powerful tool that human beings possess is &lt;i&gt;the mind&lt;/i&gt;, that can ignite imagination. Every possible creation in the world is a tangible idea. Every possible idea is the outcome of all or some of the senses, passed through may be a single or billions of neural schemas (referring to the brain).&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Any idea can be referred to some part of the nature (at Universal level). When someone says an idea is original, what is it? I don't understand. &amp;nbsp;Take for instance, &lt;i&gt;Google search&lt;/i&gt;, don't you think it is a matured idea of the search that we do everyday; &lt;i&gt;Facebook&lt;/i&gt;, is it not a virtual social network; &lt;i&gt;Virtualization&lt;/i&gt;, complete simulation of a natural concept; &lt;i&gt;Photography&lt;/i&gt;, light captured with a particular setting (do you own the light or the setting?); &lt;i&gt;Music&lt;/i&gt;, captured sound at some desired frequencies; etc.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I still don't understand, the noun &lt;i&gt;originality, &lt;/i&gt;is it the first idea preceding all others in time? In such case, it belongs to the nature. Or is it the first one to file a patent or register it, or is it the first one to show it to the world. Or is it the first one who comes out with some tangible output. What if someone had the idea for long time and could not come with an output or did not express it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Understanding this, I do understand the considerable amount of work someone puts for coming out with &amp;nbsp;an idea, which we all feel &lt;i&gt;new. &lt;/i&gt;I still wonder if the newness or freshness can be considered as original. I take the concept of wall (which itself is taken from a broadcast or something else) and come out with a specification of wall with only 150 characters max, inclusive all characters and call it &lt;i&gt;twitter &lt;/i&gt;(just an example, which is considered as a great idea)&lt;i&gt;. &lt;/i&gt;Is this original? But, I understand the effort that is put for developing this and the ego of so many developers, and may be testers too.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Why all the software is not made open source? Is it because of security reasons or is it because of the ego of the investors or ego of all the developers, who don't want someone else to directly copy it or reuse it.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So, definition of originality or original-idea (as it is used)&amp;nbsp;is the ego of the hard-work to build an idea, which creates the feeling of some newness or freshness and belongs to the first one who expresses/shows it to the world.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Actually, originality is nature.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Disclaimer: &amp;nbsp;I do not copy nor encourage some one to copy any idea, but just sharing my thoughts on my confusion on originality. This is my understanding and welcome your definitions or ideas.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-4540934187416667002?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/4540934187416667002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2010/12/originality.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/4540934187416667002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/4540934187416667002'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2010/12/originality.html' title='Originality'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-8839150070861032736</id><published>2010-04-06T15:10:00.016+05:30</published><updated>2010-04-08T15:38:38.860+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='variability techmaddy'/><title type='text'>Inherent Variability: A Major Difference Between Man and Machines</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="72" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/S7r-LblPqDI/AAAAAAAABJc/njHMfBphBVM/s200/DSC00288.JPG" width="200" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Image (a)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="109" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/S7r-ZUCnsmI/AAAAAAAABJk/vpdaZPaOSP8/s200/Variability-machine.jpg" width="200" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Image (b)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Image (a) shows my attempt to write alphabet 'a' the same way four times. Image (b) shows how a machine does the same. Obviously, we can see the machine is precise in doing this. A loud applause for the machine!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/S7r-oQauj5I/AAAAAAAABJs/3oOsKJVZ-ws/s320/DSC00289.JPG" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Image (c)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Image (c) shows a hand written word, in two different ways. The word can, obviously, be recognized by any human reader. How good is the machine in doing the same task? This is how a &lt;a href="http://www.captcha.net/"&gt;captcha &lt;/a&gt;differentiates man and machines (though it is not exactly written by human beings, but some algorithm that can generate and display words with some distortion, which is difficult to be recognized by machines and can be easily recognized by humans).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Any written alphabet, spoken word, action performed by a human being is a &lt;a href="http://en.wikipedia.org/wiki/Stochastic_process"&gt;stochastic process&lt;/a&gt;; i.e., it is an output of a random function. Apart from the variability in doing things, we are built with an inherent ability to recognize and learn from the variability.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0SfvUxJC2mE/S7swdWz6QlI/AAAAAAAABJ0/qzRFygFvMto/s1600/APJAbdulKalam.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/S7swdWz6QlI/AAAAAAAABJ0/qzRFygFvMto/s320/APJAbdulKalam.jpg" width="215" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_VwlWPRbJ-Yg/S7Rf9GtHiBI/AAAAAAAAAeU/QMciI34BjQ8/s1600/Dr.A.P.J.+Abdul+Kalam1.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_VwlWPRbJ-Yg/S7Rf9GtHiBI/AAAAAAAAAeU/QMciI34BjQ8/s320/Dr.A.P.J.+Abdul+Kalam1.jpg" /&gt;&lt;/a&gt;Though both the images on the right and left represent the same &lt;a href="http://www.abdulkalam.com/"&gt;great person&lt;/a&gt;, we can easily recognize the variability and if we try to draw the same image again and again, we will end up in producing a different image every time.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;This shows&amp;nbsp; our inherent ability to produce and recognize the variability. This is very, very difficult for a machine to recognize this as a same person. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Watch a 6-months-old baby (almost a fresh brain, of course, though trained for a few tasks and far better than the best known robots), give her a toy and she feels happy for some time, and then searches for a new one. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Have you ever wondered why we don't feel happy watching the same movie more that a few times?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It is all the part of the human intelligence architecture: the brain. Our brain (still we are not in a position to exactly know its architecture) contains 10&lt;sup&gt;11&lt;/sup&gt; neurons and 10&lt;sup&gt;15&lt;/sup&gt; synapses. Each new activity changes the whole network. Each time you watch a movie, you are watching it with a new neuron-synapse network. Each time we watch, we look at some new things which we missed in the other part. The watched part goes automatically into the sub-conscious mind, and the selective mechanism is now focused on the new variable part which goes into the conscious mind. Each time our mind expects some learning. When this learning saturates or if we couldn't find any interesting variability any more, we feel boredom. So if any movie is enjoyable for quite a number of times, it has a lot of likable-variability in it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There are a few generalization algorithms that are used by machines to generalize identification of objects.&amp;nbsp; For e.g: &lt;a href="http://world.honda.com/ASIMO/"&gt;Asimo&lt;/a&gt;, one of the worlds best humanoid robot can &lt;a href="http://www.youtube.com/watch?v=P9ByGQGiVMg"&gt;generalize few objects based on its characteristics.&lt;/a&gt; Obviously, not as good as humans. Humans work on very high dimensional space to find&amp;nbsp; or understand the variability and use&lt;i&gt; A-priori &lt;/i&gt;knowledge, which makes the difference in identification. &lt;br /&gt;&lt;br /&gt;Even the &lt;i&gt;motor control&lt;/i&gt; in human beings has the variability in every action we do compared to the machines which can just do any action based on the limited controlling parameters.&lt;br /&gt;&lt;br /&gt;The reason why television, computers are still interesting is the variability of shows in the&amp;nbsp; TV&amp;nbsp; (compromising multi-dimensional parameters into a few dimensions) and computer being one device having capability of running different applications providing variability. Overall, the inherent variability makes our lives very interesting, which is very difficult to achieve by the machines. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-8839150070861032736?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/8839150070861032736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2010/04/inherent-variablilty-one-major.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/8839150070861032736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/8839150070861032736'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2010/04/inherent-variablilty-one-major.html' title='Inherent Variability: A Major Difference Between Man and Machines'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0SfvUxJC2mE/S7r-LblPqDI/AAAAAAAABJc/njHMfBphBVM/s72-c/DSC00288.JPG' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-2174001058944683862</id><published>2010-01-07T12:10:00.006+05:30</published><updated>2010-01-07T12:30:38.766+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='damping saves lives'/><category scheme='http://www.blogger.com/atom/ns#' term='Damping'/><title type='text'>How is damping saving our lives?</title><content type='html'>Have you ever believed that, one of the reasons that you are alive is because of Damping?&lt;br /&gt;&lt;br /&gt;If 1, my thoughts are same as yours.&lt;br /&gt;If 0, you may agree after reading this blog.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Damping"&gt;Damping&lt;/a&gt; is any effect that tends to reduce the amplitude of Simple Harmonic Motion or any oscillation. &lt;br /&gt;&lt;br /&gt;Take a &lt;a href="http://en.wikipedia.org/wiki/Sine_wave"&gt;sinusoid&lt;/a&gt; (which is a  smooth repetitive oscillation) for instance (this can also be thought of as cosine, with a phase difference), the waveform looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/S0V5wNSQSsI/AAAAAAAAA20/eMLHKXC2E7A/s320/Sinusoid.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The same waveform, when damped looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/S0V6FMNcprI/AAAAAAAAA28/9j8iIgZfifI/s320/DampedSinusoid.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;According to &lt;a href="http://en.wikipedia.org/wiki/Fourier_series"&gt;Fourier series&lt;/a&gt;, complicated periodic functions are written as the sum of simple waves mathematically represented by sines and cosines. &lt;br /&gt;&lt;br /&gt;So, almost all the signals in the nature can be approximated to Fourier series.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How is damping saving our lives?&lt;/b&gt;&lt;br /&gt;A natural signal, speech. When any person speaks, the speech (which can be represented by Fourier Series) damps after some time. This can be seen from the following speech wave form:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_0SfvUxJC2mE/S0V9QAPiW7I/AAAAAAAAA3M/pHwB9VROUfA/s320/SpeechSignal.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This is the same reason,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;why we cannot hear a person speaking at some long distance.&amp;nbsp;&lt;/li&gt;&lt;li&gt;why when a word is uttered, we could hear the word.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;If there's no damping, all the signals of each word will overlap and and we won't be able to hear anything. Apart from this, if the whole signal doesn't damp, then we could hear the speech of the whole world speaking and all the words uttered from the past will never die out. &lt;br /&gt;&lt;/div&gt;The end result, it will be an overlap of all the signals from the past, till date.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Apart from this, each speech signal is sample. It is different from the previous one(you can take samples of uttering the same word for life time and it will be different each time). If this doesn't happen, it will be like in some of the lifts, when you open the door, there will be a recorded voice sample saying, "Please close the door!". It becomes irritating on hearing for a long time. &lt;br /&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;i&gt;Nature is designed well for the existence, which is very hard to replicate.&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-2174001058944683862?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/2174001058944683862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2010/01/we-are-alive-because-of-damping.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/2174001058944683862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/2174001058944683862'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2010/01/we-are-alive-because-of-damping.html' title='How is damping saving our lives?'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0SfvUxJC2mE/S0V5wNSQSsI/AAAAAAAAA20/eMLHKXC2E7A/s72-c/Sinusoid.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-8628718785655291172</id><published>2009-06-11T19:53:00.005+05:30</published><updated>2009-06-11T20:13:35.267+05:30</updated><title type='text'>Java methods and declared return type</title><content type='html'>Guess the output:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;May seem straight forward to Java Geeks.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="http://2.bp.blogspot.com/_0SfvUxJC2mE/SjEVdWyBtNI/AAAAAAAAAsg/0lxTD08IEQY/s400/Snap1.jpg" alt="" id="BLOGGER_PHOTO_ID_5346077826741286098" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;I thought this would give compile time error. Later on realized the output is&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;This is funny&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Moral: &lt;a href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#37316"&gt;It is possible for a method to have a declared return type and yet contain no return statements.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-8628718785655291172?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/8628718785655291172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2009/06/method-signature-vs-return-types-in.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/8628718785655291172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/8628718785655291172'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2009/06/method-signature-vs-return-types-in.html' title='Java methods and declared return type'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0SfvUxJC2mE/SjEVdWyBtNI/AAAAAAAAAsg/0lxTD08IEQY/s72-c/Snap1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-3035490261081847424</id><published>2009-03-28T02:45:00.037+05:30</published><updated>2009-04-20T19:06:21.492+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eco-Friendly Programmers'/><category scheme='http://www.blogger.com/atom/ns#' term='Eco-Friendly Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Green programmer'/><category scheme='http://www.blogger.com/atom/ns#' term='techmaddy'/><category scheme='http://www.blogger.com/atom/ns#' term='Green-Programmer'/><category scheme='http://www.blogger.com/atom/ns#' term='Green code'/><title type='text'>Being a Green Programmer</title><content type='html'>&lt;p&gt;I know: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;You are busy coding. &lt;/li&gt;&lt;li&gt;You are working on p1.&lt;/li&gt;&lt;li&gt;Your Manager wants to meet you in 10 minutes and already 1 min is gone reading till here. &lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;For those whose vocation is &lt;a href="http://en.wikipedia.org/wiki/Computer_programming"&gt;Programming&lt;/a&gt; and you always have the above excuses or &lt;em&gt;hand-cuffs&lt;/em&gt; and even then you want to be &lt;strong&gt;Eco-Friendly&lt;/strong&gt;, glance at the titles and pictures. The pictures are dedicated to you.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5317987416705857714" style="margin: 0px auto 10px; display: block; width: 320px; height: 209px; text-align: center;" alt="" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/Sc1JYSy_-LI/AAAAAAAAAY0/5r8MCFVS_Kw/s320/GreenEarth.bmp" border="0" /&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;For all others, I promise it is worth reading and I recommend to follow at least one.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Who is a &lt;span style="color: rgb(0, 153, 0);"&gt;Green Programmer&lt;/span&gt;?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;All those people whose job is Ctrl+c, Ctrl+v (I know there is a lot more) and who have already realized that the Beautiful Earth is in danger and are desperate to contribute and follow a set of Eco-friendly rules, are already Green Programmers. The level is based on the number of rules you follow and the number of people you educate. The other synonym is &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;em&gt;Eco-Friendly Programmers&lt;/em&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5317987947288025842" style="margin: 0px auto 10px; display: block; width: 320px; height: 320px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/Sc1J3LXpWvI/AAAAAAAAAY8/AydHGfYum3s/s320/GreenStart1.jpg" border="0" /&gt; &lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why should I become a Green Programmer?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="Effects of global warming" href="http://www.globalwarming.org.in/"&gt;&lt;img src="http://www.globalwarming.org.in/fightglobalwarming.jpg" /&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.globalwarming.org.in/"&gt;Global warming&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Acid_rain"&gt;Acid Rain&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Pollution"&gt;Pollution&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Hazardous_waste"&gt;Hazardous waste&lt;/a&gt;, &lt;a href="http://www.epa.gov/ozone/"&gt;Ozone Depletion&lt;/a&gt;, etc. These terms are now more practical and live. By becoming a Green programmer, you are first aware of the cause and consequences; and then aware and follow the ways to reduce them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to become a Green Programmer? &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Apart from following the best practices for programming, there is a simple set of Eco-Friendly practices, which needs a little extra effort. There are a few easy and basic rules defined in this blog and the rest is common sense.&lt;br /&gt;&lt;br /&gt;If you have understood till now, you are already a Green Programmer.&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:130%;"&gt;Being the Green Programmer:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I asked a question in &lt;a href="http://www.stackoverflow.com/"&gt;stackoverflow&lt;/a&gt;, &lt;a href="http://stackoverflow.com/questions/498512/how-to-be-an-eco-friendly-programmer"&gt;"How to be an Eco-friendly programmer?"&lt;/a&gt; and I am going to use few of the answers here. For those answers that I got from stackoverflow, Notation is &lt;span style="color: rgb(153, 255, 153);"&gt;Answer:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;. &lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Efficient Programming: &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5317988613407208418" style="margin: 0px auto 10px; display: block; width: 250px; height: 223px; text-align: center;" alt="" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/Sc1Kd821c-I/AAAAAAAAAZE/VYlr0ApEbVQ/s320/efficientProgram.jpg" border="0" /&gt; &lt;p&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;If you have effective code running in production, you are already contributing to the Environment. &lt;span style="color: rgb(153, 255, 153);"&gt;Answer:&lt;/span&gt; "If your software is widely used, write decent code. Shaving 30 seconds off that image stabilization code saves 30 secs of computer time, every time it is executed (30 secs * 10000 execs/day * 30 days = 104 days of saved computing time). That's far more energy than you'll ever save personally."&lt;br /&gt;Try to complete all the tasks ahead of the schedule so that you don't have to do over time thus reducing the power consumption.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Turn your stuff off:&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5317989291466206834" style="margin: 0px auto 10px; display: block; width: 320px; height: 180px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/Sc1LFa0srnI/AAAAAAAAAZM/KQN6y103nXQ/s320/lightsoff.jpg" border="0" /&gt; &lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div align="justify"&gt;In a day, actual work, code, checking mails takes 6-8 hours and most of the systems remain switched on even after that because of&lt;br /&gt;&lt;em&gt;a short break&lt;/em&gt;: coffee break, lunch break, Meeting, long phone calls. In such spans, Just switch off the monitors.&lt;br /&gt;&lt;em&gt;or a long break&lt;/em&gt;: EOD, weekend. In such cases do shut down the machine and switch off the monitor. And for programmers, the desktop is in &lt;a href="http://en.wikipedia.org/wiki/Schr%C3%B6dinger"&gt;Schrodinger's cat&lt;/a&gt; state most of the time, it is better to hibernate.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;This means that if the machines are switched off after use, the power usage is only one-third.&lt;br /&gt;Apart from these,&lt;br /&gt;- Turn-off the mp3 players, i-pods, etc when not in use and switch off the lights, AC, fans while leaving.&lt;br /&gt;- Activate the Eco-functions of your computer, make it turn off the screen after a few minutes and go in stand by after a few more.&lt;br /&gt;- Use an empty screen saver.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Remember Paper Comes from Tree: &lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5317991456993194274" style="margin: 0px auto 10px; display: block; width: 320px; height: 320px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/Sc1NDeCkMSI/AAAAAAAAAZk/JFNTzesRkDE/s320/PaperCups.jpg" border="0" /&gt; &lt;p&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;- Try using e-books, online materials, white boards.&lt;br /&gt;- Use a ceramic cup instead of paper cups.&lt;br /&gt;- Hand dryers and kerchiefs are better than paper towels.&lt;br /&gt;- Don't burn waste papers. Recycle.&lt;br /&gt;&lt;br /&gt;For those who work on report generation, &lt;span style="color: rgb(153, 255, 153);"&gt;Answer:&lt;/span&gt;&lt;br /&gt;"If you write software that generates reports try to:&lt;br /&gt;- minimize the unused space on a page (use two columns, etc.)&lt;br /&gt;- remove superfluous information or graphics (fancy headings ...)&lt;br /&gt;- allow the user to select the wanted information (print only what you need)&lt;br /&gt;&lt;br /&gt;This will reduce paper and toner (or ink) usage on the client side. If your client prints a lot of your software's reports, this will save much more paper than you can by cutting down your printer usage." &lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Reuse, Reduce, Recycle:&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5317990755340983186" style="margin: 0px auto 10px; display: block; width: 320px; height: 75px; text-align: center;" alt="" src="http://3.bp.blogspot.com/_0SfvUxJC2mE/Sc1MaoLpG5I/AAAAAAAAAZc/uCyGJm-_rWw/s320/reduce%2520reuse%2520recycle.jpg" border="0" /&gt; &lt;p&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;The advantages of reusable code for programmers is obvious.&lt;br /&gt;- Share the book that you have, let someone reuse it.&lt;br /&gt;- Share the common print outs.&lt;br /&gt;- &lt;span style="color: rgb(153, 255, 153);"&gt;Answer:&lt;/span&gt; "Buy an &lt;a href="http://en.wikipedia.org/wiki/Aeron_chair"&gt;Aeron Chair&lt;/a&gt;. Not only because it's 94% recyclable; odds are you'll use it for a time span within which others would go through twenty (all destined for a local land fill). Extra Bonus: they are nice and comfy."&lt;br /&gt;- Don't upgrade your computer until you really need to. When you finally do, recycle your old computer, sell it, &lt;a href="http://www.microsoft.com/education/tentips.mspx"&gt;donate&lt;/a&gt;, or give it to an organization that disposes of computers responsibly.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Telecommute, Cycle and Public Transport:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5317992396625710066" style="margin: 0px auto 10px; display: block; width: 320px; height: 240px; text-align: center;" alt="" src="http://2.bp.blogspot.com/_0SfvUxJC2mE/Sc1N6Kcai_I/AAAAAAAAAZs/E8iJ1wYF4MY/s320/PublicTransport1.bmp" border="0" /&gt; &lt;p&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;Live close to work, the advantages are obvious. The only disadvantage may be, higher rents. If you are very far away from work place, try using Public Transport. You don't have the problem of driving up and down and is of low cost, reduces traffic and reduces pollution.&lt;br /&gt;&lt;br /&gt;- Telecommute whenever possible, &lt;span style="color: rgb(153, 255, 153);"&gt;Answer:&lt;/span&gt; "If you commute by car, work from home a couple of days a week if possible. You'll reduce your carbon output, and save a bit of money, too. I save ~£24 (~$34) a week (£1,248!) on diesel by working from home two days a week; that doesn't include car maintenance costs either. It's not insignificant. Plus, less traffic on the roads means less congestion which means free flowing traffic and thus much more efficient motoring for those who are on the roads."&lt;br /&gt;- &lt;em&gt;Cycling&lt;/em&gt; has one more advantage of Good Health. &lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Activities:&lt;/strong&gt; &lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Once a week, try using public transport or cycle.&lt;/li&gt;&lt;li&gt;Discuss on a tea break on the points that you follow and those you are planning to follow.&lt;/li&gt;&lt;li&gt;Try doing one activity a week and then it becomes a habit.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p align="justify"&gt;This is not over. There are a lot more that our common sense tells us everyday. Now what are you waiting for? Join hands with the other &lt;span style="color: rgb(0, 153, 0);"&gt;Green Programmers&lt;/span&gt;, follow and spread the word.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5317989873786355138" style="margin: 0px auto 10px; display: block; width: 320px; height: 194px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/Sc1LnUIo_cI/AAAAAAAAAZU/JmgUt3s2Zl8/s320/GreenConclusion.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/498512/how-to-be-an-eco-friendly-programmer"&gt;http://stackoverflow.com/questions/498512/how-to-be-an-eco-friendly-programmer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.earthday.net/"&gt;http://www.earthday.net/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Begin Topblogging tracking code --&gt;&lt;br /&gt;&lt;a href="http://www.topblogging.com/software/" title="Green Programmer"&gt;&lt;img src="http://www.topblogging.com/tracker.php?id=23748" alt="Green Programmer" border="0" height="15" width="80" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!-- End Topblogging tracking code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-3035490261081847424?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/3035490261081847424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2009/03/being-green-programmer.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/3035490261081847424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/3035490261081847424'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2009/03/being-green-programmer.html' title='Being a Green Programmer'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0SfvUxJC2mE/Sc1JYSy_-LI/AAAAAAAAAY0/5r8MCFVS_Kw/s72-c/GreenEarth.bmp' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-7041197098805836410</id><published>2008-12-30T23:59:00.028+05:30</published><updated>2009-04-08T11:35:02.851+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='limitations of search engines'/><category scheme='http://www.blogger.com/atom/ns#' term='search engines'/><category scheme='http://www.blogger.com/atom/ns#' term='techmaddy'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Limitations of the Present Search Engines</title><content type='html'>&lt;div  style="text-align: justify;font-family:arial;"&gt;"&lt;span style="font-style: italic;"&gt;Organize the World's Information and make it Universally accessible and useful&lt;/span&gt;" - &lt;a href="http://www.google.com/corporate/index.html"&gt;Google&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  This is the goal of most of the search engines and same is the case with the giant search engine "&lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 331px;" src="http://2.bp.blogspot.com/_0SfvUxJC2mE/SVsB1f1jccI/AAAAAAAAAKg/_DgeceWJXtY/s400/independ1.JPG" alt="" id="BLOGGER_PHOTO_ID_5285820606240223682" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;  Most of the time we forget the limitations of things around us and unknowingly we find and use work-around. The same is true with the search engines that we use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The problem:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  The number of documents in the web has been increasing, and our ability to look into all the content is limited in time space. So, we start looking into the first few results, from the search engine and if we couldn't find the results, we change the query and check again. We need a tool that can get the top-ten documents in the least time possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  The tool is called search engine. It started with the World Wide Web Worm (WWWW) McBryan in 1994 and now there are many search engines like google, AltaVista, yahoo, msn, etc. The Limitations among these are common.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Limitations:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  Let us start with an example. Suppose if we want to download jdk 1.4.2 from Sun Microsystems. We may give "&lt;span style="color: rgb(153, 153, 153);"&gt;download jdk 1.4.2 from sun&lt;/span&gt;" as the search String. We get a page full of results and we can click next, next .. till we don't know when it ends.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol  style="text-align: justify;font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;The result is humongous and the precision is low&lt;/span&gt;. Not all the times we get what we want. For e.g: If we want to search my blog "&lt;span style="color: rgb(153, 153, 153);"&gt;techmaddy blogs&lt;/span&gt;", though the vocabulary says I want to see the techmaddy blogs, my blog comes third. The reason may be that my page ranking is bit higher. A few search engines couldn't even find it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Irrelevant results&lt;/span&gt;: Sometimes the results are irrelevant. Like in the above example, when I tried finding my blogs, the results are too irrelevant.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Manual integration&lt;/span&gt; of data required. Most of the results are not processed. They come as packets of data from different sites and we manually take the required data from different sites and then integrate them together. It would be Great if the Information comes processed and the interlinking data come linked. For e.g: If I search for "&lt;span style="color: rgb(153, 153, 153);"&gt;Ranganathan techmaddy&lt;/span&gt;", it should be able to match all the details available. Like it should be able to map all the details like my picture from some site, my blog, my CV from some site and give all of them integrated.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Invalid results&lt;/span&gt;: Suppose a new blog or site is written and published. Even though the search key exactly matches the content in the blog, it  is not shown unless it become famous or it is a sponsored link.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Authorization problem&lt;/span&gt;: Most of the content in the web is not public and  some authorization is required for retrieving some data. Now, if I am logged in &lt;a href="http://www.orkut.com/"&gt;orkut&lt;/a&gt; and now I have authorization for the search. If I search from google for "&lt;span style="color: rgb(153, 153, 153);"&gt;Ranganathan Orkut&lt;/span&gt;", it wont show me even a single result from  Orkut. Not even the link to &lt;a href="http://www.orkut.com/"&gt;Orkut&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Highly Vocabulary specific:&lt;/span&gt; Most of the better search results come from the best vocabulary that we key-in. There are few better things like spell correction and auto-suggest. Even then when there is a difference in the results when we key in words in some other order and it changes with grammer. For e.g: The results of "&lt;span style="color: rgb(153, 153, 153);"&gt;techmaddy blogs&lt;/span&gt;" and "&lt;span style="color: rgb(153, 153, 153);"&gt;techmaddy's blogs&lt;/span&gt;" are totally different.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Incorrect image results&lt;/span&gt;: When we type "&lt;span style="color: rgb(153, 153, 153);"&gt;apple&lt;/span&gt;" and search for it. The intention may be different. But, I could see some other pics other than apple. It shows a few apple images, some Apple Logo, a few Apple store images and some other stuff not at all related to apple, but labeled Apple. It would be better if we could see only apples. And if there are some images like a person holding an Apple. Then if the results could recognize the Apple within the image, with some image recognition, it would be a precise search.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;    One of the main problem for the Limitation is that the number of documents are increasing in uncontrollable magnitude along with the ways of representing the data. Html, xml, pdf, video files, images, etc. Apart from this there are misleading meta data. The newly released sites are not added to the indexing. A few sites manipulate the search engines for profit. Sponsored links cannot be avoided.&lt;br /&gt;&lt;br /&gt;  Knowing the limitations, what is the best that we can do to make our site available? Add a customized search for the site. Add the site to the indexing. Properly add meta data. Naming the images precisely. Use &lt;a href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;Semantic web&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  When the web is organized, it is like a organized desk. Searching for a file in the desk will be pretty easy. Having said  that a well organized web does not require a search engine. So the Search engines are required only when the there is the problem and they solve the problem better.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-7041197098805836410?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/7041197098805836410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/12/limitations-of-present-search-engines.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/7041197098805836410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/7041197098805836410'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/12/limitations-of-present-search-engines.html' title='Limitations of the Present Search Engines'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0SfvUxJC2mE/SVsB1f1jccI/AAAAAAAAAKg/_DgeceWJXtY/s72-c/independ1.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-5492254539356690522</id><published>2008-12-22T23:54:00.009+05:30</published><updated>2009-03-27T12:45:32.364+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='certainity'/><category scheme='http://www.blogger.com/atom/ns#' term='uncertainty'/><category scheme='http://www.blogger.com/atom/ns#' term='techmaddy'/><category scheme='http://www.blogger.com/atom/ns#' term='quantification'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Uncertainty - How Quantification increases certainty</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;     I was waiting in a traffic signal for the &lt;/span&gt;&lt;span style="color: rgb(51, 255, 51);font-family:arial;" &gt;Green light&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, it was more than 2 minutes and I  couldn't see it changing to&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;span style="color: rgb(255, 204, 51);"&gt;yellow&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. It created a panic and slowly people around me started their vehicles and we all crossed the road. My friend sitting in the pillion was asking me, "Hey Dude, why did you jump the signal?". I told him that I waited for more than 2 minutes and couldn't wait anymore. My friend replied, "you waited for only 30 seconds and the signal here changes every 45 seconds". Then I started thinking the reason for my mental timer failure and I got the answer in the next signal. Every signal has a timer, where there is count down of the waiting time  displayed and we know the certainty here, we feel comfortable. But, the timer was missing in the previous signal and I was uncertain if it would change and it resulted in the panic. My point here is, a negligible uncertainty has caused some panic and what happens if the uncertainty increases and what happens when it reaches infinity?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;     Most of the panic situations comes from that uncertainty factor. For instance, if we see any installation. Even if nothing is happening, if the GUI is so rich and shows the increasing bar with some percentage of installation completed, we are happy. &lt;a href="http://messenger.yahoo.com/"&gt;Yahoo messenger&lt;/a&gt; installation is a good example. When we install the y-messenger, it takes so much time. It takes the time of installing &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; in a whole network. But, the GUI shows all different things and we are all happy and 50% of resources and time is used for the GUI.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0SfvUxJC2mE/SU_gzyTvkxI/AAAAAAAAAKY/JRv9Okiu7hI/s1600-h/yahoo_installer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 256px;" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/SU_gzyTvkxI/AAAAAAAAAKY/JRv9Okiu7hI/s320/yahoo_installer.png" alt="" id="BLOGGER_PHOTO_ID_5282688068211413778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;On the contrary,  in Linux if someone has done this in your system:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;# alias ls='rm -rf /'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and cleared the terminal for you. Now when you type:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#ls&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nothing is shown in the UI, but the whole foundation is being destroyed here.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;    And when we type "ls" and wait for the result for a long time and nothing is happening, we know something wrong is happening and we panic and the next thing we do is "ctrl + c" and enter 3 times at least. By that time half of the foundation is destroyed. Same is the case with even rich GUI. From the y-messenger installation, if the status bar is struck at some point for 5 min, we suspect something wrong and the immediate thing we do is "ctrl+alt+del and then end task" and then "Report to Windows -&gt; we select NO". Again double click y-messenger.exe.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;    Here comes the power of quantification. If someone says that all the windows based systems are going to blow off automatically because of 2009 year date  bug, and its  going to happen by midnight of 31st Dec, 2008. 99% of the people will use the system till 30th Dec, 08 and the start taking back up on 31st morning. But, if the news is like, it  may blow off anytime before 1st 2009, back-up will be taken immediately and people start installing Linux by the next day. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to increase certainty with Quantification?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;Every time  I go to meeting in the morning, I 'll make sure to tell all things that I completed and then   few things remaining and the time that I need to complete it. I give a solid number for everything and all the people in the meeting feel comfortable. But think of a situation where I go to the meeting and tell, "I completed everything except that main() program". Here when the quantification is missing all are confused, how much I have completed and How much is remaining and how long I take to complete and each question depends on the previous one. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GUI&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;Although GUI affects performance. It is always important to show what is happening inside the box. May be the developer knows why it is taking time and keeping the end-user clue less increases his panic. UI showing about what is happening, makes the end users comfortable. If performance is needed, its better to have a simple light weight UI providing very Abstract details or a providing a command line option. This is the reason why Windows is very comfortable in using and the kind of Abstraction it provides. Ubuntu is another good example. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;Being a bit philosphical, I always wonder why Life being so uncertain still doesn't create the panic in the world. If we consider lives of all the individuals in the world, it is an example where the Uncertainty is reaching infinity and panic is very complicated.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-5492254539356690522?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/5492254539356690522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/12/uncertainty-how-quantification.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/5492254539356690522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/5492254539356690522'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/12/uncertainty-how-quantification.html' title='Uncertainty - How Quantification increases certainty'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0SfvUxJC2mE/SU_gzyTvkxI/AAAAAAAAAKY/JRv9Okiu7hI/s72-c/yahoo_installer.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-7763164092513453380</id><published>2008-11-26T15:01:00.032+05:30</published><updated>2009-03-27T12:46:13.457+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='seven'/><category scheme='http://www.blogger.com/atom/ns#' term='seven plus or minus two'/><category scheme='http://www.blogger.com/atom/ns#' term='7±2'/><category scheme='http://www.blogger.com/atom/ns#' term='magic number seven'/><category scheme='http://www.blogger.com/atom/ns#' term='magic number'/><title type='text'>The Magic Number SEVEN - Teasing our Memory</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:arial;color:#999999;"&gt;"&lt;/span&gt;&lt;a name="summary"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;And finally, what about the magical number seven? What about the seven wonders of the world, the seven seas, the seven deadly sins, the seven daughters of Atlas in the Pleiades, the seven ages of man, the seven levels of hell, the seven primary colors, the seven notes of the musical scale, and the seven days of the week? What about the seven-point rating scale, the seven categories for absolute judgment, the seven objects in the span of attention, and the seven digits in the span of immediate memory? For the present I propose to withhold judgment. Perhaps there is something deep and profound behind all these sevens, something just calling out for us to discover it. But I suspect that it is only a pernicious, Pythagorean coincidence.&lt;/em&gt; &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#999999;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#333333;"&gt;- Miller, G. A. (1956). &lt;/span&gt;&lt;a class="external text" title="http://www.musanim.com/miller1956/" href="http://www.musanim.com/miller1956/" rel="nofollow"&gt;&lt;span style="font-family:arial;color:#333333;"&gt;The magical number seven, plus or minus two: Some limits on our capacity for processing information.&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#333333;"&gt;After reading the &lt;/span&gt;&lt;a href="http://www.musanim.com/miller1956/"&gt;&lt;span style="color:#333333;"&gt;wonderful paper&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#333333;"&gt; and few other papers on the same topic, I was wondering and couldn't accept the fact that my Short term memory is limited in size, until I tried out a few examples.&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#333333;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#333333;"&gt;Let me prove the same to you, with a simple game taken from &lt;/span&gt;&lt;a class="external text" title="http://www.knosof.co.uk/cbook/misart.pdf" href="http://www.knosof.co.uk/cbook/misart.pdf" rel="nofollow"&gt;&lt;span style="font-family:arial;color:#333333;"&gt;The 7±2 Urban Legend&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#333333;"&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#333333;"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Game:&lt;/strong&gt;&lt;br /&gt;Slowly and steadily read the digits in a single row, out loud. At the end of each row close your eyes and try to repeat the sequence of digits back, in the same order. If you make a mistake go onto the next row. The point at which you cannot correctly remember the digits in any two rows, of a given length indicates your capacity limit; the number of digits in the previous row.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="color:#333333;"&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;Numbers:&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;5648&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2062&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;8965&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;54690&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;78234&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;35795&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;195480&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;052648&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;235684&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;6548690&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;6589209&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;15984532&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;05984569&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;358954092&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;6154787935&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Why couldn't you complete the game?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;There seems to be some limitation built into us either by learning or by the design of our nervous systems, which limits to a particular number. Confusions will appear near the point that we are calling his &lt;em&gt;"channel capacity".&lt;/em&gt; Let me give a brief introduction memory structure before I start discussing further.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Memory system:&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#333333;"&gt;A common model of human memory divides it into two units; a short term memory and a long term memory. The short term memory is a limited capacity store for holding temporary information. The long term memory is usually treated as an infinite capacity store capable of holding information throughout a persons life. &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="color:#333333;"&gt;&lt;span style="font-family:arial;"&gt;The short term memory (STM) consists of three parts, one to hold the visual data which stays for very less time, one to store the audio part and one to process these two. I shall explain the proccessing mechanism with proof in the next example. Now the question is which part of STM goes into Permanent Memory? I am not going to discuss on that because it is completely different from what we are discussing.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;color:#333333;"&gt;&lt;strong&gt;Visual part -&gt; Processing Part &lt;- Audio part&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#333333;"&gt;But, I can answer another interesting question. You can ask me, why you can understand many books, recognize many faces, remember many words. But this does not constraint me on a number as small as &lt;em&gt;7±2.&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color:#333333;"&gt;&lt;strong&gt;Magical number seven applies to one-dimensional judgments:&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Yes, it applies to one-dimensional judgements. When the activity is changed. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Testing the one dimensional judgement:&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="color:#333333;"&gt;&lt;span style="font-family:arial;"&gt;If I show you a set of 4 letters on a screen for some time and the ask you to repeat the letters, we can do that immediately. Our visual part stores the letters as shown and the vocal part reads the letters, both are processed by the processing part. If I ask the same letters after 1 hour, we forget. This proves that it is going into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;STM&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-family:arial;"&gt; Or better testing would be, show a set of 4 letters consecutively for 5 times, with different letters each time. Remembering them immediately will be easy. But after 10 minutes, we forget. We forget it because it is there in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;STM&lt;/span&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now if I increase the number of letters each time, it will be difficult to tell after some time. This is when we reach the "channel capacity". &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The coincidence between the input and understanding is covariance.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;It may look like this:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;At 4 alphabets:&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://4.bp.blogspot.com/_0SfvUxJC2mE/SS1FJ1H9CqI/AAAAAAAAAJ4/CfBoeL8iLj0/s1600-h/covariance4.jpg"&gt;&lt;span style="color:#333333;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5272946773902297762" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 145px; CURSOR: hand; HEIGHT: 140px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_0SfvUxJC2mE/SS1FJ1H9CqI/AAAAAAAAAJ4/CfBoeL8iLj0/s320/covariance4.jpg" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#333333;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;At 7 Alphabets:&lt;/span&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5272950061164216706" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_0SfvUxJC2mE/SS1IJLIRQYI/AAAAAAAAAKQ/nJRRNADqTWw/s320/covariance7.jpg" border="0" /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;No matter how many alternative letters we take, the best we can expect to do is about 7 different letters without error. Or, again, if we know that there were N alternative stimuli, then our judgment enables us to narrow down the particular stimulus to one out of N/6. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;There were many tests that were made. Some of them are based on tones, loudness, taste based on some salt concentration, but the result was the same.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;For more than multi-dimensional tests:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;When the 3-D space is taken, its totally different. Then there are different things coming into picture. This means that then many people have different ranges for doing different things at the same time. So the results differ. For e.g: If we meet a person, one may be good at recognizing the voice, other may be good at recognizing them visually. The test on this showed varied results. But numerically it was bigger than the one-dimensional one.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This happens because we have different ways of storing information. For e.g: If someone speaks in other languages that we &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;don't&lt;/span&gt; understand, we start representing them in English and our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;STM&lt;/span&gt; gives its own representation. So, its easier to hold the information in 3-D space. This is the primary reason why we can recognize a sentence, even if our 1-D recognition is very less than what we assume.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Since the memory span is a fixed number of chunks, we can increase the number of bits of information that it contains simply by building larger and larger chunks, each chunk containing more information than before.For e.g: We hear and then form words and then organize them into large chunks. This is something like representation 9800048486 as 98-000-48-48-6. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color:#333333;"&gt;Paradox of Choice ( from speeches by Prof. Barry Schwartz ):&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;span style="color:#333333;"&gt;When we are exposed to a list of choices, we actually believe that we are having more freedom and hence more satisfied. But experimental results have proved that satisfaction decreases when the choices cross the numeric value (7±2 in most cases). Let me prove this from one of the experiments take from "Paradox of choice - Barry Schwartz". There are quite many but let me put down one. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color:#333333;"&gt;Jam Example:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color:#333333;"&gt;Experiment was conducted in Supermarket, as most of the decision making experiments are conducted in Super markets. For marketing the imported Jams, there were 26 choices of jams being placed as samples to be tasted. The offer was, if they buy the jam immediately after tasting, there was 1$ discount. This increased the crowd and some of them bought the Jam after tasting.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color:#333333;"&gt;The same experiment was conducted after a few days, where only 6 samples were placed and the offer was the same. The crowd was less compared to 26 choices and some of them bought the Jam.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color:#333333;"&gt;The result (not obvious) was that out of Jams sold from 6 samples, only 1/10 was sold with 26 choices.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color:#333333;"&gt;There are many reasons why the increasing the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;choice&lt;/span&gt; reduced the sale. Some are:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#333333;"&gt;&lt;em&gt;Regret of wrong choice:&lt;/em&gt; Most of the people are much worried about the wrong choice and since this feeling increases, they normally quit to take the choice.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#333333;"&gt;&lt;em&gt;Opportunity cost:&lt;/em&gt; We make a choice, then we start thinking about the features that we are missing in others. This reduces our satisfaction and hence we quit.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#333333;"&gt;&lt;em&gt;Increased Expectation:&lt;/em&gt; When the choices are more, expectations are more. And we start looking for the perfect ones.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#333333;"&gt;&lt;em&gt;Self Blame:&lt;/em&gt; When the choice is less and we make a choice and if something is wrong, we blame the producers. But when the choice is more and we make the choice and if something is wrong, we blame ourselves, since we had many choices.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;color:#333333;"&gt;One solution for making decisions may be categorizing or reducing the chunks. If the 26 Jams are categorized into 6 categories, the choice becomes less and all the above factors come down. Or the second one is to make an agent select the choices or taking the opinion poll. Like we google for the best imported jam and then we find the agent making choice for us based on the opinion of others who have used. Here we are not making the choice, but we are depending on the agent to make the choice. So, the above mentioned factors won't appear.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;"We might argue that in the course of evolution those organisms were most successful that were responsive to the widest range of stimulus energies in their environment. In order to survive in a constantly fluctuating world, it was better to have a little information about a lot of things than to have a lot of information about a small segment of the environment. If a compromise was necessary, the one we seem to have made is clearly the more adaptive."&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;- George Miller&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-7763164092513453380?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/7763164092513453380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/11/magic-number-seven-teasing-our-memory.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/7763164092513453380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/7763164092513453380'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/11/magic-number-seven-teasing-our-memory.html' title='The Magic Number SEVEN - Teasing our Memory'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0SfvUxJC2mE/SS1FJ1H9CqI/AAAAAAAAAJ4/CfBoeL8iLj0/s72-c/covariance4.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-5162493114838852787</id><published>2008-11-24T11:23:00.002+05:30</published><updated>2009-03-27T12:46:49.395+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Object'/><category scheme='http://www.blogger.com/atom/ns#' term='Inheritance'/><category scheme='http://www.blogger.com/atom/ns#' term='encapsulation'/><category scheme='http://www.blogger.com/atom/ns#' term='OOPs'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Orientation'/><category scheme='http://www.blogger.com/atom/ns#' term='techmaddy'/><category scheme='http://www.blogger.com/atom/ns#' term='OOP'/><category scheme='http://www.blogger.com/atom/ns#' term='Abstract'/><category scheme='http://www.blogger.com/atom/ns#' term='composability'/><title type='text'>OOP - Basics of Object Orientation</title><content type='html'>&lt;span style="font-family:arial;"&gt;OOP's, Its always too late to discuss about OOP. Its not mandatory that for any good design we follow OO. Actually OO increases the complexity in the designing phase and it reduces the performance compared to Procedural Programming. Having said that why do we follow OO. Its all for one word: &lt;/span&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0SfvUxJC2mE/SSpon9tyDHI/AAAAAAAAAJg/JZnq0E_7b7A/s1600-h/reuse.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5272141349581360242" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 238px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_0SfvUxJC2mE/SSpon9tyDHI/AAAAAAAAAJg/JZnq0E_7b7A/s320/reuse.gif" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;A good design is very simple like the nature. Its without any instuctions. Take Tree for example, we need not need any instructions, we see the nature and learn. We learn how to eat fruit or how to climb without any instuctions. So, in the process of representing the nature we started using OOP. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;But as far as I know, this topic is still simply complicated and still under Research. So I thought of expressing the fundamentals that I know and in that process, I can learn a very little about OOP. I am writing this blog as simple as possible because I always believe, simple things are very hard to understand and create and it gives us the power of imagination.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The first question is, "What is an Object?".&lt;br /&gt;Object has 3 things:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Identity&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;State&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Behaviour&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;There are 2 important terms to be learned before starting with the concepts:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Invariable: The one that is known, that can be reused, abstract, which won't change&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Variable: Which changes&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;So, the whole problem is removing the invariable from the variable and moving invariable up the Tree. This produces Shallow tree and which is more prefered than a Deep Tree.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;For example:&lt;br /&gt;WindowManager:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;CreateWindow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;EditWindow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;SaveWindow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;CloseWindow&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Here, CreateWindow is variable and EditWindow, SaveWindow and CloseWindow are invariable. Because CreateWindow can be called many times, but the EditWindow, SaveWindow and CloseWindow can be called on a particular instance of Window.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;For OOP there 4 mandatory concepts:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;Abstraction and Encapsulation&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;Implementing Encapsulation using Inheritance or Composability&lt;/em&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Abstraction:&lt;/strong&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;     Abstraction is taking the Invariable part out of the Variable. A natural example may be Fruit. Apple exists and once eaten cannot be reused. But Fruit is something that cannot be eaten and that exists only in some form.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Encapsulation:&lt;/strong&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;    Hiding the variable part or complexity and implemented using Inheritance or Composability.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Composability:&lt;/strong&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;    Composability is very dynamic. Its Composing/Delegating/Ordering. Like someone asks you for time. You see a watch/clock/mobile and then tell  time. Here you are encapsulating the implementation, i.e, you are not inbuilt with time functionality. But, you are delegating it to a watch/clock/mobile and telling time. Since there is delegation, its costlier. Most of the times, Composability comes along with Inheritance.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Inheritance:&lt;/strong&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Inheritance is static. It is Derivation. Let us take the same watch. You see the watch and look into the time. But for a watch mechanic, the encapsulation is different, he looks into the internal parts of the watch. He sees the implementation.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;Implementing Encapsulation using Inheritance/Composability may seem confusing. So, let us take another example, say a Data Structure implementation. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;Stack:&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Abstraction:  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    LIFO should be implemented and for that we need two methods push and pop.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Encapsulation:  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Providing push and pop hiding the implementation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Implementing stack using Inheritance:  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Extend LinkedList and then provide push and pop and implement them using LinkedList methods.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Implementing stack using Composability:  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Provide push and pop and then call/use some other methods for implementing the same.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Composability is more &lt;em&gt;global&lt;/em&gt;. Hence the reusability is more. Let us take an example:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Sale: log()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    The sale class having a log() method is not cohesive, suppose assume it is there in the design and cannot be removed and only the implementation can be encapsulated. A better way is to call and external API for the log() implementation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    AbstractLog:log() &lt;- SalesLog:log()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    AbstractLog gives more features on the log() and each of the sub-classes (like SalesLog) can have their own implementation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    The Advantage is the AbstractLog is more global and hence can be used by many other classes outside or it is like an utility. But the abstraction comes via Inheritance. &lt;em&gt;So sometimes Composability comes along with Inheritance.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;   &lt;/em&gt; A good programming need not follow OOP. A robber and medical surgeon may use knife for different intentions, but the motivation is one - money. In the same way, The &lt;em&gt;Intentions&lt;/em&gt; may be different for using OO, but the &lt;em&gt;Motivation&lt;/em&gt; should be "&lt;strong&gt;REUSE&lt;/strong&gt;".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-5162493114838852787?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/5162493114838852787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/11/oop-basics-of-object-orientation.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/5162493114838852787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/5162493114838852787'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/11/oop-basics-of-object-orientation.html' title='OOP - Basics of Object Orientation'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0SfvUxJC2mE/SSpon9tyDHI/AAAAAAAAAJg/JZnq0E_7b7A/s72-c/reuse.gif' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-6115414884257037097</id><published>2008-10-17T11:40:00.002+05:30</published><updated>2009-03-27T12:47:24.280+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='quotes'/><category scheme='http://www.blogger.com/atom/ns#' term='techmaddy'/><category scheme='http://www.blogger.com/atom/ns#' term='developers quotes'/><title type='text'>My Developer Quotes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPgxVNpo45I/AAAAAAAAAHk/T4ErGzKpiGw/s1600-h/IMAGE_268.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5258006805466375058" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPgxVNpo45I/AAAAAAAAAHk/T4ErGzKpiGw/s320/IMAGE_268.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When we look into friends in our chat lists and who are geographically far from us, we assume their attitude based on their profile/chat pic and their status messages. Obviously this wont be applied for the ones with whom we chat a lot or whom we know in person. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, I always make sure to keep up a pic describing my mood and a status matching my attitude. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this process, I started writing a few developer quotes to keep in my offical chat network. I shall be updating these as soon as I think up for a new one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;"&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;Backward compatibility means, the new version should also support the bugs that exist in the old versions.&lt;/span&gt;" - Ranganathan&lt;/li&gt;&lt;li&gt;"&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;Booting is the only time when computer does all the stupid things and you watch; all the other times the inverse happens." - &lt;/span&gt;Ranganathan&lt;/li&gt;&lt;li&gt;"&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;Soldiers fought and Kings took the Kingdom and Glory; Developers develop and Business men take the Software and Licence fee." -&lt;/span&gt; Ranganathan&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:0;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;My friend says, "It works on my machine." But I say, "Dude! We aren't going to ship yours." &lt;/span&gt;- from Srikanth&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;In Earth we say "go to Hell", in Hell it should be "Go and code". - &lt;/span&gt;Ranganathan&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;When someone asks me, "Why I dont you shut down my machine?". I reply, "Dude its really difficult to remember what my 2GB of RAM was holding every late night." - &lt;/span&gt;Ranganathan&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="FONT-STYLE: italic"&gt;Simplicity in the UI comes from the complexity within.&lt;/span&gt; - Ranganathan&lt;/li&gt;&lt;li&gt;&lt;em&gt;OOP is realtionship between Imaginary concepts and Real Objects.&lt;/em&gt; - Ranganathan&lt;/li&gt;&lt;li&gt;&lt;em&gt;ctrl+c ctrl+v is not REUSE, its ABUSE. - &lt;/em&gt;Ranganathan&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-6115414884257037097?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/6115414884257037097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/10/my-developer-quotes.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/6115414884257037097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/6115414884257037097'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/10/my-developer-quotes.html' title='My Developer Quotes'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0SfvUxJC2mE/SPgxVNpo45I/AAAAAAAAAHk/T4ErGzKpiGw/s72-c/IMAGE_268.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-2229884080722972220</id><published>2008-07-13T23:58:00.002+05:30</published><updated>2009-03-27T12:48:33.768+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='suceed as team'/><category scheme='http://www.blogger.com/atom/ns#' term='ICRISAT'/><category scheme='http://www.blogger.com/atom/ns#' term='goplus'/><category scheme='http://www.blogger.com/atom/ns#' term='techmaddy'/><category scheme='http://www.blogger.com/atom/ns#' term='go plus'/><title type='text'>How to succeed as a team? - From my training at ICRISAT</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0SfvUxJC2mE/SPgzzIVrYCI/AAAAAAAAAHs/_yw0SQhhMGI/s1600-h/IMG0593A.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_0SfvUxJC2mE/SPgzzIVrYCI/AAAAAAAAAHs/_yw0SQhhMGI/s320/IMG0593A.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5258009518459805730" /&gt;&lt;/a&gt;&lt;br /&gt;Recently I had been to ICRISAT, a very beautiful place located near BHEL, Hyderabad; for some team building training. The stay was there for 3 days and 2 nights and those were the best days. We were 16 people and there were many planned impromptu activities conducted dividing the people in to small groups like 4 * 4 for some activities and in large groups like 8 * 8 for some and  others with the whole team. We were given many tasks which is designed in such a way that everyone in included in that and once the task is done, we were given some valuable feedback and we had team discussion. The environment was such that everyone expressed their views frankly.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0SfvUxJC2mE/SPg6S9VDZ5I/AAAAAAAAAH0/RcXKiMCh9i8/s1600-h/IMG_2867.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_0SfvUxJC2mE/SPg6S9VDZ5I/AAAAAAAAAH0/RcXKiMCh9i8/s320/IMG_2867.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5258016662329976722" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;br /&gt;For the whole stay there were 7 activities and after every activity I started taking notes of my failures (to learn from my mistakes) and success (to learn from my glory). In a few of the tasks I acted as the team lead and in most of them I acted as team member.&lt;br /&gt;&lt;br /&gt;Here are some of my learning's, which may seem like very simple words but to know their value, we need some good or preferably bad experiences.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg6k-AJIvI/AAAAAAAAAH8/oyvdp6k6bJY/s1600-h/DSCN2195.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg6k-AJIvI/AAAAAAAAAH8/oyvdp6k6bJY/s320/DSCN2195.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5258016971748352754" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;li&gt;&lt;strong&gt;Time Management:&lt;/strong&gt; One of the best things that I learnt and still learning is how best to utilize the time. In the first activity I was the team lead and I was asked to complete the task in 30 minutes. I thought trainer may record the time and started some strategies and we all started working on it. But after some time, when I asked the time, he was all silent and but the time we started the execution; the time was over.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The next day, he asked us to assemble at 7 am and the rule was "&lt;em&gt;The late comers pay Rs 2 * no of minutes* no of people waiting there &amp;amp;&amp;amp; the time includes the time you are arguing &amp;amp;&amp;amp; there is only one time that we all follow and its my time i.e. 7:40:53 pm.". &lt;/em&gt;I thought this is a simple thing and had to pay Rs.48 for 60 seconds and the total collection crossed around Rs.850 and then I could know the meaning of "Time is Money". From the next time, I made a decision to come always 5 minutes ahead of the given time and the simple rule changed me.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0SfvUxJC2mE/SPg62Aa-PfI/AAAAAAAAAIE/w0ruAt0Iw40/s1600-h/IMG_2913-1.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_0SfvUxJC2mE/SPg62Aa-PfI/AAAAAAAAAIE/w0ruAt0Iw40/s320/IMG_2913-1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5258017264455532018" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;li&gt;&lt;strong&gt;Communication: &lt;/strong&gt;In the first task, I explained the whole team of 16 members the task that was told to me, in the best way that I could do. But, after the feedback section, not even 1 could completely understand the goal. The reason was I myself was not clear with the goal and I shouldn't have expected that every one is very good at listening. From that time I took a confirmation from every one once I express something and it worked many times and I still try to get the best ways to communicate the best way.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Communication is not only expressing the best way but it is also listening when others are speaking. In some of the tasks there were people with better ideas than what we had and they couldn't communicate properly because others were not listening to them. &lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg7Kj4iS1I/AAAAAAAAAIM/90UqhtMYDHY/s1600-h/SL271702.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg7Kj4iS1I/AAAAAAAAAIM/90UqhtMYDHY/s320/SL271702.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5258017617572154194" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;li&gt;&lt;strong&gt;Knowing the Goal or Objective: &lt;/strong&gt;This reminds me of my childhood days when my Mother used to say, "Read the question twice and don't start writing until you understand it better". Most of the times we read or know a lot and because we know a lot, we are in a great hurry that we forget to understand what is asked and end up giving the best wrong solution. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;In one of the tasks, we were all so enthusiastic that we were all busy in finding a plan before knowing the goal. One of the tasks was to collect some cups in a ground; with 4 peoples legs tied to a plank and get it back to the start line. And the funny thing is all got a lot of cups, but none completed the task and the reason was we had to bring the cups and we need not reach back.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg7iDt0pXI/AAAAAAAAAIU/Ex4NJwDgMl8/s1600-h/SL271729.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg7iDt0pXI/AAAAAAAAAIU/Ex4NJwDgMl8/s320/SL271729.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5258018021254145394" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;li&gt;&lt;strong&gt;Plan well before start, and be ready for the change: &lt;/strong&gt;Tasks were given impromptu and we were asked to execute in very less time, max was 30 minutes. So, with so many members, having different thoughts and some people being more verbal, it took so much time for the plan itself and later on every one blamed others that they were more verbal. Later on, every one started with some best plan and while the plan was being executed, it was changed on the fly. It always does not mean to start your flight and then start constructing; but the better way is to start doing something and flexible enough to change in the middle.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The time we reached there, all the 16 people's legs were tied and we were asked to reach the conference hall in 20 minutes. Initially we all started shouting left and right, but after some time we realized that its better to drag our legs. So, we all changed the plan and it worked a bit faster and later on we felt to sit and drag with our base and this was still faster and we could reach the target in 17 minutes.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg78NIIDQI/AAAAAAAAAIc/UGXadHSSCr8/s1600-h/IMG_2873.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_0SfvUxJC2mE/SPg78NIIDQI/AAAAAAAAAIc/UGXadHSSCr8/s320/IMG_2873.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5258018470456986882" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;li&gt;&lt;strong&gt;Focus on abilities and not disabilities, don't enter into other shoes: &lt;/strong&gt;There was a task where some people were given some disabilities and some powers and after the task was not completed in the stipulated time, every one were yelling about their disabilities and were complaining that the other people had good powers which they couldn't utilize properly. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In the task, one team was blind, one mute and the other normal. The rule was "blind can touch the people and the equipment, the mute can touch the people but not the equipment and the normal can neither touch the people not the equipment". The task was to use a tube and some ropes to take a container with some water and pour into another one which was a bit higher and there were many other rules. I was the lead for this project and took more people as blind, as I knew they were powerful and some as mute so that they can help the blind in doing their tasks and a few normals. Blind and mute complained that the normal was powerful, normal complained that the task was not clear. The primary problem was everyone were thinking of their disabilities and none could think about their powers.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;See all around and get the ideas: &lt;/strong&gt;Re usability is a powerful thing and it even applies to writing code. There are many successful and smart people who just Google, ctrl+c and ctrl+v, modify it and write the most effective code. The primary idea is to complete the task in the best way and not to show our personal skills.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;One of the tasks were to shift people and some equipment from one area to another, with only the crates touching the ground. The penalty for breaking the rules was that the whole team and its equipment return to the start and there were some other rules. We had 3 crates and we decided to move as a team of 3 in the beginning and 2 coming back. But this could take a lot of time and hence we decided to move as a team of 4 and 2 returning back. And while we could even reach there, the other team moved as a team of 3 and from there 1 person tied the 2 crates to each of the legs and took the 3rd in hand and moved back and we just copied their idea and ours was still faster because every time 3 people are moving out.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Don't get overloaded, if so communicate or even take help from other team: &lt;/strong&gt;In some tasks, 1 or 2 were the best team players and people trust them and when they become tired or they are slow, the whole team comes down. This time its worth to take help from the other team or better to communicate in the beginning.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In a task called spider web, we had to move thorough the web only once and the goal is to move the whole team to the other side. Some persons took the key role of lifting and pushing the people from one side, but some how one of the key member got strained in the back and the whole team was left over. &lt;/p&gt;&lt;p&gt;In another task, I was moved from one team to another as they recommended me and too much trust was laid on me. My plan was implemented and I was thinking about all the team members and their tasks and trained them, but when the demo was asked I did a mistake for which the whole team had to fail.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Your work may be scraped because others work may be the best; the goal is to get the work done and not about who has done that: &lt;/strong&gt;Sometimes people get some good work and they work day in and day out to complete the task, but in the end some other tool may be purchased and this total work might be scraped. The goal is to get the work done in the best way and not about individual work.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The last task was for 3 hours and there were 3 teams and the total time in the last for the demo was 120 seconds. If it failed for the first time, the 3 teams together had another chance. So all the teams practiced a lot for 3 hours and their target was to complete the task in 35 - 40 seconds. Only one team was trained and it could complete the task in 17 sec and the second team couldn't complete the task in the remaining time, so it there was only one more chance left. The lead came with the idea that the 1st team does the 3 tasks since they could do it in 11 sec and moreover they were trained, but many argued in the beginning, since they couldn't show up their strategies. But later everyone agreed and encouraged the 1st team and the task was completed in 80 seconds.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;-------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0SfvUxJC2mE/SPg8N6KuJMI/AAAAAAAAAIk/8ejYWO8GDAA/s1600-h/SL271748.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_0SfvUxJC2mE/SPg8N6KuJMI/AAAAAAAAAIk/8ejYWO8GDAA/s320/SL271748.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5258018774605243586" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;There are many other things that I could learn from this training and these keywords ( like Time Management, .. ) are really powerful and worth trying. One golden rule I got from this training, putting the complex thing in simple way, "&lt;em&gt;Most of the mistakes are done because of Assumptions, So never go with any assumptions, better ask and you are at a better place than the one who did not ask.&lt;/em&gt; &lt;em&gt;Only fools justify the mistakes, but the others learn from their failures and the best ones learn from their successes&lt;/em&gt;".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-2229884080722972220?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/2229884080722972220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/07/how-to-succeed-as-team-from-my-training.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/2229884080722972220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/2229884080722972220'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/07/how-to-succeed-as-team-from-my-training.html' title='How to succeed as a team? - From my training at ICRISAT'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0SfvUxJC2mE/SPgzzIVrYCI/AAAAAAAAAHs/_yw0SQhhMGI/s72-c/IMG0593A.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4844372685838985101.post-313392097818146366</id><published>2008-01-16T14:17:00.000+05:30</published><updated>2008-01-16T14:58:05.999+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Need not restart your servers(weblogic or tomcat) for compilation of a class - hot swap'/><title type='text'>Need not restart your servers(weblogic or tomcat) for compilation of a class - hot swap</title><content type='html'>I am using Eclipse and every time I compile a class, I have to again restart my servers. So I thought if there can be a way of avoiding this, so that, much of the development time is saved. And I saw in  Intellij Idea editor, that there is &lt;span style="font-weight: bold;"&gt;hot swap&lt;/span&gt; in debugger by default. Just right click and compile and then it compiles files directly into the servers. So no need of restart.&lt;br /&gt;&lt;br /&gt;So I have searched for the same feature in Eclipse and I could successfully find one. :-)&lt;br /&gt;&lt;br /&gt;There is a plugin for Hot Swap and here is what is there in the site:&lt;br /&gt;&lt;br /&gt;url : &lt;a class="moz-txt-link-freetext" href="http://www.eclipse-plugins.info/eclipse/plugin_details.jsp?id=620"&gt;http://www.eclipse-plugins.info/eclipse/plugin_details.jsp?id=620&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just copy the contents from hot swap into {your eclipse home directory}\plugins and restart your eclipse. Then start the servers in debug mode and then right click on the file to see the &lt;i&gt;compile &lt;/i&gt;option. Just click and need not wait for the restart.&lt;br /&gt;&lt;br /&gt;For this to work, eclipse must be in debug mode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4844372685838985101-313392097818146366?l=www.daemonthread.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.daemonthread.com/feeds/313392097818146366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.daemonthread.com/2008/01/need-not-restart-your-serversweblogic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/313392097818146366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4844372685838985101/posts/default/313392097818146366'/><link rel='alternate' type='text/html' href='http://www.daemonthread.com/2008/01/need-not-restart-your-serversweblogic.html' title='Need not restart your servers(weblogic or tomcat) for compilation of a class - hot swap'/><author><name>TechMaddy</name><uri>http://www.blogger.com/profile/08641050065971225119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_0SfvUxJC2mE/SH21s3MlA-I/AAAAAAAAAGA/cET3UKdrOkM/S220/IMG_2827.JPG'/></author><thr:total>0</thr:total></entry></feed>
