<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Prabhas Gupte &#187; Article</title>
	<atom:link href="http://prabhasgupte.com/category/article/feed/" rel="self" type="application/rss+xml" />
	<link>http://prabhasgupte.com</link>
	<description>everything is interesting!</description>
	<lastBuildDate>Fri, 06 Aug 2010 04:34:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tips for CS students to use LinkedIn as your resume</title>
		<link>http://prabhasgupte.com/2010/07/10/tips-for-cs-students-to-use-linkedin-as-your-resume/</link>
		<comments>http://prabhasgupte.com/2010/07/10/tips-for-cs-students-to-use-linkedin-as-your-resume/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 08:05:37 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Tips-and-Tricks]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=195</guid>
		<description><![CDATA[
			
				
			
		
LinkedIn is a very popular professional networking site. Almost every professional person is on LinkedIn, and so are the recruiters! For those, who have certain working experience, LinkedIn is pretty useful. Few students also using this service, but are very rarely active. While going through such a dead profile, I just thought how the students [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F07%2F10%2Ftips-for-cs-students-to-use-linkedin-as-your-resume%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F07%2F10%2Ftips-for-cs-students-to-use-linkedin-as-your-resume%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">LinkedIn is a very popular professional networking site. Almost every professional person is on LinkedIn, and so are the recruiters! For those, who have certain working experience, LinkedIn is pretty useful. Few students also using this service, but are very rarely active. While going through such a dead profile, I just thought how the students &#8211; especially the CS students can make use of this service to build their own resume, and to turn it into your complete timeline later. Lets see, as a CS student, how you can use LinkedIn to make most out of it.</p>
<h3 style="text-align: justify;">Summary</h3>
<p style="text-align: justify;">If you think you have thorough understanding of some subject(s), for example, java programming, DBMS, software engineering practices, design patterns etc., mention it under this section. You can also mention your favorite subject or work area, like system programming, database administration etc. This way, any visitor to your profile will come to know your potential, favorite subject, and can think about where you can be a good match.</p>
<h3 style="text-align: justify;">Education</h3>
<p style="text-align: justify;">Mention all the courses you took &#8211; Include your graduation, post-graduation, any other certificate courses you took. Describe your project work, but keep the description short and sweet. The text should be short, but enough to give clear idea of what role you played in the project and what exactly you did to accomplish it.</p>
<p style="text-align: justify;">If you participated in any project or presentation competition, list those activities.</p>
<h3 style="text-align: justify;">Experience</h3>
<p style="text-align: justify;">If you have done any summer job in corresponding field, list it! That can certainly be a plus point for you.</p>
<h3 style="text-align: justify;">Recommendations</h3>
<p style="text-align: justify;">During your academics if you have ever done project(s) under guidance of any industrial person, request them to recommend you! If they were really happy with your work, they would write a really good recommendation for you!!</p>
<h3 style="text-align: justify;">Additional Information</h3>
<p style="text-align: justify;">If you run any blog, particularly related to your field of education, do not forget to list it here. Though not all visitors will tend to visit your link, but few of them may read it. If your blog is speaking loudly about your interest and your learnings and findings, the reader may get fascinated. Who knows what can help you out at which instance of time?!</p>
<p style="text-align: justify;">Also list out your interests. One important point I would like to tell you here is, be diplomatic while listing your interests. I have seen many resumes and LinkedIn profiles which say &#8220;interested in drawing&#8221;, &#8220;likes reading&#8221; etc. but failing to turn them into a plus point. If you are really interested in drawings, then instead of merely listing it, why not to make it say like &#8220;interest in drawing leads me to explain the concepts via diagrams&#8221; OR if you are a reading freak, why not to make it read like &#8220;reads a lot, including technical white papers and related documents&#8221; ?</p>
<p style="text-align: justify;">Include your contact details! <img src='http://prabhasgupte.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Include your mobile number (if you have any); if you have regular Internet access include your mail ID and some IM (Google Talk/Yahoo messenger/Skype etc.), so that if your profile sounds interesting to some recruiter, (s)he can contact you directly.</p>
<p style="text-align: justify;">There is one more useful thing available with LinkedIn &#8211; export profile as a PDF. You can quickly convert the LinkedIn profile into a PDF document, which you can send quickly via email as your resume. Perhaps, you might like  to edit it slightly, especially the LinkedIn logo <img src='http://prabhasgupte.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Any other suggestions? Write them in comments! That will be really great!! <img src='http://prabhasgupte.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/07/10/tips-for-cs-students-to-use-linkedin-as-your-resume/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Connection between Sanskrit and computer programming</title>
		<link>http://prabhasgupte.com/2010/05/22/connection-between-sanskrit-and-computer-programming/</link>
		<comments>http://prabhasgupte.com/2010/05/22/connection-between-sanskrit-and-computer-programming/#comments</comments>
		<pubDate>Sat, 22 May 2010 03:30:11 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[OOPs]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Sanskrit]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=123</guid>
		<description><![CDATA[
			
				
			
		
&#8216;Sanskrit is best suited for computer programming&#8217;. I have read this line many times, but hardly I found any detailed explaination until I read an article by Prof. Lakshmi Thathachar. He is formally a professor of Sanskrit, but have also done some research into computer languages.
In this article, he explains the connection between the Sanskrit [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F05%2F22%2Fconnection-between-sanskrit-and-computer-programming%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F05%2F22%2Fconnection-between-sanskrit-and-computer-programming%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p>&#8216;Sanskrit is best suited for computer programming&#8217;. I have read this line many times, but hardly I found any detailed explaination until I read an article by Prof. Lakshmi Thathachar. He is formally a professor of Sanskrit, but have also done some research into computer languages.</p>
<p>In this article, he explains the connection between the Sanskrit language and computer programming languages. According to him, words in Sanskrit are nothing but the instances of pre-defined classes, a concept that drives object oriented programming [OOP] in today&#8217;s programming world. He explains this analogy/relation with an example. I am presenting the same example here:</p>
<blockquote><p>In English &#8216;cow&#8217; is a just a sound assigned to mean a particular animal. But if we drill down the word &#8216;gau&#8217; &#8211; Sanskrit word for &#8216;cow&#8217;- we arrive at a broad class &#8216;gam&#8217; which means &#8216;to move&#8217;. From these derive words like &#8216;gamanam&#8217;, &#8216;gatih&#8217; etc which are variations of &#8216;movement&#8217;. All words have this OOP approach, except that defined classes in Sanskrit are so exhaustive that they cover the material and abstract &#8211;indeed cosmic&#8211; experiences known to man. So in Sanskrit the connection is more than etymological.</p></blockquote>
<div class="wp-caption alignleft" style="width: 93px"><a href="http://prabhasgupte.com/images/panini.jpg"><img class="   " title="Panini" src="http://prabhasgupte.com/images/panini.jpg" alt="Panini" width="83" height="71" /></a><p class="wp-caption-text">Panini</p></div>
<p>It was Rishi <a href="http://en.wikipedia.org/wiki/P%C4%81%E1%B9%87ini">Panini</a> who formalised Sanskrit&#8217;s grammer and its usage about 2500 years ago. Strangely, no new &#8216;classes&#8217; have needed to be added to the languahge since then! &#8220;Panini should be thought of as the forerunner of the modern formal language theory used to specify computer languages,&#8221; say J J O&#8217;Connor and E F Robertson. Their <a href="http://www-groups.dcs.st-and.ac.uk/~history/Biographies/Panini.html">article</a> also quotes:</p>
<blockquote><p>Sanskrit&#8217;s potential for scientific use was greatly enhanced as a result of the thorough systemisation of its grammar by Panini. &#8230; On the basis of just under 4000 sutras, he built virtually the whole structure of the Sanskrit language, whose general &#8217;shape&#8217; hardly changed for the next two thousand years.</p></blockquote>
<p>There is one more interesting point to take into consideration. Every philosophy in Sanskrit is in fact a &#8216;theory of everything&#8217;. Mimansa, which is a part of the Vedas, even ignores the idea of the God. The reality as we know was not created by anyone, but may be shaped by everyone out of free will. Which is a way of saying, in OOPS terms, that you may not touch the mother or core classes but may create any variety of instances of them. It is significant that no new &#8216;classes&#8217; have had to be created.</p>
<p>Really interesting! Isn&#8217;t it?</p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/05/22/connection-between-sanskrit-and-computer-programming/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mind mapping</title>
		<link>http://prabhasgupte.com/2010/05/11/mind-mapping/</link>
		<comments>http://prabhasgupte.com/2010/05/11/mind-mapping/#comments</comments>
		<pubDate>Tue, 11 May 2010 17:27:25 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[mind map]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=108</guid>
		<description><![CDATA[
			
				
			
		
If you are staring at that blank sheet of paper again or you have a black Word document open on your computer screen &#8211; whichever it may be, it&#8217;s obvious you&#8217;re about to take notes, and you&#8217;re not too excited about getting started.  
That&#8217;s exactly where a different kind of note taking comes into [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F05%2F11%2Fmind-mapping%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F05%2F11%2Fmind-mapping%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p>If you are staring at that blank sheet of paper again or you have a black Word document open on your computer screen &#8211; whichever it may be, it&#8217;s obvious you&#8217;re about to take notes, and you&#8217;re not too excited about getting started. <img src='http://prabhasgupte.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>That&#8217;s exactly where a different kind of note taking comes into play. One that is actually fun to do and will also help you to understand your notes better. It&#8217;s a technique called mind mapping. It is based around a strong visual method of taking notes. Whether your using colorful markers and paper or using state-of-the-art computer software, you&#8217;ll find using mind maps are a much more interesting way to take notes than you ever have in the past!</p>
<p>Thanks to Mr. Somesh, whose <a href="http://thelife.in">blog</a> introduced me to mind mapping.</p>
<p><a href="http://www.prabhasgupte.com/images/MindMap1.jpg"><img class="alignleft" title="mind mapping" src="http://www.prabhasgupte.com/images/MindMap1.jpg" alt="" width="329" height="234" /></a>Mind maps were developed in the late 60s by <a href="http://en.wikipedia.org/wiki/Tony_Buzan">Tony Buzan</a> as a way of helping students make notes that use only keywords and images. Mind maps are much quicker to make. Also, because of their visual quality, they are much easier to remember and review. The non-linear nature of mind maps make them easy to link and cross reference with other elements from the map.</p>
<p>As said in Wikipedia,</p>
<blockquote><p>A <strong>mind map</strong> is a <a title="Diagram" href="http://en.wikipedia.org/wiki/Diagram">diagram</a> used to represent <a title="Words" href="http://en.wikipedia.org/wiki/Words">words</a>, <a title="Idea" href="http://en.wikipedia.org/wiki/Idea">ideas</a>, tasks, or other items linked to and arranged around a central key word or idea. Mind maps are used to <a title="Generation" href="http://en.wikipedia.org/wiki/Generation">generate</a>, <a title="Creative visualization" href="http://en.wikipedia.org/wiki/Creative_visualization">visualize</a>, <a title="Structure" href="http://en.wikipedia.org/wiki/Structure">structure</a>, and <a title="Taxonomic classification" href="http://en.wikipedia.org/wiki/Taxonomic_classification">classify</a> ideas, and as an aid in <a title="Study skills" href="http://en.wikipedia.org/wiki/Study_skills">study</a>, <a title="Organization" href="http://en.wikipedia.org/wiki/Organization">organization</a>, <a title="Problem solving" href="http://en.wikipedia.org/wiki/Problem_solving">problem solving</a>, <a title="Decision making" href="http://en.wikipedia.org/wiki/Decision_making">decision making</a>, and writing.</p></blockquote>
<p>A mind map is often created around a single topic or concept, and gradually expanded all around by adding related sub topics/concepts or ideas. There are many areas where mind maps are useful. To list a few:</p>
<ul>
<li>problem solving</li>
<li>learning</li>
<li>note taking</li>
<li>presentations</li>
<li>brain storming</li>
<li>TODO lists</li>
<li>&#8230; and many more!</li>
</ul>
<p>I am really fascinated with the technique. In fact, I have already got started using mind maps to take notes, organize my TODO list and even to summarize the project work!</p>
<p>Soon, I would start posting my own mind maps here one by one. I am practicing them in my spare time, and the results are satisfactory. <img src='http://prabhasgupte.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/05/11/mind-mapping/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web automation using Watir</title>
		<link>http://prabhasgupte.com/2010/04/23/web-automation-using-watir/</link>
		<comments>http://prabhasgupte.com/2010/04/23/web-automation-using-watir/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 16:37:42 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[web automation]]></category>
		<category><![CDATA[web scraping]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=86</guid>
		<description><![CDATA[Watir is a Ruby library which drives the Internet browsers the same way we people do. It clicks the links, fills the forms, and presses the buttons. It also checks results, such as whether expected text appears on the page. As Watir is built on Ruby, you have all the Ruby power to connect to databases, read data from files, import and export XML and structure your code into reusable libraries.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F04%2F23%2Fweb-automation-using-watir%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F04%2F23%2Fweb-automation-using-watir%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p>Watir (pronounced as ‘Water’) stands for ‘Web Automation Testing in Ruby’. Watir is a Ruby library which drives the Internet browsers the same way we people do. It clicks the links, fills the forms, and presses the buttons. It also checks results, such as whether expected text appears on the page. As Watir is built on Ruby, you have all the Ruby power to connect to databases, read data from files, import and export XML and structure your code into reusable libraries. Watir is available as a <a href="http://rubyforge.org/projects/wtr/">Ruby Gem</a>.</p>
<p>Ruby has built-in support for OLE. And most of the browsers can be driven programmatically. Watir makes use of this very fact. Watir is different than other HTTP based test tools – instead of simulating the browser, it actually drives the browser through Object Linking and Embedding protocol, which is implemented on top of COM architecture.</p>
<h2>How do I get started?</h2>
<p>First you will need to install Ruby (if not already installed). You can use One-click Ruby Installer for Windows.</p>
<p>Then, install latest Watir <a href="http://rubyforge.org/frs/?group_id=104">gem</a>.</p>
<pre style="padding-left: 30px;">C:\Watir&gt;gem install watir
Successfully installed watir, version 1.5.1.1100
Installing ri documentation for watir-1.5.1.1100...
Installing RDoc documentation for watir-1.5.1.1100...</pre>
<p>Once you install it, using this gem is very simple.</p>
<h2>Some useful tools</h2>
<ul>
<li>Scite is a good, light-weight editor bundled along with Ruby one-click installer. You can find it at &lt;Ruby install dir&gt;\scite\scite.exe.</li>
<li>you can also use <a href="http://rubyeclipse.sourceforge.net/">RDT</a> &#8211; an Eclipse plugin for Ruby. RDT is great if you need a graphical debugger.</li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en">IE developer toolbar</a> lets you explore the HTML elements behind the visible elements on a web page, simply by clicking them. Useful to know the elements to automate.</li>
<li><a href="https://addons.mozilla.org/firefox/1843/">Firebug</a> is also an excelent FireFox extension for identifying HTML elements.</li>
</ul>
<h2>Navigating the browser</h2>
<p>Navigating the browser using Watir is very easy. After all, its a Ruby script so it has to be pretty short!</p>
<pre># load the watir library
require 'watir'
# get the browser
b = Watir::Browser.new
# navigate to URL you wish to visit
b.goto('http://www.google.com')
# close the browser
b.close</pre>
<p>Sweet and Simple, isn&#8217;t it?</p>
<h2>Finding the HTML elements</h2>
<p>There are many common functions available with Watir to find HTML elements. Some of these are listed below:</p>
<ul>
<li>Browser.text_field(how, what) for text boxes</li>
<li>Browser.button(how, what) for buttons</li>
<li>Browser.select_list(how, what) for drop down lists</li>
<li>Browser.checkbox(how, what) for check boxes</li>
<li>Browser.radio(how, what) for radio buttons</li>
<li>Browser.link(how, what) for hyperlinks</li>
<li>Browser.form(how, what) for forms</li>
<li>Browser.frame(how, what) for frames</li>
<li>&#8230; and many more for div, label, image etc. tags.</li>
</ul>
<p>&#8220;how&#8221;s tell your method how to find the element you are looking for, whereas &#8220;what&#8221;s tell your method the expected value of &#8220;how&#8221;. &#8220;what&#8221; can be a string or a regular expression. For example, &#8220;how&#8221;s can be :name or :id or :index or :value or :text or :title, and &#8220;what&#8221;s can be string like &#8220;buttonG&#8221; or regular expression like /^Spam/.</p>
<h2>Interacting with elements</h2>
<p>With watir, interacting with HTML elements is easy and straight-forward. We have set method to set values in input boxes, select method to select values from dropdown lists and click method to click on hyperlinks and buttons. Even accessing elements inside frame or iframe is simple.</p>
<pre>Browser.text_field(:name, 'name').set('value')
Browser.select_list(:name, 'name').select('value')
Browser.button(:value, 'value').click
Browser.link(:text, 'text').click
Browser.frame(:name, 'some_frame').text_field(:name, 'name').set('value')</pre>
<h2>Checking the output</h2>
<p>You can even check the output of web browser navigation. You can use Browser.title to read title set in the browser, you can use Browser.text to get all the text displayed on the page or you can even use Browser.html to get all the HTML source code inside body tag.</p>
<p>If you need to check if particular text or text matching given regular expression, you can use Browser.contains_text(&#8216;text&#8217;) or Browser.contains_text(/pattern/), respectively.</p>
<h2>Sample code</h2>
<p>Below is a very simple ruby watir script, which is used to delete all the spam mails in your Gmail inbox.</p>
<pre>require 'watir'
gmail = 'http://www.gmail.com'
username = '&lt;your Gmail username&gt;'
password = '&lt;your Gmail password&gt;'
browser = Watir::Browser.new
browser.goto(gmail)
# enter username, password and click 'Sign In' button
browser.text_field(:id, "Email").set(username)
browser.text_field(:id, "Passwd").set(password)
browser.button(:name, "signIn").click
# by default, we enter new UI which is tough to deal with.
# hence lets load simple HTML UI by entering its link directly into browser.
browser.goto('http://mail.google.com/mail/?ui=html')
# iterate through all checkboxes for spam mails, and check mark them
browser.link(:text, /^Spam/).click
if browser.checkboxes.length &gt; 0 then
browser.checkboxes.each { | cb |
cb.set
}
# in gmail html ui, 'delete forever' button's name is 'nvp_a_dl'
browser.button(:name, "nvp_a_dl").click
end
# finally, sign out and close the browser.
browser.link(:text, "Sign out").click
browser.close</pre>
<pre><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">require 'watir'</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">gmail = 'http://www.gmail.com'</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">username = 'gprabhas@gmail.com'</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">password = 'mh12ev0509'</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser = Watir::Browser.new</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.goto(gmail)</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;"># enter username, password and click 'Sign In' button</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.text_field(:id, "Email").set(username)</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.text_field(:id, "Passwd").set(password)</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.button(:name, "signIn").click</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;"># by default, we enter new UI which is tough to deal with. hence lets load simple HTML UI by entering its link directly into browser.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.goto('http://mail.google.com/mail/?ui=html')</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;"># iterate through all checkboxes for spam mails, and check mark them</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.link(:text, /^Spam/).click</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">if browser.checkboxes.length &gt; 0 then</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.checkboxes.each { | cb |</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">cb.set</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">}</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;"># in gmail html ui, 'delete forever' button's name is 'nvp_a_dl'</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.button(:name, "nvp_a_dl").click</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">end</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;"># finally, sign out and close the browser.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.link(:text, "Sign out").click</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1673px; width: 1px; height: 1px;">browser.close</div>

</span></pre>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">This sample code is quite self-explanatory. It logs into Gmail, avoids stylish and heavy UI by navigating to HTML UI and then goes to Spam box, check marks all mails and clicks on &#8216;Delete Forever&#8217; button. I wrote this script and created a scheduled task on my laptop, which runs every time I logs into my laptop account. Thus, I get rid of spam mails as soon as I start working!</span></p>
<p><strong> </strong></p>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">Over the time, Watir have evolved to a larger extent. Initially it was able only to work with Internet Explorer. But now, latest versions of Watir are capable of working with other browsers as well, including Firefox, Safari and even Chrome.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/04/23/web-automation-using-watir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screen scraping with PHP 5</title>
		<link>http://prabhasgupte.com/2010/04/07/screen-scraping-with-php-5/</link>
		<comments>http://prabhasgupte.com/2010/04/07/screen-scraping-with-php-5/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 04:09:39 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web scraping]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=79</guid>
		<description><![CDATA[
			
				
			
		
When it comes to web scraping, PHP5 is the best choice. PHP5 have real and standardized XML capabilities, something native PHP4 lacked. You can load an XML DOM object and select elements using XPath.
Loading any HTML file
Not only can you make use of well-formed XML files, you can also grab any HTML tag-soup. As you [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F04%2F07%2Fscreen-scraping-with-php-5%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F04%2F07%2Fscreen-scraping-with-php-5%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p>When it comes to web scraping, PHP5 is the best choice. PHP5 have real and standardized <strong>XML</strong> capabilities, something native PHP4 lacked. You can load an XML DOM object and select elements using XPath.</p>
<h4>Loading any HTML file</h4>
<p>Not only can you make use of well-formed XML files, you can also grab any HTML tag-soup. As you may know most files on the Web are not valid HTML, let alone XML/XHTML. Parsing them with a strict XML parser would yield nothing but error messages.</p>
<p>The simple but powerful function we need is called &#8220;<strong>loadHTMLFile</strong>&#8221; and accepts any URL as parameter.<br />
Here&#8217;s a sample of its usage, which will grab all the hyperlinks on this site and format them as simple linked HTML list:</p>
<pre>&lt;?php</pre>
<pre>$dom = new domdocument;</pre>
<pre>$url = 'http://prabhasgupte.com';</pre>
<pre><strong>@$dom-&gt;loadHTMLFile($url);</strong></pre>
<pre>$xpath = new domxpath($dom);</pre>
<pre><strong>$xNodes = $xpath-&gt;query('//a');</strong></pre>
<pre>echo '&lt;h1&gt;Links on PrabhasGupte.com&lt;/h1&gt;';</pre>
<pre>echo '&lt;ul&gt;';</pre>
<pre>foreach ($xNodes as $xNode) {</pre>
<pre>    $sLinktext = @$xNode-&gt;firstChild-&gt;data;</pre>
<pre>    $sLinkurl = $xNode-&gt;getAttribute('href');</pre>
<pre>    if ($sLinktext != '' &amp;&amp; $sLinkurl != '') {</pre>
<pre>        echo '&lt;li&gt;&lt;a href="' . $sLinkurl . '"&gt;' . $sLinktext . &lt;a&gt;&lt;/li&gt;';</pre>
<pre>    }</pre>
<pre>}</pre>
<pre>echo '&lt;/ul&gt;';</pre>
<pre>?&gt;</pre>
<p>I highlighted the two relevant lines (which are preceded by an &#8220;@&#8221; symbol to supress error messages, something which is necessary at least in this version of PHP5 when you use loadHTMLFile on non-XML files). So basically the script above says <em>&#8220;Get the PrabhasGupte.com homepage, and grab every link, then go through all links and output them again&#8221;</em>.</p>
<p>Instead of PrabhasGupte.com homepage, you can extract data from any page which is accessible online.</p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/04/07/screen-scraping-with-php-5/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Web bots and their use</title>
		<link>http://prabhasgupte.com/2010/03/01/web-bots-and-their-use/</link>
		<comments>http://prabhasgupte.com/2010/03/01/web-bots-and-their-use/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 17:19:11 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Knowledge]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=65</guid>
		<description><![CDATA[
			
				
			
		
Webbots? What are they??
Internet bots, also known as web robots, WWW robots or simply bots, are nothing but the software applications that run automated tasks over the Internet. Typically, bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human alone.
In general, web bots [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F03%2F01%2Fweb-bots-and-their-use%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F03%2F01%2Fweb-bots-and-their-use%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p><strong><img class="alignright" title="Robots - A Sketch Cartoon" src="http://prabhasgupte.com/images/Robots.jpg" alt="" width="235" height="235" />Webbots? What are they??</strong></p>
<p>Internet bots, also known as web robots, WWW robots or simply bots, are nothing but the software applications that run automated tasks over the Internet. Typically, bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human alone.</p>
<p>In general, web bots can do almost everything what a human can do over the Internet. They can simply:</p>
<ul>
<li>browse the web</li>
<li>read the web pages</li>
<li>fill up and submit the forms</li>
<li>read the emails and respond automatically</li>
<li>notice the changes in contents</li>
<li>update their knowledge about something (like prices etc.)</li>
<li>download something that satisfies particular criteria</li>
<li>&#8230; and many other actions!</li>
</ul>
<p>The largest use of web bots is in web spidering, in which an automated script fetches, analyzes and files information from web servers at many times the speed of a human. These programs are also called as web crawlers.</p>
<p><strong>Where can I use them?</strong></p>
<p>The web has become a way of life and is carrying virtually all important data of this world now-a-day. Utilities that bring specific target data to your computer are a vital tool for business of these days. Web bots can address this very need. The web scraping, web aggregation, web crawling and web automation activities are important and useful in many cases &#8211; and all of these can be carried out with the help of bots (with minimal human supervision).</p>
<p><em><strong>Web Scraping<br />
</strong></em>Sometimes we need to use some data available publicly on some web site. For example, prices of some products. But copy-pasting it each time to update our copy is not at all a good idea. We can make use of web scraping bots to do this task for us. Just seat back relaxed, and this scrapper will do everything on behalf of you.</p>
<p><em><strong>Web Aggregation</strong></em><br />
Whenever it comes to decision making, we must compare something with the other. So, how do we do this &#8211; by visiting all the web pages which are at different locations and noting down the values? Why not to aggregate these?! Web aggregation bots can fetch the contents you bother about, from different web pages and give you a consolidated view of them. The contents from different sources will look exactly same as seen on the original site! Moreover, fetching the contents will be a live, runtime activity. So whenever source gets updated, you are also updated!</p>
<p><em><strong>Web crawlers</strong></em><br />
Want a repository of particular type of resources over the web? Use a web crawler! Web crawlers will go and collect whatever you want from the web. The criteria can be anything: get me all mp3 files, or make a list of all pages which have phrase &#8220;social media marketing&#8221; in the contents, &#8230; literally anything! These bots are generally aided by regular expressions, and hence work very effectively. They can give you the list of locations where resources you want are, and they can even download them for you!</p>
<p><em><strong>Web</strong><strong> Watcher</strong></em><br />
One cannot avoid competition when it comes to business. To stay a step ahead of your competitors, one must keep a watch on them. Every business proudly publishes its Press Releases, Media Coverage, Product Introductions, White Papers, Customer Wins, Upcoming Events, Promotions, Price Changes, Job Openings etc. This information can tell you a lot about what going on at your competitor&#8217;s end. But do we need to invest any time to watch our competitors? No! Web bots are also applicable for this. These bots will eventually go and check whether anything has changed on your competitors&#8217; web page. If yes, it will immediately let you know by an email alert!</p>
<p><em><strong>Automation based on Emails</strong></em></p>
<p>This is really interesting wing of web bots. You can set email-automation bots to read the emails on your behalf. They can forward the emails to others based on the subject line or sender account or email contents. Moreover, these bots can even reply back to the sender with some predefined message, if they find particular word/phrase/information in mail body or subject line!</p>
<p><em><strong>Link Verifiers</strong></em></p>
<p>These bots are basically meant for verifying whether all the links on the web page point to valid, existing and reachable web resource. These bots generally start with the home page, and go on following each link present on each web page. (avoiding the duplications, of course!) Whenever they find the resource being pointed is missing or out of reach (for example, web page cannot be seen, or video file not readable) they notify the user in some or the other way.</p>
<p>These are some of the major uses of web bots, but the list is not limited to! You name the activity over the Internet and most of the times it is doable with web bots. Yes, most of the times&#8230; There are still some cases where web bots fail to perform some action, especially when working with dynamically generated links &#8211; the one&#8217;s which have pseudo session id in the URL. The session ID never remains the same and bots fail in this case.</p>
<p>There are many ethics and other precautions needs to be followed by each web bot (at least expected to do so). Good web bots developers always follow these ethics &#8211; most important being to respect robots.txt file on each web server. If this file denies you from crawling/visiting any directory, then you should not! (I would write on this topic in a separate post.)</p>
<p>But overall, web bots are becoming really important factors in the world of the web!</p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/03/01/web-bots-and-their-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pubsubhubbub</title>
		<link>http://prabhasgupte.com/2010/02/27/pubsubhubbub/</link>
		<comments>http://prabhasgupte.com/2010/02/27/pubsubhubbub/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 08:26:54 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[pubsubhubbub]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=60</guid>
		<description><![CDATA[
			
				
			
		
The pubsubhubbub is a simple, open, server-to-server web-hook-based pubsub (publish/subscribe) protocol as an extension to Atom and RSS. The servers speaking pubsubhubbub (PSHB) protocol can get near-instant notifications (via webhook callbacks) when a topic (feed URL) they&#8217;re interested in is updated.
In a nutshell, the protocol is something like this:
1. Feed URL declares its hub server(s) [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F27%2Fpubsubhubbub%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F27%2Fpubsubhubbub%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p>The pubsubhubbub is a simple, open, server-to-server web-hook-based pubsub (publish/subscribe) protocol as an extension to Atom and RSS. The servers speaking pubsubhubbub (PSHB) protocol can get near-instant notifications (via webhook callbacks) when a topic (feed URL) they&#8217;re interested in is updated.</p>
<p>In a nutshell, the protocol is something like this:<br />
1. Feed URL declares its hub server(s) in its Atom/RSS xml file. It mentions &lt;link rel=&#8221;hub&#8221; &#8230;&gt;. The hub(s) can be run by the publisher of the feed itself, or it can also be a community hub that anybody can use.<br />
2. A subscriber (i.e. the server who is interested in the feed) initially fetches the Atom URL as usual. If the Atom file declare its hub(s), the subscriber then can avoid the polling repeatitions. Instead, it can resiter with the feed&#8217;s hub(s) to get notified about the updates.<br />
3. The subscriber now subscribes for ther target feed URL from the hub.<br />
4. Whenever publisher updates the feed, it pings the hub(s) telling them about the update.<br />
5. The hub now fetches the published updates and multicasts the new/changed update to all the registered subscribers for this feed!</p>
<p>You can see following video and/or slide show to get fair idea about PSHB protocol.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/B5kHx0rGkec&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/B5kHx0rGkec&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><iframe src="http://docs.google.com/present/embed?id=ajd8t6gk4mh2_34dvbpchfs&#038;size=m" frameborder="0" width="555" height="451"></iframe></p>
<p>This <a href="http://code.google.com/p/pubsubhubbub/">project is hosted on Google code</a>. Source code, wiki and some other doucments are also available there.</p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/02/27/pubsubhubbub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>There is no place like 127.0.0.1</title>
		<link>http://prabhasgupte.com/2010/02/10/there-is-no-place-like-127-0-0-1/</link>
		<comments>http://prabhasgupte.com/2010/02/10/there-is-no-place-like-127-0-0-1/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 04:20:53 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[localhost]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=55</guid>
		<description><![CDATA[
			
				
			
		
127.0.0.1 is the standard IP address used for a loopback network connection. If you have a web server installed on your machine, and try to connect to this address, you are immediately looped back to your own machine. The address 127.0.0.1 is also called as &#8220;localhost&#8221; which means &#8220;this computer&#8221;.
If you fire telnet or ftp [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F10%2Fthere-is-no-place-like-127-0-0-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F10%2Fthere-is-no-place-like-127-0-0-1%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft" title="There is no place like 127.0.0.1" src="http://prabhasgupte.com/images/NoPlaceLikeLoopback.jpg" alt="" width="220" height="286" />127.0.0.1 is the standard IP address used for a loopback network connection. If you have a web server installed on your machine, and try to connect to this address, you are immediately looped back to your own machine. The address 127.0.0.1 is also called as &#8220;localhost&#8221; which means &#8220;this computer&#8221;.</p>
<p>If you fire telnet or ftp command on 127.0.0.1, you will get connected to very same machine from which the command was fired. Suppose your machine&#8217;s name is &#8216;alchemist&#8217;. If you telnet to 127.0.0.1, you see something like this:</p>
<p>telnet 127.0.0.1<br />
Trying 127.0.0.1&#8230;<br />
Connected to alchemist<br />
Escape character is &#8216;^]&#8217;</p>
<p>127.0.0.1 or localhost is used in place of the name of the computer to be connected.  Though, 127.0.0.1 is most commonly used address for localhost, any IP address in the range 127.*.*.* should work in the same way.</p>
<p>Making a connection to 127.0.0.1 is the same as connecting with any other address. The only difference is that, in this case the local network interface hardware is avoided. This address is widely used by developers with intentions to test some web-based application. For IPv4 connections, the loopback address of the machine is usually assigned the address 127.0.0.1, with subnet mask 255.0.0.0.</p>
<p>Proper use of the address 127.0.0.1 is defined in <a href="http://www.rfc-editor.org/rfc/rfc3330.txt">RFC 3330 &#8211; Special Use IPv4 Addresses</a>. It says:</p>
<pre style="word-wrap: break-word; white-space: pre-wrap;">127.0.0.0/8 - This block is assigned for use as the Internet host
   loopback address.  A datagram sent by a higher level protocol to an
   address anywhere within this block should loop back inside the host.
   This is ordinarily implemented using only 127.0.0.1/32 for loopback,
   but no addresses within this block should ever appear on any network
   anywhere [RFC1700, page 5].</pre>
<p>The IPv6 version of localhost is defined in <a href="http://www.ietf.org/rfc/rfc3513.txt">RFC 3513 &#8211; Internet Protocol Version 6 Addressing Architecture</a>. It is defined as ::1/128.</p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/02/10/there-is-no-place-like-127-0-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listen, and then Communicate</title>
		<link>http://prabhasgupte.com/2010/02/09/listen-and-then-communicate/</link>
		<comments>http://prabhasgupte.com/2010/02/09/listen-and-then-communicate/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 15:14:30 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Tips-and-Tricks]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=51</guid>
		<description><![CDATA[
			
				
			
		

Listening is really underrated, most of the times. Try to hear what the client is saying. Ask them for details, thoughts on design, copy, layout, and then ask for more! Listen to what they say. Sometimes, listening between the lines is necessary too!
Then, after you listen completely, communicate to the client. Keep them updated through [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F09%2Flisten-and-then-communicate%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F09%2Flisten-and-then-communicate%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="aligncenter" title="Listen to your client" src="http://prabhasgupte.com/images/listening.jpg" alt="" width="500" height="300" /></p>
<p>Listening is really underrated, most of the times. Try to hear what the client is saying. Ask them for details, thoughts on design, copy, layout, and then ask for more! Listen to what they say. Sometimes, listening between the lines is necessary too!</p>
<p>Then, after you listen completely, communicate to the client. Keep them updated through the process. Reply to emails as quickly as possible. Send them progress updates. Then, after you launch their site/write their piece, contact them a week or so later to touch the base and see if they need anything else.</p>
<p>Clients love this. <img src='http://prabhasgupte.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/02/09/listen-and-then-communicate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to crack Windows account password?</title>
		<link>http://prabhasgupte.com/2010/02/06/how-to-crack-windows-account-password/</link>
		<comments>http://prabhasgupte.com/2010/02/06/how-to-crack-windows-account-password/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 10:56:42 +0000</pubDate>
		<dc:creator>Prabhas Gupte</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Tips-and-Tricks]]></category>

		<guid isPermaLink="false">http://prabhasgupte.com/?p=48</guid>
		<description><![CDATA[
			
				
			
		
Windows is still the most popular operating system. If you are a geek, and eventually get into a situation where someone forgets his password you can use Ophcrack. It is a free Windows password cracker based on rainbow tables. It solves passwords up to 14 characters in length. The most amazing fact about this software [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F06%2Fhow-to-crack-windows-account-password%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fprabhasgupte.com%2F2010%2F02%2F06%2Fhow-to-crack-windows-account-password%2F&amp;source=PrabhasGupte&amp;style=normal&amp;service=bit.ly&amp;service_api=R_2e8659ac4905eac6ba416994237d93cc" height="61" width="50" /><br />
			</a>
		</div>
<p>Windows is still the most popular operating system. If you are a geek, and eventually get into a situation where someone forgets his password you can use <a title="ophcrack" href="http://ophcrack.sourceforge.net/download.php">Ophcrack</a>. It is a free Windows password cracker based on <a href="http://en.wikipedia.org/wiki/Rainbow_table">rainbow tables</a>. It solves passwords up to 14 characters in length. The most amazing fact about this software is, it takes just around 10 seconds to solve the password! Moreover, you need not have any technical expertize.</p>
<p><a href="http://ophcrack.sourceforge.net/"><img class="alignright" title="Ophcrack" src="http://prabhasgupte.com/images/OSophcrack.jpg" alt="" width="240" height="100" /></a>Simply <a href="http://ophcrack.sourceforge.net/download.php">download the Ophcrack</a> ISO image and burn it into a CD. You can also load it onto an USB drive using <a href="en.wikipedia.org/wiki/UNetbootin">UNetbootin</a>. Insert this CD into machine to which you want to gain access to, then press and hold the power button down until the machine shuts down. Turn ON the computer again, and enter BIOS. Change the boot sequence to CD before HDD, save the change and exit.</p>
<p>The computer will restart again, and Ophcrack will get loaded. Now just relax and sit back! This software will do whatever it is required to do. Write down the password it tell you. That&#8217;s it! Remove the CD and reboot again. Use the given password to login.</p>
]]></content:encoded>
			<wfw:commentRss>http://prabhasgupte.com/2010/02/06/how-to-crack-windows-account-password/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
