<?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-23299799</id><updated>2012-01-28T22:19:07.814-08:00</updated><category term='windows'/><category term='Shell Scripting'/><category term='Bash'/><category term='md5'/><category term='python'/><category term='Linux'/><category term='registry'/><category term='FireFox'/><title type='text'>Thejaswi Raya</title><subtitle type='html'>When the going gets tough, the tough gets going...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23299799.post-7328308092640728399</id><published>2009-02-16T03:45:00.000-08:00</published><updated>2009-02-16T03:51:19.622-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python - Google translator (pytranslator)</title><content type='html'>While working on internationalization (i18n), I had to translate a whole bunch of text statements from English to German! I didn't wanted to access http://google.com/translate in the browser for every text to be translated and do the routine copy paste. So I decided to write a python program which translates text across google support translation languages. Its a python module that one can import and use it based on their needs. For example to translate an entire GNU portable object file(.po) from one language to another.&lt;br /&gt;I call it the &lt;strong&gt;"pytranslator"&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;import sys&lt;br /&gt;import urlib&lt;br /&gt;import re&lt;br /&gt;&lt;br /&gt;langCode={ "arabic":"ar", "bulgarian":"bg", "chinese":"zh-CN", "croatian":"hr", "czech":"cs", "danish":"da", "dutch":"nl", "english":"en", "finnish":"fi", "french":"fr", "german":"de", "greek":"el", "hindi":"hi", "italian":"it", "japanese":"ja", "korean":"ko", "norwegian":"no", "polish":"pl", "portugese":"pt", "romanian":"ro", "russian":"ru", "spanish":"es", "swedish":"sv"  }&lt;br /&gt;&lt;br /&gt;def setUserAgent(userAgent):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;urllib.FancyURLopener.version = userAgent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;br /&gt;&lt;br /&gt;def translate(text, fromLang="English", toLang="German"):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# urllib.FancyURLopener.version = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008070400 SUSE/3.0.1-0.1 Firefox/3.0.1"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setUserAgent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008070400 SUSE/3.0.1-0.1 Firefox/3.0.1")&lt;br /&gt;&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;&amp;nbsp;post_params = urllib.urlencode({"langpair":"%s|%s" %(langCode[fromLang.lower()],langCode[toLang.lower()]), "text":text,"ie":"UTF8", "oe":"UTF8"})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except KeyError, error:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print "Currently we do not support %s" %(error.args[0])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;page = urllib.urlopen("http://translate.google.com/translate_t", post_params)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content = page.read()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;page.close()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = re.search("&amp;lt;div id=result_box dir=\"ltr\"&amp;gt;(.*?)&amp;lt;/div&amp;gt;", content)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value = match.groups()[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return value&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-7328308092640728399?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/7328308092640728399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=7328308092640728399' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/7328308092640728399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/7328308092640728399'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2009/02/python-google-translator-pytranslator.html' title='Python - Google translator (pytranslator)'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-4695588524790682365</id><published>2008-10-12T09:54:00.000-07:00</published><updated>2008-10-12T11:08:09.608-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Python - Windows registry access (pyregistry)</title><content type='html'>The python module which is given below - &lt;span style="color: rgb(51, 204, 0);"&gt;pyregistry&lt;/span&gt; is a wrapper around _winreg module. It greatly simplifies registry access, which is more complicated if _winreg is used directly. It implements readSubKeys, readValues and pathExists functions.&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;readSubKeys&lt;/span&gt; - Returns an array of all the sub keys, -1 if the registry path doesnt exist.&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;readValues&lt;/span&gt; - Returns a hash/dictionary of all the values under the key, -1 if the registry path doesnt exist.&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;pathExists&lt;/span&gt; - Returns True if the registry path exists, False otherwise&lt;br /&gt;The docstrings explains the usage of these functions.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;from _winreg import *&lt;br /&gt;mapping = { "HKLM":HKEY_LOCAL_MACHINE, "HKCU":HKEY_CURRENT_USER, "HKU":HKEY_USERS }&lt;br /&gt;&lt;br /&gt;def readSubKeys(hkey, regPath):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if not pathExists(hkey, regPath):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reg = OpenKey(mapping[hkey], regPath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subKeys = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;noOfSubkeys = QueryInfoKey(reg)[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i in range(0, noOfSubkeys):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subKeys.append(EnumKey(reg, i))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseKey(reg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return subKeys&lt;br /&gt;&lt;br /&gt;def readValues(hkey, regPath):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if not pathExists(hkey, regPath):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reg = OpenKey(mapping[hkey], regPath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values = {}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;noOfValues = QueryInfoKey(reg)[1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i in range(0, noOfValues):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values[EnumValue(reg, i)[0]] = EnumValue(reg, i)[1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseKey(reg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return values&lt;br /&gt;&lt;br /&gt;def pathExists(hkey, regPath):&lt;br /&gt;&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;&amp;nbsp;reg = OpenKey(mapping[hkey], regPath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except WindowsError:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseKey(reg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return True                                              &lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-4695588524790682365?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/4695588524790682365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=4695588524790682365' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/4695588524790682365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/4695588524790682365'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/10/python-windows-registry-access.html' title='Python - Windows registry access (pyregistry)'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-4258076427763678506</id><published>2008-06-24T22:01:00.000-07:00</published><updated>2008-12-10T07:37:19.950-08:00</updated><title type='text'>IPhone's coming to India!!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QcLi3DmUu0I/SGHgzmJ1OCI/AAAAAAAAACI/enICOUxST7w/s1600-h/iphone3.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_QcLi3DmUu0I/SGHgzmJ1OCI/AAAAAAAAACI/enICOUxST7w/s320/iphone3.jpg" alt="" id="BLOGGER_PHOTO_ID_5215697020491479074" border="0" /&gt;&lt;/a&gt;Yes you heard it right. Yipee!!&lt;br /&gt;My day was made when I saw the ad on &lt;a href="http://timesofindia.indiatimes.com/"&gt;TOI&lt;/a&gt; front page dated 25/06/2008. After months for months Vodafone has officially started advertising the arrival of iPhone on their network in India. Whats more, its the latest version, iPhone-3G(8GB) with iPhone Software-2.0 thats coming to the market.&lt;br /&gt;&lt;br /&gt;Based on what I heard from my confidential sources, its dated to be launched on July 11th.&lt;br /&gt;Pricing not sure yet. I got 2 price quotes from different sources - 10/11K and 27/28K. (Disclaimer)&lt;br /&gt;You can also book your iPhone by SMSing iPhone to 56789. No, I am not advertising and its&lt;br /&gt;not an advertisement, though it sounds like one ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-4258076427763678506?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/4258076427763678506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=4258076427763678506' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/4258076427763678506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/4258076427763678506'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/06/iphones-coming-to-india.html' title='IPhone&apos;s coming to India!!!'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QcLi3DmUu0I/SGHgzmJ1OCI/AAAAAAAAACI/enICOUxST7w/s72-c/iphone3.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-8613865392135673411</id><published>2008-06-24T02:23:00.000-07:00</published><updated>2008-06-24T02:53:18.242-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Shell Scripting - Dereferencing a variable</title><content type='html'>Lets assume that we have a variable(var1) what holds a value(var2) which is in-turn another variable name. So can we access the value stored in the second variable(var2) using the first variable(var1)? With the power of bash you can!&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt;var2="value"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt;var1="var2"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt;echo ${!var1}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;value&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-8613865392135673411?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/8613865392135673411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=8613865392135673411' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/8613865392135673411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/8613865392135673411'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/06/shell-scripting-dereferencing-variable.html' title='Shell Scripting - Dereferencing a variable'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-8387975009691562388</id><published>2008-06-18T10:11:00.000-07:00</published><updated>2008-06-18T10:56:21.782-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FireFox'/><title type='text'>Firefox 3 - Download Day!</title><content type='html'>&lt;div style="text-align: left;"&gt;June 17th(yesterday) is when Firefox attempted to set a new Guinness record for the most number of downloads in 24 hours. The count is still on! Lets help them achiev&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.spreadfirefox.com/sites/all/themes/spreadfirefox_RCS/images/download-day/buttons/en-US/sns_badge1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 207px; height: 170px;" src="http://www.spreadfirefox.com/sites/all/themes/spreadfirefox_RCS/images/download-day/buttons/en-US/sns_badge1.png" alt="" border="0" /&gt;&lt;/a&gt;e their milestone. Just for the records, there is no existing record for the most downloads yet! ;-)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I am surprised that going by the Web browser stats, IE ranks as the No.1 browser of choice by a huge margin.&lt;br /&gt;Internet Explorer - 83.27%&lt;br /&gt;Mozilla Firefox - 13.76%&lt;br /&gt;I cant possibly conceive how 83.27% of net users use IE!!! If for some strange reason, you are an IE user, try Firefox once and most likely you will stick with that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FireFox - Rediscover the Web&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-8387975009691562388?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/8387975009691562388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=8387975009691562388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/8387975009691562388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/8387975009691562388'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/06/firefox-3-download-day.html' title='Firefox 3 - Download Day!'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-8119996581972639021</id><published>2008-06-08T21:56:00.000-07:00</published><updated>2008-06-09T01:09:41.054-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='md5'/><title type='text'>Python - MD5 checksum of a file</title><content type='html'>The below given python module implements a function called md5 which returns the md5 hash of a given file. So whats so special about it? In Python-2.5 we have the "hashlib" module which computes&lt;br /&gt;the md5 hash, sha1, sha256, sha384 etc of the file. Its usage is also pretty straight-forward. So why the heck this new module?&lt;br /&gt;&lt;br /&gt;Well because it is implemented to perform 2 additional features - which I appropriately call it as includeLine and excludeLine.&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;excludeLine&lt;/span&gt; - Lets say that you want to compute the md5 hash of a file, but without a particular line in the file. You will need this when you have embeded the md5sum of the file in the file itself and you want to&lt;br /&gt;verify the contents of the file upon receival.&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;import md5sum&lt;br /&gt;md5sum.md5("trial.txt",excludeLine="md5sum-value")&lt;/span&gt;&lt;br /&gt;&lt;i&gt;// Compute the md5sum of "trial.txt" without the lines that starts with md5sum-value&lt;/i&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;includeLine&lt;/span&gt; - Here's the scenario. You want to compute the md5 hash of a file, but you want to pepper the file contents with some secret word. In such a scenario you can pass the secret word to the includeLine param.&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;import md5sum&lt;br /&gt;md5sum.md5("trial.txt",includeLine="mirchi")&lt;/span&gt;&lt;br /&gt;&lt;i&gt;// Gives you the md5sum of the contents of trial.txt + "mirchi"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Enough of talking. Here is the code...&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;#!/usr/local/bin/python&lt;br /&gt;&lt;br /&gt;import os, sys&lt;br /&gt;import hashlib&lt;br /&gt;&lt;br /&gt;def md5(fileName, excludeLine="", includeLine=""):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""Compute md5 hash of the specified file"""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m = hashlib.md5()&lt;br /&gt;&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;&amp;nbsp;fd = open(fileName,"rb")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except IOError:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print "Unable to open the file in readmode:", filename&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content = fd.readlines()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fd.close()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for eachLine in content:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if excludeLine and eachLine.startswith(excludeLine):&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;m.update(eachLine)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m.update(includeLine)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return m.hexdigest()&lt;br /&gt;&lt;br /&gt;if __name__ == "__main__":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for eachFile in sys.argv[1:]:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print "%s %s" %(md5(eachFile), eachFile)&lt;/span&gt;&lt;/blockquote&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-8119996581972639021?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/8119996581972639021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=8119996581972639021' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/8119996581972639021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/8119996581972639021'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/06/python-md5-checksum-of-file.html' title='Python - MD5 checksum of a file'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-7225626762224698013</id><published>2008-05-24T11:50:00.000-07:00</published><updated>2008-11-10T23:33:06.935-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Shell Scripting - Trick2 (String processing)</title><content type='html'>Useful string processing in bash. Very handy ones!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(128, 128, 128);"&gt;Length of a string:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; trial="abc123"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${#trial}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;6&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(128, 128, 128);"&gt;Substring extraction:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;${string:x:y} - Extracts the substring of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;y&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; characters from position &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; in &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$string.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; trial="abc123def"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial:1:5}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; bc123&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial:2} (If &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;y&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; is missing then the substring is extracted till the last character)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;c123def&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(128, 128, 128);"&gt;Substring removal:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;${string#substring} - Removes the shortest matching &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$substring&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; from front of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; trial="abc123def"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial#abc} &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;123def&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial#a*d} (Yes wild characters work too!)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;ef&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;${string##substring} - Removes the longest matching &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$substring&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; from front of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; trial="abc123defgd432"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial##a*d}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;432        ( Compare this output with echo ${trial#a*d} )&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;${string%substring} - Removes the shortest matching &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$substring&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; from the back of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; trial="/tmp/ldap/quality/deleteuser.c"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial%.c}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;/tmp/ldap/quality/deleteuser&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;(1 practical use of the above is when you want to compile a C file with the -o option, and the o/p file is the C file without the extension)&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;${string%%substring} - Removes the longest matching &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$substring&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; from the back of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;$string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; trial="abc123defgd432"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo ${trial%%2*2}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;abc1&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-7225626762224698013?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/7225626762224698013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=7225626762224698013' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/7225626762224698013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/7225626762224698013'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/05/shell-scripting-trick2-string.html' title='Shell Scripting - Trick2 (String processing)'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-1769470840812124721</id><published>2008-05-24T11:31:00.000-07:00</published><updated>2008-06-24T02:41:30.604-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Shell Scripting - Trick1(Generating all combinations of 2 set of characters)</title><content type='html'>Thought I will start sharing a few bash scripting tips and tricks I learnt and use in my day to day life. Here is my first one...&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo {a,b}:{1,4}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;a:1 a:4 b:1 b:4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo {romeo,juliet}\ {789,143}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;romeo 789 romeo 143 juliet 789 juliet 143&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;$&gt; echo {a..z}:{1,2,3}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;a:1 a:2 a:3 b:1 b:2 b:3 c:1 c:2 c:3 d:1 d:2 d:3 e:1 e:2 e:3 f:1 f:2 f:3 g:1 g:2 g:3 h:1 h:2 h:3 i:1 i:2 i:3 j:1 j:2 j:3 k:1 k:2 k:3 l:1 l:2 l:3 m:1 m:2 m:3 n:1 n:2 n:3 o:1 o:2 o:3 p:1 p:2 p:3 q:1 q:2 q:3 r:1 r:2 r:3 s:1 s:2 s:3 t:1 t:2 t:3 u:1 u:2 u:3 v:1 v:2 v:3 w:1 w:2 w:3 x:1 x:2 x:3 y:1 y:2 y:3 z:1 z:2 z:3&lt;/span&gt;&lt;/blockquote&gt;~m.a.v.e.r.i.c.k&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-1769470840812124721?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/1769470840812124721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=1769470840812124721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/1769470840812124721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/1769470840812124721'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/05/shell-scripting-trick1generating-all.html' title='Shell Scripting - Trick1(Generating all combinations of 2 set of characters)'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-2074674869196384637</id><published>2008-01-20T08:51:00.000-08:00</published><updated>2008-05-24T11:41:54.103-07:00</updated><title type='text'>VMware Server Installation</title><content type='html'>Couple of days back one of my colleagues approached me seeking my help in installing and configuring VMware Server. He had apparently done everything right, but he was not able to have VMware up and running. It was throwing up some weird error while compiling the kernel modules. He had googled around with the error message, did almost everything each of the links said, but all his efforts were in vain. I decided to give it a shot. I cleaned up his machine and proceeded to install Vmware server -1.0.4. I followed my usual default installation procedure and hoolah it started working !!! He had not installed vmware-any-any-update. I later realised that installing vmware-any-any-update patches is one of the steps most people miss out when the installation fails. After this incidence I decided to put down the steps on my blo. I am pretty much sure that the info I put in here might already be duplicated all over the internet, but all the time and energy spent on putting up this post, would be worth while if atleast 1 person would get benefited from this entry. So here goes....&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step-1 (PRE-REQUISISTES)&lt;/span&gt;: You will need to have the following packages installed before you start installing VMware-server.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    gcc, gcc-c++ (A must for SLES9, SLES10 as execvp gets shipped with gcc-c++).&lt;/li&gt;&lt;li&gt;    lib-gcc.&lt;/li&gt;&lt;li&gt;glib, glibc, glibc-devel.&lt;/li&gt;&lt;li&gt;kernel-headers (The version should exactly match the kernel version on which you are installing. `uname -r` reveals the current kernel vresion that is loaded).&lt;/li&gt;&lt;li&gt;    xine-td&lt;/li&gt;&lt;/ul&gt;Note: You can install all the above mentioned packages by using automated update managers that gets shipped with your Linux distro (For FedoraCore you can use yum, yast/yast2 on openSuSE, apt-get on Ubuntu flavours etc).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step-2 (DOWNLOAD)&lt;/span&gt;: Download the latest version of VMware-server from &lt;a href="http://www.vmware.com/download/server/"&gt;http://www.vmware.com/download/server/&lt;/a&gt;. This post, as of now, explains on how to install and configure the product from an rpm. So download the binary(*.rpm) file. You will have to accept the EndUserLicenceAgreement and then proceed for the download. Copy the product key (if any) displayed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step-3 (INSTALLATION)&lt;/span&gt;: Install the rpm downloaded by running the command&lt;br /&gt;$&gt; rpm -ivh VMware-server-&amp;lt;version&amp;gt;-&amp;lt;build-id&amp;gt;-i386.rpm (as root user)&lt;br /&gt;gt; rpm -ivh VMware-server-&amp;lt;version&amp;gt;-&amp;lt;build-id&amp;gt;-i386.rpm (as root user)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step-4 (VMWARE-UPDATES)&lt;/span&gt;: Download the latest vmware-any-any-update&lt;xxx&gt;.tar.gz from &lt;a href="http://knihovny.cvut.cz/ftp/pub/vmware/"&gt;http://knihovny.cvut.cz/ftp/pub/vmware/&lt;/a&gt;. Wondering what vmware-any-any-update is? Read this &lt;a href="http://communities.vmware.com/thread/26693"&gt;http://communities.vmware.com/thread/26693&lt;/a&gt;.&lt;br /&gt;Do the following -&lt;br /&gt;$&gt; tar -zxvf vmware-any-any-update&amp;lt;xxx&amp;gt;.tar.gz&lt;br /&gt;$&gt; cd vmware-any-any-update&amp;lt;xxx&amp;gt;&lt;br /&gt;$&gt; ./runme.pl (Accept the prompts and proceed further) (as root user)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step-5 (CONFIGURATION)&lt;/span&gt;: Once thats done, proceed to run vmware-config.pl and configure your vmware installation to suit your needs. Thats it folks!!! Your vmware is all setup for your usage.&lt;br /&gt;$&gt; vmware (Have fun)&lt;br /&gt;&lt;br /&gt;~m.a.v.e.r.i.c.k&lt;br /&gt;&lt;/xxx&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-2074674869196384637?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/2074674869196384637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=2074674869196384637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/2074674869196384637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/2074674869196384637'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/01/vmware-server-installation.html' title='VMware Server Installation'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-633230608188771177</id><published>2008-01-19T07:50:00.000-08:00</published><updated>2008-12-10T07:37:21.126-08:00</updated><title type='text'>Anil Kumble: The legend of Indian cricket</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QcLi3DmUu0I/R5IwzL0NbXI/AAAAAAAAAAQ/W5xnPvzd-IU/s1600-h/anilkumble14.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 232px; height: 247px;" src="http://2.bp.blogspot.com/_QcLi3DmUu0I/R5IwzL0NbXI/AAAAAAAAAAQ/W5xnPvzd-IU/s320/anilkumble14.jpg" alt="" id="BLOGGER_PHOTO_ID_5157238179195874674" border="0" /&gt;&lt;/a&gt;If ever a list of unsung heroes in Indian cricket was made, Anil Kumble would top that list. I never expected my first serious blog post would be any thing remotely close to what i am posting now. But i just could not hold myself back from sharing my thoughts.&lt;br /&gt;&lt;div style="text-align: left;"&gt;           Right from the time he started his career as an Indian cricketer in April 1990, if there is one character that still stands out in him then it is his perseverance. Loads of concentration and a "Never say die" attitude is not far behind. In his illustrious career Kumble has done it all. Right from being only the second bowler in the entire history of world cricket to claim all the 10 wickets in a test innings to scoring a century a Lords. How can anyone forget the match at the FerozShah Kotla!!! And the match against Pakistan in Bangalore where himself and his fellow statesman, Javagal Srinath led India to a dramatic win batting second. The first and the only Indian to take 600 wickets in Test cricket crowns his glory.&lt;br /&gt;     His googlies and flippers have bamboozled batsmen all over the world. Call him the "Smiling Assasin" or "The Jumbo", he truly deserves all of them. Mr Dignity 'personified' showed his real attributes post 2nd test at Sydney. Kumble turned out to be the best man at the heat of the affairs. He summed the entire match and the team's feelings by saying "Only one team played with the true spirit of the game". So true. These words will be echoed over and over again.&lt;br /&gt;     We might never ever get one more Anil Kumble. Guys its time to salute Him. He truly deserves it!  Hats off to you. Just keep going, you are not far away from Warnie and Murali :).&lt;br /&gt;&lt;br /&gt;  And as for the Australians, Shame on you!!! Watch out ....your worse is yet to come.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-633230608188771177?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/633230608188771177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=633230608188771177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/633230608188771177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/633230608188771177'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2008/01/anil-kumble-legend-of-indian-cricket.html' title='Anil Kumble: The legend of Indian cricket'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QcLi3DmUu0I/R5IwzL0NbXI/AAAAAAAAAAQ/W5xnPvzd-IU/s72-c/anilkumble14.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-2362319246858231842</id><published>2007-12-25T08:58:00.000-08:00</published><updated>2007-12-25T08:59:56.695-08:00</updated><title type='text'>Just trying this out...</title><content type='html'>Hmmm....!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-2362319246858231842?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/2362319246858231842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=2362319246858231842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/2362319246858231842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/2362319246858231842'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2007/12/just-trying-this-out.html' title='Just trying this out...'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23299799.post-114132034440152736</id><published>2006-03-02T09:24:00.000-08:00</published><updated>2006-03-02T09:25:44.406-08:00</updated><title type='text'>Amateur Blogger</title><content type='html'>New to Blogger&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23299799-114132034440152736?l=thejaswihr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thejaswihr.blogspot.com/feeds/114132034440152736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23299799&amp;postID=114132034440152736' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/114132034440152736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23299799/posts/default/114132034440152736'/><link rel='alternate' type='text/html' href='http://thejaswihr.blogspot.com/2006/03/amateur-blogger.html' title='Amateur Blogger'/><author><name>Thejaswi.H.Raya</name><uri>http://www.blogger.com/profile/08998886249040611327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_QcLi3DmUu0I/SDhYneDjx8I/AAAAAAAAAAc/iKTKAlpGnq0/S220/243603438_243257699_IMG_1596.jpg'/></author><thr:total>1</thr:total></entry></feed>
