<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feedproxy.google.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feedproxy.google.com/~d/styles/itemcontent.css"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>iface thoughts</title>
	
	<link>http://ifacethoughts.net</link>
	<description>Thoughts on software development and related, by Abhijit Nadgouda</description>
	<pubDate>Fri, 21 Nov 2008 13:10:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<geo:lat>18.55</geo:lat><geo:long>72.54</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feedproxy.google.com/Ifacethoughts/entries" type="application/rss+xml" /><feedburner:emailServiceId>Ifacethoughts/entries</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Control Search Results With SearchWiki</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/E_GSdzrVvCk/</link>
		<comments>http://ifacethoughts.net/2008/11/21/control-search-results-with-searchwiki/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 13:10:09 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[asides]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[searchwiki]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1866</guid>
		<description><![CDATA[Google has finally allowed you to modify the search results - SearchWiki. Of course the modifications will be only for you, otherwise rest of the Google would not make sense. But you can now improve the search results by reordering/deleting/adding individual entries. It was an amazing experience when I had discovered Swicki quite a while [...]]]></description>
			<content:encoded><![CDATA[<p>Google has finally allowed you to <a tltle="From Google Blog" href="http://googleblog.blogspot.com/2008/11/searchwiki-make-search-your-own.html">modify the search results</a> - SearchWiki. Of course the modifications will be only for you, otherwise rest of the Google would not make sense. But you can now improve the search results by reordering/deleting/adding individual entries. It was an amazing experience when I had discovered <a href="http://www.eurekster.com/">Swicki</a> quite a while back, I wonder why Google was so late. I have not been able to test-drive SearchWiki yet, but I wonder if it might also lead to confusions.</p>
<p>People will have to be aware whether they are logged into Google or not. Many of us do use one of the Google services, so we are logged in, but we are not aware when we use its search. It made no difference till now. So, if you do end up modifying the results, make you sure you are logged for your future sessions. Also, would this affect Google Custom Search as well?</p>
<p>You also have to be more careful when you send links for search queries around. One of your receivers might end up seeing his/her modified results instead of what you wanted to show. </p>
<p>Having said this I feel that this is a positive development. It will be interesting to see if this additional power to the user gets abused, and very interesting to see if it will clash Google itself.</p>

<p><a href="http://feedads.googleadservices.com/~a/cD6rlp2oLXGYX-Dvl6acSwc1KAw/a"><img src="http://feedads.googleadservices.com/~a/cD6rlp2oLXGYX-Dvl6acSwc1KAw/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=yx2ksAk2"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=ZdgsCcgB"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=PyF9d2OC"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=PyF9d2OC" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=ILdWEo8K"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=ILdWEo8K" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=IiqUfI0f"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/E_GSdzrVvCk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/21/control-search-results-with-searchwiki/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/21/control-search-results-with-searchwiki/</feedburner:origLink></item>
		<item>
		<title>Is Typing A Necessity For Programming?</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/T7WYYH2On1Y/</link>
		<comments>http://ifacethoughts.net/2008/11/19/is-typing-a-necessity-for-programming/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 04:06:02 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[touch-typing]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1863</guid>
		<description><![CDATA[Jeff Atwood stresses on the importance of typing for programming. Though I whole heartedly agree for myself, this issue can be as personal as religion.
I was pretty much a two-finger typist when I started my professional programming career. Productivity through typing was a non-issue. However, it did become a pain when I had to work [...]]]></description>
			<content:encoded><![CDATA[<p>Jeff Atwood stresses on the <a href="http://www.codinghorror.com/blog/archives/001188.html">importance of typing for programming</a>. Though I whole heartedly agree for myself, this issue can be as personal as religion.</p>
<p>I was pretty much a two-finger typist when I started my professional programming career. Productivity through typing was a non-issue. However, it did become a pain when I had to work on a Unisys A Series machine programming in Algol. What was the difference? Not the platform or the language, it was the tools. The IDEs provide features like intellisense that compensate for lack of typing skills. Or so I thought!</p>
<p>After learning touch typing, I realized that smooth typing only helped me program smoother. I have also started to remember more, and rely lesser and lesser on intellisense. I was faster with touch typing than with tools which helped me type. I now like my good old <a href="http://www.vim.org/">vim</a>, as a clutter-free and fast environment on multiple platforms, to program. As Jeff says, I now spend lesser time in expressing my thoughts into code.</p>
<p>However, I have met those who use their IDEs and such tools so efficiently that typing is not necessary for them. I do not know if they will be more productive with touch typing. Afterall it is not that helpful when you type two alphabets, wait for a second and then use tab to type the word. And then again, typing a programming language is a lot different than typing a natural language, which is where the touch typing is geared at. And you guessed right, unlike Jeff or me, they do not think there is much common in programming and writing.</p>
<p>Though I think touch typing helps me program better, I cannot say the same for you. It will depend on your personal inclination as a programmer. The point is about speed and productivity.</p>

<p><a href="http://feedads.googleadservices.com/~a/ameZuzPO7MWg11FJEvJqgppSOQ4/a"><img src="http://feedads.googleadservices.com/~a/ameZuzPO7MWg11FJEvJqgppSOQ4/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=obEIYR8O"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=PkGDL2sH"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=kLALYs3j"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=kLALYs3j" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=3b433Jy9"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=3b433Jy9" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=T0YYUVY1"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/T7WYYH2On1Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/19/is-typing-a-necessity-for-programming/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/19/is-typing-a-necessity-for-programming/</feedburner:origLink></item>
		<item>
		<title>We Need Firefox Inside!</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/jtEb9K9DwBg/</link>
		<comments>http://ifacethoughts.net/2008/11/17/we-need-firefox-inside/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 04:09:12 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[open source]]></category>

		<category><![CDATA[rant]]></category>

		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1860</guid>
		<description><![CDATA[

How do I convince these sites that I do use Firefox? It gets called something else because of some stupid reasons, but it is really Firefox and nothing else. Every time I visit hotmail or orkut or some site which thinks that it is doing something so special that it needs to warn users about [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Upgrade browser message from Hotmail" src="http://ifacethoughts.net/wp-content/uploads/2008/11/hotmail-upgrade-browser.png" /><br />
<img alt="Upgrade browser message from Hotmail" src="http://ifacethoughts.net/wp-content/uploads/2008/11/orkut-upgrade-browser.png" /></p>
<p>How do I convince these sites that I do use Firefox? It gets called something else because of some stupid reasons, but it is really Firefox and nothing else. Every time I visit hotmail or orkut or some site which thinks that it is doing something so special that it needs to warn users about their browsers, these messages that make a mockery of my setup.</p>
<p>I can blame Mozilla for enforcing the trademark issues, or the Linux distribution I use to not comply with Mozilla&#8217;s trademark issues, or these sites for ignoring this issue altogether and pestering the user. Whoever gets blamed, the big loss here is for open source. I know the <a href="http://wiki.archlinux.org/index.php/Firefox">reasons</a>, and I know the <a href="http://wiki.archlinux.org/index.php/Firefox#Enable_Firefox_Branding">hacks</a>, but the average Joe doesn&#8217;t. Not only do messages like these confuse the user, they also pose open source as another legal hell, as worse as the proprietary world.</p>
<p>I am the wrong person to interpret the legal language and understand reasons behind it, but I know for sure that if we want to promote open source to the common man issues like these should be avoided. At least recompilation of the source code should not inflect such penalties on the user. One of the solutions I can think of is to consider Firefox as a family of these browsers. User-agent is used to not only identify the browser but to also make assumptions about its capabilities. So use a common user-agent string, which need not be Firefox, across these browsers and use the official and unofficial branding everywhere else. We need Firefox Inside!</p>
<p>But I am sure better solutions can be found and users can be relieved of this pain. Else, more such forks from more such open source applications will only drive the common man away from open source.</p>

<p><a href="http://feedads.googleadservices.com/~a/u3jxusYo3IsVm9gjHIyVBykGCDA/a"><img src="http://feedads.googleadservices.com/~a/u3jxusYo3IsVm9gjHIyVBykGCDA/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=9O7xqAy4"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=GK0oFLEi"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=C7SZytqO"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=C7SZytqO" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=MbJmqivF"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=MbJmqivF" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=eHpCr6RV"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/jtEb9K9DwBg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/17/we-need-firefox-inside/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/17/we-need-firefox-inside/</feedburner:origLink></item>
		<item>
		<title>Faster Horses And Open Source</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/1Xt2vpa94-E/</link>
		<comments>http://ifacethoughts.net/2008/11/15/faster-horses-and-open-source/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 14:36:02 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[asides]]></category>

		<category><![CDATA[entrepreneurship]]></category>

		<category><![CDATA[for executives]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1856</guid>
		<description><![CDATA[Software sees a very high frequency of newer versions everyday, more so in the open source world. I have heard claims that this is just a way of the software developers/owners to continuously engage the user. However, reading faster horses (a must-read piece by JP) made me think that this is just the after-effect of [...]]]></description>
			<content:encoded><![CDATA[<p>Software sees a very high frequency of newer versions everyday, more so in the open source world. I have heard claims that this is just a way of the software developers/owners to continuously engage the user. However, reading <a href="http://confusedofcalcutta.com/2008/11/11/faster-horses-in-the-age-of-co-creation/">faster horses</a> (a must-read piece by JP) made me think that this is just the after-effect of engaging the user. Users get a lot of more say in software than in other tools. There might be other reasons, but the users&#8217; direct participation has definitely accelerated the evolution of software products. Not surprisingly, we have seen it happen first in the open source world. If we want more of faster horses in coming times, then we will perhaps see open source in other industries as well, not just software development.</p>

<p><a href="http://feedads.googleadservices.com/~a/pBFIcMU1pC7pa3gyWLY9xdHp3WI/a"><img src="http://feedads.googleadservices.com/~a/pBFIcMU1pC7pa3gyWLY9xdHp3WI/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=fOa16beN"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=1E6TloWy"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=qiAafoWR"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=qiAafoWR" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=sWEXydIT"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=sWEXydIT" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=H5zHEBfD"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/1Xt2vpa94-E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/15/faster-horses-and-open-source/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/15/faster-horses-and-open-source/</feedburner:origLink></item>
		<item>
		<title>On Failures Of Agile Projects</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/ecl3g3Z9-4c/</link>
		<comments>http://ifacethoughts.net/2008/11/13/on-failures-of-agile-projects/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 09:47:44 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[for executives]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1854</guid>
		<description><![CDATA[The proponents of the agile methodologies wanted to change the way software development was done. I think that changes have happened, but unfortunately most of them are superficial ones, leading to failures and more notoreity for the underlying philosophy. Scott Nelson explains how some aspects of agile methodologies can be wrongly used.
However, whatever I have [...]]]></description>
			<content:encoded><![CDATA[<p>The proponents of the agile methodologies wanted to change the way software development was done. I think that changes have happened, but unfortunately most of them are superficial ones, leading to failures and more notoreity for the underlying philosophy. Scott Nelson explains how some <a href="http://www.developer.com/mgmt/article.php/3784576">aspects of agile methodologies can be wrongly used</a>.</p>
<p>However, whatever I have seen yet, I think the most popular mistake, and the least realized one, is that a lot of teams are not skilled enough to execute agile projects. The <a href="http://agilemanifesto.org/principles.html">principles of agile development</a> call for a skillset, and most of which is not about programming. The team should be able to:</p>
<ul>
<li>continuously converse with and update the client during development</li>
<li>consider and scope out changes as the business needs change</li>
<li>plan out an iteration so that we are always staring at a working piece of software at its end</li>
<li>prioritize the requirements and identify their dependencies so that they know where to start</li>
<li>use tools like version control system, and information sharing and collaboration tools</li>
<li>trust the team members, as the agility of development is extracted by eliminating a lot of overhead</li>
<li>self-organizing team members, as the agile methodologies do not talk about task management</li>
<li>adapt to change, whether it is in requirements or environments</li>
<li>quickly and efficiently communicate with each other</li>
</ul>
<p>Unfortunately these qualities are not looked at when the team is picked. Even if the team fairs well on a technical scale, the agile methodlogy will fail if the above attributes are missing. Not to say that programming skillset is trivial, but usually the non-programming skillset gets overlooked and the root cause for failures.</p>

<p><a href="http://feedads.googleadservices.com/~a/ooFR2eQYkxoYMeovFDnNuZ0faRw/a"><img src="http://feedads.googleadservices.com/~a/ooFR2eQYkxoYMeovFDnNuZ0faRw/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=NW9R5soW"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=P2Lwyi8p"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=owZ2Pf3T"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=owZ2Pf3T" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=1RlS1us7"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=1RlS1us7" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=sb9JkAwQ"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/ecl3g3Z9-4c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/13/on-failures-of-agile-projects/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/13/on-failures-of-agile-projects/</feedburner:origLink></item>
		<item>
		<title>Bash Editing In vi Mode</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/2z1eOWq06pc/</link>
		<comments>http://ifacethoughts.net/2008/11/08/bash-editing-in-vi-mode/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 19:55:16 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[tools]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1851</guid>
		<description><![CDATA[I was discussing about how some applications have adopted some of the vi key bindings. Like Google Reader, some tiling window managers like xmonad, and even bash has excellent support for editing in vi mode. Surprisingly not many know about this. Hence this post.
Bash supports two editing modes, vi and emacs (which is the default) [...]]]></description>
			<content:encoded><![CDATA[<p>I was discussing about how some applications have adopted some of the vi key bindings. Like <a href="http://reader.google.com/">Google Reader</a>, some tiling window managers like <a title="Tiling window manager in Haskell" href="http://xmonad.org">xmonad</a>, and even bash has excellent support for editing in vi mode. Surprisingly not many know about this. Hence this post.</p>
<p>Bash supports two editing modes, <a href="http://www.hypexr.org/bash_tutorial.php#vi">vi</a> and <a href="http://www.hypexr.org/bash_tutorial.php#emacs">emacs</a> (which is the default) equally well. So you have to do something more to use the vi editing mode, and that something more is put the following in your <code>.bashrc</code> file.</p>
<pre>
set -o vi
</pre>
<p>However, unlike vi, it is by default in the insert mode. However, do not get discouraged, you can use the <code>Esc</code> key to go in the command mode and use the vi key bindings for moving around. It is god-sent when I work with long commands. Additionally, the commands <code>j</code> and <code>k</code> will let you move through the command history. And, here comes the best part, you can use the command <code>v</code> to launch the editor and edit the command in there. I have this habit of concatenating commands in one single line, and before I know it gets unmanageable on the command line. Nothing like being able to seamlessly edit with my favourite editor.</p>
<p>There is a nice <a href="http://www.catonmat.net/blog/bash-vi-editing-mode-cheat-sheet/">cheat sheet</a> available if you are interested in using this. If you are a vi or vim user, this can ease your life a lot.</p>

<p><a href="http://feedads.googleadservices.com/~a/yvoE3sDFvo4ukh-6fiyeFB7eejk/a"><img src="http://feedads.googleadservices.com/~a/yvoE3sDFvo4ukh-6fiyeFB7eejk/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=UULZHH5O"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=4cKOQ2bo"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=htymW3iK"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=htymW3iK" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=tvRydAbf"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=tvRydAbf" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=lih6Li4w"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/2z1eOWq06pc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/08/bash-editing-in-vi-mode/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/08/bash-editing-in-vi-mode/</feedburner:origLink></item>
		<item>
		<title>On Misusing ORMs</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/9x-k1kHB7B4/</link>
		<comments>http://ifacethoughts.net/2008/11/06/on-misusing-orms/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 04:32:06 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[orm]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1849</guid>
		<description><![CDATA[Object-Relational Mapping tools are the must-have features of rapid application development today. They provide an interface to the programmer to write the DB schema and query it using a programming language that he/she knows. They are the adapters in between the programming style and the declarative style of SQL. I am sure they are helpful [...]]]></description>
			<content:encoded><![CDATA[<p>Object-Relational Mapping tools are the must-have features of rapid application development today. They provide an interface to the programmer to write the DB schema and query it using a programming language that he/she knows. They are the adapters in between the programming style and the declarative style of SQL. I am sure they are helpful in the beginning, because you can be quick with them. But does it hold true when your software gets some years old? Is the ORM still helpful?</p>
<p>ORM do have their benefits, but they bring in possible problems as well that we need to be aware of.</p>
<ul>
<li>One of the trends I have noticed is that because ORM tools can generate SQL, the team does not include one. Designing the SQL schema and its queries is as important as programming for any application. In some cases it might be more significant. However, this activity gets completely omitted and SQL schema is designed solely on the basis of object model design. The DB schema does not get an independent look. Some years later, when the DB gets highlighted as a bottleneck, the same project managers start a frantic search for a DB <em>consultant</em>.</li>
<li>ORM, that is supposed to remove the impedance mismatch between the object and relational world, and that cannot be simple to understand. However, ease is considered to be a feature, and we, the programmers, do not give enough time to understand them. This leads to a patchy approach towards using them, and hence the DB schema and queries. Often, refactoring the code to use the ORM in right way leads to changes in schema and queries, which again requires skills of a DB expert.</li>
<li>ORMs nowadays allow us to execute raw SQL statements as well. It is to be used whenever the ORM API falls insufficient for the our data manipulation. However, this has become an escape route for many. Instead of trying to learn the ORM API, they bypass the ORM altogether by using these everywhere. This also leads to an abuse of other patterns like <abbr title="Model View Controller">MVC</abbr>. You see raw SQL statements being executed in the controllers, reducing models to dumb classes with just getters and setters.</li>
<li>Though ORMs are evolving, one table per class or one class per table syndrome is still popular. In relational model, one-to-many or many-to-many relationships between two entities typically involves three tables. One for each entity, and one more which represents the relationship. Unfortunately, many ORMs treat this relationship as an entity causing confusion. The confusion increases when one wants to have a many relationship with self. In such cases ORMs highlight the impedance mismatch instead of minimizing it.</li>
<li>I feel that any programmer who is dealing with an ORM has to understand the relational model being developed. I do not think ORMs are there to shield the programmer from DBs, they are there to help you extend your object modelling in to the relational domain. Though SQL syntax is not a must to work, understanding the underlying concepts of transactions and referential integrity cannot be skipped. Unfortunately, this is not popular with programmers. One side-effect of this also that sometimes ORMs get pitched against some DB capabilities like <a href="http://ifacethoughts.net/2007/11/14/to-use-or-not-to-use-stored-procedures/">stored procedures</a>.</li>
</ul>
<p>Data is one of the most important pieces of our solutions. And so is data modelling and data integrity. I am sure that ORMs were introduced to further this cause and make it easier for us to focus on data. Unfortunately they seem to be doing the exact opposite, not because of themselves, but because of us, the programmers.</p>

<p><a href="http://feedads.googleadservices.com/~a/qXX4TJa_t0YziTH3cX0eJOSR3OE/a"><img src="http://feedads.googleadservices.com/~a/qXX4TJa_t0YziTH3cX0eJOSR3OE/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=h71cnDdi"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=ORQdc9ir"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=JSY2850Z"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=JSY2850Z" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=1bzrhMUc"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=1bzrhMUc" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=ZQcxMovE"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/9x-k1kHB7B4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/06/on-misusing-orms/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/06/on-misusing-orms/</feedburner:origLink></item>
		<item>
		<title>PHP Backspaces</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/B0cQQuEe2f0/</link>
		<comments>http://ifacethoughts.net/2008/11/04/php-backspaces/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 06:18:22 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[php]]></category>

		<category><![CDATA[rant]]></category>

		<category><![CDATA[namespace]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1846</guid>
		<description><![CDATA[So, PHP gets namespaces, and a namespace separator, and a lot of complaints with it. Is \ (rfc) a good choice as a namespace separator? I can&#8217;t say, but it sure is not what I expected for a namespace separator.
The problem is that symbols used elsewhere for namespace separator already play a role in PHP. [...]]]></description>
			<content:encoded><![CDATA[<p>So, PHP gets namespaces, and a <a href="http://news.php.net/php.internals/41374">namespace separator</a>, and a <a href="http://loveandtheft.org/2008/10/26/set-sail-for-fail-php-namespaces/">lot</a> of <a href="http://ninh.nl/blog/2008/10/25/a-word-on-phps-upcoming-namespace-seperator/">complaints</a> with it. Is <code>\</code> (<a href="http://wiki.php.net/rfc/namespaceseparator">rfc</a>) a good choice as a namespace separator? I can&#8217;t say, but it sure is not what I expected for a namespace separator.</p>
<p>The problem is that symbols used elsewhere for namespace separator already play a role in PHP. But would <code>&gt;</code> or <code>|</code> or <code>#</code> cause problems? <code>\</code> reminds more of a file system than a namespace system, I feel it does not gel with OOP. Speaking of which, I wonder if it would have been better if PHP had not gone the OOP way. It is specialized for the Web, and maybe it should have followed a different paradigm which was Web specific as well. Does web programming really need namespaces and namespace separator?</p>

<p><a href="http://feedads.googleadservices.com/~a/2SeLDiF47CnVO_34TltuAQKuoos/a"><img src="http://feedads.googleadservices.com/~a/2SeLDiF47CnVO_34TltuAQKuoos/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=27PKvFny"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=3UQ0zynN"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=e0RFjEfz"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=e0RFjEfz" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=jpT3kFRa"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=jpT3kFRa" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=gqyAAV1h"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/B0cQQuEe2f0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/04/php-backspaces/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/04/php-backspaces/</feedburner:origLink></item>
		<item>
		<title>Open Source - Of Geeks, By Geeks And For Geeks</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/foM7cSLOa5k/</link>
		<comments>http://ifacethoughts.net/2008/11/01/open-source-of-geeks-by-geeks-and-for-geeks/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 16:36:39 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1843</guid>
		<description><![CDATA[JP has valuable insight on why open source is not adopted, based on both personal and academic observations.
I remembered an old conversation with a friend, who said &#8220;Open source is Government of geeks, by geeks, for geeks!&#8221; Open source is geekland, and professionals are not invited! Now I think it is quite understandable why anyone [...]]]></description>
			<content:encoded><![CDATA[<p>JP has valuable insight on <a href="http://confusedofcalcutta.com/2008/10/21/learning-about-why-people-dont-adopt-opensource/">why open source is not adopted</a>, based on both personal and academic observations.</p>
<p>I remembered an old conversation with a friend, who said &#8220;Open source is Government of geeks, by geeks, for geeks!&#8221; Open source is geekland, and professionals are not invited! Now I think it is quite understandable why anyone with this perception will want to avoid open source at all costs. It also explains why most of the questions regarding open source sound as if the earthlings are asking about Martian life. Even the reactions start with disbelief and end with rejection.</p>
<p>The talk of source code, wikis, debates, patches, open contributions is so much against the corporate and proprietary culture. I don&#8217;t think anyone can deny the discomfort. And I am sure it is extremely difficult to ask them to imagine themselves in this geekland and see the benefits.</p>
<p>Except, if they try using open source as a user, instead of software professionals or a consultants, and realize its benefits. If you are about reject open source for a client, it might be worthwhile to start using an open source project for personal work and rethink about it. The benefits of open source are for the user, not for the business involved in it. The businesses get benefits because of benefits to the users. </p>
<p>Open source inherently starts with scratching a personal itch, see yourself as a user or solve personal needs. If you look at it as a third-party person, you will see it only as a blackbox. Once you start using it, you will perhaps see that it is neither about geeks nor about developers, it is about users.</p>

<p><a href="http://feedads.googleadservices.com/~a/b8jLGkr8qQPGwOMxAumOkiMI_YI/a"><img src="http://feedads.googleadservices.com/~a/b8jLGkr8qQPGwOMxAumOkiMI_YI/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=nvjJBvEh"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=u0OUg6te"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=GGIAWiv3"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=GGIAWiv3" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=QI4dS868"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=QI4dS868" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=cWEZzB2Z"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/foM7cSLOa5k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/11/01/open-source-of-geeks-by-geeks-and-for-geeks/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/11/01/open-source-of-geeks-by-geeks-and-for-geeks/</feedburner:origLink></item>
		<item>
		<title>Google Too Offers OpenID, But With A Twist</title>
		<link>http://feedproxy.google.com/~r/Ifacethoughts/entries/~3/d9BO0-nV7ZY/</link>
		<comments>http://ifacethoughts.net/2008/10/30/google-too-offers-openid-but-with-a-twist/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 17:13:24 +0000</pubDate>
		<dc:creator>Abhijit Nadgouda</dc:creator>
		
		<category><![CDATA[standards]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://ifacethoughts.net/?p=1839</guid>
		<description><![CDATA[Google too steps towards supporting OpenID now. However, nowadays supporting OpenID has started to take different meanings. Most of the new supporters are providing OpenID, none of them accepting it. So, even if the likes of Google, Microsoft, Yahoo! and AOL support OpenID, I have to manage a different account and login credentials with each [...]]]></description>
			<content:encoded><![CDATA[<p>Google too steps towards <a href="http://googledataapis.blogspot.com/2008/10/federated-login-for-google-account.html">supporting OpenID</a> now. However, nowadays <em>supporting OpenID</em> has started to take different meanings. Most of the new supporters are providing OpenID, none of them accepting it. So, even if the likes of Google, Microsoft, Yahoo! and AOL <em>support</em> OpenID, I have to manage a different account and login credentials with each of them. Were we not out to beat exactly that with OpenID!?</p>
<p>It is great that Google is also trying to combine OAuth and OpenID to offer an identification + authentication system. However, there is a <a href="http://neosmart.net/blog/2008/google-doesnt-use-openid/">twist to the tale</a> in this case. It has introduced some non-OpenID steps in the workflow for using Google ID to login to other services that support OpenID. Would this mean that the services would have to do something more than supporting the open standard to play along with Google? If so, I hope that Google intends to use its findings and further develop the OpenID standard, instead of coming up with its own unique implementation. </p>
<p>OpenID is already being harmed because the likes of Yahoo! and Google want to hide it from the end user citing usability and simplicity reasons. I wonder if it would be better if they try to educate the user instead of playing to the <a href="http://www-128.ibm.com/developerworks/web/library/wa-cranky50.html">Baby duck syndrome</a>. Interesting time ahead, especially since these big players can either leverage OpenID and make it accessible to the common man or they can kill it by wrapping their own proprietary systems around it.</p>

<p><a href="http://feedads.googleadservices.com/~a/XerLhdoQbAVx07tslUVV3diJoXM/a"><img src="http://feedads.googleadservices.com/~a/XerLhdoQbAVx07tslUVV3diJoXM/i" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=iWusUa7R"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=txMnOHXd"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=Zg4IZO0z"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=Zg4IZO0z" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=oImG2ViI"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?i=oImG2ViI" border="0"></img></a> <a href="http://feedproxy.google.com/~f/Ifacethoughts/entries?a=OvqhN6pK"><img src="http://feedproxy.google.com/~f/Ifacethoughts/entries?d=43" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/Ifacethoughts/entries/~4/d9BO0-nV7ZY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ifacethoughts.net/2008/10/30/google-too-offers-openid-but-with-a-twist/feed/</wfw:commentRss>
		<feedburner:origLink>http://ifacethoughts.net/2008/10/30/google-too-offers-openid-but-with-a-twist/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.679 seconds --><!-- Cached page served by WP-Super-Cache -->
