<?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>gnapse.com &#187; Software</title>
	<atom:link href="http://gnapse.com/blog/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://gnapse.com/blog</link>
	<description>whatever comes to my mind</description>
	<lastBuildDate>Wed, 28 Jul 2010 18:50:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Five Chrome extensions that can make your life easier</title>
		<link>http://gnapse.com/blog/2010/07/16/five-chrome-extensions/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=five-chrome-extensions</link>
		<comments>http://gnapse.com/blog/2010/07/16/five-chrome-extensions/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 14:36:56 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=140</guid>
		<description><![CDATA[Google Chrome is a great browser, and with extensions it gets even better. Here are five extensions I love, and that might be helpful for others too. Readability Redux This one takes an article or blog post page and presents it in a reading-friendly format, leaving out all the clutter (sidebars, navigation menus, etc.) and [...]]]></description>
			<content:encoded><![CDATA[<p>Google Chrome is a great browser, and with extensions it gets even better. Here are five extensions I love, and that might be helpful for others too.</p>
<h2>Readability Redux</h2>
<p>This one takes an article or blog post page and presents it in a reading-friendly format, leaving out all the clutter (sidebars, navigation menus, etc.) and also with a customized font and text styling that makes it more suitable for reading and printing.</p>
<div id="attachment_143" class="wp-caption aligncenter" style="width: 310px"><a href="http://gnapse.com/blog/wp-content/uploads/2010/07/chrome-readability-redux.png"><img class="size-medium wp-image-143" title="A blog post shown in readability mode" src="http://gnapse.com/blog/wp-content/uploads/2010/07/chrome-readability-redux-300x199.png" alt="" width="300" height="199" /></a><p class="wp-caption-text">A blog post shown in readability mode</p></div>
<p>I was envy when Safari 5 went out with this as a <a title="Safari Reader" href="http://www.apple.com/safari/whats-new.html#reader" target="_blank">core feature</a>, so much that I actually considered switching now that Safari has got extensions too. I detest to read articles and blog posts with all the clutter of the page. Particularly when you intend to print the article for further reading, not always web sites provide a good printed alternative, if they provide one at all.<span id="more-140"></span></p>
<p><a href="https://chrome.google.com/extensions/detail/jggheggpdocamneaacmfoipeehedigia" target="_blank">Get Readability Redux</a></p>
<h2>Proxy Switchy!</h2>
<p>This one I couldn’t live without. It’s pretty much the equivalent of FoxyProxy on Firefox, if you ever used that. It allows you to define several proxy configurations for you to switch to, and you can also create rules so that different specific web-sites that you define are automatically routed through certain proxies all the time, without you having to remember switching. For an active <a href="http://www.torproject.org/" target="_blank">Tor</a> user like me, this one is very handy.</p>
<p><a href="https://chrome.google.com/extensions/detail/caehdcpeofiiigpdhbabniblemipncjj" target="_blank">Get Proxy Switchy</a></p>
<h2>Twitter share this page</h2>
<p><a href="http://www.atebits.com/tweetie-mac/" target="_blank">Tweetie for Mac</a> is great. It helps you keep informed of tweets from those you follow, and you can tweet yourself as well. But when you’re on Chrome reading a web page that you feel you ought to share with the world, it’s simpler to use this extension instead. Otherwise you would need to manually copy and paste the URL and then type your message.</p>
<p>With ‘Twitter share this page’ you just press a twitter icon on the right side of the address bar and voilá! Chrome opens Twitter in another tab with your message ready to be sent, or to be customized first if you wish. It automatically uses the web page title as a message along with the URL already shortened if needed.</p>
<p><a href="https://chrome.google.com/extensions/detail/ppilhaolhbpfembaoedfdbkegfedfgip" target="_blank">Get Twitter share this page</a></p>
<h2>XML Tree</h2>
<p>Ever tried to load a XML document in Chrome? It simply shows the text without all the node tags and structure of the XML. This extension fixes this odd behavior, showing the XML tree structure. It says it allows you to collapse and expand nodes, but that doesn&#8217;t work for me, perhaps because I am using Chrome 6 from the Dev channel.</p>
<div id="attachment_144" class="wp-caption aligncenter" style="width: 310px"><a href="http://gnapse.com/blog/wp-content/uploads/2010/07/chrome-xml-tree.png"><img class="size-medium wp-image-144" title="An XML Document being shown as a structured tree of nodes" src="http://gnapse.com/blog/wp-content/uploads/2010/07/chrome-xml-tree-300x230.png" alt="" width="300" height="230" /></a><p class="wp-caption-text">An XML Document being shown as a structured tree of nodes</p></div>
<p>For a developer like myself this one is a must. I always wondered why this was not a core feature of the browser itself, like it is in Firefox. Even for uneducated users who know nothing about XML, the structured presentation will almost always be more friendly and comprehensible than the default soup of text.</p>
<p><a href="https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb" target="_blank">Get XML Tree</a></p>
<h2>Docs PDF/PowerPoint Viewer</h2>
<p>I have a couple of other extensions from Google itself, but this one is the most useful. Every time you click a PDF, Word or PowerPoint document on the web, it’ll show a preview using Google Docs’ interface, from which you’ll be able to download the document if you wish.</p>
<div id="attachment_147" class="wp-caption aligncenter" style="width: 310px"><a href="http://gnapse.com/blog/wp-content/uploads/2010/07/chrome-pdf-viewer.png"><img class="size-medium wp-image-147" title="An online PDF file being shown in the Google Docs viewer" src="http://gnapse.com/blog/wp-content/uploads/2010/07/chrome-pdf-viewer-300x192.png" alt="" width="300" height="192" /></a><p class="wp-caption-text">An online PDF file being shown in the Google Docs viewer</p></div>
<p>Before this, my downloads folder was always full of lots of documents that I once opened just to take a short look and discard. Now I can have a glimpse of what I clicked on, before I decide if I want to keep it.</p>
<p><a href="https://chrome.google.com/extensions/detail/nnbmlagghjjcbdhgmkedmbmedengocbn" target="_blank">Get Docs PDF/PowerPoint Viewer</a></p>
<h1>Other extensions I use</h1>
<p>Besides this featured five extensions above, there are a few more I use occasionally.</p>
<div id="_mcePaste">
<ul>
<li><a href="https://chrome.google.com/extensions/detail/aeoigbhkilbllfomkmmilbfochhlgdmh" target="_blank">ChromeAccess</a> — Quick access to all (relevant) &#8216;about:&#8217; and &#8216;chrome://&#8217; pages.</li>
<li><a href="https://chrome.google.com/extensions/detail/kkmbodalobogbnejmcdghkfimhodifol" target="_blank">Gmail Notifier</a> — Get a desktop notification when you receive a new email.</li>
<li><a href="https://chrome.google.com/extensions/detail/mgijmajocgfcbeboacabfgobmjgjcoja" target="_blank">Google Dictionary</a> — View definitions easily as you browse the web.</li>
<li><a href="https://chrome.google.com/extensions/detail/galfofdpepkcahkfobimileafiobdplb" target="_blank">Tab Menu</a> — Select, close, rearrange, and search your tabs from a toolbar menu.</li>
<li><a href="https://chrome.google.com/extensions/detail/ckibcdccnfeookdmbahgiakhnjcddpki" target="_blank">Webpage Screenshot</a> — Captures a screenshot of a whole page beyond scroll.</li>
<li><a href="https://chrome.google.com/extensions/detail/aafciojnlamllgpkpdkbamkfgbofhgcj" target="_blank">User-Agent Switcher</a> — Spoofs navigator.userAgent and navigator.vendor strings for specific sites.</li>
<li><a href="https://chrome.google.com/extensions/detail/bbcnbpafconjjigibnhbfmmgdbbkcjfi" target="_blank">Session Manager</a> — Save sessions of your opened tabs and windows, and quickly re-open them whenever you like.</li>
</ul>
</div>
<p>Also, take a look at <a href="http://googleblog.blogspot.com/2010/07/use-chrome-like-pro.html" target="_blank">this list of recommended extensions</a>, from Google itself!</p>
<h1>But not everything is perfect&#8230;</h1>
<p class="p1"><span class="s1">I am yet to find a youtube downloader extension that actually works. I’ve tried a few with no success. Currently I have to resort to Safari 5 which just recently got extensions support and there’s <a href="http://code.google.com/p/safari-extensions/downloads/detail?name=YouTubeDownloader.safariextz&amp;can=2&amp;q=" target="_blank">a pretty good one for this purpose</a>. Besides that, there’s nothing left that I need and haven’t found.</span></p>
<p class="p1"><span class="s1"><strong>Have something to share about this? What extensions do you find useful? Is there some feature you need for which there’s no suitable extension yet?</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2010/07/16/five-chrome-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I don&#8217;t like about Safari</title>
		<link>http://gnapse.com/blog/2010/02/01/what-i-dont-like-about-safari/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=what-i-dont-like-about-safari</link>
		<comments>http://gnapse.com/blog/2010/02/01/what-i-dont-like-about-safari/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 15:49:14 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[gmail offline]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[tabbed browsing]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=113</guid>
		<description><![CDATA[I&#8217;ve tried. I swear that I tried. But I can&#8217;t make Safari my main browser. It&#8217;s the simple things that keep me from liking it. But most of the time simple things can (and do) make the difference. There&#8217;s no way to make it open links by default in new tabs in the background. And [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve tried. I swear that I tried. But I can&#8217;t make Safari my main browser. It&#8217;s the simple things that keep me from liking it. But most of the time simple things can (and do) make the difference.</p>
<p>There&#8217;s no way to make it open links by default in new tabs in the background. And no, I do not want to be doing ⌘-click to achieve this. And I do hate browsers opening new windows unless specifically told. Tabbed browsing was invented long ago and most browsers do it fine (read Opera, Firefox and Chrome). At the very least they give you enough options for you to control how you want it to behave. Safari gives some options, but they&#8217;re not enough. I know this is Apple&#8217;s way of doing things, and most of the time they get it right, but in this case their lack of options and their selection of defaults is not good for me.</p>
<p>And finally, to make things even worse, I cannot see the URL of a link when I hover it. I do not need Safari to have a permanent status bar. It could adopt Google Chrome&#8217;s way to do this, which is to show a small tooltip in the place where the status bar would be, but only for the time I am hovering the link.</p>
<p>Google Chrome would be the right choice, and I do use it a lot, but why on Earth does it lack Gears? How is it that Google supports its plugin on Firefox and Safari but not on their own browser??!! I cannot live without Gmail Offline, so that&#8217;s why I haven&#8217;t been able to dump Firefox completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2010/02/01/what-i-dont-like-about-safari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome for Mac and Linux</title>
		<link>http://gnapse.com/blog/2009/12/09/google-chrome-for-mac-and-linux/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=google-chrome-for-mac-and-linux</link>
		<comments>http://gnapse.com/blog/2009/12/09/google-chrome-for-mac-and-linux/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 23:01:54 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[gmail offline]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=98</guid>
		<description><![CDATA[I received with great joy today the news that Google&#8217;s web browser, Google Chrome, has been officially released for Mac (and Linux), even if it is still tagged as beta. Since its first appearance in the web browsers scene more than a year ago, Google Chrome has been a source of innovation the area, with [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_99" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-99" title="google-chrome-mac" src="http://gnapse.com/blog/wp-content/uploads/2009/12/google-chrome-mac-300x208.png" alt="Google Chrome running on Leopard" width="300" height="208" /><p class="wp-caption-text">Google Chrome running on Leopard</p></div>
<p>I received with great joy today the news that Google&#8217;s web browser, Google Chrome, <a href="http://chrome.blogspot.com/2009/12/google-chrome-for-holidays-mac-linux.html" target="_blank">has been officially released</a> for <a href="http://googlemac.blogspot.com/2009/12/google-chrome-for-mac-goes-beta.html" target="_blank">Mac</a> (and Linux), even if it is still tagged as beta.</p>
<p>Since <a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html" target="_blank">its first appearance in the web browsers scene more than a year ago</a>, Google Chrome has been a source of innovation the area, with isolated processes per tabs, a revolutionary javascript engine, and the great news that its source code would be freely available as open source.</p>
<p>Sure that many were worried by its <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;ved=0CAkQFjAA&amp;url=http%3A%2F%2Fcoderrr.wordpress.com%2F2008%2F09%2F03%2Fgoogle-chrome-privacy-worse-than-you-think%2F&amp;ei=3CEgS-DPAo-QtgepnLSmCg&amp;usg=AFQjCNFvWsMCNXX23C9woQ-ci0_jdzeFjQ&amp;sig2=2z4VoH3SAti21jUbwUcExw" target="_blank">controversial privacy-violation practices</a>, but the openness of its source code will always allow anyone with the know-how to modify it to their own needs, and that of the worried ones (me included to some extent, I&#8217;ll give you that). Indeed there&#8217;s a project called <a href="http://www.srware.net/en/software_srware_iron.php" target="_blank">Iron</a> which offers precisely that: Google Chrome for the privacy fanatics.<span id="more-98"></span></p>
<p>But just as about anything that&#8217;s new, Chrome for the Mac and Linux has several shortcomings compared to its Windows version that most people are accustomed to. <a href="http://theappleblog.com/2009/12/08/chrome-for-mac-beta-available-now/" target="_blank">The Apple Blog notes a few of these issues</a>, at least those that affect Mac users, which are probably the same features not present yet in the Linux version as well. The most striking absence, at least for me, is <a title="Google Gears" href="http://gears.google.com/" target="_blank">Gears</a>, of which I have become extremely dependent since <a href="http://gmailblog.blogspot.com/2009/01/new-in-labs-offline-gmail.html" target="_blank">Gmail offline appeared</a>. This one even comes as a great negative surprise, since Chrome is the only browser that comes with Gears bundled, and being both (Gears and Chrome) from the same provider, I kind of assumed that they were inseparable <img src='http://gnapse.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Not everything is bad news though. Google Chrome for both platforms integrates itself very well, or so they say. At least for the Mac I can confirm it. Google Chrome feels more like a Mac app than <a title="Opera Web Browser" href="http://www.opera.com/" target="_blank">Opera</a> does, which is kind of surprising if you take into account that Opera has been around for the Mac since, well, forever, I guess. And according to <a href="http://chrome.blogspot.com/2009/12/google-chrome-for-holidays-mac-linux.html" target="_blank">the official announcement</a> in Google Chrome&#8217;s blog post about this beta release, Chrome seems to blend just well with a variety of GTK themes.</p>
<p>I really hope that this browser and <a title="Chromium" href="http://www.chromium.org/" target="_blank">the open source project behind it</a> continue to improve. This news today is indeed a big step, and I&#8217;m sure those differences in feature sets will become smaller with time. I also hope that projects similar to <a href="http://www.srware.net/en/software_srware_iron.php" target="_blank">the Iron alternative</a> appear for other platforms too. Its open source nature makes it possible for this to come true.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/12/09/google-chrome-for-mac-and-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMP: One VCS to rule them all</title>
		<link>http://gnapse.com/blog/2009/11/30/amp-one-vcs-to-rule-them-all/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=amp-one-vcs-to-rule-them-all</link>
		<comments>http://gnapse.com/blog/2009/11/30/amp-one-vcs-to-rule-them-all/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 18:59:56 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[distributed vcs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=95</guid>
		<description><![CDATA[If you are a programmer and you already know something about git, mercurial, bazaar or some other modern distributed version control system, you should give AMP a try. And no, it is not a VCS in the most strict sense of the concept, but a meta-tool for VCS ease of use. Currently it works as [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a programmer and you already know something about <a href="http://git-scm.com/" target="_blank">git</a>, <a href="http://mercurial.selenic.com/" target="_blank">mercurial</a>, <a href="http://bazaar-vcs.org/" target="_blank">bazaar</a> or some other modern distributed version control system, you should give <a href="http://amp.carboni.ca/" target="_blank">AMP</a> a try. And no, it is not a <abbr title="Version Control System">VCS</abbr> in the most strict sense of the concept, but a meta-tool for VCS ease of use.</p>
<p>Currently it works as a Ruby interface to Mercurial, but they are aiming high. According to their own definition, &#8220;[their] goal is to produce a piece of software that lets you forget that you&#8217;re working on git project one moment and a Mercurial project the next.&#8221; A sort of meta-interface for most modern distributed VCS&#8217;s out there, so that you can use them all with the same set of commands, or maybe even interact between different VCS&#8217;s. Although I haven&#8217;t had the time yet to truly play with it, It appears to be highly customizable.</p>
<p>BTW, they also mention svn and cvs as VCS&#8217;s they want to support, but I can&#8217;t see why to drain out resources into these dinosaurs. I still don&#8217;t get why people still use centralized-only VCS&#8217;s if they have the choice of distributed version control. But anyway, I wish them good luck with the project overall, and I will sure keep an eye on it for a while.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/11/30/amp-one-vcs-to-rule-them-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Picasa rotate sucks</title>
		<link>http://gnapse.com/blog/2009/10/22/picasa-rotate-sucks/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=picasa-rotate-sucks</link>
		<comments>http://gnapse.com/blog/2009/10/22/picasa-rotate-sucks/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 13:57:17 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[face recognition]]></category>
		<category><![CDATA[iphoto]]></category>
		<category><![CDATA[picasa]]></category>
		<category><![CDATA[picture management]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=86</guid>
		<description><![CDATA[I love Picasa. I really do. But what I recently discovered something that is almost unforgivable. Picasa does not automatically rotate your images in disc, and when you manually save changes (rotates included) it forcefully saves the original picture, consuming valuable disk space. I am bothered with this for a reason. I recently acquired a [...]]]></description>
			<content:encoded><![CDATA[<p>I love Picasa. I really do. But what I recently discovered something that is almost unforgivable. Picasa does not automatically rotate your images in disc, and when you manually save changes (rotates included) it forcefully saves the original picture, consuming valuable disk space.</p>
<p>I am bothered with this for a reason. <a title="My new toy is keeping me busy" href="http://gnapse.com/blog/2009/09/18/my-new-toy/" target="_self">I recently acquired a MacBook</a> and I dumped iPhoto after just a few minutes of using it because it attempted to hide the actual pictures from me via any other application. You&#8217;re stuck with iPhoto when you use it, and <strong>I like to access my pictures directly with my file manager</strong> or even with other applications (Photoshop, Gimp, whatever). Then <a title="iPhoto alternatives" href="http://www.google.com/search?q=iphoto+alternative" target="_blank">I started looking for alternatives</a> and Picasa popped up in no time as a very good one, and free (as in beer). I remember I used it on Windows but never committed fully to it, but now I have been happy with it for while on the Mac, and have invested a considerable amount of time tuning my very dear pictures collection, mostly in terms of organization and fixing rotations, because I prefer to do other editing tasks in more professional programs. In terms of organization it got even better just  few weeks after I started using it, when <a href="http://gnapse.com/blog/2009/09/24/picasa-face-recognition/" target="_self">it introduced facial recognition technology</a>, allowing me to organize and browse my pictures by the people appearing on them, and with a minimal effort. It was all a sweet honey moon.<span id="more-86"></span></p>
<div id="attachment_87" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-87" title="picasa-rotate" src="http://gnapse.com/blog/wp-content/uploads/2009/10/picasa-rotate-300x187.jpg" alt="Pictures rotated in Picasa are still in its original state on disk." width="300" height="187" /><p class="wp-caption-text">Pictures rotated in Picasa are still in its original state on disk.</p></div>
<p>But a couple of days ago I wanted to lighten a dark picture I had recently shot, and fired up Photoshop just to be surprised. I went back to Picasa to check it out, but the picture was correctly oriented there. I looked for the picture in Finder and opened it with Preview, and I even bothered copying it over the network to a PC to open it with Windows Picture Viewer. Even Picasa in the PC got it wrong! Everywhere I tried, the picture was wrongly rotated, as it originally came from my camera. Only Picasa on my Mac got it &#8220;right&#8221;.</p>
<p>After some digging and research, I discovered that this is not a bug but a &#8220;feature&#8221;. Picasa merely stores the rotation info of each image in the <code>.picasa.ini</code> file in the directory where the image resides. This is faster and safer, since the original pictures are never modified, or so they say. And there&#8217;s an option (hidden in the right click menu of a picture that has been rotated or modified in any way within Picasa) to save the changes to disk. But wait! Do not allow you to think for a moment that this could solve the issue. This will save a copy of the original, forcefully, with no way to choose not to do this at my own risk.</p>
<p>I am not an expert of picture editing, but what&#8217;s the risk involved in picture rotating? If there&#8217;s a risk, why Photoshop or Gimp do not alert me about doing this? Why is this the very first software that avoids at all costs to actually let go the original un-rotated image?</p>
<p>A few weeks ago I would have dumped Picasa completely, but face recognition is kind of addictive. I have already invested time in tagging my friends and relatives, and it&#8217;s fun to play slideshows of a certain person, or even slideshows of pictures where two given persons appear. So Picasa stays for now. But I&#8217;ll be doing everything else from Adobe Bridge, even importing from cameras, copying and moving pictures around, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/10/22/picasa-rotate-sucks/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Picasa turns awesome with face recognition technology</title>
		<link>http://gnapse.com/blog/2009/09/24/picasa-face-recognition/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=picasa-face-recognition</link>
		<comments>http://gnapse.com/blog/2009/09/24/picasa-face-recognition/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 16:22:18 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[face recognition]]></category>
		<category><![CDATA[geo-tagging]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[iphoto]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[picasa]]></category>
		<category><![CDATA[picture management]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=79</guid>
		<description><![CDATA[I have always loved Picasa for the way it manages my huge (~14gb) pictures collection, and yesterday it went even better. Picasa 3.5 introduced facial recognition technology, allowing me to easily tag pictures with the people in it. The program automatically scans all my pictures in the background to find faces in them, and allows [...]]]></description>
			<content:encoded><![CDATA[<p>I have always loved <a href="http://picasa.google.com/" target="_blank">Picasa</a> for the way it manages my huge (~14gb) pictures collection, and yesterday <a href="http://googlephotos.blogspot.com/2009/09/announcing-picasa-35-now-with-name-tags.html">it went even better</a>. <a href="http://googleblog.blogspot.com/2009/09/picasa-35-now-with-name-tags-and-more.html" target="_blank">Picasa 3.5 introduced facial recognition technology</a>, allowing me to easily <a href="http://picasa.google.com/features-nametags.html" target="_blank">tag pictures with the people in it</a>. The program automatically scans all my pictures in the background to find faces in them, and allows me to tag the people those faces represent. It even goes beyond that, by actually grouping similar faces automatically so that I do not have to tag each individual face by hand. When the similarity is not so conclusive, Picasa puts face tags to your consideration, and I can confirm or reject these suggestions. This all has a margin of error of course, but by the time I am writing this, it has scanned over 80% of my collection and there have been almost no mistakes, all of which I have been able to correct by hand in no time. Picasa was rapidly able to get to know most of my relatives and friends.<span id="more-79"></span></p>
<p>Having migrated to Mac not so long ago, I am aware that <a title="iPhoto" href="http://www.apple.com/ilife/iphoto/" target="_blank">Apple&#8217;s default picture managing software</a> already had this feature, although I cannot really say how it worked. I did try iPhoto for a few hours on my first days with <a href="http://gnapse.com/blog/2009/09/18/my-new-toy/">my new MacBook</a>, but I immediately hated it for trying to hide my pictures from me. Picasa at least respects my organizational scheme at the file-system level, instead of imposing me one, and I am still able to access my pictures through Finder.</p>
<p>As Picasa recognizes faces, you can add information about this people as you tag them. It can even use (and sync with) your Google Account contacts if you are signed in to Picasa Web Albums. It would be nice though, if it gave you the choice in Mac OS X to use the system&#8217;s address book instead, or alternatively. And as a side note, face recognition is not the only new feature of Picasa 3.5, also including in the package geo-tagging with a Google Maps panel withing Picasa&#8217;s interface, and <a title="What's new in Picasa 3.5" href="http://picasa.google.com/support/bin/answer.py?hl=en&amp;answer=93773" target="_blank">more</a>. For the time being, this new version has only been released for Windows and Mac in its English version. Non-English speaking users, or Linux fans, will have to wait a bit. Not to say that Mac people should be completely happy though, because I am still waiting for Picasa to port the very nice picture viewer that it installs on Windows.</p>
<p>In the mean time, I can enjoy watching a slideshow of pictures with me and my girlfriend in it, or detailing how my niece&#8217;s face has changed over time since she was born just a few years ago. Face recognition rocks. But beware, if you are a fanatic of organization, it can get become addictive!</p>
<p>PS: I wanted to include a screenshot, but I don&#8217;t feel right to publish an image with lots of pictures of faces and names of actual people, without their consent, and painting black areas over names and faces renders the screenshot useless for its original purpose. So I am going on without it. If you want to see it working, <a title="Download Picasa" href="http://picasa.google.com/" target="_blank">download the program</a> and give it a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/09/24/picasa-face-recognition/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Emacs: my first achievements, frustrations and impressions</title>
		<link>http://gnapse.com/blog/2009/07/17/emacs-my-first-achievements-frustrations-and-impressions/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=emacs-my-first-achievements-frustrations-and-impressions</link>
		<comments>http://gnapse.com/blog/2009/07/17/emacs-my-first-achievements-frustrations-and-impressions/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 16:44:23 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web programming]]></category>
		<category><![CDATA[auto-complete]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=50</guid>
		<description><![CDATA[Wow, this was fast! I never thought writing again about Emacs just a day after my first post about it. So far (the short version) I am doing better than I thought for just about a couple of days being serious about this. There are a few things that still bother me a lot though, [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, this was fast! I never thought writing again about Emacs just a day after my first post about it.</p>
<p>So far (the short version) I am doing better than I thought for just about a couple of days being serious about this. There are a few things that still bother me a lot though, aside from the fact that I am not proficient using it yet, of course.</p>
<p><span id="more-50"></span></p>
<h3>My [mostly borrowed] customizations</h3>
<p>I&#8217;ve heavily customized Emacs to suit my needs better than it could do with its awkward defaults. Emacs key shortcuts (or is it key bindings?) are soooo unpleasant, unintuitive, lengthy and annoying that I refuse to use them at all. Happily one of Emacs&#8217; most powerful strengths, its ability to be customized, comes to the rescue. Actually this feature is what makes <a href="http://bettercoding.wordpress.com/2009/07/13/emacs-still-relevant/" target="_blank">Emacs still relevant after 30+ years</a>.</p>
<div id="attachment_52" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-52" title="customized-emacs" src="http://gnapse.com/blog/wp-content/uploads/2009/07/customized-emacs-300x225.png" alt="My Emacs after being customized" width="300" height="225" /><p class="wp-caption-text">My Emacs after being customized</p></div>
<p>Without going too much into details, I based my Emacs customizations mostly on <a href="http://github.com/rmm5t/dotfiles/tree" target="_blank">Ryan McGeary&#8217;s</a>, mostly because his setup is aimed at Ruby on Rails development and Git, which is what I want Emacs for in the first place. Overall, it&#8217;s <a title="Ruby mode for Emacs" href="http://rubyforge.org/projects/ri-emacs/" target="_blank">ri-emacs</a>, <a title="Rails support for Emacs" href="http://rinari.rubyforge.org/" target="_blank">rinari</a>, <a title="rhtml/erb mode for Emacs" href="http://github.com/eschulte/rhtml/tree" target="_blank">rhtml-mode</a>, <a title="Git support for Emacs" href="http://zagadka.vm.bytemark.co.uk/magit/" target="_blank">magit</a>, <a title="A snippets/templates system for Emacs" href="http://code.google.com/p/yasnippet/" target="_blank">yasnippets</a>, and several other non-language-specific customizations (<a title="Interactively Do Things" href="http://www.emacswiki.org/emacs/InteractivelyDoThings" target="_blank">ido</a>, <a title="Recently opened files" href="http://www.emacswiki.org/emacs/RecentFiles" target="_blank">recentf</a>, etc.)</p>
<p>On top of this setup, and after pruning stuff that I don&#8217;t need, at least for the moment (like erlang, markdown, haml, svn, carbon-emacs, etc.) I added support for some other stuff, namely <a title="RSpec support for Emacs" href="http://github.com/pezra/rspec-mode/tree">rspec</a>,  <a href="http://www.emacswiki.org/emacs/CuaMode" target="_blank">cua-mode</a> (see <a title="IBM's guidelines for user interface standards across platforms" href="http://en.wikipedia.org/wiki/IBM_Common_User_Access" target="_blank">Common User Access</a>), and other minor goodies from other sources.</p>
<p>Aside from McGeary&#8217;s setup as a base, I have to give credit to snippets of code I borrowed from elsewhere to further customize my environment. I should particularly mention <a href="http://devcraft.wordpress.com/2008/07/19/using-emacs-for-rails-development-the-perfect-setup/" target="_blank">Devcraft&#8217;s advises to customize Emacs for Rails development</a>, Dahoiv&#8217;s<a href="http://dahoiv.net/.emacs" target="_blank"> .emacs</a> file, the <a href="http://www.emacsblog.org/" target="_blank">Emacs blog</a> (where Ryan McGeary also writes) and the <a href="http://emacs-fu.blogspot.com/" target="_blank">emacs-flu blog</a>.</p>
<h3>Pros and Cons</h3>
<p><strong>On the good side</strong>, I have played for a while with the ruby on rails mode and it is good. The yasnippet extensions take a lot of credit on this, but overall it tastes very good on its own. I have yet to deal enough with the magit extension to fully evaluate my environment. I cannot afford buying a Mac+TextMate for Ruby development, and Emacs can hopefully come to the rescue for my productivity and joy while coding.</p>
<p>Also, having been able to get rid of most of the many painful key bindings in such a short time was amazing. I wonder why Emacs does not update its defaults to comply with the <a title="Common User Access" href="http://en.wikipedia.org/wiki/IBM_Common_User_Access" target="_blank">CUA standards</a>. The cua-mode is not enough.</p>
<p><strong>On the bad side</strong> (taking aside my own inexperience and lack of abilities) not everything is doing fine. Many of my key-bindings customizations break on &#8220;weird&#8221; modes, like C-w for closing the current buffer, which is not working when the current buffer is in <a title="Emacs mode to navigate and manipulate the file system" href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html" target="_blank">dired mode</a>.</p>
<p>Also, I feel disappointed with the embedded shell (<code>M-x eshell</code>). I actually expected a bash session inside an Emacs window, but aliases and tab-completion are not working as they should, which makes me suspect it is not bash but an Emacs shell program (surprise!!!). As it is right now, I prefer to <code>Alt-Tab</code> to my terminal emulator with a real bash session in it. Something similar happens with the Rails console (available via <code>C-c ; c</code>), which I really didn&#8217;t test a lot after I realized that pressing the up and down arrow keys didn&#8217;t navigate through my history of previous commands <img src='http://gnapse.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> .</p>
<h3>So, what is it then?</h3>
<p>In spite of all this, I still believe I can give Emacs a chance. Most shortcomings I&#8217;ve faced are not directly related to its function as a coding environment, but to tasks around coding, like going to the console to type rails-related commands, manipulating the file system, etc. I was doing these stuff outside my previous code editors anyway so I guess this can stay as is for some time.</p>
<p>Hopefully I&#8217;ll be able to fix some of this issues over time and always use more and more features of this wonderful editor. I could even live without using git from within it, but I have yet to test that. Meanwhile, I&#8217;ll take some time to get better at coding with what is currently working for me. It seems to me that <strong>Emacs will stay for a while on my desktop</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/07/17/emacs-my-first-achievements-frustrations-and-impressions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Taming Emacs</title>
		<link>http://gnapse.com/blog/2009/07/16/taming-emacs/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=taming-emacs</link>
		<comments>http://gnapse.com/blog/2009/07/16/taming-emacs/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 18:31:38 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=44</guid>
		<description><![CDATA[I have always heard and read a lot about that piece of software called Emacs. You know what they say: you either love it or hate it (or else you pass by without knowing about it, in which case you probably don&#8217;t want to keep reading). Maybe it&#8217;s time to seriously consider it, because it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_46" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-46" title="emacs_icon_small" src="http://gnapse.com/blog/wp-content/uploads/2009/07/emacs_icon_small-150x150.png" alt="Emacs icon" width="150" height="150" /><p class="wp-caption-text">Emacs icon</p></div>
<p>I have always heard and read a lot about that piece of software called <a href="http://www.gnu.org/software/emacs/" target="_blank">Emacs</a>. You know what they say: you either love it or hate it (or else you pass by without knowing about it, in which case you probably don&#8217;t want to keep reading).</p>
<p>Maybe it&#8217;s time to seriously consider it, because it&#8217;s intriguing how its fans always say it is the climax of productivity in computer programming and several other tasks, although it may be really hard to grasp in the first place. I have been warned, and I am determined not to be easily scared off of it, no matter how daunting this task may be.</p>
<p>And as I like to use my blog as a back reference for things I achieve or come to learn after a great deal of work and research, it might be reasonable to expect me to blog about my progress or my rage while trying to tame this wonderful and powerful beast.</p>
<p>I have found great websites so far to start banging my head, namely the <a href="http://www.emacswiki.org/" target="_blank">Emacs wiki</a>, the <a href="http://www.emacsblog.org/" target="_blank">Emacs blog</a> and Google <img src='http://gnapse.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  That is, of course, besides <a href="http://www.gnu.org/software/emacs/" target="_blank">Emacs&#8217; own website</a>, which serves as a starting point for a lot of information.</p>
<p>So far I have managed to customize it a bit much to my liking, but mostly out of copying and pasting (or is it yanking?) snippets of code from the web into my <code>.emacs</code> file. It&#8217;s going to be a long journey until I start typing my own elisp code. I am not even scratching the surface yet, I&#8217;m barely staring at it.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/07/16/taming-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The last question</title>
		<link>http://gnapse.com/blog/2009/07/03/the-last-question/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-last-question</link>
		<comments>http://gnapse.com/blog/2009/07/03/the-last-question/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 21:26:26 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[wolfram alpha]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=38</guid>
		<description><![CDATA[Wolfram Research has released a few weeks ago what could be the first instance of a computational knowledge engine, Wolfram Alpha. By a computational knowledge engine I mean a computing system in which we provide questions in natural language and receive meaningful and correct answers derived from internal knowledge and immense data-banks. According to the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_39" class="wp-caption alignright" style="width: 310px"><a><img class="size-medium wp-image-39" title="wolfram-alpha" src="http://gnapse.com/blog/wp-content/uploads/2009/07/wolfram-alpha-300x201.png" alt="Wolfram Alpha homepage" width="300" height="201" /></a><p class="wp-caption-text">Wolfram Alpha homepage</p></div>
<p><a href="http://www.wolfram.com/" target="_blank">Wolfram Research</a> has released a few weeks ago what could be the first instance of a computational knowledge engine, <a href="http://www.wolframalpha.com/" target="_blank">Wolfram Alpha</a>. By a computational knowledge engine I mean a computing system in which we provide questions in natural language and receive meaningful and correct answers derived from internal knowledge and immense data-banks.</p>
<p>According to the project&#8217;s <a href="http://www.wolframalpha.com/about.html" target="_blank">about page</a></p>
<blockquote><p>Wolfram|Alpha&#8217;s long-term goal is to make all systematic knowledge immediately computable and accessible to everyone. We aim to collect and curate all objective data; implement every known model, method, and algorithm; and make it possible to compute whatever can be computed about anything. Our goal is to build on the achievements of science and other systematizations of knowledge to provide a single source that can be relied on by everyone for <strong>definitive answers to factual queries</strong>.</p></blockquote>
<p>As you can see, this is a work in progress. The system still has shortcomings, but it can already interpret and answer correctly <a href="http://www.wolframalpha.com/gallery.html" target="_blank">many questions</a> from <a href="http://www.wolframalpha.com/examples/" target="_blank">a very diverse range of topics</a>, that are not only limited to exact sciences.<span id="more-38"></span></p>
<p>Here are some examples of funny or insightful questions that amused me for a while&#8230;</p>
<ul>
<li><a href="http://www.wolframalpha.com/input/?i=what+is+wolfram+alpha%3F" target="_blank">What is Wolfram Alpha?</a>, <a href="http://www.wolframalpha.com/input/?i=what+is+your+name%3F" target="_blank">What is your name?</a> or <a href="http://www.wolframalpha.com/input/?i=who+are+you%3F" target="_blank">Who are you?</a></li>
<li><a href="http://www.wolframalpha.com/input/?i=where+are+you%3F" target="_blank">Where are you?</a> and <a href="http://www.wolframalpha.com/input/?i=where+am+i%3F" target="_blank">Where am I?</a></li>
<li><a href="http://www.wolframalpha.com/input/?i=what+is+my+name%3F" target="_blank">What is my name?</a> and <a href="http://www.wolframalpha.com/input/?i=my+name+is+Ernesto" target="_blank">My name is Ernesto</a></li>
<li><a href="http://www.wolframalpha.com/input/?i=what%27s+the+second+largest+country+in+the+world%3F" target="_blank">What&#8217;s the second largest country in the world?</a></li>
<li><a href="http://www.wolframalpha.com/input/?i=milk+and+apple+juice" target="_blank">Milk and apple juice</a> or <a href="http://www.wolframalpha.com/input/?i=milk+vs+apple+juice" target="_blank">Milk vs apple juice</a></li>
</ul>
<p>And before I finish, just as a curiosity, I asked Wolfram Alpha <a href="http://en.wikipedia.org/wiki/The_Last_Question" target="_blank">the last question</a> a few minutes ago&#8230;</p>
<blockquote><p><a title="The last question" href="http://www.wolframalpha.com/input/?i=How+can+the+net+amount+of+entropy+of+the+universe+be+massively+decreased%3F" target="_blank">How can the net amount of entropy of the universe be massively decreased?</a></p></blockquote>
<p>Unfortunately, there&#8217;s still insufficient data for a meaningful answer. The people behind this project have still a lot of work to do.</p>
<p>Kudos for all your great work and for this fine product!</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/07/03/the-last-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bookmarks&#8217; last frontier</title>
		<link>http://gnapse.com/blog/2009/06/18/bookmarks-last-frontier/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bookmarks-last-frontier</link>
		<comments>http://gnapse.com/blog/2009/06/18/bookmarks-last-frontier/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 19:52:57 +0000</pubDate>
		<dc:creator>ernesto</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[auto-complete]]></category>
		<category><![CDATA[bookmarks]]></category>
		<category><![CDATA[command line]]></category>

		<guid isPermaLink="false">http://gnapse.com/blog/?p=18</guid>
		<description><![CDATA[Bookmarks are ubiquitous these days. You can find them in your browser, code editor, desktop manager, web applications, the internet, anywhere. But there&#8217;s a place where bookmarks haven&#8217;t arrived yet: the command line. Or so I though&#8230; until recently. It turns out that to be sure, I searched for command-line bookmarks on google and after [...]]]></description>
			<content:encoded><![CDATA[<p>Bookmarks are ubiquitous these days. You can find them in your browser, code editor, desktop manager, web applications, <a title="Delicious" href="http://delicious.com/" target="_blank">the internet</a>, anywhere. But there&#8217;s a place where bookmarks haven&#8217;t arrived yet: the command line.</p>
<p>Or so I though&#8230; until recently. It turns out that to be sure, I searched for <a href="http://www.google.com/search?q=command-line+bookmarks" target="_blank">command-line bookmarks</a> on google and after a while digging for it, I managed to find <strong>three</strong> different projects that aim at providing this feature to <a title="Bourne Again SHell" href="http://www.gnu.org/software/bash/" target="_blank">my favorite shell</a>.</p>
<p>I downloaded and installed all these packages and I am sharing my thoughts about them here.<span id="more-18"></span></p>
<div id="attachment_25" class="wp-caption alignright" style="width: 310px"><a href="http://code.google.com/p/go-tool/"><img class="size-medium wp-image-25" title="go-tool" src="http://gnapse.com/blog/wp-content/uploads/2009/06/go-tool-300x216.png" alt="go-tool project to provide bookmarks for the command line" width="300" height="216" /></a><p class="wp-caption-text">go-tool</p></div>
<h3>go-tool</h3>
<p>This was the first one I found and the one I have used the most. The project is hosted at <a href="http://code.google.com/p/go-tool/" target="_blank">http://code.google.com/p/go-tool/</a> and it is developed in Python.</p>
<p>It has a command-line automated setup process that installs the python module system-wide, and there&#8217;s also a command to automatically setup shell integration.</p>
<p>Shell integration is achieved by registering some bash functions that do the actual directory change (this is needed because spawned processes do not change the working directory of the parent process, so a python script cannot actually change the working directory of the shell session that started the script). As you can imagine, this feature is common to all the three projects.</p>
<p>Directories are aliased to a short keyword that you can later use to change your current directory. You can add a bookmark for the current directory, or for any other directory, you can delete bookmarks, etc. The details are better covered in <a href="http://code.google.com/p/go-tool/" target="_blank">the project&#8217;s homepage</a>.</p>
<p>The main downside of this solution is that once you start using it, you start missing bash completion with the TAB key. Although I guess it shouldn&#8217;t be difficult to implement it ourselves. The program stores its bookmarks in <code>~/.go/bookmarks</code>. The main advantage is that it is multi-platform, supporting Unix-like environments (including Apple&#8217;s Mac) and Windows.</p>
<div id="attachment_26" class="wp-caption alignright" style="width: 310px"><a href="http://code.google.com/p/cdbm/"><img class="size-medium wp-image-26" title="cdbm" src="http://gnapse.com/blog/wp-content/uploads/2009/06/cdbm-300x216.png" alt="CDBM project to provide bookmarks for the command line" width="300" height="216" /></a><p class="wp-caption-text">CDBM</p></div>
<h3>cdbm</h3>
<p>The name is an acronym for &#8216;cd bookmarks&#8217; and the project is hosted at google code too (<a href="http://code.google.com/p/cdbm/" target="_blank">http://code.google.com/p/cdbm/</a>) although I found more information about it from its author&#8217;s <a href="http://www.onderstekop.nl/articles/124/" target="_blank">blog</a>. It is programmed in c.</p>
<p>This is the most simple of the three projects I found. It is simple to install and simple to use, but it is also the simplest in terms of features and possibilities, although unlike the previous one, it features auto-completion.</p>
<p>Shell integration is achieved in a similar way, through bash functions that have to be programmed into our <code>~/.bashrc</code> file.</p>
<p>Its main disadvantage is that is oriented to bookmarks indexed by numbers instead of aliases or keywords. In a more recent version the author added keyword support on top of the previous design, without removing the numeric index. However, keywords support still doesn&#8217;t feel natural.</p>
<div id="attachment_27" class="wp-caption alignright" style="width: 310px"><a href="http://www.micans.org/apparix/"><img class="size-medium wp-image-27" title="apparix" src="http://gnapse.com/blog/wp-content/uploads/2009/06/apparix-300x216.png" alt="Apparix project providing bookmarks for the command line" width="300" height="216" /></a><p class="wp-caption-text">Apparix</p></div>
<h3>apparix</h3>
<p>This was the last project I found and it is the most complete in terms of features. It is hosted at <a href="http://www.micans.org/apparix/" target="_blank">http://www.micans.org/apparix/</a> and implemented in c as well.</p>
<p>It features shell integration, bash auto-completion support, and it extends bookmarks to more than just a simple super-cd utility. For instance, bookmarked directories&#8217; contents can be listed remotely, without actually changing the current directory.</p>
<p>Shell integration si great, but its configuration could be more automated into the setup process, like the go-tool project does. But the bundled auto-completion is great. You can even auto-complete further into the subdirectories of the bookmark you are using in the command.</p>
<p>Take a look at the following sequence of commands:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ernesto<span style="color: #000000; font-weight: bold;">@</span>ubuntu:~$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache<span style="color: #000000; font-weight: bold;">/</span>
ernesto<span style="color: #000000; font-weight: bold;">@</span>ubuntu:<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache$ bm
added: cache - <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache
ernesto<span style="color: #000000; font-weight: bold;">@</span>ubuntu:<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache$ apparix
<span style="color: #660033;">---</span> portals
<span style="color: #660033;">---</span> expansions
<span style="color: #660033;">---</span> bookmarks
j cache        <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache
ernesto<span style="color: #000000; font-weight: bold;">@</span>ubuntu:<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache$ <span style="color: #7a0874; font-weight: bold;">cd</span>
ernesto<span style="color: #000000; font-weight: bold;">@</span>ubuntu:~$ to cache apt<span style="color: #000000; font-weight: bold;">/</span>archives<span style="color: #000000; font-weight: bold;">/</span>partial
ernesto<span style="color: #000000; font-weight: bold;">@</span>ubuntu:<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>cache<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>archives<span style="color: #000000; font-weight: bold;">/</span>partial$</pre></div></div>

<p>We change into the <code>/var/cache</code> directory, and then we register a bookmark for it with the <code>'bm'</code> command. The <code>'apparix'</code> command then lists the available bookmarks, where you can see our recent addition. Then we go back to our home directory, and use the <code>'to'</code> command to change into a subdirectory of the directory represented by the bookmark, instead of just changing into the bookmarked directory only.</p>
<h3>And the winner is&#8230;</h3>
<p>Clearly apparix is the most complete of the three alternatives I found, although I have been using the go-tool for some time already, and I was getting used to it. However, I always missed auto-completion for the go-tool, never decided to implement it my self, and now that I have found apparix with it, I guess I&#8217;ll make the switch.</p>
<p>You go and play with them and make your own choice. The command line will never be the same after you start using this.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnapse.com/blog/2009/06/18/bookmarks-last-frontier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
