<?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>Shekhar Govindarajan's Blog &#187; Linux</title>
	<atom:link href="http://www.shekhargovindarajan.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shekhargovindarajan.com</link>
	<description>My Notepad on the Web</description>
	<lastBuildDate>Thu, 29 Jul 2010 05:58:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/" />
			<item>
		<title>Solved: Images load up partially when served by Apache Web Server</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/solved-images-load-up-partially-when-served-by-apache-web-server/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=solved-images-load-up-partially-when-served-by-apache-web-server</link>
		<comments>http://www.shekhargovindarajan.com/tips-n-tricks/solved-images-load-up-partially-when-served-by-apache-web-server/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 18:00:39 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tips N Tricks]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cifs]]></category>
		<category><![CDATA[enablesendfile]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=1647</guid>
		<description><![CDATA[This was a very strange issue which showed up at one of my client&#8217;s Web application. The application is hosted on a Apache Web server and serves JPEG images. These JPEG files reside on a different server and mounted via CIFS (loosely called Samba mount) on the Linux machine running the Web server.
Now the issue [...]]]></description>
			<content:encoded><![CDATA[<p>This was a very strange issue which showed up at one of my client&#8217;s Web application. The application is hosted on a Apache Web server and serves JPEG images. These JPEG files reside on a different server and mounted via CIFS (loosely called Samba mount) on the Linux machine running the Web server.</p>
<p>Now the issue was, many JPEG images, especially the larger ones, loaded up only partially in a Web browser (both Internet Explorer and Firefox). What made them load fully was pressing CTRL+R or clicking on Refresh/Reload several times. Bandwidth wasn&#8217;t an issue here, since this problem occurred even when browsing the JPEGs from the local network.<span id="more-1647"></span></p>
<p>At first, I doubted that it could be an issue with the way the JPEGs are produced, something related to the progressive rendering et al. But then I came across an instance (too involved to explain it here) which proved me wrong.</p>
<p>Testing the case further, I found that the JPEGs load absolutely fine in the Web browser, when opened up via File&gt;Open &#8211; instead of hitting the Web Server. This made me turn my eyes onto the Apache Web server. Googling around and reading the comments in the Apache configuration file gave a few hints. With some hit-n-trial, the solution that worked for me is as follows:</p>
<ul>
<li>Login as root</li>
<li>Open the httpd.conf file (the configuration file of Apache Web server) in a text editor (like vi). On RedHat/Fedora/CentOS Linux, this file can be found in the directory /etc/httpd/conf</li>
<li>Append the following line to the end of the file:EnableSendfile off</li>
<li>Save the file.</li>
<li>Reload or restart the web server. On a RedHat/Fedora/CentOS Linux the command &#8217;service httpd reload&#8217; can be used for the same.</li>
</ul>
<p>The EnableSendFile directive in Apache is documented as: &#8220;Control whether the sendfile kernel support is used to deliver files (assuming that the OS supports it). The default is on; turn this off if you serve from NFS-mounted filesystems.&#8221;</p>
<p>What caught my attention was &#8220;turn this off if you serve from NFS-mounted filesystems&#8221;. But, in my case, the JPEG files were mounted via CIFS and not NFS. But reading more about the EnableSendFile directive at <a href="http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile">http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile</a>, reveals the it affects even SMB (and hence CIFS) or any other network mounted files. Following is the snippet from the document:</p>
<p><em>With a network-mounted DocumentRoot (e.g., NFS or SMB), the kernel may be unable to serve the network file through its own cache.</em></p>
<p>Also, I guess, this solution is not specific to JPEG files. The above mentioned issue and the solution should be applicable to other file types too, which are served from a network mounted drive.</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1647&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tips-n-tricks/solved-images-load-up-partially-when-served-by-apache-web-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL GUI Tools (Query Browser, Administrator) for Fedora 13</title>
		<link>http://www.shekhargovindarajan.com/open-source/mysql-gui-tools-query-browser-administrator-for-fedora-13/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mysql-gui-tools-query-browser-administrator-for-fedora-13</link>
		<comments>http://www.shekhargovindarajan.com/open-source/mysql-gui-tools-query-browser-administrator-for-fedora-13/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 04:10:06 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Fedora 13]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql administrator]]></category>
		<category><![CDATA[mysql gui tools]]></category>
		<category><![CDATA[mysql query browser]]></category>
		<category><![CDATA[mysql workbench]]></category>
		<category><![CDATA[remi repository]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=1604</guid>
		<description><![CDATA[In Fedora Linux, the mysql-gui-tools package provides the graphical (or GUI) clients to query and administer a MySQL database &#8211; useful alternatives to the command line client.
While I&#8217;m very comfortable with the mysql command line client, I do switch to the GUI query browser to add/edit stored procedures/functions.
&#8220;yum install mysql-gui-tools&#8221; was the simplest command to [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://fedoraproject.org/" target="_blank">Fedora Linux</a>, the mysql-gui-tools package provides the graphical (or GUI) clients to query and administer a MySQL database &#8211; useful alternatives to the command line client.</p>
<p>While I&#8217;m very comfortable with the mysql command line client, I do switch to the GUI query browser to add/edit stored procedures/functions.</p>
<p>&#8220;yum install mysql-gui-tools&#8221; was the simplest command to install the GUI tools for MySQL in Fedora Linux. But in Fedora 13, this results in &#8220;No package  mysql-gui-tools available&#8221;.</p>
<p>So what happened here?</p>
<p><span id="more-1604"></span><strong> </strong></p>
<p><strong>Why Fedora 13 repositories don&#8217;t have mysql-gui-tools package ?<br />
</strong>The reason for this is explained in a bug report <a href="https://bugzilla.redhat.com/show_bug.cgi?id=573405" target="_blank">here</a>. In a nutshell, the explanation is, the MySQL GUI tools is purposely removed from the Fedora 13 repositories because they have been buggy! Fair enough &#8211; it has crashed on me many a times.</p>
<p>But what is the alternative? The thread in the bug report suggests that it will be replaced with <a href="http://wb.mysql.com/" target="_blank">MySQL Workbench</a>. That&#8217;s great! MySQL Workbench has <a href="http://www.mysql.com/products/workbench/features.html" target="_blank">many more features</a>. So now can I issue a &#8216;yum-install mysql-workbench&#8217; to have it installed on Fedora 13? The answer is no. This is because the bug report sums up with the following note:</p>
<pre>mysql-workbench has not finished its review yet.  this is due to the enormous
amount of work needed as the mysql team follows lots of bad practices.

Until we can cleanly and sanely package mysql-workbench there will be nothing
available on fedora. 

<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">The above reply is dated June 17, 2010. A 'no release date' left me desperate to look around (google).</span></pre>
<p><strong>The solution</strong><br />
There is always a solution and Google leads us to it. In a nutshell, I installed MySQL Workbench  from the <a href="http://rpms.famillecollet.com/" target="_blank">Remi repository</a>. A quick install of MySQL Workbench, on Fedora 13, is as follows:</p>
<ul>
<li>Login as root</li>
<li>Open a terminal window in GNOME/KDE or switch to the command line</li>
<li>Issue the command:<br />
<em>rpm &#8211;import http://rpms.famillecollet.com/RPM-GPG-KEY-remi </em></li>
<li>Next, issue the command:<br />
<em>yum install http://rpms.famillecollet.com/remi-release-13.rpm</em></li>
<li>Open the file named remi.repo, found in the directory /etc/yum.repos.d, in a text editor (say vi) and change line no. 5 from:<br />
<em> enabled=0 to enabled=1</em><br />
<span style="font-style: normal;">This will enable the [remi] repository. </span></li>
<li>Finally issue:<br />
<em>yum install mysql-workbench</em><br />
to install MySQL Workbench on Fedora 13.</li>
</ul>
<p>Henceforth, MySQL Workbench can be launched via a terminal window by issuing <em>mysql-workbench</em> or it can be found under Applications &gt;Programming in GNOME.</p>
<p><em> </em></p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1604&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/open-source/mysql-gui-tools-query-browser-administrator-for-fedora-13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-04-06</title>
		<link>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-04-06/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-updates-for-2010-04-06</link>
		<comments>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-04-06/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 05:59:00 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tweets]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[online storage]]></category>
		<category><![CDATA[shekharg]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-04-06/</guid>
		<description><![CDATA[
You aren&#39;t as easygoing as you appear today, but others won&#39;t &#8230; More for Leo http://twittascope.com/?sign=5 #
Dropbox (online storage) for Android soon http://bit.ly/9Pp7gR Have been using Dropbox for more than a year on my Linux laptop. #
test tweet from Mozilla Raindrop #
#Test Mozilla Raindrop #
#test #

]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>You aren&#39;t as easygoing as you appear today, but others won&#39;t &#8230; More for Leo <a href="http://twittascope.com/?sign=5" rel="nofollow">http://twittascope.com/?sign=5</a> <a href="http://twitter.com/shekharg/statuses/11688631362" class="aktt_tweet_time">#</a></li>
<li>Dropbox (online storage) for Android soon <a href="http://bit.ly/9Pp7gR" rel="nofollow">http://bit.ly/9Pp7gR</a> Have been using Dropbox for more than a year on my Linux laptop. <a href="http://twitter.com/shekharg/statuses/11698190421" class="aktt_tweet_time">#</a></li>
<li>test tweet from Mozilla Raindrop <a href="http://twitter.com/shekharg/statuses/11701455891" class="aktt_tweet_time">#</a></li>
<li>#<a href="http://search.twitter.com/search?q=%23Test" class="aktt_hashtag">Test</a> Mozilla Raindrop <a href="http://twitter.com/shekharg/statuses/11703373210" class="aktt_tweet_time">#</a></li>
<li>#<a href="http://search.twitter.com/search?q=%23test" class="aktt_hashtag">test</a> <a href="http://twitter.com/shekharg/statuses/11707953650" class="aktt_tweet_time">#</a></li>
</ul>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1481&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-04-06/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solved: Garbled text in Putty</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=solved-garbled-text-in-putty</link>
		<comments>http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 07:19:17 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tips N Tricks]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[gallery link=]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[ncurses]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[Secure Shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=1426</guid>
		<description><![CDATA[Putty is a popular and free Linux terminal/shell client for Windows. It allows one to connect to a Linux server using SSH (Secure Shell) or Telnet. I have been using it for as long as I can recall. But this issue of garbled text in Putty is what I have been ignoring, until yesterday.
Yesterday, I had setup Paradox database [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">Putty</a> is a popular and free Linux terminal/shell client for Windows. It allows one to connect to a Linux server using SSH (Secure Shell) or Telnet. I have been using it for as long as I can recall. But this issue of garbled text in Putty is what I have been ignoring, until yesterday.</p>
<p>Yesterday, I had setup <a href="http://en.wikipedia.org/wiki/Paradox_(database)" target="_blank">Paradox</a> database using <a href="http://www.dosemu.org/" target="_blank">DOSEMU</a> on Linux, for a client. On Putty, the Paradox interface showed garbled making it unusable for the client. My instant suspect was DOSEMU. A quick check revealed that it&#8217;s happening with other apps too - those with a <a href="http://en.wikipedia.org/wiki/Ncurses" target="_blank">ncurses</a> or text based user interface.<span id="more-1426"></span>For example: The garbled text, around the borders of UI elements, showed in ntsysv (as shown in the screenshots). ntsysv is a nifty console app, found in RedHat/CentOS/Fedora Linux, to start services during boot up.
<a href='http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/attachment/before-ntsysv-showing-garbled-text-in-putty/' title='Before - ntsysv showing garbled text in Putty'><img width="150" height="150" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/03/Before-ntsysv-showing-garbled-text-in-Putty-150x150.png" class="attachment-thumbnail" alt="Before - ntsysv showing garbled text in Putty" title="Before - ntsysv showing garbled text in Putty" /></a>
<a href='http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/attachment/putty-settings-to-fix-garbled-text/' title='Putty settings to fix garbled text'><img width="150" height="150" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/03/Putty-settings-to-fix-garbled-text-150x150.png" class="attachment-thumbnail" alt="Putty settings to fix garbled text" title="Putty settings to fix garbled text" /></a>
<a href='http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/attachment/after-ntsysv-after-the-change-in-settings-in-putty/' title='After - ntsysv after the change in settings in Putty'><img width="150" height="150" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/03/After-ntsysv-after-the-change-in-settings-in-Putty-150x150.png" class="attachment-thumbnail" alt="After - ntsysv after the change in settings in Putty" title="After - ntsysv after the change in settings in Putty" /></a>
</p>
<p><strong>The Solution<br />
</strong>Launch Putty. On the Category pane (on the left), click on Windows&gt;Translation. For the dropdown labeled &#8220;Received data assumed to be in which character set&#8221;, select UTF-8. To save this setting, click on Sessions (in the Category pane). On the right pane, select &#8220;Default Settings&#8221; and click on the button labeled Save. This is what worked for me with Putty version 0.60.</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1426&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-03-16</title>
		<link>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-16/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-updates-for-2010-03-16</link>
		<comments>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-16/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 05:59:00 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tweets]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[DOS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rt]]></category>
		<category><![CDATA[shekharg]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-16/</guid>
		<description><![CDATA[
@mkathuria09 usual stuff &#8211; cold. Thanks in reply to mkathuria09 #
A wave of confidence surges through you as the Moon enters you&#8230; More for Leo http://twittascope.com/twittascope/?sign=5 #
Back to old days, today. Ran Paradox for DOS http://tinyurl.com/yh2s79b using Dosemu on CentOS Linux for a client with @kbharagava #
@kbhargava Dosemu was ur suggestion &#38; idea. I just [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>@<a href="http://twitter.com/mkathuria09" class="aktt_username">mkathuria09</a> usual stuff &#8211; cold. Thanks <a href="http://twitter.com/mkathuria09/statuses/10528318852" class="aktt_tweet_reply">in reply to mkathuria09</a> <a href="http://twitter.com/shekharg/statuses/10557246489" class="aktt_tweet_time">#</a></li>
<li>A wave of confidence surges through you as the Moon enters you&#8230; More for Leo <a href="http://twittascope.com/twittascope/?sign=5" rel="nofollow">http://twittascope.com/twittascope/?sign=5</a> <a href="http://twitter.com/shekharg/statuses/10561556376" class="aktt_tweet_time">#</a></li>
<li>Back to old days, today. Ran Paradox for DOS <a href="http://tinyurl.com/yh2s79b" rel="nofollow">http://tinyurl.com/yh2s79b</a> using Dosemu on CentOS Linux for a client with @<a href="http://twitter.com/kbharagava" class="aktt_username">kbharagava</a> <a href="http://twitter.com/shekharg/statuses/10576683229" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/kbhargava" class="aktt_username">kbhargava</a> Dosemu was ur suggestion &amp; idea. I just enjoyed it <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://twitter.com/kbhargava/statuses/10577536885" class="aktt_tweet_reply">in reply to kbhargava</a> <a href="http://twitter.com/shekharg/statuses/10578664576" class="aktt_tweet_time">#</a></li>
<li>RT: @<a href="http://twitter.com/androinica" class="aktt_username">androinica</a>: Android Market now has 30,000 to 35,000 apps <a href="http://goo.gl/fb/kzFJ" rel="nofollow">http://goo.gl/fb/kzFJ</a> #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/10579342105" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/pankaj_shukla" class="aktt_username">pankaj_shukla</a> does ZumoDrive work on Linux? <a href="http://twitter.com/pankaj_shukla/statuses/10580162876" class="aktt_tweet_reply">in reply to pankaj_shukla</a> <a href="http://twitter.com/shekharg/statuses/10580472771" class="aktt_tweet_time">#</a></li>
</ul>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1425&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-03-15</title>
		<link>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-15/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-updates-for-2010-03-15</link>
		<comments>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-15/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 05:59:00 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tweets]]></category>
		<category><![CDATA[Bill Gates]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mexican Telecom Tycoon Grabs Richest Man Title]]></category>
		<category><![CDATA[Microsoft Vista]]></category>
		<category><![CDATA[Rs]]></category>
		<category><![CDATA[rt]]></category>
		<category><![CDATA[shekharg]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-15/</guid>
		<description><![CDATA[
Aircel Peek &#8211; a device to read &#34;only E-mails&#34; (not even phone calls) @ 3K &#38; monthly charges of Rs. 300. Interesting but #fail #
@vinodunny Does &#39;Fit to Drawing&#39; in Visio 2010 work? http://twitter.com/shekharg/statuses/10229414228 in reply to vinodunny #
@vinodunny r u using Visio 2010 Beta? in reply to vinodunny #
@vinodunny Fit to Drawing is moving [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Aircel Peek &#8211; a device to read &quot;only E-mails&quot; (not even phone calls) @ 3K &amp; monthly charges of Rs. 300. Interesting but #<a href="http://search.twitter.com/search?q=%23fail" class="aktt_hashtag">fail</a> <a href="http://twitter.com/shekharg/statuses/10502449999" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/vinodunny" class="aktt_username">vinodunny</a> Does &#39;Fit to Drawing&#39; in Visio 2010 work? <a href="http://twitter.com/shekharg/statuses/10229414228" rel="nofollow">http://twitter.com/shekharg/statuses/10229414228</a> <a href="http://twitter.com/vinodunny/statuses/10499281199" class="aktt_tweet_reply">in reply to vinodunny</a> <a href="http://twitter.com/shekharg/statuses/10502548086" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/vinodunny" class="aktt_username">vinodunny</a> r u using Visio 2010 Beta? <a href="http://twitter.com/vinodunny/statuses/10502869701" class="aktt_tweet_reply">in reply to vinodunny</a> <a href="http://twitter.com/shekharg/statuses/10503056522" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/vinodunny" class="aktt_username">vinodunny</a> Fit to Drawing is moving elements to the bottom of the Page but not resizing the page itself. Give a BG to the page &amp; then see <a href="http://twitter.com/vinodunny/statuses/10502869701" class="aktt_tweet_reply">in reply to vinodunny</a> <a href="http://twitter.com/shekharg/statuses/10503165824" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/vinodunny" class="aktt_username">vinodunny</a> will try. Rt now in Linux. Will check. Even if doesnt work, won&#39;t make sound about it. After all it is named Beta &amp; not Vista <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  <a href="http://twitter.com/vinodunny/statuses/10503418316" class="aktt_tweet_reply">in reply to vinodunny</a> <a href="http://twitter.com/shekharg/statuses/10503561852" class="aktt_tweet_time">#</a></li>
<li>Slept at 4, wokeup at 6:30 by client call. Ever since tried to catch up with sleep. But clients who havnt called 4 weeks hav been calling <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  <a href="http://twitter.com/shekharg/statuses/10506858608" class="aktt_tweet_time">#</a></li>
<li>On the road now. A sleepy day ahead zzzz <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  <a href="http://twitter.com/shekharg/statuses/10506898299" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/sharat_j" class="aktt_username">sharat_j</a> Poor Bill Gates: Mexican Telecom Tycoon Grabs Richest Man Title <a href="http://short.to/1k71v" rel="nofollow">http://short.to/1k71v</a> <a href="http://twitter.com/shekharg/statuses/10508617541" class="aktt_tweet_time">#</a></li>
<li>You often seem so capable that it can be hard to get help when&#8230; More for Leo <a href="http://twittascope.com/twittascope/?sign=5" rel="nofollow">http://twittascope.com/twittascope/?sign=5</a> <a href="http://twitter.com/shekharg/statuses/10509274869" class="aktt_tweet_time">#</a></li>
<li>Ref <a href="http://short.to/1lz2i" rel="nofollow">http://short.to/1lz2i</a> And my day ends with fever &amp; bad throat <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ( <a href="http://twitter.com/shekharg/statuses/10521027313" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/fghomeopathy" class="aktt_username">fghomeopathy</a> thanks <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://twitter.com/fghomeopathy/statuses/10526401974" class="aktt_tweet_reply">in reply to fghomeopathy</a> <a href="http://twitter.com/shekharg/statuses/10528139728" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/PrernaMalhotra" class="aktt_username">PrernaMalhotra</a> thanks <a href="http://twitter.com/PrernaMalhotra/statuses/10528036310" class="aktt_tweet_reply">in reply to PrernaMalhotra</a> <a href="http://twitter.com/shekharg/statuses/10528208006" class="aktt_tweet_time">#</a></li>
</ul>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1424&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-03-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-02-11</title>
		<link>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-02-11/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-updates-for-2010-02-11</link>
		<comments>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-02-11/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 12:59:00 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tweets]]></category>
		<category><![CDATA[Buzz RT]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rt]]></category>
		<category><![CDATA[shekharg]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web client]]></category>
		<category><![CDATA[webmaster]]></category>
		<category><![CDATA[webmaster tools]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-02-11/</guid>
		<description><![CDATA[
Heroes Season 4 Episode 18 &#8211; Sylar &#38; Peter team up. E-19 Samuel defeated by Peter, Sylar, Hiro &#38; Noah!! Claire reveals her power to media #
You may feel as if an opportunity for a friendship or romance &#8230; More for Leo http://twittascope.com/twittascope/?sign=5 #
@pankaj_shukla One can use Web client on a supported phone for Google [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Heroes Season 4 Episode 18 &#8211; Sylar &amp; Peter team up. E-19 Samuel defeated by Peter, Sylar, Hiro &amp; Noah!! Claire reveals her power to media <a href="http://twitter.com/shekharg/statuses/8920513990" class="aktt_tweet_time">#</a></li>
<li>You may feel as if an opportunity for a friendship or romance &#8230; More for Leo <a href="http://twittascope.com/twittascope/?sign=5" rel="nofollow">http://twittascope.com/twittascope/?sign=5</a> <a href="http://twitter.com/shekharg/statuses/8954668421" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/pankaj_shukla" class="aktt_username">pankaj_shukla</a> One can use Web client on a supported phone for Google Buzz. Refer to <a href="http://tinyurl.com/y86hpbl" rel="nofollow">http://tinyurl.com/y86hpbl</a> (see supported phones) <a href="http://twitter.com/pankaj_shukla/statuses/8910411825" class="aktt_tweet_reply">in reply to pankaj_shukla</a> <a href="http://twitter.com/shekharg/statuses/8956950016" class="aktt_tweet_time">#</a></li>
<li>Google Buzz in Gmail listed my blog and one of my client&#39;s website (maybe coz of using google webmaster tools) as sites to connect to. <a href="http://twitter.com/shekharg/statuses/8957015227" class="aktt_tweet_time">#</a></li>
<li>Does this tweet buzz ? #<a href="http://search.twitter.com/search?q=%23test" class="aktt_hashtag">test</a> <a href="http://twitter.com/shekharg/statuses/8957094086" class="aktt_tweet_time">#</a></li>
<li>Despite adding Twitter to Connected Sites, Google Buzz in Gmail is not showing my tweets <a href="http://twitter.com/shekharg/statuses/8957231909" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/RahulSah" class="aktt_username">RahulSah</a> No <a href="http://twitter.com/RahulSah/statuses/8957185118" class="aktt_tweet_reply">in reply to RahulSah</a> <a href="http://twitter.com/shekharg/statuses/8957240089" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/RahulSah" class="aktt_username">RahulSah</a> ref <a href="http://tinyurl.com/yl6hq6c" rel="nofollow">http://tinyurl.com/yl6hq6c</a> used Chrome on Linux and inbox didn&#39;t disappear, even for a second Which OS are you in? <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  <a href="http://twitter.com/RahulSah/statuses/8957185118" class="aktt_tweet_reply">in reply to RahulSah</a> <a href="http://twitter.com/shekharg/statuses/8957325705" class="aktt_tweet_time">#</a></li>
<li>Why Google Maps maps.google.com does not have the Buzz layer ? <a href="http://twitter.com/shekharg/statuses/8957403050" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/RahulSah" class="aktt_username">RahulSah</a> I don&#39;t think we are doing anything wrong while adding Twitter. Buggy Buzz #<a href="http://search.twitter.com/search?q=%23Google" class="aktt_hashtag">Google</a> <a href="http://twitter.com/RahulSah/statuses/8957264366" class="aktt_tweet_reply">in reply to RahulSah</a> <a href="http://twitter.com/shekharg/statuses/8957437263" class="aktt_tweet_time">#</a></li>
<li>Unlike Tweets you can edit a Buzz and comments to it + #<a href="http://search.twitter.com/search?q=%23Google" class="aktt_hashtag">Google</a> <a href="http://twitter.com/shekharg/statuses/8957515873" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/RahulSah" class="aktt_username">RahulSah</a> soon our tweets about buggy buzz will be retweeted by the Vs <a href="http://twitter.com/RahulSah/statuses/8957469057" class="aktt_tweet_reply">in reply to RahulSah</a> <a href="http://twitter.com/shekharg/statuses/8957609198" class="aktt_tweet_time">#</a></li>
<li>This is <a href="http://tinyurl.com/ydbdlge" rel="nofollow">http://tinyurl.com/ydbdlge</a> interesting &amp; scary. Both these sites r the only verified sites in my webmaster account #<a href="http://search.twitter.com/search?q=%23Google" class="aktt_hashtag">Google</a> #Buzz <a href="http://twitter.com/shekharg/statuses/8957732939" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/RahulSah" class="aktt_username">RahulSah</a> Vickeds <a href="http://twitter.com/RahulSah/statuses/8957697431" class="aktt_tweet_reply">in reply to RahulSah</a> <a href="http://twitter.com/shekharg/statuses/8957753144" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/suhel" class="aktt_username">suhel</a> Even if your Google Buzz &amp; Twitter profiles are linked it takes between 2 min to 4 hours for the tweets to appear in Buzz. <a href="http://twitter.com/shekharg/statuses/8958899401" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/suhel" class="aktt_username">suhel</a> 2 mins-4 hrs for the first time or for each tweet ?! <a href="http://twitter.com/suhel/statuses/8958245502" class="aktt_tweet_reply">in reply to suhel</a> <a href="http://twitter.com/shekharg/statuses/8959077703" class="aktt_tweet_time">#</a></li>
<li>Tweets started appearing on my Google Buzz <a href="http://tweetphoto.com/11047728" rel="nofollow">http://tweetphoto.com/11047728</a> All dated 9:17pm. Still doesn&#39;t include my latest tweets <a href="http://twitter.com/shekharg/statuses/8966126557" class="aktt_tweet_time">#</a></li>
<li>Another <a href="http://bit.ly/cIJNLG" rel="nofollow">http://bit.ly/cIJNLG</a> Buzz vs Twitter. Google Buzz does not have the 140 character limit! <a href="http://twitter.com/shekharg/statuses/8966242998" class="aktt_tweet_time">#</a></li>
<li>Google Buzz RT @<a href="http://twitter.com/pankaj_shukla" class="aktt_username">pankaj_shukla</a> Just installed Google Maps 4.0 on my windows mobile and now i am able to Buzz on maps ! <a href="http://twitter.com/shekharg/statuses/8970917041" class="aktt_tweet_time">#</a></li>
</ul>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1269&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-02-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Scraping with Firefox and PHP, using XPath</title>
		<link>http://www.shekhargovindarajan.com/scripts/web-scraping-with-firefox-and-php-using-xpath/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=web-scraping-with-firefox-and-php-using-xpath</link>
		<comments>http://www.shekhargovindarajan.com/scripts/web-scraping-with-firefox-and-php-using-xpath/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:00:58 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Scripts]]></category>
		<category><![CDATA[automated]]></category>
		<category><![CDATA[automated Web scrapping]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[external tools]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[firexpath]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PHP programmer]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[scheduler]]></category>
		<category><![CDATA[screen scraping]]></category>
		<category><![CDATA[tidy]]></category>
		<category><![CDATA[Tidy library]]></category>
		<category><![CDATA[Use Curl library]]></category>
		<category><![CDATA[web browser]]></category>
		<category><![CDATA[Web page lie]]></category>
		<category><![CDATA[Web scarping]]></category>
		<category><![CDATA[web scraping]]></category>
		<category><![CDATA[well-formed Web page An XPath expression]]></category>
		<category><![CDATA[well-formed Web page content]]></category>
		<category><![CDATA[well-formed Web pages]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[xpath]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=968</guid>
		<description><![CDATA[Last year, I faced two projects which required automated Web scrapping &#8211; to aggregate content from web pages. I evaluated different methods for Web scraping with varied level of success. Thanks to the changing structure of Web pages, non well-formed pages and URL redirects.
Amongst using regular expressions and DOM (Document Object Model) parsing, I used [...]]]></description>
			<content:encoded><![CDATA[<p>Last year, I faced two projects which required automated Web scrapping &#8211; to aggregate content from web pages. I evaluated different methods for Web scraping with varied level of success. Thanks to the changing structure of Web pages, non well-formed pages and URL redirects.</p>
<p>Amongst using regular expressions and DOM (Document Object Model) parsing, I used XPath too. XPath works great for well-formed Web pages. <span id="more-968"></span>A HTML Web page is called well-formed when all the opening tags have corresponding closing tags and the tags are nested properly (refer to <a href="http://en.wikipedia.org/wiki/Well-formed_element" target="_blank">this link</a> for more). A well-formed HTML page is also called an XHTML page.</p>
<p>XPath is a query language to access content on a well formed page &#8211; XHTML or XML. All the content in a Web page lie within HTML elements or tag pairs. The following is needed to extract out the content, of interest, using XPath from a Web page:</p>
<ol>
<li>A well-formed Web page</li>
<li>An XPath expression for the HTML element of interest</li>
<li>XPath query using the expression</li>
</ol>
<p>An XPath expression looks as cryptic as  .//*[@id='home_featured']/div. Here is where Firefox web browser with a plugin called FireXPath comes to help (as explained below). The second and third requirements are met by PHP (in my case) which is used for automated Web scrapping using the XPath expression.</p>
<p><strong>Click and build XPath expressions<br />
</strong>Building the cryptic XPath expression is easy and intuitive with Firefox and a couple of its plugins &#8211; namely Firebug and FireXPath. Install Firebug from <a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank">here</a>, followed by FireXPath from <a href="https://addons.mozilla.org/en-US/firefox/addon/11900" target="_blank">here</a> and restart Firefox. As of this writing, I&#8217;m using the following versions of Firefox and the plugins:</p>
<ul>
<li>Firefox 3.5.6</li>
<li>Firbug 1.4.5</li>
<li>FireXPath 0.9.1</li>
</ul>
<p>After, the Firefox restart, browse to the Web page of your interest. Next:</p>
<ul>
<li>Launch Firebug by clicking on the bug like icon on the right corner of the status bar.</li>
<li>Click on the tab named XPath (in FireBug)</li>
<li>Click on the arrow (blue arrow) and move your mouse over the content, of interest, on the web page</li>
<li>Once the required chunk is highlighted (with a blue border), note down the XPath expression in the textfield.</li>
</ul>
<p>For example, the screenshot below, shows the XPath expression (.//*[@id='home_featured']/div  ) for the &#8220;Featured Post&#8221; chunk, on the home page, of this blog:</p>
<div id="attachment_974" class="wp-caption alignleft" style="width: 310px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/XPath-Expression-With-FireXPath.png"><img class="size-medium wp-image-974   " style="display: block;" title="With FireXPath, point your mouse on the chunk/element of interest, to build an XPath expression" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/XPath-Expression-With-FireXPath-300x284.png" alt="With FireXPath, point your mouse on the chunk/element of interest, to build an XPath expression" width="300" height="284" /></a><p class="wp-caption-text">With FireXPath, point your mouse on the chunk/element of interest, to build an XPath expression</p></div>
<p>A few examples of XPath expressions:</p>
<ul>
<li>.//*[@id='latest_post']/span[1] : The posted and modified dates of the latest post on this blog &#8211; http://www.shekhargovindarajan.com</li>
<li>.//*[@id='top-stories']/div[1]/h2/a : The headline of the top story on Google News &#8211; http://news.google.com</li>
<li>.//*[@id='mp-tfa']/p[1] : Contents of featured article on Wikipedia &#8211; http://en.wikipedia.org/wiki/Main_Page</li>
</ul>
<p><strong>Automated scarping using PHP<br />
</strong>With the XPath expression in hand, a PHP script as follows, can extract out the required content from the Web page:</p>
<pre>&lt;?php

class WebScrap
	{
	private $url;
	private $xpath;

	public function WebScrap($url,$xpath)
		{
		$this-&gt;url = $url;
		$this-&gt;xpath = $xpath;
		}

	public function GetScrap()
		{
		// use Tidy to try to make the page well formed
		$page = $this-&gt;TidyIt($this-&gt;url);

		// create a document out of the well formed content
		$domDocument=new DOMDocument();
		$domDocument-&gt;loadHTML($page);

		// create an XPath object out of the document and query it for the supplied xpath
		$domXPath = new DOMXPath($domDocument);
		$domNodeList = $domXPath-&gt;query($this-&gt;xpath);

		// Get the content (HTML) out of the NodeList returned by the DOMXPath::query
		$content = $this-&gt;GetHTMLFromNodeList($domNodeList);

		return $content;
		}

	private function TidyIt($url)
		{
		$tidy = new tidy();
		$tidy-&gt;parseFile($url);
		$tidy-&gt;cleanRepair();
		return $tidy;
		}

	private function GetHTMLFromNodeList($domNodeList)
		{
		$domDocument = new DOMDocument();

		$node = $domNodeList-&gt;item(0);   

		foreach($node-&gt;childNodes as $childNode)
			$domDocument-&gt;appendChild($domDocument-&gt;importNode($childNode, true));

		return $domDocument-&gt;saveHTML();
		}

	}

?&gt;</pre>
<p>Note that, the function/method called GetScrap( ) of the WebScrap PHP class first calls the TidyIt( ) method. This function uses the <a href="http://en.wikipedia.org/wiki/HTML_Tidy" target="_blank">Tidy</a> library to fix (if required) the HTML for well-formedness. The PHP class for Tidy is used to fetch the web page via the given URL and repair it. Henceforth the DomXPath object is used to query the well-formed Web page content for the XPath expression.</p>
<p>To use the above code, you will need to install PHP modules for XML and Tidy. On a RedHat/CentOS/Fedora Linux machine, these modules can be installed using the following command:</p>
<pre>yum install php-xml php-tidy</pre>
<p>Save the above code in a file named class.WebScrap.php (say). Subsequently, the WebScrap class can be used as:</p>
<pre>&lt;?php

include("class.WebScrap.php");
$scrap = new WebScrap("http://news.google.com",".//*[@id='top-stories']/div[1]/h2/a");
print($scrap-&gt;GetScrap());

?&gt;</pre>
<p>The code should be self explanatory for a seasoned PHP programmer. If not, shoot your questions via comments to this post. For repeated and automated Web scarping, a scheduler like Cron can be used to execute the above PHP script at regular intervals and fetch the latest content.</p>
<p><strong>The Leftovers<br />
</strong>The code above is readable, crisp and focusses on the subject. For this reason, it has deliberate exclusions.  In a real world application, you should:</p>
<ul>
<li>Use <a href="http://php.net/manual/en/book.curl.php" target="_blank">Curl</a> library in PHP  or external tools like <a href="http://en.wikipedia.org/wiki/Wget" target="_blank">Wget</a> to fetch the URL. Then pass on the fetched content to Tidy. Hint: use the  parseString( ) of Tidy instead of parseFile( )</li>
<li>Handle errors in case of errors in Tidy and XPath.</li>
<li>Fallback to other means (say regular expressions) in case of errors in Tidy or XPath querying</li>
</ul>
<p>Note that XPath may not always give you the structured content that you desire. For example, using the expression .//*[@id='latest_post']/span[1] (for posted and modified dates of the latest post on this blog) will result into something as follows:</p>
<pre>&lt;strong&gt;Posted on:&lt;/strong&gt;
January 8, 2010
&lt;span class="dot"&gt;⋅&lt;/span&gt;
&lt;strong&gt;Last modified:&lt;/strong&gt;
January 8, 2010 @ 4:49 pm</pre>
<p>So there are tags and text (like &#8220;Posted on:&#8221; and &#8220;Last modified:&#8221;) to be stripped out, to get the posted date (January 8, 2010) and the modified date (January 8, 2010 @ 4:49 pm). For this, you may still have to use regular expressions and/or string manipulation functions like split( ).</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=968&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/scripts/web-scraping-with-firefox-and-php-using-xpath/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My list of must-have Android apps</title>
		<link>http://www.shekhargovindarajan.com/google/my-list-of-must-have-android-apps/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=my-list-of-must-have-android-apps</link>
		<comments>http://www.shekhargovindarajan.com/google/my-list-of-must-have-android-apps/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 17:15:42 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[address search]]></category>
		<category><![CDATA[adp1]]></category>
		<category><![CDATA[Amsterdam]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android dev phone 1]]></category>
		<category><![CDATA[android-wifi-tether]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bluerss]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[car mode]]></category>
		<category><![CDATA[CEO]]></category>
		<category><![CDATA[cyanogen]]></category>
		<category><![CDATA[Delhi]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[Hennie J.M. Groot Koerkamp]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[india]]></category>
		<category><![CDATA[Internet connection]]></category>
		<category><![CDATA[Internet Connection Sharing]]></category>
		<category><![CDATA[Internet tethering]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[Kenya]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MAC address]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[Morocco]]></category>
		<category><![CDATA[Motorola]]></category>
		<category><![CDATA[Nav4all]]></category>
		<category><![CDATA[Nav4All BV]]></category>
		<category><![CDATA[navigation supplier]]></category>
		<category><![CDATA[Navteq]]></category>
		<category><![CDATA[New Delhi]]></category>
		<category><![CDATA[Notification bar]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[rss reader]]></category>
		<category><![CDATA[Samsung]]></category>
		<category><![CDATA[Seesmic]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[Sony Ericsson]]></category>
		<category><![CDATA[speaker]]></category>
		<category><![CDATA[speaker phone]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[tethering]]></category>
		<category><![CDATA[The Netherlands]]></category>
		<category><![CDATA[the Philippines]]></category>
		<category><![CDATA[Tracking & Tracing]]></category>
		<category><![CDATA[TweetsRide]]></category>
		<category><![CDATA[Twidgit]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[TwitterRide]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[WEP]]></category>
		<category><![CDATA[Wi-Fi]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Wireless Access]]></category>
		<category><![CDATA[Wireless Access Point]]></category>
		<category><![CDATA[www.nav4all.com]]></category>
		<category><![CDATA[www.nav4all.com/support]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=1010</guid>
		<description><![CDATA[Ever since I ordered and got my Android Dev Phone 1 (a.k.a. ADP1), I have been taking it through various updates. The phone shipped with Android version 1.0 and upgraded to version 1.6. After 1.6, I opted to go for ROMs from CynaogenMod.
Each time, I upgrade my phone, I wipe off its data. This is [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I <a href="http://www.shekhargovindarajan.com/google/anroid-to-india-a-shipping-faq/" target="_blank">ordered</a> and got my Android Dev Phone 1 (a.k.a. ADP1), I have been taking it through various updates. The phone shipped with Android version 1.0 and upgraded to version 1.6. After 1.6, I opted to go for ROMs from <a href="http://www.cyanogenmod.com/" target="_blank">CynaogenMod</a>.</p>
<p>Each time, I upgrade my phone, I wipe off its data. This is because I took the upgrades as an opportunity to wipe off applications which I install, but do not use or use occasionally. But, following is the list of Android applications which I crave to install after each wipe off. These applications are my must-haves on my Android phone.<span id="more-1010"></span></p>
<p><strong>1. android-wifi-tether<br />
</strong>A computer or PC/Laptop can be connected to a phone via USB, Bluetooth or Wi-Fi to use the phone&#8217;s Internet connection &#8211; typically GPRS/EDGE/3G. This kind of connection sharing (with the phone) is called tethering. ADP1 does not ship with tethering capabilities. But thanks to the android-wifi-tether app which can be found <a href="http://code.google.com/p/android-wifi-tether/" target="_blank">here</a>. Don&#8217;t go by the &#8220;Wifi&#8221; in the app&#8217;s name. It supports tethering through Bluetooth too. I have used tethering via Wifi, till I switched to CyanogenMod (see below). Once installed, it turns your phone into a Wi-Fi ad-hoc point! Think about it as a Wireless Access Point. Therefore, no hassle of downloading drivers to connect to it from a laptop.</p>
<div id="attachment_1017" class="wp-caption alignleft" style="width: 210px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Android-Wifi-Tether.png"><img class="size-medium wp-image-1017" title="Android Wifi Tether" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Android-Wifi-Tether-200x300.png" alt="Android Wifi Tether app for phone's Internet connection sharing via Wifi/Bluetooth" width="200" height="300" /></a><p class="wp-caption-text">android-wifi-tether app for phone&#39;s Internet connection sharing via Wifi/Bluetooth</p></div>
<p><em><strong><br />
</strong></em> Features:</p>
<ul>
<li>Tethering through Wi-Fi and Bluetooth</li>
<li>Access control based on MAC address. Notification, about connecting clients, on the phone&#8217;s notification bar &#8211; with sound.</li>
<li>128-bit WEP (Wired Equivalent Privacy)</li>
</ul>
<p>Pros:</p>
<ul>
<li>Behaves as a Wi-Fi ad-hoc point. This means, typically, no configuration/driver hassles on a PC/Laptop.</li>
<li>MAC address based access control.</li>
<li>Lots of configuration options for Wi-Fi, like SSID, channel, IP range etc.</li>
</ul>
<p>Cons:</p>
<ul>
<li>Requires ROM update (a kernel update)</li>
</ul>
<div id="attachment_1015" class="wp-caption alignleft" style="width: 210px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Android_USB_Tethering.png"><img class="size-medium wp-image-1015 " title="Android_USB_Tethering" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Android_USB_Tethering-200x300.png" alt="Go to Settings&gt;Wireless controls and check Internet tethering. Works with CyanogenMod Android ROMs" width="200" height="300" /></a><p class="wp-caption-text">Go to Settings&gt;Wireless controls and check Internet tethering. Works with CyanogenMod Android ROMs</p></div>
<p>I no longer use android-wifi-tether &#8211; after flashing my phone with  CyanogenMod. With Cyanogen ROMs, the capability to tether via USB is built-in. USB tethering works both on Linux and Windows &#8211; I have it working on Fedora 12 Linux and Windows 7. android-wifi-tether works with the CyanogenMod (version 4.2.13, as of this wiring) without requiring the kernel update. But you will need to download and install the app from <a href="http://android-wifi-tether.googlecode.com/files/signed_andTether_1_60_pre1.apk" target="_blank">here</a>. With android-wifi-tether and CyanogenMod, you may like to enjoy the flexibility of tethering through USB, Wi-Fi and Bluetooth! Though, I&#8217;m my happy self with USB tethering.</p>
<p><strong> 2. BlueRSS<br />
</strong>Once I discovered this free RSS reader named BlueRSS, from the Android Market, I never felt the need to look for an alternative. Lots of features, yet fast and responsive. This is what sets this app apart, for my daily routine, to check out the tech world through RSS feeds. I&#8217;m using version 3.0.1 of BlueRSS, as of this writing.</p>
<div id="attachment_1021" class="wp-caption alignleft" style="width: 210px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/BlueRSS_RSS_Reader_for_Android.png"><img class="size-medium wp-image-1021" title="BlueRSS_RSS_Reader_for_Android" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/BlueRSS_RSS_Reader_for_Android-200x300.png" alt="BlueRSS: A fast and feature rich RSS reader for Android phones" width="200" height="300" /></a><p class="wp-caption-text">BlueRSS: A fast and feature rich RSS reader for Android phones</p></div>
<p>Features:<em><strong><br />
</strong></em></p>
<ul>
<li>Discover RSS feeds on Websites or using keywords</li>
<li>Exports feeds to OPML, opens GMail (or the default mail client) with the OPML file attached, to send.</li>
<li>Automatic background update</li>
<li>Ability to refresh all feeds as well as individual feeds</li>
<li>Add feed items to Favourites</li>
<li>Full screen mode</li>
</ul>
<p>Pros:</p>
<ul>
<li>Fast and responsive. Don&#8217;t remember if I ever had to &#8220;Force Close&#8221; it</li>
<li>Import from Google reader</li>
</ul>
<p>Cons:<strong><br />
</strong></p>
<ul>
<li>No feed categories</li>
<li>The feed item&#8217;s description/summary does not open in landscape mode.</li>
</ul>
<p><strong>3. Twidroid (free version)<br />
</strong>This app does not require an introduction to Android users. It is undoubtedly the best Twitter client for Android. I started with using Twidroid as the Twitter client on my Android phone. I switched to numerous other Twitter apps to check out the alternatives. I tried Swift, Seesmic, Twidgit and TwitterRide (now called TweetsRide). But I kept coming back to Twidroid and have settled down to it. Twidroid is available from the Android Market and I&#8217;m using version 3.0.9.</p>
<div id="attachment_1040" class="wp-caption alignleft" style="width: 210px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Twidroid_Twitter_Client_for_Android.png"><img class="size-medium wp-image-1040" title="Twidroid_Twitter_Client_for_Android" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Twidroid_Twitter_Client_for_Android-200x300.png" alt="Twidroid: The feature-rich Twitter client for Andorid" width="200" height="300" /></a><p class="wp-caption-text">Twidroid: The feature-rich Twitter client for Andorid</p></div>
<p>Features</p>
<ul>
<li>Supports Twitter lists and the new Retweet feature (or API) of Twitter</li>
<li>Ability to upload photos</li>
<li>Twitter Trends, Search and Favorites</li>
<li>Built it browser to open URLs</li>
<li>Options to choose a preferred URL shortening service and image upload service</li>
<li>Built-in profile browser with option to follow/unfollow</li>
<li>Autocomplete of Twitter usernames while Reply-ing or Direct Message</li>
<li>Share Tweets via Email, SMS and Bluetooth</li>
<li>Stores data on the SD card</li>
</ul>
<p>Pros</p>
<ul>
<li>Fast and responsive UI</li>
<li>One touch access to most functions like Reply, Direct Message and Retweet</li>
<li>New tweets notification, with the Tweets&#8217; text, in the Notification bar of the phone.</li>
<li>Automatically shortens the URLs</li>
<li>Remembers the scroll position with an option to jump to the latest Tweet</li>
<li>Frequent new releases.</li>
</ul>
<p>Cons</p>
<ul>
<li>Features like widgets, video and multiple accounts available only in the Pro version</li>
</ul>
<p><strong>4. Nav4All</strong><br />
I have been living in New Delhi, India for 31 years. But Connaught Place a.k.a. CP is a place where I always lose my way to the destination and back home. Thanks to the large number of roundabouts. I recall driving for more than a hour in CP to figure out my way. That&#8217;s when I desperately started looking for a navigation app for my GPS capable Android phone. Nav4All is what I got and what I use. It works great for the Delhi roads. Nav4All is available in the Android Market and I&#8217;m using version 9.0.25. To be true, I haven&#8217;t used all its features. Yet following is the jot down of the features that I see on the application&#8217;s screen:</p>
<div id="attachment_1057" class="wp-caption alignleft" style="width: 210px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Nav4All.png"><img class="size-medium wp-image-1057" title="Nav4All: A simple and free app that works for turn-by-turn voice based navigation" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/01/Nav4All-200x300.png" alt="Nav4All: A simple and free app that works for turn-by-turn voice based navigation" width="200" height="300" /></a><p class="wp-caption-text">Nav4All: A simple and free app that works for turn-by-turn voice based navigation</p></div>
<p>Features</p>
<ul>
<li>A huge list of countries</li>
<li>Option of large number of voices (for turn-by-turn navigation)</li>
<li>Can pick addresses from the phone&#8217;s contacts</li>
<li>View route to destination with turn by turn textual instructions and on the map</li>
<li>Details like distance, driving speed and journey time</li>
<li>&#8220;Start follow me&#8221; feature to trace your current route</li>
<li>Alternate routes</li>
</ul>
<p>Pros</p>
<ul>
<li>Free</li>
<li>Precise, numbered, exit points on roundabouts</li>
<li>Works in New Delhi, India</li>
<li>Narrows down to the building name!</li>
</ul>
<p>Cons</p>
<ul>
<li>Bad user interface, looks like wireframes</li>
<li>Buggy with the hardware keyboard of ADP1</li>
<li>Address search asks for too many details</li>
<li>Not so good looking map</li>
</ul>
<p>I haven&#8217;t been able to use the address search for Nav4All. It asks for too many details &#8211; upto the house number. The best way I use Nav4All is to record the destination coordinates &#8211; when I somehow reach the destination for the first time. On the contrary, Nav4All amazed me by telling the name of a client&#8217;s office building &#8211; located in the midest of a large number of houses.</p>
<p>Note that the Nav4All <a href="http://www.nav4all.com/" target="_blank">website</a> hints that the app will remain free until 1st Jan 2010. But I have been using it for free, on my Android phone, till now. Hope it continues to remain free.</p>
<p><strong>5. Car Mode<br />
</strong>How many times it has happened, that, while driving you get a phone call. You, then, struggle to put the phone on the speaker phone mode. Car Mode is a nifty app which when clicked, places itself on the phone&#8217;s notification bar. Subsequently, it automatically enables the speaker phone for subsequent calls. Car Mode can be disabled by clicking on its icon on the notification bar. It can be downloaded from the Android Market. I&#8217;m using version 1.2.0 of this app.</p>
<p>Pros</p>
<ul>
<li>A simple and free app which works!</li>
</ul>
<p>Cons</p>
<ul>
<li>It&#8217;s encourages to attend phone calls which driving <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>That&#8217;s all folks. Five must have Android apps that I live with. Note that this list does not include the built-in apps &#8211; like GMail, Calendar, Contacts, etc &#8211; else GMail will Gmail Push (instant push E-mail) is my most used app. Will keep this blog post updated with any future must-have apps which I get used to.</p>
<p><strong>Update (February 2, 2010):</strong> I said above that Nav4All may become paid, but the latest update is worse. Got an E-mail announcing that  Nav4All will be discontinued.  Following is the exact copy of the E-mail as sent by CEO of Nav4All:</p>
<p><em><strong>Subject: Nav4All navigation shut down by Navteq</strong></em></p>
<pre>Amsterdam, The Netherlands, 28-01-2010 16:30 GMT+1

Subject: Nav4All navigation shut down by Navteq

Letter to 27,625,631 Nav4All navigation customers

Dear Customers,

It is with the deepest regret that we hereby notify you that the
global navigation of Nav4All and the Tracking &amp; Tracing will go
offline in 3 days. The reason for the same is that the data licence
agreement with Navteq (a 100% Nokia subsidiary) was not extended, in
a totally unexpected manner. It is not possible to implement data
from another supplier in our Nav4All systems within the short term.
The Nav4All navigation system was developed for Navteq data. Nav4All
has therefore been constrained to stop.

We greatly regret the fact that we have to suspend the operation of
our service. With your help, we have developed Nav4All into a global
product with 27.5 million users in 56 languages, in 5 years. This has
made Nav4All the largest navigation supplier. This large number of
users also has to do with the fact that Nav4All works on hundreds of
different mobile telephones of many makes such as Blackberry, Sony
Ericsson, Samsung, Motorola, Android, HTC, Nokia, LG, Iphone, Ipod
etc.

After 5 years of testing and market development, we witnessed rapid -
in fact, exponential - growth during the last two years. That growth
was reported in the licence reports to Navteq. In mid-December 2009,
the global coverage was extended to include the Philippines, Morocco
and Kenya.

Please contact the Nav4All support desk in case you have any
questions: <a href="http://www.nav4all.com/support" target="_blank">www.nav4all.com/support</a>. If there is any further
information from Nav4All concerning the subject of this letter, the
same will be published on our website: <a href="http://www.nav4all.com/" target="_blank">www.nav4all.com</a>. For reasons
of privacy, Nav4All does not have the email addresses of all its
customers, and we therefore request you to forward this email to the
maximum extent possible, in order to ensure that everyone is
informed.

Kind Regards,

Hennie J.M. Groot Koerkamp (CEO)

Nav4All BV

Keizersgracht 62-64

1015 CS Amsterdam NL
</pre>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1010&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/google/my-list-of-must-have-android-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2010-01-06</title>
		<link>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-01-06/?&amp;owa_from=feed&amp;owa_sid=&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-updates-for-2010-01-06</link>
		<comments>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-01-06/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 12:59:00 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tweets]]></category>
		<category><![CDATA[529]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Delhi]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[india]]></category>
		<category><![CDATA[internet connection tethering]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ordering tip RT]]></category>
		<category><![CDATA[Sanjay Jah]]></category>
		<category><![CDATA[shekharg]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[USD]]></category>
		<category><![CDATA[www.ustream.tv/channel/google-android-press-gathering]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-01-06/</guid>
		<description><![CDATA[
Nexus One allows engraving of custom message on the back #android #
Declared: Nexus One runs #Android 2.1 #
Nexus One has Facebook apps and widgets #android #
Nexus One has 5 home screens / desktops &#8211; just like what you get with the @cyanogen ROM #android #
Nexus One has a Weather Widget with a timeline slider to [...]]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Nexus One allows engraving of custom message on the back #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411036401" class="aktt_tweet_time">#</a></li>
<li>Declared: Nexus One runs #<a href="http://search.twitter.com/search?q=%23Android" class="aktt_hashtag">Android</a> 2.1 <a href="http://twitter.com/shekharg/statuses/7411053253" class="aktt_tweet_time">#</a></li>
<li>Nexus One has Facebook apps and widgets #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411071202" class="aktt_tweet_time">#</a></li>
<li>Nexus One has 5 home screens / desktops &#8211; just like what you get with the @<a href="http://twitter.com/cyanogen" class="aktt_username">cyanogen</a> ROM #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411098850" class="aktt_tweet_time">#</a></li>
<li>Nexus One has a Weather Widget with a timeline slider to slide thru predictions #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411125764" class="aktt_tweet_time">#</a></li>
<li>Nexus One has active/animated wallpaper #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411154840" class="aktt_tweet_time">#</a></li>
<li>Nexus One event live video streaming <a href="http://www.ustream.tv/channel/google-android-press-gathering" rel="nofollow">http://www.ustream.tv/channel/google-android-press-gathering</a> stopped. For me ? <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  <a href="http://twitter.com/shekharg/statuses/7411185967" class="aktt_tweet_time">#</a></li>
<li>Nexus One allows clubbing of photos by time &amp; location #<a href="http://search.twitter.com/search?q=%23Android" class="aktt_hashtag">Android</a> <a href="http://twitter.com/shekharg/statuses/7411262376" class="aktt_tweet_time">#</a></li>
<li>Nexus One: Syncing of photos with Picasa Web #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411302453" class="aktt_tweet_time">#</a></li>
<li>Nexus One THE GREATEST FEATURE: speech to text for everything. Speak and compose email!!!! #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411350002" class="aktt_tweet_time">#</a></li>
<li>Nexus One includes Google Earth #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411375164" class="aktt_tweet_time">#</a></li>
<li>Nexus One: Awaiting how easy it is to type in text in the absence of a hardware keyboard  #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411403349" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/kkumarkg" class="aktt_username">kkumarkg</a> i&#39;m on Linux without Realplayer <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  <a href="http://twitter.com/kkumarkg/statuses/7411217429" class="aktt_tweet_reply">in reply to kkumarkg</a> <a href="http://twitter.com/shekharg/statuses/7411467409" class="aktt_tweet_time">#</a></li>
<li>Nexus One: Officially launched at <a href="http://www.google.com/phone/" rel="nofollow">http://www.google.com/phone/</a> #<a href="http://search.twitter.com/search?q=%23Android" class="aktt_hashtag">Android</a> <a href="http://twitter.com/shekharg/statuses/7411511416" class="aktt_tweet_time">#</a></li>
<li>Nexus One phone @ $529 &#8211; unlocked without service agreement #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> <a href="http://twitter.com/shekharg/statuses/7411586272" class="aktt_tweet_time">#</a></li>
<li>&quot;Sorry, Nexus One phone is not available in ur country&quot; is what I see when I goto <a href="http://tinyurl.com/yklbf2k" rel="nofollow">http://tinyurl.com/yklbf2k</a> while browsing frm Delhi, India <a href="http://twitter.com/shekharg/statuses/7411694270" class="aktt_tweet_time">#</a></li>
<li>Nexus One, my take: Biggest Pro: &quot;speech to text&quot; across apps (willing to change my accent) Biggest Con: No hardware keyboard  #<a href="http://search.twitter.com/search?q=%23Android" class="aktt_hashtag">Android</a> <a href="http://twitter.com/shekharg/statuses/7412061451" class="aktt_tweet_time">#</a></li>
<li>BIG con of Nexus One: internet connection tethering is still future consideration #<a href="http://search.twitter.com/search?q=%23WTF" class="aktt_hashtag">WTF</a>  Keep an eye on Cyanogen <a href="http://tinyurl.com/ydm5vae" rel="nofollow">http://tinyurl.com/ydm5vae</a> <a href="http://twitter.com/shekharg/statuses/7412220806" class="aktt_tweet_time">#</a></li>
<li>Nexus One: Aaha, someone asked the question on missing hardware keyboard #<a href="http://search.twitter.com/search?q=%23android" class="aktt_hashtag">android</a> Whatever the answer is, its absent in Nexus One <a href="http://twitter.com/shekharg/statuses/7412252831" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/VineetBhatnagar" class="aktt_username">VineetBhatnagar</a> yea <a href="http://bit.ly/7tJ7bj" rel="nofollow">http://bit.ly/7tJ7bj</a> <a href="http://twitter.com/VineetBhatnagar/statuses/7412270838" class="aktt_tweet_reply">in reply to VineetBhatnagar</a> <a href="http://twitter.com/shekharg/statuses/7412336401" class="aktt_tweet_time">#</a></li>
<li>Sanjay Jah is late due to traffic for the Nexus One event &#8211; despite Google Maps with traffic layer and turn-by-turn navigation <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  <a href="http://twitter.com/shekharg/statuses/7412654194" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/cyanogen" class="aktt_username">cyanogen</a> yes pls. thanks. pls don&#39;t go the Nexus One way, not so soon, atleast. Don&#39;t be a Google <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  <a href="http://twitter.com/cyanogen/statuses/7413137587" class="aktt_tweet_reply">in reply to cyanogen</a> <a href="http://twitter.com/shekharg/statuses/7413217391" class="aktt_tweet_time">#</a></li>
<li>Nexus One ordering tip RT: @cyanogen: Didn&#39;t realize that engraving takes extra time <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  <a href="http://twitter.com/shekharg/statuses/7428952690" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/vinodunny" class="aktt_username">vinodunny</a> oops. Keep ur hand on your heart and chant &quot;CHACHU, AAL IZZ WELL&quot; Its going to be ok by tomorrow. <a href="http://twitter.com/vinodunny/statuses/7428905712" class="aktt_tweet_reply">in reply to vinodunny</a> <a href="http://twitter.com/shekharg/statuses/7429225695" class="aktt_tweet_time">#</a></li>
<li>A stalemate is declared in a game of chess when neither side h&#8230; More for Leo <a href="http://twittascope.com/twittascope/?sign=5" rel="nofollow">http://twittascope.com/twittascope/?sign=5</a> <a href="http://twitter.com/shekharg/statuses/7438046323" class="aktt_tweet_time">#</a></li>
</ul>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=957&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tweets/twitter-updates-for-2010-01-06/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
