<?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>Kudithipudi.Org</title>
	<atom:link href="http://kudithipudi.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://kudithipudi.org</link>
	<description>Too much time on hand!!!</description>
	<lastBuildDate>Wed, 10 Apr 2013 13:38:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>HOW TO : Convert PFX/P12 crypto objects into a java keystore</title>
		<link>http://kudithipudi.org/2013/04/10/how-to-convert-pfxp12-crypto-objects-into-a-java-keystore/</link>
		<comments>http://kudithipudi.org/2013/04/10/how-to-convert-pfxp12-crypto-objects-into-a-java-keystore/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 13:37:36 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1612</guid>
		<description><![CDATA[We needed to add a certificate that is currently in PKCS#12 format currently into a java keystore at work recently. The typical step would be due to create an empty keystore and then import the certificate from the PKCS#12 store using the following command Note: PKCS#12 files can have extensions &#8220;.p12&#8243; or &#8220;.pfx&#8221; The command [...]]]></description>
				<content:encoded><![CDATA[<p>We needed to add a certificate that is currently in PKCS#12 format currently into a java keystore at work recently. The typical step would be due to create an empty keystore and then import the certificate from the PKCS#12 store using the following command</p>
<pre class="brush: plain; title: ; notranslate">keytool -importkeystore -srckeystore sourceFile.p12 -srcstoretype PKCS12 -destkeystore destinationFile.jks</pre>
<p>Note: PKCS#12 files can have extensions &#8220;.p12&#8243; or &#8220;.pfx&#8221;</p>
<p>The command executed without any issues, but we received the following error when we started the application server using this newly created keystore</p>
<pre class="brush: plain; title: ; notranslate">java.io.IOException: Error initializing server socket factory SSL context: Cannot recover key </pre>
<p>It didn&#8217;t make sense, because we were able to view the certificate in the keystore and were using the right password in the configuration files.</p>
<p>After a lot of searching and head scratching, the team came up with the following solution</p>
<ol>
<li>Export the public key and private key from the PKCS#12 store using openssl.</li>
<li>Import these keys into the java keystore (default format of JKS)</li>
</ol>
<p>The commands used were</p>
<pre class="brush: plain; title: ; notranslate">
openssl pkcs12 -in sourcePKCS12File.p12 -nocerts -out privateKey.pem
openssl pkcs12 -in sourcePKCS12File.p12 -nokeys -out publicCert.pem
openssl pkcs12 -export -out intermittentPKCS12File.p12 -inkey privateKey.pem -in publicCert.pem
keytool -importkeystore -srckeystore intermittantPKCS12File.p12 -srcstoretype PKCS12 -destkeystore finalKeyStore.jks
</pre>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2013/04/10/how-to-convert-pfxp12-crypto-objects-into-a-java-keystore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOW TO : Use grep and awk to find count of unique entries</title>
		<link>http://kudithipudi.org/2013/02/26/how-to-use-grep-and-awk-to-find-count-of-unique-entries/</link>
		<comments>http://kudithipudi.org/2013/02/26/how-to-use-grep-and-awk-to-find-count-of-unique-entries/#comments</comments>
		<pubDate>Wed, 27 Feb 2013 04:11:48 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1605</guid>
		<description><![CDATA[I have use grep extensively before to analyze data in log files before. A good example is this post about using grep and sort to find the unique hits to a website. Here is another way to do it using grep and awk. Say the log file you are analyzing is in the format below [...]]]></description>
				<content:encoded><![CDATA[<p>I have use grep extensively before to analyze data in log files before. A good example is <a href="http://kudithipudi.org/2012/02/29/how-to-sort-apache-web-logs-for-hits-by-unique-ip-addresses/">this post</a> about using grep and sort to find the unique hits to a website. Here is another way to do it using <a href="http://en.wikipedia.org/wiki/Grep">grep</a> and <a href="http://en.wikipedia.org/wiki/AWK">awk</a>.</p>
<p>Say the log file you are analyzing is in the format below and you need to get the unique number of BundleIDs</p>
<pre class="brush: plain; title: ; notranslate">2013-02-25 12:00:06,684 ERROR [com.blahblah.sme.command.request.CustomCommand] Unable to execute AssignServiceCommand, request = '&lt;AssignServiceToRequest&gt;&lt;MemberId&gt;123456&lt;/MemberId&gt;&lt;OrderBundle&gt;&lt;BundleId&gt;5080&lt;/BundleId&gt;&lt;/OrderBundle&gt;&lt;/AssignServiceToRequest&gt;'</pre>
<p>you can use grep and awk to find the number of times a unique bundleID appears by running</p>
<pre class="brush: plain; title: ; notranslate">grep -i bundleID LOG_FILE_NAME | awk '{ split ($11,a,&quot;&gt;&quot;); print a[6]}' | sort | uniq -c | sort -rn </pre>
<p>breaking down the commands</p>
<p><strong>grep -i</strong> : tells grep to only show the lines from the file (LOG_FILE_NAME) containing the text bundleID and makes the search case insensitive</p>
<p><strong>awk &#8216;{ split ($11,a,&#8221;&gt;&#8221;); print a[6]}&#8217;</strong> : tells awk to grab the input from grep and take the 11th item (by default awk separates content with a space) and split the string into an array (a) using &gt; as a delimiter. And finally print out the value of the array a&#8217;s sixth member</p>
<p><strong>sort</strong> : sorts the output from awk into ascending order</p>
<p><strong>uniq -c</strong> : takes the output from sort and counts uniq items</p>
<p><strong>sort -qn</strong> : takes the output from uniq and does a reverse order sort</p>
<p>The output looked like this</p>
<pre class="brush: plain; title: ; notranslate">
173 5080&lt;/BundleId
12 5090&lt;/BundleId
8 2833&lt;/BundleId
1 2412&lt;/BundleId
1 2038&lt;/BundleId
1 1978&lt;/BundleId
1 1924&lt;/BundleId
</pre>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2013/02/26/how-to-use-grep-and-awk-to-find-count-of-unique-entries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOW TO : Configure tcpdump to rotate capture files based on size</title>
		<link>http://kudithipudi.org/2013/02/14/how-to-configure-tcpdump-to-rotate-capture-files-based-on-size/</link>
		<comments>http://kudithipudi.org/2013/02/14/how-to-configure-tcpdump-to-rotate-capture-files-based-on-size/#comments</comments>
		<pubDate>Thu, 14 Feb 2013 07:17:56 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1600</guid>
		<description><![CDATA[quick note for self. If you are capturing traffic using tcpdump, you can rotate the capture files based on size explanation of the options used -i : specify the interface you want to capture the traffic on. If  not specified, tcpdump will listen on the lowest numbered interface. i.e. eth0 -C : specify the size of the file multiplied [...]]]></description>
				<content:encoded><![CDATA[<p>quick note for self. If you are capturing traffic using tcpdump, you can rotate the capture files based on size</p>
<pre class="brush: plain; title: ; notranslate">sudo tcpdump -i INTERFACE_TO_CAPTURE_TRAFFIC_ON -C 10 -s0 -W NO_OF_FILES_TO_ROTATE_THROUGH -w /PATH_TO_CAPTURE_FILE </pre>
<p>explanation of the options used</p>
<p><strong>-i</strong> : specify the interface you want to capture the traffic on. If  not specified, tcpdump will listen on the lowest numbered interface. i.e. eth0</p>
<p><strong>-C</strong> : specify the size of the file multiplied by 1000000 bytes. In this example, the file created would be 10000000 bytes. Or ~9.8MB</p>
<p><strong>-s</strong> : specify the packet length to capture. 0 (zero) tells tcpdump to capture the entire packet</p>
<p><strong>-W</strong> : specify the number of files to rotate through once the files size specified in -C is reached. The files keep rotating throughout the capture</p>
<p><strong>-w</strong> : Specify the path to the capture file. tcpdump appends an integer to the end of the file based on the number of files it has to rotate through.</p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2013/02/14/how-to-configure-tcpdump-to-rotate-capture-files-based-on-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOW TO : Restrict access to proxied content in Apache</title>
		<link>http://kudithipudi.org/2013/01/29/how-to-restrict-access-to-proxied-content-in-apache/</link>
		<comments>http://kudithipudi.org/2013/01/29/how-to-restrict-access-to-proxied-content-in-apache/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 14:21:21 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1594</guid>
		<description><![CDATA[If you are using the mod_proxy feature in Apache to forward requests for certain content to a backend server, but want to restrict access to that content to clients originating from certain IP addresses, you can use the location feature in Apache. The Location directive limits the scope of the enclosed directives by URL. This [...]]]></description>
				<content:encoded><![CDATA[<p>If you are using the <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html">mod_proxy</a> feature in <a href="http://httpd.apache.org">Apache</a> to forward requests for certain content to a backend server, but want to restrict access to that content to clients originating from certain IP addresses, you can use the location feature in Apache.</p>
<p>The Location directive limits the scope of the enclosed directives by URL. This is very similar to the Directory directive, but the difference is that you can put controls based on the URL rather than the location of the content.</p>
<p>In this example, I am forwarding content destined to http://kudithipudi.org/testLocation to an internal server at http://127.0.0.1:8080/testLocation. I am going to use the Location directive to restrict access to just requests originating from IP Address 10.10.10.10</p>
<pre class="brush: plain; title: ; notranslate">

&lt;Location /testLocation&gt;
 Order Deny,Allow
 Deny from all
 Allow from 10.10.10.10
&lt;/Location&gt;

ProxyPass /testLocation http://127.0.0.1:8080/testLocation
ProxyPassReverse /testLocation http://127.0.0.1:8080/testLocation </pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2013/01/29/how-to-restrict-access-to-proxied-content-in-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOW TO : Run web servers using one liners</title>
		<link>http://kudithipudi.org/2012/12/28/how-to-run-web-servers-using-one-liners/</link>
		<comments>http://kudithipudi.org/2012/12/28/how-to-run-web-servers-using-one-liners/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 21:56:50 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1572</guid>
		<description><![CDATA[A collection of one liners using different tools and programming languages to run a full fledged web server on any machine. They can be used to Serve files located on the server Act as server listening on a particular port. This is especially helpful if you are trying to setup a load-balancer and/or firewall and [...]]]></description>
				<content:encoded><![CDATA[<p>A collection of one liners using different tools and programming languages to run a full fledged web server on any machine. They can be used to</p>
<ol>
<li>Serve files located on the server</li>
<li>Act as server listening on a particular port. This is especially helpful if you are trying to setup a load-balancer and/or firewall and need to test access to the end points.</li>
</ol>
<p>The criteria for the on liners was that you don&#8217;t need any additional modules other than the standard modules included with the language distributions.</p>
<h3>NC : Netcat</h3>
<p>netcat (nc) is pretty powerful network utility. You can start a web server running on port 8080 by simply running</p>
<pre class="brush: plain; title: ; notranslate">nc -l 8080</pre>
<p>If you want to serve a particular file, you can do so by running</p>
<pre class="brush: plain; title: ; notranslate">while :; do nc -l 8080 &lt; SAMPLE_FILE ; done </pre>
<h3>Python</h3>
<p>You can start a web server in python by running</p>
<p>Python 2.x</p>
<pre class="brush: plain; title: ; notranslate"> python -m SimpleHTTPServer 8080 </pre>
<p>Python 3.x</p>
<pre class="brush: plain; title: ; notranslate">python -m http.server 8080 </pre>
<p>This command will serve up a page with listing of all the files in the directory that the command was executed in. Pretty nifty way to quickly share files</p>
<h3>Perl</h3>
<p>You can start a web server in perl by running</p>
<pre class="brush: plain; title: ; notranslate">perl -MIO::All -e 'io(&quot;:8080&quot;)-&gt;fork-&gt;accept-&gt;(sub { $_[0] &lt; io(-x $1 ? &quot;./$1 |&quot; : $1) if /^GET \/(.*) / })' </pre>
<h3>Ruby</h3>
<p>You can start a web server using Ruby by running<br />
<del>sudo ruby -rwebrick -e &#8216;server = WEBrick::HTTPServer.new : Port = &gt;8080</del><br />
<del> server.start&#8217;</del><br />
<del> I haven&#8217;t been able to figure out how to pass an end of line in the command  line. So you need to literally pass the commands in two lines.</del></p>
<p>Scratch that.. My friend, <a href="http://twitter.com/raykrueger">Ray</a>, showed me the right way to pass a line delimiter in the same command.</p>
<pre class="brush: plain; title: ; notranslate">ruby -rwebrick -e 'server = WEBrick::HTTPServer.new(:Port =&gt; 8080) ; server.start' </pre>
<p>He even provided an additional option to define the directory you want to serve files from</p>
<pre class="brush: plain; title: ; notranslate">: DocumentRoot =&gt; '/some/shit' </pre>
<h3>PHP</h3>
<p>Starting with PHP 5.4 you can initiate a web server by running</p>
<pre class="brush: plain; title: ; notranslate">php -S localhost:8080</pre>
<p>All of these options should work on any operating system. But I have only tried them on Linux.</p>
<p>Do you know how to do the same thing in other languages? Please share them in the comments section.</p>
<p><strong>Credits:</strong> I collected these bits of code from the following sites</p>
<p>Python : <a href="http://www.garyrobinson.net/2004/03/one_line_python.html">http://www.garyrobinson.net/2004/03/one_line_python.html</a></p>
<p>Perl : <a href="http://www.perlmonks.org/?node_id=470397">http://www.perlmonks.org/?node_id=470397</a></p>
<p>Ruby : <a href="http://phrogz.net/simplest-possible-ruby-web-server">http://phrogz.net/simplest-possible-ruby-web-server</a></p>
<p>PHP : <a href="http://php.net/manual/en/features.commandline.webserver.php">http://php.net/manual/en/features.commandline.webserver.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2012/12/28/how-to-run-web-servers-using-one-liners/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Venturing into the unknown</title>
		<link>http://kudithipudi.org/2012/11/29/venturing-into-the-unknown/</link>
		<comments>http://kudithipudi.org/2012/11/29/venturing-into-the-unknown/#comments</comments>
		<pubDate>Thu, 29 Nov 2012 06:29:39 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1567</guid>
		<description><![CDATA[I am a Google fanboy. And I don&#8217;t make a secret of it . All the smartphones I have ever carried are Android based, unless you count the Blackberry as a smartphone. All my tablets are Android based. My personal domain is served by Google Apps. I use Google Analytics to report on the traffic [...]]]></description>
				<content:encoded><![CDATA[<p>I am a <a href="http://www.google.com">Google</a> fanboy. And I don&#8217;t make a secret of it <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . All the smartphones I have ever carried are Android based, unless you count the Blackberry as a smartphone. All my tablets are Android based. My personal domain is served by <a href="http://www.google.com/appengine">Google Apps</a>. I use <a href="http://www.google.com/analytics">Google Analytics</a> to report on the traffic to this <a href="http://kudithipudi.org">blog</a>.</p>
<p>You get the picture.. I love all things Google <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Today, I have made a pretty radical decision. Radical, considering my history and association. I am going to use an iPhone and iPad for the next 60 days. And then I am going to use a Windows Phone and Windows Tablet for the following 60 days.</p>
<p>Why you ask? I think it is important for every technology executive to try offerings from all the major players in the market. You might your personal preferences, but you should at least experience what your customers are experiencing when they use the technology on a daily basis.</p>
<p>I wouldn&#8217;t necessarily call it <a href="http://technet.microsoft.com/en-us/library/cc627315.aspx">dogfooding</a>, since I am not developing (or involved in) these devices, but you have to have a good understanding of the different offerings out there. Yes, you can read the reviews, but experiencing it on your own is quite different.</p>
<p>I will be blogging the results of this experiment soon <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2012/11/29/venturing-into-the-unknown/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HOW TO : Combine landscape and portrait page layouts in Microsoft Word</title>
		<link>http://kudithipudi.org/2012/11/25/how-to-combine-landscape-and-portrait-page-layouts-in-microsoft-word/</link>
		<comments>http://kudithipudi.org/2012/11/25/how-to-combine-landscape-and-portrait-page-layouts-in-microsoft-word/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 03:19:41 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1565</guid>
		<description><![CDATA[Blogging this as a &#8220;memory&#8221; note for myself I was putting together a report for work and needed one of the pages in the word document to be in landscape mode, instead of the regular portrait mode. I thought it was a simple thing of adding a page break and applying the &#8220;landscape&#8221; layout in the page [...]]]></description>
				<content:encoded><![CDATA[<p>Blogging this as a &#8220;memory&#8221; note for myself <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I was putting together a report for work and needed one of the pages in the word document to be in landscape mode, instead of the regular portrait mode. I thought it was a simple thing of adding a page break and applying the &#8220;landscape&#8221; layout in the page setup. But ended up either having all pages in landscape mode or in portrait mode. A bit of <a href="https://www.google.com/search?q=microsoft+word+mixing+landscape+portrait">googling</a> finally helped out <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Looks like the trick is to use section breaks instead of page breaks.</p>
<p>Here are the steps to do it in Microsoft Word 2010</p>
<ol>
<li>Add the content you want into word. In this example, I created two paragraphs, test landscape and test portrait <img class="aligncenter" src="http://farm9.staticflickr.com/8338/8219766830_002196e93b_z_d.jpg" alt="" width="640" height="446" /></li>
<li>At the place you want to split the page format, insert a section break, by going to Page Layout &#8211;&gt; Breaks &#8211;&gt; Section Breaks &#8211;&gt; Next Page <img class="aligncenter" src="http://farm9.staticflickr.com/8208/8219766712_cc6f9d7ca6_z_d.jpg" alt="" width="640" height="446" /></li>
<li>Now change the page orientation by going to Page Layout -&gt; Orientation &#8211;&gt; Landscape. This will only change the orientation for the current section.<img class="aligncenter" src="http://farm9.staticflickr.com/8206/8218686659_01f7c06aa6_z_d.jpg" alt="" width="640" height="360" /></li>
<li>And voila you document now has two different page orientations <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <img class="aligncenter" src="http://farm9.staticflickr.com/8338/8218686517_61ca248cba_z_d.jpg" alt="" width="640" height="345" /></li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2012/11/25/how-to-combine-landscape-and-portrait-page-layouts-in-microsoft-word/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOW TO : Use curl to check the impact of DNS changes</title>
		<link>http://kudithipudi.org/2012/11/12/how-to-use-curl-to-check-the-impact-of-dns-changes/</link>
		<comments>http://kudithipudi.org/2012/11/12/how-to-use-curl-to-check-the-impact-of-dns-changes/#comments</comments>
		<pubDate>Mon, 12 Nov 2012 22:48:16 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1558</guid>
		<description><![CDATA[Ran into an interesting scenario at work today. We had to check the impact of a DNS change on a certain hostname. Normally, you would edit your host file entry to reflect the DNS change and do your testing. Here is another way you can do it using cURL. In this particular example, I am [...]]]></description>
				<content:encoded><![CDATA[<p>Ran into an interesting scenario at work today. We had to check the impact of a DNS change on a certain hostname. Normally, you would edit your host file entry to reflect the DNS change and do your testing. Here is another way you can do it using <a href="http://curl.haxx.se">cURL</a>. In this particular example, I am checking the SSL certificate details of the hostname .</p>
<pre class="brush: plain; title: ; notranslate">curl --insecure --trace-ascii debug.txt https://HOSTNAME:PORT --resolve HOSTNAME:PORT:IP_ADDRESS </pre>
<p>That&#8217;s a pretty convoluted command <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Let&#8217;s try to break it down</p>
<pre class="brush: plain; title: ; notranslate">--insecure </pre>
<p>: tells cURL to ignore certificate warnings. This is helpful if you are using self signed certs</p>
<pre class="brush: plain; title: ; notranslate">--trace-ascii </pre>
<p>: tells cURL to save the SSL connection details (in debug mode) to a file called debug.txt</p>
<pre class="brush: plain; title: ; notranslate">--resolve </pre>
<p>: tells cURL to use the options mentioned after it to resolve the hostname, rather than using DNS. The format for resolve is &lt;host:port:address&gt;</p>
<p><strong>NOTE:</strong> You need to have <a href="http://curl.haxx.se/changes.html">version 7.21.3</a> or higher of cURL to use this option</p>
<p>Here&#8217;s a real world example. Say, I want to see how the IP address 72.30.38.140 would reacts if www.google.com requests are routed to it</p>
<pre class="brush: plain; title: ; notranslate">

samurai@samurai:~$ curl --insecure --trace-ascii debug.txt https://www.google.com --resolve www.google.com:443:72.30.38.140
The document has moved &lt;A HREF=&quot;http://www.google.com/?s=https&quot;&gt;here&lt;/A&gt;.&lt;P&gt;
&lt;!-- ir2.fp.sp2.yahoo.com uncompressed/chunked Mon Nov 12 22:44:41 UTC 2012 --&gt;
samurai@samurai:~$ more debug.txt
== Info: Added www.google.com:443:72.30.38.140 to DNS cache
== Info: About to connect() to www.google.com port 443 (#0)
== Info: Trying 72.30.38.140... == Info: connected
== Info: Connected to www.google.com (72.30.38.140) port 443 (#0)
== Info: successfully set certificate verify locations:
== Info: CAfile: none
 CApath: /etc/ssl/certs
== Info: SSLv3, TLS handshake, Client hello (1):
=&gt; Send SSL data, 223 bytes (0xdf)
0000: ......P.|v..1..kA.......=J.xr.=ft.3.|...Z.....9.8.........5.....
0040: ................3.2.....E.D...../...A...........................
0080: .......W.........www.google.com...........4.2...................
00c0: ...............................
== Info: SSLv3, TLS handshake, Server hello (2):
&lt;= Recv SSL data, 42 bytes (0x2a)
0000: ...&amp;..P.{.I&quot;L....3x..N...9..../&lt;n....A..5.
== Info: SSLv3, TLS handshake, CERT (11):
&lt;= Recv SSL data, 1272 bytes (0x4f8)
0000: ..........0...0..S..........0...*.H........0N1.0...U....US1.0...
0040: U....Equifax1-0+..U...$Equifax Secure Certificate Authority0...1
0080: 00401230014Z..150703045000Z0..1)0'..U... 2g8aO5wI1bKJ2ZD588UsLvD
00c0: e3gTbg8DU1.0...U....US1.0...U....California1.0...U....Sunnyvale1
0100: .0...U....Yahoo Inc.1.0...U....www.yahoo.com0..&quot;0...*.H........
0140: .....0..........5.p./........O...k.C...9E+.J..H.s....Bm.T.E.-..&lt;
0180: ^...m...r.v&lt;\...&amp;Qq..l.......... @'(q.m..ZJ.*kt...!.AWU.......M.
01c0: ...n...O....0.._...H....4......&gt;.m..K.......Z...:.Df%.lR.!...(!.
0200: .FV.dQ...f.V....P,.J9.c..dM.s&gt;C=....Y..#...47#2.....cP.{....g.rU
0240: .d...P.................0...0...U...........0...U.............t5.
0280:......U..0:..U...3010/.-.+.)http://crl.geotrust.com/crls/secure
02c0: ca.crl0..[..U.....R0..N..www.yahoo.com..yahoo.com..us.yahoo.com.
0300: .kr.yahoo.com..uk.yahoo.com..ie.yahoo.com..fr.yahoo.com..in.yaho
0340: o.com..ca.yahoo.com..br.yahoo.com..de.yahoo.com..es.yahoo.com..m
0380: x.yahoo.com..it.yahoo.com..sg.yahoo.com..id.yahoo.com..ph.yahoo.
03c0: com..qc.yahoo.com..tw.yahoo.com..hk.yahoo.com..cn.yahoo.com..au.
0400: yahoo.com..ar.yahoo.com..vn.yahoo.com0...U.#..0...H.h.+....G.# .
0440: O3....0...U.%..0...+.........+.......0...*.H...............2..0.
0480: S.'.y....GD.Q...=...K+..q..kv.......&lt;h.......ZLE.h$..M2^.C..IT..
04c0: &quot;.5j....Vc7.4......1.Wu.[.a&gt;+.........9..{.a:.........
== Info: SSLv3, TLS handshake, Server finished (14):
&lt;= Recv SSL data, 4 bytes (0x4)
0000: ....
== Info: SSLv3, TLS handshake, Client key exchange (16):
=&gt; Send SSL data, 262 bytes (0x106)
0000: .......R.....b.,.&amp;.. s.Ob;.E_.EnSw../D...'.....(aB&lt;&lt;......F..]..
0040: o.........~...*..r?.C..%..22...J.bu&amp;.x(j|.......&gt;A5..OF.G...C.$.
0080: .9u9n.z...K.....u.....~:W.{Sii.{2..6........&lt;.....i...8y$y.....6
00c0: ...1.(M...fx....#k..r....47..t.q.....A.?.0. .D.....~...G+.,....~
0100: ..=.#y
== Info: SSLv3, TLS change cipher, Client hello (1):
=&gt; Send SSL data, 1 bytes (0x1)
0000: .
== Info: SSLv3, TLS handshake, Finished (20):
=&gt; Send SSL data, 16 bytes (0x10)
0000: ....!9)...6...+.
== Info: SSLv3, TLS change cipher, Client hello (1):
&lt;= Recv SSL data, 1 bytes (0x1)
0000: .
== Info: SSLv3, TLS handshake, Finished (20):
&lt;= Recv SSL data, 16 bytes (0x10)
0000: .....(qN..l.]...
== Info: SSL connection using AES256-SHA
== Info: Server certificate:
== Info: subject: serialNumber=2g8aO5wI1bKJ2ZD588UsLvDe3gTbg8DU; C=US; ST=California; L=Sunnyvale; O=Yahoo Inc.; CN=www.yahoo.com
== Info: start date: 2010-04-01 23:00:14 GMT
== Info: expire date: 2015-07-03 04:50:00 GMT
== Info: subjectAltName does not match www.google.com
=&gt; Send header, 167 bytes (0xa7)
0000: GET / HTTP/1.1
0010: User-Agent: curl/7.21.6 (x86_64-pc-linux-gnu) libcurl/7.21.6 Ope
0050: nSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
0082: Host: www.google.com
0098: Accept: */*
00a5:
&lt;= Recv header, 32 bytes (0x20)
0000: HTTP/1.1 301 Moved Permanently
&lt;= Recv header, 37 bytes (0x25)
0000: Date: Mon, 12 Nov 2012 22:44:41 GMT
&lt;= Recv header, 42 bytes (0x2a)
0000: Location: http://www.google.com/?s=https
&lt;= Recv header, 23 bytes (0x17)
0000: Vary: Accept-Encoding
&lt;= Recv header, 19 bytes (0x13)
0000: Connection: close
&lt;= Recv header, 28 bytes (0x1c)
0000: Transfer-Encoding: chunked
&lt;= Recv header, 40 bytes (0x28)
0000: Content-Type: text/html; charset=utf-8
&lt;= Recv header, 24 bytes (0x18)
0000: Cache-Control: private
&lt;= Recv header, 2 bytes (0x2)
0000:
&lt;= Recv data, 173 bytes (0xad)
0000: 000009d
0009: The document has moved &lt;A HREF=&quot;http://www.google.com/?s=https&quot;&gt;
0049: here&lt;/A&gt;.&lt;P&gt;.&lt;!-- ir2.fp.sp2.yahoo.com uncompressed/chunked Mon
0089: Nov 12 22:44:41 UTC 2012 --&gt;.
00a8: 0
00ab:
== Info: Closing connection #0
== Info: SSLv3, TLS alert, Client hello (1):
=&gt; Send SSL data, 2 bytes (0x2)
0000: ..

</pre>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2012/11/12/how-to-use-curl-to-check-the-impact-of-dns-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interesting (infrastructure) tidbits about Microsoft Azure</title>
		<link>http://kudithipudi.org/2012/11/08/interesting-infrastructure-tidbits-about-microsoft-azure/</link>
		<comments>http://kudithipudi.org/2012/11/08/interesting-infrastructure-tidbits-about-microsoft-azure/#comments</comments>
		<pubDate>Fri, 09 Nov 2012 04:05:23 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1553</guid>
		<description><![CDATA[I attended a session organized by aditi regarding Microsoft Azure and Windows 8, called &#8220;Go Cloud 8&#8243; today. One of the speakers in the event was Deepak Rao, Microsoft&#8217; Director of Cloud Computing. He shared some interesting numbers about the infrastructure running Microsoft Azure 8 carrier grade data centers around the world. &#8220;Carrier&#8221; grade because [...]]]></description>
				<content:encoded><![CDATA[<p>I attended a session organized by aditi regarding <a href="http://www.windowsazure.com/en-us/">Microsoft Azure</a> and <a href="http://windows.microsoft.com/en-US/windows-8/meet">Windows 8</a>, called &#8220;Go Cloud 8&#8243; today. One of the speakers in the event was <a href="http://www.linkedin.com/pub/deepak-rao/0/1b8/822">Deepak Rao</a>, Microsoft&#8217; Director of Cloud Computing. He shared some interesting numbers about the infrastructure running Microsoft Azure</p>
<ul>
<li>8 carrier grade data centers around the world. &#8220;Carrier&#8221; grade because of the sheer size of them.</li>
<li>The <a href="http://en.wikipedia.org/wiki/Windows_Azure">data center</a> in Chicago houses more than 350,000 servers and is supported by only 30 FTEs (which makes me think about the number of contractors they have there <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</li>
<li>1 in 4 x86 servers produced were bought by Microsoft. Not sure if it was in 2011 or 2012!!</li>
</ul>
<p>Deepak also gave an real world example of how one of their customers used Azure.</p>
<p><a href="http://www.bpro.com/">BPro Inc</a> provides software to counties and states for helping report election results. They run their backend on the Azure platform. During normal periods, they run ~10 instances of compute nodes. But during the election day (11/6) this week, BPro spun up 8600 compute nodes in less than 15 minutes at 4:00 PM EST, to help support the load created by the demand for election results and than again shutdown all of them at around 1:00 AM EST when the demand decreased. Using the &#8220;list&#8221; pricing of $0.12/hr/compute node, that massive increase in capacity cost them ~$8K!!.</p>
<p>That is pretty impressive and I usually don&#8217;t use the work impressive in the same sentence as Microsoft <img src='http://kudithipudi.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2012/11/08/interesting-infrastructure-tidbits-about-microsoft-azure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another 4 years</title>
		<link>http://kudithipudi.org/2012/11/07/another-4-years/</link>
		<comments>http://kudithipudi.org/2012/11/07/another-4-years/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 04:56:07 +0000</pubDate>
		<dc:creator>Vinay</dc:creator>
				<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://kudithipudi.org/?p=1549</guid>
		<description><![CDATA[Word cloud (wordle) of Obama&#8217;s speech after winning a second term.]]></description>
				<content:encoded><![CDATA[<p>Word cloud (<a href="http://www.wordle.net/">wordle</a>) of <a href="http://www.bbc.co.uk/news/world-20236369">Obama&#8217;s speech</a> after winning a second term.</p>
<p><img class="aligncenter" title="Obama : 2012 Election : Celebration Speech" src="http://farm9.staticflickr.com/8070/8165934288_12bfeae372_c_d.jpg" alt="" width="800" height="488" /></p>
]]></content:encoded>
			<wfw:commentRss>http://kudithipudi.org/2012/11/07/another-4-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
