<?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"
	>

<channel>
	<title>Day in, day out...</title>
	<atom:link href="http://tech.mahesha.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.mahesha.com</link>
	<description>Technology in day to day life...</description>
	<pubDate>Thu, 06 Nov 2008 06:30:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Happy 10th, Google!</title>
		<link>http://tech.mahesha.com/2008/09/27/happy-10th-google/</link>
		<comments>http://tech.mahesha.com/2008/09/27/happy-10th-google/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 04:13:38 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Funny]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Interesting]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=132</guid>
		<description><![CDATA[Looks like the Google Street-View guy is spreading some cheer on Google&#8217;s 10th birthday!


Google Street-View guy spotted with party hat and balloons!

Happy 10th, Google!
]]></description>
			<content:encoded><![CDATA[<p>Looks like the <a href="http://maps.google.com/help/maps/streetview/" title="Explore neighborhoods at street level–virtually">Google Street-View</a> guy is spreading some cheer on <a href="http://googleblog.blogspot.com/2008/09/ten-years-and-counting.html" title="Ten years and counting">Google&#8217;s 10<sup>th</sup> birthday</a>!</p>
<div class="img_container">
<a href="http://tech.mahesha.com/wp-content/images/google-street-view-guy.png"><img src="http://tech.mahesha.com/wp-content/images/google-street-view-guy.png" alt="Google Street-View guy is spreading some cheer"></a></p>
<div class="caption">Google Street-View guy spotted with party hat and balloons!</div>
</div>
<p>Happy 10<sup>th</sup>, Google!</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/09/27/happy-10th-google/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Building Alpine on Hardy Heron</title>
		<link>http://tech.mahesha.com/2008/08/24/building-alpine-on-hardy-heron/</link>
		<comments>http://tech.mahesha.com/2008/08/24/building-alpine-on-hardy-heron/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 23:37:54 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Alpine]]></category>

		<category><![CDATA[Hardy Heron]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=114</guid>
		<description><![CDATA[Lately, I have developed a liking for the Alpine Messaging System. It is a text based email client that runs on a variety of platforms. I use it with Gmail IMAP at home and MS Exchange at work. In both cases, it works beautifully.
Pre-compiled binaries for a good number of platforms are available on the [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I have developed a liking for the <a href="http://www.washington.edu/alpine/" title="Alpine website">Alpine Messaging System</a>. It is a text based email client that runs on a variety of platforms. I use it with Gmail IMAP at home and MS Exchange at work. In both cases, it works beautifully.</p>
<p>Pre-compiled binaries for a good number of platforms are available on the <a href="http://www.washington.edu/alpine/acquire/" title="Acquire Alpine">apline website</a>. But if you are not in a position to use the pre-compiled binaries - say because you do not have root privileges, or binary is not available for your platform, or may be you just<br />
want to use the bleeding edge development code - you can build the alpine application from source. The following steps are specific to building the latest SVN snapshot on Ubuntu Hardy Heron. It may/may not work on other OSes.</p>
<p><b>Prepare your system</b></p>
<p>Get all the (known) prerequisites. From my experience, these are required:</p>
<ul>
<li>libncurses5-dev to get rid of the following error:</li>
</ul>
<blockquote><p><code>configure: error: Terminfo/termcap not found</code></p></blockquote>
<ul>
<li>libpam0g-dev and libssl-dev to get rid of some SSL related errors.</li>
</ul>
<p>To get the above use the following in terminal:</p>
<pre>
  % sudo apt-get install subversion libncurses5-dev \
                         libpam0g-dev libssl-dev
</pre>
<p><b>Get the source code</b></p>
<p>Get the latest source snapshot. Following few steps are one time. After the initial snapshot is acquired with svn checkout, svn update can be used to update the source snapshot:</p>
<pre>
  % mkdir ..../alpine
  % cd ..../alpine
  % svn checkout \
        https://svn.cac.washington.edu/public/alpine/snapshots/
</pre>
<p>Accept the certificate (permanently) if required.</p>
<p><b>Configure, compile and install</b></p>
<p>Now use the familiar <i>configure, make, make install</i> routine to build and install Alpine.</p>
<pre>
  % cd .../alpine/snapshots
  % svn update
  % ./configure --prefix=/opt/apps/alpine
                --with-local-password-cache-method
  % make
  % sudo make install
</pre>
<p>I was overly optimistic in using <code>--with-local-password-cache-method</code>. I was hoping that Alpine would store my account passwords in Gnome Keyring! It did not work quite like that. I need to enter my email passwords every time I start Alpine.</p>
<p>Other way to automate password entry is to use the <code>--with-passfile</code> configure option. But it is known to be unsafe.</p>
<p>Happy messaging!</p>
<p>EDIT: Trying to recompile alpine on Intrepid, I discovered that <code>libssl-dev</code> is also required.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/08/24/building-alpine-on-hardy-heron/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Synchronize notes with Tomboy</title>
		<link>http://tech.mahesha.com/2008/08/23/synchronize-notes-with-tomboy/</link>
		<comments>http://tech.mahesha.com/2008/08/23/synchronize-notes-with-tomboy/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 21:29:36 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Tomboy]]></category>

		<category><![CDATA[WebDAV]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=101</guid>
		<description><![CDATA[I have been using Tomboy Notes on my Linux machines for more than a couple of years now. Needless to say, I often wished that notes on the other computer were also accessible to be on the one I am working on, at that moment. I was aware that it has a Synchronization option - [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using <a href="http://www.gnome.org/projects/tomboy/index.html" title="Simple note-taking. Powerful ideas">Tomboy Notes</a> on my Linux machines for more than a couple of years now. Needless to say, I often wished that notes on the other computer were also accessible to be on the one I am working on, at that moment. I was aware that it has a <a href="http://live.gnome.org/Tomboy/PluginList" title="Tomboy WebDAV sync via plugin">Synchronization option - using WebDAV</a>. But, a few times I tried it, I was not successful at getting that to work.</p>
<p>Few days back, I had some success <a href="http://tech.mahesha.com/2008/08/11/using-non-mozilla-server-for-weave/" title="Using non-Mozilla server for Weave">using non-Mozilla server with Weave</a>. In the process, I got a WebDAV account at mydisk.se. Now that I had a WebDAV account, I thought I&#8217;d give Tomboy Synchronization another shot.</p>
<p>I built Tomboy from the latest svn source. This was easy, thanks to very <a href="http://live.gnome.org/Tomboy/Developers" title="Tomboy build instructions">clear instructions on the Tomboy Wiki</a>.</p>
<pre>
  % cd /my/source/directory
  % svn co http://svn.gnome.org/svn/tomboy/trunk tomboy
  % cd tomboy
  % ./autogen.sh --prefix=/opt/apps/tomboy \
                 --disable-scrollkeeper
  % make
  % make install
</pre>
<p>On the first synchronization attempt, I got an error indicating that fuse/wdfs was not installed. To fulfill this dependency, I did the following:</p>
<pre>
  % cd /my/source/directory
  % wget http://noedler.de/projekte/wdfs/wdfs-1.4.2.tar.gz
  % tar xzvf wdfs-1.4.2.tar.gz
  % cd wdfs-1.4.2
  % ./configure
  % make
  % sudo make install
</pre>
<p>To get wdfs installed, I had to install the glib2.0 development modules:</p>
<pre>
  % sudo apt-get install libgtk2.0-dev
</pre>
<p>With this, I was all set for the first sync. However, due to a <a href="http://bugzilla.gnome.org/show_bug.cgi?id=499841" title="Bug 499841 – tomboy problems communicating with gnome keyring">bug</a>, that was not quite possible. But since I had the source, and bug report has the fix, I tried it out. I built Tomboy again, with the suggested fix. It worked! I have that build available in the <a href="http://tech.mahesha.com/downloads/" title="Downloads">downloads section</a> for trying out.</p>
<p>A little work, and now my Linux machines have access to all my notes and stickies! I haven&#8217;t found a Mac app that has WebDAV synchronization of notes. If there is one, I&#8217;d love to try it out. The <a href="http://en.wikipedia.org/wiki/Stickies" title="Stickies">stickies utility in Mac OS X</a> could really use some synchronization feature - not via <em>.me</em>.</p>
<p>I use <a href="http://www.google.com/notebook/" title="Google Notebook">Google Notebook</a> a lot too. So some of the <a href="http://live.gnome.org/Tomboy/PluginList" title="New plugin ideas a the bottom of page">Ideas for new plugins</a> sound interesting!</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/08/23/synchronize-notes-with-tomboy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using non-Mozilla server for Weave</title>
		<link>http://tech.mahesha.com/2008/08/11/using-non-mozilla-server-for-weave/</link>
		<comments>http://tech.mahesha.com/2008/08/11/using-non-mozilla-server-for-weave/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 23:40:38 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Mozilla]]></category>

		<category><![CDATA[Weave]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=89</guid>
		<description><![CDATA[If you use Weave, you&#8217;ve probably noticed that Mozilla servers are currently overloaded. Accounts are not working. My account authenticates (If I access
https://services.mozilla.com/user/&#60;user_name&#62;/
 it asks for and accepts my credentials), but I get a &#8220;Not Found&#8221; 404 error. The accounts that do work, are very slow.
Like always, I went forumming, trying to get to the [...]]]></description>
			<content:encoded><![CDATA[<p>If you use <a href="http://labs.mozilla.com/projects/weave/" title="Weave home page">Weave</a>, you&#8217;ve probably noticed that Mozilla servers are currently overloaded. Accounts are not working. My account authenticates (If I access
<pre>https://services.mozilla.com/user/&lt;user_name&gt;/</pre>
<p> it asks for and accepts my credentials), but I get a &#8220;Not Found&#8221; 404 error. The accounts that do work, are very slow.</p>
<p>Like always, I went forumming, trying to get to the bottom of this trouble. I came across some helpful posts at the <a href="https://labs.mozilla.com/forum/index.php/board,19.0.html" title="Weave Forum">Weave forums</a>. Posts from <a href="https://labs.mozilla.com/forum/index.php?topic=1482.msg6495#msg6495">covidium</a> and <a href="https://labs.mozilla.com/forum/index.php?topic=1482.msg6502#msg6502">netoak</a> are especially useful. This post is just a compilation of steps I followed to get my Weave working again.</p>
<p><strong>Get a WebDAV host</strong><br />
I guess there are only a handful of these, that are free. I tried to find one in the US, but couldn&#8217;t. I just used the one that <a href="https://labs.mozilla.com/forum/index.php?topic=1482.msg6502#msg6495">covidium</a> suggested. I opened a free account at <a href="http://www.mydisk.se/" title="myDisk">myDisk.se</a>.</p>
<p><strong>Create directory structure</strong><br />
Weave expects the files to be in a specific directory structure. If you have <code>myserver.com</code> as your server, it will look for
<pre>myserver.com/user/user_name</pre>
<p> To cater to this, I created a directory called <code>user</code>, then inside it, I created one called <code>user_name</code>.</p>
<p>In retrospect, I should have instead made
<pre>weave/user/user_name</pre>
<p> directory structure. That would keep everything <em>Weave</em> together.</p>
<p><strong>Set Weave&#8217;s Server Settings</strong><br />
Open Weave&#8217;s Server Settings (<em>Tools -> Weave -> Preferences&#8230;</em>) and then go to the <em>Advanced</em> tab. Replace the default <em>Server Location</em> with
<pre>https://mydisk.se/user_name/</pre>
<p> mydisk makes my files available at <code>https://mydisk.se/user_name/</code>, other hosts may use some other path.</p>
<p>If I had used
<pre>weave/user/user_name</pre>
<p> directory structure, I would set the <em>Server Location</em> to
<pre>https://mydisk.se/user_name/weave/</pre>
<p><strong>Try Weave again</strong><br />
In Weave preferences&#8217; <em>Advanced</em> tab, click on the <em>Advanced&#8230;</em> button. Click on <em>Reset Login </em>and <em>Reset Server Lock</em> buttons. I did not think it would be required, but I had to quit Firefox and restart it.</p>
<p>Now, sign in to Weave again (<em>Tools -> Weave -> Sign In</em>). Follow the setup wizard as if you are opening a new account. Use username and password from your WebDAV server. Pick a strong passphrase.</p>
<p>At this point, you should be all set.</p>
<p>Do leave feedback to point out errors in the above process, so other readers can benefit too.</p>
<p>My current web host does not provide WebDAV. From what I read, <a href="http://www.dreamhost.com/hosting-features.html#webdav">DreamHost does</a>. I wonder if Weave users who have DreamHost accounts already host their own Weave servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/08/11/using-non-mozilla-server-for-weave/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google testing new &#8220;Google News&#8221;</title>
		<link>http://tech.mahesha.com/2008/07/10/google-testing-new-google-news/</link>
		<comments>http://tech.mahesha.com/2008/07/10/google-testing-new-google-news/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 23:30:55 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=88</guid>
		<description><![CDATA[It bugged that over the past few days, I was seeing different Google News at work and a different looking one at home. An entry on the Google News blog explained why:
Google News Blog: Testing&#8230; testing&#8230; is this on?:
&#8230; They&#8217;ll only be visible to a small number of random Google News readers. (In case you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>It bugged that over the past few days, I was seeing different <a href="http://news.google.com/" title="Google News">Google News</a> at work and a different looking one at home. An entry on the Google News blog explained why:</p>
<p><a href="http://googlenewsblog.blogspot.com/2008/06/testing-testing-is-this-on.html#links">Google News Blog: Testing&#8230; testing&#8230; is this on?</a>:<br />
<blockquote>&#8230; They&#8217;ll only be visible to a small number of random Google News readers. (In case you&#8217;re wondering, experiments are selected randomly, so we can&#8217;t give you any advice for how to get in!)&#8230;</p></blockquote>
<p>Although, what is selected randomly? Username? IP address?</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/07/10/google-testing-new-google-news/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Firefox 3.0 on Linux and cairo version</title>
		<link>http://tech.mahesha.com/2008/06/17/firefox-30-on-linux-and-cairo-version/</link>
		<comments>http://tech.mahesha.com/2008/06/17/firefox-30-on-linux-and-cairo-version/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 22:54:17 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Browser]]></category>

		<category><![CDATA[Cairo]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Fonts]]></category>

		<category><![CDATA[Hardy Heron]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=87</guid>
		<description><![CDATA[Since its Alphas, I&#8217;ve been comparing font rendering in official Firefox 3.0 Linux builds and the ones I used to compile myself. Fonts in the official builds were, and still are, very crudely rendered. Upon reading a little, I learned that this difference is due to the use of different version of Cairo, a graphics [...]]]></description>
			<content:encoded><![CDATA[<p>Since its Alphas, I&#8217;ve been comparing font rendering in official Firefox 3.0 Linux builds and the ones I used to compile myself. Fonts in the official builds were, and still are, very crudely rendered. Upon reading a little, I learned that this difference is due to the use of different version of <a href="http://en.wikipedia.org/wiki/Cairo_(graphics)" title="Cairo - graphics">Cairo</a>, a graphics library that Firefox uses under the hood.</p>
<p>Using <code>--enable-system-cairo</code> option when building Firefox greatly improves the look of fonts. I used to compile my own nightly builds using this option, hoping that the official builds will move to using that option too, before the final 3.0 release.</p>
<p>I just tried the final release and found that it still does not use <code>--enable-system-cairo</code> option, and the fonts are still not neat.</p>
<p>Thankfully, I also noticed that Ubuntu&#8217;s Firefox 3.0 - that got updated today as well, does use <code>--enable-system-cairo</code> option. Now I don&#8217;t have to compile my own builds. I wish I had noticed this the first time I installed Hardy - the Firefox 3.0 beta that came with it probably used system Cairo too. But I am glad I noticed this, better late than never.</p>
<p>Here are a couple of screenshots that illustrate the difference:</p>
<div class="img_container">
<a href="http://tech.mahesha.com/wp-content/images/firefox-cairo-difference.png"><img src="http://tech.mahesha.com/wp-content/images/firefox-cairo-difference.png" alt="Firefox fonts with and without system cairo - Click for full size" width="475px"/></a></p>
<div class="caption">Click on the image to view full size - The one on top is the Ubuntu build, using <code>--enable-system-cairo</code> option. The one a the bottom is the official Firefox build, not using that option. Notice how the fonts in the Ubuntu build are so much better than the fonts in the official Firefox build</div>
</div>
<p>Now, go <a href="http://www.mozilla.com/en-US/firefox/all.html" title="Download Firefox 3.0">download Firefox 3.0</a> while it&#8217;s hot. You don&#8217;t get to set a <a href="http://www.spreadfirefox.com/en-US/worldrecord/" title="Download Day is upon us">world record</a> everyday!</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/06/17/firefox-30-on-linux-and-cairo-version/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Set a world record on June 17th&#8230;</title>
		<link>http://tech.mahesha.com/2008/06/11/set-a-world-record-on-june-17th/</link>
		<comments>http://tech.mahesha.com/2008/06/11/set-a-world-record-on-june-17th/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 05:28:52 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Mozilla]]></category>

		<category><![CDATA[World Record]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=86</guid>
		<description><![CDATA[Its official, Firefox 3.0 will be released on June 17th, 2008.
Join more than a million others by pledging to download Firefox 3.0 on the day of release. Celebrate the Download Day by setting a world record. Click on the image below:

To see what to expect from the new version of Firefox, watch this screencast.
Cheers!
UPDATE (06/12/2008):
There&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.mozilla.org/devnews/index.php/2008/06/11/coming-tuesday-june-17th-firefox-3/" title="Firefox 3 announcement">Its official</a>, Firefox 3.0 will be released on June 17<sup>th</sup>, 2008.</p>
<p>Join more than a million others by pledging to download Firefox 3.0 on the day of release. Celebrate the <em>Download Day</em> by setting a world record. Click on the image below:</p>
<p><a href="http://www.spreadfirefox.com/node&#038;id=0&#038;t=269"><img border="0" alt="Download Day" title="Download Day" src="http://www.spreadfirefox.com/files/images/affiliates_banners/sns_badge1_en.png"/></a></p>
<p>To see what to expect from the new version of Firefox, watch <a href="http://people.mozilla.com/~beltzner/overview-of-firefox3.swf" title="New features in Firefox 3 by Mike Beltzner">this screencast</a>.</p>
<p>Cheers!</p>
<p>UPDATE (06/12/2008):</p>
<p>There&#8217;s an excellent post on dria.org that lists the new features in Firefox 3.0, it is called <a href="http://www.dria.org/wordpress/archives/2008/06/12/655/" title="Field Guide to Firefox 3 at dria.org">Field Guide to Firefox 3</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/06/11/set-a-world-record-on-june-17th/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8230; At least it is not the &#60;ESC&#62; key!</title>
		<link>http://tech.mahesha.com/2008/04/23/at-least-it-is-not-the-esc-key/</link>
		<comments>http://tech.mahesha.com/2008/04/23/at-least-it-is-not-the-esc-key/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 02:23:46 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/2008/04/23/at-least-it-is-not-the-esc-key/</guid>
		<description><![CDATA[Just over a year ago, I spilled coffee on my keyboard at work. Almost entire left side of the keyboard was ruined. The buttons had become sticky from the mocha and were acting stubborn. I replaced it with a new ergonomic keyboard. Life was good.
In the meanwhile, I built a cheap computer at home. Instead [...]]]></description>
			<content:encoded><![CDATA[<p>Just over a year ago, I spilled coffee on my keyboard at work. Almost entire left side of the keyboard was ruined. The buttons had become sticky from the mocha and were acting stubborn. I replaced it with a new ergonomic keyboard. Life was good.</p>
<p>In the meanwhile, I built a cheap computer at home. Instead of buying a new keyboard, I decided to clean the coffee on my old keyboard at work and put it to use with my home computer. Most of the keys work fine after cleaning. I don&#8217;t end up using the keyboard at home as much as I do at work, so things are working pretty well.</p>
<p>That was until the past Monday. On Monday, I found that one - just one - key on the new (well, not so new anymore, but comparitively) keyboard at work is being insensitive. That key had to be the <a href="http://www.answers.com/topic/colon-wordnet" title="colon (punctuation)">colon (:)</a> key! As a <a href="http://www.vim.org" title="Vim web page">Vim</a> user, that spells trouble.</p>
<p>I am OK using the almost 50% ruined keyboard at home. But using an otherwise perfect keyboard with just an insesitive colon is proving to be a big pain in the&#0133; oh boy&#0133; no pun intended what-so-ever!</p>
<p>But then again, at least it is not the &lt;ESC&gt; key!</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/04/23/at-least-it-is-not-the-esc-key/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Shell built-in commands in Perl script</title>
		<link>http://tech.mahesha.com/2008/04/15/shell-built-in-commands-in-perl-script/</link>
		<comments>http://tech.mahesha.com/2008/04/15/shell-built-in-commands-in-perl-script/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 21:35:46 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Perl]]></category>

		<category><![CDATA[Shell]]></category>

		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/?p=83</guid>
		<description><![CDATA[There&#8217;s been a lot of people on the blogosphere reporting shell history. The idea is to know what kind of commands different people use on their shell - kinda geeky, but none the less. Here&#8217;s the command most are using:

  history&#124;awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'&#124;sort -rn&#124;head

A Perl enthusiast that [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a lot of people on the <a href="http://blogsearch.google.com/blogsearch?ie=UTF-8&#038;oe=utf-8&#038;client=firefox-a&#038;um=1&#038;q=history+awk&#038;as_maxm=4&#038;as_miny=2008&#038;as_maxy=2008&#038;as_minm=4&#038;as_mind=8&#038;as_maxd=15&#038;as_drrb=b&#038;ctz=420&#038;c1cr=4%2F8%2F2008&#038;c2cr=4%2F15%2F2008&#038;btnD=Go" title="Recent blog entries">blogosphere</a> reporting shell history. The idea is to know what kind of commands different people use on their shell - kinda geeky, but none the less. Here&#8217;s the command most are using:</p>
<pre>
  history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
</pre>
<p>A Perl enthusiast that I am, I started out to do the same in Perl instead of <code>awk</code>. I started writing a script <code>hotlist</code> that will get the shell history, count unique commands and sort them in descending order of the count. Seems very straightforward. Turns out, its only straightforward - without the <em>very</em>.</p>
<p>Since <code>history</code> is a built-in shell command, it cannot called it with the <a href="http://perldoc.perl.org/perlop.html#qx/STRING/" title="`STRING`"><code>qx//</code> or back-tick (<code>``</code>) syntax of Perl</a> to fetch shell history. I resorted to <a href="http://www.google.com" title="Google search">Google</a> to find a solution, but could not find one easily. After some help from <a href="http://groups.google.com/group/comp.lang.perl.misc/topics?hl=en" title="comp.lang.perl.misc">clpm</a>, I came up with this:</p>
<pre>
#!/usr/bin/perl

use strict;
use warnings;

my %hist = ();
my @hist;

$hist{(split /\s+/)[3]}++
  foreach ((-p STDIN) ? &lt;STDIN&gt; : `$ENV{'SHELL'} -c history`);

print map {"$hist{$_} : $_\n"}
        sort {$hist{$b} &lt;=&gt; $hist{$a}}
          keys %hist;
</pre>
<p>To use shell&#8217;s built-in commands, you must invoke the shell and have it execute the built-in command. In the above script, that is done with <code>`$ENV{'SHELL'} -c history`</code>, which in my case expands to <code>`/usr/local/bin/tcsh -c history`</code> since I use t-shell. The shell can be invoked by <code>qx//</code> or back-tick (<code>``</code>) to collect the output.</p>
<p>You can use this script in two flavors:</p>
<pre>
  % hotlist
  % history | hotlist
</pre>
<p>The first flavor starts a new shell and calls the <code>history</code> command in it. So you get the information from saved shell history. It does not contain commands form the active shell. If you want to include the active shell too, use the second flavor. Where you pipe the current shell&#8217;s history into the script.</p>
<p>Hopefully, this will help the next person who wants to use shell built-in commands in Perl. Like I said, I am a Perl enthusiast, not an expert, so this may not be the best solution.</p>
<p>I am sure some Perl guru will manage to cram all that in a one-liner, but that was not my intent.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/04/15/shell-built-in-commands-in-perl-script/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vimpress to edit/publish WordPress posts</title>
		<link>http://tech.mahesha.com/2008/04/13/vimpress-to-editpublish-wordpress-posts/</link>
		<comments>http://tech.mahesha.com/2008/04/13/vimpress-to-editpublish-wordpress-posts/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 06:14:28 +0000</pubDate>
		<dc:creator>Mahesh Asolkar</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Vim]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tech.mahesha.com/2008/04/13/vimpress-to-editpublish-wordpress-posts/</guid>
		<description><![CDATA[This is very impressive. With Vimpress, you can publish/edit WordPress blog posts from within Vim, like I am doing now. It works great too. This brings together my favorite editor and my favorite blogging platform&#8230; Its been around for a while, I only found out today!
UPDATE:
I did find that the plugin does not play well [...]]]></description>
			<content:encoded><![CDATA[<p>This is very impressive. With <a href="http://friggeri.net/blog/2007/07/13/vimpress" title="Vimpress - Vim Plugin!">Vimpress</a>, you can publish/edit <a href="http://www.wordpress.org" title="WordPress website">WordPress</a> blog posts from within <a href="http://www.vim.org" title="Vim website">Vim</a>, like I am doing now. It works great too. This brings together my favorite editor and my favorite blogging platform&#8230; Its been around for a while, I only found out today!</p>
<p>UPDATE:</p>
<p>I did find that the plugin does not play well in Vim compiled with python disabled. Vim throws a lot of errors when loading the vimpress plugin (<code>blog.vim</code> file). Adding the following lines before the <code>command!</code> lines in <code>blog.vim</code> addresses this:</p>
<pre>
if !has("python")
  finish
endif
</pre>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.mahesha.com/2008/04/13/vimpress-to-editpublish-wordpress-posts/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
