<?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-5434031919110451140</id><updated>2012-01-25T13:06:48.710+05:30</updated><category term='string'/><category term='nlp'/><category term='system'/><category term='download'/><category term='lsof'/><category term='LRM'/><category term='ai'/><category term='creating'/><category term='sv'/><category term='windows'/><category term='verilog'/><category term='ffmpeg'/><category term='subtitles'/><category term='character'/><category term='red hat linux'/><category term='eda'/><category term='termination'/><category term='watermark.dll'/><category term='blog'/><category term='null'/><title type='text'>Software Troubles and Troubleshooting</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default?start-index=101&amp;max-results=100'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>354</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1324992905459423894</id><published>2012-01-22T13:46:00.001+05:30</published><updated>2012-01-22T13:46:38.395+05:30</updated><title type='text'>Jailbreaking and deploying on iphone3gs using ios5</title><content type='html'>First jailbreak using latest version of &lt;a href="http://www.google.co.in/url?sa=t&amp;amp;rct=j&amp;amp;q=redsnow&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CD0QFjAA&amp;amp;url=http%3A%2F%2Fwww.redsn0w.us%2F&amp;amp;ei=lsUbT8TIGOf40gG4tYDQBQ&amp;amp;usg=AFQjCNHJ8Z4DfjUS0t9Kha8pEAySdzNKVw&amp;amp;sig2=ds8l24O_qlxZO0n3p66VKA"&gt;redsnow&lt;/a&gt; : &lt;div&gt; &lt;a href="http://osxdaily.com/2011/12/27/how-to-jailbreak-ios-5-0-1-untethered-with-redsn0w/"&gt;http://osxdaily.com/2011/12/27/how-to-jailbreak-ios-5-0-1-untethered-with-redsn0w/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Then follow these instructions to run/deploy your app on your iphone : &lt;/div&gt; &lt;div&gt;&lt;a href="http://stackoverflow.com/questions/246422/how-can-i-deploy-an-iphone-application-from-xcode-to-a-real-iphone-device "&gt;stackoverflow.com/questions/246422/how-can-i-deploy-an-iphone-application-from-xcode-to-a-real-iphone-device &lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1324992905459423894?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1324992905459423894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1324992905459423894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1324992905459423894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1324992905459423894'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2012/01/jailbreaking-and-deploying-on-iphone3gs.html' title='Jailbreaking and deploying on iphone3gs using ios5'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3931045105451164676</id><published>2012-01-20T16:29:00.001+05:30</published><updated>2012-01-20T16:29:27.707+05:30</updated><title type='text'>Installing node.js on hostmonster/bluehost</title><content type='html'>&lt;a href="http://rcrisman.net/article/10/installing-nodejs-on-hostmonster-bluehost-accounts"&gt;http://rcrisman.net/article/10/installing-nodejs-on-hostmonster-bluehost-accounts&lt;/a&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;While installing git you many want to get the latest source from &lt;a href="http://git-scm.com/download"&gt;http://git-scm.com/download&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&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/5434031919110451140-3931045105451164676?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3931045105451164676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3931045105451164676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3931045105451164676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3931045105451164676'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2012/01/installing-nodejs-on.html' title='Installing node.js on hostmonster/bluehost'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3299315446113238068</id><published>2011-12-09T11:58:00.001+05:30</published><updated>2011-12-09T11:58:19.516+05:30</updated><title type='text'>Oracle finding columns</title><content type='html'>&lt;pre class="de1" style="font-family: monospace, &amp;#39;Courier New&amp;#39; !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; background-color: rgb(249, 249, 249); font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-bottom: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; font-size: 13px; text-align: left; "&gt; &lt;span class="kw1" style="color: rgb(153, 51, 51); font-weight: bold; "&gt;&lt;h3 style="color: rgb(0, 0, 0); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; width: auto; font-size: 17px; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto; white-space: normal; "&gt; &lt;span class="mw-headline" id="Example_2:_finding_columns"&gt;finding columns&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 19px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 13px; font-weight: normal; text-align: -webkit-auto; white-space: normal; background-color: rgb(255, 255, 255); "&gt; Find all tables that have at least one column that matches a specific PATTERN in the column name&lt;/p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="de1" style="font-family: monospace, &amp;#39;Courier New&amp;#39; !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; background-color: rgb(249, 249, 249); font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-bottom: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; font-size: 13px; text-align: left; "&gt; &lt;span class="kw1" style="color: rgb(153, 51, 51); font-weight: bold; "&gt;SELECT&lt;/span&gt;       &lt;span class="kw1" style="color: rgb(153, 51, 51); font-weight: bold; "&gt;TABLE_NAME&lt;/span&gt;&lt;span class="sy0" style="color: rgb(102, 204, 102); "&gt;,&lt;/span&gt;       COLUMN_NAME    &lt;span class="kw1" style="color: rgb(153, 51, 51); font-weight: bold; "&gt;FROM&lt;/span&gt;       ALL_TAB_COLUMNS    &lt;span class="kw1" style="color: rgb(153, 51, 51); font-weight: bold; "&gt;WHERE&lt;/span&gt;       COLUMN_NAME &lt;span class="kw1" style="color: rgb(153, 51, 51); font-weight: bold; "&gt;LIKE&lt;/span&gt; &lt;span class="st0" style="color: rgb(255, 0, 0); "&gt;&amp;#39;%PATTERN%&amp;#39;&lt;/span&gt;;&lt;/pre&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3299315446113238068?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3299315446113238068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3299315446113238068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3299315446113238068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3299315446113238068'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/12/oracle-finding-columns.html' title='Oracle finding columns'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4677963918789492498</id><published>2011-12-08T16:44:00.001+05:30</published><updated>2011-12-08T16:44:34.690+05:30</updated><title type='text'>iphone courses online</title><content type='html'>iOS programming resources online ; &lt;br&gt;&lt;br&gt;&lt;a href="http://teamtreehouse.com"&gt;http://teamtreehouse.com&lt;/a&gt;&lt;br&gt;&lt;div class="gmail_quote"&gt;&lt;a href="http://itunes.apple.com/in/itunes-u/ipad-iphone-application-development/id473757255" target="_blank" style="color: rgb(0, 84, 136); font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "&gt;http://itunes.apple.com/in/itunes-u/ipad-iphone-application-development/id473757255&lt;/a&gt;&lt;br&gt; &lt;br&gt;for ios 5 : &lt;br&gt;&lt;br&gt;&lt;a href="http://itunes.apple.com/in/itunes-u/developing-apps-for-ios-hd/id395605774" target="_blank"&gt;http://itunes.apple.com/in/itunes-u/developing-apps-for-ios-hd/id395605774&lt;/a&gt;&lt;br&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4677963918789492498?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4677963918789492498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4677963918789492498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4677963918789492498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4677963918789492498'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/12/iphone-courses-online.html' title='iphone courses online'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2289010039247706293</id><published>2011-12-07T23:24:00.001+05:30</published><updated>2011-12-07T23:24:18.228+05:30</updated><title type='text'>Enabling sudo on mac os/Enabling root user on mac os</title><content type='html'>&lt;a href="http://www.spy-hill.com/%7Emyers/help/apple/EnableRoot.html"&gt;http://www.spy-hill.com/~myers/help/apple/EnableRoot.html&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2289010039247706293?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2289010039247706293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2289010039247706293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2289010039247706293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2289010039247706293'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/12/enabling-sudo-on-mac-osenabling-root.html' title='Enabling sudo on mac os/Enabling root user on mac os'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-392498860347424648</id><published>2011-11-25T14:35:00.001+05:30</published><updated>2011-11-25T14:35:28.498+05:30</updated><title type='text'>who is locking whom oracle locks</title><content type='html'>select s1.username || &amp;#39;@&amp;#39; || s1.machine&lt;br&gt;    || &amp;#39; ( SID=&amp;#39; || s1.sid || &amp;#39; )  is blocking &amp;#39;&lt;br&gt;    || s2.username || &amp;#39;@&amp;#39; || s2.machine || &amp;#39; ( SID=&amp;#39; || s2.sid || &amp;#39; )&lt;br&gt;&amp;#39; AS blocking_status&lt;br&gt;    from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br&gt;    where s1.sid=l1.sid and s2.sid=l2.sid&lt;br&gt;    and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br&gt;    and l1.id1 = l2.id1&lt;br&gt;    and l2.id2 = l2.id2 ;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-392498860347424648?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/392498860347424648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=392498860347424648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/392498860347424648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/392498860347424648'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/11/who-is-locking-whom-oracle-locks.html' title='who is locking whom oracle locks'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8598085729338110116</id><published>2011-11-17T15:59:00.001+05:30</published><updated>2011-11-17T15:59:56.731+05:30</updated><title type='text'>Oracle alter table add or drop column</title><content type='html'>alter table supplier drop column supplier_id;&lt;p&gt;alter table&lt;br&gt;   cust_table&lt;br&gt;add&lt;br&gt;   cust_sex  varchar2(1) NOT NULL;&lt;p&gt;Her is an example of Oracle &amp;quot;alter table&amp;quot; syntax to add multiple data columns.&lt;p&gt;ALTER TABLE&lt;br&gt;   cust_table&lt;br&gt;ADD&lt;br&gt;   (&lt;br&gt;      cust_sex             char(1) NOT NULL,&lt;br&gt;      cust_credit_rating   number&lt;br&gt;   );&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8598085729338110116?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8598085729338110116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8598085729338110116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8598085729338110116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8598085729338110116'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/11/oracle-alter-table-add-or-drop-column.html' title='Oracle alter table add or drop column'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5746054869316998897</id><published>2011-11-17T15:52:00.001+05:30</published><updated>2011-11-17T15:52:51.275+05:30</updated><title type='text'>Oracle add or drop primary key</title><content type='html'>ALTER TABLE supplier&lt;br&gt;add CONSTRAINT supplier_pk PRIMARY KEY (supplier_id);&lt;p&gt;ALTER TABLE supplier&lt;br&gt;drop CONSTRAINT supplier_pk;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5746054869316998897?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5746054869316998897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5746054869316998897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5746054869316998897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5746054869316998897'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/11/oracle-add-or-drop-primary-key.html' title='Oracle add or drop primary key'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2821864377801420133</id><published>2011-10-17T00:35:00.000+05:30</published><updated>2011-10-17T12:04:17.368+05:30</updated><title type='text'>Installing XCode/IOS Simulator on Mac OS 10.6.1</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;First you need to upgrade your Mac OS.&lt;br /&gt;Click on the Apple Icon -&amp;gt; Software Update and follow the instructions.&lt;br /&gt;In my case it downloaded 1.33GB of updates.&lt;br /&gt;First time it wasn't downloaded correctly so it asked me to download again.&lt;br /&gt;I did that and restarted and I had been moved to Mac OS 10.6.8.&lt;br /&gt;&lt;br /&gt;Then I installed the .dmg file for iOS SDK(4 GB). &lt;a href="http://software-troubleshooter.blogspot.com/2011/10/downloading-ios-sdk-from-command-line.html"&gt;Instructions&lt;/a&gt;.&lt;br /&gt;So, in all, I ended up downloading 7GB of data just to install XCode on my MAC. Amazing !&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2821864377801420133?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2821864377801420133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2821864377801420133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2821864377801420133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2821864377801420133'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/installing-xcodeios-simulator-on-mac-os.html' title='Installing XCode/IOS Simulator on Mac OS 10.6.1'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2091564834757958556</id><published>2011-10-16T01:23:00.001+05:30</published><updated>2011-10-17T12:04:40.262+05:30</updated><title type='text'>Downloading iOS SDK from command line through wget</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;1. Install Export Cookies Extension for Firefox.&lt;br /&gt;2. Login to iOS Dev Center and start downloading the file, after a&lt;br /&gt;while cancel the download.(from the Downloads Window, get the download&lt;br /&gt;URL)&lt;br /&gt;3. Export cookies to cookies.txt&lt;br /&gt;4. Upload cookies.txt to the server where you want to use wget.&lt;br /&gt;5. Login to your server and :&lt;br /&gt;wget -U firefox -ct 0 --timeout=60 --waitretry=60 --load-cookies&lt;br /&gt;cookies.txt -c &amp;lt;download_url&amp;gt;&lt;br /&gt;6. My download URL :&lt;br /&gt;&lt;a href="http://adcdownload.apple.com/Developer_Tools/xcode_3.2.6_and_ios_sdk_4.3__final/xcode_3.2.6_and_ios_sdk_4.3.dmg"&gt;http://adcdownload.apple.com/Developer_Tools/xcode_3.2.6_and_ios_sdk_4.3__final/xcode_3.2.6_and_ios_sdk_4.3.dmg&lt;/a&gt;&lt;br /&gt;7. This file is roughly 4 GB in size !&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2091564834757958556?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2091564834757958556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2091564834757958556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2091564834757958556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2091564834757958556'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/downloading-ios-sdk-from-command-line.html' title='Downloading iOS SDK from command line through wget'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7476997216050347845</id><published>2011-10-16T01:07:00.001+05:30</published><updated>2011-10-16T01:07:47.787+05:30</updated><title type='text'>Installing Google Command Line</title><content type='html'>&lt;a href="http://code.google.com/p/googlecl/wiki/Install"&gt;http://code.google.com/p/googlecl/wiki/Install&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-7476997216050347845?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7476997216050347845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7476997216050347845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7476997216050347845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7476997216050347845'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/installing-google-command-line.html' title='Installing Google Command Line'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8012073773120842707</id><published>2011-10-14T13:41:00.001+05:30</published><updated>2011-10-14T13:41:44.411+05:30</updated><title type='text'>orable table row count</title><content type='html'>&lt;div&gt;SELECT table_name, nvl(num_rows,1) &lt;/div&gt;&lt;div&gt;FROM dba_tables where table_name like &amp;#39;XYZ&amp;#39;;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8012073773120842707?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8012073773120842707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8012073773120842707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8012073773120842707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8012073773120842707'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/orable-table-row-count.html' title='orable table row count'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-731347010895100740</id><published>2011-10-09T18:16:00.001+05:30</published><updated>2011-10-09T18:16:05.595+05:30</updated><title type='text'>Mac OS : Forcing black ink printing for Canon MP280 series printer</title><content type='html'>System Preferences -&amp;gt; &lt;div&gt;Printer &amp;amp; Fax -&amp;gt; &lt;/div&gt;&lt;div&gt;Select Canon MP280 on left -&amp;gt; &lt;/div&gt;&lt;div&gt;Options &amp;amp; Supplies -&amp;gt;&lt;/div&gt;&lt;div&gt;Utility -&amp;gt;&lt;br&gt;Open Printer Utility -&amp;gt;&lt;/div&gt;&lt;div&gt;Ink Cartridge Settings -&amp;gt;&lt;/div&gt; &lt;div&gt;Ink Cartridge : Black Only&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-731347010895100740?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/731347010895100740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=731347010895100740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/731347010895100740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/731347010895100740'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/mac-os-forcing-black-ink-printing-for.html' title='Mac OS : Forcing black ink printing for Canon MP280 series printer'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7172115855427503290</id><published>2011-10-05T21:49:00.001+05:30</published><updated>2011-10-05T21:52:44.502+05:30</updated><title type='text'>Objective C Programming on Windows</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.jaysonjc.com/programming/objective-c-programming-in-windows-gnustep-projectcenter.html"&gt;Source&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Steps :&amp;nbsp;&lt;/div&gt;&lt;div&gt;1. Download and install these 3 exes :&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana; font-size: 13px; line-height: 20px;"&gt;GNUStep 0.23 (&lt;a href="http://ftp.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.23.0-setup.exe" style="color: #3863a8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;System&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://ftp.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.23.0-setup.exe" style="color: #3863a8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;Core&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://ftp.gnustep.org/pub/gnustep/binaries/windows/gnustep-devel-1.0.0-setup.exe" style="color: #3863a8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;Devel&lt;/a&gt;)&lt;br /&gt; 2. Open Programs -&amp;gt; Gnustep -&amp;gt; Shell&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana; font-size: 13px; line-height: 20px;"&gt;3. Create helloworld.m :&lt;br /&gt; &lt;span class="Apple-style-span" style="background-color: #f9f9f9; color: #110000; font-size: 14px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="objc" style="clear: none; font-family: monospace; line-height: 1.333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; white-space: pre; width: auto;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana; font-size: 13px; line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="background-color: #f9f9f9; color: #110000; font-size: 14px;"&gt; &lt;span style="color: #6e371a; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;#import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt; &lt;/span&gt; &lt;span style="color: #a61390; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;int&lt;/span&gt; main &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #a61390; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;int&lt;/span&gt; argc, &lt;span style="color: #a61390; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;const&lt;/span&gt; &lt;span style="color: #a61390; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;char&lt;/span&gt; &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;*&lt;/span&gt; argv&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[&lt;/span&gt;&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;]&lt;/span&gt;&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;{&lt;/span&gt; &lt;br /&gt;  &lt;span style="color: #400080; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NSAutoreleasePool&lt;/span&gt; &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;*&lt;/span&gt; pool &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&lt;/span&gt; &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[&lt;/span&gt;&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[&lt;/span&gt;&lt;span style="color: #400080; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NSAutoreleasePool&lt;/span&gt; alloc&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;]&lt;/span&gt; init&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;]&lt;/span&gt;;  &lt;br /&gt; NSLog &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #bf1d1a; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;@&lt;/span&gt;&lt;span style="color: #bf1d1a; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;"Hello World!"&lt;/span&gt;&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt;; &lt;br /&gt;  &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[&lt;/span&gt;pool drain&lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;]&lt;/span&gt;;  &lt;br /&gt; &lt;span style="color: #a61390; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;return&lt;/span&gt; &lt;span style="color: #2400d9; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;0&lt;/span&gt;;&lt;br /&gt; &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="objc" style="clear: none; font-family: monospace; line-height: 1.333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; white-space: pre; width: auto;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana; font-size: 13px; line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="background-color: #f9f9f9; color: #110000; font-size: 14px;"&gt;&lt;br /&gt; &lt;span style="color: #002200; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;4. gcc -o helloworld helloworld.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana; font-size: 13px; line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="background-color: #f9f9f9; color: #110000; font-size: 14px;"&gt; &lt;/span&gt;&lt;/span&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/5434031919110451140-7172115855427503290?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7172115855427503290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7172115855427503290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7172115855427503290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7172115855427503290'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/objective-c-programming-on-windows.html' title='Objective C Programming on Windows'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6327261004525408718</id><published>2011-10-05T18:11:00.001+05:30</published><updated>2011-10-05T18:11:15.926+05:30</updated><title type='text'>Mac OS quitting front most application</title><content type='html'>Command + Q&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6327261004525408718?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6327261004525408718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6327261004525408718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6327261004525408718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6327261004525408718'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/mac-os-quitting-front-most-application.html' title='Mac OS quitting front most application'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-321415143890605968</id><published>2011-10-05T18:05:00.001+05:30</published><updated>2011-10-05T18:05:43.849+05:30</updated><title type='text'>Mac OS Keyboard shortcut for spotlight</title><content type='html'>Command + Space Bar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-321415143890605968?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/321415143890605968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=321415143890605968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/321415143890605968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/321415143890605968'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/mac-os-keyboard-shortcut-for-spotlight.html' title='Mac OS Keyboard shortcut for spotlight'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3380333209746831530</id><published>2011-10-04T11:24:00.001+05:30</published><updated>2011-10-04T11:24:18.688+05:30</updated><title type='text'>Mac Window maximize keyboard shortcut</title><content type='html'>System Preferences&lt;br&gt;-&amp;gt; Keyboard &amp;amp; Mouse&lt;br&gt;-&amp;gt; Keyboard Shortcuts&lt;br&gt;-&amp;gt; Click the +&lt;br&gt;-&amp;gt; Make sure it says All Applications in the dropdown.&lt;br&gt;-&amp;gt; In the menu title type in &amp;quot;Zoom&amp;quot; (Capitalization matters, I believe).&lt;br&gt;-&amp;gt; Click in the keyboard shortcut area and set the keyboard shortcut&lt;br&gt;you want. I&amp;#39;d make it a alt-space-x&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3380333209746831530?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3380333209746831530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3380333209746831530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3380333209746831530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3380333209746831530'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/mac-window-maximize-keyboard-shortcut.html' title='Mac Window maximize keyboard shortcut'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1748793581464363126</id><published>2011-10-04T11:22:00.000+05:30</published><updated>2011-10-04T11:23:00.644+05:30</updated><title type='text'>Useful gmail keyboard shortcuts</title><content type='html'>g k -&amp;gt; show task window&lt;div&gt;Esc -&amp;gt; hide task window&lt;/div&gt;&lt;div&gt;tab Enter -&amp;gt; send mail&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1748793581464363126?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1748793581464363126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1748793581464363126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1748793581464363126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1748793581464363126'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/useful-gmail-keyboard-shortcuts.html' title='Useful gmail keyboard shortcuts'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5180500038865078732</id><published>2011-10-03T14:29:00.001+05:30</published><updated>2011-10-03T14:29:50.935+05:30</updated><title type='text'>Pig RegExp Match</title><content type='html'>&lt;div&gt;recs = load &amp;#39;a.txt&amp;#39;;&lt;/div&gt;&lt;div&gt;recs1 = filter recs by $0 matches &amp;#39;.*hiv.*&amp;#39;;&lt;/div&gt;&lt;div&gt;dump recs1;&lt;/div&gt;&lt;div&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/5434031919110451140-5180500038865078732?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5180500038865078732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5180500038865078732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5180500038865078732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5180500038865078732'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/pig-regexp-match.html' title='Pig RegExp Match'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8695359201543828330</id><published>2011-10-01T00:20:00.001+05:30</published><updated>2011-10-01T00:20:51.311+05:30</updated><title type='text'>Mac Os : Force ejecting a CD</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;On the terminal type :&lt;br /&gt;&lt;b&gt;drutil tray eject&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8695359201543828330?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8695359201543828330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8695359201543828330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8695359201543828330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8695359201543828330'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/10/mac-os-force-ejecting-cd.html' title='Mac Os : Force ejecting a CD'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3159639595857299521</id><published>2011-09-27T19:33:00.001+05:30</published><updated>2011-09-27T19:33:56.441+05:30</updated><title type='text'>computer programming for kids</title><content type='html'>&lt;a href="http://www.flipkart.com/books/8184890923"&gt;http://www.flipkart.com/books/8184890923&lt;/a&gt;&lt;div&gt;&lt;a href="http://www.flipkart.com/books/8177229095"&gt;http://www.flipkart.com/books/8177229095&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3159639595857299521?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3159639595857299521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3159639595857299521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3159639595857299521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3159639595857299521'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/09/computer-programming-for-kids.html' title='computer programming for kids'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5298788391435512695</id><published>2011-09-27T17:41:00.001+05:30</published><updated>2011-09-27T17:41:02.520+05:30</updated><title type='text'>oracle removing all locks</title><content type='html'>SELECT &amp;#160;l.inst_id,&lt;br&gt;SUBSTR(L.ORACLE_USERNAME,1,8) ORA_USER,&lt;br&gt;SUBSTR(L.SESSION_ID,1,3) SID,&lt;br&gt;S.serial#,&lt;br&gt;SUBSTR(O.OWNER||&amp;#39;.&amp;#39;||O.OBJECT_NAME,1,40) OBJECT, P.SPID OS_PID,&lt;br&gt;DECODE(L.LOCKED_MODE, &amp;#160; 0,&amp;#39;NONE&amp;#39;,&lt;br&gt;1,&amp;#39;NULL&amp;#39;,&lt;br&gt;2,&amp;#39;ROW SHARE&amp;#39;,&lt;br&gt;3,&amp;#39;ROW EXCLUSIVE&amp;#39;,&lt;br&gt;4,&amp;#39;SHARE&amp;#39;,&lt;br&gt;5,&amp;#39;SHARE ROW EXCLUSIVE&amp;#39;,&lt;br&gt;6,&amp;#39;EXCLUSIVE&amp;#39;,&lt;br&gt;NULL) LOCK_MODE&lt;br&gt;FROM &amp;#160; &amp;#160;sys.GV_$LOCKED_OBJECT L&lt;br&gt;, DBA_OBJECTS O&lt;br&gt;, sys.GV_$SESSION S&lt;br&gt;, sys.GV_$PROCESS P&lt;br&gt;WHERE &amp;#160; &amp;#160; L.OBJECT_ID = O.OBJECT_ID&lt;br&gt;&amp;#160;and &amp;#160; &amp;#160; l.inst_id = s.inst_id&lt;br&gt;&amp;#160;AND &amp;#160; &amp;#160; L.SESSION_ID = S.SID&lt;br&gt;&amp;#160;and &amp;#160; &amp;#160; s.inst_id = p.inst_id&lt;br&gt;&amp;#160;AND &amp;#160; &amp;#160; S.PADDR = P.ADDR(+)&lt;br&gt;order by l.inst_id&lt;p&gt;alter system kill session &amp;#39;247,52553&amp;#39; immediate;&lt;br&gt;where 247 is SID and 52553 is serial #&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5298788391435512695?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5298788391435512695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5298788391435512695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5298788391435512695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5298788391435512695'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/09/oracle-removing-all-locks.html' title='oracle removing all locks'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3676938254786868440</id><published>2011-09-16T13:46:00.001+05:30</published><updated>2011-09-16T13:46:40.297+05:30</updated><title type='text'>Oracle order tables by creation date</title><content type='html'>select * from user_objects where OBJECT_TYPE = &amp;#39;TABLE&amp;#39; order by created desc; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3676938254786868440?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3676938254786868440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3676938254786868440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3676938254786868440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3676938254786868440'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/09/oracle-order-tables-by-creation-date.html' title='Oracle order tables by creation date'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6431714116085341092</id><published>2011-08-24T19:16:00.000+05:30</published><updated>2011-08-25T14:35:42.722+05:30</updated><title type='text'>Oracle explain plan</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="p1"&gt;1. explain plan set statement_id = 'bad6' for&lt;/div&gt;&lt;div class="p1"&gt;select a from b;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;Then :&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;2. SELECT cardinality "Rows",&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lpad(' ',level-1)||operation||' '||&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;options||' '||object_name "Plan"&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;FROM PLAN_TABLE&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;CONNECT BY prior id = parent_id&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND prior statement_id = statement_id&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;START WITH id = 0&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND statement_id = 'bad6'&lt;/div&gt;&lt;div class="p1"&gt;&amp;nbsp;ORDER BY id;&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;2. SELECT * FROM TABLE(dbms_xplan.display('PLAN_TABLE','bad6','ALL'));&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/5434031919110451140-6431714116085341092?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6431714116085341092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6431714116085341092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6431714116085341092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6431714116085341092'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/08/oracle-explain-plan.html' title='Oracle explain plan'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7666118574081999754</id><published>2011-08-22T12:33:00.001+05:30</published><updated>2011-08-22T12:33:58.630+05:30</updated><title type='text'>running external script in oracle sqlplus</title><content type='html'>SQL&amp;gt; @external.sql&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-7666118574081999754?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7666118574081999754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7666118574081999754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7666118574081999754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7666118574081999754'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/08/running-external-script-in-oracle.html' title='running external script in oracle sqlplus'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5821613268187028935</id><published>2011-08-12T15:24:00.000+05:30</published><updated>2011-08-12T15:24:11.033+05:30</updated><title type='text'>Perl Dollar Dollar ($$)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Do you know what does $$ stand for in Perl?&lt;br /&gt;It's the process id of the current process.&lt;br /&gt;&lt;br /&gt;print $$;&lt;br /&gt;&lt;br /&gt;will print the process id of the current process.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5821613268187028935?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5821613268187028935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5821613268187028935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5821613268187028935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5821613268187028935'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/08/perl-dollar-dollar.html' title='Perl Dollar Dollar ($$)'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3306488714005181153</id><published>2011-08-04T12:22:00.003+05:30</published><updated>2011-08-04T12:27:09.387+05:30</updated><title type='text'>Oracle finding indexes/indices for a table</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Select &amp;nbsp;index_name, column_name FROM dba_ind_columns where table_name=’EMP’;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3306488714005181153?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3306488714005181153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3306488714005181153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3306488714005181153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3306488714005181153'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/08/oracle-finding-indexesindices-for-table.html' title='Oracle finding indexes/indices for a table'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3706523498676412491</id><published>2011-07-29T16:24:00.001+05:30</published><updated>2011-07-29T16:24:03.617+05:30</updated><title type='text'>Making the hand tool the default tool on Adobe Reader for Mac OS X</title><content type='html'>&lt;a href="http://forums.adobe.com/thread/535813?tstart=-2"&gt;Source&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;meta charset="utf-8"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 12px; "&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; To set Adobe Reader X to open with the hand tool active what I did was:&lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;  &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;Open Adobe Reader X&lt;/p&gt; &lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; Right Click on the toolbar&lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;  &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;Mouse Down to &amp;quot;Select and Zoom&amp;quot;&lt;/p&gt; &lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; Click on the Hand Tool&lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;  &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;The Hand Tool appears on the Tool Bar&lt;/p&gt; &lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; Click on the Hand Tool&lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;  &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt;Close Adobe Reader X&lt;/p&gt; &lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="font-size: 1.083em; line-height: 1.462; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: 0px; margin-left: 0px; "&gt; The next time you open the Reader the Hand Tool is selected.&lt;/p&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3706523498676412491?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3706523498676412491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3706523498676412491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3706523498676412491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3706523498676412491'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/07/making-hand-tool-default-tool-on-adobe.html' title='Making the hand tool the default tool on Adobe Reader for Mac OS X'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-558407602630666622</id><published>2011-07-28T12:04:00.003+05:30</published><updated>2011-07-28T12:05:54.655+05:30</updated><title type='text'>PageRank PPT</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: xx-small;"&gt;&lt;a href="http://www.docstoc.com/docs/61179865/PageRank"&gt;PageRank&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;object data="http://viewer.docstoc.com/" height="550" id="_ds_61179865" name="_ds_61179865" type="application/x-shockwave-flash" width="540"&gt;&lt;param name="FlashVars" value="doc_id=61179865&amp;mem_id=2097073&amp;showrelated=1&amp;showotherdocs=1&amp;doc_type=ppt&amp;allowdownload=1" /&gt;&lt;param name="movie" value="http://viewer.docstoc.com/"/&gt;&lt;param name="wmode"  value="opaque" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;var docstoc_docid="61179865";var docstoc_title="PageRank";var docstoc_urltitle="PageRank";&lt;/script&gt;&lt;script src="http://i.docstoccdn.com/js/check-flash.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-558407602630666622?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/558407602630666622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=558407602630666622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/558407602630666622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/558407602630666622'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/07/pagerank-ppt.html' title='PageRank PPT'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3072466506584871361</id><published>2011-07-28T12:03:00.001+05:30</published><updated>2011-07-28T12:03:51.937+05:30</updated><title type='text'>eigenvector nice explanation</title><content type='html'>&lt;br&gt;&lt;br&gt;&lt;div class="gmail_quote"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div style="background-color:rgb(255, 255, 255);border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(153, 153, 153);border-right-color:rgb(153, 153, 153);border-bottom-color:rgb(153, 153, 153);border-left-color:rgb(153, 153, 153);margin-bottom:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:Times;font-size:medium"&gt;  &lt;div style="background-color:rgb(221, 221, 221);border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(153, 153, 153);border-right-color:rgb(153, 153, 153);border-bottom-color:rgb(153, 153, 153);border-left-color:rgb(153, 153, 153);color:rgb(0, 0, 0);font-weight:normal;margin-top:12px;margin-right:12px;margin-bottom:12px;margin-left:12px;padding-top:8px;padding-right:8px;padding-bottom:8px;padding-left:8px;text-align:left;background-repeat:initial initial"&gt;  This is Google&amp;#39;s cache of &lt;a href="http://www.sosmath.com/matrix/markov/markov.html" style="text-decoration:underline;color:rgb(0, 0, 204)" target="_blank"&gt;http://www.sosmath.com/matrix/markov/markov.html&lt;/a&gt;. It is a snapshot of the page as it appeared on 24 Jul 2011 22:25:14 GMT. The &lt;a href="http://www.sosmath.com/matrix/markov/markov.html" style="text-decoration:underline;color:rgb(0, 0, 204)" target="_blank"&gt;current page&lt;/a&gt; could have changed in the meantime. &lt;a href="http://www.google.com/intl/en/help/features_list.html#cached" style="text-decoration:underline;color:rgb(0, 0, 204)" target="_blank"&gt;Learn more&lt;/a&gt;&lt;br&gt;  &lt;br&gt;&lt;div style="float:right"&gt;&lt;a href="http://webcache.googleusercontent.com/search?q=cache:4tWod_PCu8QJ:www.sosmath.com/matrix/markov/markov.html+eigenvector+of+a+stochastic+matrix&amp;amp;hl=en&amp;amp;gl=in&amp;amp;strip=1" style="text-decoration:underline;color:rgb(0, 0, 204)" target="_blank"&gt;Text-only version&lt;/a&gt;&lt;/div&gt;  &lt;div&gt;These search terms are highlighted: &lt;span style="background-color:rgb(255, 255, 102);color:black;font-weight:bold;background-repeat:initial initial"&gt;eigenvector&lt;/span&gt; &lt;span style="background-color:rgb(160, 255, 255);color:black;font-weight:bold;background-repeat:initial initial"&gt;stochastic&lt;/span&gt; &lt;span style="background-color:rgb(153, 255, 153);color:black;font-weight:bold;background-repeat:initial initial"&gt;matrix&lt;/span&gt;  &lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div style="font-family:Times;font-size:medium"&gt;&lt;center&gt;&lt;table cellpadding="0" border="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;span&gt;&lt;ins style="display:inline-table;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;min-height:90px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;width:728px"&gt;&lt;ins style="display:block;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;min-height:90px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;width:728px"&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/span&gt;&lt;div&gt;  &lt;img src="http://www.sosmath.com/openx/www/delivery/lg.php?bannerid=7&amp;amp;campaignid=10&amp;amp;zoneid=3&amp;amp;loc=1&amp;amp;referer=http%3A%2F%2Fwebcache.googleusercontent.com%2Fsearch%3Fq%3Dcache%3A4tWod_PCu8QJ%3Awww.sosmath.com%2Fmatrix%2Fmarkov%2Fmarkov.html%2Beigenvector%2Bof%2Ba%2Bstochastic%2Bmatrix%26cd%3D6%26hl%3Den%26ct%3Dclnk%26gl%3Din%26source%3Dwww.google.co.in&amp;amp;cb=b8227db517" width="0" height="0" alt="" style="width:0px;min-height:0px"&gt;&lt;/div&gt;  &lt;/td&gt;&lt;td width="12" height="60"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;ins style="display:inline-table;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;min-height:90px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;width:120px"&gt;&lt;ins style="display:block;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;min-height:90px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;width:120px"&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;div&gt;  &lt;img src="http://www.sosmath.com/openx/www/delivery/lg.php?bannerid=25&amp;amp;campaignid=34&amp;amp;zoneid=2&amp;amp;loc=1&amp;amp;referer=http%3A%2F%2Fwebcache.googleusercontent.com%2Fsearch%3Fq%3Dcache%3A4tWod_PCu8QJ%3Awww.sosmath.com%2Fmatrix%2Fmarkov%2Fmarkov.html%2Beigenvector%2Bof%2Ba%2Bstochastic%2Bmatrix%26cd%3D6%26hl%3Den%26ct%3Dclnk%26gl%3Din%26source%3Dwww.google.co.in&amp;amp;cb=b775c5360b" width="0" height="0" alt="" style="width:0px;min-height:0px"&gt;&lt;/div&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;h1&gt;&lt;img src="http://www.sosmath.com/logos001.gif" align="bottom"&gt; Markov Chains&lt;/h1&gt;&lt;center&gt;&lt;img src="http://www.sosmath.com/gif/bar.gif"&gt;&lt;/center&gt;&lt;p&gt;In a previous page, we studied the movement between the city and suburbs. Indeed, if &lt;i&gt;I&lt;/i&gt; are &lt;i&gt;S&lt;/i&gt; are the initial population of the inner city and the suburban area, and if we assume that every year 40% of the inner city population moves to the suburbs, while 30% of the suburb population moves to the inner part of the city, then after one year the populations are given by &lt;br&gt;  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="325" height="55" src="http://www.sosmath.com/matrix/markov/img1.gif" alt="\begin{displaymath}\left(\begin{array}{c} 0.6 I + 0.3 S\\ 0.4 I + 0.7 S\\ \end... ...ay}\right) \left(\begin{array}{c} I\\ S\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;The &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="141" height="55" src="http://www.sosmath.com/matrix/markov/img2.gif" alt="\begin{displaymath}P = \left(\begin{array}{cc} 0.6&amp;amp;0.3\\ 0.4&amp;amp;0.7\\ \end{array}\right) \end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;is very special. Indeed, the entries of each column vectors are positive and their sum is 1. Such vectors are called &lt;b&gt;probability&lt;/b&gt; vectors. A &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; for which all the column vectors are probability vectors is called &lt;b&gt;transition&lt;/b&gt; or&lt;b&gt;&lt;b style="color:black;background-color:rgb(160, 255, 255)"&gt;stochastic&lt;/b&gt;&lt;/b&gt; &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt;. Andrei Markov, a russian mathematician, was the first one to study these matrices. At the beginning of this century he developed the fundamentals of the &lt;b&gt;Markov Chain&lt;/b&gt; theory. &lt;br&gt;  A Markov chain is a process that consists of a finite number of &lt;b&gt;states&lt;/b&gt; and some known probabilities &lt;i&gt;p&lt;/i&gt;&lt;sub&gt;&lt;i&gt;ij&lt;/i&gt;&lt;/sub&gt;, where &lt;i&gt;p&lt;/i&gt;&lt;sub&gt;&lt;i&gt;ij&lt;/i&gt;&lt;/sub&gt; is the probability of moving from state &lt;i&gt;j&lt;/i&gt; to state &lt;i&gt;i&lt;/i&gt;. In the example above, we have two states: living in the city and living in the suburbs. The number &lt;i&gt;p&lt;/i&gt;&lt;sub&gt;&lt;i&gt;ij&lt;/i&gt;&lt;/sub&gt; represents the probability of moving from state i to state j in one year. We may have more than two states. For example, political affiliation: Democrat, Republican, and Independent. For example, &lt;i&gt;p&lt;/i&gt;&lt;sub&gt;&lt;i&gt;ij&lt;/i&gt;&lt;/sub&gt; represents the probability of a son belonging to party i if his father belonged to party j. &lt;br&gt;  Of particular interest is a probability vector &lt;b&gt;p&lt;/b&gt; such that &lt;img width="68" height="34" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img3.gif" alt="$A \mbox{\bf p} = \mbox{\bf p}$"&gt;, that is, an &lt;b style="color:black;background-color:rgb(255, 255, 102)"&gt;eigenvector&lt;/b&gt; of &lt;i&gt;A&lt;/i&gt; associated to the eigenvalue 1. Such vector is called a &lt;b&gt;steady state vector&lt;/b&gt;. In the example above, the steady state vectors are given by the system &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="415" height="55" src="http://www.sosmath.com/matrix/markov/img4.gif" alt="\begin{displaymath}\left(\begin{array}{cc} 0.6&amp;amp;0.3\\ 0.4&amp;amp;0.7\\ \end{array}\rig... ...} -0.4&amp;amp;0.3\\ 0.4&amp;amp;-0.3\\ \end{array}\right)\cdot X = {\cal O}.\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;This system reduces to the equation -0.4 &lt;i&gt;x&lt;/i&gt; + 0.3 &lt;i&gt;y&lt;/i&gt; = 0. It is easy to see that, if we set &lt;img width="76" height="17" align="BOTTOM" border="0" src="http://www.sosmath.com/matrix/markov/img5.gif" alt="$x = 0.3 \alpha$"&gt;, then &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="206" height="55" src="http://www.sosmath.com/matrix/markov/img6.gif" alt="\begin{displaymath}X = \left(\begin{array}{c} x\\ y\\ \end{array}\right) = \alpha \left(\begin{array}{c} 0.3\\ 0.4\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;So the vector &lt;img width="114" height="65" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img7.gif" alt="$\mbox{\bf p}_1 = \displaystyle \left(\begin{array}{c} 0.3\\ 0.4\\ \end{array}\right)$"&gt; is a steady state vector of the &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; above. So if the populations of the city and the suburbs are given by the vector &lt;img width="24" height="33" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img8.gif" alt="$\mbox{\bf p}_1$"&gt;, after one year the proportions remain the same (though the people may move between the city and the suburbs). &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;p&gt;Let us discuss another example on population dynamics. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Example: Age Distribution of Trees in a Forest&lt;/b&gt; &lt;br&gt;Trees in a forest are assumed in this simple model to fall into four age groups: &lt;i&gt;b&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;) denotes the number of baby trees in the forest (age group 0-15 years) at a given time period &lt;i&gt;k&lt;/i&gt;; similarly &lt;i&gt;y&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;),&lt;i&gt;m&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;) and &lt;i&gt;o&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;) denote the number of young trees (16-30 years of age), middle-aged trees (age 31-45), and old trees (older than 45 years of age), respectively. The length of one time period is 15 years. &lt;br&gt;  How does the age distribution change from one time period to the next? The model makes the following three assumptions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A certain percentage of trees in each age group dies.&lt;/li&gt;&lt;li&gt;Surviving trees enter into the next age group; old trees remain old.&lt;/li&gt;  &lt;li&gt;Lost trees are replaced by baby trees. &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Note that the total tree population does not change over time. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;We obtain the following difference equations: &lt;br&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;  &lt;table align="CENTER" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr valign="MIDDLE"&gt;&lt;td nowrap align="RIGHT"&gt;&lt;i&gt;b&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;+1)&lt;/td&gt;&lt;td align="CENTER" nowrap&gt;=&lt;/td&gt;&lt;td align="LEFT" nowrap&gt;&lt;img width="345" height="37" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img10.gif" alt="$\displaystyle d_b\cdot b(k)+d_y \cdot y(k) +d_m\cdot m(k) + d_o\cdot o(k)$"&gt;&lt;/td&gt;  &lt;td width="10" align="RIGHT"&gt;(1)&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="MIDDLE"&gt;&lt;td nowrap align="RIGHT"&gt;&lt;i&gt;y&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;+1)&lt;/td&gt;&lt;td align="CENTER" nowrap&gt;=&lt;/td&gt;&lt;td align="LEFT" nowrap&gt;(1-&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;b&lt;/i&gt;&lt;/sub&gt;) &lt;i&gt;b&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;)&lt;/td&gt;  &lt;td width="10" align="RIGHT"&gt;(2)&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="MIDDLE"&gt;&lt;td nowrap align="RIGHT"&gt;&lt;i&gt;m&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;+1)&lt;/td&gt;&lt;td align="CENTER" nowrap&gt;=&lt;/td&gt;&lt;td align="LEFT" nowrap&gt;(1-&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sub&gt;) &lt;i&gt;y&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;)&lt;/td&gt;  &lt;td width="10" align="RIGHT"&gt;(3)&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="MIDDLE"&gt;&lt;td nowrap align="RIGHT"&gt;&lt;i&gt;o&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;+1)&lt;/td&gt;&lt;td align="CENTER" nowrap&gt;=&lt;/td&gt;&lt;td align="LEFT" nowrap&gt;(1-&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;m&lt;/i&gt;&lt;/sub&gt;) &lt;i&gt;m&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;) + (1-&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;o&lt;/i&gt;&lt;/sub&gt;) &lt;i&gt;o&lt;/i&gt;(&lt;i&gt;k&lt;/i&gt;)&lt;/td&gt;  &lt;td width="10" align="RIGHT"&gt;(4)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;Here 0 &amp;lt; &lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;b&lt;/i&gt;&lt;/sub&gt;,&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sub&gt;,&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;m&lt;/i&gt;&lt;/sub&gt;,&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;o&lt;/i&gt;&lt;/sub&gt; &amp;lt;1 denote the loss rates in each age group in percent. &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;p&gt;Let &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="142" height="99" src="http://www.sosmath.com/matrix/markov/img11.gif" alt="\begin{displaymath}{\bf x}(k)=\left(\begin{array}{c}b(k)\\ y(k)\\ m(k)\\ o(k)\end{array}\right)\end{displaymath}"&gt;&lt;/div&gt;  &lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;be the ``age distribution vector&amp;quot;. Consider the &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="342" height="99" src="http://www.sosmath.com/matrix/markov/img12.gif" alt="\begin{displaymath}A = \left(\begin{array}{cccc} d_b&amp;amp;d_y&amp;amp;d_m&amp;amp;d_o\\ 1-d_b&amp;amp;0&amp;amp;0&amp;amp;0\\ 0&amp;amp;1-d_y&amp;amp;0&amp;amp;0\\ 0&amp;amp;0&amp;amp;1-d_m&amp;amp;1-d_o\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;Then we have &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="162" height="33" src="http://www.sosmath.com/matrix/markov/img13.gif" alt="\begin{displaymath}{\bf x}(k+1)=A\cdot {\bf x}(k).\end{displaymath}"&gt;&lt;/div&gt;  &lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;Note that the &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; &lt;i&gt;A&lt;/i&gt; is a &lt;b style="color:black;background-color:rgb(160, 255, 255)"&gt;stochastic&lt;/b&gt; &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt;! &lt;br&gt;  If, &lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;b&lt;/i&gt;&lt;/sub&gt;=.1,&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sub&gt;=.2,&lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;m&lt;/i&gt;&lt;/sub&gt;=.3 and &lt;i&gt;d&lt;/i&gt;&lt;sub&gt;&lt;i&gt;o&lt;/i&gt;&lt;/sub&gt;=.4, then &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="234" height="99" src="http://www.sosmath.com/matrix/markov/img14.gif" alt="\begin{displaymath}A = \left(\begin{array}{cccc} 0.1&amp;amp;0.2&amp;amp;0.3&amp;amp;0.4\\ 0.9&amp;amp;0&amp;amp;0&amp;amp;0\\ 0&amp;amp;0.8&amp;amp;0&amp;amp;0\\ 0&amp;amp;0&amp;amp;0.7&amp;amp;0.6\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;After easy calculations, we find the steady state vector for the age distribution in the forest: &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="306" height="99" src="http://www.sosmath.com/matrix/markov/img15.gif" alt="\begin{displaymath}\mbox{\bf p} = \left(\begin{array}{cccc} 1/3.88\\ 0.9/3.88\\... ...n{array}{cccc} 1\\ 0.9\\ 0.72\\ 1.26\\ \end{array}\right) .\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;Assume a total tree population of 50,000 trees. Suppose the forest is newly planted, i.e. &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="156" height="99" src="http://www.sosmath.com/matrix/markov/img16.gif" alt="\begin{displaymath}{\bf x}(0)=\left(\begin{array}{c}50,000\\ 0\\ 0\\ 0\end{array}\right)\end{displaymath}"&gt;&lt;/div&gt;  &lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;After 15 years, the age distribution in the forest is given by &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="444" height="99" src="http://www.sosmath.com/matrix/markov/img17.gif" alt="\begin{displaymath}{\bf x}(1) = \left(\begin{array}{cccc} 0.1&amp;amp;0.2&amp;amp;0.3&amp;amp;0.4\\ 0.9... ...\begin{array}{cccc} 0.1\\ 0.9\\ 0\\ 0\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;After 30 years, we have &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="442" height="99" src="http://www.sosmath.com/matrix/markov/img18.gif" alt="\begin{displaymath}{\bf x}(2) = \left(\begin{array}{cccc} 0.1&amp;amp;0.2&amp;amp;0.3&amp;amp;0.4\\ 0.9... ...in{array}{cccc} 0.19\\ 0.09\\ 0.72\\ 0\\ \end{array}\right)\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;and after 45 years &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="192" height="99" src="http://www.sosmath.com/matrix/markov/img19.gif" alt="\begin{displaymath}{\bf x}(3) = 50,000\left(\begin{array}{cccc} 0.19\\ 0.09\\ 0.72\\ 0\\ \end{array}\right)\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;After 15n years, where &lt;img width="99" height="33" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img20.gif" alt="$n=1,2,\cdots$"&gt;, the age distribution in the forest is given by &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="640" height="100" src="http://www.sosmath.com/matrix/markov/img21.gif" alt="\begin{displaymath}{\bf x}(n) = \left(\begin{array}{cccc} 0.1&amp;amp;0.2&amp;amp;0.3&amp;amp;0.4\\ 0.9... ...eft(\begin{array}{cccc} 1\\ 0\\ 0\\ 0\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;So the problem is to find the &lt;i&gt;n&lt;/i&gt;&lt;sup&gt;&lt;i&gt;th&lt;/i&gt;&lt;/sup&gt;-power of the &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; &lt;i&gt;A&lt;/i&gt;. We have seen that diagonalization technique may be helpful to solve this problem. Another problem deals with the long term behavior of the sequence &lt;b&gt;x&lt;/b&gt;(n) when &lt;i&gt;n&lt;/i&gt;gets large. &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;p&gt;The calculations on the example above becomes tedious. Let us illustrate the problem on a small &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt;. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Example.&lt;/b&gt; Consider the &lt;b style="color:black;background-color:rgb(160, 255, 255)"&gt;stochastic&lt;/b&gt; &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; &lt;br&gt;  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="151" height="55" src="http://www.sosmath.com/matrix/markov/img22.gif" alt="\begin{displaymath}A = \left(\begin{array}{cccc} 0.8&amp;amp;0.2\\ 0.2&amp;amp;0.8\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;Note this is a symmetric &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt;. The characteristic polynomial of &lt;i&gt;A&lt;/i&gt; is &lt;br&gt;&lt;p&gt; &lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="351" height="33" src="http://www.sosmath.com/matrix/markov/img23.gif" alt="\begin{displaymath}p(\lambda) = (0.8 - \lambda)^2-0.2^2 = (1-\lambda)(0.6 - \lambda)\end{displaymath}"&gt;&lt;/div&gt; &lt;br clear="ALL"&gt; &lt;p&gt;&lt;/p&gt;An &lt;b style="color:black;background-color:rgb(255, 255, 102)"&gt;eigenvector&lt;/b&gt; associated to 1 is &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="44" height="55" src="http://www.sosmath.com/matrix/markov/img24.gif" alt="\begin{displaymath}\left(\begin{array}{cccc} 1\\ 1\\ \end{array}\right)\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;and an &lt;b style="color:black;background-color:rgb(255, 255, 102)"&gt;eigenvector&lt;/b&gt; associated to 0.6 is &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="69" height="55" src="http://www.sosmath.com/matrix/markov/img25.gif" alt="\begin{displaymath}\left(\begin{array}{cccc} 1\\ -1\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;If we set &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="138" height="55" src="http://www.sosmath.com/matrix/markov/img26.gif" alt="\begin{displaymath}P = \left(\begin{array}{rr} 1&amp;amp;1\\ 1&amp;amp;-1\\ \end{array}\right),\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;then we have &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="225" height="55" src="http://www.sosmath.com/matrix/markov/img27.gif" alt="\begin{displaymath}P^{-1}AP = D = \left(\begin{array}{cc} 1&amp;amp;0\\ 0&amp;amp;0.6\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;So, we have &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="318" height="55" src="http://www.sosmath.com/matrix/markov/img28.gif" alt="\begin{displaymath}A^n = P D^nP^{-1} = P\left(\begin{array}{cc} 1&amp;amp;0\\ 0&amp;amp;(0.6)^n\\ \end{array}\right)P^{-1}.\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;When &lt;i&gt;n&lt;/i&gt; gets large, the matrices &lt;i&gt;A&lt;/i&gt;&lt;sup&gt;&lt;i&gt;n&lt;/i&gt;&lt;/sup&gt; get closer to the &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt; &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="134" height="55" src="http://www.sosmath.com/matrix/markov/img29.gif" alt="\begin{displaymath}P\left(\begin{array}{cc} 1&amp;amp;0\\ 0&amp;amp;0\\ \end{array}\right)P^{-1}.\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;So the sequence of vectors defined by &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="264" height="33" src="http://www.sosmath.com/matrix/markov/img30.gif" alt="\begin{displaymath}X(n+1) = A X(n),\;\;\mbox{given $X(0)$}\end{displaymath}"&gt;&lt;/div&gt;  &lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;will get closer to &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="245" height="55" src="http://www.sosmath.com/matrix/markov/img31.gif" alt="\begin{displaymath}X(\infty) = P\left(\begin{array}{cc} 1&amp;amp;0\\ 0&amp;amp;0\\ \end{array}\right)P^{-1}X(0)\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;when &lt;i&gt;n&lt;/i&gt; gets large. If &lt;img width="122" height="65" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img32.gif" alt="$X(0) = \displaystyle \left(\begin{array}{cc} a\\ b\\ \end{array}\right)$"&gt;, then we have &lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="540" height="55" src="http://www.sosmath.com/matrix/markov/img33.gif" alt="\begin{displaymath}X(\infty) = \left(\begin{array}{rr} 1&amp;amp;1\\ 1&amp;amp;-1\\ \end{array... ...ac{a+b}{2}\left(\begin{array}{cc} 1\\ 1\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;Note that the vector &lt;img width="55" height="37" align="MIDDLE" border="0" src="http://www.sosmath.com/matrix/markov/img34.gif" alt="$X(\infty)$"&gt; is proportional to the unique steady state vector of &lt;i&gt;A&lt;/i&gt; &lt;br&gt;  &lt;p&gt;&lt;/p&gt;&lt;div align="CENTER"&gt;&lt;img width="111" height="55" src="http://www.sosmath.com/matrix/markov/img35.gif" alt="\begin{displaymath}{\bf p} = \frac{1}{2}\left(\begin{array}{cc} 1\\ 1\\ \end{array}\right).\end{displaymath}"&gt;&lt;/div&gt;&lt;br clear="ALL"&gt;&lt;p&gt;&lt;/p&gt;This is not surprising. In fact there is a general result similar to the one above for any &lt;b style="color:black;background-color:rgb(160, 255, 255)"&gt;stochastic&lt;/b&gt; &lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;matrix&lt;/b&gt;.&lt;p&gt;  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;img src="http://www.sosmath.com/gif/bar.gif"&gt;&lt;/center&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;center&gt;&lt;i&gt;&lt;b&gt;&lt;a href="http://www.sosmath.com/geometry/geometry.html" target="_blank"&gt;[Geometry]&lt;/a&gt; &lt;a href="http://www.sosmath.com/algebra/algebra.html" target="_blank"&gt;[Algebra]&lt;/a&gt; &lt;a href="http://www.sosmath.com/trig/trig.html" target="_blank"&gt;[Trigonometry ]&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/center&gt;  &lt;i&gt;&lt;b&gt;&lt;center&gt;&lt;a href="http://www.sosmath.com/calculus/calculus.html" target="_blank"&gt;[Calculus]&lt;/a&gt; &lt;a href="http://www.sosmath.com/diffeq/diffeq.html" target="_blank"&gt;[Differential Equations]&lt;/a&gt; &lt;a href="http://www.sosmath.com/matrix/matrix.html" target="_blank"&gt;[&lt;b style="color:black;background-color:rgb(153, 255, 153)"&gt;Matrix&lt;/b&gt; Algebra]&lt;/a&gt;&lt;/center&gt;  &lt;center&gt;&lt;p&gt;&lt;img src="http://www.sosmath.com/gif/lighthouse.gif" align="bottom"&gt;&lt;a href="http://www.sosmath.com/index.html" target="_blank"&gt;S.O.S MATH: Home Page&lt;/a&gt;&lt;/p&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Do you need more help? Please post your question on our &lt;a href="http://www.sosmath.com/CBB" target="_blank"&gt;S.O.S. Mathematics CyberBoard&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;img src="http://www.sosmath.com/gif/sailbar.gif"&gt;&lt;p&gt;&lt;/p&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Author&lt;/b&gt;: &lt;a href="http://www.sosmath.com/mail.php" target="_blank"&gt;M.A. Khamsi&lt;/a&gt;&lt;/p&gt;&lt;center&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span&gt;&lt;ins style="display:inline-table;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;min-height:90px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;width:728px"&gt;&lt;ins style="display:block;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;min-height:90px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;width:728px"&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/span&gt;&lt;div&gt;  &lt;img src="http://www.sosmath.com/openx/www/delivery/lg.php?bannerid=13&amp;amp;campaignid=19&amp;amp;zoneid=8&amp;amp;loc=1&amp;amp;referer=http%3A%2F%2Fwebcache.googleusercontent.com%2Fsearch%3Fq%3Dcache%3A4tWod_PCu8QJ%3Awww.sosmath.com%2Fmatrix%2Fmarkov%2Fmarkov.html%2Beigenvector%2Bof%2Ba%2Bstochastic%2Bmatrix%26cd%3D6%26hl%3Den%26ct%3Dclnk%26gl%3Din%26source%3Dwww.google.co.in&amp;amp;cb=c021f54e00" width="0" height="0" alt="" style="width:0px;min-height:0px"&gt;&lt;/div&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;font size="1" color="darkgray"&gt;Copyright © 1999-2011 MathMedics, LLC. All rights reserved. &lt;br&gt;&lt;a href="http://www.sosmath.com/mail.php" target="_blank"&gt;Contact us&lt;/a&gt; &lt;br&gt; Math Medics, LLC. - P.O. Box 12395 - El Paso TX 79913 - USA &lt;br&gt; 800 users online during the last hour&lt;/font&gt;&lt;/center&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3072466506584871361?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3072466506584871361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3072466506584871361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3072466506584871361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3072466506584871361'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/07/eigenvector-nice-explanation.html' title='eigenvector nice explanation'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8629877065226276149</id><published>2011-07-28T12:00:00.002+05:30</published><updated>2011-07-28T12:02:42.894+05:30</updated><title type='text'>pagerank/eigenvector</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="gmail_quote"&gt;&lt;a href="http://www.ams.org/samplings/feature-column/fcarc-pagerank"&gt;Source&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: white; color: black; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 100%; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="background-color: #003366; background-repeat: initial initial; clear: both; color: white; margin-bottom: 20px; min-height: 35px; padding-top: 0px; width: 990px;"&gt;   &lt;tbody&gt;&lt;tr&gt;&lt;td align="right" width="250"&gt;&lt;a href="http://www.ams.org/" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: white; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;&lt;img alt="AMS" border="0" height="29" src="http://www.ams.org/images/ribbonBanner.gif" style="border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; margin-right: 3px; padding-right: 6px;" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;   &lt;td align="left" valign="middle"&gt;&lt;div&gt;&lt;a href="http://www.ams.org/publications/publications" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;Publications&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/meetings/meetings" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;Meetings&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/profession/profession" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;The Profession&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/membership/membership" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;Membership&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/programs/programs" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;Programs&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/samplings/samplings" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;Math Samplings&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/policy/policy" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;Policy &amp;amp; Advocacy&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/news/inthenews" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;In the News&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.ams.org/about-us/about-us" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; border-left-style: none; border-right-style: none; border-top-style: none; color: white; margin-left: 3px; margin-right: 3px; padding-right: 6px; text-decoration: none;" target="_blank"&gt;About the AMS&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right" bgcolor="#FFFFFF" colspan="2"&gt;&lt;div style="float: right; margin-right: 40px; margin-top: 10px;"&gt;&lt;div&gt;&lt;a href="http://www.ams.org/samplings/feature-column/fcarc-pagerank#" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: white; float: left; margin-right: 3px; padding-bottom: 0px; padding-left: 2px; padding-right: 6px; padding-top: 0px; text-decoration: none;" target="_blank" title="Send to Facebook"&gt;&lt;span style="background-color: initial; background-repeat: no-repeat no-repeat; display: block; float: left; line-height: 16px; min-height: 16px; overflow-x: hidden; overflow-y: hidden; width: 16px;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.ams.org/samplings/feature-column/fcarc-pagerank#" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: white; float: left; margin-right: 3px; padding-bottom: 0px; padding-left: 2px; padding-right: 6px; padding-top: 0px; text-decoration: none;" target="_blank" title="Email"&gt;&lt;span style="background-color: initial; background-repeat: no-repeat no-repeat; display: block; float: left; line-height: 16px; min-height: 16px; overflow-x: hidden; overflow-y: hidden; width: 16px;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.ams.org/samplings/feature-column/fcarc-pagerank#" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: white; float: left; margin-right: 3px; padding-bottom: 0px; padding-left: 2px; padding-right: 6px; padding-top: 0px; text-decoration: none;" target="_blank" title="Save to Favorites"&gt;&lt;span style="background-color: initial; background-repeat: no-repeat no-repeat; display: block; float: left; line-height: 16px; min-height: 16px; overflow-x: hidden; overflow-y: hidden; width: 16px;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.ams.org/samplings/feature-column/fcarc-pagerank#" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: white; float: left; margin-right: 3px; padding-bottom: 0px; padding-left: 2px; padding-right: 6px; padding-top: 0px; text-decoration: none;" target="_blank" title="Print"&gt;&lt;span style="background-color: initial; background-repeat: no-repeat no-repeat; display: block; float: left; line-height: 16px; min-height: 16px; overflow-x: hidden; overflow-y: hidden; width: 16px;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="display: inline; float: left; line-height: 16px; margin-bottom: 0px; margin-left: 5px; margin-right: 5px; margin-top: 0px;"&gt;|&lt;/span&gt;&lt;a href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=txmtxm" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: white; float: left; margin-right: 3px; padding-bottom: 0px; padding-left: 2px; padding-right: 6px; padding-top: 0px; text-decoration: none;" target="_blank" title="View more services"&gt;&lt;span style="background-color: initial; background-repeat: no-repeat no-repeat; display: block; float: left; line-height: 16px; margin-right: 4px; min-height: 16px; overflow-x: hidden; overflow-y: hidden; width: 16px;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 960px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" bgcolor="#000000" valign="top"&gt;&lt;div style="background-color: black; background-repeat: initial initial; color: white; width: 960px;"&gt;&lt;a href="http://www.ams.org/featurecolumn/" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;" target="_blank"&gt;&lt;img border="0" height="75" src="http://www.ams.org/featurecolumn/images/feature-column-banner.jpg" width="750" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="top"&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="75%"&gt;&lt;img alt=" " height="5" src="http://www.ams.org/featurecolumn/images/x.gif" width="1" /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr valign="bottom"&gt;&lt;td align="center" valign="top"&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td align="top" colspan="2" rowspan="2" width="20"&gt;&lt;img alt=" " height="20" src="http://www.ams.org/featurecolumn/images/ver_crnr_top_left.gif" width="20" /&gt;&lt;/td&gt;   &lt;td bgcolor="#cfcfcf" width="100%"&gt;&lt;img alt=" " height="2" src="http://www.ams.org/featurecolumn/images/x.gif" width="1" /&gt;&lt;/td&gt;&lt;td align="top" colspan="2" rowspan="2" width="20"&gt;&lt;img alt=" " height="20" src="http://www.ams.org/featurecolumn/images/ver_crnr_top_right.gif" width="20" /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;img alt=" " height="18" src="http://www.ams.org/featurecolumn/images/x.gif" width="1" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td bgcolor="#cfcfcf" width="2"&gt;&lt;img alt=" " src="http://www.ams.org/featurecolumn/images/x.gif" width="2" /&gt;&lt;/td&gt;   &lt;td width="18"&gt;&lt;img alt=" " src="http://www.ams.org/featurecolumn/images/x.gif" width="18" /&gt;&lt;/td&gt;&lt;td&gt;&lt;table border="0" cellpadding="5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" rowspan="2" valign="top"&gt;&lt;h1 style="background-color: white; color: #993300; font-size: 1.5em; margin-bottom: 3px; margin-top: 5px;"&gt;   How Google Finds Your Needle in the Web's Haystack&lt;/h1&gt;&lt;div style="background-color: white; background-repeat: initial initial; color: #6699cc; font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: left;"&gt;As we'll see, the trick is to ask the web itself to rank the importance of pages...&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; margin-top: 5px; text-align: right;"&gt;&lt;span style="font-weight: bold;"&gt;David Austin&lt;/span&gt;&lt;br /&gt;   Grand Valley State University&lt;br /&gt;&lt;a href="" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;"&gt;david at merganser.math.gvsu.edu&lt;/a&gt;&amp;nbsp;&lt;img border="0" height="11" src="http://www.ams.org/featurecolumn/images/email.gif" width="24" /&gt;&lt;/div&gt;&lt;table align="right" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="middle"&gt;&lt;span style="font-size: x-small;"&gt;&lt;img align="left" alt="Email to a friend" height="26" src="http://www.ams.org/featurecolumn/images/mail.gif" width="35" /&gt;&lt;a href="mailto:+Enter_Colleague's_Address?subject=Feature%20Column%20from%20the%20AMS&amp;amp;body=Dear%20Colleague,%20%3Cbr%20/%3E%3Cbr%20/%3EI%20found%20this%20%3Cem%3E%3Cstrong%3EFeature%20Column%3C/em%3E%3C/strong%3E%20article%20on%20the%20AMS%20website%20and%20thought%20you%20might%20enjoy%20reading%20it.%3Cbr%20/%3EYou%20may%20access%20the%20article%20at%20this%20URL:%20%3Cbr%20/%3E%3Cbr%20/%3E" name="1316f6fb124bcbc1_1316bb4072e0321f_mailToLink" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 20px; text-decoration: none;" target="_blank"&gt;Mail to a friend&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;   &lt;td valign="middle"&gt;&lt;span style="font-size: x-small;"&gt;&lt;img align="left" alt="Print this article" border="0" height="28" src="http://www.ams.org/featurecolumn/images/printer.gif" width="35" /&gt;&lt;a href="" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;"&gt;Print this article&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Imagine a library containing 25 billion documents but with no centralized organization and no librarians. In addition, anyone may add a document at any time without telling anyone. You may feel sure that one of the documents contained in the collection has a piece of information that is vitally important to you, and, being impatient like most of us, you'd like to find it in a matter of seconds. How would you go about doing it?&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Posed in this way, the problem seems impossible. Yet this description is not too different from the World Wide Web, a huge, highly-disorganized collection of documents in many different formats. Of course, we're all familiar with search engines (perhaps you found this article using one) so we know that there is a solution. This article will describe Google's PageRank algorithm and how it returns pages from the web's collection of 25 billion documents that match search criteria so well that "google" has become a widely used verb.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;a href="" name="1316f6fb124bcbc1_1316bb4072e0321f_2"&gt;&lt;/a&gt;Most search engines, including Google, continually run an army of computer programs that retrieve pages from the web, index the words in each document, and store this information in an efficient format. Each time a user asks for a web search using a search phrase, such as "search engine," the search engine determines all the pages on the web that contains the words in the search phrase. (Perhaps additional information such as the distance between the words "search" and "engine" will be noted as well.) Here is the problem: Google now claims to index 25 billion pages. Roughly 95% of the text in web pages is composed from a mere 10,000 words. This means that, for most searches, there will be a huge number of pages containing the words in the search phrase. What is needed is a means of ranking the importance of the pages that fit the search criteria so that the pages can be sorted with the most important pages at the top of the list.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;One way to determine the importance of pages is to use a human-generated ranking. For instance, you may have seen pages that consist mainly of a large number of links to other resources in a particular area of interest. Assuming the person maintaining this page is reliable, the pages referenced are likely to be useful. Of course, the list may quickly fall out of date, and the person maintaining the list may miss some important pages, either unintentionally or as a result of an unstated bias.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Google's PageRank algorithm assesses the importance of web pages without human evaluation of the content. In fact, Google feels that the value of its service is largely in its ability to provide unbiased results to search queries; Google claims, "the heart of our software is PageRank." As we'll see, the trick is to ask the web itself to rank the importance of pages.&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;How to tell who's important&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;If you've ever created a web page, you've probably included links to other pages that contain valuable, reliable information. By doing so, you are affirming the importance of the pages you link to. Google's PageRank algorithm stages a monthly popularity contest among all pages on the web to decide which pages are most important. The fundamental idea put forth by PageRank's creators, Sergey Brin and Lawrence Page, is this: the importance of a page is judged by the number of pages linking to it as well as their importance.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;We will assign to each web page&amp;nbsp;&lt;em&gt;P&lt;/em&gt;&amp;nbsp;a measure of its importance&amp;nbsp;&lt;em&gt;I(P)&lt;/em&gt;, called the page's PageRank. At various sites, you may find an&lt;a href="http://www.checkpagerank.com/" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;approximation of a page's PageRank.&lt;/a&gt;&amp;nbsp;(For instance, the home page of The American Mathematical Society currently has a PageRank of 8 on a scale of 10. Can you find any pages with a PageRank of 10?) This reported value is only an approximation since Google declines to publish actual PageRanks in an effort to frustrate those would manipulate the rankings.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Here's how the PageRank is determined. Suppose that page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;has&amp;nbsp;&lt;em&gt;l&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;links. If one of those links is to page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;, then&amp;nbsp;&lt;em&gt;P&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;will pass on 1/&lt;em&gt;l&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;of its importance to&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;. The importance ranking of&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;is then the sum of all the contributions made by pages linking to it. That is, if we denote the set of pages linking to&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;by&amp;nbsp;&lt;em&gt;B&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;, then&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  I(P_i)=\sum_{P_j\in B_i} \frac{I(P_j)}{l_j}  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_1.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;This may remind you of the chicken and the egg: to determine the importance of a page, we first need to know the importance of all the pages linking to it. However, we may recast the problem into one that is more mathematically familiar.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Let's first create a matrix, called the hyperlink matrix,&amp;nbsp;&lt;img align="absmiddle" alt="$ {\bf H}=[H_{ij}] $ " src="http://www.ams.org/featurecolumn/images/december2006/index_2.gif" /&gt;&amp;nbsp;in which the entry in the&amp;nbsp;&lt;em&gt;i&lt;sup&gt;th&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;row and&amp;nbsp;&lt;em&gt;j&lt;sup&gt;th&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;column is&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  H_{ij}=\left\{\begin{array}{ll}1/l_{j} &amp;amp;  	\hbox{if } P_j\in B_i \\ 	0 &amp;amp; \hbox{otherwise} 	\end{array}\right.  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_3.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Notice that&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;has some special properties. First, its entries are all nonnegative. Also, the sum of the entries in a column is one unless the page corresponding to that column has no links. Matrices in which all the entries are nonnegative and the sum of the entries in every column is one are called&amp;nbsp;&lt;em&gt;stochastic&lt;/em&gt;; they will play an important role in our story.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;We will also form a vector&amp;nbsp;&lt;img align="absmiddle" alt="$ I=[I(P_i)] $ " src="http://www.ams.org/featurecolumn/images/december2006/index_4.gif" /&gt;&amp;nbsp;whose components are PageRanks--that is, the importance rankings--of all the pages. The condition above defining the PageRank may be expressed as&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  I = {\bf H}I  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_5.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In other words, the vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;is an eigenvector of the matrix&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;with eigenvalue 1. We also call this a&amp;nbsp;&lt;em&gt;stationary vector&lt;/em&gt;&amp;nbsp;of&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Let's look at an example. Shown below is a representation of a small collection (eight) of web pages with links represented by arrows.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/goodnet.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;The corresponding matrix is&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table cellpadding="20"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="center"&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/matrix.0.gif" /&gt;&lt;/td&gt;   &lt;td valign="center"&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;with stationary vector&lt;/div&gt;&lt;/td&gt;&lt;td valign="center"&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/eigenvector.0.gif" /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;This shows that page 8 wins the popularity contest. Here is the same figure with the web pages shaded in such a way that the pages with higher PageRanks are lighter.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/goodnet.shaded.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;   &lt;span style="color: #993300;"&gt;Computing&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;There are many ways to find the eigenvectors of a square matrix. However, we are in for a special challenge since the matrix&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;is a square matrix with one column for each web page indexed by Google. This means that&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;has about&amp;nbsp;&lt;em&gt;n =&amp;nbsp;&lt;/em&gt;25 billion columns and rows. However, most of the entries in&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;are zero; in fact, studies show that web pages have an average of about 10 links, meaning that, on average, all but 10 entries in every column are zero. We will choose a method known as the&amp;nbsp;&lt;em&gt;power method&lt;/em&gt;&amp;nbsp;for finding the stationary vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;of the matrix&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;How does the power method work? We begin by choosing a vector&amp;nbsp;&lt;em&gt;I&lt;sup&gt;&amp;nbsp;0&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;as a candidate for&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;and then producing a sequence of vectors&amp;nbsp;&lt;em&gt;I&lt;sup&gt;&amp;nbsp;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;by&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  I^{k+1}={\bf H}I^k  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_6.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;The method is founded on the following general principle that we will soon investigate.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table bgcolor="#ccccff" border="1" cellpadding="20"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;em&gt;&lt;b&gt;General principle:&lt;/b&gt;&amp;nbsp;The sequence&amp;nbsp;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;will converge to the stationary vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;.&lt;/em&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;We will illustrate with the example above.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="1" cellpadding="5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;0&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;1&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;2&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;3&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;4&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;...&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;60&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;61&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.0278&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.06&lt;/td&gt;&lt;td&gt;0.06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.5&lt;/td&gt;&lt;td&gt;0.25&lt;/td&gt;&lt;td&gt;0.1667&lt;/td&gt;&lt;td&gt;0.0833&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.0675&lt;/td&gt;&lt;td&gt;0.0675&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;   &lt;td&gt;0.5&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.03&lt;/td&gt;&lt;td&gt;0.03&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.5&lt;/td&gt;&lt;td&gt;0.25&lt;/td&gt;&lt;td&gt;0.1667&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.0675&lt;/td&gt;&lt;td&gt;0.0675&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;  &lt;td&gt;0.25&lt;/td&gt;&lt;td&gt;0.1667&lt;/td&gt;&lt;td&gt;0.1111&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.0975&lt;/td&gt;&lt;td&gt;0.0975&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.25&lt;/td&gt;&lt;td&gt;0.1806&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.2025&lt;/td&gt;&lt;td&gt;0.2025&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.0833&lt;/td&gt;&lt;td&gt;0.0972&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.18&lt;/td&gt;&lt;td&gt;0.18&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0.0833&lt;/td&gt;&lt;td&gt;0.3333&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;td&gt;0.295&lt;/td&gt;&lt;td&gt;0.295&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;It is natural to ask what these numbers mean. Of course, there can be no absolute measure of a page's importance, only relative measures for comparing the importance of two pages through statements such as "Page A is twice as important as Page B." For this reason, we may multiply all the importance rankings by some fixed quantity without affecting the information they tell us. In this way, we will always assume, for reasons to be explained shortly, that the sum of all the popularities is one.&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;Three important questions&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Three questions naturally come to mind:&lt;/div&gt;&lt;ul&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;Does the sequence&amp;nbsp;&lt;em&gt;I&lt;sup&gt;&amp;nbsp;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;always converge?&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;Is the vector to which it converges independent of the initial vector&amp;nbsp;&lt;em&gt;I&lt;sup&gt;&amp;nbsp;0&lt;/sup&gt;&lt;/em&gt;?&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;Do the importance rankings contain the information that we want?&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Given the current method, the answer to all three questions is "No!" However, we'll see how to modify our method so that we can answer "yes" to all three.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Let's first look at a very simple example. Consider the following small web consisting of two web pages, one of which links to the other:&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table cellpadding="20"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/dangling.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;with matrix&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/matrix.3.gif" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Here is one way in which our algorithm could proceed:&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="1" cellpadding="5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;0&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;1&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;2&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;3&lt;/sup&gt;=&lt;em&gt;I&lt;/em&gt;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td align="center"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td align="center"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In this case, the importance rating of both pages is zero, which tells us nothing about the relative importance of these pages. The problem is that&amp;nbsp;&lt;em&gt;P&lt;sub&gt;2&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;has no links. Consequently, it takes some of the importance from page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;1&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;in each iterative step but does not pass it on to any other page. This has the effect of draining all the importance from the web. Pages with no links are called&amp;nbsp;&lt;em&gt;dangling nodes&lt;/em&gt;, and there are, of course, many of them in the real web we want to study. We'll see how to deal with them in a minute, but first let's consider a new way of thinking about the matrix&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;and stationary vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;.&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;A probabilitistic interpretation of&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Imagine that we surf the web at random; that is, when we find ourselves on a web page, we randomly follow one of its links to another page after one second. For instance, if we are on page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;with&amp;nbsp;&lt;em&gt;l&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;links, one of which takes us to page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;, the probability that we next end up on&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;page is then&amp;nbsp;&lt;img align="absmiddle" alt="$ 1/l_j $ " src="http://www.ams.org/featurecolumn/images/december2006/index_7.gif" /&gt;&amp;nbsp;.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;As we surf randomly, we will denote by&amp;nbsp;&lt;img align="absmiddle" alt="$ T_j $ " src="http://www.ams.org/featurecolumn/images/december2006/index_8.gif" /&gt;&amp;nbsp;the fraction of time that we spend on page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;. Then the fraction of the time that we end up on page&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;page coming from&amp;nbsp;&lt;em&gt;P&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;is&amp;nbsp;&lt;img align="absmiddle" alt="$ T_j/l_j $ " src="http://www.ams.org/featurecolumn/images/december2006/index_9.gif" /&gt;&amp;nbsp;. If we end up on&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;, we must have come from a page linking to it. This means that&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  T_i = \sum_{P_j\in B_i} T_j/l_j  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_10.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;where the sum is over all the pages&amp;nbsp;&lt;em&gt;P&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;linking to&amp;nbsp;&lt;em&gt;P&lt;sub&gt;i&lt;/sub&gt;&lt;/em&gt;. Notice that this is the same equation defining the PageRank rankings and so&amp;nbsp;&lt;img align="absmiddle" alt="$  I(P_i) = T_i $ " src="http://www.ams.org/featurecolumn/images/december2006/index_11.gif" /&gt;&amp;nbsp;. This allows us to interpret a web page's PageRank as the fraction of time that a random surfer spends on that web page. This may make sense if you have ever surfed around for information about a topic you were unfamiliar with: if you follow links for a while, you find yourself coming back to some pages more often than others. Just as "All roads lead to Rome," these are typically more important pages.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Notice that, given this interpretation, it is natural to require that the sum of the entries in the PageRank vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;be one.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Of course, there is a complication in this description: If we surf randomly, at some point we will surely get stuck at a dangling node, a page with no links. To keep going, we will choose the next page at random; that is, we pretend that a dangling node has a link to every other page. This has the effect of modifying the hyperlink matrix&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;by replacing the column of zeroes corresponding to a dangling node with a column in which each entry is 1/&lt;em&gt;n&lt;/em&gt;. We call this new matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In our previous example, we now have&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table cellpadding="5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/dangling.jpg" /&gt;&lt;/td&gt;&lt;td&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;with matrix&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/matrix.4.gif" /&gt;&lt;/td&gt;&lt;td&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;and eigenvector&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/eigenvector.4.gif" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In other words, page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;2&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;has twice the importance of page&amp;nbsp;&lt;em&gt;P&lt;sub&gt;1&lt;/sub&gt;&lt;/em&gt;, which may feel about right to you.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;The matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;has the pleasant property that the entries are nonnegative and the sum of the entries in each column is one. In other words, it is stochastic. Stochastic matrices have several properties that will prove useful to us. For instance, stochastic matrices always have stationary vectors.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;For later purposes, we will note that&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;is obtained from&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;in a simple way. If&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;&amp;nbsp;is the matrix whose entries are all zero except for the columns corresponding to dangling nodes, in which each entry is 1/&lt;em&gt;n&lt;/em&gt;, then&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;=&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;+&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;.&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;How does the power method work?&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In general, the power method is a technique for finding an eigenvector of a square matrix corresponding to the eigenvalue with the largest magnitude. In our case, we are looking for an eigenvector of&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;corresponding to the eigenvalue 1. Under the best of circumstances, to be described soon, the other eigenvalues of&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;will have a magnitude smaller than one; that is,&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda| &amp;lt; 1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_12.gif" /&gt;&amp;nbsp;if&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda $ " src="http://www.ams.org/featurecolumn/images/december2006/index_13.gif" /&gt;&amp;nbsp;is an eigenvalue of&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;other than 1.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;We will assume that the eigenvalues of&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;are&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_j $ " src="http://www.ams.org/featurecolumn/images/december2006/index_14.gif" /&gt;&amp;nbsp;and that&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  1 = \lambda_1 &amp;gt; |\lambda_2| \geq |\lambda_3| \geq \ldots \geq |\lambda_n|   \] " src="http://www.ams.org/featurecolumn/images/december2006/index_15.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;We will also assume that there is a basis&amp;nbsp;&lt;em&gt;v&lt;sub&gt;j&lt;/sub&gt;&lt;/em&gt;&amp;nbsp;of eigenvectors for&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;with corresponding eigenvalues&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_j $ " src="http://www.ams.org/featurecolumn/images/december2006/index_16.gif" /&gt;&amp;nbsp;. This assumption is not necessarily true, but with it we may more easily illustrate how the power method works. We may write our initial vector&amp;nbsp;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;0&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;as&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  I^0 = c_1v_1+c_2v_2 + \ldots + c_nv_n  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_17.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Then&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt=" \begin{eqnarray*} I^1={\bf S}I^0 &amp;amp;=&amp;amp;c_1v_1+c_2\lambda_2v_2 + \ldots + c_n\lambda_nv_n \\ I^2={\bf S}I^1 &amp;amp;=&amp;amp;c_1v_1+c_2\lambda_2^2v_2 + \ldots + c_n\lambda_n^2v_n \\ \vdots &amp;amp; &amp;amp; \vdots \\ I^{k}={\bf S}I^{k-1} &amp;amp;=&amp;amp;c_1v_1+c_2\lambda_2^kv_2 + \ldots + c_n\lambda_n^kv_n \\ \end{eqnarray*}  " src="http://www.ams.org/featurecolumn/images/december2006/index_18.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Since the eigenvalues&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_j $ " src="http://www.ams.org/featurecolumn/images/december2006/index_19.gif" /&gt;&amp;nbsp;with&amp;nbsp;&lt;img align="absmiddle" alt="$ j\geq2 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_20.gif" /&gt;&amp;nbsp;have magnitude smaller than one, it follows that&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_j^k\to0 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_21.gif" /&gt;&amp;nbsp;if&amp;nbsp;&lt;img align="absmiddle" alt="$ j\geq2 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_22.gif" /&gt;&amp;nbsp;and therefore&amp;nbsp;&lt;img align="absmiddle" alt="$ I^k\to I=c_1v_1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_23.gif" /&gt;&amp;nbsp;, an eigenvector corresponding to the eigenvalue 1.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;It is important to note here that the rate at which&amp;nbsp;&lt;img align="absmiddle" alt="$ I^k\to I $ " src="http://www.ams.org/featurecolumn/images/december2006/index_24.gif" /&gt;&amp;nbsp;is determined by&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2| $ " src="http://www.ams.org/featurecolumn/images/december2006/index_25.gif" /&gt;&amp;nbsp;. When&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2| $ " src="http://www.ams.org/featurecolumn/images/december2006/index_26.gif" /&gt;&amp;nbsp;is relatively close to 0, then&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_2^k\to0 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_27.gif" /&gt;&amp;nbsp;relatively quickly. For instance, consider the matrix&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  {\bf S} = \left[\begin{array}{cc}0.65 &amp;amp; 0.35 \\ 0.35 &amp;amp; 0.65 \end{array}\right].   \] " src="http://www.ams.org/featurecolumn/images/december2006/index_28.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;The eigenvalues of this matrix are&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_1=1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_29.gif" /&gt;&amp;nbsp;and&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_2=0.3 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_30.gif" /&gt;&amp;nbsp;. In the figure below, we see the vectors&amp;nbsp;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;, shown in red, converging to the stationary vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;shown in green.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/power.1.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Now consider the matrix&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  {\bf S} = \left[\begin{array}{cc}0.85 &amp;amp; 0.15 \\ 0.15 &amp;amp; 0.85 \end{array}\right].   \] " src="http://www.ams.org/featurecolumn/images/december2006/index_31.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Here the eigenvalues are&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_1=1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_32.gif" /&gt;&amp;nbsp;and&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_2=0.7 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_33.gif" /&gt;&amp;nbsp;. Notice how the vectors&amp;nbsp;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;converge more slowly to the stationary vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;in this example in which the second eigenvalue has a larger magnitude.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/power.0.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;When things go wrong&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In our discussion above, we assumed that the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;had the property that&amp;nbsp;&lt;img align="absmiddle" alt="$ \lambda_1=1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_34.gif" /&gt;&amp;nbsp;and&amp;nbsp;&lt;img align="absmiddle" alt="$  |\lambda_2|&amp;lt;1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_35.gif" /&gt;&amp;nbsp;. This does not always happen, however, for the matrices&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;that we might find.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Suppose that our web looks like this:&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/cyclic.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In this case, the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;is&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/matrix.1.gif" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Then we see&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="1" cellpadding="5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;0&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;1&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;2&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;3&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;4&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;&lt;td bgcolor="#ffffcc"&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;5&lt;/sup&gt;&lt;/em&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In this case, the sequence of vectors&amp;nbsp;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;fails to converge. Why is this? The second eigenvalue of the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;satisfies&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2|=1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_36.gif" /&gt;&amp;nbsp;and so the argument we gave to justify the power method no longer holds.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;To guarantee that&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2|&amp;lt;1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_37.gif" /&gt;&amp;nbsp;, we need the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;to be&amp;nbsp;&lt;em&gt;primitive&lt;/em&gt;. This means that, for some&amp;nbsp;&lt;em&gt;m&lt;/em&gt;,&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&lt;sup&gt;&lt;em&gt;m&lt;/em&gt;&lt;/sup&gt;&amp;nbsp;has all positive entries. In other words, if we are given two pages, it is possible to get from the first page to the second after following&amp;nbsp;&lt;em&gt;m&lt;/em&gt;&amp;nbsp;links. Clearly, our most recent example does not satisfy this property. In a moment, we will see how to modify our matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;to obtain a primitive, stochastic matrix, which therefore satisfies&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2|&amp;lt;1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_38.gif" /&gt;&amp;nbsp;.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Here's another example showing how our method can fail. Consider the web shown below.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/reducible.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;In this case, the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;is&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;table cellpadding="20"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="center"&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/matrix.2.gif" /&gt;&lt;/td&gt;   &lt;td valign="center"&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;with stationary vector&lt;/div&gt;&lt;/td&gt;&lt;td valign="center"&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/eigenvector.2.gif" /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Notice that the PageRanks assigned to the first four web pages are zero. However, this doesn't feel right: each of these pages has links coming to them from other pages. Clearly, somebody likes these pages! Generally speaking, we want the importance rankings of all pages to be positive. The problem with this example is that it contains a smaller web within it, shown in the blue box below.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.ams.org/featurecolumn/images/december2006/reduciblewithbox.2.jpg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Links come into this box, but none go out. Just as in the example of the dangling node we discussed above, these pages form an "importance sink" that drains the importance out of the other four pages. This happens when the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;is&amp;nbsp;&lt;em&gt;reducible&lt;/em&gt;; that is,&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;can be written in block form as&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  S=\left[\begin{array}{cc} * &amp;amp; 0 \\ * &amp;amp; * \end{array}\right].  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_39.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Indeed, if the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;is irreducible, we can guarantee that there is a stationary vector with all positive entries.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;A web is called&amp;nbsp;&lt;em&gt;strongly connected&lt;/em&gt;&amp;nbsp;if, given any two pages, there is a way to follow links from the first page to the second. Clearly, our most recent example is not strongly connected. However, strongly connected webs provide irreducible matrices&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;To summarize, the matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;is stochastic, which implies that it has a stationary vector. However, we need&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;to also be (a) primitive so that&lt;img align="absmiddle" alt="$ |\lambda_2|&amp;lt;1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_40.gif" /&gt;&amp;nbsp;and (b) irreducible so that the stationary vector has all positive entries.&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;A final modification&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;To find a new matrix that is both primitive and irreducible, we will modify the way our random surfer moves through the web. As it stands now, the movement of our random surfer is determined by&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;: either he will follow one of the links on his current page or, if at a page with no links, randomly choose any other page to move to. To make our modification, we will first choose a parameter&amp;nbsp;&lt;img align="absmiddle" alt="$\alpha$ " src="http://www.ams.org/featurecolumn/images/december2006/xx.gif" /&gt;&amp;nbsp;between 0 and 1. Now suppose that our random surfer moves in a slightly different way. With probability&amp;nbsp;&lt;img align="absmiddle" alt="$\alpha$ " src="http://www.ams.org/featurecolumn/images/december2006/xx.gif" /&gt;&amp;nbsp;, he is guided by&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;. With probability&amp;nbsp;&lt;img align="absmiddle" alt="$ 1-\alpha $ " src="http://www.ams.org/featurecolumn/images/december2006/index_42.gif" /&gt;&amp;nbsp;, he chooses the next page at random.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;If we denote by&amp;nbsp;&lt;strong&gt;1&lt;/strong&gt;&amp;nbsp;the&amp;nbsp;&lt;img align="absmiddle" alt="$ n\times n $ " src="http://www.ams.org/featurecolumn/images/december2006/index_43.gif" /&gt;&amp;nbsp;matrix whose entries are all one, we obtain the&amp;nbsp;&lt;em&gt;Google matrix&lt;/em&gt;:&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  {\bf G}=\alpha{\bf S}+ (1-\alpha)\frac{1}{n}{\bf 1}  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_44.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Notice now that&amp;nbsp;&lt;strong&gt;G&lt;/strong&gt;&amp;nbsp;is stochastic as it is a combination of stochastic matrices. Furthermore, all the entries of&amp;nbsp;&lt;strong&gt;G&lt;/strong&gt;&amp;nbsp;are positive, which implies that&amp;nbsp;&lt;strong&gt;G&lt;/strong&gt;is both primitive and irreducible. Therefore,&amp;nbsp;&lt;strong&gt;G&lt;/strong&gt;&amp;nbsp;has a unique stationary vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;that may be found using the power method.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;The role of the parameter&amp;nbsp;&lt;img align="absmiddle" alt="$\alpha$ " src="http://www.ams.org/featurecolumn/images/december2006/xx.gif" /&gt;&amp;nbsp;is an important one. Notice that if&amp;nbsp;&lt;img align="absmiddle" alt="$ \alpha=1 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_45.gif" /&gt;&amp;nbsp;, then&amp;nbsp;&lt;strong&gt;G&lt;/strong&gt;&amp;nbsp;=&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;. This means that we are working with the original hyperlink structure of the web. However, if&amp;nbsp;&lt;img align="absmiddle" alt="$ \alpha=0 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_46.gif" /&gt;&amp;nbsp;, then&amp;nbsp;&lt;img align="absmiddle" alt="$ {\bf G}=1/n{\bf 1} $ " src="http://www.ams.org/featurecolumn/images/december2006/index_47.gif" /&gt;&amp;nbsp;. In other words, the web we are considering has a link between any two pages and we have lost the original hyperlink structure of the web. Clearly, we would like to take&amp;nbsp;&lt;img align="absmiddle" alt="$\alpha$ " src="http://www.ams.org/featurecolumn/images/december2006/xx.gif" /&gt;&amp;nbsp;close to 1 so that we hyperlink structure of the web is weighted heavily into the computation.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;However, there is another consideration. Remember that the rate of convergence of the power method is governed by the magnitude of the second eigenvalue&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2| $ " src="http://www.ams.org/featurecolumn/images/december2006/index_48.gif" /&gt;&amp;nbsp;. For the Google matrix, it has been proven that the magnitude of the second eigenvalue&amp;nbsp;&lt;img align="absmiddle" alt="$ |\lambda_2|=\alpha $ " src="http://www.ams.org/featurecolumn/images/december2006/index_49.gif" /&gt;&amp;nbsp;. This means that when&amp;nbsp;&lt;img align="absmiddle" alt="$\alpha$ " src="http://www.ams.org/featurecolumn/images/december2006/xx.gif" /&gt;&amp;nbsp;is close to 1 the convergence of the power method will be very slow. As a compromise between these two competing interests, Serbey Brin and Larry Page, the creators of PageRank, chose&amp;nbsp;&lt;img align="absmiddle" alt="$ \alpha=0.85 $ " src="http://www.ams.org/featurecolumn/images/december2006/index_50.gif" /&gt;&amp;nbsp;.&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;Computing&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;What we've described so far looks like a good theory, but remember that we need to apply it to&amp;nbsp;&lt;img align="absmiddle" alt="$ n\times n $ " src="http://www.ams.org/featurecolumn/images/december2006/index_51.gif" /&gt;&amp;nbsp;matrices where&amp;nbsp;&lt;em&gt;n&lt;/em&gt;&amp;nbsp;is about 25 billion! In fact, the power method is especially well-suited to this situation.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Remember that the stochastic matrix&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;&amp;nbsp;may be written as&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  {\bf S}={\bf H} + {\bf A}  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_52.gif" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;and therefore the Google matrix has the form&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  {\bf G}=\alpha{\bf H} + \alpha{\bf A} + \frac{1-\alpha}{n}{\bf 1}  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_53.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Therefore,&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img align="absmiddle" alt="\[  {\bf G}I^k=\alpha{\bf H}I^k + \alpha{\bf A}I^k + \frac{1-\alpha}{n}{\bf 1}I^k  \] " src="http://www.ams.org/featurecolumn/images/december2006/index_54.gif" /&gt;&lt;/center&gt;   &lt;br /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Now recall that most of the entries in&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&amp;nbsp;are zero; on average, only ten entries per column are nonzero. Therefore, evaluating&amp;nbsp;&lt;strong&gt;H&lt;/strong&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;requires only ten nonzero terms for each entry in the resulting vector. Also, the rows of&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;&amp;nbsp;are all identical as are the rows of&amp;nbsp;&lt;strong&gt;1&lt;/strong&gt;. Therefore, evaluating&lt;strong&gt;A&lt;/strong&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;and&amp;nbsp;&lt;strong&gt;1&lt;/strong&gt;&lt;em&gt;I&amp;nbsp;&lt;sup&gt;k&lt;/sup&gt;&lt;/em&gt;&amp;nbsp;amounts to adding the current importance rankings of the dangling nodes or of all web pages. This only needs to be done once.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;With the value of&amp;nbsp;&lt;img align="absmiddle" alt="$\alpha$ " src="http://www.ams.org/featurecolumn/images/december2006/xx.gif" /&gt;&amp;nbsp;chosen to be near 0.85, Brin and Page report that 50 - 100 iterations are required to obtain a sufficiently good approximation to&amp;nbsp;&lt;em&gt;I&lt;/em&gt;. The calculation is reported to take a few days to complete.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Of course, the web is continually changing. First, the content of web pages, especially for news organizations, may change frequently. In addition, the underlying hyperlink structure of the web changes as pages are added or removed and links are added or removed. It is rumored that Google recomputes the PageRank vector&amp;nbsp;&lt;em&gt;I&lt;/em&gt;&amp;nbsp;roughly every month. Since the PageRank of pages can be observed to fluctuate considerably during this time, it is known to some as the Google Dance. (In 2002, Google held a&amp;nbsp;&lt;a href="http://www.google.com/googledance2002/" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;Google Dance!&lt;/a&gt;)&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;Summary&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Brin and Page introduced Google in 1998, a time when the pace at which the web was growing began to outstrip the ability of current search engines to yield useable results. At that time, most search engines had been developed by businesses who were not interested in publishing the details of how their products worked. In developing Google, Brin and Page wanted to "push more development and understanding into the academic realm." That is, they hoped, first of all, to improve the design of search engines by moving it into a more open, academic environment. In addition, they felt that the usage statistics for their search engine would provide an interesting data set for research. It appears that the federal government, which recently tried to gain some of Google's statistics, feels the same way.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;There are other algorithms that use the hyperlink structure of the web to rank the importance of web pages. One notable example is the HITS algorithm, produced by Jon Kleinberg, which forms the basis of the&amp;nbsp;&lt;a href="http://www.ask.com/" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;Teoma search engine.&lt;/a&gt;&amp;nbsp;In fact, it is interesting to compare the results of searches sent to different search engines as a way to understand why some complain of a Googleopoly.&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;h3 style="color: #993300; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #993300;"&gt;References&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;&lt;b&gt;Michael Berry, Murray Browne&lt;/b&gt;,&amp;nbsp;&lt;em&gt;Understanding Search Engines: Mathematical Modeling and Text Retrieval. Second Edition,&amp;nbsp;&lt;/em&gt;SIAM, Philadelphia. 2005.&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;   &lt;b&gt;Sergey Brin, Lawrence Page&lt;/b&gt;, The antaomy of a large-scale hypertextual Web search engine,&amp;nbsp;&lt;em&gt;Computer Networks and ISDN Systems&lt;/em&gt;,&lt;b&gt;33&lt;/b&gt;: 107-17, 1998. Also available online at&amp;nbsp;&lt;a href="http://infolab.stanford.edu/pub/papers/google.pdf" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;http://infolab.stanford.edu/pub/papers/google.pdf&lt;/a&gt;&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;&lt;b&gt;Kurt Bryan, Tanya Leise&lt;/b&gt;, The $25,000,000,000 eigenvector. The linear algebra behind Google.&amp;nbsp;&lt;em&gt;SIAM Review&lt;/em&gt;, 48 (3), 569-81. 2006. Also avaiable at&amp;nbsp;&lt;a href="http://www.rose-hulman.edu/~bryan/google.html" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;http://www.rose-hulman.edu/~bryan/google.html&lt;/a&gt;&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;&lt;a href="http://www.google.com/corporate/tech.html" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;Google Corporate Information: Technology.&lt;/a&gt;&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;&lt;b&gt;Taher Haveliwala, Sepandar Kamvar&lt;/b&gt;,&amp;nbsp;&lt;a href="http://www.stanford.edu/~sdkamvar/papers/secondeigenvalue.pdf" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;The second eigenvalue of the Google matrix.&lt;/a&gt;&lt;/li&gt;&lt;li style="font-size: 0.8em; line-height: 1.4em;"&gt;&lt;b&gt;Amy Langville, Carl Meyer,&lt;/b&gt;&amp;nbsp;&lt;em&gt;Google's PageRank and Beyond: The Science of Search Engine Rankings.&amp;nbsp;&lt;/em&gt;Princeton University Press, 2006.&lt;br /&gt;This is an informative, accessible book, written in an engaging style. Besides providing the relevant mathematical background and details of PageRank and its implementation (as well as Kleinberg's HITS algorithm), this book contains many interesting "Asides" that give trivia illuminating the context of search engine design.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; margin-top: 5px; text-align: right;"&gt;&lt;span style="font-weight: bold;"&gt;David Austin&lt;/span&gt;&lt;br /&gt;   Grand Valley State University&lt;br /&gt;&lt;a href="" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;"&gt;david at merganser.math.gvsu.edu&lt;/a&gt;&amp;nbsp;&lt;img border="0" height="11" src="http://www.ams.org/featurecolumn/images/email.gif" width="24" /&gt;&lt;/div&gt;&lt;hr noshade="" size="1" /&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&amp;nbsp;Those who can access&amp;nbsp;&lt;a href="http://www.jstor.org/" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;JSTOR&lt;/a&gt;&amp;nbsp;can find some of the papers mentioned above there. For those with access, the American Mathematical Society's&amp;nbsp;&lt;a href="http://www.ams.org/mathscinet" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 0px; text-decoration: none;" target="_blank"&gt;MathSciNet&lt;/a&gt;&amp;nbsp;can be used to get additional bibliographic information and reviews of some these materials. Some of the items above can be accessed via the&amp;nbsp;&lt;a href="http://portal.acm.org/portal.cfm" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; padding-right: 13px; text-decoration: none;" target="_blank"&gt;ACM Portal&lt;/a&gt;, which also provides bibliographic services.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td width="18"&gt;&lt;img alt=" " src="http://www.ams.org/featurecolumn/images/x.gif" width="18" /&gt;&lt;/td&gt;&lt;td bgcolor="#cfcfcf"&gt;&lt;img alt=" " src="http://www.ams.org/featurecolumn/images/x.gif" width="2" /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td colspan="2" rowspan="2" valign="bottom" width="20"&gt;&lt;img alt=" " height="20" src="http://www.ams.org/featurecolumn/images/ver_crnr_bottom_left.gif" width="20" /&gt;&lt;/td&gt;&lt;td&gt;&lt;img alt=" " height="18" src="http://www.ams.org/featurecolumn/images/x.gif" width="1" /&gt;&lt;/td&gt;   &lt;td colspan="2" rowspan="2" valign="bottom" width="20"&gt;&lt;img alt=" " height="20" src="http://www.ams.org/featurecolumn/images/ver_crnr_bottom_right.gif" width="20" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td bgcolor="#cfcfcf" width="100%"&gt;&lt;img alt=" " height="2" src="http://www.ams.org/featurecolumn/images/x.gif" width="1" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;img alt=" " height="10" src="http://www.ams.org/featurecolumn/images/x.gif" width="1" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 800px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="250"&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;Comments:&amp;nbsp;&lt;a href="http://www.ams.org/cgi-bin/fmail/fmail.cgi?emailto=52616e646f6d4956d39de4e6d2aad1a38f8cb94dbc4da0693e459c60ec3a73f018ea44432c107e51&amp;amp;name=AMS%20Webmaster" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;" target="_blank"&gt;Email Webmaster&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td align="center" valign="top" width="300"&gt;&lt;div style="font-size: 0.8em; line-height: 1.4em; margin-right: 10px; text-align: justify;"&gt;©&amp;nbsp;&lt;a href="http://www.ams.org/ams/copyright" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;" target="_blank"&gt;Copyright&lt;/a&gt;&amp;nbsp;2011, American Mathematical Society&lt;br /&gt;   &lt;a href="http://www.ams.org/about-us/contact/reach" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;" target="_blank"&gt;Contact Us&lt;/a&gt;&amp;nbsp;·&amp;nbsp;&lt;a href="http://www.ams.org/sitemap" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;" target="_blank"&gt;Sitemap&lt;/a&gt;&amp;nbsp;·&amp;nbsp;&lt;a href="http://www.ams.org/about-us/privacy" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; text-decoration: none;" target="_blank"&gt;Privacy Statement&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td align="right" valign="top" width="250"&gt;&lt;div&gt;&lt;div style="color: #666666; font-family: arial; font-size: 11px; white-space: nowrap;"&gt;&lt;div&gt;&lt;select style="font-family: arial; font-size: 10pt; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 4px; vertical-align: baseline;"&gt;&lt;option value=""&gt;Select Language&lt;/option&gt;&lt;option value="af"&gt;Afrikaans&lt;/option&gt;&lt;option value="sq"&gt;Albanian&lt;/option&gt;&lt;option value="ar"&gt;Arabic&lt;/option&gt;&lt;option value="be"&gt;Belarusian&lt;/option&gt;&lt;option value="bg"&gt;Bulgarian&lt;/option&gt;&lt;option value="ca"&gt;Catalan&lt;/option&gt;&lt;option value="zh-CN"&gt;Chinese (Simplified)&lt;/option&gt;&lt;option value="zh-TW"&gt;Chinese (Traditional)&lt;/option&gt;&lt;option value="hr"&gt;Croatian&lt;/option&gt;&lt;option value="cs"&gt;Czech&lt;/option&gt;&lt;option value="da"&gt;Danish&lt;/option&gt;&lt;option value="nl"&gt;Dutch&lt;/option&gt;&lt;option value="et"&gt;Estonian&lt;/option&gt;&lt;option value="tl"&gt;Filipino&lt;/option&gt;&lt;option value="fi"&gt;Finnish&lt;/option&gt;&lt;option value="fr"&gt;French&lt;/option&gt;&lt;option value="gl"&gt;Galician&lt;/option&gt;&lt;option value="de"&gt;German&lt;/option&gt;&lt;option value="el"&gt;Greek&lt;/option&gt;&lt;option value="ht"&gt;Haitian Creole&lt;/option&gt;&lt;option value="iw"&gt;Hebrew&lt;/option&gt;&lt;option value="hi"&gt;Hindi&lt;/option&gt;&lt;option value="hu"&gt;Hungarian&lt;/option&gt;&lt;option value="is"&gt;Icelandic&lt;/option&gt;&lt;option value="id"&gt;Indonesian&lt;/option&gt;&lt;option value="ga"&gt;Irish&lt;/option&gt;&lt;option value="it"&gt;Italian&lt;/option&gt;&lt;option value="ja"&gt;Japanese&lt;/option&gt;&lt;option value="ko"&gt;Korean&lt;/option&gt;&lt;option value="lv"&gt;Latvian&lt;/option&gt;&lt;option value="lt"&gt;Lithuanian&lt;/option&gt;&lt;option value="mk"&gt;Macedonian&lt;/option&gt;&lt;option value="ms"&gt;Malay&lt;/option&gt;&lt;option value="mt"&gt;Maltese&lt;/option&gt;&lt;option value="no"&gt;Norwegian&lt;/option&gt;&lt;option value="fa"&gt;Persian&lt;/option&gt;&lt;option value="pl"&gt;Polish&lt;/option&gt;&lt;option value="pt"&gt;Portuguese&lt;/option&gt;&lt;option value="ro"&gt;Romanian&lt;/option&gt;&lt;option value="ru"&gt;Russian&lt;/option&gt;&lt;option value="sr"&gt;Serbian&lt;/option&gt;&lt;option value="sk"&gt;Slovak&lt;/option&gt;&lt;option value="sl"&gt;Slovenian&lt;/option&gt;&lt;option value="es"&gt;Spanish&lt;/option&gt;&lt;option value="sw"&gt;Swahili&lt;/option&gt;&lt;option value="sv"&gt;Swedish&lt;/option&gt;&lt;option value="th"&gt;Thai&lt;/option&gt;&lt;option value="tr"&gt;Turkish&lt;/option&gt;&lt;option value="uk"&gt;Ukrainian&lt;/option&gt;&lt;option value="vi"&gt;Vietnamese&lt;/option&gt;&lt;option value="cy"&gt;Welsh&lt;/option&gt;&lt;option value="yi"&gt;Yiddish&lt;/option&gt;&lt;/select&gt;&lt;/div&gt;Powered by&amp;nbsp;&lt;span style="white-space: nowrap;"&gt;&lt;a href="http://translate.google.com/" style="background-color: initial; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: none; border-bottom-width: 1px; color: #444444; font-size: 12px; font-weight: bold; padding-right: 18px; text-decoration: none;" target="_blank"&gt;&lt;img src="http://translate.googleapis.com/translate_static/img/mini_google.png" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; vertical-align: middle;" /&gt;Translate&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" colspan="3" valign="top"&gt;&lt;img alt="AMS Social" border="0" height="52" src="http://www.ams.org/images/ams-chiclets-teal-bkgrnd-nt.gif" usemap="#1316f6fb124bcbc1_1316bb4072e0321f_socialIconsWhite" width="390" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&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/5434031919110451140-8629877065226276149?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8629877065226276149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8629877065226276149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8629877065226276149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8629877065226276149'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/07/pagerankeigenvector.html' title='pagerank/eigenvector'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1851411159916974609</id><published>2011-07-26T14:43:00.001+05:30</published><updated>2011-07-26T14:43:03.029+05:30</updated><title type='text'>Oracle show create table</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="lang-sql prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;select&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; dbms_metadata&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;get_ddl&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'TABLE'&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'table_name'&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'db_name'&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;from&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; dual&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;select&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; dbms_metadata&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;get_ddl&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'INDEX'&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'index_name'&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'db_name'&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;from&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; dual&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1851411159916974609?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1851411159916974609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1851411159916974609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1851411159916974609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1851411159916974609'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/07/oracle-show-create-table.html' title='Oracle show create table'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1398149972653987916</id><published>2011-07-26T14:42:00.000+05:30</published><updated>2011-07-26T14:42:03.667+05:30</updated><title type='text'>Oracle show indexes/indices</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; color: #222222; font-family: Verdana, Tahoma, Arial, 'Trebuchet MS', sans-serif, Georgia, Courier, 'Times New Roman', serif; font-size: 12px; line-height: 19px;"&gt;select index_name from dba_indexes where table_name='tablename';&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1398149972653987916?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1398149972653987916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1398149972653987916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1398149972653987916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1398149972653987916'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/07/oracle-show-indexesindices.html' title='Oracle show indexes/indices'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1470240714753224</id><published>2011-06-24T17:01:00.001+05:30</published><updated>2011-06-24T17:01:23.516+05:30</updated><title type='text'>pig : set default parallelism at the script level</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;pre class="code"&gt;SET default_parallel 100; -- make it the first line in the script&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1470240714753224?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1470240714753224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1470240714753224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1470240714753224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1470240714753224'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/06/pig-set-default-parallelism-at-script.html' title='pig : set default parallelism at the script level'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7113328724316860028</id><published>2011-06-21T16:45:00.008+05:30</published><updated>2011-06-24T11:58:41.211+05:30</updated><title type='text'>Everything you wanted to know about Pig</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://wiki.apache.org/pig/PigLatin"&gt;http://wiki.apache.org/pig/PigLatin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pig.apache.org/docs/r0.7.0/piglatin_ref1.html"&gt;http://pig.apache.org/docs/r0.7.0/piglatin_ref1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.apache.org/pig/PigStreamingFunctionalSpec"&gt;http://wiki.apache.org/pig/PigStreamingFunctionalSpec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://search.safaribooksonline.com/book/databases/hadoop/9780596521974/pig/301"&gt;http://search.safaribooksonline.com/book/databases/hadoop/9780596521974/pig/301&lt;/a&gt;&lt;br /&gt;&lt;a href="http://draft.blogger.com/goog_103162529"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#CONCAT"&gt;http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#CONCAT&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ofps.oreilly.com/titles/9781449302641/index.html"&gt;http://ofps.oreilly.com/titles/9781449302641/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.riccomini.name/Topics/DistributedComputing/Hadoop/HadoopPigDocumentation/"&gt;Mysql to Pig converter&lt;/a&gt;&lt;br /&gt;&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/5434031919110451140-7113328724316860028?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7113328724316860028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7113328724316860028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7113328724316860028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7113328724316860028'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/06/useful-pig-documents.html' title='Everything you wanted to know about Pig'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6855716183839573416</id><published>2011-06-17T14:54:00.001+05:30</published><updated>2011-06-17T14:54:06.111+05:30</updated><title type='text'>mysql to pig converter</title><content type='html'>&lt;a href="http://www.riccomini.name/Topics/DistributedComputing/Hadoop/HadoopPigDocumentation/"&gt;Source&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6855716183839573416?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6855716183839573416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6855716183839573416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6855716183839573416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6855716183839573416'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/06/mysql-to-pig-converter.html' title='mysql to pig converter'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5011577628214314350</id><published>2011-06-14T16:06:00.003+05:30</published><updated>2011-06-14T16:06:57.586+05:30</updated><title type='text'>Oracle previous command</title><content type='html'>SQL&amp;gt; edit&lt;br&gt;----&lt;br&gt;edit the command&lt;br&gt;-----&lt;br&gt;/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5011577628214314350?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5011577628214314350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5011577628214314350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5011577628214314350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5011577628214314350'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/06/oracle-previous-command.html' title='Oracle previous command'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8026154202976530292</id><published>2011-06-14T16:06:00.001+05:30</published><updated>2011-06-14T16:06:23.221+05:30</updated><title type='text'>Oracle show tables</title><content type='html'>select * from user_objects where object_type = &amp;#39;TABLE&amp;#39;;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8026154202976530292?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8026154202976530292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8026154202976530292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8026154202976530292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8026154202976530292'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/06/oracle-show-tables.html' title='Oracle show tables'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7375646355649106034</id><published>2011-06-02T15:30:00.001+05:30</published><updated>2011-06-02T15:30:13.266+05:30</updated><title type='text'>Removing certificate exceptions in firefox</title><content type='html'>&lt;a href="http://support.mozilla.com/en-US/questions/749035"&gt;Source&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-7375646355649106034?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7375646355649106034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7375646355649106034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7375646355649106034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7375646355649106034'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/06/removing-certificate-exceptions-in.html' title='Removing certificate exceptions in firefox'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1236262313621646305</id><published>2011-05-23T16:12:00.001+05:30</published><updated>2011-05-23T16:12:05.517+05:30</updated><title type='text'>Stopping/halting search(and other long processes) in vim</title><content type='html'>Ctrl-C&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1236262313621646305?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1236262313621646305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1236262313621646305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1236262313621646305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1236262313621646305'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/stoppinghalting-searchand-other-long.html' title='Stopping/halting search(and other long processes) in vim'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8381353170289725576</id><published>2011-05-23T15:28:00.001+05:30</published><updated>2011-05-23T15:28:56.434+05:30</updated><title type='text'>wget on mac</title><content type='html'>use : &lt;br&gt;curl -O url&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8381353170289725576?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8381353170289725576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8381353170289725576' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8381353170289725576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8381353170289725576'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/wget-on-mac.html' title='wget on mac'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4917737350239111334</id><published>2011-05-17T14:56:00.001+05:30</published><updated>2011-05-17T14:56:10.919+05:30</updated><title type='text'>Java static class</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/70324/java-inner-class-and-static-nested-class"&gt;http://stackoverflow.com/questions/70324/java-inner-class-and-static-nested-class&lt;/a&gt;&lt;br&gt;&lt;a href="http://stackoverflow.com/questions/1353309/java-static-vs-non-static-inner-class"&gt;http://stackoverflow.com/questions/1353309/java-static-vs-non-static-inner-class&lt;/a&gt;&lt;br&gt; &lt;a href="http://download.oracle.com/javase/tutorial/java/javaOO/nested.html"&gt;http://download.oracle.com/javase/tutorial/java/javaOO/nested.html&lt;/a&gt;&lt;br&gt;&lt;a href="http://stackoverflow.com/questions/3584113/java-static-class"&gt;http://stackoverflow.com/questions/3584113/java-static-class&lt;/a&gt;&lt;br&gt; &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4917737350239111334?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4917737350239111334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4917737350239111334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4917737350239111334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4917737350239111334'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/java-static-class.html' title='Java static class'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5772262507443966372</id><published>2011-05-17T14:55:00.001+05:30</published><updated>2011-05-17T14:55:02.024+05:30</updated><title type='text'>hadoop combiner class</title><content type='html'>&lt;a href="http://wiki.apache.org/hadoop/HadoopMapReduce"&gt;http://wiki.apache.org/hadoop/HadoopMapReduce&lt;/a&gt;&lt;br&gt;&lt;br&gt; &lt;a href="http://singaraju.com/blogs/gautam/2010/02/25/hadoop-effectiveness-of-a-combiner-class/"&gt;http://singaraju.com/blogs/gautam/2010/02/25/hadoop-effectiveness-of-a-combiner-class/&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5772262507443966372?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5772262507443966372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5772262507443966372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5772262507443966372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5772262507443966372'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/hadoop-combiner-class.html' title='hadoop combiner class'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5836312625210821372</id><published>2011-05-16T11:46:00.001+05:30</published><updated>2011-05-16T11:46:57.499+05:30</updated><title type='text'>MapReduce for dummies</title><content type='html'>&lt;a href="http://www.joelonsoftware.com/items/2006/08/01.html" target="_blank"&gt;http://www.joelonsoftware.com/items/2006/08/01.html&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5836312625210821372?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5836312625210821372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5836312625210821372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5836312625210821372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5836312625210821372'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/mapreduce-for-dummies.html' title='MapReduce for dummies'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1744518498114547618</id><published>2011-05-13T13:56:00.000+05:30</published><updated>2011-05-13T22:10:42.771+05:30</updated><title type='text'>Mac Firefox Hard refresh</title><content type='html'>Command + Shift + R&lt;br&gt;&lt;br&gt;Normal refresh : Command + R&lt;br&gt;&lt;br&gt;&lt;a href="http://dotjay.co.uk/2007/may/hard-refresh-firefox-mac"&gt;Source&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1744518498114547618?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1744518498114547618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1744518498114547618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1744518498114547618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1744518498114547618'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/mac-firefox-hard-refresh.html' title='Mac Firefox Hard refresh'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6866453230093671437</id><published>2011-05-12T17:34:00.000+05:30</published><updated>2011-05-14T02:11:44.388+05:30</updated><title type='text'>a useful firefox seo plugin</title><content type='html'>seoquake&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6866453230093671437?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6866453230093671437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6866453230093671437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6866453230093671437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6866453230093671437'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/useful-firefox-seo-plugin_7902.html' title='a useful firefox seo plugin'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4435714475403211247</id><published>2011-05-12T15:49:00.000+05:30</published><updated>2011-05-14T02:11:44.523+05:30</updated><title type='text'>a useful firefox seo plugin</title><content type='html'>&lt;br&gt;&lt;div class="gmail_quote"&gt;&lt;br&gt;&lt;a href="http://www.seoquake.com/" target="_blank"&gt;www.seoquake.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4435714475403211247?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4435714475403211247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4435714475403211247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4435714475403211247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4435714475403211247'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/useful-firefox-seo-plugin_12.html' title='a useful firefox seo plugin'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2029982198251552585</id><published>2011-05-10T14:57:00.003+05:30</published><updated>2011-05-11T15:22:45.079+05:30</updated><title type='text'>popular seo blogs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.mattcutts.com/blog/"&gt;Matt Cutts&lt;/a&gt;&lt;br /&gt;Matt's blog site is not just about SEO. Matt shares his thoughts on many other&lt;br /&gt;things, including food, personal information, and Google's Chrome web browser.&lt;br /&gt;Nonetheless, the site does contain more than 400 posts related to SEO—enough&lt;br /&gt;to keep you reading for a few days!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://searchengineland.com/"&gt;Search Engine Land&lt;/a&gt;&lt;br /&gt;This blog provides news and information about SEM, SEO, and how search engines&lt;br /&gt;work.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seobook.com/"&gt;SEOBook&lt;/a&gt;&lt;br /&gt;This is one of the most popular SEO sites, providing online (free and paid) training&lt;br /&gt;and information.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wolf-howl.com/"&gt;Graywolf's SEO Blog&lt;/a&gt;&lt;br /&gt;This is an informative, thought-provoking SEO blog.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seobythesea.com/"&gt;SEO by the Sea&lt;/a&gt;&lt;br /&gt;This blog provides marketing and SEO information and services.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seomoz.org/"&gt;SEOmoz&lt;/a&gt;&lt;br /&gt;Boasting more than 60,000 members, this blog provides free and paid SEO information and services.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://searchenginewatch.com/"&gt;Search Engine Watch&lt;/a&gt;&lt;br /&gt;The Search Engine Watch blog offers tips on SEM and SEO and the latest news&lt;br /&gt;about search engines.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seochat.com/"&gt;SEO Chat&lt;/a&gt;&lt;br /&gt;This blog provides information on SEO and other search engine–related news.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seroundtable.com/"&gt;Search Engine Roundtable&lt;/a&gt;&lt;br /&gt;This blog provides the latest information on SEO, SEM, and search engines.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.searchenginejournal.com/"&gt;Search Engine Journal&lt;/a&gt;&lt;br /&gt;This blog provides the latest search engine news, including SEO news.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://my.safaribooksonline.com/book/web-development/seo/9780596804749/industry-buzz/382"&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2029982198251552585?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2029982198251552585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2029982198251552585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2029982198251552585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2029982198251552585'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/popular-seo-blogs.html' title='popular seo blogs'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5866195158335162034</id><published>2011-05-10T14:48:00.001+05:30</published><updated>2011-05-10T14:48:17.677+05:30</updated><title type='text'>adwords experiments you can try</title><content type='html'>negative keywords&lt;br&gt;A/B testing&lt;br&gt;multivariate testing&lt;br&gt;&lt;br&gt;on analytics&lt;br&gt;try funnels&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5866195158335162034?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5866195158335162034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5866195158335162034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5866195158335162034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5866195158335162034'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/adwords-experiments-you-can-try.html' title='adwords experiments you can try'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5441228594165538158</id><published>2011-05-10T13:52:00.001+05:30</published><updated>2011-05-10T13:52:47.714+05:30</updated><title type='text'>for reverse ip lookup</title><content type='html'>&lt;a href="http://www.yougetsignal.com"&gt;www.yougetsignal.com&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5441228594165538158?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5441228594165538158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5441228594165538158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5441228594165538158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5441228594165538158'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/for-reverse-ip-lookup.html' title='for reverse ip lookup'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5402824333617196556</id><published>2011-05-10T13:33:00.001+05:30</published><updated>2011-05-10T13:33:16.542+05:30</updated><title type='text'>back link checkers</title><content type='html'>Link Diagnosis&lt;br&gt;(&lt;a href="http://www.linkdiagnosis.com/"&gt;http://www.linkdiagnosis.com/&lt;/a&gt;) Provides an online backlink report; allows CSV export&lt;br&gt;&lt;br&gt;Backlink Watch&lt;br&gt;(&lt;a href="http://www.backlinkwatch.com/"&gt;http://www.backlinkwatch.com/&lt;/a&gt;) Provides an online backlink report with several additional features including outbound link counts&lt;br&gt; &lt;br&gt;Backlink Checker&lt;br&gt;(&lt;a href="http://www.iwebtool.com/"&gt;http://www.iwebtool.com/&lt;/a&gt;) Provides basic backlink checker functionality with associated Google PageRank&lt;br&gt;values&lt;br&gt;&lt;br&gt;&lt;a href="http://my.safaribooksonline.com/book/web-development/seo/9780596804749/competitor-research-and-analysis/272"&gt;source&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5402824333617196556?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5402824333617196556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5402824333617196556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5402824333617196556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5402824333617196556'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/back-link-checkers.html' title='back link checkers'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1041516783993822453</id><published>2011-05-10T13:28:00.001+05:30</published><updated>2011-05-10T13:28:22.925+05:30</updated><title type='text'>Useful google search operators</title><content type='html'>inurl: www. competitorURL.com&lt;br&gt;inanchor: www. competitorURL.com&lt;br&gt;intitle: www. competitorURL.com&lt;br&gt;allintitle: www. competitorURL.com&lt;br&gt;allintitle: www. competitorURL.com site:.org&lt;br&gt;site: . edu inanchor:&lt;a href="http://www.competitorURL.com"&gt;www.competitorURL.com&lt;/a&gt;&lt;br&gt; site: . gov inanchor:&lt;a href="http://www.competitorURL.com"&gt;www.competitorURL.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://my.safaribooksonline.com/book/web-development/seo/9780596804749/competitor-research-and-analysis/271"&gt;Source&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1041516783993822453?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1041516783993822453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1041516783993822453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1041516783993822453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1041516783993822453'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/useful-google-search-operators.html' title='Useful google search operators'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1667405207063746642</id><published>2011-05-09T14:58:00.001+05:30</published><updated>2011-05-09T14:58:17.844+05:30</updated><title type='text'>OAuth for dummies</title><content type='html'>A real good explanation of OAuth.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1667405207063746642?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1667405207063746642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1667405207063746642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1667405207063746642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1667405207063746642'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/oauth-for-dummies.html' title='OAuth for dummies'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8277754597850450799</id><published>2011-05-09T13:33:00.002+05:30</published><updated>2011-05-09T13:34:06.581+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='red hat linux'/><title type='text'>Installing ruby on RHEL</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;wget &lt;a href="ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-0.tar.gz"&gt;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-0.tar.gz&lt;/a&gt;&lt;br /&gt;tar -xvzf ruby-1.9.0-0.tar.gz&lt;br /&gt;cd ruby-1.9.0-0&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;sudo make install&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/5434031919110451140-8277754597850450799?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8277754597850450799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8277754597850450799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8277754597850450799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8277754597850450799'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/installing-ruby-on-rhel.html' title='Installing ruby on RHEL'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7317837005648709857</id><published>2011-05-05T14:04:00.001+05:30</published><updated>2011-05-05T14:04:24.813+05:30</updated><title type='text'>SEO firefox plugin</title><content type='html'>SEOQuake&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-7317837005648709857?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7317837005648709857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7317837005648709857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7317837005648709857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7317837005648709857'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/seo-firefox-plugin.html' title='SEO firefox plugin'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2219926081799514034</id><published>2011-05-04T18:49:00.001+05:30</published><updated>2011-05-04T18:49:54.755+05:30</updated><title type='text'>SEO directories</title><content type='html'> all of the first-tier directories, including&lt;br&gt;Dmoz.org, Yahoo! Directory, Business.com, and YellowPages.com.&lt;br&gt;&lt;br&gt;searching directories : &lt;br&gt;directory &amp;quot;submit a link&amp;quot;&lt;br&gt;general directories&lt;br&gt;directory of directories&lt;br&gt; &amp;quot;general directory&amp;quot;&lt;br&gt;site: dmoz. org inurl:directories&lt;br&gt;small business &amp;quot;add url&amp;quot;|&amp;quot;add link&amp;quot;&lt;br&gt;+general +directory add url|link free|paid&lt;br&gt;&lt;br&gt;searching directories : &lt;br&gt;travel site: &lt;a href="http://dmoz.org"&gt;dmoz.org&lt;/a&gt; inurl:directories&lt;br&gt; &amp;quot;insurance broker directory&amp;quot;&lt;br&gt;wine producers directory&lt;br&gt;electronics manufacturer directory&lt;br&gt;jewelry stores directory&lt;br&gt;&lt;br&gt;regional directories : &lt;br&gt;toronto &amp;quot;travel agencies&amp;quot; +directory&lt;br&gt;ontario &amp;quot;travel agencies&amp;quot; directory&lt;br&gt; canada &amp;quot;travel agencies&amp;quot; directory&lt;br&gt;boston &amp;quot;pizza restaurants&amp;quot; directory&lt;br&gt;new york &amp;quot;shoe stores&amp;quot; directory&lt;br&gt;los angeles inurl:directory&lt;br&gt;You can visit &lt;a href="http://www.isedb.com/html/Web_Directories/"&gt;http://www.isedb.com/html/Web_Directories/&lt;/a&gt; to find more regional directory listings. You can find another directory repository at &lt;a href="http://www.web-directories"&gt;http://www.web-directories&lt;/a&gt;&lt;br&gt; .ws/Regional/.&lt;br&gt;&lt;br&gt;Article submission : &lt;br&gt;Many sites let you submit your articles, including ArticlesBase, EzineArticles, Article&lt;br&gt;Geek, and many others. When you choose your article submission vendor, ensure that&lt;br&gt; your articles are always properly credited.&lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2219926081799514034?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2219926081799514034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2219926081799514034' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2219926081799514034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2219926081799514034'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/seo-directories.html' title='SEO directories'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3882973906543112920</id><published>2011-05-04T15:21:00.001+05:30</published><updated>2011-05-04T15:21:51.956+05:30</updated><title type='text'>Taking a screenshot on Mac</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Press Command + Shift + 3 and click your mouse anywhere on the screen after that.&lt;br /&gt;The screenshot will be saved on the Desktop.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3882973906543112920?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3882973906543112920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3882973906543112920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3882973906543112920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3882973906543112920'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/taking-screenshot-on-mac.html' title='Taking a screenshot on Mac'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6400071908975693682</id><published>2011-05-01T01:21:00.001+05:30</published><updated>2011-05-01T01:21:37.084+05:30</updated><title type='text'>google.com/ncr</title><content type='html'>to avoid country redirect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6400071908975693682?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6400071908975693682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6400071908975693682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6400071908975693682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6400071908975693682'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/05/googlecomncr.html' title='google.com/ncr'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2760717975133351625</id><published>2011-04-19T15:35:00.003+05:30</published><updated>2011-04-19T15:49:03.132+05:30</updated><title type='text'>SEO meta tags</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://my.safaribooksonline.com/book/web-development/seo/9780596804749/internal-ranking-factors/69"&gt;Source &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Search engines will sometimes opt to ignore them in favor of the&lt;br /&gt;description used at Dmoz.org or in the Yahoo! Directory&lt;br /&gt;(if you have a listing there).&lt;br /&gt;&lt;br /&gt;To help webmasters control this scenario, new meta tag variations were&lt;br /&gt;created to force&lt;br /&gt;search engines to use the &amp;lt;meta&amp;gt; description tag instead of the&lt;br /&gt;description found in the&lt;br /&gt;directory listings. Here are examples that detail ways to block either&lt;br /&gt;Dmoz.org or Yahoo! Directory descriptions:&lt;br/&gt;&lt;br /&gt;&amp;lt;! -- Tells Yahoo! to not use Yahoo! Directory description --&amp;gt;&lt;br /&gt;&amp;lt;meta name="robots" content="noydir" /&amp;gt;&lt;br/&gt;&lt;br /&gt;&amp;lt;! -- Tells search engines to not use ODP description --&amp;gt;&lt;br /&gt;&amp;lt;meta name="robots" content="noodp" /&amp;gt;&lt;br/&gt;&lt;br /&gt;&amp;lt;! -- Tells search engines to not use either of the two directories --&amp;gt;&lt;br /&gt;&amp;lt;meta name="robots" content="noodp,noydir" /&amp;gt;&lt;br/&gt;&lt;br /&gt;If you wish to target only specific spiders, you can do the following:&lt;br /&gt;&amp;lt;meta name="googlebot" content="noodp"&amp;gt;&lt;br /&gt;&amp;lt;! -- Note: Only Yahoo! uses Yahoo! Directory --&amp;gt;&lt;br/&gt;&lt;br /&gt;&amp;lt;meta name="slurp" CONTENT="noydir"&amp;gt;&lt;br /&gt;&amp;lt;meta name="msnbot" CONTENT="noodp"&amp;gt;&lt;/div&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2760717975133351625?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2760717975133351625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2760717975133351625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2760717975133351625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2760717975133351625'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/04/seo-meta-tags.html' title='SEO meta tags'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1468194928472718816</id><published>2011-04-19T10:56:00.001+05:30</published><updated>2011-04-19T10:56:08.478+05:30</updated><title type='text'>SEO lessons</title><content type='html'>1. The title of your page should contain keywords which can actually be&lt;br&gt;found in the page&amp;#39;s content.&lt;p&gt;2. Make the meta tag description human readable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1468194928472718816?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1468194928472718816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1468194928472718816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1468194928472718816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1468194928472718816'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/04/seo-lessons.html' title='SEO lessons'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1639729510717975384</id><published>2011-04-15T16:41:00.000+05:30</published><updated>2011-04-15T16:41:17.140+05:30</updated><title type='text'>Domain name suggestion tools</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://my.safaribooksonline.com/book/web-development/seo/9780596804749/website-essentials/40"&gt;Source &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;DomainsBot (&lt;a href="http://www.domainsbot.com/"&gt;http://www.domainsbot.com&lt;/a&gt;)&lt;br /&gt;Provides advanced (semantic) domain name lookup tools&lt;br /&gt;&lt;br /&gt;DomainTools (&lt;a href="http://www.domaintools.com/"&gt;http://www.domaintools.com&lt;/a&gt;)&lt;br /&gt;Allows you to enter an existing domain name or a phrase and&lt;br /&gt;then shows you a list of 20 domain name suggestions and their&lt;br /&gt;availability for .com, .net, .org, .info, .biz, and .us extensions&lt;br /&gt;&lt;br /&gt;BUST A NAME (&lt;a href="http://www.bustaname.com/"&gt;http://www.bustaname.com&lt;/a&gt;)&lt;br /&gt;Lets you add words in one pane, and then produces &lt;br /&gt;combinations of domain name suggestions&lt;br /&gt;&lt;br /&gt;Nameboy (&lt;a href="http://nameboy.com/"&gt;http://nameboy.com&lt;/a&gt;) &lt;br /&gt;Allows for hyphen and rhyme options&lt;br /&gt;&lt;br /&gt;MakeWords(&lt;a href="http://makewords.com/"&gt;http://makewords.com&lt;/a&gt;) &lt;br /&gt;Generates multilingual domain names&lt;br /&gt;&lt;br /&gt;Nonsense word generators :&lt;br /&gt;Word Generator&lt;br /&gt;(&lt;a href="http://www.kessels.com/WordGenerator/"&gt;http://www.kessels.com/WordGenerator/&lt;/a&gt;) Generates 50 words on each page refresh&lt;br /&gt;Web 2.0 Domain Name Generator&lt;br /&gt;(&lt;a href="http://www.hackslash.net/?page_id=48"&gt;http://www.hackslash.net/?page_id=48&lt;/a&gt;) Generates 15 words after you click the Submit button&lt;br /&gt;SoyBomb&lt;br /&gt;(&lt;a href="http://www.soybomb.com/tricks/words/"&gt;http://www.soybomb.com/tricks/words/&lt;/a&gt;) Generates 50 words on each page refresh&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1639729510717975384?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1639729510717975384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1639729510717975384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1639729510717975384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1639729510717975384'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/04/domain-name-suggestion-tools.html' title='Domain name suggestion tools'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5200935458601952653</id><published>2011-04-14T11:12:00.001+05:30</published><updated>2011-04-14T11:12:58.473+05:30</updated><title type='text'>How to start firefox in private mode by default</title><content type='html'>In about:config set &lt;b&gt;browser.privatebrowsing.autostart&lt;/b&gt; to &lt;b&gt;true&lt;/b&gt;.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5200935458601952653?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5200935458601952653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5200935458601952653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5200935458601952653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5200935458601952653'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/04/how-to-start-firefox-in-private-mode-by.html' title='How to start firefox in private mode by default'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6960215619014437745</id><published>2011-03-30T12:19:00.002+05:30</published><updated>2011-03-30T12:19:57.118+05:30</updated><title type='text'>Macbook pro going to beginning/end of commad line on Terminal</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Ctrl-A for beginning&lt;br /&gt;Ctrl-E for end&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/5434031919110451140-6960215619014437745?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6960215619014437745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6960215619014437745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6960215619014437745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6960215619014437745'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/03/macbook-pro-going-to-beginningend-of.html' title='Macbook pro going to beginning/end of commad line on Terminal'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1644882772949626238</id><published>2011-03-30T11:21:00.001+05:30</published><updated>2011-03-30T11:21:55.680+05:30</updated><title type='text'>Mac terminal does not load .bashrc</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It loads .bash_profile.&lt;br /&gt;So put your aliases there.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1644882772949626238?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1644882772949626238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1644882772949626238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1644882772949626238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1644882772949626238'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/03/mac-terminal-does-not-load-bashrc.html' title='Mac terminal does not load .bashrc'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-423523250729476438</id><published>2011-01-28T15:40:00.001+05:30</published><updated>2011-01-28T15:40:30.639+05:30</updated><title type='text'>Sorting IP addresses</title><content type='html'>Where input_file contains one IP address per line.&lt;p&gt;sort -u -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n input_file&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-423523250729476438?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/423523250729476438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=423523250729476438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/423523250729476438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/423523250729476438'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/sorting-ip-addresses.html' title='Sorting IP addresses'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6268020212953393905</id><published>2011-01-28T13:31:00.001+05:30</published><updated>2011-01-28T13:31:08.830+05:30</updated><title type='text'>Wikimedia : preventing new account creation</title><content type='html'>In LocalSettings.php, add this : &lt;br&gt;&lt;br&gt;# Prevent new user registrations except by sysops&lt;br&gt;$wgGroupPermissions[&amp;#39;*&amp;#39;][&amp;#39;createaccount&amp;#39;] = false;&lt;br&gt;&lt;br&gt;&lt;a href="http://www.mediawiki.org/wiki/Manual:Preventing_access#Restrict_account_creation"&gt;Source&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6268020212953393905?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6268020212953393905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6268020212953393905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6268020212953393905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6268020212953393905'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/wikimedia-preventing-new-account.html' title='Wikimedia : preventing new account creation'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8250151906156837549</id><published>2011-01-27T23:40:00.000+05:30</published><updated>2011-01-28T00:32:51.345+05:30</updated><title type='text'>wikimedia prevent access</title><content type='html'>&lt;a href="http://www.mediawiki.org/wiki/Manual:Preventing_access"&gt;Source&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8250151906156837549?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8250151906156837549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8250151906156837549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8250151906156837549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8250151906156837549'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/wikimedia-prevent-access.html' title='wikimedia prevent access'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4168836329077714208</id><published>2011-01-25T14:09:00.001+05:30</published><updated>2011-01-25T14:09:43.218+05:30</updated><title type='text'>Exercises to stop snoring</title><content type='html'>- Repeat each vowel (a,e,i,o,u) out loud for three minutes throughout day.&lt;br&gt;- Place the tip of your tongue behind your top front teeth. Slide your tongue backwards for 3 minutes a day.&lt;br&gt;- Close your mouth and purse your lips. Hold for 30 seconds.&lt;br&gt; - With mouth open, move jaw to the right and hold for 30 seconds. Repeat on left side.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.aajkikhabar.com/en/news/679145/679145.html"&gt;Source&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4168836329077714208?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4168836329077714208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4168836329077714208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4168836329077714208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4168836329077714208'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/exercises-to-stop-snoring.html' title='Exercises to stop snoring'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8055623958297950217</id><published>2011-01-18T23:13:00.001+05:30</published><updated>2011-01-18T23:13:14.519+05:30</updated><title type='text'>Mac switching between windows like windows alt-tab</title><content type='html'>For switching between applications : Command+Tab&lt;br&gt;For switching between windows of a single application : Command + ~(tilda)&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8055623958297950217?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8055623958297950217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8055623958297950217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8055623958297950217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8055623958297950217'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/mac-switching-between-windows-like.html' title='Mac switching between windows like windows alt-tab'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5385640470875669111</id><published>2011-01-17T15:38:00.001+05:30</published><updated>2011-01-17T15:38:15.350+05:30</updated><title type='text'>SVN Status Simple Cheat Sheet</title><content type='html'>&lt;h3&gt;&lt;a href="http://knaddison.com/technology/svn-status-code-cheat-sheet"&gt;Source&lt;/a&gt;&lt;br&gt;&lt;/h3&gt;&lt;h3&gt;SVN Status Simple Cheat Sheet&lt;/h3&gt; &lt;p&gt;&lt;a href="http://knaddison.com/sites/knaddison.com/files/svn_codes.png"&gt;&lt;img src="http://knaddison.com/sites/knaddison.com/files/svn_codes.png" alt="svn status cheat sheet"&gt;&lt;/a&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5385640470875669111?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5385640470875669111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5385640470875669111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5385640470875669111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5385640470875669111'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/svn-status-simple-cheat-sheet.html' title='SVN Status Simple Cheat Sheet'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2913890866558241889</id><published>2011-01-17T13:11:00.002+05:30</published><updated>2011-01-17T13:11:53.649+05:30</updated><title type='text'>svn adding/deleting new/missing files from command line</title><content type='html'>&lt;a href="http://www.thingy-ma-jig.co.uk/blog/11-03-2009/lazy-linux-piping"&gt;Source &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Deleting missing files :&lt;br /&gt;svn st | grep ^! | awk '{print $2}' | xargs svn delete&lt;br /&gt;&lt;br /&gt;Adding new files&lt;br /&gt;svn st | grep ^? | awk '{print $2}' | xargs svn add&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2913890866558241889?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2913890866558241889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2913890866558241889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2913890866558241889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2913890866558241889'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/svn-addingdeleting-newmissing-files.html' title='svn adding/deleting new/missing files from command line'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5411688331119566747</id><published>2011-01-14T20:40:00.001+05:30</published><updated>2011-01-14T20:40:02.760+05:30</updated><title type='text'>Permission denied on MAC</title><content type='html'>&lt;br&gt;&lt;div class="gmail_quote"&gt;&lt;br&gt; sudo chown -R $(id -u):$(id -g) MyDirectory&lt;br&gt;chmod -R u+w MyDirectory&lt;br&gt;&lt;br&gt;&lt;a href="http://stackoverflow.com/questions/4617611/svn-cant-open-file-svn-lock-permission-denied-on-mac" target="_blank"&gt;Source&lt;/a&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5411688331119566747?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5411688331119566747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5411688331119566747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5411688331119566747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5411688331119566747'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/permission-denied-on-mac.html' title='Permission denied on MAC'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5092499630150749510</id><published>2011-01-12T22:46:00.001+05:30</published><updated>2011-01-12T22:46:29.056+05:30</updated><title type='text'>svn on hostmonster</title><content type='html'>&lt;a href="http://www.review6.com/2009/03/hostmonster-configuration-of-svn.html"&gt;Source&lt;/a&gt;&lt;br&gt;wget &lt;a href="http://subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2"&gt;http://subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2&lt;/a&gt;&lt;br&gt; wget &lt;a href="http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2"&gt;http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2&lt;/a&gt;&lt;br&gt;tar xjf subversion-1.4.6.tar.bz2&lt;br&gt;tar xjf subversion-deps-1.4.6.tar.bz2&lt;br&gt; mkdir svn&lt;br&gt;cd subversion-1.4.6&lt;br&gt;./configure --prefix=$HOME/svn --with-expat=builtin --with-pic --with-ssl&lt;br&gt;make&lt;br&gt;make install&lt;br&gt;vim ~/.bashrc (add svn/bin to the path)&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5092499630150749510?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5092499630150749510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5092499630150749510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5092499630150749510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5092499630150749510'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/svn-on-hostmonster.html' title='svn on hostmonster'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5770408127172452206</id><published>2011-01-12T20:45:00.000+05:30</published><updated>2011-01-12T20:45:44.021+05:30</updated><title type='text'>Making terminal vim the default text editor on Mac</title><content type='html'>&lt;a href="http://hints.macworld.com/article.php?story=20080305012955463"&gt;Making terminal vim the default text editor on Mac&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5770408127172452206?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5770408127172452206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5770408127172452206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5770408127172452206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5770408127172452206'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/making-terminal-vim-default-text-editor.html' title='Making terminal vim the default text editor on Mac'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6592285447381921122</id><published>2011-01-12T20:24:00.001+05:30</published><updated>2011-01-12T20:24:15.113+05:30</updated><title type='text'>Firefox : Mac : keyboard shortcut for going to address bar</title><content type='html'>Command + L - &lt;a href="http://osxdaily.com/2007/05/18/15-must-know-firefox-shortcuts/" target="_blank"&gt;source&lt;/a&gt;&lt;br&gt; &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6592285447381921122?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6592285447381921122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6592285447381921122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6592285447381921122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6592285447381921122'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/firefox-mac-keyboard-shortcut-for-going.html' title='Firefox : Mac : keyboard shortcut for going to address bar'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6761536870029118554</id><published>2011-01-12T20:23:00.000+05:30</published><updated>2011-01-12T21:01:48.824+05:30</updated><title type='text'>Firefox : Mac : keyboard shortcut for going to address bar</title><content type='html'>Command + L - &lt;a href="http://osxdaily.com/2007/05/18/15-must-know-firefox-shortcuts/"&gt;source&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6761536870029118554?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6761536870029118554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6761536870029118554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6761536870029118554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6761536870029118554'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/firefox-mac-keyboard-shortcut-for-going_12.html' title='Firefox : Mac : keyboard shortcut for going to address bar'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3825613503520005920</id><published>2011-01-12T20:22:00.001+05:30</published><updated>2011-01-12T20:22:20.449+05:30</updated><title type='text'>Mac book pro : Page up/down</title><content type='html'>&lt;br&gt;&lt;div class="gmail_quote"&gt;While holding down the &lt;b&gt;fn&lt;/b&gt; key, use the &lt;b&gt;up&lt;/b&gt; and &lt;b&gt;down&lt;/b&gt; arrows to achieve page up and page down. - &lt;a href="http://www.mountainvistatech.com/2009/01/26/page-uppage-down-on-macbook-pro-and-vista/" target="_blank"&gt;source&lt;/a&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3825613503520005920?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3825613503520005920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3825613503520005920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3825613503520005920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3825613503520005920'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/mac-book-pro-page-updown.html' title='Mac book pro : Page up/down'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-8102529434201469203</id><published>2011-01-12T20:19:00.000+05:30</published><updated>2011-01-12T20:53:56.575+05:30</updated><title type='text'>Mac book pro : Page up/down</title><content type='html'>While holding down the &lt;b&gt;fn&lt;/b&gt; key, use the &lt;b&gt;up&lt;/b&gt; and &lt;b&gt;down&lt;/b&gt; arrows to achieve page up and page down. - &lt;a href="http://www.mountainvistatech.com/2009/01/26/page-uppage-down-on-macbook-pro-and-vista/"&gt;source&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-8102529434201469203?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/8102529434201469203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=8102529434201469203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8102529434201469203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/8102529434201469203'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/mac-book-pro-page-updown_12.html' title='Mac book pro : Page up/down'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4137440653413630810</id><published>2011-01-09T19:23:00.001+05:30</published><updated>2011-01-09T19:23:53.989+05:30</updated><title type='text'>Mysql Create new user</title><content type='html'>CREATE USER &amp;#39;monty&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;some_pass&amp;#39;;&lt;br&gt;mysql&amp;gt; GRANT ALL PRIVILEGES ON *.* TO &amp;#39;monty&amp;#39;@&amp;#39;localhost&amp;#39;&lt;br&gt;    -&amp;gt;     WITH GRANT OPTION;&lt;br&gt;mysql&amp;gt; CREATE USER &amp;#39;monty&amp;#39;@&amp;#39;%&amp;#39; IDENTIFIED BY &amp;#39;some_pass&amp;#39;;&lt;br&gt;mysql&amp;gt; GRANT ALL PRIVILEGES ON *.* TO &amp;#39;monty&amp;#39;@&amp;#39;%&amp;#39;&lt;br&gt;    -&amp;gt;     WITH GRANT OPTION;&lt;br&gt;mysql&amp;gt; CREATE USER &amp;#39;admin&amp;#39;@&amp;#39;localhost&amp;#39;;&lt;br&gt;mysql&amp;gt; GRANT RELOAD,PROCESS ON *.* TO &amp;#39;admin&amp;#39;@&amp;#39;localhost&amp;#39;;&lt;br&gt;mysql&amp;gt; CREATE USER &amp;#39;dummy&amp;#39;@&amp;#39;localhost&amp;#39;;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4137440653413630810?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4137440653413630810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4137440653413630810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4137440653413630810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4137440653413630810'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2011/01/mysql-create-new-user.html' title='Mysql Create new user'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5110213119019190588</id><published>2010-12-22T18:30:00.002+05:30</published><updated>2010-12-22T18:31:37.784+05:30</updated><title type='text'>Google's AROUND Operator for Proximity Search</title><content type='html'>&lt;div style="background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 2px; padding-top: 1px;"&gt;&lt;/div&gt;&lt;div style="background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 1px; padding-top: 1px;"&gt;&lt;/div&gt;&lt;div style="font-family: sans-serif; margin: 0px 10px; overflow: auto; width: 100%;"&gt;&lt;h2 style="margin: 0.25em 0 0 0;"&gt;&lt;div class=""&gt;&lt;a href="http://googlesystem.blogspot.com/2010/12/googles-around-operator.html"&gt;Google's AROUND Operator for Proximity Search&lt;/a&gt;&lt;/div&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 0.5em;"&gt;via &lt;a class="f" href="http://googlesystem.blogspot.com/"&gt;Google Operating System&lt;/a&gt; by Alex Chitu on 12/8/10&lt;/div&gt;&lt;br /&gt;Google has &lt;a href="http://searchresearch1.blogspot.com/2010/10/around-has-always-been-around.html"&gt;an undocumented operator called "AROUND"&lt;/a&gt; for finding web pages that include words or phrases which are near to each other. &lt;br /&gt;&lt;br /&gt;If you want to find results that include both "Steve Jobs" and "Andy Rubin", you might search for ["Steve Jobs" "Andy Rubin"] or even for ["Steve Jobs * Andy Rubin"]. Google's AROUND operator lets you specify the maximum number of words that separate the two names. For example, you could search for [&lt;a href="http://www.google.com/search?q=%22Steve+Jobs%22+AROUND(3)+%22Andy+Rubin%22"&gt;"Steve Jobs" AROUND(3) "Andy Rubin"&lt;/a&gt;] and only get web pages that include the two names separated by less than three words.&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" src="http://3.bp.blogspot.com/_ZaGO7GjCqAI/TP-eOTFEJtI/AAAAAAAAedc/jnXE4dNzGfY/s640/google-around-operator.png" style="display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;br /&gt;"The AROUND operator is a handy trick to use when you're looking for a combination of search terms when one dominates the results, but you're interested in the relationship between two query terms. Note also that if Google can't find anything within the limit, it will just do regular ranking of the terms without the AROUND coming into play. Using AROUND is especially useful when the documents are rather long (think book-length articles). So try this operator in Google Books.... [&lt;a href="http://www.google.com/search?q=slavery+AROUND(4)+indigo&amp;amp;hl=en&amp;amp;tbs=bks:1"&gt;slavery AROUND(4) indigo&lt;/a&gt;]," suggests Google's &lt;a href="http://searchresearch1.blogspot.com/2010/10/around-has-always-been-around.html"&gt;Daniel Russell&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seroundtable.com/google-aroundn-search-operator-12608.html"&gt;Barry Schwartz notes&lt;/a&gt; that Bing has a similar operator, but &lt;a href="http://www.websearchguide.ca/netblog/archives/009740.html"&gt;it's called "near"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;{ via &lt;a href="http://googlesystem.blogspot.com/www.seroundtable.com/google-aroundn-search-operator-12608.html"&gt;Search Engine Roundtable&lt;/a&gt; }&lt;br /&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/5434031919110451140-5110213119019190588?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5110213119019190588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5110213119019190588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5110213119019190588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5110213119019190588'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/googles-around-operator-for-proximity.html' title='Google&apos;s AROUND Operator for Proximity Search'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZaGO7GjCqAI/TP-eOTFEJtI/AAAAAAAAedc/jnXE4dNzGfY/s72-c/google-around-operator.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5868936261875931427</id><published>2010-12-21T17:41:00.001+05:30</published><updated>2010-12-21T17:41:25.905+05:30</updated><title type='text'>Joining all lines in a file with comma</title><content type='html'>awk &amp;#39;{ printf &amp;quot;%s,&amp;quot; ,$0 }&amp;#39; file.txt &amp;gt; newfile.txt &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5868936261875931427?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5868936261875931427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5868936261875931427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5868936261875931427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5868936261875931427'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/joining-all-lines-in-file-with-comma.html' title='Joining all lines in a file with comma'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5539496733331906341</id><published>2010-12-20T12:24:00.001+05:30</published><updated>2010-12-20T12:24:56.643+05:30</updated><title type='text'>Mysql db count tables</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10px; line-height: 23px; "&gt;select count(*) as number_of_tables &lt;br&gt;from information_schema.tables &lt;br&gt;where table_schema = &amp;#39;my favourite schema&amp;#39; &lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;div id="WISESTAMP_SIG_9469"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5539496733331906341?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5539496733331906341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5539496733331906341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5539496733331906341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5539496733331906341'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/mysql-db-count-tables.html' title='Mysql db count tables'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6245163935835943782</id><published>2010-12-17T16:21:00.001+05:30</published><updated>2010-12-17T16:21:16.535+05:30</updated><title type='text'>linux : extracting a line range from a file</title><content type='html'>sed -n 2,4p somefile.txt&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6245163935835943782?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6245163935835943782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6245163935835943782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6245163935835943782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6245163935835943782'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/linux-extracting-line-range-from-file.html' title='linux : extracting a line range from a file'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1704108217616230487</id><published>2010-12-13T14:23:00.001+05:30</published><updated>2010-12-13T14:23:30.469+05:30</updated><title type='text'>mediawiki useful tables - pass 1</title><content type='html'>user&lt;br&gt;searchindex&lt;br&gt;logging&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1704108217616230487?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1704108217616230487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1704108217616230487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1704108217616230487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1704108217616230487'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/mediawiki-useful-tables-pass-1.html' title='mediawiki useful tables - pass 1'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2776400118743627758</id><published>2010-12-11T00:43:00.001+05:30</published><updated>2010-12-11T00:43:08.647+05:30</updated><title type='text'>Find the minimum difference between two arrays</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, &amp;#39;Liberation Sans&amp;#39;, &amp;#39;DejaVu Sans&amp;#39;, sans-serif; font-size: 11.6667px; border-collapse: collapse; line-height: 17px; "&gt;Given two sorted arrays, A and B, find i,j for which |A[i] - B[j]| is minimum&lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;div id="WISESTAMP_SIG_8081"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2776400118743627758?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2776400118743627758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2776400118743627758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2776400118743627758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2776400118743627758'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/find-minimum-difference-between-two.html' title='Find the minimum difference between two arrays'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5564035404556154090</id><published>2010-12-11T00:42:00.001+05:30</published><updated>2010-12-11T00:42:48.073+05:30</updated><title type='text'>Longest sequence of d-dimensional boxes fitting into each other</title><content type='html'>&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: Arial, &amp;#39;Liberation Sans&amp;#39;, &amp;#39;DejaVu Sans&amp;#39;, sans-serif; font-size: 11.6667px; border-collapse: collapse; line-height: 17px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; Interview question :&lt;br&gt;You have &amp;#39;n&amp;#39; d-dimensional boxes.&lt;br&gt;You have to find out the longest sequence&lt;br&gt;of boxes which fit into each other.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; Hints :&lt;br&gt;1. How do you say that whether a 3-d box&lt;br&gt;fits into another?&lt;br&gt;2. Extend it to d-dimensions.&lt;br&gt;3. It&amp;#39;s possible to do a bfs on a directed-acyclic-graph&lt;br&gt;without keeping a &amp;#39;visited&amp;#39; lookup table, since it will&lt;br&gt; never go in an infinite loop.&lt;br&gt;4. Finding longest path in a graph is NP-complete.&lt;/p&gt;&lt;/span&gt;&lt;div id="WISESTAMP_SIG_9752"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5564035404556154090?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5564035404556154090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5564035404556154090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5564035404556154090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5564035404556154090'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/longest-sequence-of-d-dimensional-boxes.html' title='Longest sequence of d-dimensional boxes fitting into each other'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2121319301840469363</id><published>2010-12-11T00:41:00.005+05:30</published><updated>2010-12-11T00:41:57.488+05:30</updated><title type='text'>Encoding/decoding a tree</title><content type='html'>&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: Arial, &amp;#39;Liberation Sans&amp;#39;, &amp;#39;DejaVu Sans&amp;#39;, sans-serif; font-size: 11.6667px; border-collapse: collapse; line-height: 17px; "&gt;How do you encode a tree, send it over&lt;br&gt; the wire and decode it.&lt;br&gt;Give algorithms for encoding/decoding.&lt;/span&gt;&lt;div id="WISESTAMP_SIG_6835"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2121319301840469363?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2121319301840469363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2121319301840469363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2121319301840469363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2121319301840469363'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/encodingdecoding-tree.html' title='Encoding/decoding a tree'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-3390265713569316509</id><published>2010-12-11T00:41:00.003+05:30</published><updated>2010-12-11T00:41:32.779+05:30</updated><title type='text'>Location of an element where index is same as the value</title><content type='html'>&lt;br&gt;I&lt;span class="Apple-style-span" style="font-family: Arial, &amp;#39;Liberation Sans&amp;#39;, &amp;#39;DejaVu Sans&amp;#39;, sans-serif; font-size: 11.6667px; border-collapse: collapse; line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-size: 12.5px; "&gt;n a sorted integer array,&lt;/span&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; find an index, for which the&lt;br&gt;value is same as the index, i.e. a[i] is same as i.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; For e.g. in a = {-2,0,2,3}&lt;br&gt;a[2] is 2, so the answer is 2.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; In {1,2,5,7}, there is no such index.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; My answer is on the lines of binary-search,&lt;br&gt;but would also like to see other answers.&lt;/p&gt;&lt;/span&gt;&lt;div id="WISESTAMP_SIG_6671"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-3390265713569316509?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/3390265713569316509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=3390265713569316509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3390265713569316509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/3390265713569316509'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/location-of-element-where-index-is-same.html' title='Location of an element where index is same as the value'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5499329531330527115</id><published>2010-12-11T00:41:00.001+05:30</published><updated>2010-12-11T00:41:03.269+05:30</updated><title type='text'>Locker design interview question</title><content type='html'>&lt;br&gt;&lt;span class="Apple-style-span" style="font-family: Arial, &amp;#39;Liberation Sans&amp;#39;, &amp;#39;DejaVu Sans&amp;#39;, sans-serif; font-size: 11.6667px; border-collapse: collapse; line-height: 17px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; You have to design a locker system where people&lt;br&gt;can deposit their bags of 3 types : small,medium,big.&lt;br&gt;And there are 3 types of lockers : small,medium,big.&lt;br&gt;Let&amp;#39;s say there are &amp;#39;n&amp;#39; lockers of each type.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; Also, a small bag goes in a small locker,&lt;br&gt;a big bag in the big locker and so on.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; You need to support two operations.&lt;br&gt;1. deposit a bag&lt;br&gt;2. retrieve a bag(when the depositor comes back)&lt;/p&gt;&lt;/span&gt;&lt;div id="WISESTAMP_SIG_490"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5499329531330527115?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5499329531330527115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5499329531330527115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5499329531330527115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5499329531330527115'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/locker-design-interview-question.html' title='Locker design interview question'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7732336509031051270</id><published>2010-12-11T00:15:00.001+05:30</published><updated>2010-12-11T00:15:11.211+05:30</updated><title type='text'>interview questions</title><content type='html'>find the height of a binary tree, iteratively&lt;br&gt;&lt;br&gt;&lt;div id="WISESTAMP_SIG_3550"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-7732336509031051270?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7732336509031051270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7732336509031051270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7732336509031051270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7732336509031051270'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/interview-questions.html' title='interview questions'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4566149855242645509</id><published>2010-12-07T20:35:00.001+05:30</published><updated>2010-12-07T20:35:37.156+05:30</updated><title type='text'>Interview question</title><content type='html'>I have 6 million co-ordinates of the type (x,y).&lt;br&gt;I know the bounding rectangle for those points,&lt;br&gt;that is I know the min(x),min(y),max(x),max(y)&lt;br&gt;on the complete range.&lt;p&gt;Now, write a function closestTen(x,y), which&lt;br&gt;will take a (x,y) point as input and find its 10 closest&lt;br&gt;neighbors in the given bounding rectangle.&lt;p&gt;This input (x,y) can be inside the bounding rectangle&lt;br&gt;or outside it. It may also be one of the 6 million points,&lt;br&gt;but not necessarily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4566149855242645509?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4566149855242645509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4566149855242645509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4566149855242645509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4566149855242645509'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/interview-question_07.html' title='Interview question'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-6857475522243269660</id><published>2010-12-07T13:55:00.001+05:30</published><updated>2010-12-07T13:55:10.631+05:30</updated><title type='text'>Some Interview questions</title><content type='html'>1. Given a sorted array which has distinct integers in ascending order,&lt;br&gt;find an index where a[k] = k;&lt;br&gt;Solution : modified binary search&lt;p&gt;2. Give me the data structure and algorithm for a locker system&lt;br&gt;where there are 3 types of lockers big,medium and small. Number of&lt;br&gt;lockers is n for every type.&lt;br&gt;Customers come with 3 types of bags, big,medium and small.&lt;br&gt;Small bag goes in small locker, and so on...&lt;p&gt;You have to support two operations :&lt;br&gt;a. insert bag,&lt;br&gt;b. retrieve bag.&lt;p&gt;For both of the operations, the expected time complexity is O(1).&lt;p&gt;3. Given a binary search tree, find two elements which sum up to k.&lt;br&gt;Solution : convert it into a doubly linked list and then solve the problem&lt;br&gt;as if you are solving it for an array.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-6857475522243269660?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/6857475522243269660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=6857475522243269660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6857475522243269660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/6857475522243269660'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/some-interview-questions.html' title='Some Interview questions'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-481538050261161734</id><published>2010-12-06T12:32:00.001+05:30</published><updated>2010-12-06T12:32:38.700+05:30</updated><title type='text'>php echo print difference</title><content type='html'>echo is faster, since it doesn&amp;#39;t return anything as opposed&lt;br&gt;to print&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-481538050261161734?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/481538050261161734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=481538050261161734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/481538050261161734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/481538050261161734'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/php-echo-print-difference.html' title='php echo print difference'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2625965254911285274</id><published>2010-12-06T12:31:00.001+05:30</published><updated>2010-12-06T12:31:36.349+05:30</updated><title type='text'>PHP how to get the browser information</title><content type='html'>through $_SERVER[], a parameter called HTTP_USER_AGENT,&lt;br&gt;may be coupled with get_browser method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-2625965254911285274?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2625965254911285274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2625965254911285274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2625965254911285274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2625965254911285274'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/php-how-to-get-browser-information.html' title='PHP how to get the browser information'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-5005641794150865331</id><published>2010-12-06T12:30:00.001+05:30</published><updated>2010-12-06T12:30:43.691+05:30</updated><title type='text'>GET POST difference</title><content type='html'>1. POST is superset of get, that is it reads data from querystring as&lt;br&gt;well as the request body,&lt;br&gt;whereas GET reads data only from the queryString.&lt;br&gt;2. Results of GET can be cached, not POST.&lt;br&gt;3. Sending passwords by GET can expose your password to :&lt;br&gt;(a) a casual observer looking over your shoulder&lt;br&gt;(b) someone reading server logs&lt;br&gt;(c) in referrer information&lt;br&gt;4. Through POST, you can send more data.&lt;br&gt;5. resubmitting a POST request prompts(should prompt) user.&lt;br&gt;6.&amp;#160;GET or query string posts are really good for information required&lt;br&gt; for either bookmarking a particular item, or for assisting in search&lt;br&gt; engine optimization and indexing items.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-5005641794150865331?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/5005641794150865331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=5005641794150865331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5005641794150865331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/5005641794150865331'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/get-post-difference.html' title='GET POST difference'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-7409633651583305462</id><published>2010-12-04T21:26:00.001+05:30</published><updated>2010-12-04T21:26:47.693+05:30</updated><title type='text'>BST in PHP</title><content type='html'>&amp;lt;pre&amp;gt;&lt;br&gt;&amp;lt;?php&lt;br&gt;define(l,&amp;#39;l&amp;#39;);&lt;br&gt;define(r,&amp;#39;r&amp;#39;);&lt;br&gt;&lt;br&gt;$root[&amp;#39;data&amp;#39;] = 22;&lt;br&gt;$root = tree_insert(&amp;amp;$root,20);&lt;br&gt;$root = tree_insert(&amp;amp;$root,24);&lt;br&gt;$root = tree_insert(&amp;amp;$root,23);&lt;br&gt; $root = tree_insert(&amp;amp;$root,23.5);&lt;br&gt;&lt;br&gt;$root = tree_insert(&amp;amp;$root,19);&lt;br&gt;$root = tree_insert(&amp;amp;$root,21);&lt;br&gt;$root = tree_insert(&amp;amp;$root,20.5);&lt;br&gt;$root = tree_insert(&amp;amp;$root,21.5);&lt;br&gt;&lt;br&gt;$root = tree_insert(&amp;amp;$root,20.25);&lt;br&gt; $root = tree_insert(&amp;amp;$root,20.75);&lt;br&gt;$root = tree_insert(&amp;amp;$root,18);&lt;br&gt;$root = tree_insert(&amp;amp;$root,19.5);&lt;br&gt;$root = tree_insert(&amp;amp;$root,18.5);&lt;br&gt;&lt;br&gt;print_r($root);&lt;br&gt;&lt;br&gt;function tree_insert($root,$data) {&lt;br&gt;     if($root) {&lt;br&gt;        if($root[&amp;#39;data&amp;#39;] &amp;lt; $data) {&lt;br&gt;            $root[r] = tree_insert(&amp;amp;$root[r],$data);&lt;br&gt;        } else {&lt;br&gt;            $root[l] = tree_insert(&amp;amp;$root[l],$data);&lt;br&gt;        }&lt;br&gt;     } else {&lt;br&gt;        $root[&amp;#39;data&amp;#39;] = $data;&lt;br&gt;        return $root;&lt;br&gt;    }&lt;br&gt;    return $root;&lt;br&gt;}&lt;br&gt;&lt;br&gt;?&amp;gt;&lt;br&gt;&amp;lt;/pre&amp;gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-7409633651583305462?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/7409633651583305462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=7409633651583305462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7409633651583305462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/7409633651583305462'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/bst-in-php.html' title='BST in PHP'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-445089383907221306</id><published>2010-12-04T00:17:00.001+05:30</published><updated>2010-12-04T00:17:45.336+05:30</updated><title type='text'>Web Security issues</title><content type='html'>1. Cross Site Request Forgery : (CSRF)&lt;br&gt;&lt;br&gt;Types &lt;br&gt;A.&lt;br&gt;Change the DNS entry for the server in the ADSL of the user for a particular domain,&lt;br&gt;so that the request goes to a different domain altogether&lt;br&gt;&lt;br&gt;B.&lt;br&gt;For e.g. a URL in one of the forums which Bob uses : &lt;br&gt;  &amp;lt;img src=&amp;quot;&lt;a href="http://bank.example.com/withdraw?account=bob&amp;amp;amount=1000000&amp;amp;for=mallory" target="_blank"&gt;http://bank.example.com/withdraw?account=bob&amp;amp;amount=1000000&amp;amp;for=mallory&lt;/a&gt;&amp;quot;&amp;gt;&lt;br&gt; If Bob&amp;#39;s cookies haven&amp;#39;t expired, this will benefit mallory.&lt;br&gt; &lt;br&gt;Prevention :&lt;br&gt;1. Add authentication token in GET/POST&lt;br&gt;2. Check referrer&lt;br&gt;3. secret token&lt;br&gt;4. crossdomain.xml&lt;br&gt;&lt;br&gt;&lt;br&gt;2. Replay attack :&lt;br&gt;Evasdrop on a client server communication and re-play it.&lt;br&gt;Prevention : &lt;br&gt;  Server should the client a one-time use token.&lt;br&gt;Other Issues : &lt;br&gt;&lt;br&gt;&lt;div&gt;3. Cross site cooking / Cross sub domain cooking (allowing a web site to set cookies for other domains/sub domains)&lt;br&gt;then, if the affected person logs on, evil person can use that cookie&lt;br&gt;  General solutions : &lt;br&gt;generate new SId, before something crucial.&lt;br&gt;destroy session for malicious referrer&lt;br&gt;check browser etc information&lt;br&gt;time out old SIDs.&lt;div&gt;&lt;br&gt;4. A billion laughs : &lt;br&gt;&lt;br&gt;&amp;lt;!DOCTYPE root [&lt;br&gt;  &amp;lt;!ENTITY ha &amp;quot;Ha! &amp;quot;&amp;gt;&lt;br&gt;&amp;lt;!ENTITY ha2 &amp;quot;&amp;amp;ha;&amp;amp;ha;&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;!ENTITY ha3 &amp;quot;&amp;amp;ha2;&amp;amp;ha2;&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;!ENTITY ha4 &amp;quot;&amp;amp;ha3;&amp;amp;ha3;&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;!ENTITY ha5 &amp;quot;&amp;amp;ha4;&amp;amp;ha4;&amp;quot;&amp;gt;&lt;br&gt;  ...&lt;br&gt;&amp;lt;!ENTITY ha128 &amp;quot;&amp;amp;ha127;&amp;amp;ha127;&amp;quot;&amp;gt;&lt;br&gt;]&amp;gt;&lt;br&gt;&amp;lt;root&amp;gt;&amp;amp;ha128;&amp;lt;/root&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;5. Similar to a Billion laughs : &lt;/div&gt;&lt;div&gt;ReDos (Regular expression Denial of Service)&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-445089383907221306?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/445089383907221306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=445089383907221306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/445089383907221306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/445089383907221306'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/web-security-issues.html' title='Web Security issues'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-1812215822292007266</id><published>2010-12-04T00:15:00.000+05:30</published><updated>2010-12-04T00:18:52.027+05:30</updated><title type='text'>Cross site scripting attack (Google example)</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: sans, verdana, helvetica, arial; font-size: 10px; border-collapse: collapse; color: rgb(51, 51, 51); -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;div&gt; &lt;span class="Apple-style-span" style="font-family: sans, verdana, helvetica, arial; font-size: 10px; border-collapse: collapse; color: rgb(51, 51, 51); -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;a href="http://www.securiteam.com/securitynews/6Z00L0AEUE.html"&gt;Source&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-style-span" style="font-family: sans, verdana, helvetica, arial; font-size: 10px; border-collapse: collapse; color: rgb(51, 51, 51); -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;br&gt; &lt;/span&gt;&lt;/div&gt;The script (&lt;a href="http://www.google.com/url?q=.."&gt;http://www.google.com/url?q=..&lt;/a&gt;.) is normally used for redirecting the browser from Google&amp;#39;s website to other sites.&lt;br&gt;&lt;br&gt;For example, the following request will redirect the browser to &lt;a href="http://www.watchfire.com"&gt;http://www.watchfire.com&lt;/a&gt;:&lt;br&gt; &lt;i&gt;&lt;a href="http://www.google.com/url?q=http://www.watchfire.com"&gt;http://www.google.com/url?q=http://www.watchfire.com&lt;/a&gt; &lt;/i&gt;&lt;br&gt;&lt;br&gt;When the parameter (q) is passed to the script with illegal format (The format seems to be: &lt;a href="http://domain"&gt;http://domain&lt;/a&gt;), a &amp;quot;403 Forbidden&amp;quot; page returns to the user, informing that the query was illegal. The parameter&amp;#39;s value appears in the HTML returned to the user.&lt;br&gt; &lt;br&gt;If &lt;a href="http://www.google.com/url?q=USER_INPUT"&gt;http://www.google.com/url?q=USER_INPUT&lt;/a&gt; is requested, the text in the &amp;quot;403 Forbidden&amp;quot; response would be:&lt;br&gt;&lt;i&gt;&amp;quot;Your client does not have permission to get URL /url?q=USER_INPUT from this server.&amp;quot;&lt;/i&gt;&lt;br&gt; &lt;br&gt;The server response lacks charset encoding enforcement, such as:&lt;br&gt;* Response headers: &amp;quot;Content-Type: text/html; charset=[encoding]&amp;quot;.&lt;br&gt;* Response body: &amp;quot;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; (...) charset=[encoding]/&amp;gt;&amp;quot;.&lt;br&gt; &lt;br&gt;&lt;b&gt;Google&amp;#39;s 404 NOT FOUND mechanism:&lt;/b&gt;&lt;br&gt;When requesting a page which doesn&amp;#39;t exist under &lt;a href="http://www.google.com"&gt;www.google.com&lt;/a&gt;, a 404 NOT FOUND response is returned to the user, with the original path requested.&lt;br&gt; &lt;br&gt;If &lt;a href="http://www.google.com/NOTFOUND"&gt;http://www.google.com/NOTFOUND&lt;/a&gt; is requested, the following text appears in the response:&lt;br&gt;&lt;i&gt;&amp;quot;Not Found The requested URL /NOTFOUND was not found on this server.&amp;quot;&lt;/i&gt;&lt;br&gt; &lt;br&gt;The server response lacks charset encoding enforcement, such as:&lt;br&gt;* Response headers: &amp;quot;Content-Type: text/html; charset=[encoding]&amp;quot;.&lt;br&gt;* Response body: &amp;quot;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; (...) charset=[encoding]/&amp;gt;&amp;quot;.&lt;br&gt; &lt;br&gt;&lt;b&gt;XSS vulnerabilities:&lt;/b&gt;&lt;br&gt;While the aforementioned mechanisms (URL redirection script, 404 NOT FOUND) escape common characters used for XSS, such as &amp;lt;&amp;gt; (triangular parenthesis) and apostrophes, it fails to handle hazardous UTF-7 encoded payloads.&lt;br&gt; &lt;br&gt;Therefore, when sending an XSS attack payload, encoded in UTF-7, the payload will return in the response without being altered.&lt;br&gt;&lt;br&gt;For the attack to succeed (script execution), the victims browser should treat the XSS payload as UTF-7.&lt;br&gt; &lt;br&gt;&lt;u&gt;IE charset encoding Auto-Selection:&lt;/u&gt;&lt;br&gt;If &amp;#39;Encoding&amp;#39; is set to &amp;#39;Auto-Select&amp;#39;, and Internet-Explorer finds a UTF-7 string in the first 4096 characters of the response&amp;#39;s body, it will set the charset encoding to UTF-7 automatically, unless a certain charset encoding is already enforced.&lt;br&gt; &lt;br&gt;This automatic encoding selection feature makes it possible to mount UTF-7 XSS attacks on Google.com.&lt;br&gt;&lt;br&gt;&lt;b&gt;Solution:&lt;/b&gt;&lt;br&gt;Google solved the aforementioned issues at 01/12/2005, by using character encoding enforcement.&lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;div id="WISESTAMP_SIG_5393"&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-1812215822292007266?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/1812215822292007266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=1812215822292007266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1812215822292007266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/1812215822292007266'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/cross-site-scripting-attack-google.html' title='Cross site scripting attack (Google example)'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-2221183053464462868</id><published>2010-12-03T23:56:00.001+05:30</published><updated>2010-12-03T23:56:49.652+05:30</updated><title type='text'>Some db performance optimizations</title><content type='html'>1. Materialized views : &lt;div&gt;Views where the results are cached, and updated time-to-time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2. Save the result of aggregate operations, and refresh periodically ( or use triggers)&lt;/div&gt;&lt;div&gt;(for e.g. stackoverflow updates your accept rate, not immediately, but after some time)&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;3. Vertically split tables (by columns), keep the primary key column in both the partitions.&lt;/div&gt;&lt;div&gt;If the original table is being maintained, no need to carry over the RI constraints.&lt;/div&gt;&lt;div&gt;&lt;br&gt;   &lt;/div&gt;&lt;div&gt;4. Redundant data&lt;/div&gt;&lt;div&gt;table1(empid,empname,deptId) table2(deptId,deptName)&lt;/div&gt;&lt;div&gt;if empname,deptName are usually fetched together, ponder&lt;/div&gt;&lt;div&gt;copying the deptName to the first table.&lt;/div&gt;&lt;div&gt;  &lt;br&gt; &lt;/div&gt;&lt;div&gt;5. While dealing with repeating groups, you can consider having multiple columns&lt;/div&gt;&lt;div&gt;rather than multiple rows in order fasten the access.&lt;/div&gt;&lt;div&gt;but before doing this know that,&lt;/div&gt;&lt;div&gt;-&amp;gt; it will be difficult to aggregate the data&lt;/div&gt;  &lt;div&gt;-&amp;gt; it will be accessed collectively&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;div&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/5434031919110451140-2221183053464462868?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/2221183053464462868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=2221183053464462868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2221183053464462868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/2221183053464462868'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/some-db-performance-optimizations.html' title='Some db performance optimizations'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5434031919110451140.post-4559153421023441435</id><published>2010-12-03T23:52:00.001+05:30</published><updated>2010-12-03T23:52:04.820+05:30</updated><title type='text'>Data Denormalization guidelines</title><content type='html'>&lt;p align="center" style="font-family: &amp;#39;Times New Roman&amp;#39;; font-size: medium; "&gt;&lt;font face="Arial" size="2"&gt;this page mirrored from the &lt;a href="http://www.tdan.com/"&gt;The Data Adminstration Newsletter www.tdan.com&lt;/a&gt;. Please visit them for more.&lt;/font&gt;&lt;/p&gt; &lt;div align="center" style="font-family: &amp;#39;Times New Roman&amp;#39;; font-size: medium; "&gt;&lt;center&gt;&lt;table border="0" cellpadding="10" cellspacing="0" width="650"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center" valign="top" rowspan="2" width="125" bgcolor="#C0C0C0"&gt; &lt;/td&gt;&lt;td valign="top" rowspan="2" width="500"&gt;&lt;p align="center"&gt;&lt;font color="#000000" size="2" face="Arial"&gt;&lt;strong&gt;DENORMALIZATION GUIDELINES&lt;br&gt;Craig S. Mullins, PLATINUM &lt;/strong&gt;&lt;em&gt;&lt;strong&gt;technology, inc.&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Normalization is the process of putting one fact in one appropriate place. This optimizes updates at the expense of retrievals. When a fact is stored in only one place, retrieving many different but related facts usually requires going to many different places. This tends to slow the retrieval process. Updating is quicker, however, because the fact you&amp;#39;re updating exists in only one place.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;It is generally recognized that all relational database designs should be based on a normalized logical data model. With a normalized data model, one fact is stored in one place, related facts about a single entity are stored together, and every column of each entity refers non-transitively to only the unique identifier for that entity. Although an in-depth discussion of normalization is beyond the scope of this article, brief definitions of the first three normal forms follow:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;In &lt;i&gt;first normal form&lt;/i&gt;, all entities must have a unique identifier, or key, that can be composed of one or more attributes. In addition, all attributes must be atomic and non-repeating. (&lt;i&gt;Atomic&lt;/i&gt; means that the attribute must not be composed of multiple attributes. For example, EMPNO should not be composed of social security number and last name because these are separate attributes.)&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;In &lt;i&gt;second normal form&lt;/i&gt;, all attributes that are not part of the key must depend on the entire key for that entity.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;In &lt;i&gt;third normal form&lt;/i&gt;, all attributes that are not part of the key must not depend on any other non-key attributes.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Frequently, however, performance needs dictate very quick retrieval capability for data stored in relational databases. To accomplish this, sometimes the decision is made to denormalize the physical implementation. Denormalization is the process of putting one fact in numerous places. This speeds data retrieval at the expense of data modification.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;It is not the intention of this article to promote the concept of denormalization. Of course, a normalized set of relational tables is the optimal environment and should be implemented for whenever possible. Yet, in the real world, denormalization is sometimes necessary. Denormalization is not necessarily a bad decision if implemented wisely. You should always consider these issues before denormalizing:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;can the system achieve acceptable performance &lt;i&gt;without&lt;/i&gt; denormalizing?&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;will the performance of the system &lt;i&gt;after&lt;/i&gt; denormalizing still be unacceptable?&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;will the system be less reliable due to denormalization?&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If the answer to any of these questions is &amp;quot;yes,&amp;quot; then you should avoid denormalization because any benefit that is accrued will not exceed the cost. If, after considering these issues, you decide to denormalize be sure to adhere to the general guidelines that follow.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;If enough DASD is available at your shop, create two sets of tables: one set fully normalized and another denormalized. Populate the denormalized versions by querying the data in the normalized tables and loading or inserting it into the denormalized tables. Your application can access the denormalized tables in a read-only fashion and achieve performance gains. It is imperative that a controlled and scheduled population function is maintained to keep the data in the denormalized and normalized tables synchronized.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;If DASD is not available for two sets of tables, then maintain the denormalized tables programmatically. Be sure to update each denormalized table representing the same entity at the same time, or alternately, to provide a rigorous schedule whereby tables will be synchronized. At any rate, all users should be informed of the implications of inconsistent data if it is deemed impossible to avoid unsynchronized data.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;When updating any column that is replicated in many different tables, always update it everywhere that it exists simultaneously, or as close to simultaneously as possible given the physical constraints of your environment. If the denormalized tables are ever out of sync with the normalized tables be sure to inform end-users that batch reports and on-line queries may not contain sound data; if at all possible, this should be avoided.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Finally, be sure to design the application so that it can be easily converted from using denormalized tables to using normalized tables.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;The Reason for Denormalization&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Only one valid reason exists for denormalizing a relational design - to enhance performance. However, there are several indicators which will help to identify systems and tables which are potential denormalization candidates. These are:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;Many critical queries and reports exist which rely upon data from more than one table. Often times these requests need to be processed in an on-line environment.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;Repeating groups exist which need to be processed in a group instead of individually.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;Many calculations need to be applied to one or many columns before queries can be successfully answered.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;Tables need to be accessed in different ways by different users during the same timeframe.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;Many large primary keys exist which are clumsy to query and consume a large amount of DASD when carried as foreign key columns in related tables.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;Certain columns are queried a large percentage of the time. Consider 60% or greater to be a cautionary number flagging denormalization as an option.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Be aware that each new RDBMS release usually brings enhanced performance and improved access options that may reduce the need for denormalization. However, most of the popular RDBMS products on occasion will require denormalized data structures. There are many different types of denormalized tables which can resolve the performance problems caused when accessing fully normalized data. The following topics will detail the different types and give advice on when to implement each of the denormalization types.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Pre-Joined Tables&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If two or more tables need to be joined on a regular basis by an application, but the cost of the join is prohibitive, consider creating tables of pre-joined data. The pre-joined tables should:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;contain no redundant columns (matching join criteria columns)&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;contain only those columns absolutely necessary for the application to meet its processing needs&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;be created periodically using SQL to join the normalized tables&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;The cost of the join will be incurred only once when the pre-joined tables are created. A pre-joined table can be queried very efficiently because every new query does not incur the overhead of the table join process.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Report Tables&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Often times it is impossible to develop an end-user report using SQL or QMF alone. These types of reports require special formatting or data manipulation. If certain critical or highly visible reports of this nature are required to be viewed in an on-line environment, consider creating a table that represents the report. This table can then be queried using SQL, QMF, and/or another report facility. The report should be created using the appropriate mechanism (application program, 4GL, SQL, etc.) in a batch environment. It can then loaded into the report table in sequence. The report table should:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;contain one column for every column of the report&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;have a clustering index on the columns that provide the reporting sequence&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;not subvert relational tenets (such as, 1NF and atomic data elements)&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Report tables are ideal for carrying the results of outer joins or other complex SQL statements. If an outer join is executed and then loaded into a table, a simple SELECT statement can be used to retrieve the results of the outer join, instead of the complex UNION technique shown in Figure 1. Some RDBMS products support an explicit outer join function which can be used instead of the UNION depicted. However, depending on the implementation, the explicit outer join may be simpler or more complex than the UNION it replaces.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Figure 1. Outer Join Technique Using UNION&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe18.gif" width="465" height="217"&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Mirror Tables&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If an application system is very active it may be necessary to split processing into two (or more) distinct components. This requires the creation of duplicate, or mirror tables. Consider an application system that has very heavy on-line traffic during the morning and early afternoon hours. This traffic consists of both querying and updating of data. Decision support processing is also performed on the same application tables during the afternoon. The production work in the afternoon always seems to disrupt the decision support processing causing frequent time outs and dead locks.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;This situation could be corrected by creating mirror tables. A foreground set of tables would exist for the production traffic and a background set of tables would exist for the decision support reporting. A mechanism to periodically migrate the foreground data to background tables must be established to keep the application data synchronized. One such mechanism could be a batch job executing UNLOAD and LOAD utilities. This should be done as often as necessary to sustain the effectiveness of the decision support processing.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;It is important to note that since the access needs of decision support are often considerably different than the access needs of the production environment, different data definition decisions such as indexing and clustering may be chosen for the mirror tables.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Split Tables&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If separate pieces of one normalized table are accessed by different and distinct groups of users or applications then consider splitting the table into two (or more) denormalized tables; one for each distinct processing group. The original table can also be maintained if other applications exist that access the entire table. In this scenario the split tables should be handled as a special case of mirror table. If an additional table is not desired then a view joining the tables could be provided instead.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe7.gif" width="441" height="353"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Tables can be split in one of two ways: vertically or horizontally. Refer to Figure 2. A vertical split cuts a table column-wise, such that one group of columns is placed into one new table and the remaining columns are placed in another new table. A horizontally split table is a row-wise split. To split a table horizontally, rows are classified into groups via key ranges. The rows from one key range are placed in one table, those from another key range are placed in a different table, and so on.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Vertically split tables should be created by placing the primary key columns for the old, normalized table into both of the split tables. Designate one of the two, new tables as the parent table for the purposes of referential integrity unless the original table still exists. In this case, the original table should be the parent table in all referential constraints. If this is the case, and the split tables are read only, do not set up referential integrity (RI) for the split tables as they are being derived from a referentially intact source. RI would be redundant.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;When a vertical split is being done, always include one row per primary key in each split table. Do not eliminate rows from either of the two tables for any reason. If rows are eliminated the update process and any retrieval process that must access data from both tables will be unnecessarily complicated.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;When a horizontal split is being done, try to split the rows between the new tables to avoid duplicating any one row in each new table. This is done by splitting using the primary key such that discrete key ranges are placed in separate split tables. Simply stated, the operation of UNION ALL, when applied to the horizontally split tables, should not add more rows than contained in the original, un-split tables. Likewise, it should not contain fewer rows either.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Combined Tables&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If tables exist with a one-to-one relationship consider combining them into a single combined table. Sometimes, even one-to-many relationships can be combined into a single table, but the data update process will be significantly complicated because of the increase in redundant data.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;For example, consider an application with two tables: DEPT (containing department data) and EMP (containing employee data). Combining the two tables into a large table named, for example, EMP_WITH_DEPT. This new table would contain all of the columns of both tables except for the redundant DEPTNO column (the join criteria). So, in addition to all of the employee information, all of the department information would also be contained on each employee row. This will result in many duplicate instances of the department data. Combined tables of this sort should be considered pre-joined tables and treated accordingly. Tables with one to one relationships should always be analyzed to determine if combination is useful.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Redundant Data&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Sometimes one or more columns from one table are accessed whenever data from another table is accessed. If these columns are accessed frequently with tables other than those in which they were initially defined, consider carrying them in those other tables as redundant data. By carrying these additional columns, joins can be eliminated and the speed of data retrieval will be enhanced. This should only be attempted if the normal access is debilitating.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Consider, once again, the DEPT and EMP tables. If most of the employee queries require the name of the employee&amp;#39;s department then the department name column could be carried as redundant data in the EMP table. The column should not be removed from the DEPT table, though (causing additional update requirements if the department name changes).&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;In all cases columns that can potentially be carried as redundant data should be characterized by the following attributes:&lt;/font&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;only a few columns are necessary to support the redundancy&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;the columns should be stable, being updated only infrequently&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;the columns should be used by either a large number of users or a few very important users&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Repeating Groups&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;When repeating groups are normalized they are implemented as distinct rows instead of distinct columns. This usually results in higher DASD usage and less efficient retrieval because there are more rows in the table and more rows need to be read in order to satisfy queries that access the repeating group.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Sometimes, denormalizing the data by storing it in distinct columns can achieve significant performance gains. However, these gains come at the expense of flexibility. For example, consider an application that is storing repeating group information in the normalized table below:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe19.gif" width="465" height="121"&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;This table can store an infinite number of balances per customer, limited only by available storage and the storage limits of the RDBMS. If the decision were made to string the repeating group, BALANCE, out into columns instead of rows, a limit would need to be set for the number of balances to be carried in each row. An example of this after denormalization is shown below:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe1.gif" width="465" height="153"&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;In this example, only six balances may be stored for any one customer. The number six is not important, but the concept that the number of values is limited is important. This reduces the flexibility of data storage and should be avoided unless performance needs dictate otherwise.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Before deciding to implement repeating groups as columns instead of rows be sure that the following criteria are met:&lt;/font&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;the data is rarely or never aggregated, averaged, or compared within the row&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;the data occurs in a statistically well-behaved pattern&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;the data has a stable number of occurrences&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;the data is usually accessed collectively&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size="2" face="Arial"&gt;the data has a predictable pattern of insertion and deletion&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If any of the above criteria are not met, SQL SELECT statements may be difficult to code making the data less available due to inherently unsound data modeling practices. This should be avoided because, in general, data is denormalized only to make it &lt;b&gt;&lt;i&gt;more&lt;/i&gt;&lt;/b&gt; readily available.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Derivable Data&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;If the cost of deriving data using complicated formulae is prohibitive then consider storing the derived data in a column instead of calculating it. However, when the underlying values that comprise the calculated value change, it is imperative that the stored derived data also be changed otherwise inconsistent information could be reported. This will adversely impact the effectiveness and reliability of the database.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Sometimes it is not possible to immediately update derived data elements when the columns upon which they rely change. This can occur when the tables containing the derived elements are off-line or being operated upon by a utility. In this situation, time the update of the derived data such that it occurs immediately when the table is made available for update. Under no circumstances should outdated derived data be made available for reporting and inquiry purposes.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Hierarchies&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;A hierarchy is a structure that is easy to support using a relational database such as DB2, but is difficult to retrieve information from efficiently. For this reason, applications which rely upon hierarchies very often contain denormalized tables to speed data retrieval. Two examples of these types of systems are the classic Bill of Materials application and a Departmental Reporting system. A Bill of Materials application typically records information about parts assemblies in which one part is composed of other parts. A Department Reporting system typically records the departmental structure of an organization indicating which departments report to which other departments.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;A very effective way to denormalize a hierarchy is to create what are called &amp;quot;speed&amp;quot; tables. Figure 3 depicts a department hierarchy for a given organization. The hierarchic tree is built such that the top most node is the entire corporation and each of the other nodes represents a department at various levels within the corporation. In our example department 123456 is the entire corporation. Departments 1234 and 56 report directly to 123456. Departments 12, 3, and 4 report directly to 1234 and indirectly to department 123456. And so on.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;The table shown under the tree in Figure 3 is the classic relational implementation of a hierarchy. There are two department columns, one for the parent and one for the child. This is an accurately normalized version of this hierarchy containing everything that is represented in the diagram. The complete hierarchy can be rebuilt with the proper data retrieval instructions.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Figure 3. Classic Relational Implementation of a Department Hierarchy&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe21.gif" width="465" height="337"&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Even though the implementation effectively records the entire hierarchy, building a query to report all of the departments under any other given department can be time consuming to code and inefficient to process. Figure 4 shows a sample query that will return all of the departments that report to the corporate node 123456. However, this query can only be built if you know in advance the total number of possible levels the hierarchy can achieve. If there are &lt;i&gt;n&lt;/i&gt; levels in the hierarchy then you will need &lt;i&gt;n-1&lt;/i&gt;UNIONs.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Figure 4. Querying the Departmental Hierarchy&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe17.gif" width="465" height="369"&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;A &amp;quot;speed&amp;quot; table can be built such as the one in Figure 5. This table depicts the parent department and all of the departments under it regardless of the level. Contrast this to the previous table which only recorded immediate children for each parent. A &amp;quot;speed&amp;quot; table also commonly contains other pertinent information that is needed by the given application. Typical information includes the level within the hierarchy for the given node, whether or not the given node of the hierarchy is a detail node (at the bottom of the tree), and, if ordering within level is important, the sequence of the nodes at the given level.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Figure 5. Speed Table Implementation of a Departmental Hierarchy&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe22.gif" width="457" height="433"&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;After the &amp;quot;speed&amp;quot; table has been built, speedy queries can be written against this implementation of a hierarchy. Figure 6 shows various informative queries that would have been very inefficient to execute against the classical relational hierarchy. These queries work for any number of levels between the top and bottom of the hierarchy.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;A &amp;quot;speed&amp;quot; table is commonly built using a program written in COBOL or another high level language. SQL alone is usually either too inefficient to handle the creation of a &amp;quot;speed&amp;quot; table or impractical because the number of levels in the hierarchy is either unknown or constantly changing.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Figure 6. Querying the Speed Table&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe23.gif" width="385" height="265"&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Types of Denormalization&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;We have discussed nine different types of denormalization. The table below will summarize the types of denormalization that are available with a short description of when this type of denormalization is useful.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denormalization/CraigMullinsGuidelines/i001fe12.gif" width="401" height="161"&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;The decision to denormalize should never be made lightly because it involves a lot of administrative dedication. This dedication takes the form of documenting the denormalization decisions, ensuring valid data, scheduling of data migration, and keeping end users informed about the state of the tables. In addition, there is one more category of administrative overhead: periodic analysis.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Whenever denormalized data exists for an application the data and environment should be periodically reviewed on an on-going basis. Hardware, software, and application requirements will evolve and change. This may alter the need for denormalization. To verify whether or not denormalization is still a valid decision ask the following questions:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Have the processing requirements changed for the application such that the join criteria, timing of reports, and/or transaction throughput no longer require denormalized data?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;Did a new DBMS release change performance considerations? For example, did the introduction of a new join method undo the need for pre-joined tables?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Did a new hardware release change performance considerations? For example, does the upgrade to a new high-end processor reduce the amount of CPU such that denormalization is no longer necessary? Or did the addition of memory enable faster data access enabling data to be physically normalized?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;In general, periodically test whether the extra cost related to processing with normalized tables justifies the benefit of denormalization. You should measure the following criteria:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;I/O saved&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;CPU saved&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;complexity of update programming&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2" face="Arial"&gt;cost of returning to a normalized design&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;font size="2" face="Arial"&gt;It is important to remember that denormalization was initially implemented for performance reasons. If the environment changes it is only reasonable to re-evaluate the denormalization decision. Also, it is possible that, given a changing hardware and software environment, denormalized tables may be causing performance degradation instead of performance gains.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;Simply stated, always monitor and periodically re-evaluate all denormalized applications.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.platinum.com/craigm" target="_top"&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;&lt;u&gt;Craig S. Mullins&lt;/u&gt;&lt;/em&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt; is Vice President of Marketing and Operations for the database tools division of &lt;/em&gt;&lt;/font&gt;&lt;a href="http://www.platinum.com/products/dbadmin.htm" target="_top"&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;&lt;u&gt;PLATINUM technology, inc&lt;/u&gt;&lt;/em&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;&lt;u&gt;.&lt;/u&gt;&lt;/em&gt;&lt;em&gt; He has extensive experience in all facets of database systems development, including developing and teaching database and data modeling classes, systems analysis and design, database and system administration, and data analysis. Craig has worked with DB2 since V1 and has experience in multiple roles including programmer, DBA, instructor, and analyst. His experience spans industries having worked in manufacturing, banking, utilities, commercial software development, consulting and as a computer industry analyst for the Gartner Group. Additionally, Craig authored the popular &lt;/em&gt;&lt;/font&gt;&lt;a href="http://www.platinum.com/craigm/cm-book.htm" target="_top"&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;&lt;u&gt;DB2 Developer's Guide&lt;/u&gt;&lt;/em&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt; which provides over 1100 pages of tips, techniques, and guidelines to optimize DB2 for MVS.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;Craig is also a frequent contributor to computer industry publications having over five dozen articles published during the past few years. His articles have been published in magazines like Byte, DB2 Update, Database Programming &amp;amp; Design, DBMS, Data Management Review, Relational Database Journal, Enterprise Systems Journal, Mainframe Client/Server and others.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;Craig graduated cum laude with a degree in Computer Science and Economics from the University of Pittsburgh.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://www.objectarchitects.de/edatt1_archive.htm" target="_self"&gt;&lt;font size="2" face="Arial"&gt;&lt;strong&gt;[The Article Archive]&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;font size="3" face="Arial"&gt;&lt;strong&gt;The Data Administration Newsletter&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size="2" face="Arial"&gt;&lt;strong&gt;Robert S. Seiner - Publisher and Editor - &lt;/strong&gt;&lt;/font&gt;&lt;a href="mailto:rseiner@tdan.com"&gt;&lt;font size="2" face="Arial"&gt;&lt;strong&gt;rseiner@tdan.com&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5434031919110451140-4559153421023441435?l=software-troubleshooter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://software-troubleshooter.blogspot.com/feeds/4559153421023441435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5434031919110451140&amp;postID=4559153421023441435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4559153421023441435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5434031919110451140/posts/default/4559153421023441435'/><link rel='alternate' type='text/html' href='http://software-troubleshooter.blogspot.com/2010/12/data-denormalization-guidelines.html' title='Data Denormalization guidelines'/><author><name>oneandonly</name><uri>http://www.blogger.com/profile/17637779233334120042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
