<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUYCQXo5fCp7ImA9WhZQFEw.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375</id><updated>2011-04-22T01:49:20.424+05:30</updated><category term="firefox" /><category term="privacy" /><category term="info" /><category term="tools" /><category term="scripts" /><category term="tips" /><category term="oracle" /><title>My Techniques</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://mytechniques.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://mytechniques.blogspot.com/" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MyTechniques" /><feedburner:info uri="mytechniques" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>MyTechniques</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DUEMQnc9eSp7ImA9WxVTGUU.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-5424892027490242236</id><published>2009-01-03T17:55:00.006+05:30</published><updated>2009-01-03T18:31:23.961+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-03T18:31:23.961+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><title>My Favorite Firefox Add-ons</title><content type="html">One of the reasons why I stick to Firefox instead of using Chrome or something else is Add-ons. These are my favorite add-ons.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865"&gt;Adblock Plus&lt;/a&gt; - If you ask me to choose one add-on without which I can't live, that would be Adblock Plus.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1419"&gt;IE Tab&lt;/a&gt; - Embeds Internet Explorer within Firefox. Can't tell how much time it saves for me. (Unfortunately most of work day revolves around those IE only websites. Now I don't need to leave Firefox).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4429"&gt;Secure Login&lt;/a&gt; - Automates login to websites.&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3615"&gt;Delicious Bookmarks&lt;/a&gt; - My favorite bookmarking tool.&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3255"&gt;Cookie Swap&lt;/a&gt; - Allows me to quickly switch between different accounts on a website.&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201"&gt;DownThemAll&lt;/a&gt; - Very useful for batch downloading.&lt;/li&gt;&lt;/ul&gt;I also love these &lt;a href="https://www.squarefree.com/bookmarklets/"&gt;bookmarklets&lt;/a&gt;. They offer powerful functionality in a simple manner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-5424892027490242236?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=aeUph57yXAQ:z3khn5PGgh4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=aeUph57yXAQ:z3khn5PGgh4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=aeUph57yXAQ:z3khn5PGgh4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/aeUph57yXAQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/5424892027490242236?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/5424892027490242236?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/aeUph57yXAQ/my-favorite-firefox-addons.html" title="My Favorite Firefox Add-ons" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2009/01/my-favorite-firefox-addons.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcMR3s_fip7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-535677749830707818</id><published>2008-05-17T12:29:00.001+05:30</published><updated>2009-01-01T15:31:26.546+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:31:26.546+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Effective Oracle by Design</title><content type="html">&lt;p&gt;I just finished reading &lt;a href="http://www.amazon.com/Effective-Oracle-Design-Osborne-ORACLE/dp/0072230657"&gt;Effective Oracle by Design&lt;/a&gt; by Tom Kyte. It is such a wonderful book that I regret why I missed it all these days. This book helped me in asserting some of my previously held notions, in dispensing with some of my myths and introduced me to many new concepts and features. It will be a valuable addition to my tech library. Highly recommended for anyone with some knowledge in Oracle.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-535677749830707818?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=z0h2dreordU:V9s2AQ1CSeI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=z0h2dreordU:V9s2AQ1CSeI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=z0h2dreordU:V9s2AQ1CSeI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/z0h2dreordU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/535677749830707818?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/535677749830707818?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/z0h2dreordU/effective-oracle-by-design.html" title="Effective Oracle by Design" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2008/05/effective-oracle-by-design.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkENR3s7fSp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-1166771493471930772</id><published>2008-05-16T13:33:00.001+05:30</published><updated>2009-01-01T15:41:36.505+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:41:36.505+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="scripts" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Mine Archived Logs</title><content type="html">&lt;p&gt;Sometime back, we had a rather difficult problem. There was a master table and nobody is supposed to delete records from that table. But once in a while, we found some records missing. To investigate further, we suggested creating a trigger on that table or enabling audit trail, but dba didn't agree. Then we came across this neat feature in Oracle called mining archived logs. We used that technique and found the culprit. Every one is impressed by the ability to analyze the problem after the fact (contrast to trigger/audit trail approach, which requires to configure the solution first and then wait for the problem to occur). &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is the script we used...&lt;/p&gt;  &lt;p&gt;(by the way, we were using oracle 9i R2, if that matters)&lt;/p&gt;  &lt;p&gt;#################################&lt;/p&gt;  &lt;p&gt;#!/bin/ksh    &lt;br /&gt;#You can expect spikes in CPU usage while this script executes.     &lt;br /&gt;#So schedule this script for offpeak hours.     &lt;br /&gt;#Invoke this script with nohup &lt;/p&gt;  &lt;p&gt;if [ ! -f &amp;quot;${ORACLE_HOME}/bin/sqlplus&amp;quot; ]    &lt;br /&gt;then     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Error: Oracle not setup&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; exit 1     &lt;br /&gt;fi &lt;/p&gt;  &lt;p&gt;THIS_PROC=`basename $0 .sh`    &lt;br /&gt;TODAY=`date +%Y%m%d_%H%M%S`     &lt;br /&gt;LOGFILE=/tmp/${THIS_PROC}.log     &lt;br /&gt;SPOOLFILE=/tmp/${THIS_PROC}_${TODAY}.html &lt;/p&gt;  &lt;p&gt;echo &amp;quot;&amp;quot; &amp;gt;&amp;gt;${LOGFILE}    &lt;br /&gt;echo &amp;quot;************************************************&amp;quot; &amp;gt;&amp;gt;${LOGFILE}     &lt;br /&gt;echo &amp;quot;Started ${THIS_PROC} on `date`&amp;quot; &amp;gt;&amp;gt; ${LOGFILE} &lt;/p&gt;  &lt;p&gt;${ORACLE_HOME}/bin/sqlplus -s ${USER_PASS} &amp;lt;&amp;lt; _EOF_ &amp;gt;&amp;gt; ${LOGFILE} 2&amp;gt;&amp;amp;1    &lt;br /&gt;ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';     &lt;br /&gt;SET SERVEROUTPUT ON FORMAT WRAPPED SIZE 1000000     &lt;br /&gt;SET PAGES 1000     &lt;br /&gt;SET NUMWIDTH 20     &lt;br /&gt;SET ECHO OFF     &lt;br /&gt;SET FEEDBACK ON     &lt;br /&gt;SET HEADING ON     &lt;br /&gt;SET TIMING ON &lt;/p&gt;  &lt;p&gt;--This will throw ORA-00942 error if the table doesn't exist    &lt;br /&gt;--Ignore the error     &lt;br /&gt;--Is it ok to drop any old data in this table?     &lt;br /&gt;DROP TABLE LOGMNR_DATA; &lt;/p&gt;  &lt;p&gt;--Just create table structure without any data    &lt;br /&gt;CREATE TABLE LOGMNR_DATA     &lt;br /&gt;AS SELECT *     &lt;br /&gt;&amp;#160;&amp;#160; FROM V\$LOGMNR_CONTENTS     &lt;br /&gt;&amp;#160;&amp;#160; WHERE 1 = 0; &lt;/p&gt;  &lt;p&gt;BEGIN    &lt;br /&gt;&amp;#160; --You might want to mine just yesterday's data     &lt;br /&gt;&amp;#160; --Otherwise increase date range     &lt;br /&gt;&amp;#160; FOR REC IN (SELECT NAME     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM V\$ARCHIVED_LOG     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE COMPLETION_TIME &amp;gt;= TRUNC(SYSDATE-1,'DD')     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND COMPLETION_TIME &amp;lt; TRUNC(SYSDATE,'DD')     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; )     &lt;br /&gt;&amp;#160; LOOP     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DBMS_OUTPUT.PUT_LINE(SYSDATE || ' : Mining ' || REC.NAME); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; --Mine one log at a time so as not to overload CPU    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SYS.DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =&amp;gt;REC.NAME,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OPTIONS =&amp;gt; SYS.DBMS_LOGMNR.NEW);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SYS.DBMS_LOGMNR.START_LOGMNR(OPTIONS=&amp;gt; SYS.DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; --Here you are trying to trace deletion of access_number 7739324493    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; --You need to change this query as per your requirements     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; --SQL_REDO column in V\$LOGMNR_CONTENTS will have the complete SQL statement     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; INSERT INTO LOGMNR_DATA     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT *     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM&amp;#160;&amp;#160; V\$LOGMNR_CONTENTS     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE&amp;#160; OPERATION='DELETE'     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND&amp;#160; SQL_REDO LIKE '%7739324493%'; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; COMMIT;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SYS.DBMS_LOGMNR.END_LOGMNR; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; DBMS_OUTPUT.PUT_LINE(SYSDATE || ' : Finished mining ' || REC.NAME);    &lt;br /&gt;&amp;#160; END LOOP;     &lt;br /&gt;END;     &lt;br /&gt;/ &lt;/p&gt;  &lt;p&gt;SET MARKUP HTML ON SPOOL ON    &lt;br /&gt;SET TERM OFF     &lt;br /&gt;SPOOL ${SPOOLFILE} &lt;/p&gt;  &lt;p&gt;TTITLE BOLD LEFT 'LOGMINER OUTPUT OF ACCESS_NUMBER 7739324493 DELETION (RETRIEVED FROM ARCHIVED LOGS)'    &lt;br /&gt;SELECT *     &lt;br /&gt;FROM&amp;#160;&amp;#160; LOGMNR_DATA; &lt;/p&gt;  &lt;p&gt;SPOOL OFF    &lt;br /&gt;_EOF_ &lt;/p&gt;  &lt;p&gt;echo &amp;quot;&amp;quot; &amp;gt;&amp;gt;${LOGFILE}    &lt;br /&gt;echo &amp;quot;`date`: Sending the output to my.mailid@company.com&amp;quot; &amp;gt;&amp;gt; ${LOGFILE} &lt;/p&gt;  &lt;p&gt;gzip ${SPOOLFILE}    &lt;br /&gt;uuencode ${SPOOLFILE}.gz ${SPOOLFILE}.gz &amp;gt;${SPOOLFILE}.gz.dat     &lt;br /&gt;mailx -s &amp;quot;Output of ${THIS_PROC} process&amp;quot; my.mailid@company.com &amp;lt; ${SPOOLFILE}.gz.dat     &lt;br /&gt;rm -f ${SPOOLFILE}.gz.dat &lt;/p&gt;  &lt;p&gt;echo &amp;quot;&amp;quot; &amp;gt;&amp;gt;${LOGFILE}    &lt;br /&gt;echo &amp;quot;Completed ${THIS_PROC} on `date`&amp;quot; &amp;gt;&amp;gt; ${LOGFILE}     &lt;br /&gt;echo &amp;quot;************************************************&amp;quot; &amp;gt;&amp;gt;${LOGFILE} &lt;/p&gt;  &lt;p&gt;#################################&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-1166771493471930772?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=ldY9ZZVane4:FqPbbPkE9P8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=ldY9ZZVane4:FqPbbPkE9P8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=ldY9ZZVane4:FqPbbPkE9P8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/ldY9ZZVane4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/1166771493471930772?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/1166771493471930772?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/ldY9ZZVane4/mine-archived-logs.html" title="Mine Archived Logs" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2008/05/mine-archived-logs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EMQH85eSp7ImA9WxVSEE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-6257368966934799766</id><published>2008-05-16T12:26:00.005+05:30</published><updated>2009-01-03T22:24:41.121+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-03T22:24:41.121+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Week Numbers</title><content type="html">&lt;p&gt;In my previous project, one of the reporting dimensions was week number. There was a lot of churn around this dimension. This is the summary of our discussions.&lt;/p&gt;  &lt;p&gt;Four different types of week numbers are being used.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Simple Week &lt;/li&gt;    &lt;li&gt;ISO Week &lt;/li&gt;    &lt;li&gt;North American Week &lt;/li&gt;    &lt;li&gt;Financial Week &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Note: We were using Oracle 9i R1.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;1. Simple Week&lt;/h3&gt;  &lt;ul&gt;&lt;li&gt;Week 1 is from Jan 01 to Jan 07&lt;/li&gt;&lt;li&gt;Week 2 is from Jan 08 to Jan 14&lt;/li&gt;&lt;li&gt;Week 53 is from Dec 31 to Dec 31 (non-leap years)&lt;/li&gt;&lt;li&gt;Week 53 is from Dec 30 to Dec 31 (leap years)&lt;/li&gt;&lt;li&gt;Can be computed as to_char(date_date,’WW’)&lt;/li&gt;&lt;li&gt;This is the least used one. No issues found.&lt;/li&gt;&lt;/ul&gt;          &lt;p&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;2. ISO Week&lt;/h3&gt;  &lt;ul&gt;&lt;li&gt;Week Starts with Monday&lt;/li&gt;&lt;li&gt;The first week of a year is the week that contains the first Thursday of a year&lt;/li&gt;&lt;li&gt;An ISO year has 52 or 53 &lt;b&gt;full&lt;/b&gt; weeks&lt;/li&gt;&lt;li&gt;Can be computed as to_char(date_date,’IW’)&lt;/li&gt;&lt;li&gt;More details can be found at &lt;a href="http://en.wikipedia.org/wiki/ISO_week_date"&gt;http://en.wikipedia.org/wiki/ISO_week_date&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;        &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/ISO_week_date"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;3. North American Week &lt;/h3&gt;    &lt;ul&gt;&lt;li&gt;Week Starts on Sunday&lt;/li&gt;&lt;li&gt;There might be partial weeks at beginning and ending of the year&lt;/li&gt;&lt;li&gt;The ending week of the year will be 53 or 54&lt;/li&gt;&lt;li&gt;No direct way to compute in Oracle&lt;/li&gt;&lt;/ul&gt;Can be computed as         &lt;p&gt; &lt;/p&gt;    &lt;ul&gt;&lt;li&gt;ALTER SESSION SET NLS_TERRITORY='AMERICA';&lt;/li&gt;&lt;li&gt;Week Number = TRUNC(( TO_NUMBER(TO_CHAR(sysdate,'ddd'))- (7-TO_NUMBER(TO_CHAR(TRUNC(sysdate,'yyyy'),'d'))+1)-1)/7+2)&lt;/li&gt;&lt;li&gt;Replace sysdate with any valid date&lt;/li&gt;&lt;/ul&gt;    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;4. Financial Week&lt;/h3&gt;  &lt;ul&gt;&lt;li&gt;Financial Calendar published by respective organizations&lt;/li&gt;&lt;li&gt;No pre-defined algorithm&lt;/li&gt;&lt;li&gt;Organizations need to define the week number for each calendar date&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-6257368966934799766?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=dpOnbwSCPYo:fWEtZjOuH_0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=dpOnbwSCPYo:fWEtZjOuH_0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=dpOnbwSCPYo:fWEtZjOuH_0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/dpOnbwSCPYo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/6257368966934799766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/6257368966934799766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/dpOnbwSCPYo/week-numbers.html" title="Week Numbers" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2008/05/week-numbers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MFR3ozeSp7ImA9WxVSEE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-8755012049928003253</id><published>2008-05-14T21:25:00.001+05:30</published><updated>2009-01-03T22:20:16.481+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-03T22:20:16.481+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Lessons Learnt - I</title><content type="html">&lt;ul&gt;   &lt;li&gt;     &lt;div&gt;In Oracle 9i R2, I couldn't alter the table definition once the table is compressed. I used to get ORA-22856 error when I tried to add a new column to compressed table. Ultimately, I had to remove compression (by creating uncompressed table from compressed one and dropping the compressed table).&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;In Oracle 9i R2, it seems there is a limitation on using ANSI syntax. If the combined number of columns in the tables used in 'from' clause exceed some number like 1050, we get ORA-01445 error. I had to disable ANSI syntax in BOXI Universe Designer and rewrite the queries in traditional syntax. Oh! that was a tedious task.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Never use varchar2 or char fields to store date values. In my previous project, our clients used to store date keys as YYYYMMDD (varchar2(8)). When joined to other tables with these date keys, even for few months data, oracle used to opt for full table scans. But when joined with date data type, it worked fine. Tom Kyte talks about this in Chapter 7 of his book "Effective Oracle by Design" (pages 374-377).&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-8755012049928003253?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=rxFzW1T6HZM:Gw0ED12UWzw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=rxFzW1T6HZM:Gw0ED12UWzw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=rxFzW1T6HZM:Gw0ED12UWzw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/rxFzW1T6HZM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/8755012049928003253?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/8755012049928003253?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/rxFzW1T6HZM/lessons-learnt-i.html" title="Lessons Learnt - I" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2008/05/lessons-learnt-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUMRnc8fip7ImA9WxVSEkg.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-1413448847781810629</id><published>2008-02-06T21:40:00.001+05:30</published><updated>2009-01-06T21:08:07.976+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-06T21:08:07.976+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title>Add-ons for Firefox 3 Beta</title><content type="html">&lt;p&gt;Did you like &lt;a href="http://www.mozilla.com/en-US/firefox/all-beta.html"&gt;Firefox 3 Beta&lt;/a&gt;? I do a lot! But the problem is that many of my existing add-ons are not compatible with this beta release. I am forced to disable them to use Firefox beta. Then I did some research and found a solution!&lt;/p&gt;  &lt;p&gt;For example, you are using &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1532"&gt;del.icio.us buttons&lt;/a&gt; in Firefox 2. When you upgrade to Firefox 3 beta, it says that the add-on is not compatible with this version and will be disabled.&amp;#160; If you try to install the add-on again, it won't allow.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="295" alt="firefox3_addons" src="http://lh5.google.com/ramana.varanasi/R6nb-XC2b8I/AAAAAAAAAuo/cDFpj1OtzPM/firefox3_addons_thumb%5B4%5D" width="404" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;But there is a quick fix! Goto &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1532"&gt;del.icio.us buttons&lt;/a&gt; page and right click on 'Install Now', select 'Save Link as' and save the .xpi file. Open this .xpi file with your zip utility (xpi is nothing but a zip file) and edit install.rdf file (The screenshot is from &lt;a href="http://www.7-zip.org/"&gt;7zip&lt;/a&gt; utility).&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="520" alt="edit_del_buttons" src="http://lh6.google.com/ramana.varanasi/R6nb_nC2b-I/AAAAAAAAAu4/7h6JqOjvVsM/edit_del_buttons_thumb%5B1%5D" width="404" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Change the value of maxversion parameter to 3.0.0.* from 2.0.0.*&lt;/p&gt;  &lt;p&gt;&lt;img height="485" alt="edit_install_rdf" src="http://lh6.google.com/ramana.varanasi/R6ncAnC2cAI/AAAAAAAAAvI/K7RwZ3FCEXk/edit_install_rdf_thumb%5B6%5D" width="749" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Save the file and update the .xpi file. Now open this .xpi with Firefox 3 beta and the add-on will install without any problem.&lt;/p&gt;  &lt;p&gt;This technique works for almost any add-on (unless it explicitly uses new features of Firefox 3 beta).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-1413448847781810629?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=8nxWXbsIrqo:YOl0qF44nQE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=8nxWXbsIrqo:YOl0qF44nQE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=8nxWXbsIrqo:YOl0qF44nQE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/8nxWXbsIrqo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/1413448847781810629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/1413448847781810629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/8nxWXbsIrqo/add-ons-for-firefox-3-beta.html" title="Add-ons for Firefox 3 Beta" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2008/02/add-ons-for-firefox-3-beta.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcMR3s_fyp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-6592424270713144226</id><published>2008-02-05T07:20:00.001+05:30</published><updated>2009-01-01T15:31:26.547+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:31:26.547+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle 9i TNS Listener Crashes</title><content type="html">&lt;p align="justify"&gt;I've been running Oracle 9i server on my workstation for quite sometime, without any issues. But when I replaced my machine with IBM Thinkpad T60 laptop, TNS listener never came up. The listener service status seems to up initially, but when I connect to the server using sqlplus or toad, I get &amp;quot;tnslsnr.exe Application Error. The instruction at xxxx referenced memory at xxxx. The memory could not be read&amp;quot; and the service used to abort. Then I came across &lt;a href="http://www.dbmonster.com/Uwe/Threads/Single.aspx/oracle-server/1142?ArtId=b71c8f4fcb644da19e3249b20588d701%40OracleMonster.com"&gt;this post&lt;/a&gt;, and saw that my laptop has Venturi Client installed by default. I uninstalled that software and now my TNS listener works just fine.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-6592424270713144226?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=FKTBvoUMTow:IPcqPgEhVVw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=FKTBvoUMTow:IPcqPgEhVVw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=FKTBvoUMTow:IPcqPgEhVVw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/FKTBvoUMTow" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/6592424270713144226?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/6592424270713144226?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/FKTBvoUMTow/oracle-9i-tns-listener-crashes.html" title="Oracle 9i TNS Listener Crashes" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2008/02/oracle-9i-tns-listener-crashes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQNQ3cyeyp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-8568133349847501994</id><published>2007-11-17T05:22:00.001+05:30</published><updated>2009-01-01T15:36:32.993+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:36:32.993+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="info" /><title>High Quality Free Software</title><content type="html">&lt;p align="justify"&gt;Recently I came across a project called &lt;a href="http://www.theopendisc.com/"&gt;OpenDisc&lt;/a&gt;. It is a collection of various high quality open source software. I am blogging about it here because that collection contains many of my favorite software. I am going to try out the other software also. You can see the complete list of programs &lt;a href="http://theopendisc.com/programs/"&gt;here&lt;/a&gt;. Take a look. I bet you will be impressed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-8568133349847501994?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=c9hUsSXwGBA:ky5uDF-iCno:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=c9hUsSXwGBA:ky5uDF-iCno:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=c9hUsSXwGBA:ky5uDF-iCno:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/c9hUsSXwGBA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/8568133349847501994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/8568133349847501994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/c9hUsSXwGBA/high-quality-free-software.html" title="High Quality Free Software" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2007/11/high-quality-free-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMDQ308fyp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-7213509713114775809</id><published>2007-11-16T12:30:00.000+05:30</published><updated>2009-01-01T15:37:52.377+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:37:52.377+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tools" /><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title>Repetitive Strain Injury</title><content type="html">&lt;div align="justify"&gt;This term might sound strange to you. But if you are addicted to computer or forced to use computer (like me), then you need to know about it. As usual, complete details can be found in &lt;a href="http://en.wikipedia.org/wiki/Repetitive_strain_injury"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;wikipedia&lt;/span&gt;&lt;/a&gt;, but few words here.&lt;br /&gt;&lt;br /&gt;Repetitive Strain Injury (RSI), as the name suggests, is a problem caused by repeated movement of a particular part of the body (hand and neck in our case). I already started feeling its effects. So I decided to do something about it.&lt;br /&gt;&lt;br /&gt;The first thing I realized is that I am giving very little exercise for my body. I know that I need to stretch regularly. But once I am into work, I forget about everything (I'm not kidding. One day, before investigating an issue, I noted down the time. When I noticed the time next time, I was shocked to see that I didn't move from my seat for 1 hour and 10 minutes). So I searched for a good reminder software and found &lt;a href="http://www.workrave.org/welcome/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Workrave&lt;/span&gt;&lt;/a&gt; (freeware). This small application is really cute. Try it out and you will love it. I configured it to give a 30 second micro-break for every 10 minutes and a 10 minute rest-break for every one hour and a 9 hour work limit per day. I am feeling a lot better since I started using this tool.&lt;br /&gt;&lt;br /&gt;I would say that &lt;a href="http://www.workrave.org/welcome/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Workrave&lt;/span&gt;&lt;/a&gt; is a must for every software engineer.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-7213509713114775809?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=hO_i0Zf_-GI:ZuFLAk54S-U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=hO_i0Zf_-GI:ZuFLAk54S-U:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=hO_i0Zf_-GI:ZuFLAk54S-U:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/hO_i0Zf_-GI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/7213509713114775809?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/7213509713114775809?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/hO_i0Zf_-GI/repetitive-strain-injury.html" title="Repetitive Strain Injury" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2007/11/repetitive-strain-injury.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMASXkycSp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-1998961189497853322</id><published>2007-11-16T09:24:00.000+05:30</published><updated>2009-01-01T15:37:28.799+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:37:28.799+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><category scheme="http://www.blogger.com/atom/ns#" term="privacy" /><title>Password Management</title><content type="html">&lt;div align="justify"&gt;With &lt;a href="http://en.wikipedia.org/wiki/Dictionary_attack"&gt;Dictionary attacks &lt;/a&gt;becoming more sophisticated day by day, it is important for us to make our passwords more difficult to break. The passwords I thought strong two years back are very weak by today's standards. So to adapt to today's demands, we need to shift our mindset from "password" to "passphrase". Instead of thinking of words, think of sentences. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Creating Passphrase&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/strong&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;/div&gt;&lt;/strong&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Take your favorite sentence (I take my favorite slokas)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Then take the first two or three letters from each word&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Convert some of the letters to Capitals (I use my own algorithm)&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Convert some of the letters to numbers or insert some numbers&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Make sure that the resulting passpharse is not easy to guess (should not be found in dictionaries)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Check the strength of your password with &lt;a href="http://www.microsoft.com/protect/yourself/password/checker.mspx"&gt;this tool&lt;/a&gt; and make sure that it is strong.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Practise this passphrase at least ten times and make sure that you can recreate it every time without error. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;This ensures that you have a strong password by today's standards.&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Maintaining Passwords &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;Then how to maintain these gazillion passwords? Every website requires a password. Some won't accept special characters and for some it's exactly opposite. To add to that, my company has so many services and each of them has its own password and its own rules. Worse enough, some services assign a random password and won't allow me change it. I am fed up with all these and decided to use a password manager. I am skeptical about online services. So I did some research on desktop utilities and zeroed on &lt;a href="http://keepass.info/"&gt;KeePass&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Advantages of KeePass&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Offers maximum security with strong encryption&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;No installation required&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Lightweight&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Non-intrusive to regular work&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Offers all the features that I require (like auto-fill, password generator etc)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Since I started using KeePass, my life became so easy. &lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Backup of KeePass Database&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;But there is a problem with KeePass. The database (an encrypted file which contains all your passwords) is stored locally on your computer. Incase your drive crashes or need to check for a password while you are using another computer is problematic. To overcome this, I use a small utility called &lt;a href="http://www.blat.net/"&gt;Blat&lt;/a&gt; to automatically mail my KeePass database to my email id.&lt;/p&gt;&lt;p align="justify"&gt;I'll blog about Backup in detail later.&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Some Tips&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Even in KeePass, I won't save my password exactly as it is, at least for highly confidentail passwords (like bank passwords, email passwords etc). Somebody can crack KeePass two years down the line, we never know. So if my password is hrt8Utn, I will write it as hrt (enimidi) Utn in KeePass. Even if the hacker opens my KeePass database, he needs to know that enimidi is Telugu word for 8.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-1998961189497853322?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=8toVxe8K674:8pqQAaBPn3o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=8toVxe8K674:8pqQAaBPn3o:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=8toVxe8K674:8pqQAaBPn3o:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/8toVxe8K674" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/1998961189497853322?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/1998961189497853322?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/8toVxe8K674/password-management.html" title="Password Management" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2007/11/password-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCQnYycCp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-5097991028737086049</id><published>2007-11-16T08:03:00.000+05:30</published><updated>2009-01-01T15:34:23.898+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:34:23.898+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title>Get Rid of Telemarketing Calls</title><content type="html">&lt;div align="justify"&gt;Recently I started receiving lot of marketing calls on my cell phone. Annoyingly, many of them are pre-recorded messages (auto dialers). I got fedup and registered my number with Do Not Call Registry.&lt;br /&gt;&lt;br /&gt;If you are also in the same situation and are in USA , you can register online in &lt;a href="https://www.donotcall.gov/"&gt;https://www.donotcall.gov/&lt;/a&gt;.&lt;br /&gt;If you get marketing calls even after that, you can file a complaint online in &lt;a href="http://www.fcc.gov/cgb/complaints.html"&gt;http://www.fcc.gov/cgb/complaints.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are in India, &lt;a href="http://www.quickonlinetips.com/archives/2007/09/join-india-do-not-call-registry-stop-telemarketing-calls/"&gt;this &lt;/a&gt;might be helpful.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-5097991028737086049?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=NEgOKimiiCY:LGwuBCvW8v8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=NEgOKimiiCY:LGwuBCvW8v8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=NEgOKimiiCY:LGwuBCvW8v8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/NEgOKimiiCY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/5097991028737086049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/5097991028737086049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/NEgOKimiiCY/get-rid-of-telemarketing-calls.html" title="Get Rid of Telemarketing Calls" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2007/11/get-rid-of-telemarketing-calls.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMASXkycSp7ImA9WxVTGE0.&quot;"><id>tag:blogger.com,1999:blog-5005182011286159375.post-4198533558303400379</id><published>2007-11-06T11:15:00.000+05:30</published><updated>2009-01-01T15:37:28.799+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-01T15:37:28.799+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><category scheme="http://www.blogger.com/atom/ns#" term="privacy" /><title>Returning a Workstation</title><content type="html">&lt;p align="justify"&gt;My job demands changing projects frequently, so as my workstations. I thought it might be useful to jot down what I am doing before leaving a workstation behind. If interested, read on!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1: Backup&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It is important that I take backup of all my work. "How" is not a problem for me (with all these memory drives). The problem is with "What". Identifying what all to backup is a herculean task for me. So I organized myself like this: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;When I get new workstation, I create a folder called Ramana and organize everything inside it. So when it comes to backup &amp;amp; cleanup, it becomes very straightforward. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;I create a folder called "Custom Program Files" and install all software that I need in that folder. It serves two purposes. Since my account doesn't have admin privileges, I am not allowed to install to regular Program Files folder. Secondly, when it comes to cleanup, I know exactly which software I installed. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;I save all temp stuff (like photos, music, downloads etc) in My Documents Folders.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Now there is another set of files, over which I have no control. yes, my personal settings for various software. For them I create a briefcase in my work folder (In Windows XP, File -&gt; New -&gt; Briefcase). Here is a partial list of items I add to the briefcase (This list changes from project to project)&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Outlook archive files &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Lotus archive files &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Yahoo messenger archive file &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Skype archive file &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Apache cgi-bin folder &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Oracle tnsnames.ora &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Toad Settings (.ini files found in User Files folder) &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Before I take backup, I click on Update All in the briefcase and I am done.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2: Cleanup&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Once I made sure that I backed-up everything I need, I proceed to cleanup. &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Delete all the folders that have my data. (using Normal Windows Delete Button)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Delete everything from My Documents folder. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Uninstall all the software that I installed. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;From Internet explorer, Delete everything (cookies, history, form data etc) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;From the briefcase (that I mentioned previously), delete the files from their original locations. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Delete all entries I added to Scheduled Tasks. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Now I need to delete system backups, if any. Goto Programs -&gt; Accessories -&gt; System Tools -&gt; Backup and select Restore. Note down all the backup files and where they are located. Go to those folders and delete all backup files. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Need to check if my IT department is using any other backup policies. I found that they use Thinkvantage Rescue and Recovery. I open the application and see all backup locations. Delete all those backup files. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Finally, clear Recycle Bin. &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;&lt;strong&gt;Step 3: Wipe Out&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Do you think I am done? No, not yet. You might be knowing that normal delete just removes the reference to the file from system tables and marks that location as free. Any simple Recovery software can bring all our files back. So I need to make sure that I completely wipe out all the traces of my files.&lt;br /&gt;&lt;br /&gt;The following method is going to wipe out all the free space in the disk. It guarantees that the deleted files can not be recovered by any means while not touching existing data. This is useful since my work computers come pre-installed with OS and some standard software (like Microsoft office, Lotus Notes etc) and I am not supposed to delete them.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Install File Shredder (freeware) from &lt;a href="http://fileshredder.org/"&gt;http://fileshredder.org/&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Shutdown all active applications and run the file shredder program. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Click on "Shred Free Disk Space" and select all disk drives and select algorithm as "Secure erasing algorithm with 7 passes". Then click Start. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Once it is done, click on "Add Folders" and select C:\Documents and Settings\my user id&lt;my&gt; and click on "Shred Now" button. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;There might be errors on deleting some files locked by active processes, but I ignore. &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;p align="justify"&gt;That's it. I may not be 100% clean (See &lt;a href="http://en.wikipedia.org/wiki/Data_remanence"&gt;this article&lt;/a&gt; ), but at least better than doing nothing!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Outstanding Questions&lt;br /&gt;&lt;/strong&gt;How to cleanup the backups that my IT department maintains outside my computer (like on network folder)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5005182011286159375-4198533558303400379?l=mytechniques.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=r9zLNscqgxo:nMWpXJHh590:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/MyTechniques?a=r9zLNscqgxo:nMWpXJHh590:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/MyTechniques?i=r9zLNscqgxo:nMWpXJHh590:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyTechniques/~4/r9zLNscqgxo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/4198533558303400379?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5005182011286159375/posts/default/4198533558303400379?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyTechniques/~3/r9zLNscqgxo/returning-workstation.html" title="Returning a Workstation" /><author><name>Venkata Ramana Varanasi</name><uri>http://www.blogger.com/profile/14029806393174434048</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><feedburner:origLink>http://mytechniques.blogspot.com/2007/11/returning-workstation.html</feedburner:origLink></entry></feed>

