<?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; Fedora</title>
	<atom:link href="http://www.shekhargovindarajan.com/tag/fedora/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shekhargovindarajan.com</link>
	<description>My Notepad on the Web</description>
	<lastBuildDate>Sat, 04 Feb 2012 04:58:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/" />
			<item>
		<title>Solved: Setting up D-LINK DWA-525 (RaLink Device 3060) Wireless Desktop PCI Adapter on Fedora 14 Linux</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/solved-setting-up-d-link-dwa-525-ralink-device-3060-wireless-desktop-pci-adapter-on-fedora-14-linux/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=solved-setting-up-d-link-dwa-525-ralink-device-3060-wireless-desktop-pci-adapter-on-fedora-14-linux</link>
		<comments>http://www.shekhargovindarajan.com/tips-n-tricks/solved-setting-up-d-link-dwa-525-ralink-device-3060-wireless-desktop-pci-adapter-on-fedora-14-linux/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 06:06:52 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tips N Tricks]]></category>
		<category><![CDATA[802.11n]]></category>
		<category><![CDATA[cnetworkmanager]]></category>
		<category><![CDATA[dlink]]></category>
		<category><![CDATA[dwa525]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ralink]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=2014</guid>
		<description><![CDATA[My new &#8220;desktop grade server machine&#8221; at home has a 802.11n wireless PCI adapter namely D-LINK DWA-525 Wireless N 150 Desktop Adapter.  An adapter like this plugs into one of the PCI slots and connects to a wireless or Wi-Fi network. This helps to keep the machine anywhere in the house and not necessarily near [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2032" class="wp-caption alignleft" style="width: 310px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2011/02/D-Link_DWA-525_Wireless_N_150_Desktop_Adapter1.jpg"><img class="size-medium wp-image-2032" title="D-Link DWA-525 Wireless N 150 Desktop Adapter" src="http://www.shekhargovindarajan.com/wp-content/uploads/2011/02/D-Link_DWA-525_Wireless_N_150_Desktop_Adapter1-300x225.jpg" alt="D-Link DWA-525 Wireless N 150 Desktop Adapter" width="300" height="225" /></a><p class="wp-caption-text">D-Link DWA-525 Wireless N 150 Desktop Adapter</p></div>
<p>My new &#8220;desktop grade server machine&#8221; at home has a 802.11n wireless PCI adapter namely <strong>D-LINK DWA-525 Wireless N 150 Desktop Adapter</strong>.  An adapter like this plugs into one of the PCI slots and connects to a wireless or Wi-Fi network. This helps to keep the machine anywhere in the house and not necessarily near a router or Ethernet port.</p>
<p>On my desktop, I did a minimal or base installation of Fedora 14 Linux. Fedora was not able to recognize the wireless adapter and hence could not connect to the Wi-Fi router at my home. But with some efforts, I was able to make the adapter work on Fedora 14. Additionally, I was also able to configure the wireless adapter from the command line. What follows is a crisp tutorial with the required steps to setup DIR-615 PCI adapter on Linux.</p>
<p><span id="more-2014"></span>The following steps worked on a fresh installation of Fedora 14. While the steps mentioned are specific to <a href="http://fedoraproject.org/get-fedora" target="_blank">Fedora 14</a> , they should work for other flavors of Linux with minor changes. For example, while the method of installing GCC (the C language compiler) may differ, installation of the drivers for the wireless adapter should work as mentioned.</p>
<p><strong>Identify your Wireless adapter </strong><br />
Besides checking out the box and the manual of the wireless adapter, there is another way to identify it. Issue the following command:</p>
<pre>lspci | grep RaLink</pre>
<p>If the output contains something as follows:</p>
<pre>Network controller: RaLink Device 3060</pre>
<p>then this blog post is for you <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  But the same steps may work for a few other models (as explained in the section <strong>Download the drivers</strong>).</p>
<p><strong>Install the prerequisites</strong><br />
You will need to install gcc (C compiler) and kernel sources. On Fedora, they can be installed as follows:</p>
<pre>yum install gcc
yum install kernel-devel-`uname -r`</pre>
<p><strong>Download the drivers</strong><br />
Browse to the URL <a href="http://www.ralinktech.com/support.php?s=2">http://www.ralinktech.com/support.php?s=2</a>. Click on the link labeled <strong>RT3062PCI/mPCI/CB/PCIe(RT3060/RT3062/RT3562/RT3592)</strong>.<strong> </strong>Note the label. Besides 3060, it contains other model numbers too. Hence if the lspci command (see above) gives a different (from 3060) number, this blog post may still work for you.</p>
<p>On the subsequent page, type in your name and e-mail and click on the Accept button. This will download a file named DPO_RT3562_3592_3062_LinuxSTA_V2.4.1.1_20101217.tgz. In my case, I downloaded the drivers on my laptop and uploaded it on my desktop machine via SSH. The following steps should be executed on the machine with the wireless PCI adapter. Login as root.</p>
<p><strong>Install the drivers</strong><br />
Extract the downloaded file as:</p>
<pre>tar -zxvf DPO_RT3562_3592_3062_LinuxSTA_V2.4.1.1_20101217.tgz</pre>
<p>This will produce a directory named DPO_RT3562_3592_3062_LinuxSTA_V2.4.1.1_20101217. Open the file named config.mk, found in the directory DPO_RT3562_3592_3062_LinuxSTA_V2.4.1.1_20101217/os/linux/, in a text editor and modify the line:</p>
<pre>HAS_WPA_SUPPLICANT=n</pre>
<p>to</p>
<pre>HAS_WPA_SUPPLICANT=y</pre>
<p>Also change the line which says:</p>
<pre>HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n</pre>
<p>to:</p>
<pre>HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y</pre>
<p>Save the file. Next, change (cd) to the directory DPO_RT3562_3592_3062_LinuxSTA_V2.4.1.1_20101217 and issue the following commands:</p>
<pre>make
make install</pre>
<p>Reboot and voila! The wireless adapter should start working. You should be able to connect to your WiFi router or access point using NetwokManager in GNOME or KDE. In my case, I connected via the command line utility of NetworkManager called cnetworkmanager (as explained in the next section)</p>
<p><strong>Connect to WiFi from the command line</strong><br />
My WiFi router is configured to use WPA or WPA2 authentication as shown in the screenshot below:</p>
<div id="attachment_2029" class="wp-caption alignleft" style="width: 310px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2011/02/WPA_settings_on_D-Link-DIR-615_Wireless_N_Router.png"><img class="size-medium wp-image-2029" title="WPA settings on D-Link DIR-615 Wireless N Router" src="http://www.shekhargovindarajan.com/wp-content/uploads/2011/02/WPA_settings_on_D-Link-DIR-615_Wireless_N_Router-300x157.png" alt="WPA settings on D-Link DIR-615 Wireless N Router" width="300" height="157" /></a><p class="wp-caption-text">WPA settings on D-Link DIR-615 Wireless N Router</p></div>
<p>Install cnetworkmanager as:</p>
<pre>yum install cnetworkmanager</pre>
<p>To connect to a wireless router using WPA, append the following lines to the file named rc.local found in /etc directory:</p>
<pre>sleep 5
cnetworkmanager -C &lt;SSID&gt;  --wpa-pass="&lt;WPA-Password&gt;" &amp;</pre>
<p>In the second line, substitute &lt;SSID&gt; with the SSID of your wireless router. Substitute &#8220;&lt;WPA-Password&gt;&#8221; with the password that you have specified in your router for WPA/WPA authentication. For example:</p>
<pre>cnetworkmanager -C SHEKHAR --wpa-pass="secret123" &amp;</pre>
<p>Upon a reboot, the machine should automatically connect to your wireless router. That&#8217;s all folks!</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=2014&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tips-n-tricks/solved-setting-up-d-link-dwa-525-ralink-device-3060-wireless-desktop-pci-adapter-on-fedora-14-linux/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Solved: &#8216;requires bundle org.eclipse.wst.xml.core&#8217; error, while installing Google Plugin in Fedora Eclipse</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/solved-requires-bundle-org-eclipse-wst-xml-core-error-while-installing-google-plugin-in-fedora-eclipse/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=solved-requires-bundle-org-eclipse-wst-xml-core-error-while-installing-google-plugin-in-fedora-eclipse</link>
		<comments>http://www.shekhargovindarajan.com/tips-n-tricks/solved-requires-bundle-org-eclipse-wst-xml-core-error-while-installing-google-plugin-in-fedora-eclipse/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 14:42:08 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tips N Tricks]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Fedora 12]]></category>
		<category><![CDATA[Fedora 13]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[google plugin]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[google web toolkit]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=1585</guid>
		<description><![CDATA[The simplest way to get started with developing for Google App Engine, Google Web Toolkit and Google Wave is to use the Google Plugin for the Eclipse IDE. This plugin installs the SDK as well. Eclipse&#8217;s built-in wizard to add new software (plugin) makes it very easy to install the Google plugin. This wizard can [...]]]></description>
			<content:encoded><![CDATA[<p>The simplest way to get started with developing for Google App Engine, Google Web Toolkit and Google Wave is to use the <a href="http://code.google.com/eclipse/" target="_blank">Google Plugin</a> for the <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> IDE. This plugin installs the SDK as well. Eclipse&#8217;s built-in wizard to add new software (plugin) makes it very easy to install the Google plugin. This wizard can be supplied with a URL (http://dl.google.com/eclipse/plugin/3.5 in this case) to a download site. Henceforth, Eclipse takes care of downloading and installing the plugin, along with associated dependencies, bundle or required software.</p>
<p>However, for me, installing the Google Plugin didn&#8217;t go as smooth as expected. I have been using <a href="http://fedoraproject.org/" target="_blank">Fedora</a> Linux on my laptop since the last 5+ years. Fedora ships with the Eclipse IDE. When I tried installing the Google Plugin in Fedora Eclipse, I faced the following error.<span id="more-1585"></span> This error surfaced with Eclipse 3.5 on Fedora 12 and Fedora 13.</p>
<pre>Cannot complete the install because one or more required items could not be found.

  Software being installed: Google Plugin for Eclipse 3.5 1.3.2.v201003242055
                                        (com.google.gdt.eclipse.suite.e35.feature.feature.group 1.3.2.v201003242055)

  Missing requirement: Google App Engine Plugin 1.3.2.v201003242055
                                   (com.google.appengine.eclipse.core 1.3.2.v201003242055)
                                   requires 'bundle org.eclipse.wst.xml.core 0.0.0' but it could not be found

  Cannot satisfy dependency:
              From: Google Plugin for Eclipse 3.5 1.3.2.v201003242055
              (com.google.gdt.eclipse.suite.e35.feature.feature.group 1.3.2.v201003242055)
              To: com.google.appengine.eclipse.core [1.3.2.v201003242055]</pre>
<p>Googling around gives numerous solutions &#8211; from using a third party repository (with a broken link <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) to installing &#8220;Eclipse IDE for Java EE Developers&#8221; from www.eclipse.org. But the solution that worked for me was the simplest. Please note that this issue and the following solution could be specific to Eclipse on Fedora and Google Plugin.</p>
<p><strong>The Solution</strong><br />
Launch Eclipse. Click on Help&gt;Install New Software.  On the subsequent window titled “Available Software”, click on blue link &#8216;Available Software Sites&#8217;. Look for the URL http://download.eclipse.org/releases/galileo in the list of Software Sites. Select and click on Enable (button on the right). Click on OK.</p>
<div id="attachment_1594" class="wp-caption alignleft" style="width: 310px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2010/06/Enable-the-Galileo-software-site-before-installing-the-Google-Plugin.png"><img class="size-medium wp-image-1594" title="Enable the Galileo software site before installing the Google Plugin" src="http://www.shekhargovindarajan.com/wp-content/uploads/2010/06/Enable-the-Galileo-software-site-before-installing-the-Google-Plugin-300x222.png" alt="Enable the Galileo software site before installing the Google Plugin" width="300" height="222" /></a><p class="wp-caption-text">Enable the Galileo software site before installing the Google Plugin</p></div>
<p>Back on the “Available Software” window, type the URL  http://dl.google.com/eclipse/plugin/3.5  in the field labeled “Work with:” . Click on Add. This will show Plugin and SDKs in the bottom pane. Check the boxes against them and click on Next. Follow the onscreen instructions. This will install the Google plugin and SDK. When prompted, restart Eclipse.</p>
<p><strong>A few Troubleshooting Tips</strong><br />
On a freshly installed Eclipse, all software sites are disabled by default. This may not be true, if you have been updating or installing other plugins in Eclipse. I recall that, on Fedora 12, I faced the issue of numerous conflicts till I disabled all but the http://download.eclipse.org/releases/galileo site. Bottom line: before installing the Google Plugin, make sure that you only have the Galileo site enabled.</p>
<p>Second, this happened to me once that, even after following the above steps I got the same error. It seemed that Eclipse had problem in downloading the required software and ended up throwing the same error, instead of reporting a failed download. In this case, restart Eclipse, else you may keep getting the same error on retries. After restart, follow the steps mentioned in <strong>The Solution</strong> again.</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=1585&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tips-n-tricks/solved-requires-bundle-org-eclipse-wst-xml-core-error-while-installing-google-plugin-in-fedora-eclipse/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Solved: Garbled text in Putty</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/solved-garbled-text-in-putty/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;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 [...]]]></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>3</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/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;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 [...]]]></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>16</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/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;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 [...]]]></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>4</slash:comments>
		</item>
		<item>
		<title>FTP Backups made easy</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/ftp-backups-made-easy/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ftp-backups-made-easy</link>
		<comments>http://www.shekhargovindarajan.com/tips-n-tricks/ftp-backups-made-easy/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 11:54:23 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tips N Tricks]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[incremental]]></category>
		<category><![CDATA[lftp]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[scheduled]]></category>
		<category><![CDATA[Secure Shell]]></category>
		<category><![CDATA[shared hosted server]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[www.mysite.com]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=862</guid>
		<description><![CDATA[I do not recall backing up data over FTP (File Transfer Protocol) in the near past. Thanks to the SSH (Secure SHell) suite of programs like SCP (Secure Copy) and SFTP (Secure FTP), and RSync. But recently I had to setup a scheduled and unattended backup of data lying on a shared hosted server using [...]]]></description>
			<content:encoded><![CDATA[<p>I do not recall backing up data over FTP (File Transfer Protocol) in the near past. Thanks to the SSH (Secure SHell) suite of programs like <a href="http://en.wikipedia.org/wiki/Secure_copy" target="_blank">SCP (Secure Copy)</a> and <a href="http://en.wikipedia.org/wiki/SSH_file_transfer_protocol" target="_blank">SFTP (Secure FTP)</a>, and <a href="http://en.wikipedia.org/wiki/Rsync" target="_blank">RSync</a>. But recently I had to setup a scheduled and unattended backup of data lying on a shared hosted server using FTP &#8211; the only available option at my disposal.<a href="http://en.wikipedia.org/wiki/Wget" target="_blank"></a></p>
<p><a href="http://en.wikipedia.org/wiki/Wget" target="_blank">Wget</a> is a popular and obvious choice to try out for FTP backups. But it didn&#8217;t work for me and threw an error saying cannot find .listing file. While I was about to dwell more into wget, I spotted the forgotten hero &#8211; lftp. <span id="more-862"></span>lftp is described as a &#8220;Sophisticated file transfer program&#8221;. Do not mistake sophistication with complexity. I found it simple to use for my task. I had to backup the data from the hosting server to a Linux based machine (running <a href="http://en.wikipedia.org/wiki/CentOS" target="_blank">CentOS</a>). I found lftp preinstalled on the machine. If not found installed, one can install it on a <a href="http://en.wikipedia.org/wiki/Red_Hat" target="_blank">RedHat</a>/<a href="http://en.wikipedia.org/wiki/Fedora_%28operating_system%29" target="_blank">Fedora</a>/CentOS based Linux by using the following command:</p>
<p><em>yum install lftp</em></p>
<p>To backup using lftp, the syntax is:</p>
<p><em>lftp  -p &lt;FTP-Port&gt; -u &#8216;&lt;FTP-Username&gt;&#8217;,'&lt;FTP-Password&gt;&#8217; -e &#8216;mirror &#8211;verbose &lt;FTP-Directory&gt; &lt;Local-Directory&gt; ;quit&#8217;   &lt;FTP-Host&gt;</em></p>
<p>For example:</p>
<p><em>lftp  -p 21 -u &#8216;shekhar&#8217;,'secret&#8217; -e &#8216;mirror &#8211;verbose /public_html /backup/website ;quit&#8217;   www.mysite.com</em></p>
<p>The above command will backup the subdirectories and files in the directory public_html of the website www.mysite.com to a directory named /backup/website on the local machine (on which the lftp command is executed). lftp will automatically create the local directory if it does not exist.</p>
<p>Note that the &#8220;mirror&#8221; option will backup only the files which have changed. This means for the first time, lftp will download/backup all the files from the site. But subsequently, lftp will backup only the new or edited files and directories. This option saves bandwidth by not re-downloading files, if the backup is up to date.</p>
<p>For scheduled and attended backups you can easily schedule a <a href="http://en.wikipedia.org/wiki/Cron" target="_blank">Cron</a> job with the above command. It&#8217;s simple, it works!</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=862&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tips-n-tricks/ftp-backups-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3.5 (Final) on Fedora 11</title>
		<link>http://www.shekhargovindarajan.com/open-source/firefox-3-5-final-on-fedora-11/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=firefox-3-5-final-on-fedora-11</link>
		<comments>http://www.shekhargovindarajan.com/open-source/firefox-3-5-final-on-fedora-11/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 08:07:25 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[fedora 11]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[firefox 3.5]]></category>
		<category><![CDATA[firefox beta 4]]></category>
		<category><![CDATA[koji]]></category>
		<category><![CDATA[nspr]]></category>
		<category><![CDATA[official]]></category>
		<category><![CDATA[xulrunner]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=739</guid>
		<description><![CDATA[Firefox 3.5, the final release, has made its debut and is ready for download from here. Typically (and unfortunately) it may take about a day or two for Firefox 3.5 final to appear in the Fedora 11 repositories and across all the mirrors. When it appears, upgrading from the current version (Beta 4) of FireFox [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 3.5, the final release, has made its debut and is ready for download from <a href="http://www.firefox.com" target="_blank">here</a>. Typically (and unfortunately) it may take about a day or two for Firefox 3.5 final to appear in the <a href="http://fedoraproject.org/index.html" target="_blank">Fedora 11</a> repositories and across all the mirrors. When it appears, upgrading from the current version (Beta 4) of FireFox to the final release would be a matter of issuing &#8216;yum install firefox&#8217;. But we may not have to wait!<span id="more-739"></span></p>
<p>In the meanwhile, issue the following commands in your Fedora 11 (32 bit) box to upgrade to the final release of Firefox. Note that we are installing the required packages from the <a href="http://koji.fedoraproject.org/koji/" target="_blank">Koji</a> repository:</p>
<ol>
<li>rpm -Uvh http://kojipkgs.fedoraproject.org/packages/nspr/4.8/1.fc11/i586/nspr-4.8-1.fc11.i586.rpm</li>
<li>rpm -Uvh http://kojipkgs.fedoraproject.org/packages/xulrunner/1.9.1/2.fc11/i586/xulrunner-1.9.1-2.fc11.i586.rpm</li>
<li>rpm -Uvh http://kojipkgs.fedoraproject.org/packages/firefox/3.5/1.fc11/i586/firefox-3.5-1.fc11.i586.rpm</li>
</ol>
<p>The above RPMs will need to be installed in the same order. If you are using 64 bit Fedora or are on other architecture (like ppc), download and install the packages named nspr, xulrunner and firefox from the following web pages:</p>
<ul>
<li>nspr: <a href="http://koji.fedoraproject.org/koji/buildinfo?buildID=112313" target="_blank">http://koji.fedoraproject.org/koji/buildinfo?buildID=112313</a></li>
<li>xulrunner: <a href="http://koji.fedoraproject.org/koji/buildinfo?buildID=112385" target="_blank">http://koji.fedoraproject.org/koji/buildinfo?buildID=112385</a></li>
<li>firefox: <a href="http://koji.fedoraproject.org/koji/buildinfo?buildID=112334" target="_blank">http://koji.fedoraproject.org/koji/buildinfo?buildID=112334</a></li>
</ul>
<p>Eventually these packages will be pushed and available through the official Fedora mirrors., but till that time, enjoy!</p>
<p><strong>Update (July 5, 2009):</strong> Firefox 3.5 Final has been available from the Fedora 11 repositories, as I <a href="http://twitter.com/shekharg/status/2436562818" target="_blank">mentioned</a> a few days back. A simple &#8216;yum update firefox&#8217; will do the update to the final version on Fedora 11. This makes <strong>the above content outdated. </strong></p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=739&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/open-source/firefox-3-5-final-on-fedora-11/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Postfix: Log E-mails&#8217; Subject</title>
		<link>http://www.shekhargovindarajan.com/tips-n-tricks/postfix-log-e-mails-subject/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=postfix-log-e-mails-subject</link>
		<comments>http://www.shekhargovindarajan.com/tips-n-tricks/postfix-log-e-mails-subject/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 14:56:03 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Tips N Tricks]]></category>
		<category><![CDATA[Append]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[E-mail]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Find]]></category>
		<category><![CDATA[header_checks]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mail server]]></category>
		<category><![CDATA[maillog]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[production mail server]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[subject]]></category>
		<category><![CDATA[text editor]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=731</guid>
		<description><![CDATA[In Linux, you can view the statistics of incoming and outgoing E-mails by peeking into a log file called maillog (typically found in /var/log directory). Maillog provides the general information about the mails, for example, the sender and recipient(s), status &#8211; sent, rejected, bounced etc. I typically use maillog to check the destiny of mails. [...]]]></description>
			<content:encoded><![CDATA[<p>In Linux, you can view the statistics of incoming and outgoing E-mails by peeking into a log file called maillog (typically found in /var/log directory). Maillog provides the general information about the mails, for example, the sender and recipient(s), status &#8211; sent, rejected, bounced etc. I typically use maillog to check the destiny of mails. At times, it becomes difficult to spot a particular mail due to the sheer volume of mails being logged &#8211; especially on a production mail server.</p>
<p>For example: what if we need to check whether a particular mail sent by Person A has been delivered to Person B. Note that Person A might be sending lots of mails to Person B but we need to spot that one particular mail &#8211; say the one, which was sent by Person A but did not reach Person B. The only identifier, to identify a particular mail, in the maillog is the cryptic message ID. A better and more readable identifier would be the subject of an E-mail.Unfortunately, the subject of the mails is not logged, by default, in the maillog. But we can configure a mail server like Postfix to log the subject line.<span id="more-731"></span></p>
<p><a href="http://www.postfix.org/" target="_blank">Postfix</a> is a popular E-mail server a.k.a. MTA (Mail Transfer Agent) in the Linux world. With Postfix, it is easy to dump the subject line of every E-mail (incoming and outgoing) in the maillog. Assuming that you have a setup, configured and running Postfix, following is how to achieve it. Note that the path of the configuration files mentioned below are typical to <a href="http://www.redhat.com/" target="_blank">RedHat</a>, <a href="http://www.centos.org/" target="_blank">CentOS</a> and <a href="http://fedoraproject.org/" target="_blank">Fedora</a> Linux.</p>
<ul>
<li>Open the file called main.cf, found in /etc/postfix, in a text editor</li>
<li>Find and uncomment (by removing the preceding #) the line which says:<em>header_checks = regexp:/etc/postfix/header_checks<br />
</em></li>
<li>Save the file</li>
<li>Next, open the file named header_checks, found in the directory /etc/postfix, in a text editor</li>
<li>Append the following line to the file:/^Subject:/ WARN</li>
<li>Save the file and activate the Postfix&#8217;s configuration changes by issuing &#8216;service postfix reload&#8217;</li>
</ul>
<p>That&#8217;s it. Now in the maillog,  you will see the subject line of every incoming and outgoing mail. It will show  as follows:</p>
<p>Jun 29 06:16:28 mailer postfix/cleanup[473]: 1A96CD40CA: warning: header Subject: It Works! from mailsrv.foo.com[10.1.1.50]; from=&lt;personA@foo.com&gt; to=&lt;personB@foo1.com&gt; &#8230;</p>
<p>Note that the Subject (&#8220;It Works!&#8221; in this case) is logged in the maillog to identify the E-mail quite easily.</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=731&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/tips-n-tricks/postfix-log-e-mails-subject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora X</title>
		<link>http://www.shekhargovindarajan.com/open-source/fedora-x/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fedora-x</link>
		<comments>http://www.shekhargovindarajan.com/open-source/fedora-x/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 17:18:09 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[cellular telephone]]></category>
		<category><![CDATA[connection sharing]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Fedora 10]]></category>
		<category><![CDATA[fedora X]]></category>
		<category><![CDATA[Fedora X How]]></category>
		<category><![CDATA[i-mate Ultimate 8502 Cell Phone]]></category>
		<category><![CDATA[Internet connection]]></category>
		<category><![CDATA[Internet Connection Sharing]]></category>
		<category><![CDATA[Internet Sharing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[mobinnova]]></category>
		<category><![CDATA[package/software selection]]></category>
		<category><![CDATA[PC Connection]]></category>
		<category><![CDATA[PDA]]></category>
		<category><![CDATA[plymouth]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rndis]]></category>
		<category><![CDATA[usb-rndis]]></category>
		<category><![CDATA[windows mobile]]></category>
		<category><![CDATA[wireless connection]]></category>
		<category><![CDATA[Wow Factor   After installation]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=497</guid>
		<description><![CDATA[How things change while on the move! I had been hitting the Fedora site constantly for the Fedora 10 download &#8211; last at around 20:30 hrs IST from a client&#8217;s office. While driving back, about 30 mins away from home, I checked the site on my Windows Mobile (ironic?) and I spotted &#8220;Fedora 10&#8243; written [...]]]></description>
			<content:encoded><![CDATA[<p>How things change while on the move! I had been hitting the <a href="http://fedoraproject.org/" target="_blank">Fedora</a> site constantly for the Fedora 10 download &#8211; last at around 20:30 hrs IST from a client&#8217;s office. While driving back, about 30 mins away from home, I checked the site on my Windows Mobile (ironic?) and I spotted &#8220;Fedora 10&#8243; written all over the site. Rushed home at double speed.</p>
<p>Fired the torrent as well as direct download. The latter because, saw only one peer @ 98.7% download. Let&#8217;s see who, direct or the torrent download, wins the race on my 2 Mbps connection at home. The torrent download is not giving me more than 3KBps whereas the direct download is dicey and swinging &#8211; at times from about 260 KBps to 40 KBps</p>
<p>Once downloaded I have to start thinking about backing up my laptop running Fedora 9 and installing the 10. This may happen tonight, if sleep does not take over the X.</p>
<p>Will update this post as I sail to X from IX.</p>
<p>And now (Nov 27, 2008 @ 16:30 IST), my laptop runs Fedora 10 <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Continuing to write from Fedora 10, about it. Following is the first glimpse, with the noteworthy new wallpaper,  of Fedora 10&#8242;s desktop, after the installation:</p>
<div id="attachment_505" class="wp-caption alignnone" style="width: 310px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2008/11/fedora10-desktop.jpg"><img class="size-medium wp-image-505" title="fedora10-desktop" src="http://www.shekhargovindarajan.com/wp-content/uploads/2008/11/fedora10-desktop-300x187.jpg" alt="Fedora 10 Desktop" width="300" height="187" /></a><p class="wp-caption-text">Fedora 10 Desktop</p></div>
<p><span id="more-497"></span><strong>Installation</strong><br />
Didn&#8217;t find anything strikingly new in the installation. But worth mentioning is about <a href="http://en.wikipedia.org/wiki/Ext4" target="_blank">ext4</a> filesystem. Fedora 9 started supporting this new filesystem. I skipped using ext4 on Fedora 9 fearing that it is relatively new. With Fedora 10, I decided to go with it. But seems ext4 is still getting a newbie treatment. While partitioning ext4 does not show up until you type it in as a boot option.</p>
<p>That is, while booting from the Fedora 10 DVD, select &#8220;Install or upgrade an existing system&#8221; from the boot menu, press tab and append ext4 to the boot options such that the boot options look as follows:</p>
<p><em>vmlinuz initrd=initrd.img ext4</em></p>
<p>But then I got struck with a doubt while doing a custom partitioning. I recalled that when I used ext4 in Fedora 9 (just to experiment), I was not able to boot into the system because Grub (the Linux boot loader) did not like ext4 (/boot was ext4). I wondered whether this problem still existed with Fedora 10. Quick and impatient browsing did not help. So I decided to select ext4 even for the /boot partition, expecting that I may face a crash after installation. But thanks to Fedora 10&#8242;s installer. It prompted me (unlike Fedora 9) to not to use ext4 for the boot partition.</p>
<p>Bottom line: Don&#8217;t use ext4 for /boot or the boot partition. Those who are not in a habit to create a separate /boot partition will now have to create one, if they want to use ext4 for the root (/) partition.</p>
<p>Remaining installation was typical Fedora like. I was expecting but did not find <a href="http://www.netbeans.org/" target="_blank">Netbeans</a> during the package/software selection. Hoping that it will be available separately from the Fedora repositories.</p>
<p><strong>Booting: The Wow Factor<br />
</strong>After installation and during the boot up, we see the Fedora 10&#8242;s WOW Factor. Unlike most Linux distributions, including Fedora &lt; 10, no cryptic text saying &#8220;booting kernel&#8221;, &#8220;starting udev&#8221; etc. A straight jump to a graphical boot with a progress bar. Is this the Wow factor? No. Can&#8217;t explain it without a video While booting the animation of the shooting blue flairs from the blue Sun is really Wow. Thanks to the new boot system so called Plymouth. Following are the links to some YouTube videos which showcase the magnificent, new, animated boot screen:</p>
<p><a href="http://in.youtube.com/watch?v=A5aJyzgPAzo" target="_blank">Plymouth Solar Theme in Action</a></p>
<p>I think it is really a good move to hide those cryptic boot time messages. It scares a newbie and sometimes even me when I once saw a message as follows:</p>
<p><em>&#8220;Memory for crash kernel (0&#215;0 to 0&#215;0) not within permissible range&#8221;</em></p>
<p>during the boot process of <a href="http://www.centos.org/" target="_blank">CentOS</a> Linux. Upon read up, this message was claimed to be harmless despite talking about &#8220;crash kernel&#8221; <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Similarly it may be unnecessary to show the plethora of boot time messages, especially to a newbie and Fedora 10 does it well and even better with Plymouth. But, alas, shutdown of Fedora 10 still shows system messages on the screen.</p>
<p>As customary to Fedora, after the boot, I was greeted by the First Boot screen where I could setup a non-root user account, amongst others.</p>
<p>Finally I was dropped on the GNOME desktop (as shown in the screenshot above) and was greeted by 49 pending updates! This is something which used to surprise me before but humours me now, with all Fedoras. It has been just a day or two since the release of Fedora 10 and about 50 pending updates!. Either the releases are deadline driven or the Fedora community is indeed quite active. Anyways, being a long time Fedora user, this is just a rant.</p>
<p>Note: Fedora 10 does not even show the Grub menu while booting. As per Fedora 10&#8242;s release notes, the Grub menu is shown only if you have a dual boot (say with Windows and Fedora 10). Yet, to see the Grub menu, press any key after powering on your computer.</p>
<p><strong>Internet Connection Sharing with Windows Mobile<br />
</strong>One of the most talked about set of enhancements in Fedora 10 are those in the NetworkManager &#8211; a graphical applet which manages wired and wireless connection. One of the enhancements in NetworkManager is the connection sharing via WiFi ad-hoc which I will test and write about later.</p>
<p>This para is devoted to how easily I was able to connect my Windows Mobile (I-Mate Ultimate 8502 running Windows Mobile 6.0) via USB and was able to browse through its EDGE connection. One of the advantages of using USB to using Bluetooth is, the mobile keeps charging via USB while serving the Internet connection.</p>
<p>The general case is, if you are on the move and do not have access to an Internet connection (wired or WiFi), then one of the best ways is to connect your laptop via your GPRS/EDGE enabled mobile phone or PDA.</p>
<p>In Fedora 9, I could not get NetworkManager to work as easily for connection sharing with my mobile. I had to compile drivers (usb-rndis-lite), write configuration files and connect to the mobile from the commandline.</p>
<p>But with Fedora 10, its a breeze. Connect the mobile via USB, start &#8220;Internet Sharing&#8221; on the mobile and voila, you are connected! To launch &#8220;Internet Sharing&#8221; via USB on Windows Mobile 6, launch Start&gt;Programs&gt;Internet Sharing. Select &#8220;USB&#8221; from the &#8220;PC Connection&#8221; dropdown and for Network Connection, select your pr-configured GPRS/EDGE connection &#8211; &#8220;HUTCH (WEB)&#8221; in my case. Click on Connect. In seconds NetworkManager applet on the top right GNOME panel will show as connected to the mobile. Jet, set, browse!</p>
<p>Note: There are forum posts across the web which suggests to try permutations like click on the Connect (on the mobile) before connecting the mobile via USB or click on Connect after connecting the USB cable. I tried both and always found it to connect. Bottom line: whichever way, you should get connected instantly.</p>
<p>To be continued&#8230;</p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=497&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/open-source/fedora-x/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Googly PacMan Gadget</title>
		<link>http://www.shekhargovindarajan.com/google/google-gadgets-on-fedora-9/?&#038;owa_medium=feed&#038;owa_sid=&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-gadgets-on-fedora-9</link>
		<comments>http://www.shekhargovindarajan.com/google/google-gadgets-on-fedora-9/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 14:15:03 +0000</pubDate>
		<dc:creator>Shekhar</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Analog]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Fedora 9]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Vista]]></category>
		<category><![CDATA[pacman]]></category>
		<category><![CDATA[Sonic]]></category>

		<guid isPermaLink="false">http://www.shekhargovindarajan.com/?p=463</guid>
		<description><![CDATA[This Sunday, I planned to resume doing something which I haven&#8217;t been doing much &#8211; play video games. I was about to turn on my XBox to play &#8220;Star Wars &#8211; The force unleashed&#8221;.This is a new game and I really would have to spend some time understanding it, to play it. I suddenly started [...]]]></description>
			<content:encoded><![CDATA[<p>This Sunday, I planned to resume doing something which I haven&#8217;t been doing much &#8211; play video games. I was about to turn on my XBox to play &#8220;Star Wars &#8211; The force unleashed&#8221;.This is a new game and I really would have to spend some time understanding it, to play it. I suddenly started missing those classic arcade games which were &#8220;on-n-play&#8221; and less brainers.</p>
<p>I recalled PacMan &#8211; one of the most popular classic arcade video games. I used to play PacMan at a video game parlour each day (literally), on my way from school to home. My friends used to consider me an expert at it <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I started googling for PacMan for Linux. While searching, I got to know that this game is available as a Google Gadget. That&#8217;s it. I decided to install Google Gadgets on my Fedora 9 laptop. Thought it would be fun as well as learning and I will install more than just a game.</p>
<div id="attachment_480" class="wp-caption alignnone" style="width: 310px"><a href="http://www.shekhargovindarajan.com/wp-content/uploads/2008/11/google-gadgets-on-fedora-9-desktop.jpg"><img class="size-medium wp-image-480" title="google-gadgets-on-fedora-9-desktop" src="http://www.shekhargovindarajan.com/wp-content/uploads/2008/11/google-gadgets-on-fedora-9-desktop-300x187.jpg" alt="Google Gadgets on Fedora 9 Desktop" width="300" height="187" /></a><p class="wp-caption-text">Google Gadgets on Fedora 9 Desktop</p></div>
<p><span id="more-463"></span><strong>Installation:</strong></p>
<ul>
<li>Login as root</li>
<li>Configure a new YUM repository for Google Gadgets. Create a file named google-gadgets.repo in the directory /etc/yum.repos.d with the following contents:<em> </em><em>[google-gadgets]<br />
name=Google Gadgets<br />
baseurl=http://download.opensuse.org/repositories/home:/suzhe/Fedora_9/<br />
enabled=1<br />
gpgcheck=0</em></p>
<p><em></em></li>
<li>There is a google-gadgets RPM for an older release in the Fedora Update Repository which conflicts with the google-gadgets-common RPM from the above setup repository. Hence temporarily disable the update repository by editing the file fedora-updates-newkey.repo. Change Enabled=0 from 1 for [updates-newkey]. After the next step you can re-enable it by setting 0 to 1.</li>
<li>Install Google Gadgets for Fedora as:<em>yum install google-gadgets-gtk. </em>Since I use GNOME on my Fedora 9 desktop I chose to install google-gadgets-gtk. KDE users may opt for &#8220;<em>yum install google-gadgets-qt&#8221;</em> (untested by me).</li>
<li>Turn on Desktop Effects (System&gt;Preferences&gt;Look and Feel&gt;Desktop Effects) to see the Gadget sidebar translucent as the Vista sidebar.</li>
</ul>
<p><strong>Run It</strong><br />
There are two ways to run the Google Gadgets sidebar (which shows your gadgets): manually or automatically, when you log into GNOME. To run it manually, issue the following command in a terminal/console window:<em><br />
</em></p>
<p><em>ggl-gtk -bg</em></p>
<p>Second, to run it automatically when you log into GNOME, click on System&gt;Preferences&gt;Personal&gt;Sessions. Click on the tab &#8220;Startup Programs&#8221;. Click on the Add button. For Name: type in Google Gadgets and for Command: type in:  <em>ggl-gtk -bg</em>. Next time, when you log into GNOME, the sidebar will appear automatically.</p>
<p>Note that if you click on the show desktop icon (bottom left) on GNOME, the Google Gadget&#8217;s sidebar would dissappear. To see it again, click on the Google Gadgets icon <a href="http://www.shekhargovindarajan.com/wp-content/uploads/2008/11/google-gadgets.png"><img class="alignnone size-medium wp-image-475" title="google-gadgets" src="http://www.shekhargovindarajan.com/wp-content/uploads/2008/11/google-gadgets.png" alt="" width="18" height="18" /></a> on the GNOME panel.</p>
<p>To install Google Gadgets for other Linux distributions browse to <a href="http://code.google.com/p/google-gadgets-for-linux/" target="_blank">http://code.google.com/p/google-gadgets-for-linux/</a></p>
<p><strong>Add the PacMan gadget<br />
</strong>To add a gadget like the PacMan game, right click on the Google Gadget&#8217;s sidebar and click on &#8220;Add Gadgets&#8221;. This will popup a window with the gadgets&#8217; category on the left and the gadgets on the right pane. To add PacMan, select &#8220;Fun and Games&#8221; and then move the mouse over the &#8220;Games&#8221; gadget. Then click on the Add button. This will add the Games gadget to the sidebar which lists other games like Tetris, Donkey Kong, Sonic, amongst PacMan. Click on a game to start playing it.</p>
<p>All said and done, I happened to install Google Gadgets on my Fedora 9 desktop for PacMan and it is worth it. Played across three stages while downloading a 25 MB file in office <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . As of this writing I only have 3 gadgets added to the sidebar &#8211; Wikipedia search, Games and Analog Clock.</p>
<p>Will update this post when I add something more or as interesting as PacMan to my gadgets sidebar. PacMan rocks <img src='http://www.shekhargovindarajan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<img src="http://www.shekhargovindarajan.com/?ak_action=api_record_view&id=463&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.shekhargovindarajan.com/google/google-gadgets-on-fedora-9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

