<?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-2927253854689338790</id><updated>2012-02-16T21:56:04.904+05:30</updated><category term='vi editor'/><category term='linux'/><category term='screen'/><category term='system'/><category term='cvs'/><category term='ant'/><category term='shell scripting'/><category term='java'/><category term='cookies'/><category term='bugs'/><category term='exponential'/><category term='junit'/><category term='perl script'/><category term='flash version'/><category term='selenium'/><category term='digital camera'/><category term='qtp'/><category term='flex'/><category term='sed'/><category term='jmeter'/><category term='oracle'/><category term='application server'/><category term='firefox'/><category term='batch script'/><category term='httpunit'/><category term='awk'/><category term='travel'/><category term='excel'/><category term='Paragliding'/><category term='testlink'/><category term='sql'/><category term='toad'/><category term='online advertising'/><category term='puzzles'/><category term='HR'/><category term='fun'/><category term='web server'/><category term='testing'/><category term='vbscript'/><category term='solaris'/><category term='tribal fusion'/><category term='google tip'/><title type='text'>Enjoy The Life .......</title><subtitle type='html'>Linux, Solaris, Scripting, Testing, QA, Database, Puzzles ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default?start-index=101&amp;max-results=100'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6515883736911346281</id><published>2012-01-08T21:06:00.000+05:30</published><updated>2012-01-08T21:06:21.455+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Write data into Excel file using Apache POI</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;IN my previous post, I posted code for reading excel file using Apache POI library. In this post I'll cover, how can we write data into excel. Here is the code:&lt;pre name="code" class="java"&gt;&lt;br /&gt;package com.qa.test;&lt;br /&gt;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br /&gt;&lt;br /&gt;public class SpreadSheetWriter {&lt;br /&gt;	&lt;br /&gt;	 /** This method writes data to new excel file **/&lt;br /&gt;    public static void writeDataToExcelFile(List&lt;list&lt;string&gt;&amp;gt; data, String fileName) &lt;br /&gt;    {&lt;br /&gt;    	try{&lt;br /&gt;	    	HSSFWorkbook myWorkBook = new HSSFWorkbook();&lt;br /&gt;	        HSSFSheet mySheet = myWorkBook.createSheet();&lt;br /&gt;	        HSSFRow myRow = null;&lt;br /&gt;	        HSSFCell myCell = null;&lt;br /&gt;	        &lt;br /&gt;	        //Create header row&lt;br /&gt;	        createHeaderRow(mySheet);&lt;br /&gt;	        &lt;br /&gt;	        int rowNum = 1;&lt;br /&gt;	        Iterator&lt;list&lt;string&gt;&amp;gt; iter = data.iterator();&lt;br /&gt;	        while(iter.hasNext())&lt;br /&gt;	        {&lt;br /&gt;	        	myRow = mySheet.createRow(rowNum++);&lt;br /&gt;	        	int cellNum = 0;&lt;br /&gt;	        	&lt;br /&gt;				List&lt;string&gt; key = iter.next();&lt;br /&gt;				for(String values: key)&lt;br /&gt;				{&lt;br /&gt;					myCell = myRow.createCell(cellNum++);&lt;br /&gt;					myCell.setCellValue(values);&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;	&lt;br /&gt;	        FileOutputStream out = new FileOutputStream(fileName);&lt;br /&gt;            myWorkBook.write(out);&lt;br /&gt;            out.close();&lt;br /&gt;        }catch(Exception e){ &lt;br /&gt;        	e.printStackTrace();&lt;br /&gt;        }         &lt;br /&gt;   }&lt;br /&gt;    &lt;br /&gt; }&lt;br /&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/2927253854689338790-6515883736911346281?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6515883736911346281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6515883736911346281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6515883736911346281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6515883736911346281'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2012/01/write-data-into-excel-file-using-apache.html' title='Write data into Excel file using Apache POI'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5379558195915152238</id><published>2012-01-08T18:33:00.001+05:30</published><updated>2012-01-08T18:33:27.865+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Read Excel file using apache POI library</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you want to read Excel file in Java, Apache POI is the library which supports to read/write microsoft documents. Here is the code to read an Excel file.&lt;br /&gt;&lt;pre class="java" name="code"&gt;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br /&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br /&gt;import org.apache.poi.ss.usermodel.Row;&lt;br /&gt;&lt;br /&gt;public class ReadExcel {&lt;br /&gt; &lt;br /&gt; public static void main(String[] args){&lt;br /&gt;  &lt;br /&gt;  try{&lt;br /&gt;   InputStream myxls = new FileInputStream("C:\\exceltest.xls");&lt;br /&gt;   HSSFWorkbook wb     = new HSSFWorkbook(myxls);&lt;br /&gt;   &lt;br /&gt;   HSSFSheet sheet = wb.getSheetAt(0); &lt;br /&gt;   &lt;br /&gt;   Iterator&lt;row&gt; rows = sheet.rowIterator();&lt;br /&gt;   &lt;br /&gt;   System.out.println("Total Rows :: " + sheet.getLastRowNum());&lt;br /&gt;   &lt;br /&gt;   //Iterate over each row&lt;br /&gt;   while (rows.hasNext()) &lt;br /&gt;   {&lt;br /&gt;    HSSFRow row = (HSSFRow) rows.next();&lt;br /&gt;    if(checkIfRowEmpty(row)) &lt;br /&gt;     continue;&lt;br /&gt;    &lt;br /&gt;    int minColIndex = row.getFirstCellNum();&lt;br /&gt;    int maxColIndex = row.getLastCellNum();&lt;br /&gt;    &lt;br /&gt;    for(int colIndex = minColIndex; colIndex &amp;lt;= maxColIndex; colIndex++) &lt;br /&gt;    {&lt;br /&gt;     HSSFCell cell = row.getCell(colIndex);&lt;br /&gt;     &lt;br /&gt;     // POI can't recognize empty cells of Excel, so we should create new cells with a blank value&lt;br /&gt;     if(cell == null) &lt;br /&gt;     {&lt;br /&gt;        cell = row.createCell(colIndex);&lt;br /&gt;           cell.setCellValue(" ");&lt;br /&gt;     }    &lt;br /&gt;     String value = "";&lt;br /&gt;     &lt;br /&gt;     switch(cell.getCellType())&lt;br /&gt;     {&lt;br /&gt;      case HSSFCell.CELL_TYPE_NUMERIC:&lt;br /&gt;       value = Double.toString(cell.getNumericCellValue());&lt;br /&gt;       break;&lt;br /&gt;      case HSSFCell.CELL_TYPE_BOOLEAN:&lt;br /&gt;       value = Boolean.toString(cell.getBooleanCellValue());&lt;br /&gt;       break;&lt;br /&gt;      case HSSFCell.CELL_TYPE_BLANK:&lt;br /&gt;       value = "";&lt;br /&gt;       break;&lt;br /&gt;      case HSSFCell.CELL_TYPE_ERROR:&lt;br /&gt;       value = "";&lt;br /&gt;       break;&lt;br /&gt;      case HSSFCell.CELL_TYPE_FORMULA:&lt;br /&gt;       value = "";&lt;br /&gt;       break;&lt;br /&gt;      default:&lt;br /&gt;       value = cell.getStringCellValue();&lt;br /&gt;       break;&lt;br /&gt;     }&lt;br /&gt;     System.out.print(value + "|");&lt;br /&gt;    }&lt;br /&gt;    System.out.println();&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  catch(Exception e){&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public static boolean checkIfRowEmpty(HSSFRow row) &lt;br /&gt; {&lt;br /&gt;  int minColumIndex = row.getFirstCellNum();&lt;br /&gt;  int maxColumnIndex = row.getLastCellNum();&lt;br /&gt;  &lt;br /&gt;  boolean isRowEmpty = true;&lt;br /&gt;  for(int columIndex = minColumIndex; columIndex &amp;lt;= maxColumnIndex; columIndex++) &lt;br /&gt;  {&lt;br /&gt;   HSSFCell cell = row.getCell(columIndex);&lt;br /&gt;   if(cell == null || cell.toString().trim().isEmpty() || cell.toString().length() == 0){&lt;br /&gt;    &lt;br /&gt;   }&lt;br /&gt;   else{&lt;br /&gt;    isRowEmpty = false;&lt;br /&gt;    return isRowEmpty;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  return isRowEmpty;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&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/2927253854689338790-5379558195915152238?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5379558195915152238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5379558195915152238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5379558195915152238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5379558195915152238'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2012/01/read-excel-file-using-apache-poi.html' title='Read Excel file using apache POI library'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-3514126669052148472</id><published>2011-12-14T17:51:00.001+05:30</published><updated>2011-12-14T17:51:10.090+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Running multiple version of firefox</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you want to run multiple versions of firefox on same machine, follow below steps:&lt;br /&gt;&lt;br /&gt;1. Close your all running instances of firefox&lt;br /&gt;2. Download older versions of firefox from &lt;a href="http://www.oldversion.com/Mozilla-Firefox.html"&gt;http://www.oldversion.com/Mozilla-Firefox.html&lt;/a&gt; and do a custom install, install them on a specific version directory. For example I installed them as below:&lt;br /&gt;&lt;b&gt;C:\Program Files\Mozilla Firefox_6.0.2&lt;/b&gt;&lt;br /&gt;&lt;b&gt;C:\Program Files\Mozilla Firefox_7.0.1&lt;/b&gt;&lt;br /&gt;3. Create profiles for every version by following steps:&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; A. Goto Run command (or press WINDOWS+R)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B. C:\Program Files\Mozilla Firefox_6.0.2 -P&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C. It will open a profile window, Create a profile name with 'Firefox6.0.2'&lt;/b&gt;&lt;br /&gt;4. Repeat step 3 for all firefox versions, create unique profile for each version&lt;br /&gt;5. To run a specific version of firefox use below command:&lt;br /&gt;&lt;b&gt;&amp;lt;path to firefox executable&amp;gt; -no-remote -P &amp;lt;profile name&amp;gt;&lt;/b&gt;&lt;br /&gt; &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;C:\Program Files\Mozilla Firefox_6.0.2\firefox.exe -no-remote -P Firefox6.0.2&lt;/b&gt;&lt;br /&gt;&lt;b&gt;C:\Program Files\Mozilla Firefox_7.0.1\firefox.exe -no-remote -P Firefox7.0.1&lt;/b&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/2927253854689338790-3514126669052148472?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/3514126669052148472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=3514126669052148472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3514126669052148472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3514126669052148472'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/12/running-multiple-version-of-firefox.html' title='Running multiple version of firefox'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4194820902955058344</id><published>2011-12-14T15:28:00.001+05:30</published><updated>2011-12-25T19:07:45.434+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>Selenium: Taking screenshot of a webpage</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I had a requirement where I had to take screenshots of different URLs on different browsers. Instead of taking it manually everytime, thought of taking it programatically using Selenium. Here is the program which takes the screenshot of a webpage using selenium:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;ScreeshotTest.java&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;&lt;br /&gt;import com.thoughtworks.selenium.DefaultSelenium;&lt;br /&gt;import com.thoughtworks.selenium.Selenium;&lt;br /&gt;import junit.framework.TestCase;&lt;br /&gt;&lt;br /&gt;public class ScreeshotTest extends TestCase{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Selenium browser;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static int seleniumServerPort = 2001;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static SeleniumServerControl seleniumServerControl = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final static String URL = "http://www.vishnuagrawal.blogspot.com";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setUp() { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; seleniumServerControl = SeleniumServerControl.getInstance();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; seleniumServerControl.startSeleniumServer(seleniumServerPort);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; browser = new DefaultSelenium("localhost", seleniumServerPort, "*firefox", URL); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void tearDown() { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; browser.stop(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; seleniumServerControl.stopSeleniumServer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void testFlashApp() throws Exception{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; browser.start();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; browser.setTimeout("120000");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; browser.open(URL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; browser.captureEntirePageScreenshot("D:\\ss.png", "");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;SeleniumServerControl.java&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;import org.openqa.selenium.server.RemoteControlConfiguration;&lt;br /&gt;import org.openqa.selenium.server.SeleniumServer;&lt;br /&gt;&lt;br /&gt;public class SeleniumServerControl {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; private static final SeleniumServerControl instance = new SeleniumServerControl();&lt;br /&gt;&amp;nbsp; private SeleniumServer server = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public static SeleniumServerControl getInstance() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return instance;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; protected SeleniumServerControl() {&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public void startSeleniumServer() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; startSeleniumServer(RemoteControlConfiguration.DEFAULT_PORT);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public void startSeleniumServer(int port) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (server == null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RemoteControlConfiguration settings = new RemoteControlConfiguration();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //File f = new File("/home/user/.mozilla/firefox/default");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //settings.setFirefoxProfileTemplate(f);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //settings.setReuseBrowserSessions(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; settings.setSingleWindow(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; settings.setPort(port);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server = new SeleniumServer(settings);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(" selenium server " + server.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.err.println("Could not create Selenium Server because of: "&amp;nbsp; + e.getMessage());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.start();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.err.println("Could not start Selenium Server because of: " + e.getMessage());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public void stopSeleniumServer() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (server != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.stop();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.err.println("Could not stop Selenium Server because of: " + e.getMessage());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&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/2927253854689338790-4194820902955058344?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4194820902955058344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4194820902955058344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4194820902955058344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4194820902955058344'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/12/selenium-taking-screenshot-of-webpage.html' title='Selenium: Taking screenshot of a webpage'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5089342042741963764</id><published>2011-11-12T09:22:00.001+05:30</published><updated>2011-12-25T19:14:24.470+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch script'/><title type='text'>Windows: remove initial characters from file names</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In my continuation of last post, if you do not have a specific pattern to delete, but you know the number of characters to delete, you can use following script. Following script will remove initial 5 characters from the file name. (you can change 5 to any number, ofcourse)&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;@ECHO ON&lt;br /&gt;FOR %%F IN ("*.mp3") DO CALL :process "%%F"&lt;br /&gt;GOTO :EOF&lt;br /&gt;&lt;br /&gt;:process&lt;br /&gt;SET oldname=%1&lt;br /&gt;SET "newname=%~nx1"&lt;br /&gt;SET "newname=%newname:~5%"&lt;br /&gt;RENAME %oldname% "%newname%"&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&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/2927253854689338790-5089342042741963764?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5089342042741963764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5089342042741963764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5089342042741963764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5089342042741963764'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/11/windows-remove-initial-characters-from.html' title='Windows: remove initial characters from file names'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4716867179136102674</id><published>2011-11-12T08:52:00.001+05:30</published><updated>2011-12-25T19:20:13.571+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch script'/><title type='text'>Windows: remove prefixes from file names</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Whenever I download any film songs from internet, the file name have a specific prefix (basically the website name, from where I downloaded the songs). To keep the file names shorter, I wish to remove the prefixes from all files. Doing this task manually consumes so much time, so here is the script to do it at one go. &lt;br /&gt;&lt;br /&gt;File name is in format "[Site.name] Film Name - Song Number - Song Title.mp3". Save the following contents in a file (let say rename.bat) and run this file in windows command prompt. It will change all file names to "Film Name - Song Number - Song Title.mp3"&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;#################################&lt;br /&gt;::rename.bat&lt;br /&gt;#################################&lt;br /&gt;@ECHO OFF&lt;br /&gt;FOR %%F IN ("[*] *") DO CALL :renamer "%%F"&lt;br /&gt;GOTO :EOF&lt;br /&gt;&lt;br /&gt;:renamer&lt;br /&gt;SET oldname=%1&lt;br /&gt;SET "newname=%~nx1"&lt;br /&gt;SET "newname=%newname:*] =%"&lt;br /&gt;RENAME %oldname% "%newname%"&lt;br /&gt;&lt;/br&gt;&lt;br /&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/2927253854689338790-4716867179136102674?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4716867179136102674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4716867179136102674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4716867179136102674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4716867179136102674'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/11/windows-remove-prefixes-from-file-names.html' title='Windows: remove prefixes from file names'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8829217349843187714</id><published>2011-09-27T11:26:00.000+05:30</published><updated>2011-12-25T19:21:50.048+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell scripting'/><title type='text'>Shell Script: Find number of elements in an array</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;shell (bash) provides one-dimensional array variables. Any variable may be used as an array and there is no maximum limit on the size of an array. Below is the way to find length of array in shell script.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;SERVERS=(SERVER1 SERVER2 SERVER3 SERVER4)&lt;br /&gt;# set length of an array&lt;br /&gt;arrayLength=${#SERVERS[*]}&lt;br /&gt;# or&lt;br /&gt;#arrayLength=${#SERVERS[@]}&lt;br /&gt;&lt;br /&gt;#Traverse each entry&lt;br /&gt;for (( i=0; i&amp;lt;${arrayLength}; i++ ));&lt;br /&gt;do&lt;br /&gt;&amp;nbsp; echo ${SERVERS[$i]}&lt;br /&gt;done&lt;br /&gt;&lt;br /&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/2927253854689338790-8829217349843187714?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8829217349843187714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8829217349843187714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8829217349843187714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8829217349843187714'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/09/shell-script-find-number-of-elements-in.html' title='Shell Script: Find number of elements in an array'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-776057795588360332</id><published>2011-09-06T10:42:00.000+05:30</published><updated>2011-09-06T10:42:43.029+05:30</updated><title type='text'>My first AdSense paycheck</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Yesterday I got my first AdSense paycheck. It feels good to get first paycheck from Google AdSense. A reward for sharing your knowledge to the world :)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Rua1XVQMF-I/TmWrNVUctqI/AAAAAAAAFAI/N4wSG06gm_k/s1600/google_paycheck.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="139" src="http://1.bp.blogspot.com/-Rua1XVQMF-I/TmWrNVUctqI/AAAAAAAAFAI/N4wSG06gm_k/s320/google_paycheck.jpg" width="320" /&gt;&lt;/a&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/2927253854689338790-776057795588360332?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/776057795588360332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=776057795588360332' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/776057795588360332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/776057795588360332'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/09/my-first-adsense-paycheck.html' title='My first AdSense paycheck'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Rua1XVQMF-I/TmWrNVUctqI/AAAAAAAAFAI/N4wSG06gm_k/s72-c/google_paycheck.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4810646912070386308</id><published>2011-08-11T20:43:00.004+05:30</published><updated>2011-12-25T19:10:50.123+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='testlink'/><title type='text'>Excel to testlink results upload</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In my &lt;a href="http://vishnuagrawal.blogspot.com/2011/07/excel-to-testlink-upload.html"&gt;previous post&lt;/a&gt; I described about a utility which uploads my tests into Testlink. Once my tests are uploaded, I need to execute them, right.. ? But executing tests one by one from Testlink UI is quite slow process and somehow degrades productivity of the QA person. (as compare to when we use excel sheet for test cases tracking and mark Pass/Fail in the excel sheet itself, of which my team is habitual).&lt;br /&gt;To overcome this, I wrote another utility which uploads tests results from excel into Testlink and your lead/manager can access reports from testlink directly. Excel should have following columns:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #3333ff;"&gt;||Project Name||Test Suite Title||Test Case Title||Test Case  Summary||Pre conditions||Step Actions||Expected  Results||Priority||Keywords||TestPlan Name||Build Name||Comments||testlink login name||&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #3333ff;"&gt;1. Test Status may have values (PASS, FAIL, BLOCKED). Any other value will update test status as 'Not Run'.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3333ff;"&gt;2. Test Plan name should exactly match with as in Testlink&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3333ff;"&gt;3. Build name should exactly match with as in Testlink&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3333ff;"&gt;4. Comments can be used to specify bug number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3333ff;"&gt;5. User name should be testlink login name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So the whole process of uploading tests and their results goes as below:&lt;br /&gt;&lt;span style="color: #009900;"&gt;1. QA creates tests in above mentioned column format (Project Name, suite name, status, testplan name, qa build name, comments, user name can left blank for now).&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;2. Create a test suite in Testlink&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;3. Update testlink project name and test suite name in above excel.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;4. Upload excel from php of my previous post&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;5. Create a test plan (e.g. Release X.0) and QA Build (eg. QA1) in testlink&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;6. Once you execute your tests, update the excel with test status, testplan name, qa build name, comments , user name (testlink login name)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;7. Upload the excel from php of my this post (see below)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;8. That’s it, now anyone can access test reports from testlink UI.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;// Test CVS&lt;br /&gt;// Vishnu Agrawal&lt;br /&gt;&lt;br /&gt;ini_set("display_errors", "1");&lt;br /&gt;error_reporting(E_ALL ^ E_NOTICE);&lt;br /&gt;date_default_timezone_set('America/Los_Angeles');&lt;br /&gt;&lt;br /&gt;if($_FILES['xls_file']['tmp_name'])&lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; move_uploaded_file($_FILES['xls_file']['tmp_name'],'uploads/'.$_FILES['xls_file']['name']);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $xls_file = 'uploads/'.$_FILES['xls_file']['name'];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; include('../config_db.inc.php');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_connect(DB_HOST,DB_USER,DB_PASS);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_select_db(DB_NAME);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; require_once 'Excel/reader.php';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ExcelFile($filename, $encoding);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = new Spreadsheet_Excel_Reader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set output Encoding.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;setOutputEncoding('CP1251');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * if you want you can change 'iconv' to mb_convert_encoding:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setUTFEncoder('mb');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * By default rows &amp;amp; cols indeces start with 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * For change initial index use:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setRowColOffset(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; Some function for formatting output.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setDefaultFormat('%.2f');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * setDefaultFormat - set format for columns with unknown formatting&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setColumnFormat(4, '%.3f');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * setColumnFormat - set format for column (apply only to number fields)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;read($xls_file);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['numRows'] - count rows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['numCols'] - count columns&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['cells'][$i][$j] - data from $i-row $j-column&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['cellsInfo'][$i][$j] - extended info about cell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 'type' == "unknown" - use 'raw' value, because&amp;nbsp; cell contain value with format '0.00';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['colspan'] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['rowspan'] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $values = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ($i = 1; $i &amp;lt;= $data-&amp;gt;sheets[0]['numRows']; $i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $values[] = $data-&amp;gt;sheets[0]['cells'][$i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $rownum = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_existing = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($values as $colnum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $rownum++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($rownum &amp;gt; 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_project_name = trim($colnum[1]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_suite_name = trim($colnum[2]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_title = trim($colnum[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_summary = trim($colnum[4]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_pre_condition = trim($colnum[5]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_step = trim($colnum[6]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_result = trim($colnum[7]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_priority = trim($colnum[8]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_keywords = trim($colnum[9]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_test_result = trim($colnum[10]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_testplan = trim($colnum[11]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_build = trim($colnum[12]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_comment = trim($colnum[13]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_username = trim($colnum[14]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_project_name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($excel_suite_name &amp;amp;&amp;amp; $excel_tc_title) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink project name is not Specified&amp;lt;/font&amp;gt;\&lt;br\&gt;");&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_suite_name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink Suite name is not Specified&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_tc_title) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink tese case title is not Specified&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_tc_testplan) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink test plan name is not Specified&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_tc_build) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink test build name is not Specified&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get Project id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_project = mysql_query("SELECT testprojects.id, nodes_hierarchy.name FROM testprojects, nodes_hierarchy WHERE testprojects.id = nodes_hierarchy.id AND nodes_hierarchy.name='$excel_project_name'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_project) != 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_project) . " test project found with name &amp;lt;b&amp;gt;$excel_project_name&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_project = mysql_fetch_assoc($query_project);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $project_id = $res_project["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " Project id is " . $project_id . "\&lt;br\&gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get Project id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get testplan id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_testplan = mysql_query("SELECT testplans.*, NH.name FROM testplans testplans, nodes_hierarchy NH WHERE testplans.id=NH.id AND NH.name = '$excel_tc_testplan' AND NH.parent_id=$project_id");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_testplan) != 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_testplan) . " test project found with name &amp;lt;b&amp;gt;$excel_tc_testplan&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_testplan = mysql_fetch_assoc($query_testplan);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $testplan_id = $res_testplan["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " testplan id is " . $testplan_id . "\&lt;br\&gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get testplan id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get build id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_build = mysql_query("SELECT builds.id, builds.name, builds.notes FROM builds builds WHERE builds.testplan_id = $testplan_id&amp;nbsp; AND builds.name= '$excel_tc_build' AND builds.active = 1 AND builds.is_open = 1");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_build) != 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_build) . " build found with name &amp;lt;b&amp;gt;$excel_tc_build&amp;lt;/b&amp;gt;. Either build name do not exists or build is not active/open&amp;lt;/font&amp;gt;\&lt;br\&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_build = mysql_fetch_assoc($query_build);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $build_id = $res_build["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " build id is " . $build_id . "\&lt;br\&gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get build id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get tester id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_tester = mysql_query("SELECT * from users&amp;nbsp; where login = '$excel_tc_username'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_tester) != 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_tester) ." Users with name &amp;lt;b&amp;gt;$excel_tc_username&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_tester = mysql_fetch_assoc($query_tester);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $tester_id = $res_tester["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " tester id is " . $tester_id . "\&lt;br\&gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get tester id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get test case status - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (strcasecmp($excel_tc_test_result, 'PASS') == 0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_status = 'p';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(strcasecmp($excel_tc_test_result, 'FAIL') == 0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_status = 'f';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(strcasecmp($excel_tc_test_result, 'BLOCKED') == 0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_status = 'b';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Incorrect test result &amp;lt;b&amp;gt;$excel_tc_test_result&amp;lt;/b&amp;gt; in row $rownum&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_status = 'n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get test case status - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get test Suite id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_testsuitenames = mysql_query("SELECT TS.*, NH.name, NH.parent_id FROM testsuites TS JOIN nodes_hierarchy NH ON NH.id = TS.id WHERE NH.name = '$excel_suite_name'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $count = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_suite_id = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while($suites = mysql_fetch_assoc($query_testsuitenames)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_get_project = mysql_query("SELECT _id FROM (SELECT @r AS _id, (SELECT @r := parent_id FROM nodes_hierarchy WHERE id = _id) AS parent FROM ( SELECT @r := $suites[id] ) vars, nodes_hierarchy h WHERE @r IS NOT NULL) AS t WHERE t.parent IS NULL");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_get_project = mysql_fetch_assoc($query_get_project);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(count($res_get_project) == 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($res_get_project[_id] == $project_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $count++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_suite_id = $suites[id];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($count != 1 &amp;amp;&amp;amp; $test_suite_id ==0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . $count . " suite name found with name &amp;lt;b&amp;gt;$excel_suite_name&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " suite id is " . $test_suite_id . "\&lt;br\&gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get test Suite id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Get test case details - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_testcase = mysql_query("SELECT DISTINCT NH_TCASE.id,NH_TCASE.name,NH_TCASE_PARENT.id AS parent_id, NH_TCASE_PARENT.name AS tsuite_name, TCV.version, TCV.tc_external_id, TCV.id AS tcversion_id FROM nodes_hierarchy NH_TCASE, nodes_hierarchy NH_TCASE_PARENT, nodes_hierarchy NH_TCVERSIONS, tcversions TCV&amp;nbsp; WHERE NH_TCASE.node_type_id = 3 AND NH_TCASE.name = '$excel_tc_title' AND TCV.id=NH_TCVERSIONS.id AND NH_TCVERSIONS.parent_id=NH_TCASE.id AND NH_TCASE_PARENT.id=NH_TCASE.parent_id AND NH_TCASE_PARENT.id = $test_suite_id AND NH_TCASE_PARENT.node_type_id = 2&amp;nbsp; ORDER BY TCV.version desc LIMIT 1");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_testcase) != 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_testcase) . " test cases found with name &amp;lt;b&amp;gt;$excel_tc_title&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_testcase = mysql_fetch_assoc($query_testcase);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $testcase_id = $res_testcase["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $testcase_version = $res_testcase["version"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $testcase_version_id = $res_testcase["tcversion_id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo "Test case details " . $testcase_id . "&amp;lt;&amp;gt;" . $testcase_version . "&amp;lt;&amp;gt;" . $testcase_version_id . "\&lt;br\&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Get test case details - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_notes = $excel_tc_comment;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_tcversion = mysql_query("SELECT * from testplan_tcversions where testplan_id = $testplan_id AND tcversion_id = $testcase_version_id");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&lt;br\&gt;When selecting data from testplan_tcversions\&lt;br\&gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Check if test case is already linked with test plan, we don't need to update the table again&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_tcversion) == 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("BEGIN");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery1 = mysql_query("INSERT INTO testplan_tcversions(testplan_id, tcversion_id, author_id) VALUES($testplan_id, $testcase_version_id, $tester_id)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $case_id = mysql_insert_id();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery2 = mysql_query("INSERT INTO user_assignments(feature_id, user_id, build_id, assigner_id) VALUES($case_id, $tester_id, $build_id, $tester_id)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(($objQuery1) and ($objQuery2))&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** Commit Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("COMMIT");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** RollBack Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("ROLLBACK");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "ERROR :: Rollbacked transaction of updating user assignment for row $rownum ...";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Convert current Timestamp into a string, safe for MySql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $currentTSExecution = date("Y-m-d H:i:s", time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (strcasecmp($test_status, 'n') != 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp; //update test status only if test status is not 'n'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_executions = mysql_query("SELECT * from executions WHERE build_id = $build_id AND testplan_id = $testplan_id AND tcversion_id = $testcase_version_id AND tcversion_number = $testcase_version");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&lt;br\&gt;When selecting data from executions\&lt;br\&gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Check if test case is not already updated in executions, then we need to add a new entry otherwise update existing entry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_executions) == 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("INSERT INTO executions(build_id, tester_id, execution_ts, status, testplan_id, tcversion_id, tcversion_number, notes) VALUES($build_id, $tester_id, '$currentTSExecution', '$test_status', $testplan_id, $testcase_version_id, $testcase_version, '$test_notes')");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&lt;br\&gt;When insertng data into executions\&lt;br\&gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(mysql_num_rows($query_executions) == 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("UPDATE executions SET tester_id = $tester_id, execution_ts = '$currentTSExecution', status = '$test_status', notes = '$test_notes' WHERE build_id = $build_id AND testplan_id = $testplan_id AND tcversion_id = $testcase_version_id AND tcversion_number = $testcase_version");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&lt;br\&gt;When updating data into executions\&lt;br\&gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_existing++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update--;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_executions) . " execution status found ...&amp;lt;/font&amp;gt;\&lt;br\&gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#0000ff&amp;gt;Tests updated (New): \&lt;br\&gt;$test_update&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&lt;br\&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#0000ff&amp;gt;Tests updated (Existing): &amp;lt;b&amp;gt;$test_update_existing&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&lt;br\&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#0000ff&amp;gt;Tests update Failed: &amp;lt;b&amp;gt;$test_update_fail&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&lt;br\&gt;";&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Testlink Testcase Results Uploader&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;form name="frm" action="" method="post" enctype="multipart/form-data"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Use this page to upload test results from Excel sheet to Testlink, Excel file should have following columns.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table border="1"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Project Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Suite Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Case Title&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Case Summary&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Pre Conditions&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Step Actions&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Expected Results&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Priority&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Keywords&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Status&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Testplan Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Build Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Comments (can be used to specify Bug#)&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Username (Testlink login name)&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;th align="left"&amp;gt;NOTE:&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;ol&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Tests should be in the first sheet of the excel file&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;First row will be ignored as it will have column headers&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Project name should exactly match with Testlink project name in which you want to upload your tests. &amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Suite Title name should exactly match with Testlink test suite name in which you want to upload your tests. &amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Case Title is the title which will be used to list test in the testlink tree&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Multiple keywords are supported (comma separated)&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Priority column may have values Low/Medium/High. If no value (or wrong value) is specified, test will be assigned Medium priority.&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Status may have values (PASS, FAIL, BLOCKED). Any other value will update test status as 'Not Run'.&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Plan name should exactly match with as in Testlink&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Build name should exactly match with as in Testlink&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Comments can be used to specify bug number&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;User name should be testlink login name&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;If test case title already exists for the given suite in testlink, new test will not be added, existing will be updated&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Testlink Test Result Uploader:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type="file" name="xls_file" /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href="pub_dashboard.xls"&amp;gt;Sample file format for testcase&amp;lt;/a&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type="submit" name="submit" value="submit" /&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&gt;&lt;/br\&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/2927253854689338790-4810646912070386308?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4810646912070386308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4810646912070386308' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4810646912070386308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4810646912070386308'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/08/excel-to-testlink-results-upload.html' title='Excel to testlink results upload'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8012503662702802170</id><published>2011-07-25T10:28:00.002+05:30</published><updated>2011-07-25T10:38:18.427+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Automatically login a ssh session using putty</title><content type='html'>Putty is used to connect to remote server and for day to day tasks developer login into remote machine using putty. User have to input username/password for every login. This process can be automated to save some time.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Downlaod PuTTY&lt;/div&gt;&lt;div&gt;2. Download PuTTYgen&lt;/div&gt;&lt;div&gt;3. Run PuTTYgen&lt;/div&gt;&lt;div&gt;4. Select SSH-2 DSA as the "Type of Key" to generate&lt;/div&gt;&lt;div&gt;5. Click on generate button and move your mouse around so that randomness is generated&lt;/div&gt;&lt;div&gt;6. Click on “Save Private Key” and save it to your computer&lt;/div&gt;&lt;div&gt;7. Copy the entire content inside the box to your clipboard (this is your generated public key).&lt;/div&gt;&lt;div&gt;8. Login to your SSH server using putty (by using user name and password)&lt;/div&gt;&lt;div&gt;9. Create file ~/.ssh/authorized_keys and put your public key on a single line (from step 7)&lt;/div&gt;&lt;div&gt;10. Make this file readable (chmod +r )&lt;/div&gt;&lt;div&gt;11. Open PuTTY, navigate to Connection-&amp;gt;Data and fill in the auto-login username&lt;/div&gt;&lt;div&gt;12. Navigate to Connection-&amp;gt;SSH-&amp;gt;Auth and under Private-key, browse to the file you had saved earlier on your computer. (from step 6)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You are done. Now whenever you login into your remote machine, it will login automatically.&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/2927253854689338790-8012503662702802170?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8012503662702802170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8012503662702802170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8012503662702802170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8012503662702802170'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/07/automatically-login-ssh-session-using.html' title='Automatically login a ssh session using putty'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2550713217898630538</id><published>2011-07-12T19:47:00.010+05:30</published><updated>2011-12-25T19:12:50.145+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='testlink'/><title type='text'>Excel to Testlink upload</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="color: #3366ff;"&gt;Once you setup testlink, the first question comes in mind that how do I upload my existing test sheets into Excel. Tetslink 1.9.2 supports uploading excel sheets but before that you need to create few sample tests into testlink and then export it and then use the imported xsd to convert your excel sheet. For me, its quite cumbersome process and I wanted that we have some sort of upload functionality so that my QA team don't have to make much effort to upload their existing tests. I found a utility which is php based and supports excel upload by a simple web interface. the utility can be downloaded from &lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://code.google.com/p/testlink-1-9-xls-test-case-uploader/downloads/list"&gt;http://code.google.com/p/testlink-1-9-xls-test-case-uploader/downloads/list&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #3366ff;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="color: #3366ff;"&gt;This utility was great but it was limited to few columns of excel but I needed additional columns plus some small modification in the existing column. With reference to their php, I modified it to support columns as per our requirement. Here is the modified version of their php.&lt;/div&gt;&lt;div class="MsoNormal" style="color: #3366ff;"&gt;This modified version of utility supports following columns&lt;/div&gt;&lt;div class="MsoNormal" style="color: #3366ff;"&gt;&lt;span style="color: #3333ff;"&gt;||Project Name||Test Suite Title||Test Case Title||Test Case  Summary||Pre conditions||Step Actions||Expected  Results||Priority||Keywords||TestPlan Name||Build Name||Comments||testlink login name||&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: #3366ff;"&gt;Few Notes:&lt;/div&gt;&lt;div class="MsoNormal" style="color: #3366ff;"&gt;&lt;/div&gt;&lt;table style="color: #3366ff;"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;ol&gt;&lt;li&gt;Tests should be in the first sheet of the excel file&lt;/li&gt;&lt;li&gt;First row will be ignored as it will have column headers&lt;/li&gt;&lt;li&gt;Test Project name should exactly match with Testlink project name in which you want to upload your tests.&lt;/li&gt;&lt;li&gt;Test Suite Title name should exactly match with Testlink test suite name in  which you want to upload your tests. &lt;/li&gt;&lt;li&gt;Test Case Title is the title which will be used to list test in the testlink  tree&lt;/li&gt;&lt;li&gt;Multiple keywords are supported (comma separated)&lt;/li&gt;&lt;li&gt;Priority column may have values Low/Medium/High. If no value (or wrong  value) is specified, test will be assigned Medium priority.&lt;/li&gt;&lt;li&gt;Test Status, Test Plan, Build Name, Comments and User Name columns are ignored as they are used to update test results&lt;/li&gt;&lt;li&gt;If test case title already exists for the given suite in testlink, new test  will not be added, existing will be updated&lt;/li&gt;&lt;li&gt;Utility has been tested on Testlink version 1.9.2/1.9.3&lt;/li&gt;&lt;li&gt;To Use this utility, you need to install original utility from above mentioned link and then replace their index.php with the below given php file&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;// Test CVS&lt;br /&gt;// Vishnu Agrawal&lt;br /&gt;&lt;br /&gt;ini_set("display_errors", "1");&lt;br /&gt;error_reporting(E_ALL ^ E_NOTICE);&lt;br /&gt;date_default_timezone_set('America/Los_Angeles');&lt;br /&gt;&lt;br /&gt;if($_FILES['xls_file']['tmp_name'])&lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; move_uploaded_file($_FILES['xls_file']['tmp_name'],'uploads/'.$_FILES['xls_file']['name']);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $xls_file = 'uploads/'.$_FILES['xls_file']['name'];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; include('../config_db.inc.php');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_connect(DB_HOST,DB_USER,DB_PASS);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_select_db(DB_NAME);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; require_once 'Excel/reader.php';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ExcelFile($filename, $encoding);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = new Spreadsheet_Excel_Reader();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set output Encoding.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;setOutputEncoding('CP1251');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * if you want you can change 'iconv' to mb_convert_encoding:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setUTFEncoder('mb');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * By default rows &amp;amp; cols indeces start with 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * For change initial index use:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setRowColOffset(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /***&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; Some function for formatting output.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setDefaultFormat('%.2f');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * setDefaultFormat - set format for columns with unknown formatting&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * $data-&amp;gt;setColumnFormat(4, '%.3f');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * setColumnFormat - set format for column (apply only to number fields)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;read($xls_file);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['numRows'] - count rows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['numCols'] - count columns&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['cells'][$i][$j] - data from $i-row $j-column&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$data-&amp;gt;sheets[0]['cellsInfo'][$i][$j] - extended info about cell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 'type' == "unknown" - use 'raw' value, because&amp;nbsp; cell contain value with format '0.00';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['colspan'] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data-&amp;gt;sheets[0]['cellsInfo'][$i][$j]['rowspan'] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $values = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ($i = 1; $i &amp;lt;= $data-&amp;gt;sheets[0]['numRows']; $i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $values[] = $data-&amp;gt;sheets[0]['cells'][$i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*echo '&amp;lt;pre&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_r($values);*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $rownum = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $case_count = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $test_new = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($values as $colnum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $rownum++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($rownum &amp;gt; 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_project_name = trim($colnum[1]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_suite_name = trim($colnum[2]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_title = trim($colnum[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_summary = trim($colnum[4]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_pre_condition = trim($colnum[5]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_step = trim($colnum[6]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_result = trim($colnum[7]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_priority = trim($colnum[8]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $excel_tc_keywords = trim($colnum[9]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_project_name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($excel_suite_name &amp;amp;&amp;amp; $excel_tc_title) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink project name is not Specified&amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;");&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_suite_name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink Suite name is not Specified&amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$excel_tc_title) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: Testlink tese case title is not Specified&amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get Project id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_project = mysql_query("SELECT testprojects.id, nodes_hierarchy.name FROM testprojects, nodes_hierarchy WHERE testprojects.id = nodes_hierarchy.id AND nodes_hierarchy.name='$excel_project_name'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysql_num_rows($query_project) != 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . mysql_num_rows($query_project) . " test project found with name &amp;lt;b&amp;gt;$excel_project_name&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_project = mysql_fetch_assoc($query_project);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $project_id = $res_project["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " Project id is " . $project_id . "\&amp;lt;br\&amp;gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get Project id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get test Suite id - Start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_testsuitenames = mysql_query("SELECT TS.*, NH.name, NH.parent_id FROM testsuites TS JOIN nodes_hierarchy NH ON NH.id = TS.id WHERE NH.name = '$excel_suite_name'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $count = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $suite_id = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while($suites = mysql_fetch_assoc($query_testsuitenames)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_get_project = mysql_query("SELECT _id FROM (SELECT @r AS _id, (SELECT @r := parent_id FROM nodes_hierarchy WHERE id = _id) AS parent FROM ( SELECT @r := $suites[id] ) vars, nodes_hierarchy h WHERE @r IS NOT NULL) AS t WHERE t.parent IS NULL");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_get_project = mysql_fetch_assoc($query_get_project);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(count($res_get_project) == 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($res_get_project[_id] == $project_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $count++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $suite_id = $suites[id];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($count != 1 &amp;amp;&amp;amp; $suite_id ==0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo ("&amp;lt;font color=#ff0000&amp;gt;Test result upload for test row $rownum failed. REASON: " . $count . " suite name found with name &amp;lt;b&amp;gt;$excel_suite_name&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //echo " suite id is " . $suite_id . "\&amp;lt;br\&amp;gt;" ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Get test Suite id - End&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $priority_str = $excel_tc_priority;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $priority_id = 2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (strcasecmp($priority_str,"Low") == 0) $priority_id = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (strcasecmp($priority_str,"High") == 0) $priority_id = 3;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_test = mysql_query("SELECT DISTINCT NH_TCASE.id,NH_TCASE.name,NH_TCASE_PARENT.id AS parent_id, NH_TCASE_PARENT.name AS tsuite_name, TCV.version, TCV.tc_external_id, TCV.id AS tcversion_id FROM nodes_hierarchy NH_TCASE, nodes_hierarchy NH_TCASE_PARENT, nodes_hierarchy NH_TCVERSIONS, tcversions TCV&amp;nbsp; WHERE NH_TCASE.node_type_id = 3 AND NH_TCASE.name = '$excel_tc_title' AND TCV.id=NH_TCVERSIONS.id AND NH_TCVERSIONS.parent_id=NH_TCASE.id AND NH_TCASE_PARENT.id=NH_TCASE.parent_id AND NH_TCASE_PARENT.id = $suite_id AND NH_TCASE_PARENT.node_type_id = 2&amp;nbsp; ORDER BY TCV.version desc LIMIT 1");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&amp;lt;br\&amp;gt;When selecting suite id\&amp;lt;br\&amp;gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_test = mysql_fetch_array($query_test);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(count($res_test)&amp;gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Test case already exists in the test suite, then we need to just update it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $testcase_id = $res_test["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $testcase_version_id = $res_test["tcversion_id"];&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("UPDATE tcversions SET importance = $priority_id, summary = '".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_tc_summary))."', preconditions = '".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_pre_condition))."' WHERE id = $testcase_version_id");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&amp;lt;br\&amp;gt;When UPDATE tcversions for row $rownum ...\&amp;lt;br\&amp;gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($excel_tc_step||$excel_tc_result)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_test_step_parent = mysql_query("SELECT TCSTEPS.id, MAX(TCSTEPS.step_number) AS max_step FROM tcsteps TCSTEPS JOIN nodes_hierarchy NH_STEPS ON NH_STEPS.id = TCSTEPS.id WHERE NH_STEPS.parent_id=$testcase_version_id");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&amp;lt;br\&amp;gt;When select test case steps for row $rownum ...\&amp;lt;br\&amp;gt;";&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_test_step_parent = mysql_fetch_array($query_test_step_parent);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("UPDATE tcsteps SET actions = '".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_tc_step))."', expected_results = '".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_tc_result))."' WHERE id = $res_test_step_parent[id]");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (mysql_errno()) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "MySQL error ".mysql_errno().": ".mysql_error()."\n\&amp;lt;br\&amp;gt;When UPDATE test case steps for row $rownum ...\&amp;lt;br\&amp;gt;"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($excel_tc_keywords)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //First remove all existing keywords of this test and then add again&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("DELETE from testcase_keywords where testcase_id = $testcase_id");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $keywords = explode(',',mysql_real_escape_string($excel_tc_keywords));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($keywords as $keyword) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $key = trim($keyword);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_keyword = mysql_query("SELECT id FROM keywords WHERE keyword='$key'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_keyword = mysql_fetch_assoc($query_keyword);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $keyword_id = $res_keyword["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($keyword_id){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("INSERT INTO testcase_keywords (testcase_id, keyword_id) VALUES ($testcase_id,$keyword_id)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_update++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //This is a new test and we need to add it in test suite&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** Start Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("BEGIN"); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery1 = mysql_query("INSERT INTO nodes_hierarchy (parent_id,node_type_id,node_order,name) VALUES ($suite_id,3,100,'".mysql_real_escape_string($excel_tc_title)."')");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $case_id = mysql_insert_id();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery2 = mysql_query("INSERT INTO nodes_hierarchy (parent_id,node_type_id,node_order) VALUES ($case_id,4,0)"); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $case_des_id = mysql_insert_id();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery3 = mysql_query("INSERT INTO tcversions (id,importance,summary,preconditions) VALUES ($case_des_id, $priority_id,'".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_tc_summary))."','".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_pre_condition))."')");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(($objQuery1) and ($objQuery2) and ($objQuery3))&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** Commit Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("COMMIT");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** RollBack Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("ROLLBACK");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "ERROR :: Rollbacked transaction of new tests for row $rownum ...";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_add_fail++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($excel_tc_step||$excel_tc_result)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** Start Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("BEGIN");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery1 = mysql_query("INSERT INTO nodes_hierarchy (parent_id,node_type_id,node_order) VALUES ($case_des_id,9,0)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $case_step_id = mysql_insert_id(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $objQuery2 = mysql_query("INSERT INTO tcsteps (id,actions,expected_results) VALUES ($case_step_id,'".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_tc_step))."','".mysql_real_escape_string(str_replace("\n", "&amp;lt;p&amp;gt;", $excel_tc_result))."')");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(($objQuery1) and ($objQuery2))&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** Commit Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("COMMIT");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //*** RollBack Transaction ***//&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("ROLLBACK");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "ERROR :: Rollbacked transaction of test step updation for row $rownum ...";&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($excel_tc_keywords)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $keywords = explode(',',mysql_real_escape_string($excel_tc_keywords));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($keywords as $keyword) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $key = trim($keyword);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $query_keyword = mysql_query("SELECT id FROM keywords WHERE keyword='$key'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $res_keyword = mysql_fetch_assoc($query_keyword);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $keyword_id = $res_keyword["id"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($keyword_id){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql_query("INSERT INTO testcase_keywords (testcase_id, keyword_id) VALUES ($case_id,$keyword_id)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $test_new++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $case_count = $test_new + $test_update;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#993300&amp;gt;Total &amp;lt;b&amp;gt;$case_count&amp;lt;/b&amp;gt; test cases updated successfully.&amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#0000ff&amp;gt;New tests : &amp;lt;b&amp;gt;$test_new&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#0000ff&amp;gt;Tests updated : &amp;lt;b&amp;gt;$test_update&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "&amp;lt;font color=#0000ff&amp;gt;Tests update failed: &amp;lt;b&amp;gt;$test_add_fail&amp;lt;/b&amp;gt; &amp;lt;/font&amp;gt;\&amp;lt;br\&amp;gt;";&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Testlink XLS Uploader&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;form name="frm" action="" method="post" enctype="multipart/form-data"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Use this page to import test cases from Excel sheet to Testlink, Excel file should have following columns:&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table border="1"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Project Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Suite Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Case Title&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Case Summary&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Pre Conditions&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Step Actions&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Expected Results&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Priority&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Keywords&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Test Status&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Testplan Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Build Name from Testlink&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Comments (can be used to specify Bug#)&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;th&amp;gt;Username (Testlink login name)&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;th align="left"&amp;gt;NOTE:&amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;ol&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Tests should be in the first sheet of the excel file&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;First row will be ignored as it will have column headers&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Project name should exactly match with Testlink project name in which you want to upload your tests. &amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Suite Title name should exactly match with Testlink test suite name in which you want to upload your tests. &amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Case Title is the title which will be used to list test in the testlink tree&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Multiple keywords are supported (comma separated)&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Priority column may have values Low/Medium/High. If no value (or wrong value) is specified, test will be assigned Medium priority.&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;Test Status, Test Plan, Build Name, Comments and User Name columns are ignored as they are used to update test results&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;If test case title already exists for the given suite in testlink, new test will not be added, existing will be updated&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Testlink XLS Uploader:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type="file" name="xls_file" /&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href="pub_dashboard.xls"&amp;gt;Sample file format for testcase&amp;lt;/a&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type="submit" name="submit" value="submit" /&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="color: #3366ff;"&gt; &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/2927253854689338790-2550713217898630538?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2550713217898630538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2550713217898630538' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2550713217898630538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2550713217898630538'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/07/excel-to-testlink-upload.html' title='Excel to Testlink upload'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2249826744720355404</id><published>2011-07-09T03:24:00.002+05:30</published><updated>2011-07-09T03:30:27.340+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='testlink'/><title type='text'>Setup Test case management tool - TestLink</title><content type='html'>These days I am working on introducing TestLink as test case management tool. Tetslink have few software pre-requisites, here is the step by step guide to setup TestLink for your team.&lt;br /&gt;&lt;br /&gt;1. Download and install Apache Web Server&lt;br /&gt;2. Download and install PHP&lt;br /&gt;3. Configure Apache&lt;br /&gt;4. Download and Install MySQL server&lt;br /&gt;5. Download and install TestLink&lt;br /&gt;6. Configure TestLink&lt;br /&gt;&lt;br /&gt;Detailed installation instruction for step 1-4 can be found @ &lt;a href="http://webdevcodex.com/tutorial-installing-apache2-php5-mysql5-phpmyadmin3-windows-7-vista/"&gt;http://webdevcodex.com/tutorial-installing-apache2-php5-mysql5-phpmyadmin3-windows-7-vista&lt;/a&gt;/&lt;br /&gt;&lt;br /&gt;Download and unzip testlink in apache web directory and open http://localhost/Tetslink. If it is the first time installation it will open installation page. Follow the instructions and Testlnk is installed.&lt;br /&gt;&lt;br /&gt;Once you open the testlink login page or login, you might get following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"PHP Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;To resolve this issue, edit &lt;/span&gt;&lt;php installation="" directory=""&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;php install dir&amp;gt;\php.ini and add "date.timezone = PRC"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Sometimes you also get warning message in UI, to eliminate those warning message from UI&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;make change in &lt;/span&gt;&lt;testlink style="color: rgb(0, 0, 153);" install="" dir=""&gt;&amp;lt;Testlink install dir&amp;gt;\config.inc.php and change "$tlCfg-&amp;gt;config_check_warning_mode = 'SILENT';"&lt;/testlink&gt;&lt;/php&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2249826744720355404?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2249826744720355404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2249826744720355404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2249826744720355404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2249826744720355404'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/07/setup-test-case-management-tool.html' title='Setup Test case management tool - TestLink'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-1581070363522427776</id><published>2011-02-28T15:06:00.003+05:30</published><updated>2011-02-28T15:12:38.564+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle: Join Example</title><content type='html'>I have a table TEST in oracle which stores data for some users on monthly basis, I need to fetch the data in such a way that "all data for current month with the entry of their last month record for a particular column."  Here is the table details and query:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CREATE TABLE DATETEST (ID NUMBER(4) NOT NULL, NAME VARCHAR2(10), BUDGET NUMBER(7), TDATE DATE);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;INSERT INTO DATETEST VALUES (1, 'test1', 100, TO_DATE('01-FEB-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (2, 'test2', 200, TO_DATE('01-FEB-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (3, 'test3', 300, TO_DATE('01-FEB-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (4, 'test4', 200, TO_DATE('01-FEB-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (5, 'test5', 300, TO_DATE('01-FEB-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (1, 'test1', 200, TO_DATE('01-JAN-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (2, 'test2', 100, TO_DATE('01-JAN-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (3, 'test3', 400, TO_DATE('01-JAN-2011', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (2, 'test2', 200, TO_DATE('01-DEC-2010', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (3, 'test3', 100, TO_DATE('01-DEC-2010', 'DD-MON-YYYY'));&lt;br /&gt;INSERT INTO DATETEST VALUES (4, 'test4', 100, TO_DATE('01-DEC-2010', 'DD-MON-YYYY'));&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;select * from DATETEST;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# This Month's entry&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;select * from DATETEST where TDATE = ADD_MONTHS(trunc(sysdate,'MM'),0); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# Last Month's entry&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;select * from DATETEST where TDATE = ADD_MONTHS(trunc(sysdate,'MM'),-1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# Common users for current and last month and their budgets for current and last months&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;select A.ID, NAME, A.BUDGET, B.BUDGET from DATETEST A, &lt;br /&gt;    (select ID, BUDGET from DATETEST where TDATE = ADD_MONTHS(trunc(sysdate,'MM'),-1)) B&lt;br /&gt; where A.ID=B.ID and TDATE = ADD_MONTHS(trunc(sysdate,'MM'),0) ;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# Query which displays data for all users with current month entry and thier last month record&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;select A.ID, NAME, A.BUDGET, NVL (B.BUDGET, 0) &lt;br /&gt;from DATETEST A left join&lt;br /&gt;    (select ID, BUDGET from DATETEST where TDATE = ADD_MONTHS(trunc(sysdate,'MM'),-1)) B&lt;br /&gt; on A.ID=B.ID where TDATE = ADD_MONTHS(trunc(sysdate,'MM'),0) order by id asc;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-1581070363522427776?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/1581070363522427776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=1581070363522427776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1581070363522427776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1581070363522427776'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/02/oracle-join-example.html' title='Oracle: Join Example'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2874497543700133882</id><published>2011-02-22T12:28:00.003+05:30</published><updated>2011-02-22T12:33:37.589+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>sed: How to Escape Forward Slash</title><content type='html'>As you may know, sed performs a search and replace with this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;sed s/seacrh pattern/replacement pattern/g file list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;forward slash ("/") is used as part of the regular expression to separate the command options and search text. What if your search/replace pattern itself includes forward slash character.&lt;br /&gt;&lt;br /&gt;I wanted to replace /usr/local/bin to /usr/local/dev, I escaped forward slashes with backward slash and my sed command looked like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;sed -i -e 's/\/usr\/local\/bin/\/usr\/local\/dev/g' testfile.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, sed didn’t work and gave me this error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;sed: -e expression #1, char 27: unknown option to `s'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then On googling, I discovered an exciting thing about sed. In the regular expression, it’s not necessary to delimit the find and replace texts and search options with the forward slash ‘/’ character. We can use any character to delimit the expression.&lt;br /&gt;&lt;br /&gt;So I changed my command a bit, used @ character to delimit the expression and then it worked.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;sed -i -e s@\/usr\/local\/bin@\/usr\/local\/dev@g testfile.txt&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2874497543700133882?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2874497543700133882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2874497543700133882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2874497543700133882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2874497543700133882'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2011/02/sed-how-to-escape-forward-slash.html' title='sed: How to Escape Forward Slash'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6485033872248502220</id><published>2010-12-22T17:56:00.002+05:30</published><updated>2010-12-22T18:00:22.922+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><title type='text'>use variable refeences in awk</title><content type='html'>I need to compare 1st column of user.csv with value, it works well with following&lt;br /&gt;&lt;br /&gt;value=2&lt;br /&gt;awk -F':' '$1==$value {print}' user.csv&lt;br /&gt;&lt;br /&gt;now I have a case where column number is also a variable for me, in that case, the solution would be:&lt;br /&gt;&lt;br /&gt;value=2&lt;br /&gt;column=1&lt;br /&gt;awk -F':' ''\$$column==$value' {print}' filename&lt;br /&gt;&lt;br /&gt;1. You need to put backslash (\) before first $&lt;br /&gt;2. You need to put comparison in single quote&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6485033872248502220?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6485033872248502220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6485033872248502220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6485033872248502220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6485033872248502220'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/12/use-variable-refeences-in-awk.html' title='use variable refeences in awk'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5222613593898310167</id><published>2010-09-27T15:20:00.004+05:30</published><updated>2010-09-27T15:40:20.705+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Retrieve web pages using perl</title><content type='html'>Here is the sample script to fetch web pages using perl.&lt;br /&gt;&lt;br /&gt;#!/usr/local/bin/perl -w&lt;br /&gt;use strict;&lt;br /&gt;use LWP 5.64;&lt;br /&gt;use URI;&lt;br /&gt;&lt;br /&gt;my $browser = LWP::UserAgent-&amp;gt;new;&lt;br /&gt;$browser-&amp;gt;cookie_jar({});&lt;br /&gt;&lt;br /&gt;my @browserHeaders = (&lt;br /&gt;   'User-Agent' =&amp;gt; 'Mozilla/4.0; (compatible; MSIE 6.0; Windows NT 5.1; en-US)',&lt;br /&gt;   'Accept-Language' =&amp;gt; 'en-US',&lt;br /&gt;                      );&lt;br /&gt;&lt;br /&gt;my $response;&lt;br /&gt;$response = $browser-&amp;gt;get("http://vishnuagrawal.blogspot.com",@browserHeaders);&lt;br /&gt;&lt;br /&gt;if ($response-&amp;gt;is_success) {&lt;br /&gt;     print $response-&amp;gt;content;&lt;br /&gt;} else {&lt;br /&gt;     print $response-&amp;gt;error_as_HTML, "\n";&lt;br /&gt;     print $response-&amp;gt;status_line, "\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;print $response-&amp;gt;code(), "\n";&lt;br /&gt;print $response-&amp;gt;message() , "\n";&lt;br /&gt;print $response-&amp;gt;header('content-type'), "\n";&lt;br /&gt;&lt;br /&gt;my $url = URI-&amp;gt;new("http://www.softwareqa.com");&lt;br /&gt;$response = $browser-&amp;gt;get($url,@browserHeaders);&lt;br /&gt;&lt;br /&gt;print $response-&amp;gt;content;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-5222613593898310167?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5222613593898310167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5222613593898310167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5222613593898310167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5222613593898310167'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/09/retrieve-web-pages-using-perl.html' title='Retrieve web pages using perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2174255901831953914</id><published>2010-09-24T10:31:00.007+05:30</published><updated>2011-07-20T15:00:16.899+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Find the day diff between two days</title><content type='html'>Following is the shell script solution for getting number of days between two dates:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;date1=`date +%s -d $1`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;date2=`date +%s -d $2`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;diff=`expr $date2 - $date1`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;diff_days=`expr $diff / \( 60 '*' 60 '*' 24 \)`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;echo $diff_days&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[vishnu@ shell]# ./daydiff.sh 2010-08-02 2010-09-15&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;44&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[vishnu@ shell]#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is the perl solution for the same:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#!/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;use strict;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;use warnings;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;use Time::Local;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my $date1 = $ARGV[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my $date2 = $ARGV[1];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my @formatted_date1 = split(/-/, $date1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my @formatted_date2 = split(/-/, $date2);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my $local_date1 = timelocal(0, 0, 0, $formatted_date1[2], $formatted_date1[1], $formatted_date1[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my $local_date2 = timelocal(0, 0, 0, $formatted_date2[2], $formatted_date2[1], $formatted_date2[0]);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my $diffSeconds = $local_date2- $local_date1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;my $diffDays = $diffSeconds / (60 * 60 * 24);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;print "Day diff :: $diffDays\n";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[vishnu@ shell]# ./daydiff.pl 2010-08-02 2010-09-15&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Day diff :: 43&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[vishnu@ shell]#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is modified version of above shell script, if you want to find out time difference in seconds&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;d1=`date +%s -d "$1"`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;d2=`date +%s -d "$2"`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;((diff_sec=d2-d1))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;echo "Diff Seconds : $diff_sec"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[vishnu@ shell]#./date.sh "2011-07-19 22:44:34" "2011-07-20 02:04:14"&lt;br /&gt;Diff Seconds : 11980&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[vishnu@ shell]#&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2174255901831953914?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2174255901831953914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2174255901831953914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2174255901831953914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2174255901831953914'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/09/find-day-diff-between-two-days.html' title='Find the day diff between two days'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7566545865040095895</id><published>2010-09-08T10:56:00.004+05:30</published><updated>2010-09-08T11:02:06.292+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell scripting'/><title type='text'>Dump cpu and memory usage of a process</title><content type='html'>Here is the automated shell script which can dump the memory and cpu usage of a process. Helpful in cases when you want to monitor a process for a long time.&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;if [ "$#" -ne 1 ]; then&lt;br /&gt;      echo "Usage ... [$0  &lt;pid&gt;&amp;lt;pid&amp;gt;]"&lt;br /&gt;      exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;pid=$1&lt;br /&gt;&lt;br /&gt;# maxRunTime is used to control the script, so that it run only for specified number of seconds&lt;br /&gt;maxRunTime=72000&lt;br /&gt;# sleepTime is used to sleep for specified seconds, to take the memory dump again&lt;br /&gt;sleepTime=120&lt;br /&gt;&lt;br /&gt;logFile=${pid}_process.log&lt;br /&gt;commandFile=${pid}_command.log&lt;br /&gt;&lt;br /&gt;`ptree $pid &gt;&gt; $commandFile`;&lt;br /&gt;`pargs $pid &gt;&gt; $commandFile`;&lt;br /&gt;&lt;br /&gt;currentRunTime=0&lt;br /&gt;&lt;br /&gt;while [ $currentRunTime -lt $maxRunTime ]&lt;br /&gt;do&lt;br /&gt;        time=`date +%F::%X | tr -d '[\n]'`&lt;br /&gt;        line=`ps -eo pid,pcpu,vsz | grep $pid`;&lt;br /&gt;        echo "$time $line"  &gt;&gt; $logFile&lt;br /&gt;        sleep $sleepTime&lt;br /&gt;        currentRunTime=`expr $currentRunTime + $sleepTime`&lt;br /&gt;        echo "Execution Time : ${currentRunTime} seconds [max ${maxRunTime}]"&lt;br /&gt;done;&lt;br /&gt;&lt;br /&gt;&lt;/pid&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7566545865040095895?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7566545865040095895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7566545865040095895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7566545865040095895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7566545865040095895'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/09/dump-cpu-and-memory-usage-of-process.html' title='Dump cpu and memory usage of a process'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-1592718603401290417</id><published>2010-08-04T10:38:00.002+05:30</published><updated>2010-09-06T16:19:08.982+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash version'/><title type='text'>Flash Player debug version on New Google Chrome</title><content type='html'>If you install the latest version of Google Chrome (mine is 5.0.375.125), flash player debug version do not work in it; though the same debug player is working fine in Firefox3. Reason is that Chrome now comes pre-installed with the Flash player which get used by default, despite whatever other version you might have installed. It always use its original version. To change this, follow below steps:&lt;br /&gt;&lt;br /&gt;- Open Google Chrome&lt;br /&gt;- Type about:plugins in the url, - It will show the list of all the plugins&lt;br /&gt;- Click on the "Disable" link of "Shockwave Flash" plugin&lt;br /&gt;&lt;br /&gt;It will not disable flash, but just the built in version. Now the chrome will use the system-wide flash player version (probably the debug version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-1592718603401290417?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/1592718603401290417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=1592718603401290417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1592718603401290417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1592718603401290417'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/08/flash-player-debug-version-on-new.html' title='Flash Player debug version on New Google Chrome'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6780004854219385544</id><published>2010-02-24T08:13:00.003+05:30</published><updated>2011-06-10T14:28:13.152+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Unix: Get a file's name, extension and directory name</title><content type='html'>file="/usr/local/bin/test.sh"&lt;br /&gt;&lt;br /&gt;# get extension; everything after last '.'&lt;br /&gt;ext=${file##*.}&lt;br /&gt;# will return 'sh'&lt;br /&gt;&lt;br /&gt;# everything after last '/'&lt;br /&gt;basename=${file##*/}&lt;br /&gt;# will return 'test.sh', similar to 'basename'&lt;br /&gt;&lt;br /&gt;# everything before last '/'&lt;br /&gt;basename=${file%/*}&lt;br /&gt;# will return '/usr/local/bin', similar to 'dirname'&lt;br /&gt;&lt;br /&gt;# back one directory&lt;br /&gt;basename=${file%/*/*}&lt;br /&gt;# will return '/usr/local'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6780004854219385544?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6780004854219385544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6780004854219385544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6780004854219385544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6780004854219385544'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/02/unix-get-files-name-extension-and.html' title='Unix: Get a file&apos;s name, extension and directory name'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4825145478233518383</id><published>2010-01-16T11:06:00.001+05:30</published><updated>2010-01-16T11:06:50.615+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='system'/><title type='text'>Share files between local and remote computer using Remote Desktop Connection</title><content type='html'>One of the most common tasks you'll need to do when using an Remote Desktop Connection is transfer a file from your local machine to the remote machine that you're logged into. During a Remote Desktop session, you can gain easy access to your local disk drives on the remote computer so that you can transfer files between these two systems in the same way that you copy files from a network share.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   1. Click Start -&gt;All Programs-&gt;Accessories-&gt;Remote Desktop Connection.&lt;br /&gt;   2. Click Options, and then click the Local Resources tab.&lt;br /&gt;   3. Click Disk Drives and then click Connect.&lt;br /&gt;   4. When you get logged into the remote box, open My Computer and you'll see that all the local drives will show up as mapped disk drives.&lt;br /&gt;   5. Now you can transfer your file as you do in local system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4825145478233518383?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4825145478233518383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4825145478233518383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4825145478233518383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4825145478233518383'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/01/share-files-between-local-and-remote.html' title='Share files between local and remote computer using Remote Desktop Connection'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-345023034270119749</id><published>2010-01-14T23:09:00.002+05:30</published><updated>2010-01-14T23:11:31.363+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Remove a file whose name begins with "-"</title><content type='html'>Due to a bug in our product the log file was being created with the name "-server.log" (instead of "host-server.log"). Once the issue was fixed, i was trying to remove the file. Tried single quote/double quote/escape, but nothing worked. Finally after googling, found solution for it. Since the file name begins with the "-", all the unix commands treats the file name itself as a parameter to the command. To make it work put -- or ./ before the file name.&lt;br /&gt;&lt;br /&gt;example:&lt;br /&gt;rm -- -server.log&lt;br /&gt;rm ./-server.log&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-345023034270119749?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/345023034270119749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=345023034270119749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/345023034270119749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/345023034270119749'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/01/remove-file-whose-name-begins-with.html' title='Remove a file whose name begins with &quot;-&quot;'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6143996355034656376</id><published>2010-01-07T21:06:00.003+05:30</published><updated>2010-01-07T21:47:45.855+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel'/><category scheme='http://www.blogger.com/atom/ns#' term='Paragliding'/><title type='text'>Paragliding in Manali</title><content type='html'>Last Christmas I went on vacation in Manali (Himachal) with my friends. One of the adventure we planned for the trip was Paragliding and we all were excited about it. By googling, we found out that Paragliding could be done in Solang Valley of Manali.&lt;br /&gt;&lt;br /&gt;After reaching Manali, we enquired about the paragliding packages in Solang Valley. Most of the tour agents offered us 3 packages Short, Fly, Mediaum Fly and High fly. While roaming into Manali market, we noticed a tour agency which was offering paragliding in comaprtive cheaper rates. We talked to sales guy of that agency and he told us that they do offer pragliding in Naggar Village (which is 20 kms away from Manali). After having talk with him, we found it to be excited (though we were not sure, how would it be as we hven't heard of it before but we thought of giving it a try). Finally we gave him advance payment. He asked us to reach a particular destination (Heritage Hotel) which was 16 km from the Manali, from where their guys were supposed to pick us.&lt;br /&gt;&lt;br /&gt;After half an hour we reached the Heritage hotel where one guy was waiting for us. We parked our car there and we sit in the Jeep which that guy was driving. REAL ADVENTURE starts from here.&lt;br /&gt;&lt;br /&gt;Next 4 km was a mountain road with blind curves and had a road space only for a single Car/jeep. That guy started the Jeep and he was driving on that ride like he is running a ferrari on that road . We asked him that Jeep has Brake, you can apply them, he answered that if he would apply break then how would the jeep drive -:). Moreover, after half of our drive, we knew that the jeep do not have power steering. The experince in this 4 km drive was hilarious and full of adventure :). Finally we reached a point from where we have to trek to a top of mountain from where our glides were suppose to take off. Ohhh My GOD, that was again a surprise for us... we had to treck for around 2 kms. to reach at peak of the hill. No problem as we all like the trekking .. we started treking and reached on top in around 25 mins.&lt;br /&gt;&lt;br /&gt;We were around 2500ft above from the ground and the view was fantastic from there. We had a rest there for some time as we were tired of the trekking. After some time the guys were ready with the glide and I was the first one to start. The pilot prepared me for the drive (helmet and glide dress which was tied with the glides), then Finally it was time to take off. We (me and my pilot) have to run for few distance and then jump from the hill.&lt;br /&gt;&lt;br /&gt;"I ran slowly against the wind and suddenly, i felt an elevating force. In an instant, my feet were no longer touching the ground and i went into gentle decent.... The act of flying gives one sensations that are extraordinary and absolutely indescribable"&lt;br /&gt;&lt;br /&gt;I was roaming in air around 2500 ft above from the ground. The surrounding hills and ground looks amazing from the top. After around 10-12 mins we landed in fields and this whole experience was amazing.&lt;br /&gt;&lt;br /&gt;After a day, we went to Solang Valley for sight seeing. We saw the guys doing paragliding there. We didn't like it as the take off height was so short and the duration was only for couple of minutes. For us it was like swimming in a pond while we already swim in the sea :-)&lt;br /&gt;&lt;br /&gt;Guys, if you want to do real paragliding, then you should go for this one.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6jm1IXePQ5k/S0YIDovGIrI/AAAAAAAAD6s/gOnFpwmJ894/s1600-h/DSCN2835.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_6jm1IXePQ5k/S0YIDovGIrI/AAAAAAAAD6s/gOnFpwmJ894/s320/DSCN2835.jpg" alt="" id="BLOGGER_PHOTO_ID_5424031659781923506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6jm1IXePQ5k/S0YI6qSNaZI/AAAAAAAAD60/6pcWc8viaLw/s1600-h/DSCN2837.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_6jm1IXePQ5k/S0YI6qSNaZI/AAAAAAAAD60/6pcWc8viaLw/s320/DSCN2837.jpg" alt="" id="BLOGGER_PHOTO_ID_5424032605090441618" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6143996355034656376?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6143996355034656376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6143996355034656376' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6143996355034656376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6143996355034656376'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2010/01/paragliding-in-manali.html' title='Paragliding in Manali'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6jm1IXePQ5k/S0YIDovGIrI/AAAAAAAAD6s/gOnFpwmJ894/s72-c/DSCN2835.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8971585075875768774</id><published>2009-10-24T22:39:00.002+05:30</published><updated>2009-10-24T22:43:44.309+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Using variable with sed inside a shell script</title><content type='html'>&lt;span style="font-family:verdana;"&gt;For using sed inside a shell script, The variable should be in "double quotes"  and the command in 'single quotes'. Following is the example&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;usage () {&lt;br /&gt;        echo "$0 -s &amp;lt; name&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; -r &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;replace name&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; -f &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;file name&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;"&lt;br /&gt;        exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while getopts s:r:f: option&lt;br /&gt;       do&lt;br /&gt;               case "$option" in&lt;br /&gt;                       s) search="$OPTARG";;&lt;br /&gt;                       r) replace="$OPTARG";;&lt;br /&gt;                       f) filename="$OPTARG";;&lt;br /&gt;                       \?) usage&lt;br /&gt;               esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;sed -i 's/'"$search"'/'"$replace"'/g' "$filename"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8971585075875768774?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8971585075875768774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8971585075875768774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8971585075875768774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8971585075875768774'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/10/using-variable-with-sed-inside-shell.html' title='Using variable with sed inside a shell script'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4836229547867141079</id><published>2009-10-03T16:23:00.002+05:30</published><updated>2009-10-03T16:28:35.222+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='httpunit'/><title type='text'>https redirection handling in httpunit</title><content type='html'>&lt;span style="font-family: verdana;"&gt;In httpunit when you are requesting a http page and if the page internally redirects to a https page, httpunit throws following error and response is not received:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To resolve this error, add following code in your httpunit program.&lt;br /&gt;&lt;br /&gt;import javax.net.ssl.HostnameVerifier;&lt;br /&gt;import javax.net.ssl.HttpsURLConnection;&lt;br /&gt;import javax.net.ssl.SSLContext;&lt;br /&gt;import javax.net.ssl.SSLSession;&lt;br /&gt;import javax.net.ssl.TrustManager;&lt;br /&gt;import javax.net.ssl.X509TrustManager;&lt;br /&gt;import java.security.cert.*;&lt;br /&gt;&lt;br /&gt;try{&lt;br /&gt;                                                SSLContext context = SSLContext.getInstance("SSLv3");&lt;br /&gt;                                                TrustManager[] trustManagerArray = { new NullX509TrustManager() };&lt;br /&gt;                                                context.init(null, trustManagerArray, null);&lt;br /&gt;                                                HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());&lt;br /&gt;                                                HttpsURLConnection.setDefaultHostnameVerifier(new NullHostnameVerifier());&lt;br /&gt;                                }catch(Exception e) {&lt;br /&gt;                                                e.printStackTrace();&lt;br /&gt;                                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class NullX509TrustManager implements X509TrustManager {&lt;br /&gt;/* Implements all methods, keeping them empty or returning null */&lt;br /&gt;                public X509Certificate[] getAcceptedIssuers() {&lt;br /&gt;                                return null;&lt;br /&gt;                }&lt;br /&gt;               &lt;br /&gt;                public void checkClientTrusted(X509Certificate[] chain, String authType) {&lt;br /&gt;               &lt;br /&gt;                }&lt;br /&gt;               &lt;br /&gt;                public void checkServerTrusted(X509Certificate[] chain, String authType) {&lt;br /&gt;               &lt;br /&gt;                }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class NullHostnameVerifier implements HostnameVerifier {&lt;br /&gt;    public boolean verify(String hostname, SSLSession session) {&lt;br /&gt;        return true;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4836229547867141079?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4836229547867141079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4836229547867141079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4836229547867141079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4836229547867141079'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/10/https-redirection-handling-in-httpunit.html' title='https redirection handling in httpunit'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4171846239798049091</id><published>2009-10-03T15:57:00.006+05:30</published><updated>2009-10-03T16:18:04.430+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Getting thread dump for java application</title><content type='html'>&lt;span style="font-family: verdana;font-family:arial;" &gt;When an java application server freezes or becomes non-responsive, it is recommended to generate a thread dump for the application. A thread dump is a user-friendly snapshot of the threads and monitors in a Java Virtual Machine (JVM). A thread dump can range from fifty lines to thousands of lines of diagnostics depending on how complex your application is.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;On UNIX platforms you can send a signal to a program by using the kill command. This is the quit signal, which is handled by the JVM. On Solaris you can use the command kill -QUIT process_id, where process_id is the process id of your Java program.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;run the command &lt;/span&gt;&lt;span style="font-weight: bold; font-family: verdana;font-family:arial;" &gt;kill -QUIT &lt;pid&gt;&lt;/pid&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;pid&amp;gt;&lt;/span&gt; or &lt;/span&gt;&lt;span style="font-weight: bold; font-family: verdana;font-family:arial;" &gt;kill -3 &amp;lt;pid&amp;gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt; on shell which will cause the thread dump to be displayed your application console. Alternatively you can enter the key sequence &lt;span style="font-weight: bold;"&gt;&amp;lt;CTRL&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-family: verdana;font-family:arial;" &gt;&lt;ctrl&gt;\&lt;/ctrl&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt; in the window where the Java program was started. This is why it's critical to redirect standard output &amp;amp; standard error to a log file so it is captured when you need a thread dump.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;On Windows platform, enter the key sequence &lt;span style="font-weight: bold;"&gt;&amp;lt;CTRL&amp;gt; &amp;lt;break&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-family: verdana;font-family:arial;" &gt;&lt;ctrl&gt;&lt;break&gt;&lt;/break&gt;&lt;/ctrl&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt; for the thread dump of your application.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-family: verdana;font-family:arial;" &gt;Thread States&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt; :: The key used for the thread states in Thread dump is:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;R     ==&gt; Running or runnable thread&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;S     ==&gt; Suspended thread&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;CW     ==&gt;Thread waiting on a condition variable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;MW     ==&gt; Thread waiting on a monitor lock&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:arial;" &gt;MS     ==&gt; Thread suspended waiting on a monitor lock&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4171846239798049091?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4171846239798049091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4171846239798049091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4171846239798049091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4171846239798049091'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/10/getting-thread-dump-for-java.html' title='Getting thread dump for java application'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5978550365364414774</id><published>2009-07-20T20:16:00.002+05:30</published><updated>2009-07-20T20:25:03.612+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Run sql query from command line</title><content type='html'>We all know to run sql scripts (.sql files) from command prompt but sometimes we need to run a sql query from command prompt. It is sometimes necessary when we have to fetch a query result from a script (shell/perl) and process it. By following way, we can run a sql query from command prompt.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;echo "select * from dual;" | sqlplus -S user/pwd\@sid&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-5978550365364414774?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5978550365364414774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5978550365364414774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5978550365364414774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5978550365364414774'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/07/run-sql-query-from-command-line.html' title='Run sql query from command line'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-9013426589140877471</id><published>2009-07-20T20:02:00.002+05:30</published><updated>2009-07-20T20:06:47.086+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Send Email from perl script</title><content type='html'>Sometimes we do not have enough privileges to install perl modules on the host system and we have to work with ideal installation of perl. In that case, simpler way to send emails using perl is to use sendmail command. Following function can be used to send emails in perl.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;sub sendEmail&lt;br /&gt;{&lt;br /&gt;    ($from, $to, $subject, $message) = @_;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    my $sendmail = '/usr/lib/sendmail';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    open(MAIL, "|$sendmail -oi -t");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    print MAIL "From: $from\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    print MAIL "To: $to\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    print MAIL "Subject: $subject\n\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    print MAIL "$message\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    close(MAIL);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;} &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;above function can be used as below:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;sendEmail("vishnu\@test.com", "vishnu\@mytest.com", "Test sendEmail.", "Testing sendEemail function."); &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-9013426589140877471?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/9013426589140877471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=9013426589140877471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/9013426589140877471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/9013426589140877471'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/07/send-email-from-perl-script.html' title='Send Email from perl script'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6376115009125196025</id><published>2009-06-25T22:32:00.001+05:30</published><updated>2009-06-25T22:34:24.529+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='digital camera'/><title type='text'>Recover Photos from SD card</title><content type='html'>Recently my family went for a annual trip and accidentally removed the photos from my digital camera. They asked me if somehow we could recover those photos. As obvious, i did some googling and found out that there are many software available which can recover data from your SD card (most of them are paid and i was looking for any free alternative :) ). Finally i got this one PhotoRec (http://www.cgsecurity.org/wiki/PhotoRec). It do not require any installation, just download the software and start using it. (obviously you should have SD card reader in your system). Thanks to it, I could recover all photos.&lt;br /&gt;&lt;br /&gt;While googling, i found other free software as well but didn't give them try, one of them was Mjm (http://www.mjm.co.uk/freephotorecoverysoftware.html)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6376115009125196025?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6376115009125196025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6376115009125196025' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6376115009125196025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6376115009125196025'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/06/recover-photos-from-sd-card.html' title='Recover Photos from SD card'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7654287982040444207</id><published>2009-05-31T21:07:00.003+05:30</published><updated>2009-05-31T21:12:14.326+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='HR'/><title type='text'>Building brand value at workplace</title><content type='html'>&lt;span style="color: rgb(0, 153, 0);"&gt;Recently read an article from Delhi Times Ascent. Very inspiring and true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;There are often times when an employee may wonder, how do i stand out in a team? And experts say that by simply completing tasks assigned on time or working hard for longer hours, may not necessarily be the answer. They say it takes more than just one's work and job profile to be outstanding. This is where the role of crafting your own "USP"(Unique Selling Proposition) comes into the picture.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Crafting your USP&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;According to experts, the first thing to do while brand-building is to identify the qualities and characteristics that give you an edge over the rest. Understand your strengths/abilities and use it towards your advantage at the workplace. Maintaining good relations with people whom you deal with will also add to your brand value. Self-branding is no easy task. It comprises of identifying your best personality traits and displaying it from time to time through enhanced performance and higher productivity. This will not only get you noticed but will also give you an edge over your colleagues.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Build your brand&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Be a great team-mate and a supportive colleague.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Be passionate about your job and make others know that you are excellent in your particular task/job.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Finish the tasks assigned to you on time with exceptional quality.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Be proactive and discuss your views on improving things with your senior officials.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Bring in innovations into your project/tasks to make it more efficient.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7654287982040444207?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7654287982040444207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7654287982040444207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7654287982040444207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7654287982040444207'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/05/building-brand-value-at-workplace.html' title='Building brand value at workplace'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8163225782430160962</id><published>2009-05-17T23:44:00.002+05:30</published><updated>2009-05-17T23:54:49.170+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Comparing Excel Files</title><content type='html'>While testing any reporting application, one comes under situations when he/she have to compare two excel files. If the excel sheets are small, its easier to compare them manually but as long the sheets becomes large, you need some automated way to compare those.&lt;br /&gt;Earlier, i used to export those files as csv and then comparing them using perl scripts but it was an overhead to exporting and then comparing so i thought of doing something within the excel sheets itself. After googling, i found that it can be done by using Excel Macros. I did try that, but  found that you need to open those excel files in Microsoft Excel and then apply the macro, which again i didn't like as it require to open MS Excel. I was interested to have a program which i can run from command prompt. Finally i got my solution. I converted the above macro as a standalone vb script program and used it from command prompt.&lt;br /&gt;The great benefit with this script is that i can take control of displaying the diff results (currently, i am highlighting the rows in the excel sheet itself.)&lt;br /&gt;&lt;br /&gt;to run this program, open command prompt and run following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;C:\&gt; cscript /nologo ExcelCompare.vbs &amp;lt;ExcelFile1&amp;gt; &amp;lt;ExcelFile2&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Following is the program:&lt;br /&gt;&lt;br /&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_875729215051749" name="doc_875729215051749" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;        &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=15568507&amp;amp;access_key=key-1zyfsdv5yrg8h9kcc2fa&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt;         &lt;param name="quality" value="high"&gt;         &lt;param name="play" value="true"&gt;        &lt;param name="loop" value="true"&gt;         &lt;param name="scale" value="showall"&gt;        &lt;param name="wmode" value="opaque"&gt;         &lt;param name="devicefont" value="false"&gt;        &lt;param name="bgcolor" value="#ffffff"&gt;         &lt;param name="menu" value="true"&gt;        &lt;param name="allowFullScreen" value="true"&gt;         &lt;param name="allowScriptAccess" value="always"&gt;         &lt;param name="salign" value=""&gt;                    &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=15568507&amp;amp;access_key=key-1zyfsdv5yrg8h9kcc2fa&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_875729215051749_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;            &lt;/object&gt;    &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/explore/Research/Internet-Technology" style="text-decoration: underline;"&gt;Internet &amp;amp; Technolog&lt;/a&gt;              &lt;a href="http://www.scribd.com/explore/Research/" style="text-decoration: underline;"&gt;Research&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/excel" style="text-decoration: underline;"&gt;excel&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/vbscript" style="text-decoration: underline;"&gt;vbscript&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/2927253854689338790-8163225782430160962?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8163225782430160962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8163225782430160962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8163225782430160962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8163225782430160962'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/05/comparing-excel-files.html' title='Comparing Excel Files'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5131044889211454795</id><published>2009-05-17T12:04:00.005+05:30</published><updated>2009-05-17T23:43:29.829+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><title type='text'>Run a Visual Basic Script Program from a command prompt</title><content type='html'>A Visual Basic script program can be run from a DOS prompt. &lt;span style="font-weight: bold;"&gt;cscript&lt;/span&gt; command can be used for this purpose.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;C:\&gt;cscript &amp;lt;pathToVBScriptFile&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;by default cscript command displays the Microsoft Header but this can be avoided by providing /nologo argument.&lt;br /&gt;&lt;br /&gt;Microsoft (R) Windows Script Host Version 5.6&lt;br /&gt;Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.&lt;br /&gt;&lt;br /&gt;C:\&gt;cscript /nologo &amp;lt;pathToVBScriptFile&amp;gt;&lt;br /&gt;&lt;br /&gt;User can also take control to take input  and display the output on the console. For that user had to use following options in the VB Script.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;dim input&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;dim output&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;dim name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;set output = wscript.stdout&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;set input = wscript.stdin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;output.write "Enter Your Name : "&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;name = input.readline&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: rgb(0, 153, 0);" class="CodeSample"&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;output.writeline "Your Name is " &amp;amp; name&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="color: rgb(0, 153, 0);" class="CodeSample"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-5131044889211454795?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5131044889211454795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5131044889211454795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5131044889211454795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5131044889211454795'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/05/run-visual-basic-script-program-from.html' title='Run a Visual Basic Script Program from a command prompt'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4054058598795926327</id><published>2009-04-27T23:09:00.001+05:30</published><updated>2009-05-07T16:56:44.330+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Compare two files line by line</title><content type='html'>&lt;div&gt;If your are looking for comparing two files(may be any CSV file) and wanted to find out which liens are common or unique to files. See below script:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_162811899191717" name="doc_162811899191717" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" class="Apple-tab-span" style="white-space: pre;" align="middle"&gt;&lt;/object&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_145526004680536" name="doc_145526004680536" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;        &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=14686090&amp;amp;access_key=key-16y2pyehsh940c5elslp&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt;         &lt;param name="quality" value="high"&gt;         &lt;param name="play" value="true"&gt;        &lt;param name="loop" value="true"&gt;         &lt;param name="scale" value="showall"&gt;        &lt;param name="wmode" value="opaque"&gt;         &lt;param name="devicefont" value="false"&gt;        &lt;param name="bgcolor" value="#ffffff"&gt;         &lt;param name="menu" value="true"&gt;        &lt;param name="allowFullScreen" value="true"&gt;         &lt;param name="allowScriptAccess" value="always"&gt;         &lt;param name="salign" value=""&gt;                    &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=14686090&amp;amp;access_key=key-16y2pyehsh940c5elslp&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_145526004680536_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;            &lt;/object&gt;    &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/explore/Research/Internet-Technology" style="text-decoration: underline;"&gt;Internet &amp;amp; Technolog&lt;/a&gt;              &lt;a href="http://www.scribd.com/explore/Research/" style="text-decoration: underline;"&gt;Research&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/perl" style="text-decoration: underline;"&gt;perl&lt;/a&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/2927253854689338790-4054058598795926327?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4054058598795926327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4054058598795926327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4054058598795926327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4054058598795926327'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/04/compare-two-files-line-by-line.html' title='Compare two files line by line'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6310541937061553794</id><published>2009-04-19T19:23:00.003+05:30</published><updated>2009-04-19T19:46:56.549+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='qtp'/><title type='text'>Flex automation testing with QTP</title><content type='html'>QTP can be used to test the Flex application. You need to perform following steps to setup recording a flex application with qtp.&lt;br /&gt;&lt;br /&gt;&lt;ol style="color: rgb(0, 153, 0);"&gt;&lt;li&gt;Install QTP 9.2&lt;/li&gt;&lt;li&gt;Install Internet Explorer&lt;/li&gt;&lt;li&gt;Install flash player debug version for IE&lt;/li&gt;&lt;li&gt;Install Flex Builder 3&lt;/li&gt;&lt;li&gt;Install QTP plugin of flex from FLEX_BUILDER3/Installers/&lt;span style="color: rgb(204, 0, 0);"&gt;QTP_Plugin_Installer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Compile your flex application with automation libraries. It can be done in two ways; either use&lt;span style="color: rgb(204, 0, 0);"&gt; -include-libraries&lt;/span&gt; parameter in Flex Builder3 or use &lt;span style="color: rgb(204, 0, 0);"&gt;mxmlc&lt;/span&gt; ant task. &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;This step is must otherwise QTP will not recognize the flex application&lt;/span&gt;&lt;/li&gt;&lt;li&gt;To record a test in QTP,  you must compile the application’s SWF file and generate the HTML wrapper files. The main wrapper file defines the application as an object on the page and embeds it so that Flash Player is invoked when the page is requested. &lt;span style="color: rgb(204, 0, 0);"&gt;You cannot request the application’s SWF file directly&lt;/span&gt;. You can write the HTML wrapper yourself, or generate it with the compiler.&lt;/li&gt;&lt;li&gt;Start QTP&lt;/li&gt;&lt;li&gt;QTP wil show the all plugins on startup, select the flex plugin and continue&lt;/li&gt;&lt;li&gt;Start recording for your flex application.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6310541937061553794?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6310541937061553794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6310541937061553794' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6310541937061553794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6310541937061553794'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/04/flex-automation-testing-with-qtp.html' title='Flex automation testing with QTP'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-3819283764185680088</id><published>2009-04-19T18:02:00.013+05:30</published><updated>2009-05-24T09:43:39.654+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><title type='text'>Build FLEX application with automation libraries using Flex3 SDK and ANT</title><content type='html'>To test Flex Application with any automated testing tool (like QTP), automation libraries should be included in the application SWF file to make the application testable. Flex Automation libraries are not part of the Flex SDK, these comes with Flex Builder 3.  If you are using Flex SDK and ANT as build tool, you need to perform following steps to compile your application.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;Copy flex automation libraries (automation.swc, automation_agent.swc, automation_dmv.swc, automation_flashflexkit.swc) from Flex Build 3 installation (&lt;span style="color: rgb(204, 0, 0);"&gt;/frameworks/libs&lt;/span&gt;)  to your local directory (let say C:\flex-automation).&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;Copy automation tool library (&lt;span style="color: rgb(204, 0, 0);"&gt;qtp.swc&lt;/span&gt; in case if you are using QTP as testing tool) in C:\flex-automation&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;Copy flex agents (automation_agent_rb.swc, automation_rb.swc) in C:/flex-automation/locale/en_US. Flex agent facilitates communication between a flex application and an automation tool.&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;Copy FLEX_HOME/frameworks/&lt;span style="color: rgb(204, 0, 0);"&gt;flex-config.xml&lt;/span&gt; to &lt;span style="color: rgb(204, 0, 0);"&gt;flex-config-auto.xml&lt;/span&gt; and keep it in same directory (FLEX_HOME/frameworks)&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;Add following entries in include-libraries section of &lt;span style="color: rgb(204, 0, 0);"&gt;flex-config-auto.xml&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;&amp;lt;include-libraries&amp;gt;&lt;br /&gt;&amp;lt;library&gt;C:/flex-automation/automation.swc&amp;lt;/library&amp;gt;&lt;br /&gt;&amp;lt;library&gt;C:/flex-automation/automation_agent.swc&amp;lt;/library&amp;gt;&lt;br /&gt;&amp;lt;library&gt;C:/flex-automation/automation_dmv.swc&amp;lt;/library&amp;gt;&lt;br /&gt;&amp;lt;library&gt;C:/flex-automation/automation_flashflexkit.swc&amp;lt;/library&amp;gt;&lt;br /&gt;&amp;lt;library&gt;C:/flex-automation/qtp.swc&amp;lt;/library&amp;gt;&lt;br /&gt;&amp;lt;/include-libraries&amp;gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;In mxmlc task of ant build file specify &lt;span style="color: rgb(204, 0, 0);"&gt;load-config path&lt;/span&gt; as&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;&amp;lt;load-config filename="FLEX_HOME/frameworks/flex-config-auto.xml"/&amp;gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;Add &lt;span style="color: rgb(204, 0, 0);"&gt;compiler-library-path&lt;/span&gt; in mxmlc task&lt;/li&gt;&lt;li style="color: rgb(0, 153, 0);"&gt;&amp;lt;compiler.library-path dir="C:/flex-automation" append="true"&amp;gt;&lt;br /&gt;&amp;lt;include name="locale/en_US" /&amp;gt;&lt;br /&gt;&amp;lt;/compiler.library-path&amp;gt;&lt;/li&gt;&lt;/ol&gt;so your mxmlc task would look like this:&lt;br /&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;mxmlc file="${APP_ROOT}/Main.mxml" output="${build.dir}/main.swf"&amp;gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            &amp;lt;load-config filename="${FLEX_HOME}/frameworks/flex-config-auto.xml"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            &amp;lt;source-path path-element="${FLEX_HOME}/frameworks"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            &amp;lt;compiler.library-path dir="${FLEX_HOME}/frameworks" append="true"&amp;gt;                   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;include name="libs" /&amp;gt;                    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                   &amp;lt;include name="locale/en_US" /&amp;gt;                &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;/compiler.library-path&amp;gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;compiler.library-path dir="${FLEX_AUTOMATION_HOME}" append="true"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;include name="locale/en_US" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;/compiler.library-path&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        &amp;lt;/mxmlc&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;mxmlc ANT task comes with flexbuilder3 and flex sdk. In flex builder, the location of task is : &lt;span style="color: rgb(0, 153, 0);"&gt;_FLEX_BUILDER_INSTALL_LOCATION_\sdks\3.0.0\ant\flexTasks.jar&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="color: rgb(51, 51, 51);" id=":n" class="ii gt"&gt;&lt;br /&gt;To use this ant task in ant build file use ant taskdef task as below:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt; taskdef resource="flexTasks.tasks" classpath="_PATH_TO_TASK_/&lt;/span&gt;&lt;wbr style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;flexTasks.jar"/&amp;gt;&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/2927253854689338790-3819283764185680088?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/3819283764185680088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=3819283764185680088' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3819283764185680088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3819283764185680088'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/04/build-flex-application-with-automation.html' title='Build FLEX application with automation libraries using Flex3 SDK and ANT'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-3016449720256569898</id><published>2009-04-15T23:53:00.008+05:30</published><updated>2009-04-16T09:51:05.792+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><category scheme='http://www.blogger.com/atom/ns#' term='jmeter'/><title type='text'>JMeter: run tests using ANT</title><content type='html'>Do you run your test cases in jmeter GUI, i really never like to run my tests in it. I always like to have command line options or preferably ANT. Following are the steps to run any JMeter test cases using ANT:&lt;br /&gt;&lt;br /&gt;1. Install ANT and JMeter&lt;br /&gt;2. Copy &lt;span style="color: rgb(0, 153, 0);"&gt;ant-jmeter.jar&lt;/span&gt; ant ANT_HOME/lib directory.&lt;br /&gt;3. Create a common.xml file (as mentioned below) which can be referred by any Jmeter Test plan.&lt;br /&gt;4. Create a build.xml for every test plan, which refers to common.xml&lt;br /&gt;5. Use &lt;span style="color: rgb(0, 153, 0);"&gt;xslt&lt;/span&gt; task to create the html report of the test cases.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;common.xml&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6jm1IXePQ5k/SeaxPLn-A_I/AAAAAAAAC8g/UUVa3xmRATY/s1600-h/common.xml.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 286px;" src="http://3.bp.blogspot.com/_6jm1IXePQ5k/SeaxPLn-A_I/AAAAAAAAC8g/UUVa3xmRATY/s400/common.xml.png" alt="" id="BLOGGER_PHOTO_ID_5325138483788776434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;project name="jmeter-test-common" default="run" basedir="."&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;      &amp;lt;property name="jmeter.dir" value="C:/Jmeter"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;      &amp;lt;taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;      &amp;lt;target name="run-test"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;echo message="${jmeter.dir}"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;jmeter jmeterhome="${jmeter.dir}" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                     testplan="${test.dir}/${jmeter.file}.jmx" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                     resultlog="${test.dir}/${jmeter.file}.jtl"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;property name="&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;jmeter.save.saveservice.output_format" value="xml"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;property name="jmeter.save.saveservice.assertion_results" value="all"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;property name="request.threads" value="${request.threads}"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;property name="request.loop" value="${request.loop}"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                &amp;lt;jvmarg value="-Duser.dir=${test.dir}"/&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            &amp;lt;/jmeter&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;echo message="Generating Report ..."/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;xslt in="${test.dir}/${jmeter.file}.jtl" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                   out="${test.dir}/${jmeter.file}_summary.html" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                   style="${jmeter.dir}/extras/jmeter-results-report_21.xsl"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;              &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;           &amp;lt;xslt in="${test.dir}/${jmeter.file}.jtl" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                   out="${test.dir}/${jmeter.file}_detailed.html" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;                   style="${jmeter.dir}/extras/jmeter-results-detail-report_21.xsl"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;      &amp;lt;/target&amp;gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;/project&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;project name="jmeter-test-common" default="run" basedir="."&gt;&lt;/project&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;property name="jmeter.dir" value="C:/jmeter"&gt;&lt;/property&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"&gt;&lt;/taskdef&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;target name="run-test"&gt;&lt;/target&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;echo message="${jmeter.dir}"&gt;&lt;/echo&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;jmeter jmeterhome="${jmeter.dir}" testplan="${test.dir}/${jmeter.file}.jmx" resultlog="${test.dir}/${jmeter.file}.jtl"&gt;&lt;/jmeter&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;property name="jmeter.save.saveservice.output_format" value="xml"&gt;&lt;/property&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;property name="jmeter.save.saveservice.assertion_results" value="all"&gt;&lt;/property&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;property name="request.threads" value="${request.threads}"&gt;&lt;/property&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;property name="request.loop" value="${request.loop}"&gt;&lt;/property&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;jvmarg value="-Duser.dir=${test.dir}"&gt;&lt;/jvmarg&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;echo message="Generating Report ..."&gt;&lt;/echo&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;xslt in="${test.dir}/${jmeter.file}.jtl" out="${test.dir}/${jmeter.file}_summary.html" style=""&gt;&lt;/xslt&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;xslt in="${test.dir}/${jmeter.file}.jtl" out="${test.dir}/${jmeter.file}_detailed.html" style=""&gt;&lt;/xslt&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;build.xml&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6jm1IXePQ5k/SeaxZrGGnjI/AAAAAAAAC8o/Bnrfdmm7B9Y/s1600-h/build.xml.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 221px;" src="http://1.bp.blogspot.com/_6jm1IXePQ5k/SeaxZrGGnjI/AAAAAAAAC8o/Bnrfdmm7B9Y/s400/build.xml.png" alt="" id="BLOGGER_PHOTO_ID_5325138664035360306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;project name="my-test" default="run" basedir="."&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;import file="${ant.file.my-test}/common.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;target name="run"&amp;gt;&lt;br /&gt;   &amp;lt;antcall target="run-test"&amp;gt;&lt;br /&gt;       &amp;lt;param name="jmeter.file" value="LOGIN"/&amp;gt;&lt;br /&gt;       &amp;lt;!-- here LOGIN is the jmx file name --&amp;gt;&lt;br /&gt;       &amp;lt;param name="test.dir" value="${ant.file}/.."/&amp;gt;&lt;br /&gt;       &amp;lt;param name="request.threads" value="5"/&amp;gt;&lt;br /&gt;       &amp;lt;param name="request.loop" value="1"/&amp;gt;&lt;br /&gt;   &amp;lt;/antcall&amp;gt;  &lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-3016449720256569898?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/3016449720256569898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=3016449720256569898' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3016449720256569898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3016449720256569898'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/04/jmeter-run-tests-using-ant.html' title='JMeter: run tests using ANT'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6jm1IXePQ5k/SeaxPLn-A_I/AAAAAAAAC8g/UUVa3xmRATY/s72-c/common.xml.png' height='72' width='72'/><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2479634908895082309</id><published>2009-04-15T23:24:00.004+05:30</published><updated>2009-04-15T23:52:52.977+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='jmeter'/><title type='text'>JMeter: Using Variables</title><content type='html'>In JMeter value of &lt;span style="font-weight: bold;"&gt;user.dir&lt;/span&gt; varaible is set to jmeter/bin directory. Jmeter saves and loads the test script from user.dir, so by default it is jmeter/bin. But what if your test scripts are saved in directory other than jmeter/bin which is the case most of the time.&lt;br /&gt;We can override the value of this varaible in &lt;span style="font-weight: bold;"&gt;jmeter/bin/jmeter.properties &lt;/span&gt;as mentioned below:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;user.dir=C:/perftest/mytest&lt;/span&gt;&lt;br /&gt;Now the jmeter wil look for test script in C:/perftest/mytest instead of its default location. We can also specify this varaibale as jvm arg; if we are running jmeter from command prompt. (&lt;span style="color: rgb(0, 153, 0);"&gt;-Duser.dir=C:/perftest/mytest)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(204, 0, 0);"&gt;Accessing user.dir value in Jmeter test plan&lt;/span&gt;&lt;br /&gt;In Test Plan -&gt; User Defined Variables add a new variable&lt;br /&gt;Name: &lt;span style="color: rgb(0, 153, 0);"&gt;userdir&lt;/span&gt;&lt;br /&gt;Value: &lt;span style="color: rgb(0, 153, 0);"&gt;${__property(user.dir)}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now this userdir varaible can be used in jmeter test plan as location of the test script (&lt;span style="color: rgb(0, 153, 0);"&gt;${userdir}&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(204, 0, 0);"&gt;Reading values from a file&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;${__CSVRead(${userdir}/env.txt,0)}&lt;/span&gt; -&gt; It will read the first column of the first line from the env.txt file&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(204, 0, 0);"&gt;__P&lt;br /&gt;&lt;/span&gt;This is a property function which is  intended for use with properties defined on the command line.  Unlike the __property function, there is no option to save the value in a variable,  and if no default value is supplied, it is assumed to be 1.&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;${__P(request.threads)}&lt;/span&gt; -&gt; return the value of request.threads&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;${__P(request.loop)}&lt;/span&gt; -&gt; return the value of request.loops&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;${__javaScript(${__P(request.threads)}*2)}&lt;/span&gt; -&gt; multiply the value of request.threads by 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2479634908895082309?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2479634908895082309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2479634908895082309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2479634908895082309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2479634908895082309'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/04/jmeter-using-varaibles.html' title='JMeter: Using Variables'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7392734283644395675</id><published>2009-04-15T23:00:00.005+05:30</published><updated>2010-05-18T11:39:37.467+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='jmeter'/><title type='text'>Use JMeter to load test FLEX Applications</title><content type='html'>Flex applications use a binary protocol called AMF (Action Message Format) that they use to remotely communicate with the server. The easiest way to use JMeter with a Flex application is to use HTTP proxy server.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Create a New Test Plan&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Right Click on Test Plan, Add -&gt; Thread Group&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Right Click on Thread Group, Add -&gt; Config Element -&gt; HTTP Request Defaults&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Select 'HTTP Request Defaults'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;     - Specify Server Name or IP, for eg. www.mysite.com&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            - Specify Port number, eg. 8888&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            - Specify protocol, i.e. http&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;         - Specify Path, foe eg. /main/index.html&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Select Work Bench&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Right Click on Work bench, Add -&gt; Non-Test Elements -&gt; HTTP Proxy Server&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Select 'HTTP Proxy Server'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            - Specify port number for proxy (default is 8080)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            - Set Target Controller to 'Test Plan -&gt; Thread Group'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;         - Set inlude URL patterns , .* to include all&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            - Set exclude URL patterns, for eg. , .*\.gif, .*\.png, .*\.css, .*\.js&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Open Internet Explorer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    - Goto Tools -&gt; Internet Options -&gt; Connections -&gt; LAN settings&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    - In Proxy Server panel, specify address as 'localhost' and port number (which is specified in&lt;br /&gt;meter's HTTP proxy server, i.e. 8080)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Select 'HTTP Proxy Server'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Click on Start&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Open IE and open URL 'http://www.mysite.com:8888/main/index.html'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- As soon as you visit the URL jmeter starts the recording, and you can see all the requests in&lt;br /&gt;METER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- For AMF requests (for Adobe FLEX), request is saved as file with extension '.binary' in the bin&lt;br /&gt;irectory of jmeter&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;- Click on Stop button of 'HTTP Proxy Server' to stop the recording.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Test Plan is ready. You can modify it now according to your requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Proxy Server setup document from Apache:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://jakarta.apache.org/jmeter/usermanual/jmeter_proxy_step_by_step.pdf"&gt;http://jakarta.apache.org/jmeter/usermanual/jmeter_proxy_step_by_step.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7392734283644395675?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7392734283644395675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7392734283644395675' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7392734283644395675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7392734283644395675'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/04/use-jmeter-to-load-test-flex.html' title='Use JMeter to load test FLEX Applications'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4064094793919589830</id><published>2009-03-22T21:30:00.002+05:30</published><updated>2009-03-22T21:35:36.523+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>PERL round function</title><content type='html'>Following is the round function in PERL, which you can put into your script and actually call to round numbers instead of cutting them with ceil or cut.&lt;br /&gt;&lt;br /&gt;In the following round function, you can specify the number to round and the number of digits to show after the decimal.&lt;br /&gt;&lt;br /&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="perl" style="font-family: monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;sub&lt;/span&gt; round &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(177, 177, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;$number&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;shift&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;||&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(177, 177, 0);"&gt;my&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;$dec&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;10&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;**&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;shift&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;||&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;$dec&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;$number&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;+&lt;/span&gt; .5 &lt;span style="color: rgb(51, 153, 51);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$number&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&lt;=&gt;&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;/&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;$dec&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="perl" style="font-family: monospace;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$result&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; round&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;123.4567&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;br /&gt;&lt;br /&gt;it would return 123.457&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class="perl" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/pre&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/2927253854689338790-4064094793919589830?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4064094793919589830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4064094793919589830' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4064094793919589830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4064094793919589830'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/03/perl-round-function.html' title='PERL round function'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4378076364327491978</id><published>2009-03-22T21:12:00.004+05:30</published><updated>2009-03-22T21:23:45.294+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>About url in firefox</title><content type='html'>There are few special URLs which begins with &lt;span style="font-weight: bold;"&gt;about:&lt;/span&gt; that you can type into the firefox location bar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="about:"&gt;about:&lt;/a&gt; =&gt; &lt;/span&gt;The same page as Help -&gt; About&lt;br /&gt;&lt;a href="about:blank"&gt;&lt;span style="font-weight: bold;"&gt;about:blank&lt;/span&gt;&lt;/a&gt; =&gt; A blank page&lt;br /&gt;&lt;a href="about:cache"&gt;&lt;span style="font-weight: bold;"&gt;about:cache&lt;/span&gt;&lt;/a&gt; =&gt; Displays cache statistics and directory location&lt;br /&gt;&lt;a href="about:config"&gt;&lt;span style="font-weight: bold;"&gt;about:config&lt;/span&gt;&lt;/a&gt; =&gt; GUI for modifying user preferences&lt;br /&gt;&lt;a href="about:plugins"&gt;&lt;span style="font-weight: bold;"&gt;about:plugins&lt;/span&gt;&lt;/a&gt; =&gt; List all plugins&lt;br /&gt;&lt;a href="about:logo"&gt;&lt;span style="font-weight: bold;"&gt;about:logo&lt;/span&gt;&lt;/a&gt; =&gt; Displays the firefox logo&lt;br /&gt;&lt;br /&gt;There is an extension available for firefox to save advanced preferences. &lt;span style="font-weight: bold;"&gt;gui:config&lt;/span&gt; makes it easier to change preferences that can only be found in the “about:config”. This add on can be downloaded from &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5523"&gt;https://addons.mozilla.org/en-US/firefox/addon/5523&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4378076364327491978?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4378076364327491978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4378076364327491978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4378076364327491978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4378076364327491978'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/03/about-url-in-firefox.html' title='About url in firefox'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-9019246666868572170</id><published>2009-03-20T21:53:00.002+05:30</published><updated>2009-03-20T22:23:42.824+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='toad'/><title type='text'>TOAD: Tips and Tricks</title><content type='html'>Tips for TOAD's sql editor&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tired of typing long column/table name while writing a sql query? Use Auto Complete feature of TOAD. Type a part of the table/column name and then press &lt;span style="font-weight: bold;"&gt;CTRL + .&lt;/span&gt; (period). TOAD will automatically identify the name of the table/column and fill in the rest of the word. If there is more than one option available then TOAD will list all the available options and you can select from there.&lt;/li&gt;&lt;li&gt;Forgot the queries which you ran in past? In TOAD's sql editor Press &lt;span style="font-weight: bold;"&gt;ALT + UP/DOWN&lt;/span&gt; key and it will show you the past queries (similar to SQL recall feature , F8)&lt;/li&gt;&lt;li&gt;You constantly making spell mistakes while writing queries? &lt;span id="dnn_ctr1398_ContentPane" class="DNNAlignleft"&gt;&lt;span class="Normal"&gt;&lt;span id="dnn_ctr1398_Help_lblDescription" class="Normal"&gt;Right click in the editor and select “&lt;span style="font-weight: bold;"&gt;Editing Options&lt;/span&gt;”. On this new option screen click on the “&lt;span style="font-weight: bold;"&gt;Auto Replace&lt;/span&gt;” button in the bottom right hand corner. Here you will see a list of the common misspelled words our user’s experience. If there are words you constantly misspell, then you can add them to the list by using the “Add” button. So, now in the editor if you mistype the word “select” as “seelct” … it will automatically fix itself once you hit the spacebar.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="dnn_ctr1398_ContentPane" class="DNNAlignleft"&gt;&lt;span class="Normal"&gt;&lt;span id="dnn_ctr1398_Help_lblDescription" class="Normal"&gt;Wanted to control number of rows in your grid? &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="dnn_ctr1398_ContentPane" class="DNNAlignleft"&gt;&lt;span class="Normal"&gt;&lt;span id="dnn_ctr1398_Help_lblDescription" class="Normal"&gt;&lt;span class="Breadcrumb"&gt;Use OCI array size option to tell toad how many rows you want retrieved at a time. If you want to only see first 100 rows of an table, set this option to 100. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="dnn_ctr1398_ContentPane" class="DNNAlignleft"&gt;&lt;span class="Normal"&gt;&lt;span id="dnn_ctr1398_Help_lblTitle" class="help_title"&gt;Generating Schema Documentation- From the Database menu, select Report -&gt; HTML Schema Doc Generator&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="dnn_ctr1398_ContentPane" class="DNNAlignleft"&gt;&lt;span class="Normal"&gt;&lt;span id="dnn_ctr1398_Help_lblDescription" class="Normal"&gt;&lt;span style="font-family:Arial;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&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/2927253854689338790-9019246666868572170?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/9019246666868572170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=9019246666868572170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/9019246666868572170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/9019246666868572170'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2009/03/toad-tips-and-tricks.html' title='TOAD: Tips and Tricks'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-184395604317231915</id><published>2008-12-28T19:26:00.004+05:30</published><updated>2008-12-28T19:35:50.567+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Perl : Get filename or directory name from an absolute path</title><content type='html'>Use Perl's File module to get Filename or directory name from an absolute path. Below is an example of how to do this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#!/usr/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;use File::Basename;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;print getDirPath("/mnt/users/vishnu/blog/PerlPost.html");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;print getFileNameWithoutExt("/mnt/users/vishnu/blog/PerlPost.html");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;print getFileName("/mnt/users/vishnu/blog/PerlPost.html");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;sub getDirPath() {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return dirname($_[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;sub getFileNameWithoutExt() {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;my $file = basename($_[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;$file =~ s/\.[^.]*$//;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return $file;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;sub getFileName() {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return basename($_[0]);   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Output of above program would be:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/mnt/users/vishnu/blog&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;PerlPost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;PerlPost.html&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-184395604317231915?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/184395604317231915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=184395604317231915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/184395604317231915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/184395604317231915'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/12/perl-get-filename-or-directory-name.html' title='Perl : Get filename or directory name from an absolute path'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6961642246936897313</id><published>2008-12-20T21:49:00.003+05:30</published><updated>2008-12-20T21:54:35.025+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Perl error: Can't locate module in @INC</title><content type='html'>If you get a Perl error message like &lt;span style="font-weight: bold;"&gt;Can't locate module.pm in @INC&lt;/span&gt;, this message means that the Perl module you're trying to include (like the module named module) can't be found in Perl's include path, which is represented by the variable named @INC.&lt;br /&gt;&lt;br /&gt;Perl uses an @INC variable that contains the directories it will search in when you specify that you want to include a module, but you can't look at it like an environment variable. Although Perl doesn't have something like the CLASSPATH environment variable you can easily look at, you can print the @INC variable with a simple one-line command. The following Perl command shows the directories that Perl looks in when it tries to load modules:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;perl -e 'print join("\n", @INC);'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Including a perl module your @INC include path&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are different ways by which you can add your perl module in @INC include path&lt;br /&gt;1. Specify it in PERL5LIB environment variable&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;export PERL5LIB=path&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Perl takes -I option where you can specify the additional directories where it should search for modules.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;perl -I path myscript.pl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Modify  your Perl program to find the module by adding below line near the top of Perl programs. This simple line of code tells your Perl program to add this directory to it's @INC search directory.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;use lib "path"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6961642246936897313?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6961642246936897313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6961642246936897313' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6961642246936897313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6961642246936897313'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/12/perl-error-cant-locate-module-in-inc.html' title='Perl error: Can&apos;t locate module in @INC'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7375071595715948434</id><published>2008-12-19T21:00:00.005+05:30</published><updated>2009-04-26T16:53:08.399+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Perl: FileDiff utility</title><content type='html'>I have 2 csv files (pipe seperated), one column (basically an Id field) is common in both the files. I need to compare both the files on the basis of this common field and print the lines which has common Id, Lines with id which is only in file1 and vice-versa. I thought up for writing perl script for this task.  See below script.&lt;br /&gt;&lt;br /&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_873298017927283" name="doc_873298017927283" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;        &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=9194933&amp;amp;access_key=key-24bk7rukgi1sc0l528rh&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt;         &lt;param name="quality" value="high"&gt;         &lt;param name="play" value="true"&gt;        &lt;param name="loop" value="true"&gt;         &lt;param name="scale" value="showall"&gt;        &lt;param name="wmode" value="opaque"&gt;         &lt;param name="devicefont" value="false"&gt;        &lt;param name="bgcolor" value="#ffffff"&gt;         &lt;param name="menu" value="true"&gt;        &lt;param name="allowFullScreen" value="true"&gt;         &lt;param name="allowScriptAccess" value="always"&gt;         &lt;param name="salign" value=""&gt;                    &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=9194933&amp;amp;access_key=key-24bk7rukgi1sc0l528rh&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_873298017927283_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;            &lt;/object&gt;    &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:                &lt;a href="http://www.scribd.com/tag/perl" style="text-decoration: underline;"&gt;perl&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/Technology" style="text-decoration: underline;"&gt;Technology&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/2927253854689338790-7375071595715948434?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7375071595715948434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7375071595715948434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7375071595715948434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7375071595715948434'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/12/perl-filediff-utility.html' title='Perl: FileDiff utility'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7362560107592633508</id><published>2008-11-06T19:40:00.003+05:30</published><updated>2008-11-06T19:51:54.148+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle: Binary operations</title><content type='html'>Today i faced a situation when i need to do binary operations in Oracle Query. I had no idea how to do it. Obviously Googling worked as always. :-) :-) .  Below was the problem:&lt;br /&gt;&lt;br /&gt;I need to apply AND operation on a hexadecimal number as below but following query did not work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;select &amp;lt;num&amp;gt; &amp;amp; 0xf from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that BITAND function will do this task, so i chnaged above query to as below and it worked.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;select BITAND(&amp;lt;num&amp;gt;, 15)+0 from dual;&lt;/span&gt;&lt;br /&gt;(here 15 is equivalent to 0xf, Note that BITAND returns a binary integer, so to use it in SQL you will need to convert it to a numeric.)&lt;br /&gt;&lt;br /&gt;Similarly, Oracle has BITOR function for OR operation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7362560107592633508?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7362560107592633508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7362560107592633508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7362560107592633508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7362560107592633508'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/11/oracle-binary-operations.html' title='Oracle: Binary operations'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-637019375296291259</id><published>2008-11-06T11:16:00.002+05:30</published><updated>2008-11-06T11:20:26.599+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='google tip'/><title type='text'>AARTI: Shree Google Maharaaj :-)</title><content type='html'>Recently i got an email from one of my friends which had Aarti for Google. Though it is in Hindi but i thought it to share with you all. If you know Hindi, then just read it and enjoy .. :) :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6jm1IXePQ5k/SRKFcJO6fCI/AAAAAAAAC7s/ELTKz0Laip0/s1600-h/google_aarti.jpg"&gt;&lt;img style="cursor: pointer; width: 238px; height: 400px;" src="http://3.bp.blogspot.com/_6jm1IXePQ5k/SRKFcJO6fCI/AAAAAAAAC7s/ELTKz0Laip0/s400/google_aarti.jpg" alt="" id="BLOGGER_PHOTO_ID_5265417632910834722" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-637019375296291259?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/637019375296291259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=637019375296291259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/637019375296291259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/637019375296291259'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/11/aarti-shree-google-maharaaj.html' title='AARTI: Shree Google Maharaaj :-)'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6jm1IXePQ5k/SRKFcJO6fCI/AAAAAAAAC7s/ELTKz0Laip0/s72-c/google_aarti.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-326042577174042987</id><published>2008-10-22T10:33:00.004+05:30</published><updated>2008-12-28T20:16:50.776+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Group rows of a csv file with sum of column values</title><content type='html'>You have heard about Group functionality in Microsoft Excel, which group the rows on a common value and does the sum of other field. Same thing can be done in unix using awk very easily. See below example:&lt;br /&gt;&lt;br /&gt;[ ~]# cat test.csv&lt;br /&gt;a,5&lt;br /&gt;b,10&lt;br /&gt;a,4&lt;br /&gt;c,8&lt;br /&gt;b,9&lt;br /&gt;b,4&lt;br /&gt;[ ~]# awk -F"," '{sum[$1] += $2 } END { for(n in sum)print n"=" sum[n] }' test.csv&lt;br /&gt;a=9&lt;br /&gt;b=23&lt;br /&gt;c=8&lt;br /&gt;&lt;br /&gt;Perl version of above script can be seen &lt;a href="http://www.scribd.com/doc/9552981/Perl-Calc-Sum-Rows"&gt;here&lt;/a&gt;:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-326042577174042987?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/326042577174042987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=326042577174042987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/326042577174042987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/326042577174042987'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/awk-gropu-rows-of-csv-file-with-sum-of.html' title='Group rows of a csv file with sum of column values'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7784192062807420395</id><published>2008-10-16T19:39:00.005+05:30</published><updated>2009-09-12T01:33:13.420+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><title type='text'>AWK examples</title><content type='html'>Find number of columns in a pipe seperated csv file&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;awk -F"|" '{print NF}' vishnu.csv |uniq&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Find sum of column of a pipe seperated csv file&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;awk -F"|" '{sum += $col } END { print sum }' vishnu.csv&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;awk -F"|" '{sum += $col } END { print sprintf("%.2f",sum) }' vishnu.csv (print float value)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Replace tab character with a pipe symbol in a csv file&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;awk '{gsub("\t","|");print}' vishnu.csv&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;print the 5th and 7th columns of csv file if 5th and 7th column values are not same&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; awk -F"," '{if($5 != $7) {print $5","$7}}' test.csv&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;print the line of csv file if 5th and 7th column values are same&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;awk -F"," '{if($5 !== $7) {print}}' test.csv&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7784192062807420395?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7784192062807420395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7784192062807420395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7784192062807420395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7784192062807420395'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/awk-examples.html' title='AWK examples'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-98497422164828268</id><published>2008-10-14T21:00:00.001+05:30</published><updated>2008-10-14T21:00:26.836+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='puzzles'/><title type='text'>Puzzle: Elevator problem</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Question: A man lives on the twelfth floor of an apartment building. Every morning he takes the elevator down to the lobby and leaves the building. In the evening, he gets into the elevator, and, if there is someone else in the elevator -- or if it was raining that day -- he goes back to his floor directly. Otherwise, he goes to the tenth floor and walks up two flights of stairs to his apartment.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;Answer: &lt;span style="font-style: italic;"&gt;The man is a dwarf. He can't reach the upper elevator buttons, but he can ask people to push them for him. He can also push them with his umbrella.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-98497422164828268?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/98497422164828268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=98497422164828268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/98497422164828268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/98497422164828268'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/puzzle-elevator-problem.html' title='Puzzle: Elevator problem'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4522816103937372396</id><published>2008-10-14T20:58:00.000+05:30</published><updated>2008-10-14T20:59:00.159+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='puzzles'/><title type='text'>Puzzle: 100 doors in a row</title><content type='html'>&lt;div style="text-align: justify; color: rgb(153, 0, 0);"&gt;You have 100 doors in a row that are all initially closed. you make 100 passes by the doors starting with the first door every time. the first time through you visit every door and toggle the door (if the door is closed, you open it, if its open, you close it). the second time you only visit every 2nd door (door #2, #4, #6). the third time, every 3rd door (door #3, #6, #9), etc, until you only visit the 100th door. &lt;/div&gt;&lt;p style="text-align: justify; color: rgb(153, 0, 0);"&gt;for example, after the first pass every door is open. on the second pass you only visit the even doors (2,4,6,8...) so now the even doors are closed and the odd ones are opened. the third time through you will close door 3 (opened from the first pass), open door 6 (closed from the second pass), etc..&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;question: what state are the doors in after the last pass? which are open which are closed?&lt;/span&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; color: rgb(51, 204, 0); font-style: italic;"&gt;Solution: you can figure out that for any given door, say door #42, you will visit it for every divisor it has. so 42 has 1 &amp;amp; 42, 2 &amp;amp; 21, 3 &amp;amp; 14, 6 &amp;amp; 7. so on pass 1 i will open the door, pass 2 i will close it, pass 3 open, pass 6 close, pass 7 open, pass 14 close, pass 21 open, pass 42 close. for every pair of divisors the door will just end up back in its initial state. so you might think that every door will end up closed? well what about door #9. 9 has the divisors 1 &amp;amp; 9, 3 &amp;amp; 3. but 3 is repeated because 9 is a perfect square, so you will only visit door #9, on pass 1, 3, and 9... leaving it open at the end. only perfect square doors will be open at the end.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4522816103937372396?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4522816103937372396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4522816103937372396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4522816103937372396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4522816103937372396'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/puzzle-100-doors-in-row.html' title='Puzzle: 100 doors in a row'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2711851421197348817</id><published>2008-10-14T20:56:00.001+05:30</published><updated>2008-10-14T20:57:33.320+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='puzzles'/><title type='text'>Puzzle: get exactly 2 liters with the 4 ltr and 7 ltr jars</title><content type='html'>&lt;span style="color: rgb(204, 0, 0);"&gt;The Problem:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;You've got two jars, one of them fits exactly 7 liters, the other one fits exactly 4 liters. How could you get exactly 2 liters with these two jars? You have unlimited supply of water and you are allowed to spoil some water.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;The Solution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;7    0&lt;/span&gt;    fill the 7 ltr jar completely&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt; 3    4&lt;/span&gt;    fill the 4 ltr jar using the 7 ltr one completely&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;3    0&lt;/span&gt;    empty the 4 ltr jar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;0    3&lt;/span&gt;    fill all water from 7 ltr jar to 4 ltr water&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;7    3&lt;/span&gt;    fill the 7 ltr jar completely&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;6    4&lt;/span&gt;    fill 4 ltr jar from 7 ltr one completely&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;6    0&lt;/span&gt;    empty the 4 ltr jar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;2    4&lt;/span&gt;    fill 4 ltr jar from 7 ltr one completely&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;2    0&lt;/span&gt;    empty the 4 ltr jar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Now you have exactly 2 ltrs in 7 ltr jar&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2711851421197348817?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2711851421197348817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2711851421197348817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2711851421197348817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2711851421197348817'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/puzzle-get-exactly-2-liters-with-4-ltr.html' title='Puzzle: get exactly 2 liters with the 4 ltr and 7 ltr jars'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8380641265875089069</id><published>2008-10-13T21:12:00.004+05:30</published><updated>2008-10-13T21:20:21.525+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Solaris: colorize stuff</title><content type='html'>&lt;span style="font-family:verdana;"&gt;If you want to colorize directory listing in solaris, just add the following alias in your .bashrc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(255, 0, 0); font-family: verdana;"&gt;alias ls='ls -h --color=auto'&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family:verdana;"&gt;If you want to colorize vim editor, add below in your .bashrc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-family:verdana;"&gt;export TERM=dtterm (for solaris)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;export TERM=xterm (for linux)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;code style="color: rgb(255, 0, 0);"&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8380641265875089069?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8380641265875089069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8380641265875089069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8380641265875089069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8380641265875089069'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/solaris-colorize-directory-listing-ls.html' title='Solaris: colorize stuff'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6496809110693774760</id><published>2008-10-13T21:08:00.005+05:30</published><updated>2008-10-13T21:21:33.703+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Perl: Date formatting</title><content type='html'>&lt;span style="font-family: verdana;"&gt;If you need to convert Date from YYYY-MM-DD format to MM/DD/YYYY format, use below perl code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-family: verdana;"&gt;$str="2008-10-13";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-family: verdana;"&gt;$str =~s/^(\d{4})\-(\d{2})\-(\d{2})/$2\/$3\/$1/;&lt;br /&gt;print $str;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;will output:&lt;br /&gt;10/13/2008&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6496809110693774760?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6496809110693774760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6496809110693774760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6496809110693774760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6496809110693774760'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/perl-date-formatting.html' title='Perl: Date formatting'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-627508942864483424</id><published>2008-10-13T21:03:00.006+05:30</published><updated>2009-06-17T15:32:21.154+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>sed examples</title><content type='html'>Delete a line from file which contain particular string &lt;span style="color: rgb(255, 0, 0);"&gt;(sed -e "/&lt;string&gt;/d" file1 &gt; newfile)&lt;/string&gt;&lt;/span&gt;&lt;br /&gt;print all lines except first line &lt;span style="color: rgb(255, 0, 0);"&gt;(sed -n '2,$p' vishnu.csv)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:verdana;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Convert YYYYMMDD to MM/DD/YYYY &lt;/span&gt;(echo "YYYYMMDD"|sed -n -e "s_\(....\)\(..\)\(..\)_\2/\3/\1_p")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Remove tab character from a file &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:verdana;" &gt;(sed -e \"s/[ &amp;lt;TAB&amp;gt;]*//g\" file &amp;gt; output)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Find and replace values in a file &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:verdana;" &gt;(sed -i 's/find1/replace1/g' &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:verdana;" &gt;fileName)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;View only lines of a file that contains a particular string &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:verdana;" &gt;(sed -n '/string/p' fileName)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;View particular row number (let say 3rd) of file &lt;span style="color: rgb(255, 0, 0);"&gt;(sed -n '3p;3q' fileName)&lt;/span&gt;&lt;br /&gt;View range of row (let say 2 to 8)  of file &lt;span style="color: rgb(255, 0, 0);"&gt;(sed -n '2,8p;8q' fileName)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-627508942864483424?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/627508942864483424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=627508942864483424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/627508942864483424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/627508942864483424'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/sed-examples.html' title='sed examples'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2289211007272081694</id><published>2008-10-10T22:12:00.002+05:30</published><updated>2008-10-10T22:15:36.415+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Perl : Formatting a number to currency format</title><content type='html'>&lt;blockquote&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;sub formatCurrency {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;  my $number = sprintf "%.2f", shift @_;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;  # Add one comma each time through the do-nothing loop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;  1 while $number =~ s/^(-?\d+)(\d\d\d)/$1,$2/;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;  # Put the dollar sign in the right place&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;  $number =~ s/^(-?)/$1\$/;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;  return $number;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(0, 0, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2289211007272081694?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2289211007272081694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2289211007272081694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2289211007272081694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2289211007272081694'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/10/perl-formatting-number-to-currency.html' title='Perl : Formatting a number to currency format'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8542776722508610633</id><published>2008-09-20T21:27:00.004+05:30</published><updated>2008-09-20T21:34:10.155+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='httpunit'/><title type='text'>How to access secure website (https) in HTTPUNIT</title><content type='html'>&lt;span style="font-family:verdana;"&gt;If you are using httpunit to automate your website testing and your site is on secure domain (i.e. on https); httpunit would not be able to access your site unless you add below code in your tests(probably in setup() method)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;//code to make test case run for HTTPS site com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl.setDefaultHostnameVerifier(new com.sun.net.ssl.HostnameVerifier() &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;public boolean verify(String urlHostname, String certHostname) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;return true; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#333399;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8542776722508610633?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8542776722508610633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8542776722508610633' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8542776722508610633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8542776722508610633'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/09/how-to-access-https-website-in-httpunit.html' title='How to access secure website (https) in HTTPUNIT'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-202187232822827869</id><published>2008-09-19T22:11:00.003+05:30</published><updated>2008-09-19T22:18:56.419+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Change the case of file contents</title><content type='html'>&lt;span style="font-family: verdana;"&gt;If you want to change case (either lower or upper case) of contents of a file use the tr command.&lt;br /&gt;&lt;br /&gt;Change contents of filename to lower case&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cat filename | tr "[:upper:]" "[:lower:]" &amp;gt; newfilename&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-weight: bold;"&gt;or&lt;br /&gt;cat filename | tr '[A-Z]' '[a-z]' &amp;gt; newfilename&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;Change contents of filename to upper case&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;cat filename | tr "[:lower:]" "[:upper:]" &amp;gt; newfilename&lt;/span&gt;&lt;br /&gt;or&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-weight: bold;"&gt;cat filename | tr '[a-z]' '[A-Z]' &amp;gt; newfilename&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-202187232822827869?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/202187232822827869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=202187232822827869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/202187232822827869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/202187232822827869'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/09/change-case-of-file-contents.html' title='Change the case of file contents'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8559323775779594409</id><published>2008-09-09T12:41:00.002+05:30</published><updated>2008-09-09T12:43:55.387+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Determining the disk space used by Oracle schema</title><content type='html'>Run below query to find out how much disk space is being used by an Oracle schema&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Select SUM(bytes)/1024/1024/1024 Gb, tablespace_name FROM user_segments GROUP BY tablespace_name;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8559323775779594409?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8559323775779594409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8559323775779594409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8559323775779594409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8559323775779594409'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/09/determining-disk-space-used-by-oracle.html' title='Determining the disk space used by Oracle schema'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4531860976856201387</id><published>2008-09-07T20:15:00.003+05:30</published><updated>2008-09-07T20:22:19.302+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Memory usage by process</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Solaris pmap command provides the memory usage of a process. This command tells you how much of memory a particular process is using and how much of there particular threads/heap are using. It's a very useful command to debug cases where you have to find that who is consuming more memory in your process.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pmap &amp;lt;PID&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;example$ pmap 102905&lt;br /&gt;    102905:    sh&lt;br /&gt;    00010000    192K r-x--  /usr/bin/ksh&lt;br /&gt;    00040000      8K rwx--  /usr/bin/ksh&lt;br /&gt;    00042000     40K rwx--    [ heap ]&lt;br /&gt;    FF180000    664K r-x--  /usr/lib/libc.so.1&lt;br /&gt;    FF236000     24K rwx--  /usr/lib/libc.so.1&lt;br /&gt;    FF23C000      8K rwx--  /usr/lib/libc.so.1&lt;br /&gt;    FF250000      8K rwx--    [ anon ]&lt;br /&gt;    FF260000     16K r-x--  /usr/lib/en_US.ISO8859-1.so.2&lt;br /&gt;    FF272000     16K rwx--  /usr/lib/en_US.ISO8859-1.so.2&lt;br /&gt;    FF280000    560K r-x--  /usr/lib/libnsl.so.1&lt;br /&gt;    FF31C000     32K rwx--  /usr/lib/libnsl.so.1&lt;br /&gt;    FF324000     32K rwx--  /usr/lib/libnsl.so.1&lt;br /&gt;    FF340000     16K r-x--  /usr/lib/libc_psr.so.1&lt;br /&gt;    FF350000     16K r-x--  /usr/lib/libmp.so.2&lt;br /&gt;    FF364000      8K rwx--  /usr/lib/libmp.so.2&lt;br /&gt;    FF380000     40K r-x--  /usr/lib/libsocket.so.1&lt;br /&gt;    FF39A000      8K rwx--  /usr/lib/libsocket.so.1&lt;br /&gt;    FF3A0000      8K r-x--  /usr/lib/libdl.so.1&lt;br /&gt;    FF3B0000      8K rwx--    [ anon ]&lt;br /&gt;    FF3C0000    152K r-x--  /usr/lib/ld.so.1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4531860976856201387?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4531860976856201387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4531860976856201387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4531860976856201387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4531860976856201387'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/09/memory-usage-by-process.html' title='Memory usage by process'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-1227738224382873395</id><published>2008-09-07T19:55:00.004+05:30</published><updated>2009-12-17T17:25:30.287+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Sorting a csv file on a particular field</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I have below csv file, which have around 5k lines in following format:&lt;br /&gt;&lt;br /&gt;ABC,12345,test.com,56780,0.00,200.65,0.00,0.00,200.65&lt;br /&gt;XYZ,54311,tset.com,69540,0.00,102.32,0.00,0.00,102.32&lt;br /&gt;..&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;I wanted to sort this file on field6 so that i could extract my desired lines from the csv file. I did use below command which sorted my csv file on field no 6:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sort -n -r -t, +6 -7 vishnu.csv&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;-n Specifies numeric field&lt;br /&gt;-r Reverse sorting&lt;br /&gt;-t specifies seperator (here , is a seperator)&lt;br /&gt;+6, -7  specifies column position&lt;br /&gt;&lt;br /&gt;sorting the csv file if separator is tab&lt;br /&gt;sort -t $'\t' -k5 -nr filename&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-1227738224382873395?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/1227738224382873395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=1227738224382873395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1227738224382873395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1227738224382873395'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/09/sorting-csv-file-on-particular-field.html' title='Sorting a csv file on a particular field'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8691204948127513898</id><published>2008-09-07T01:20:00.002+05:30</published><updated>2008-09-07T01:24:55.241+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>List of tables in the Oracle schema</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Wanted to find out list of tables in the Oracle schema? We can use any of the following sql query; which will list all the tables in the specified schema of Oracle database.&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT * FROM cat;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;SELECT TABLE_NAME FROM TABS;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;SELECT * FROM user_objects WHERE object_type = 'TABLE';&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;SELECT TABLE_NAME FROM ALL_ALL_TABLES;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8691204948127513898?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8691204948127513898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8691204948127513898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8691204948127513898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8691204948127513898'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/09/list-of-tables-in-oracle-schema.html' title='List of tables in the Oracle schema'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8760911171550250016</id><published>2008-08-14T17:09:00.004+05:30</published><updated>2008-08-14T17:15:53.009+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Execute a perl script from java Program</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Interested to execute a perl script from a java program.... uhmmmmm... see below java program&lt;/span&gt; (Sample.java)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;import java.io.*;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;public class Sample{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;public static void main(String args[]) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Process process;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;process = Runtime.getRuntime().exec("perl testscript.pl");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;process.waitFor();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;if(process.exitValue() == 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;System.out.println("Command Successful");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;System.out.println("Command Failure");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;catch(Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;System.out.println("Exception: "+ e.toString());&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;javac Sample.java&lt;br /&gt;java -cp . Sample&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8760911171550250016?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8760911171550250016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8760911171550250016' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8760911171550250016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8760911171550250016'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/08/execute-perl-script-from-java-program.html' title='Execute a perl script from java Program'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6346176448298890765</id><published>2008-08-14T16:09:00.003+05:30</published><updated>2008-08-14T16:17:53.961+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>compare two sorted files in unix</title><content type='html'>&lt;span style="font-family: verdana;"&gt;If you wanted to compare 2 &lt;span style="font-weight: bold;"&gt;sorted&lt;/span&gt; files then use &lt;span style="font-weight: bold;"&gt;comm&lt;/span&gt; command. &lt;span style="font-weight: bold;"&gt;comm&lt;/span&gt; command compares &lt;/span&gt;two sorted files line by line. This command reads the File1 and File2 as parameter and writes a three column output to standard output.&lt;br /&gt;&lt;br /&gt;First Column: Lines that are only in File1&lt;br /&gt;Second Column: Lines that are only in File2&lt;br /&gt;Third Column: Lines that are in both File1 and File2&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Syntax:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;comm [-1] [-2] [-3 ] file1 file2&lt;br /&gt;&lt;br /&gt;-1 Suppresses the display of the first column (lines in File1)&lt;br /&gt;-2 Suppresses the display of the second column (lines in File2)&lt;br /&gt;-3 Suppresses the display of the third column (lines both in File1 and File2)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6346176448298890765?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6346176448298890765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6346176448298890765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6346176448298890765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6346176448298890765'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/08/compare-two-sorted-files-in-unix.html' title='compare two sorted files in unix'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-3456338238431915292</id><published>2008-08-14T16:04:00.003+05:30</published><updated>2008-10-14T20:52:05.916+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Killing a defunct process</title><content type='html'>&lt;span style="font-family: verdana;"&gt;A defunct (or         "zombie") process is a process that isn't running,         isn't eligible to run, and takes up no system resources.         It's actually a process that has exited, but its parent has         not called wait() in order to find out its exit status.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;defunct processes can't be killed since they are already dead. To make them disappear you have to kill their parent process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Find the parent process id of the defunct process and then kill that parent process:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 51, 153);"&gt;ps -fe | grep defunctprocess | awk '{print $3}'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 51, 153);"&gt;kill -9 parentprocessid&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-3456338238431915292?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/3456338238431915292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=3456338238431915292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3456338238431915292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3456338238431915292'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/08/killing-defunct-process.html' title='Killing a defunct process'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6951740588969338866</id><published>2008-08-14T15:54:00.002+05:30</published><updated>2008-08-14T15:57:24.727+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Reverse the contents of a file</title><content type='html'>&lt;span style="font-family:verdana;"&gt;If you wanted to reverse the contents of a file, use below perl script:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;#!/usr/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt; $filename = "a.java";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt; open(INFILE, "&lt;", $filename)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;    or die "Can't open $filename for reading: $!\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;my(@content) = &lt;infile&gt;&amp;lt;INFILE&amp;gt;;&lt;/infile&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;close(INFILE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;  while (@content) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;      my($line) = pop(@content);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;      chomp $line;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;      print reverse($line)."\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);font-family:verdana;" &gt;  }&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6951740588969338866?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6951740588969338866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6951740588969338866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6951740588969338866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6951740588969338866'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/08/reverse-contents-of-file.html' title='Reverse the contents of a file'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7687198980041652366</id><published>2008-08-14T15:20:00.003+05:30</published><updated>2008-08-14T15:54:26.500+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Reversing a file</title><content type='html'>&lt;span style="font-family: verdana;"&gt;You have a file and you wanted to reverse it. How to do it? Guys...... its really very easy.. Use below commands:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: verdana;"&gt;tail -r filename&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: verdana;"&gt;cat -n filename | sort -nr | cut -c8-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;You can achieve the same by writing a perl script. See below perl script:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;  #!/usr/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;   $filename = "a.java";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;   open(INFILE, "&amp;lt;", $filename)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;      or die "Can't open $filename for reading: $!\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;   my(@content) = &amp;lt;INFILE&amp;gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;   close(INFILE);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;     while (@content) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;    my($line) = pop(@content);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-family: verdana;"&gt;         chomp $line;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 51, 153);"&gt;         print "$line \n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7687198980041652366?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7687198980041652366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7687198980041652366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7687198980041652366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7687198980041652366'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/08/reversing-file.html' title='Reversing a file'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2701632960422103501</id><published>2008-07-22T23:15:00.002+05:30</published><updated>2008-07-22T23:26:15.481+05:30</updated><title type='text'>Zephyr - A Test Management Tool</title><content type='html'>Recently i got an email from Zephyr regarding their new product launch. Zephyr is basically a Test Management tool aimed at global SME, IT departments and Testing Vendors which helps the testing team to manage their test case&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;/span&gt;&lt;/span&gt;s and provide test cases visibility at all levels using a central repository. I checked their product demo which looks cool.&lt;br /&gt;&lt;a href="http://www.getzephyr.com/"&gt;http://www.getzephyr.com/&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2701632960422103501?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2701632960422103501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2701632960422103501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2701632960422103501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2701632960422103501'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/zephyr-test-management-tool.html' title='Zephyr - A Test Management Tool'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-9217430663518935785</id><published>2008-07-20T09:25:00.001+05:30</published><updated>2008-07-20T09:25:35.341+05:30</updated><title type='text'>Software Testing Life Cycle</title><content type='html'>				&lt;div&gt;&lt;br /&gt;					&lt;span style="font-size:14px;"&gt;Software Testing Life Cycle&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;					From: &lt;a href="http://www.slideshare.net/sunny.deb/"&gt;sunny.deb&lt;/a&gt;, 8 months ago&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;					&lt;div style="width:425px;text-align:left" id="__ss_164292"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/sunny.deb/software-testing-life-cycle-164292?src=embed" title="Software Testing Life Cycle"&gt;Software Testing Life Cycle&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=software-testing-life-cycle-1194933215256085-2"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=software-testing-life-cycle-1194933215256085-2" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;view &lt;a href="http://www.slideshare.net/sunny.deb/software-testing-life-cycle-164292?src=embed" title="View Software Testing Life Cycle on SlideShare"&gt;presentation&lt;/a&gt; (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/cycle"&gt;cycle&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/life"&gt;life&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/testing"&gt;testing&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/software"&gt;software&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;					Software Testing Life Cycle&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;					&lt;a href="http://www.slideshare.net/sunny.deb/software-testing-life-cycle-164292"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;				&lt;/div&gt;&lt;br /&gt;			&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/bHQ9MTIxNjUyNjA2MTQ1MyZwdD*xMjE2NTI2MTA2MDc4JnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MQ==.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-9217430663518935785?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/9217430663518935785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=9217430663518935785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/9217430663518935785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/9217430663518935785'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/software-testing-life-cycle.html' title='Software Testing Life Cycle'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4394024777053373794</id><published>2008-07-14T16:34:00.004+05:30</published><updated>2008-07-14T16:40:54.247+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Make INSERT statement syntax from a csv file using perl</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I need to read a csv file and insert the data from csv to oracle. I created below perl script which will read the csv file line by line and will create INSERT statement accordingly&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: verdana; color: rgb(0, 0, 153);"&gt;#!/usr/bin/perl&lt;br /&gt; &lt;br /&gt; $filename = "test.csv";&lt;br /&gt; open(INFILE, "&lt;", $filename)&lt;br /&gt;    or die "Can't open $filename for reading: $!\n";&lt;br /&gt; my(@lines) = &amp;lt;INFILE&amp;gt;;&lt;br /&gt; my($line1) = $lines[0];&lt;br /&gt; my($line2) = $lines[1];&lt;br /&gt;&lt;br /&gt;print "$line1 \n";&lt;br /&gt;print "$line2 \n";&lt;br /&gt;&lt;br /&gt;close(INFILE);&lt;br /&gt;&lt;br /&gt;my($tablename) = "mytable";&lt;br /&gt;my($createquery) = "Create table " . $tablename . "(";&lt;br /&gt;&lt;br /&gt;my(@var1) = split("\t", $line1);&lt;br /&gt;my(@var2) = split("\t", $line2);&lt;br /&gt;my($i) = 0;&lt;br /&gt;for $item1 (@var1){&lt;br /&gt;  chomp($item1);&lt;br /&gt;  $createquery = $createquery . $item1 . " ";&lt;br /&gt;  $data = $var2[$i++];&lt;br /&gt;  print "$item1\t : $data\n";&lt;br /&gt;  if(checkData($data) eq "int"){&lt;br /&gt;    $createquery = $createquery . "number(10,0), ";&lt;br /&gt;  }&lt;br /&gt;  elsif(checkData($data) eq "float"){&lt;br /&gt;    $createquery = $createquery . "number(10,2), ";&lt;br /&gt;  }&lt;br /&gt;  else{&lt;br /&gt;    $createquery = $createquery . "varchar2(50), ";&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;$createquery = substr($createquery,0, -2);&lt;br /&gt;$createquery = $createquery . ");";&lt;br /&gt;print "$createquery\n";&lt;br /&gt;&lt;br /&gt;$i = 0;&lt;br /&gt;for $dataline (@lines){&lt;br /&gt;  if ( $i == 0){&lt;br /&gt;    $i = 1;&lt;br /&gt;    next;&lt;br /&gt;  }&lt;br /&gt;  chomp($dataline);&lt;br /&gt;  my(@dataitem) = split("\t", $dataline);&lt;br /&gt;  my($insertquery) = "INSERT INTO " . $tablename . " VALUES (";&lt;br /&gt;  print "$dataitem\n";&lt;br /&gt;  for $items (@dataitem){&lt;br /&gt;    if( (checkData($items) eq "int") || (checkData($items) eq "float") ){&lt;br /&gt;      $insertquery = $insertquery . $items .",";&lt;br /&gt;    }&lt;br /&gt;    else{&lt;br /&gt;      $insertquery = $insertquery . "\"" . $items . "\"" .",";&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  $insertquery = substr($insertquery, 0, -1);&lt;br /&gt;  $insertquery = $insertquery . ")";&lt;br /&gt;  print "$insertquery\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub checkData(){&lt;br /&gt;  if(@_[0] =~ /^-?\d+$/){&lt;br /&gt;     return "int";&lt;br /&gt;  }&lt;br /&gt;  elsif(@_[0] =~ /^-?(?:\d+(?:\.\d*)?|\.\d+)$/){&lt;br /&gt;     return "float";&lt;br /&gt;  }&lt;br /&gt;  else{&lt;br /&gt;     return "string";&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4394024777053373794?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4394024777053373794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4394024777053373794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4394024777053373794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4394024777053373794'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/make-insert-statement-syntax-from-csv.html' title='Make INSERT statement syntax from a csv file using perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8921609430091757695</id><published>2008-07-10T22:36:00.005+05:30</published><updated>2008-07-10T22:51:29.035+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Make CREATE TABLE syntax from a csv file using perl</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I have a csv file and i have to make the CREATE TABLE statement (which later will be used to create an Oracle table) by reading first and second line of the csv file. First line in the csv file is column headers and the second line is actual data. By reading the first line, i will create column name and by reading the second line, i'll decide the data type for the column. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Below is the perl script for the same: (i am assuming that data in the csv file is tab seperated)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: verdana; color: rgb(0, 0, 153);"&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;$filename = "test.csv";&lt;br /&gt;open(INFILE, "&lt;", $filename)     or die "Can't open $filename for reading: $!\n";&lt;br /&gt;@lines = &amp;lt;INFILE&amp;gt;&lt;infile&gt;;&lt;br /&gt;$line1 = $lines[0];&lt;br /&gt;$line2 = $lines[1];&lt;br /&gt;&lt;br /&gt;print "$line1 \n";&lt;br /&gt;print "$line2 \n";&lt;br /&gt;&lt;br /&gt;close(INFILE);&lt;br /&gt;&lt;br /&gt;$tablename = "mytable";&lt;br /&gt;$query = "Create table " . $tablename . "(";&lt;br /&gt;&lt;br /&gt;@var1 = split("\t", $line1);&lt;br /&gt;@var2 = split("\t", $line2);&lt;br /&gt;$i = 0;&lt;br /&gt;for $item1 (@var1){&lt;br /&gt;chomp($item1);&lt;br /&gt;$query = $query . $item1 . " ";&lt;br /&gt;$data = $var2[$i++];&lt;br /&gt;print "$item1\t : $data\n";&lt;br /&gt;if($data =~ /^-?\d+$/){&lt;br /&gt;  $query = $query . "number(10,0), ";&lt;br /&gt;}&lt;br /&gt;elsif ($data =~ /^-?(?:\d+(?:\.\d*)?|\.\d+)$/){&lt;br /&gt;  $query = $query . "number(10,2), ";&lt;br /&gt;}&lt;br /&gt;else{&lt;br /&gt;  $query = $query . "varchar2(50), ";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;$query = substr($query,0, -2);&lt;br /&gt;$query = $query . ");";&lt;br /&gt;print "$query\n";&lt;br /&gt;&lt;/infile&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8921609430091757695?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8921609430091757695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8921609430091757695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8921609430091757695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8921609430091757695'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/make-create-table-syntax-from-csv-file.html' title='Make CREATE TABLE syntax from a csv file using perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2413979800806428174</id><published>2008-07-08T18:31:00.002+05:30</published><updated>2008-07-10T22:59:49.974+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Read data from a csv file using perl (when the column count is not known)</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I need to read a csv file, and process each and every column data (i do not know the column count before processing the file)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-family:verdana;"&gt;#!/usr/local/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;if (scalar(@ARGV) &amp;lt; 1)&lt;br /&gt;{&lt;br /&gt;    print "Please Specify the file name to be read \n";&lt;br /&gt;        exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$file = $ARGV[0];&lt;br /&gt;&lt;br /&gt;open FILE, "&amp;lt; $file" or die "Can't open test.csv : $!";&lt;br /&gt;while(&amp;lt;FILE&amp;gt;){&lt;br /&gt;  chop;&lt;br /&gt;  my(@columns)= split("\t");&lt;br /&gt;  my($colnum)=$#columns;&lt;br /&gt;# print "Number of Column in this row is : $colnum\n";&lt;br /&gt;  foreach $col(@columns){&lt;br /&gt;    print "$col \t";&lt;br /&gt;  }&lt;br /&gt;  print "\n";&lt;br /&gt;}&lt;br /&gt;close FILE;&lt;br /&gt;&lt;br /&gt;&lt;file style="font-family: verdana;"&gt;&lt;/file&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;file style="font-family: verdana;"&gt;&lt;/file&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2413979800806428174?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2413979800806428174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2413979800806428174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2413979800806428174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2413979800806428174'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/read-data-from-csv-file-using-perl-when_08.html' title='Read data from a csv file using perl (when the column count is not known)'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-1610013066876933731</id><published>2008-07-08T18:27:00.003+05:30</published><updated>2008-07-10T23:01:57.239+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Read data from a csv file using perl (when the column count is known)</title><content type='html'>&lt;span style="font-family: verdana;"&gt;I need to read a csv file, and process each and every column data (i know the column count before processing the file)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-family: verdana;"&gt;#!/usr/local/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;open FILE, "&lt; test.csv" or die "Can't open test.csv : $!";&lt;br /&gt;while(&lt;/span&gt;&lt;file style="font-family: verdana;"&gt;){&lt;br /&gt;chomp;&lt;br /&gt;($col1,$col2,$col3,$col4) = split ("\t");&lt;br /&gt;print "$col1 \t";&lt;br /&gt;print "$col2 \t";&lt;br /&gt;print "$col3 \t";&lt;br /&gt;print "$col4 \t";&lt;br /&gt;print "\n";&lt;br /&gt;}&lt;br /&gt;close FILE;&lt;/file&gt;&lt;/blockquote&gt;&lt;file style="font-family: verdana;"&gt;&lt;/file&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-1610013066876933731?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/1610013066876933731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=1610013066876933731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1610013066876933731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1610013066876933731'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/read-data-from-csv-file-using-perl-when.html' title='Read data from a csv file using perl (when the column count is known)'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8585194048392084278</id><published>2008-07-08T18:23:00.004+05:30</published><updated>2008-07-10T23:04:18.722+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Check datatype of a argument in perl</title><content type='html'>&lt;span style="font-family: verdana;"&gt;I need to pick few lines from a particular file and check the data type of values of a particular column. Following is the perl script for the same:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-family: verdana;"&gt;#!/usr/bin/perl&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-family: verdana;"&gt; $filename = "test.csv";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;open(INFILE, "&lt;", $filename)     or die "Can't open $filename for reading: $!\n"; &lt;br /&gt;@lines = &lt;/span&gt;&lt;infile style="font-family: verdana;"&gt;&amp;lt;INFILE&amp;gt;;&lt;br /&gt;$line1 = $lines[0];&lt;br /&gt;$line2 = $lines[1];&lt;br /&gt;&lt;br /&gt;print "$line1 \n";&lt;br /&gt;print "$line2 \n";&lt;br /&gt;&lt;br /&gt;close(INFILE);&lt;br /&gt;&lt;br /&gt;@var1 = split("\t", $line2);&lt;br /&gt;for $item (@var1){&lt;br /&gt; if($item =~ /\D/){&lt;br /&gt;   print "$item\t : Has Non Digits\n";&lt;br /&gt; }&lt;br /&gt; elsif ($item =~ /^\d+$/){&lt;br /&gt;   print "$item\t : Whole Number\n";&lt;br /&gt; }&lt;br /&gt; elsif ($item =~ /^-?\d+$/){&lt;br /&gt;   print "$item\t : Integer\n";&lt;br /&gt; }&lt;br /&gt; elsif ($item =~ /^[+-]?\d+$/){&lt;br /&gt;   print "$item\t : +/- Integer\n";&lt;br /&gt; }&lt;br /&gt; elsif ($item =~ /^-?\d+\.?\d*$/){&lt;br /&gt;   print "$item\t : Real Number\n";&lt;br /&gt; }&lt;br /&gt; elsif ($item =~ /^-?(?:\d+(?:\.\d*)?|\.\d+)$/){&lt;br /&gt;   print "$item\t : Float Number\n";&lt;br /&gt; }&lt;br /&gt; else{&lt;br /&gt;   print "$item\t : NAN\n";&lt;br /&gt; }&lt;br /&gt;}&lt;/infile&gt;&lt;/blockquote&gt;&lt;infile style="font-family: verdana;"&gt;&lt;/infile&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8585194048392084278?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8585194048392084278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8585194048392084278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8585194048392084278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8585194048392084278'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/check-datatype-of-argument-in-perl.html' title='Check datatype of a argument in perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7982232903940632931</id><published>2008-07-08T18:19:00.000+05:30</published><updated>2008-07-08T18:21:53.585+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Print particular line/s from a file using perl</title><content type='html'>Method 1:&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt; &lt;br /&gt; $filename = "test.csv";&lt;br /&gt; open(INFILE, "&lt;", $filename)&lt;br /&gt;    or die "Can't open $filename for reading: $!\n";&lt;br /&gt;&lt;br /&gt; $line_number = 1;&lt;br /&gt;  while (&lt;infile&gt;) {&lt;br /&gt;      $line = $_;&lt;br /&gt;      last if $. == $line_number;&lt;br /&gt;  }&lt;br /&gt;  if ($. != $line_number) {&lt;br /&gt;      die "Didn't find line $line_number in $filename\n";&lt;br /&gt;  }&lt;br /&gt;  print;&lt;br /&gt;&lt;br /&gt;close(INFILE);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Method 2:&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt; &lt;br /&gt; $filename = "test.csv";&lt;br /&gt; open(INFILE, "&lt;", $filename)&lt;br /&gt;    or die "Can't open $filename for reading: $!\n";&lt;br /&gt; @lines = &lt;infile&gt;;&lt;br /&gt; $line1 = $lines[0];&lt;br /&gt; $line2 = $lines[1];&lt;br /&gt;&lt;br /&gt; print "$line1 \n";&lt;br /&gt; print "$line2 \n";&lt;br /&gt;&lt;br /&gt;close(INFILE);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7982232903940632931?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7982232903940632931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7982232903940632931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7982232903940632931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7982232903940632931'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/07/print-particular-lines-from-file-using.html' title='Print particular line/s from a file using perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-991695815804422519</id><published>2008-06-27T21:37:00.002+05:30</published><updated>2008-06-27T21:41:34.062+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Set Terminal Title</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;If you want the Terminal window title to be set automatically to the remote zone you have logged into, add this to your .bashrc file on the remote machine.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;# Terminal settings&lt;br /&gt;PS1="[\u@\h \W]# "&lt;br /&gt;&lt;br /&gt;if [ -n "$PS1" ]; then&lt;br /&gt;echo -n -e "\033]0;`hostname`\007"&lt;br /&gt;fi&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-991695815804422519?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/991695815804422519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=991695815804422519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/991695815804422519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/991695815804422519'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/06/set-terminal-title.html' title='Set Terminal Title'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-3315406263106999562</id><published>2008-06-14T13:53:00.004+05:30</published><updated>2008-06-14T14:00:04.896+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>TNSNAMES.ORA file</title><content type='html'>TNSNAMES.ORA is a configuration file that defines databases addresses for establishing connections to the database. It resides in ORACLE HOME\NETWORK\ADMIN directory. Below is the sample entry in TNSNAMES.ORA&lt;br /&gt;&lt;br /&gt;&amp;lt;addressname&amp;gt; =&lt;br /&gt; (DESCRIPTION =&lt;br /&gt;   (ADDRESS_LIST =&lt;br /&gt;     (ADDRESS = (PROTOCOL = TCP)(Host = &amp;lt;hostname&amp;gt;)(Port = &amp;lt;port&amp;gt;))&lt;br /&gt;   )&lt;br /&gt; (CONNECT_DATA =&lt;br /&gt;   (SERVICE_NAME = &amp;lt;sid&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/2927253854689338790-3315406263106999562?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/3315406263106999562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=3315406263106999562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3315406263106999562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3315406263106999562'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/06/tnsnamesora-file.html' title='TNSNAMES.ORA file'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2343618647768308880</id><published>2008-06-11T16:50:00.000+05:30</published><updated>2008-06-11T17:08:39.319+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Read data from a file in perl</title><content type='html'>&lt;p class="MsoNormal"&gt;Below is the sample perl script, if you want to read some data from a file and pass it to as a argument in your perl script.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;In my case, I have some object ids in a file and for each id I have to run oocheck command.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;#!/usr/local/bin/perl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;open FILE, "testoids" or die $!;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;while (&lt;file&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;   &lt;/span&gt;chomp $_;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt;   &lt;/span&gt;systemCmd("oocheck -id $_");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;close(FILE);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;sub systemCmd {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt; &lt;/span&gt;my($cmd) = @_;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt; &lt;/span&gt;print("$cmd\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style=""&gt; &lt;/span&gt;(system($cmd) == 0) || die ("cmd $cmd failed");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 50%; color: rgb(31, 73, 125); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2343618647768308880?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2343618647768308880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2343618647768308880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2343618647768308880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2343618647768308880'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/06/read-data-from-file-in-perl.html' title='Read data from a file in perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7906869604301478229</id><published>2008-06-06T19:51:00.002+05:30</published><updated>2008-10-14T20:47:37.680+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux time command</title><content type='html'>&lt;p class="MsoNormal"&gt;The &lt;b&gt;time&lt;/b&gt; command runs the specified program &lt;i&gt;command&lt;/i&gt; with the given arguments. When &lt;i&gt;command&lt;/i&gt; finishes, &lt;b&gt;time&lt;/b&gt; writes a message to standard output giving timing statistics about this program run. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;See below example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;[vishnu@solaris /mnt/usr/vishnu] time myProgram arg1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;        real   24m10.951s &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;        user    6m2.390s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;        sys     0m15.705s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;[vishnu@solaris /mnt/usr/vishnu]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Above command outputs the time taken by myProgram.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;real - Elapsed time from beginning to end of program&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;user -  time used by the program itself and any library subroutines it calls &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;sys- time used by the system calls invoked by the program (directly or indirectly) &lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7906869604301478229?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7906869604301478229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7906869604301478229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7906869604301478229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7906869604301478229'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/06/linux-time-command.html' title='Linux time command'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4033271662375198354</id><published>2008-05-15T18:47:00.000+05:30</published><updated>2008-05-15T18:48:47.503+05:30</updated><title type='text'>Forgot to mention subject in mail ???</title><content type='html'>&lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Forgot to mention subject, while writing an  official mail ??&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Yes.... It's a concern for all.... A mail without a subject brings a bad impression on us. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;To avoid this just follow the simple steps mentioned below and see the result &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;br /&gt;Steps:&lt;br /&gt;1. Open your outlook &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;2. Press Alt+F11. This opens the Visual Basic editor and then Press Ctrl+R which in turn open Project-Project 1 (left side) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;3. On the Left Pane, one can see "Microsoft Outlook Objects" or "Project1", expand this. Now one can see the "This Outlook Session". &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;4. Double click on "ThisOutLookSession". It will open up a code pane on the right hand side. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;5. Copy and Paste the following code in the right pane. (Code Pane) and save it &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;"&gt;Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)&lt;br /&gt;Dim strSubject As String&lt;br /&gt;strSubject = Item.Subject&lt;br /&gt;If Len(Trim(strSubject)) = 0 Then&lt;br /&gt;Prompt$ = "Subject is Empty. Are you sure you want to send the Mail?"&lt;br /&gt;If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check for Subject") = vbNo Then&lt;br /&gt;Cancel = True&lt;br /&gt;End If&lt;br /&gt;End If&lt;br /&gt;End Sub     &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: 150%;"&gt;&lt;span style="font-size: 9pt; line-height: 150%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;6. Now whenever u try to send a mail without subject, which will raise a pop-up to remind you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4033271662375198354?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4033271662375198354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4033271662375198354' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4033271662375198354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4033271662375198354'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/05/forgot-to-mention-subject-in-mail.html' title='Forgot to mention subject in mail ???'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-3185043117564870226</id><published>2008-04-23T10:48:00.002+05:30</published><updated>2008-04-23T11:06:19.295+05:30</updated><title type='text'>List only Directory/Files in ls command</title><content type='html'>ls -l                             (include both directories and files)&lt;br /&gt;&lt;br /&gt;ls -l | grep -v ^d       (include only files in listing)&lt;br /&gt;&lt;br /&gt;ls -l | grep ^d            (include only directories in listing)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-3185043117564870226?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/3185043117564870226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=3185043117564870226' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3185043117564870226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/3185043117564870226'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/04/list-only-directoryfiles-in-ls-command.html' title='List only Directory/Files in ls command'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-1219732545488809259</id><published>2008-04-22T11:53:00.005+05:30</published><updated>2008-04-23T10:48:22.431+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='vi editor'/><title type='text'>Read latest file in vi editor</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;In my daily routine on solaris box, i have to read the latest file in vi. For this i have to run below 2 commands:&lt;br /&gt;&lt;br /&gt;ls -ltr&lt;br /&gt;vi filename&lt;filename&gt;&lt;br /&gt;&lt;br /&gt;I get the latest file name with &lt;span style="font-style: italic;"&gt;ls -ltr&lt;/span&gt; command (last file in the list) and then &lt;span style="font-style: italic;"&gt;vi&lt;/span&gt; to open this file.&lt;br /&gt;&lt;br /&gt;&lt;/filename&gt;&lt;/span&gt;&lt;/span&gt;I was sick of using 2 commands for this simple operation, so i thought of using a single command  using combination of commands; following are the commands which I used for this operation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;vi `ls -ltr|tail -1|awk -F" " '{print $9}'` (includes directory listing)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;vi `ls -ltr|grep -v ^d|tail -1|awk -F" " '{print $9}'`  (ignores directory listing)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;or&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;vi `ls -ltr|tail -1|cut -d":" -f2|cut -d" " -f2`   &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;(includes directory listing)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;vi `ls -ltr|grep -v ^d|tail -1|cut -d":" -f2|cut -d" " -f2`   &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;(ignores directory listing)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-1219732545488809259?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/1219732545488809259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=1219732545488809259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1219732545488809259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/1219732545488809259'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/04/read-latest-file-in-vi-editor.html' title='Read latest file in vi editor'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4214012709003859040</id><published>2008-04-03T16:48:00.003+05:30</published><updated>2008-10-14T20:52:27.252+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cookies'/><title type='text'>Location of firefox cookies ?</title><content type='html'>All the firefox cookies are stored in cookies.txt at &lt;span style="font-weight: bold;"&gt;C:\Documents and Settings\&lt;/span&gt;&lt;i style="font-weight: bold;"&gt;Windows login/user name&lt;/i&gt;&lt;span style="font-weight: bold;"&gt;\Application Data\Mozilla\Firefox\Profiles\profile folder&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;profile&gt;&lt;/profile&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4214012709003859040?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4214012709003859040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4214012709003859040' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4214012709003859040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4214012709003859040'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/04/location-of-firefox-cookies.html' title='Location of firefox cookies ?'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7306057585343972902</id><published>2008-03-31T11:08:00.003+05:30</published><updated>2008-10-23T16:52:11.668+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Testplan plugin in Confluence WIKI</title><content type='html'>Recently in our organization, we started to use Confluence WIKI for documentation purpose. This wiki has a plugin called TestPlan. I liked this plugin very much as it allows us to maintain our test cases and get the test case execution status.&lt;br /&gt;Below is the screenshot of sample testplan:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_6jm1IXePQ5k/R_B5EnKcBMI/AAAAAAAABwg/QEk7uc7ayvk/s1600-h/TestPlan.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183776291242640578" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_6jm1IXePQ5k/R_B5EnKcBMI/AAAAAAAABwg/QEk7uc7ayvk/s400/TestPlan.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is the wiki markup for above sample:&lt;br /&gt;&lt;strong&gt;{testplan:Release  includeJiraLinks=false useFailMacro=false}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;^Feature1&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;//This is comment&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Test1&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Test2&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;^Feature2&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;//This is comment&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Test3&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Test4&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;{testplan}&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7306057585343972902?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7306057585343972902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7306057585343972902' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7306057585343972902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7306057585343972902'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/03/testplan-plugin-in-confluence-wiki.html' title='Testplan plugin in Confluence WIKI'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6jm1IXePQ5k/R_B5EnKcBMI/AAAAAAAABwg/QEk7uc7ayvk/s72-c/TestPlan.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-821500232773138041</id><published>2008-03-26T20:48:00.006+05:30</published><updated>2008-06-27T21:45:33.190+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi editor'/><title type='text'>vi Examples</title><content type='html'>&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;s/pat/text/&lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;substitute 1&lt;sup&gt;st&lt;/sup&gt; match of &lt;code&gt;&lt;span style="line-height: 115%;"&gt;pat&lt;/span&gt;&lt;/code&gt; with &lt;code&gt;&lt;span style="line-height: 115%;"&gt;text&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;s/pat/text/g&lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;substitute every match of &lt;code&gt;&lt;span style="line-height: 115%;"&gt;pat&lt;/span&gt;&lt;/code&gt; with &lt;code&gt;&lt;span style="line-height: 115%;"&gt;text&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;s/pat/text/n&lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;substitute the &lt;code&gt;&lt;span style="line-height: 115%;"&gt;n&lt;sup&gt;th&lt;/sup&gt;&lt;/span&gt;&lt;/code&gt; occurrence of &lt;code&gt;&lt;span style="line-height: 115%;"&gt;pat&lt;/span&gt;&lt;/code&gt; with &lt;code&gt;&lt;span style="line-height: 115%;"&gt;text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code style="color: rgb(255, 0, 0);"&gt;&lt;span style="line-height: 115%;"&gt;:%!sort&lt;/span&gt;&lt;/code&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; or &lt;/span&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:1,$!sort&lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;sort current file &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:5,10s/foo/bar/2&lt;/span&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;change the second occurrence of &lt;code&gt;&lt;span style="line-height: 115%;"&gt;foo&lt;/span&gt;&lt;/code&gt; with &lt;code&gt;&lt;span style="line-height: 115%;"&gt;bar&lt;/span&gt;&lt;/code&gt; on lines 5-10 &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:map g 1G&lt;/span&gt;&lt;span style=""&gt;               &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;map &lt;code&gt;&lt;span style="line-height: 115%;"&gt;g&lt;/span&gt;&lt;/code&gt; to really run &lt;code&gt;&lt;span style="line-height: 115%;"&gt;1G&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;3J&lt;/span&gt;&lt;span style=""&gt;                      &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;Join next 2 lines to current one&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;3,9m$&lt;/span&gt;&lt;span style=""&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;move lines 3 through 9 to the end of the file &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ab w/o without&lt;/span&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;when &lt;code&gt;&lt;span style="line-height: 115%;"&gt;w/o&lt;/span&gt;&lt;/code&gt; is typed change to &lt;code&gt;&lt;span style="line-height: 115%;"&gt;without&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:?foo?,/bar/d&lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;delete from the reverse match of foo until the next match of bar &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:g/{/,/}/&lt;&lt;/span&gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;shift all lines between, and including, a "&lt;code&gt;&lt;span style="line-height: 115%;"&gt;{&lt;/span&gt;&lt;/code&gt;" and a "&lt;code&gt;&lt;span style="line-height: 115%;"&gt;}&lt;/span&gt;&lt;/code&gt;" left &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:$-4,$d&lt;/span&gt;&lt;span style=""&gt;                 &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;delete last five lines of buffer &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:%s/^\(.*\) \(.*\)$/\2 \1/&lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;swap everything before and after the first space &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;d''&lt;/span&gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;delete from current position to line of last jump&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Perl&lt;/span&gt; &lt;span style=""&gt;                                       &lt;/span&gt;matches Perl&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^Perl&lt;/span&gt;&lt;span style=""&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;                                   &lt;/span&gt; matches Perl at beginning of line &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Perl$&lt;/span&gt;&lt;span style=""&gt;                                      &lt;/span&gt; matches Perl at end of line &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^Perl$&lt;/span&gt; &lt;span style=""&gt;                                  &lt;/span&gt;matches Perl as the only word on line &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^$&lt;/span&gt; &lt;span style=""&gt;                                          &lt;/span&gt;matches the empty line &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^..*$&lt;/span&gt;&lt;span style=""&gt;                                      &lt;/span&gt; matches a line with at least one character &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.*&lt;/span&gt;&lt;span style=""&gt;                                            &lt;/span&gt; matches any string of characters including none &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^[ ^I]*$&lt;/span&gt; &lt;span style=""&gt;                               &lt;/span&gt;as above but line can also contain spaces and/or tabs(^I)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; [pP]erl&lt;/span&gt;&lt;span style=""&gt;                 &lt;/span&gt;&lt;span style=""&gt;               &lt;/span&gt;matches perl or Perl &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[aA][nN] &lt;/span&gt;&lt;span style=""&gt;                             &lt;/span&gt;matches an, aN, An, AN &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;p[aeiou]g&lt;/span&gt; &lt;span style=""&gt;                           &lt;/span&gt;second letter is a vowel &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;i[^aeiou]g&lt;/span&gt; &lt;span style=""&gt;                          &lt;/span&gt;second letter is not a vowel &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;p.g&lt;/span&gt; &lt;span style=""&gt;                                         &lt;/span&gt;second letter is anything &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^....$&lt;/span&gt; &lt;span style=""&gt;                                     &lt;/span&gt;matches a line with exactly four characters &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^\.&lt;/span&gt; &lt;span style=""&gt;                                         &lt;/span&gt;matches any line beginning with a dot &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^\.[0-9a-z]&lt;/span&gt; &lt;span style=""&gt;                         &lt;/span&gt;same with a lowercase letter or digit following &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;^[^\.] &lt;/span&gt;&lt;span style=""&gt;                                   &lt;/span&gt;matches any line that does not begin with a dot &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;;$&lt;/span&gt; &lt;span style=""&gt;                                           &lt;/span&gt;matches a line ending with a semicolon &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;figs*&lt;/span&gt; &lt;span style=""&gt;                                     &lt;/span&gt;matches fig, figs, figss, figsss etc. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[a-z][a-z]*&lt;/span&gt; &lt;span style=""&gt;                          &lt;/span&gt;matches one or more lowercase letters &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[a-zA-Z]&lt;/span&gt; &lt;span style=""&gt;                               &lt;/span&gt;matches any character &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[^0-9a-zA-Z]&lt;/span&gt; &lt;span style=""&gt;                      &lt;/span&gt;matches any symbol (not a letter or number) &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\&amp;amp;ltthe&lt;the&gt;&lt;/the&gt;&lt;/span&gt;&lt;span style=""&gt;                                    &lt;/span&gt; matches the, theater, then &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;the\&gt;&lt;/span&gt; &lt;span style=""&gt;                                   &lt;/span&gt;matches the, breathe &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\&amp;amp;ltthe/&gt;&lt;the\&gt;&lt;/the\&gt;&lt;/span&gt; &lt;span style=""&gt;                               &lt;/span&gt;matches &lt;span style="font-style: italic;"&gt;the&lt;/span&gt;&lt;code&gt;&lt;span style="line-height: 115%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:%s/\&lt;./\u&amp;amp;/g&lt;/span&gt; &lt;span style=""&gt;                                  &lt;/span&gt;turn the first letter of all words to uppercase &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:%s/\&lt;[a-z][!-~]*\&gt;/\u&amp;amp;/g &lt;/span&gt;&lt;span style=""&gt;         &lt;/span&gt;as above&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="courier new" style="margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; :%s/\&lt;[a-z]/\u&amp;amp;/g&lt;/span&gt; &lt;span style=""&gt;                         &lt;/span&gt;as above &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; font-family: courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:%s/.*/\L&amp;amp;/&lt;/span&gt; &lt;span style=""&gt;                                       &lt;/span&gt;turn entire file to lowercase &lt;/span&gt;&lt;/p&gt;  &lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="line-height: 115%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:%s/&lt;[^&gt;]*&gt;//g &lt;/span&gt;&lt;span style=""&gt;                                               &lt;/span&gt;remove strings from file that start with a less than sign and end with a greater than sign (html tags)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:1,$s/1$/0/g&lt;/span&gt;  Replace 1 to 0 from each line of the file, if last character of the line is 1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;:1,$s/^1/0/g&lt;/span&gt;  Replace 1 to 0 from each line of the file, if first character of the line is 1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-821500232773138041?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/821500232773138041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=821500232773138041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/821500232773138041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/821500232773138041'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/03/vi-examples.html' title='vi Examples'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4526910193572099660</id><published>2008-03-11T12:59:00.003+05:30</published><updated>2008-03-11T13:04:10.781+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cvs'/><title type='text'>see the differences between two branches of CVS</title><content type='html'>To see all of the changes between two branches&lt;br /&gt;&lt;br /&gt;1. checkout the source from HEAD/or branch, CD into it&lt;br /&gt;2. run command cvs -q diff --brief -r  brach_to_compare&lt;branch&gt; | grep Index&lt;/branch&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4526910193572099660?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4526910193572099660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4526910193572099660' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4526910193572099660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4526910193572099660'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/03/see-differences-between-two-branches-of.html' title='see the differences between two branches of CVS'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-2827854182325699327</id><published>2008-03-10T21:35:00.003+05:30</published><updated>2008-03-10T22:26:40.416+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi editor'/><title type='text'>vi environment variables</title><content type='html'>set&lt;br /&gt;      you can customize your environment with this command by typing set &lt;span style="font-style: italic;"&gt;var=value&lt;/span&gt;, this will set the specified &lt;span style="font-style: italic;"&gt;var&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;value&lt;/span&gt; for a scalar variable. For boolean varaibles, use &lt;span style="font-style: italic;"&gt;set var&lt;/span&gt; to set and &lt;span style="font-style: italic;"&gt;set novar&lt;/span&gt; to unset. You can see which variables are set by just typing the &lt;span style="font-style: italic;"&gt;set&lt;/span&gt; by its itself. You can see a list of all variables by typing &lt;span style="font-style: italic;"&gt;set all&lt;/span&gt;. some environment variables are specific to the ex editor and some are specific  to the vi editor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;boolean variables:&lt;/span&gt;&lt;br /&gt;&lt;table class="MsoNormalTable" style="" border="0" cellpadding="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;autoindent(ai)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;begin   editing next line at same level of indent-ion as this one. &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;autowrite(aw)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;write   current buffer before leaving &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;exrc(ex)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;tells &lt;i&gt;vi&lt;/i&gt;/&lt;i&gt;ex&lt;/i&gt;   if it should read the .exrc file in the current directory(this can be a   security risk). &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;errorbells&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;editor   sends a beep to the terminal when an incorrect &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;flash&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;inverse   the screen on an error instead of producing a bell &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;ignorecase(ic)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;ignore   case of characters in searches. &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;lisp&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;enter lisp   mode &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;list&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;place a &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;$&lt;/span&gt;&lt;/em&gt; at the end of each line and a &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;^I&lt;/span&gt;&lt;/em&gt; on each tab. &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;magic&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;allow &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;.&lt;/span&gt;&lt;/em&gt;, &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;[&lt;/span&gt;&lt;/em&gt;,   and &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;*&lt;/span&gt;&lt;/em&gt; to be interpreted as special   characters in RE's. &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;modelines&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;execute   the first and last 5 lines of the file if of the form: &lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;ex:command:&lt;/span&gt;&lt;/code&gt; or &lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;vi:command:&lt;/span&gt;&lt;/code&gt; &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;number(nu)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;number   lines in left margin &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;showmatch(sm)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;when   closing a paren., brace or bracket; move the visual cursor to opening item to   check scope &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;showmode(smd)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;show type   of insert mode &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;wrapscan(ws)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;when   searching and at bottom of file, continue searching from the top &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scalar variables:&lt;/span&gt;&lt;br /&gt;&lt;table class="MsoNormalTable" style="" border="0" cellpadding="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;directory&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;the   location of the temporary directory used by &lt;i&gt;vi&lt;/i&gt; &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;paragraphs(para)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;macros to   signify the beginning of a paragraph &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;report&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;i&gt;vi&lt;/i&gt;   will notify you if you change more lines than the value of &lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;report&lt;/span&gt;&lt;/code&gt; &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;sections(sect)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;macros to   signify the beginning of a section &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;shell&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;The shell   to use when executing the command &lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;:sh&lt;/span&gt;&lt;/code&gt;   or &lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;:!&lt;/span&gt;&lt;/code&gt; &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;shiftwidth(sw)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;number of   spaces to to insert on a shift operation &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;showmatch(sm)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;show the   match of &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;)&lt;/span&gt;&lt;/em&gt; and &lt;em&gt;&lt;span style=";font-family:&amp;quot;;" &gt;}&lt;/span&gt;&lt;/em&gt;   when typed &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;tabstop&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;the   length, in characters, of a tabstop &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;term&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;holds the   name of the terminal type being used &lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;wrapmargin(wm)&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="padding: 0.75pt;"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;split   lines at the column which is equal to the value of &lt;code&gt;&lt;span style="line-height: 115%;font-size:10;" &gt;wrapmargin&lt;/span&gt;&lt;/code&gt;&lt;span style="line-height: 115%;font-size:12;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-2827854182325699327?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/2827854182325699327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=2827854182325699327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2827854182325699327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/2827854182325699327'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/03/vi-environment-variables.html' title='vi environment variables'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7819337382263444123</id><published>2008-03-10T21:31:00.002+05:30</published><updated>2008-03-10T21:34:17.949+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi editor'/><title type='text'>avoid error "Not owner of .exrc or .exrc is group or world writable" in vi</title><content type='html'>set this environment variable&lt;br /&gt;&lt;br /&gt;export EXINIT="set noexrc"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7819337382263444123?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7819337382263444123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7819337382263444123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7819337382263444123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7819337382263444123'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/03/avoid-error-not-owner-of-exrc-or-exrc.html' title='avoid error &quot;Not owner of .exrc or .exrc is group or world writable&quot; in vi'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5240526211876994128</id><published>2008-03-08T22:18:00.028+05:30</published><updated>2008-06-13T22:25:47.075+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='vi editor'/><title type='text'>vi Editor Commands</title><content type='html'>The VI editor is a screen-based editor used by many Unix users. The VI editor has powerful features to aid programmers, but many beginning users avoid using VI because the different features overwhelm them.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;a name="A1.1"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;b&gt;General startup&lt;br /&gt;&lt;/b&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       To use vi: vi&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;To exit vi and save changes: ZZ or :wq&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       To exit vi without saving changes: :q!&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;To enter vi command mode: [esc]&lt;br /&gt;&lt;b&gt;       &lt;/b&gt; Read the original file back in so that you can start over.: :e!&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.1"&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;b&gt;&lt;a name="A1.2"&gt;&lt;/a&gt;&lt;/b&gt;&lt;a name="A1.1"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;b&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;Counts&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       A number preceding any vi command tells vi to repeat that command that many times.&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;a name="A1.6"&gt;&lt;b&gt;Deleting&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;x&lt;span style=""&gt;       &lt;/span&gt;delete character under cursor&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;X&lt;span style=""&gt;       &lt;/span&gt;delete character before cursor&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;dd&lt;span style=""&gt;      &lt;/span&gt;delete line under cursor&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;dw &lt;span style=""&gt;     &lt;/span&gt;delete word under cursor&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;db&lt;span style=""&gt;      &lt;/span&gt;delete word before cursor&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;D&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;delete to the end of line from the current cursor position&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;d^&lt;span style=""&gt;      &lt;/span&gt;delete from current cursor position to the beginning of the line&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;d$&lt;span style=""&gt;      &lt;/span&gt;delete from current cursor position to the end of the line&lt;br /&gt;&lt;br /&gt;&lt;a name="A1.6"&gt;&lt;b&gt;Copy/Paste Text&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;yy&lt;span style=""&gt;     &lt;/span&gt;copies line&lt;br /&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       P&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;      paste copied data before cursor&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;p&lt;span style=""&gt;      paste copied data after cursor&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;a name="A1.6"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.9"&gt;&lt;b&gt;Find Commands&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;?&lt;span style=""&gt;       &lt;/span&gt;finds a word going backwards&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;/&lt;span style=""&gt;       &lt;/span&gt;finds a word going forwards&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;f&lt;span style=""&gt;       &lt;/span&gt;finds a character on the line under the&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;cursor going forward&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;F&lt;span style=""&gt;       &lt;/span&gt;finds a character on the line under the&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;cursor going backwards&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;t&lt;span style=""&gt;       &lt;/span&gt;find a character on the current line going&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;forward and stop one character before it&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;T&lt;span style=""&gt;       &lt;/span&gt;find a character on the current line going&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;backward and stop one character before it&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;;&lt;span style=""&gt;       &lt;/span&gt;repeat last f, F, t, T&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;,&lt;span style=""&gt;       &lt;/span&gt;repeat last f, F, t, T going backwards&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;n&lt;span style=""&gt;       &lt;/span&gt;repeat last search given by ‘/’ or ‘?’&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;N&lt;span style=""&gt;       &lt;/span&gt;repeat last search given by ‘/’ or ‘?’ going backwards&lt;a name="A1.6"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;a name="A1.10"&gt;&lt;b&gt;Miscellaneous Commands&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;.&lt;span style=""&gt;       &lt;/span&gt;repeat last command&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;u&lt;span style=""&gt;       &lt;/span&gt;undoes last command issued&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;U&lt;span style=""&gt;       &lt;/span&gt;undoes all commands on one line&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;xp&lt;span style=""&gt;      &lt;/span&gt;deletes first character and inserts after&lt;/span&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;second (swap)&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;J&lt;span style=""&gt;       &lt;/span&gt;join current line with the next line&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;^G&lt;span style=""&gt;      &lt;/span&gt;display current line number&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;%&lt;span style=""&gt;       &lt;/span&gt;if at one parenthesis, will jump to its mate&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;mx&lt;span style=""&gt;      &lt;/span&gt;mark current line with character x&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;'x&lt;span style=""&gt;      &lt;/span&gt;find line marked with character x&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;^^&lt;span style=""&gt;      &lt;/span&gt;Go back to last file &lt;/span&gt;&lt;/pre&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;pre&gt;&lt;a name="A1.6"&gt;&lt;b&gt;READING/WRITING FILES&lt;br /&gt;&lt;/b&gt;&lt;o:p&gt;        &lt;/o:p&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;:r filename&lt;span style=""&gt;    Copies filename after cursor in file currently editing&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;:n&lt;span style=""&gt;      &lt;/span&gt;Start editing next file in list&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;:rew&lt;span style=""&gt;    re&lt;/span&gt;&lt;/span&gt;wind file list, start editing 1st file on argument list&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;:w&lt;span style=""&gt;      &lt;/span&gt;Saves the current file without quitting&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name=""&gt;&lt;b&gt;MOVING&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       :#  &lt;span style=""&gt;    Move to line #&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;:$&lt;span style=""&gt;      &lt;/span&gt;Move to last line of file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name=""&gt;&lt;b&gt;Character/Line Formatting&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ~  &lt;span style=""&gt;    Switch the case of the character under cursor&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;&lt;span style=""&gt;      &lt;/span&gt;Shifts the line upto where to the left by one shiftwidth&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       &lt;&lt; &lt;span style=""&gt;    Shifts the current line to the left, and can be specified with a count&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&gt;&lt;span style=""&gt;      &lt;/span&gt;Shifts the line upto where to the right by one shiftwidth&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       &gt;&gt; &lt;span style=""&gt;    Shifts the current line to the right, and can be specified with a count&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;J&lt;span style=""&gt;      &lt;/span&gt;Join the current line with the next one.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name=""&gt;&lt;b&gt;SHELL ESCAPE&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;        &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;:!'CMD'  &lt;span style=""&gt;    Executes CMD as a shell command&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;        :!sh         Fork shell in vi; hit ctrl-d to go back to vi&lt;br /&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name=""&gt;&lt;b&gt;INSERTING&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       r  &lt;span style=""&gt;    replace character under cursor with next character typed&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;R&lt;span style=""&gt;      &lt;/span&gt;keep replacing character until [esc] is hit&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       i  &lt;span style=""&gt;    insert before cursor&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;I&lt;span style=""&gt;      &lt;/span&gt;insert from the beginning of line&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       a  &lt;span style=""&gt;    append after cursor&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;A&lt;span style=""&gt;      &lt;/span&gt;append at end of line&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       o  &lt;span style=""&gt;    open line below cursor and enter append mode&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;O&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;open line above cursor and enter append mode&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       c  &lt;span style=""&gt;    change until . "cc" changes the current line&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       C  &lt;span style=""&gt;    change to the end of line from the current cursor position&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       s  &lt;span style=""&gt;    substitute one character under the cursor and go into insert mode&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;S&lt;span style=""&gt;      &lt;/span&gt;change an entire line&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/a&gt;&lt;a name=""&gt;&lt;b&gt;Screen Movement&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       G  &lt;span style=""&gt;    move to the last line in the file&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       xG&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;     move to line x&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       z+  &lt;span style=""&gt;   move current line to top of screen&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       z&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;      move current line to the middle of screen&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       z-  &lt;span style=""&gt;   move current line to the bottom of screen&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       ^F&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;     move forward one screen&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^B  &lt;span style=""&gt;   move backward one line&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       ^D&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;     move forward one half screen&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^U  &lt;span style=""&gt;   move backward one half screen&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       ^R&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;     redraw screen (does not work with vt100 type terminals)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^L  &lt;span style=""&gt;   redraw screen (does not work with Televideo terminals)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name=""&gt;&lt;b&gt;Cursor Movement&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       h  &lt;span style=""&gt;    move left&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;j&lt;span style=""&gt;      move down&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       k  &lt;span style=""&gt;    move up&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       l  &lt;span style=""&gt;    move right&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;[return]&lt;span style=""&gt;    &lt;/span&gt;move to the beginning of next line&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       $  &lt;span style=""&gt;    last column on the current line&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       0  &lt;span style=""&gt;    move cursor to the first column on the current line&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;^&lt;span style=""&gt;      &lt;/span&gt;move cursor to the first nonblank column on the current line&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       w  &lt;span style=""&gt;    move to the beginning of the previous word or punctuation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       W  &lt;span style=""&gt;    move past the next space&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;b&lt;span style=""&gt;      &lt;/span&gt;move to the beginning of the previous word or punctuation mark&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       B&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;move to the beginning of the previous word, ignores punctuation&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       e  &lt;span style=""&gt;    end of next word or punctuation mark&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       E  &lt;span style=""&gt;    end of next word, ignoring punctuation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       H  &lt;span style=""&gt;    move cursor to the top of the screen&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       M  &lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;move cursor to the middle of the screen&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       L  &lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;move cursor to the bottom of the screen&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^H &lt;span style=""&gt;    move cursor one space to the left&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^J &lt;span style=""&gt;    move cursor down one line in same column&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^M &lt;span style=""&gt;    move to the first character on the next line&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^N &lt;span style=""&gt;    move cursor down one line in same column&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       ^P &lt;span style=""&gt;    move cursor up &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;one line in same column&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       %&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;      move cursor to the matching parenthesis or brace&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       (  &lt;span style=""&gt;    move cursor to the beginning of a sentence&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;)&lt;span style=""&gt;      move &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;cursor to the beginning of the next sentence&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       {  &lt;span style=""&gt;    move cursor to the preceding paragraph&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;}&lt;span style=""&gt;      move cursor to the next paragraph&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       |  &lt;span style=""&gt;    move cursor to the column specified by the count&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;+&lt;span style=""&gt;      move cursor to the first non-whitespace character in the next line&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;       -  &lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;move cursor to the first non-whitespace character in the previous line&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;span style=""&gt;_  &lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style=""&gt;move cursor to the first non-whitespace character in the current line&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;a name="A1.6"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;a name="A1.6"&gt;&lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-5240526211876994128?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5240526211876994128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5240526211876994128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5240526211876994128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5240526211876994128'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/03/vi-editor-commands.html' title='vi Editor Commands'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6009745782404975302</id><published>2008-01-09T12:09:00.000+05:30</published><updated>2008-01-09T12:11:37.168+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Finding bugs in the application</title><content type='html'>A QA engineer always thinks of a bug in the application and always try to find them. Finding bugs in any application is really a challenging work and if you find bugs, it gives you the satisfaction of your job. Below are few tips by which you can find bugs in the application:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Understand the application/module in depth before starting the testing&lt;br /&gt;2. Prepare good functional test cases before starting the testing.&lt;br /&gt;3. Create all possible type of test data  before testing.&lt;br /&gt;4. Test the system in different environments.&lt;br /&gt;5. When you tired or bored by testing same module or application, do MONKEY TESTING, really it works. I tried it many times and got good bugs :)&lt;br /&gt;6. Try some standard test cases for which you found the bugs in some different application. &lt;br /&gt;7. Test the application with dedication and passion.&lt;br /&gt;8. Think alike of different users while testing the application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Doing QA is like being a goalkeeper. You can make a hundred brilliant saves but the only shot that people remember is the one that gets past you.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6009745782404975302?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6009745782404975302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6009745782404975302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6009745782404975302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6009745782404975302'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2008/01/finding-bugs-in-application.html' title='Finding bugs in the application'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-713499731967730891</id><published>2007-12-29T23:21:00.000+05:30</published><updated>2007-12-29T23:49:28.245+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Read properties from ant build file using perl</title><content type='html'>I want to read some properties from my ant build file in my perl script. I wrote a sample perl script for it. below is the script:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6jm1IXePQ5k/R3aOmr7UlSI/AAAAAAAABvQ/J7ssMeFsANc/s1600-h/readBuildFile.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_6jm1IXePQ5k/R3aOmr7UlSI/AAAAAAAABvQ/J7ssMeFsANc/s400/readBuildFile.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5149460019222451490" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-713499731967730891?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/713499731967730891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=713499731967730891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/713499731967730891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/713499731967730891'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/12/read-properties-name-from-ant-build.html' title='Read properties from ant build file using perl'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6jm1IXePQ5k/R3aOmr7UlSI/AAAAAAAABvQ/J7ssMeFsANc/s72-c/readBuildFile.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-8747460565461822328</id><published>2007-12-27T15:31:00.000+05:30</published><updated>2008-10-14T20:52:52.968+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Check all arguments of a running process</title><content type='html'>Many Java processes have long command lines, and as as a regular user, I may wish to determine that my java processes are running with the correct arguments or not.&lt;br /&gt;unfortunately with the &lt;span style="font-weight: bold;"&gt;ps &lt;/span&gt;(/usr/bin/ps) command, users can only see the first 80 characters of command line, rest are ignored. So the user can not see the all command line arguments.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;1. Use &lt;span style="font-weight: bold;"&gt;pargs&lt;/span&gt; argument (ex. ps -eaf | pargs -a &amp;lt;pid&amp;gt;)&lt;br /&gt;or&lt;br /&gt;2. Use &lt;span style="font-weight: bold;"&gt;/usr/ucb/ps &lt;/span&gt;command ( /usr/ucb/ps -awwx | grep &amp;lt;pid&amp;gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-8747460565461822328?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/8747460565461822328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=8747460565461822328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8747460565461822328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/8747460565461822328'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/12/check-all-arguments-of-running-process.html' title='Check all arguments of a running process'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4610154573291371229</id><published>2007-12-26T13:47:00.001+05:30</published><updated>2008-03-17T19:12:05.576+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash version'/><title type='text'>What version of Flash do you have?</title><content type='html'>Visit following link to display the currently installed version of the Flash player.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/www.adobe.com/products/flash/about"&gt;www.adobe.com/products/flash/about&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15507"&gt;http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15507&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4610154573291371229?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4610154573291371229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4610154573291371229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4610154573291371229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4610154573291371229'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/12/what-version-of-flash-do-you-have.html' title='What version of Flash do you have?'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6492848082622689909</id><published>2007-12-24T22:12:00.000+05:30</published><updated>2008-10-14T20:53:16.245+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='perl script'/><title type='text'>Kill java processes from perl script</title><content type='html'>Requirement:- If multiple java processes are running on your system and you want to kill only few specific from them.&lt;br /&gt;If we do it manually then we have to perform below two steps:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;jps&lt;/span&gt; (it will return all the java processes running on the system) in below format:&lt;br /&gt;&amp;lt;pid&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;process name&amp;gt;&lt;br /&gt;&amp;lt;pid&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;process name&amp;gt;&lt;br /&gt;&amp;lt;pid&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;process name&amp;gt;&lt;br /&gt;&amp;lt;pid&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;process name&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;in my case i got the below output from above command:&lt;br /&gt;&lt;br /&gt;1234    Server1&lt;br /&gt;1334    Server2&lt;br /&gt;1454    Server3&lt;br /&gt;1264    Server4&lt;br /&gt;1238    Server5&lt;br /&gt;1244    Server6&lt;br /&gt;&lt;br /&gt;2. now i have the process id of all the java processes so i can kill them using kill command, (let say if i have to kill only Server1, Server5 , then)&lt;br /&gt;&lt;br /&gt;kill -9 1234&lt;br /&gt;kill -9 1238&lt;br /&gt;&lt;br /&gt;By using perl script, i can write below simple script which will do my above task:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;foreach $_ (`jps`) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   my($pid,$pname) = /(\S+)\s+(.*)/;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;      if($pname eq "Server1" | $pname eq "Server5" ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       print("Killing Process : $pname ($pid) \n");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       system("kill -9 $pid");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; }&lt;/span&gt;&lt;/process&gt;&lt;/pid&gt;&lt;/process&gt;&lt;/pid&gt;&lt;/process&gt;&lt;/pid&gt;&lt;/process&gt;&lt;/pid&gt;&lt;/process&gt;&lt;/pid&gt;&lt;/process&gt;&lt;/pid&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6492848082622689909?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6492848082622689909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6492848082622689909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6492848082622689909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6492848082622689909'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/12/kill-java-processes-from-perl-script.html' title='Kill java processes from perl script'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6079969096854896170</id><published>2007-12-17T18:53:00.001+05:30</published><updated>2008-03-17T19:13:52.447+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='google tip'/><title type='text'>Searching tips in Google</title><content type='html'>1. Explicit Phrase: Lets say you are looking for content about internet marketing. &lt;a style="background: transparent url(http://files.adbrite.com/mb/images/green-double-underline-006600.gif) repeat-x scroll center bottom; cursor: pointer; color: rgb(0, 102, 0); text-decoration: none; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-bottom: -2px; padding-bottom: 2px;" name="AdBriteInlineAd_marketing" id="AdBriteInlineAd_marketing" target="_top"&gt;&lt;/a&gt;&lt;span&gt;Instead of just typing &lt;span&gt;internet marketing&lt;/span&gt; into the Google search box, you will likely be better off searching explicitly for the phrase. To do this, simply enclose the search phrase within double quotes. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;“internet marketing” &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;2. Exclude Words: Lets say you want to search for content about internet marketing, but you want to exclude any results that contain the term advertising. To do this, simply use the “-“ sign in front of the word you want to exclude.&lt;br /&gt;&lt;br /&gt;Example &lt;strong&gt;Search: internet marketing -advertising &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3. Site Specific Search: Often, you want to search a specific website for content that matches a certain phrase. Even if the site doesn’t support a built-in search feature, you can use Google to search the site for your term. Simply use the “site:somesite.com” modifier.&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;“internet marketing” site:&lt;a href="http://www.smallbusinesshub.com/" title="Linkification: http://www.smallbusinesshub.com" class="linkification-ext"&gt;www.smallbusinesshub.com&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;4. Similar Words and Synonyms: Let’s say you want to include a word in your search, but want to include results that contain similar words or synonyms. To do this, use the “~” in front of the word.&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;“internet marketing” ~professional&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;5. Specific Document Types: If you’re looking to find results that are of a specific type, you can use the modifier “filetype:”. For example, you might want to find only PowerPoint presentations related to internet marketing.&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;“internet marketing” filetype:ppt&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;6. This OR That: By default, when you do a search, Google will include all the terms specified in the search. If you are looking for any one of one or more terms to match, then you can use the OR operator. (Note: The OR has to be capitalized).&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;internet marketing OR advertising&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;7. Phone Listing: Let’s say someone calls you on your mobile number and you don’t know how it is. If all you have is a phone number, you can look it up on Google using the phonebook feature.&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;phonebook:617-555-1212&lt;/strong&gt; (note: the provided number does not work – you’ll have to use a real number to get any results).&lt;br /&gt;&lt;br /&gt;8. Area Code Lookup: If all you need to do is to look-up the area code for a phone number, just enter the 3-digit area code and Google will tell you where it’s from.&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;617 &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;9. Numeric Ranges: This is a rarely used, but highly useful tip. Let’s say you want to find results that contain any of a range of numbers. You can do this by using the X..Y modifier (in case this is hard to read, what’s between the X and Y are two periods. This type of search is useful for years (as shown below), prices or anywhere where you want to provide a series of numbers.&lt;br /&gt;&lt;br /&gt;Example: president 1940..1950&lt;br /&gt;&lt;br /&gt;&lt;span&gt; 10. Stock (Ticker Symbol): Just enter a valid ticker symbol as your search term and Google will give you the current financials and a quick thumb-nail chart for the stock. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;GOOG &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;11. Calculator: The next time you need to do a quick calculation, instead of bringing up the Calculator applet, you can just type your expression in to Google.&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;48512 * 1.02&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;12. Conversion: The next time you need to do a quick calculation on the temperature, you can just type your expression in to Google.&lt;br /&gt;&lt;br /&gt;Example: &lt;span style="font-weight: bold;"&gt;72F in C&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;   The conversion feature works for a whole host of things: "100cm in inches", "100us gallons in uk gallons", "100bar in psi", "100 GBP in USD", etc.&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt; 13. Word Definitions: If you need to quickly look up the &lt;span&gt;definition of&lt;/span&gt; a word or phrase, simply use the “define:” command. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example: &lt;strong&gt;define:plethora &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;14. Searching for URLs containing certain words. Use the "inurl:word" modifier.&lt;br /&gt;&lt;br /&gt;Example &lt;strong&gt;site:i-hack.org inurl:psp&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6079969096854896170?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6079969096854896170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6079969096854896170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6079969096854896170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6079969096854896170'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/12/searching-tips-in-google.html' title='Searching tips in Google'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-7947559547091681080</id><published>2007-11-20T17:24:00.001+05:30</published><updated>2008-10-23T16:50:43.903+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Find Nth Max salary of employee</title><content type='html'>I have following table in the DB&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Create table Employee&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Eid int,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Name varchar(10),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Salary money&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;insert few values in the table:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Insert into Employee values (1,\'harry\',3500)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Insert into Employee values (2,\'jack\',2500)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Insert into Employee values (3,\'john\',2500)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Insert into Employee values (4,\'xavier\',5500) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Insert into Employee values (5,\'steven\',7500) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Insert into Employee values (6,\'susana\',2400) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A simple query that can find the employee with the maximum salary, would be:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Select * from Employee where salary = (Select max(Salary) from Employee)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[The SQL Engine evaluates the inner most query and then moves to the next level (outer query). So, in the above example inner query i.e. Select max(Salary) from Employee is evaluated first. This query will return a value of 7500 (based on the sample data shown as above). This value is substituted in the outer query and it is evaluated as: ]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Select * from Employee where salary = (7500)&lt;/span&gt;&lt;br /&gt;Returns:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Eid Name Salary&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 5 steven 7500&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the same syntax is applied to find out the 2nd or 3rd or 4th level of salary, the query would become bit complex to understand. See the example below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Select * from Employee where salary = &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   (Select max(Salary) from Employee where salary &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt; (Select max(Salary) from Employee where &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   Salary &lt; (Select max(Salary) from Employee where &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;       Salary &lt; …………………………………………… N&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The above query would go on and on, depending on the level of salary that is to be determined. As mentioned earlier, the SQL Engine evaluates the inner most query first and moves the next outer level. One wouldn’t want to write such a big query just to find out this simple information.&lt;br /&gt;&lt;br /&gt;The same result can be achieved with a simple syntax and easily understandable logic, by using a CORRELATED SUBQUERY.  Correlated sub-query is a performance overhead to the database server and so, you have to use it only if it is required. Avoid using Correlated subquery on large tables, as the inner query is evaluated for each row of the outer query&lt;br /&gt;&lt;br /&gt;Following is the query that captures the Nth maximum value:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; Select * From Employee E1 Where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;     (N-1) = (Select Count(Distinct(E2.Salary)) From Employee E2 Where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;   E2.Salary &gt; E1.Salary)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; (Where N is the level of Salary to be determined) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the above example, the inner query uses a value of the outer query in its filter condition meaning; the inner query cannot be evaluated before evaluating the outer query. So each row in the outer query is evaluated first and the inner query is run for that row. Let’s look into the background process of this query, by substituting a value for N i.e. 4,(Idea is to find the 4th maximum salary):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Select * From Employee E1 Where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;     (4-1) = (Select Count(Distinct(E2.Salary)) From Employee E2 Where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   E2.Salary &gt; E1.Salary)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; Since the outer query’s value is referred in the inner query, the operation is done row-by-row. Based on the sample data as shown above, the process starts with the following record:&lt;br /&gt;&lt;br /&gt;Employee E1&lt;br /&gt;----------------------------------&lt;br /&gt;Eid Name Salary&lt;br /&gt;1 harry 3500&lt;br /&gt;The salary of this record is substituted in the inner query and evaluated as:&lt;br /&gt;&lt;br /&gt;Select Count(Distinct(E2.Salary)) From Employee E2&lt;br /&gt;Where E2.Salary &gt; 3500&lt;br /&gt;Above query returns 2 (as there are only 2 salaries greater than 3500). This value is substituted in the outer query and will be evaluated as:&lt;br /&gt;&lt;br /&gt;Select * From Employee E1 Where (4-1) = (2)&lt;br /&gt;condition evaluates to FALSE and so, this record is NOT fetched in the result.&lt;br /&gt;&lt;br /&gt;Next the SQL Engine processes the 2nd record which is:&lt;br /&gt;&lt;br /&gt; Employee E1&lt;br /&gt;----------------------------------&lt;br /&gt;Eid Name Salary&lt;br /&gt;2 jack 2500&lt;br /&gt;Now the inner query is evaluated as:&lt;br /&gt;&lt;br /&gt;Select Count(Distinct(E2.Salary)) From Employee E2&lt;br /&gt;Where E2.Salary &gt; 2500&lt;br /&gt;This query returns a value of 3 (as there are 3 salaries greater than 2500). The value is substituted in the outer query and evaluated as:&lt;br /&gt;&lt;br /&gt;Select * From Employee E1 Where (4-1) = (3)&lt;br /&gt;condition evaluates to TRUE and so, this record is fetched in the result. This operation continues for all the remaining records. Finally the result shows these 2 records:&lt;br /&gt;&lt;br /&gt;Eid Name Salary&lt;br /&gt;2 jack 2500&lt;br /&gt;3 john  2500&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-7947559547091681080?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/7947559547091681080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=7947559547091681080' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7947559547091681080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/7947559547091681080'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/11/find-nth-max-salary-of-employee.html' title='Find Nth Max salary of employee'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-6997696680644021708</id><published>2007-11-18T18:17:00.000+05:30</published><updated>2007-11-18T18:20:20.922+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='tribal fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='online advertising'/><category scheme='http://www.blogger.com/atom/ns#' term='exponential'/><title type='text'>Exponential(TM) Identifies Top Online Advertising Trends For 2008</title><content type='html'>Exponential(TM) Interactive, Inc., the technology-driven media services company that delivers innovative products and services to meet the demands of advertisers and publishers, today announced online advertising trends for 2008. The parent company of Tribal Fusion, one of the industry's leading online ad networks, Exponential has identified top trends emerging from technology and business innovation, creativity and brand measurement. Trends to watch include: one-to-one marketing, online video advertising, new local advertising platforms, innovation in ad effectiveness measures, marketing opportunities from the semantic web, and virtual worlds.&lt;br /&gt;&lt;br /&gt;Read Full Article &lt;a href="http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&amp;amp;STORY=/www/story/11-15-2007/0004706799&amp;amp;EDATE="&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-6997696680644021708?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/6997696680644021708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=6997696680644021708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6997696680644021708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/6997696680644021708'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/11/exponentialtm-identifies-top-online.html' title='Exponential(TM) Identifies Top Online Advertising Trends For 2008'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-881346822343911356</id><published>2007-10-30T22:15:00.003+05:30</published><updated>2011-12-26T11:07:26.804+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='screen'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Unix Screen utility</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="entry"&gt;&lt;div class="snap_preview"&gt;Screen, this command might not be well known to many people but its one of those programs that you just can’t stop using once you’ve started. Previously I used VNC to connect the remote servers, but now i have stopped using it and use SCREEN on a regular daily basis and it’s really easy to use.&lt;br /&gt;Screen program provides the following functionality:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Remote terminal session management (detaching or sharing terminal sessions)&lt;/li&gt;&lt;li&gt;Unlimited windows (unlike the hardcoded number of Linux virtual consoles)&lt;/li&gt;&lt;li&gt;Scrollback buffer (not limited to video memory like Linux virtual consoles)&lt;/li&gt;&lt;li&gt;Copy/paste between windows&lt;/li&gt;&lt;li&gt;Split terminal (horizontally) into multiple regions&lt;/li&gt;&lt;li&gt;Locking other users out of terminal&lt;/li&gt;&lt;li&gt;Screen is an easy way to allow processes to continue running after the session is terminated, if you lose connection screen will save your spot&lt;/li&gt;&lt;/ul&gt;Following is the content of my ~/.screenrc file&lt;br /&gt;************************************************************&lt;br /&gt;startup_message off&lt;br /&gt;vbell off&lt;br /&gt;caption always “%{= bb}%{+b w}%n %h %=%t %c”&lt;br /&gt;hardstatus alwayslastline “%-Lw%{= BW}%50&amp;gt;%n%f* %t%{-}%+Lw%&amp;lt;” activity “Activity in %t(%n)” shell -/bin/bash &lt;br /&gt;************************************************************ &lt;br /&gt;&lt;u&gt;Screen Commands&lt;/u&gt;&lt;br /&gt;(screen)                                 Start screen&lt;br /&gt;(screen -S vishnu) Create a screen session with the name vishnu&lt;br /&gt;(screen -r vishnu) reconnect to the session with the name vishnu&lt;br /&gt;(screen -x                        ) Connect to an existing screen session&lt;br /&gt;(screen -d                       ) detaching a screen session&lt;br /&gt;(screen -r)                         reattaching the screen session&lt;br /&gt;(Ctrl+a c                                        ) New window&lt;br /&gt;(Ctrl+a n                                    ) Next Window&lt;br /&gt;(Ctrl+a p                             ) Previous Window&lt;br /&gt;(Ctrl+a  ”                               ) Select window from list&lt;br /&gt;(Ctrl+a Ctrl+a)              Previous window viewed&lt;br /&gt;(Ctrl+a &amp;lt;0-9&amp;gt;              ) Select the numbered window&lt;br /&gt;(Ctrl+a A                              ) Set window title&lt;br /&gt;(Ctrl+a K                   ) Kill window&lt;br /&gt;(Ctrl+a d                              ) Detach screen from terminal&lt;br /&gt;(Ctrl+a x                              ) Lock Session&lt;br /&gt;(Ctrl+a :                               ) Goto screen command prompt&lt;br /&gt;(Ctrl+a ?                               ) Show key binding/command names&lt;br /&gt;(Ctrl+s                                       ) Pause the output on screen&lt;br /&gt;(Ctrl+q                                       ) Resume the output on screen&lt;br /&gt;(Ctrl+a :escape ^Ww) Change key binding to w character&lt;br /&gt;(Ctrl-a * )     List all currently attached displays. (displays)&lt;br /&gt;(Ctrl-a Ctrl\)  Kill all windows and terminate screen. (quit)&lt;br /&gt;(Ctrl-a w )    List all windows. (windows)&lt;br /&gt;(Ctrl-a h )    Write contents of the current window to the file hardcopy.n. (hardcopy)&lt;br /&gt;(Ctrl-a H )    Begin/end logging of the current window to the file screenlog.n. (log)&lt;br /&gt;(Ctrl-a ' )    Prompt for window name or number to switch to. (select)&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/2927253854689338790-881346822343911356?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/881346822343911356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=881346822343911356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/881346822343911356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/881346822343911356'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/10/screen-command.html' title='Unix Screen utility'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-5144948302771945583</id><published>2007-09-09T22:19:00.000+05:30</published><updated>2008-10-14T20:48:46.506+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Linux Cut command</title><content type='html'>Cut Command&lt;br /&gt;------------&lt;br /&gt;&lt;br /&gt;Divide a file into several parts (columns)&lt;br /&gt;&lt;br /&gt;syntax:&lt;br /&gt;cut [-b] [-c] [-f] list [-n] [-d delim] [-s] [file]&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;--------&lt;br /&gt;&lt;br /&gt;1. Let say you have a file test.txt which has colon(:) seperated data&lt;br /&gt;&lt;br /&gt;406378:Sales:Itorre:Jan&lt;br /&gt;031762:Marketing:Nasium:Jim&lt;br /&gt;636496:Research:Ancholie:Mel&lt;br /&gt;396082:Sales:Jucacion:Ed&lt;br /&gt;&lt;br /&gt;If you want to print first set of data from each row, you can use cut command as follow:&lt;br /&gt;&lt;br /&gt;cut -d":" -f1 test.txt&lt;br /&gt;&lt;br /&gt;If you want to print just columns 1 to 6 of each line (the employee serial numbers), use the -c1-6 flag, as in this command&lt;br /&gt;&lt;br /&gt;cut -c1-6 test.txt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-5144948302771945583?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/5144948302771945583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=5144948302771945583' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5144948302771945583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/5144948302771945583'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/09/linux-cut-command.html' title='Linux Cut command'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-758875527545412836</id><published>2007-09-09T22:12:00.010+05:30</published><updated>2008-11-04T16:46:52.134+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Linux Tips</title><content type='html'>Replace newline with comma &lt;span style="color: rgb(255, 0, 0);"&gt;(cut -d, -f1 vishnu.csv | tr '\n' ',')&lt;/span&gt;&lt;br /&gt;Get some specific string from each line &lt;span style="color: rgb(255, 0, 0);"&gt;(grep "uid%3D" &amp;lt;fileName&amp;gt; |awk -F"uid%3D" ` {print $2}` | cut -d"%" -f1)&lt;/span&gt;&lt;br /&gt;Pull first n characters of each line from a file &lt;span style="color: rgb(255, 0, 0);"&gt;(cut -c1-n file.txt &gt; newfile.txt)&lt;/span&gt;&lt;br /&gt;Count total number of lines in all specific files under a directory  &lt;span style="color: rgb(255, 0, 0);"&gt;(find . -type f -name '*.as' -o -name '*.mxml' -o -name '*.java'| xargs cat |wc -l)&lt;/span&gt;&lt;br /&gt;Find number of occurrences of a text in a file &lt;span style="color: rgb(255, 0, 0);"&gt;(grep text fileName |wc -l)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Display the top most process utilizing most CPU &lt;span style="color: rgb(255, 0, 0);"&gt;(top -b 1)&lt;/span&gt;&lt;br /&gt;Show the working directory of a process ? &lt;span style="color: rgb(255, 0, 0);"&gt;(pwdx pid &lt;pid&gt;)&lt;/pid&gt;&lt;/span&gt;&lt;br /&gt;Display the parent/child tree of a process ? &lt;span style="color: rgb(255, 0, 0);"&gt;(ptree pid &lt;pid&gt;)&lt;/pid&gt;&lt;/span&gt;&lt;br /&gt;Display the no.of active established connections to localhost ? &lt;span style="color: rgb(255, 0, 0);"&gt;(netstat -a | grep EST)&lt;/span&gt;&lt;br /&gt;How to create null file ?  &lt;span style="color: rgb(255, 0, 0);"&gt;(cat /dev/null &gt; filename1)&lt;/span&gt;&lt;br /&gt;Display top ten largest files/directories ? &lt;span style="color: rgb(255, 0, 0);"&gt;(du -sk * | sort -nr | head)&lt;/span&gt;&lt;br /&gt;Display disk usage &lt;span style="color: rgb(255, 0, 0);"&gt;(du -h)&lt;/span&gt;&lt;br /&gt;How to save man pages to a file ? &lt;span style="color: rgb(255, 0, 0);"&gt;(man &lt;command&gt; | col -b &gt; &lt;output-file&gt;filename )&lt;/output-file&gt;&lt;/command&gt;&lt;/span&gt;&lt;br /&gt;Display the files in the directory by file size ? &lt;span style="color: rgb(255, 0, 0);"&gt;(ls -ltr | sort -nr -k 5)&lt;/span&gt;&lt;br /&gt;Display the processes, which are running under yourusername &lt;span style="color: rgb(255, 0, 0);"&gt;( ps -aef | grep &lt;username&gt;username)&lt;/username&gt;&lt;/span&gt;&lt;br /&gt;Display the all files recursively with path under current directory ? &lt;span style="color: rgb(255, 0, 0);"&gt;( find . -depth -print)&lt;/span&gt;&lt;br /&gt;Display the Disk Usage of file sizes under each directory in currentDirectory ? &lt;span style="color: rgb(255, 0, 0);"&gt;(du -k . | sort -nr)&lt;/span&gt;&lt;br /&gt;List the files in current directory sorted by size ? &lt;span style="color: rgb(255, 0, 0);"&gt;(ls -l | grep ^- | sort -nr)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-758875527545412836?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/758875527545412836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=758875527545412836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/758875527545412836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/758875527545412836'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/09/linux-tips.html' title='Linux Tips'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2927253854689338790.post-4435957194207573044</id><published>2007-09-05T16:30:00.001+05:30</published><updated>2008-10-14T20:51:33.589+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Soalris: Kill a process which is using a particular port number</title><content type='html'>Today i came across a problem in solaris. The problem was that while starting my application server, it was throwing an error "Address already in use".&lt;br /&gt;&lt;br /&gt;My app server is a java process and there are many other java process which are running on my zone. But the issue is, how may i know that which java process is using that particular port?&lt;br /&gt;&lt;br /&gt;I followed following steps:&lt;br /&gt;1. List all the java process running on my zone ( ps -eaf |grep vagrawal| grep java )&lt;br /&gt;2. Go through each java process and check if it using that particular port ( pfiles $pid|grep 1182 &lt;port&gt;)&lt;br /&gt;(here $pid is the process id of the java process and &lt;port&gt;1182 is the port number of which i am looking for)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Above method works fine but it is bit a long process, as i have to run step 2 for all java processes, so i ran a folowing command on my console:&lt;br /&gt;&lt;br /&gt;&lt;/port&gt;&lt;/port&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0); font-style: italic;" id="intelliTxt"&gt;for i in `ps -e|awk '{print $1}'`; do echo $i; pfiles $i 2&gt;/dev/null | grep 'port: 1188'; done&lt;/span&gt;&lt;port&gt;&lt;port&gt;&lt;br /&gt;&lt;br /&gt;Above command/script will list out all the process ID and will tell if any process is using port 1188&lt;br /&gt;&lt;br /&gt;Now i have process ID of the process which is occupying my port, and i can kill that by &lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);"&gt;kill -9 pid&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/port&gt;&lt;/port&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2927253854689338790-4435957194207573044?l=vishnuagrawal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vishnuagrawal.blogspot.com/feeds/4435957194207573044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2927253854689338790&amp;postID=4435957194207573044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4435957194207573044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2927253854689338790/posts/default/4435957194207573044'/><link rel='alternate' type='text/html' href='http://vishnuagrawal.blogspot.com/2007/09/soalris-kill-process-which-is-using.html' title='Soalris: Kill a process which is using a particular port number'/><author><name>Vishnu Agrawal</name><uri>http://www.blogger.com/profile/16272701058668436071</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_6jm1IXePQ5k/SMPW5iXuS_I/AAAAAAAAB_0/BXKbWDJ_AK4/S220/DSCN0283.JPG'/></author><thr:total>0</thr:total></entry></feed>
