<?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>Me.Tech() &#187; Uncategorized</title>
	<atom:link href="http://riteshnayak.com/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://riteshnayak.com/blog</link>
	<description>my technology blog</description>
	<lastBuildDate>Wed, 08 Feb 2012 08:01:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Design improvements to car and bike headlights</title>
		<link>http://riteshnayak.com/blog/2012/02/08/design-improvements-to-car-and-bike-headlights/</link>
		<comments>http://riteshnayak.com/blog/2012/02/08/design-improvements-to-car-and-bike-headlights/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 07:54:55 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[bmw]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[inventions]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=541</guid>
		<description><![CDATA[There are many unlit roads and curbs in Bangalore and other places. I have had lots of near-miss accidents while turning into a dark curb or alley. The reason for this is that the headlights on a car and bike don&#8217;t light the way in the direction of your turn. Let me explain with a [...]]]></description>
			<content:encoded><![CDATA[<p>There are many unlit roads and curbs in Bangalore and other places. I have had lots of near-miss accidents while turning into a dark curb or alley. The reason for this is that the headlights on a car and bike don&#8217;t light the way in the direction of your turn. Let me explain with a diagram.<br />
<center><br />
<div id="attachment_542" class="wp-caption aligncenter" style="width: 310px"><a href="http://riteshnayak.com/blog/wp-content/uploads/adaptive_headlights-Copy.jpg"><img class="size-medium wp-image-542 " title="adaptive_headlights - Copy" src="http://riteshnayak.com/blog/wp-content/uploads/adaptive_headlights-Copy-300x113.jpg" alt="Representation of car hadlights " width="300" height="113" /></a><p class="wp-caption-text">Image courtesy bmw.com </p></div><br />
</center></p>
<p>Given above is a diagram of traditional car headlights. The red cone represents my field of vision when I am about to turn and the green cone represents what I should be seeing. When I am turning right, I need to see what&#8217;s on my right, along with what is in front.</p>
<p>Given that we use a steering wheel in a car and handle bars on a bike,  both motion based electromechanical systems which control indicators and speed, why not make that work for lights as well?</p>
<p>Well it turns out, only BMW comes with an optional feature for this, called adaptive headlights. I don&#8217;t know if it is patents that is holding back other companies from doing this, but like seatbelts, this needs to become essential for all vehicles on the road. Here are some thoughts around this:</p>
<p>1. It is important for a car/bike to let the person coming in front know that he/she is about to turn. We have indicators but when people drive on Dip lights, it&#8217;s hard to spot certain sleek looking indicators. One design improvment can be to automatically switch lights to the dim mode while turning or after switching on indicators. Serves two purposes: firstly, the person on the oppposite side can see the indicators, secondly, because of the DIM mode, drivers will natually slow down while taking sharp turns.</p>
<p>2. Another possible implication of having lights that spread to the side of turn is that you might blind the person coming on that road. The automatic dimming of the lights should stop that as well.</p>
<p>If any of this doesn&#8217;t make sense or if I have missed out on something, please let me know. Here is a video of the BMW adaptive lights in action. Isn&#8217;t this something that should be available by default?<br />
<center><br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/LdyNdlw8zaA" frameborder="0" allowfullscreen></iframe><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2012/02/08/design-improvements-to-car-and-bike-headlights/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to pick a domain name for your next web product  &#8211; Tips</title>
		<link>http://riteshnayak.com/blog/2012/01/20/how-to-pick-a-domain-name-for-your-next-web-product-tips/</link>
		<comments>http://riteshnayak.com/blog/2012/01/20/how-to-pick-a-domain-name-for-your-next-web-product-tips/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 11:54:47 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Tips,Tricks and code]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=534</guid>
		<description><![CDATA[Picking an effective domain name for your web product/service/company is currently at the top of on my list of the hardest things to do for a web startup. For a web startup, domain names can make or break a business. You don&#8217;t want a name like expertsexchange (figure this out). Here is a simple checklist [...]]]></description>
			<content:encoded><![CDATA[<p>Picking an effective domain name for your web product/service/company is currently at the top of on my list of the hardest things to do for a web startup. For a web startup, domain names can make or break a business. You don&#8217;t want a name like expertsexchange (figure this out). Here is a simple checklist for picking a good name:</p>
<ul>
<li>Sit with 3 people at least, preferably from different backgrounds. They will tell you what a shortlisted name signifies to them. <a href="http://flagtrue.com" target="_blank">FlagTrue</a>, the name of my company was picked by a biased set of Computer Science students, but we did it specifically to appeal to the computer science audience. I had a hard time explaining it to my mom.</li>
<li>Use a bulk name checker instead of trying a single one each time. It can get annoying and demotivating trying out individual names. GoDaddy has a Bulk Search option. Works well but doesn&#8217;t store stuff.</li>
<li>Every domain name you can think of will be taken. Domain squatters  are the plague of this earth, but you cannot do anything. Don&#8217;t fret. Try combination of words or clever plays on words.</li>
<li>A good domain name is one which is <strong>short</strong> (preferably under 10 characters), <strong>sticky</strong> (meaning people will not easily forget it), <strong>unique in the line of business</strong> and something that<strong> conveys what the product is about</strong>. Keep a score board of all these attributes for each domain name you pick.</li>
<li>Do not use numbers or short forms. People won&#8217;t know whether the number is a number or characters. For ex: If I saw level3.com on the phone, the other person might think it is levelthree.com. If you are going with the name level3 then ensure you buy levelthree also and redirect it back to the original name.</li>
<li>Same goes for names in languages other than english. When we picked the name Samparkh, we aded the trailing &#8216;H&#8217; but a lot were expecting the domain to just be Sampark. These minor cultural differences can send traffic to a totally different website. A classic example of this is to spell &#8220;Agarwal&#8221;.</li>
<li>Check if there are any premium names that squatters are selling for a good deal. It might be worth investing in a good domain name if it can mean better reach. Also, it&#8217;s better if you can negotiate something before your product/service/company launches and makes some noise.</li>
<li>Try to get a .COM as most people and browsers default to it. Del.icio.us with its quirky and confusing name was still a hit.</li>
<li>Once you decide on a name, disable auto transfer and buy it for 2 to 3 years.  Most popular domain provider&#8217;s mails are borderline spam and you might miss important renewal mails. It is always good to add a reminder on your calendar about 10 days before the domain expires.</li>
</ul>
<p>These are just suggestions. This template is what has helped me and many others pick a good name for their web business. Best of luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2012/01/20/how-to-pick-a-domain-name-for-your-next-web-product-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interviews Schminterviews</title>
		<link>http://riteshnayak.com/blog/2010/04/27/interviews-schminterviews/</link>
		<comments>http://riteshnayak.com/blog/2010/04/27/interviews-schminterviews/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 10:53:19 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=482</guid>
		<description><![CDATA[In the last three weeks, I have panel interviewed about 3 people and have reviewed about 4 others in their interview process. I must say, I am surprised at the level of technical skill most of these candidates exhibit during the interviews. People with lot more years of experience than me go dumb founded when [...]]]></description>
			<content:encoded><![CDATA[<p>In the last three weeks, I have panel interviewed about 3 people and have reviewed about 4 others in their interview process. I must say, I am surprised at the level of technical skill most of these candidates exhibit during the interviews. People with lot more years of experience than me go dumb founded when asked trivial questions. I handled interviews for  developer positions and have found it extremely difficult to spot talented people.  There are some, who are really talented,  but cannot express themselves. And then, there are people, who don&#8217;t know shit, but act all Chuck Norris on the interviewers. Are you really determined to find talented people? Then here is what you do. Here are some things that you might <a href="http://www.codeanthem.com/blog/2010/04/how-to-hire-crappy-programmers-the-job-post/" target="_blank">like </a> to <a href="http://www.codeanthem.com/blog/2010/04/how-to-keep-crappy-programmers/" target="_blank">read</a> as well.</p>
<ul>
<li>The Resume: Oh! this one is tricky. Instant brownie points if the resume is LaTex generated. Reason? Well any person who has worked with LaTex would have had to do it for authoring a paper. Any person who understands the effort and rigor involved in authoring papers surely deserves points.   I like a resume to be simple, short and precise. A 7 page resume isn&#8217;t something that I am interested in seeing.  Two or three pages at most.  Here is what I look in a resume: The objective should not look copy pasted and should be something original. I also like to see hyperlinks on a resume; I would definitely like to explore a little more about the stuff that you mentioned in brief. It builds curiosity and that&#8217;s good. And no, I don&#8217;t care if you won the second place in your high school bharatnatyam competition or if you organized your college fest.</li>
</ul>
<ul>
<li>My first question would be the <a href="http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html" target="_blank">fizz buzz</a> question. The question loosely reads as follows: &#8220;<em> Your task is to print numbers from 1 to n. For every multiple of 3, instead of the number you print <strong>fizz</strong> and for every multiple of 5 <strong>buzz</strong>, and for every multiple of 3 and 5, you print<strong> fizz buzz</strong></em>&#8220;.  Take any language that you comfortable with and solve this problem. This is like a tard filter which will let me not waste my time with posers. You will be surprised at the number of people who fumble doing this.</li>
<li>I wont really care if you have worked with JMS, XML, J2ME, AJAX, SSRS, SSIS, JSB, WCS, JSTL, HTML, DHTML, XHTML,  MOSS, SOAP, BO, WPF or any other such acronym. These are just technological deltas which you will eventually have to use. My question will always be as to why did you use such a thing. What were the benefits and such.</li>
<li>If you are interviewing for the role of a developer who works on web technologies, get your basic HTML, JS and CSS right. Brush up on some HTML5, learn about the different security models of browsers, cross site scripting etc And please, for gods sake, know what the boundaries of a web application are. I am sure to throw in the &#8221; Can you connect to a android phone using Javascript&#8221; question and I don&#8217;t expect the answer to be YES.</li>
<li>I have always felt writing programs is always about algorithmic aptitude, intelligent manipulation and handling of data and optimization. So there will be one question in each one of these topics, at least. Make sure you know your data structures really well. I have heard answers about hashmaps being stored sequentially, binary search time complexity being O(n), hashtable complexity being O(n) and so on. According to me programming is all about data structures and making conscious and intelligent choices about them. Also, knowing how to solve a problem is not an end to a problem. See how you can optimize your solution. I am sure to ask an optimization question.</li>
<li>Design : If the position is for a senior developer, I will surely ask an Object Oriented Design question and on conceptual modeling of data. If you don&#8217;t know normalization , ACID properties of data , then read up. Its used in the real world and if you cannot model a student-library database, you seriously have to consider an alternate career.</li>
<li>Off beat:  I am always pushing to see if a developer is passionate about his or her work. I am sure to ask the person, &#8220;What according to you is the best project you have done and why do you think its awesome?&#8221;. This you should answer for at least 5 minutes and should do so passionately.</li>
<li>Contributions to Open Source is definitely a plus. Even if you released a project that no one other than you downloaded and used, its better to put that in your resume to earn brownie points.</li>
<li>If I have the time and the resources, I would encourage another round of coding. In their favorite language and IDE, but without being connected to the internet. Or I would love to give them pre written buggy code that they should help me debug. That&#8217;s more of a hands on approach and it helps in a couple of ways.</li>
<blockquote>
<li>1. Most dev&#8217;s like to write code and would not like to read pre-existing code. Most of the times though, its not possible to keep writing new code, you will have to look at old code and debug it.</li>
<li>2. A developer good at debugging is always an asset to a teaam.</li>
</blockquote>
</ul>
<p>Well, this mostly what I tend to do in an interview. If you have more interviewer/interviewee specific points, questions, share them with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2010/04/27/interviews-schminterviews/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Extending jQuery validation plugin &#8211; custom validation</title>
		<link>http://riteshnayak.com/blog/2010/01/05/extending-jquery-validation-plugin-custom-validation/</link>
		<comments>http://riteshnayak.com/blog/2010/01/05/extending-jquery-validation-plugin-custom-validation/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 09:27:50 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tips,Tricks and code]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=479</guid>
		<description><![CDATA[JQuery validation plugin has saved me hours of development time on projects. It contains definitions for most validation tasks that you would need, including AJAX based validations. But if you have to do anything more than the ordinary, you have extend the library yourself. Here&#8217;s an example of an extension I wrote :
Functionality : I [...]]]></description>
			<content:encoded><![CDATA[<p>JQuery validation plugin has saved me hours of development time on projects. It contains definitions for most validation tasks that you would need, including AJAX based validations. But if you have to do anything more than the ordinary, you have extend the library yourself. Here&#8217;s an example of an extension I wrote :</p>
<p>Functionality : I want to capture the twitter handle of a user on a form. Most users will enthusiastically enter the entire URL like http://twitter.com/itsmeritesh, some will leave out the http:// and enter the rest. I wanted to validate that the username was a single word, didn&#8217;t contain parts of a URL (mainly slashes) and didn&#8217;t mind it being empty.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"> <span style="color: #006600; font-style: italic;">// HTML Code</span>
<span style="color: #006600; font-style: italic;">// &lt;form name=&quot;myform&quot;&gt; </span>
<span style="color: #006600; font-style: italic;">// &lt;input type=&quot;text&quot; id=&quot;twitterUrl&quot;&gt; &lt;label for=&quot;twitterUrl&quot; /&gt;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> isEmpty<span style="color: #009900;">&#40;</span>Val<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>Val.<span style="color: #660066;">length</span><span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	      <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span> Val.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	      <span style="color: #009900;">&#123;</span>
	            <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot; <span style="color: #000099; font-weight: bold;">\t</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span> Val.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #009900;">&#41;</span> 
	            <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	      <span style="color: #009900;">&#125;</span>
	       <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
 jQuery.<span style="color: #660066;">validator</span>.<span style="color: #660066;">addMethod</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;handleOnly&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isEmpty<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
		 <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>value.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot; &quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>value.<span style="color: #660066;">search</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		 <span style="color: #000066; font-weight: bold;">else</span>
			 <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>	  
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Please specify only one word&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#myform&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">validate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
    	rules<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>		
    		twitterUrl <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>  handleOnly<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900;">&#125;</span>
                 <span style="color: #009900;">&#125;</span>
      messages<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
		twitterUrl<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span> handleOnly <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Only your twitter handle &quot;</span> <span style="color: #009900;">&#125;</span>
               <span style="color: #009900;">&#125;</span>
         <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>handleOnly is a new extension written by using the jQuery.validator.addMethod() method. The rule then specifies whether the return from the function must be true or false, in my case its true. The message is displayed when the condition is not met by the value. </p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2010/01/05/extending-jquery-validation-plugin-custom-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One Decade of Programming</title>
		<link>http://riteshnayak.com/blog/2009/07/24/one-decade-of-programming/</link>
		<comments>http://riteshnayak.com/blog/2009/07/24/one-decade-of-programming/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 06:41:41 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Suggested Reading]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=458</guid>
		<description><![CDATA[Sometime around July 1999 was the time I wrote my first &#8220;Hello World&#8221; program.  Yes, its been 10 years since I started programming, and I dont mean L R L T of Logo. In fact, I wrote some BASIC code as early as 1995-96, but I will skip that for reasons beyond the scope of [...]]]></description>
			<content:encoded><![CDATA[<p>Sometime around July 1999 was the time I wrote my first &#8220;Hello World&#8221; program.  <strong>Yes, its been 10 years since I started programming</strong>, and I dont mean L R L T of Logo. In fact, I wrote some BASIC code as early as 1995-96, but I will skip that for reasons beyond the scope of this post.</p>
<p>I remember liking programming for lots of reasons, but one which I particularly remember. Unlike the other subjects in school, like math or physics,  programming had no boundaries or a legacy to deal with. By legacy, I mean there were no equations, constraints and I didn&#8217;t have to reciprocate what some mathematician proved 400 years ago. I have always enjoyed freedom and programming gave me that freedom to express myself.  I guess, I can claim that <strong>most good programmers have taken up programming because it lets them play God or be creationists of some complex entity</strong>.</p>
<p>Anyway, there are a lot of interesting and fun facts through these ten years and I shall pen some down.</p>
<ol>
<li><strong>BASIC</strong> was my first programming language. <strong>PASCAL was probably my first compiled language</strong>.</li>
<li>I wrote my first sorting routine (<em> an act I call, truly understanding the programming abstraction</em>) sometime during Jan 2000.</li>
<li>I got my first computer in 2001. AMD Athlon 1.7 GHz with 256 MB Ram and 40 Gb harddisk . &#8220;<strong>OMG 40GB</strong>&#8221; , was my friends reaction.</li>
<li><strong>I disliked C early on</strong>, due to my PASCAL roots, but grew fond of it later on when I completed my first large scale project ( A linux text editor, which I proudly wanted to call, <strong>&#8220;Better than VI</strong>&#8220;). This is also where I wrote <strong>my first recursive functionality</strong> which resulted in people actually wanting to read and understand my code.</li>
<li><strong>My first exposure to Linux and OSS was in 2002</strong>, I think it was <strong>RedHat linux 7.1</strong> with running Xwindows.</li>
<li>I almost lost my entire project due to a floppy malfunction. USB&#8217;s were expensive and uncommon then. CD writers expensive.</li>
<li>I <strong>learnt about data structures in 2002</strong>.  My lecturer, one of the few good ones, was kind enough to teach us the intuition behind data structures and write the implementations ourselves. Our other lecturers taught programming from a book and expected us to replicate the programs written in the book.</li>
<li>I would like to thank  my data structures lecturer who spent hours helping me debug and correct programs. It was probably the first time I looked at code from an outside perspective and yes, I realized the importance of indenting code then and there. <strong>I have never not indented my code again.</strong> (Remember we are still in 2002).</li>
<li>I learnt about OO during christmas vacations of 2002. Loved it. Loved the paradigm shift in the way I thought about programs</li>
<li><strong>My first OO program was one class with 50+ methods in it (Yup, there was nothing OO about it, but its a start)</strong></li>
<li>My first large scale OO project was building a <strong>Paint like utility using C++</strong>. I am still proud of this work because I learnt about programming abstractions and class reponsibilities here. I still remember writing<strong> my first button class </strong>which was fully reponsible for itself.</li>
<li>I <strong>learnt PERL in 2004</strong> and wrote my first web application. An online messaging, calendar and collaboration utility for friends and corporates. ( <strong>yes, this was my first social app</strong>). When I saw Myspace very soon after that ( MySpace was still pretty bare in terms of features then) the only difference I saw was that other people could see who my contacts(friends) were and network with them.</li>
<li>When I first discovered databases (2003), I thought, &#8220;wow, somebody made my file I/O&#8217;s really easy&#8221;. It was also an amazement because I had thought of a unified file writing and reading mechanism to solve all my I/O woes. Problem was getting it to work with many languages. I couldn&#8217;t get my head around it and thats when I learnt about databases. Imagine my surprise and rejoice. <strong>The first database I used was Oracle and later MySQL </strong><strong>( it wasn&#8217;t even relational then)</strong>. <strong>My database project earned me 100/100 in my finals. </strong></li>
<li><strong>Compiler Design was one of my favorite subjects</strong>. I loved the fact that I could understand how they build programming languagues. Lex Yacc was probably the best thing that ever happened to programming.<strong> <a href="http://prateekshac.com" target="_blank">Prateeksha </a>and I wrote the specifications for a shift reduce parser for C++.</strong> We used an A1 sized sheet of paper to write down the shift reduce matrix. After two full days writing the Shift Reduce rules, we realized we had messed up somewhere.</li>
<li>I wrote a prototype of my CASE tool in 2004.  My proud entry to the world of .NET. I had my official copy of Visual Studio.NET 2003 and .NET 1.1 . <strong>This CASE tool would eventually become my fnal semester project and also enter Microsoft&#8217;s Imagine Cup.</strong> We reached the Nationals for the competition. I called it <a href="http://dzine.sourceforge.net" target="_blank">Dzine</a>.</li>
<li>Even though I had learnt java in 2004, I didnt use J2EE till late 2005. when I started writing simple J2EE apps. I also figured that javascript, that language I had used to validate my controls in HTML (in 2004) , had suddenly taken the world by storm. <strong>Everybody was talking about it. Web 2.0. </strong></li>
<li>I sat for two whole days to figure out how yahoo mail was autocompleting email addresses I typed. After two days and a whole lot of searching, <strong>I learnt about AJAX</strong>. I was already on Gmail by then and didnt really understand the underlying plumbing that was holding the application together.</li>
<li>Within the next 4 months I put AJAX and J2EE together to work on <a title="Samparkh" href="http://samparkh.com" target="_blank">Samparkh </a>with <a href="http://prateekshac.com" target="_blank">Prateeksha</a>.<strong> I wrote an online chat application using AJAX ( inspired by Meebo)</strong>. Remember this was a time when <a title="firebug" href="http://getfirebug.com" target="_blank">firebug</a> wasn&#8217;t around and I used a tool called <a href="http://www.mozilla.org/projects/venkman/" target="_blank">Venkman</a>, which I am sure many of you haven&#8217;t even heard of.</li>
<li>Then, Grad school happened and so did Microsoft, and the list of wonderful projects that I did during the two years I spent there.</li>
<li>Special mention to <a title="The Big Kahuna" href="http://riteshnayak.com/bigkahuna.html" target="_blank">BigKahuna</a>, which took almost two years to perfect and won the <a href="http://www.google.co.in/intl/en/productprodigy/awards09.html" target="_blank">Google Product Engineering Competition</a> 2009.</li>
</ol>
<p>Am I a good programmer? I dont know. But, I will continue to remain a programmer. Most of my friends know that I dont take sides. By sides, I mean OSS v/s Closed source, Linux vs Windows , Google vs Yahoo, and this is because of the vast and varied experiences I have had with all these different entities during programming. They all have a special place in my heart and I cannot choose one over the other. Programming is changing fast, and all I can hope for is that that I dont wear out of ideas or skills to call myself a programmer in the years to come.</p>
<p><a title="All my projects" href="http://riteshnayak.com/mywork.html" target="_blank">A list of all the wonderful projects that I have pursued over the years is available here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2009/07/24/one-decade-of-programming/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Uncertainty in programming &#8211; the lochness of the programming world</title>
		<link>http://riteshnayak.com/blog/2009/02/23/uncertainty-in-programming-the-lochness-of-the-programming-world/</link>
		<comments>http://riteshnayak.com/blog/2009/02/23/uncertainty-in-programming-the-lochness-of-the-programming-world/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 08:14:28 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=421</guid>
		<description><![CDATA[Programming has come many a mile since the 70&#8217;s. A wide array of languages, methodologies, frameworks and other similar artifacts have made the life of a programmer really simple. These artifacts have incrementally solved problems faced by programmers and slowly, but steadily, wrapped the programmers view of a program into a set of abstractions. One [...]]]></description>
			<content:encoded><![CDATA[<p>Programming has come many a mile since the 70&#8217;s. A wide array of languages, methodologies, frameworks and other similar artifacts have made the life of a programmer really simple. These artifacts have incrementally solved problems faced by programmers and slowly, but steadily, wrapped the programmers view of a program into a set of abstractions. One of the first abstractions that was built, looking at the history of programming languages, was the ability to hide the underlying differences in hardware, system software and present a unified way of programing and manipulating the system. This is what we call modern day high level programming language. </p>
<p> If the programming language, an abstraction of the real machine code, ever helped solve a problem, it was that of uncertainty. Take an example of the piece of code given below.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">    <span style="color: #008080; font-style: italic;">// sample code to add two numbers  </span>
    <span style="color: #FF0000;">int</span> a<span style="color: #008000;">=</span><span style="color: #FF0000;">10</span>,b<span style="color: #008000;">=</span><span style="color: #FF0000;">20</span>,c<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
     c<span style="color: #008000;">=</span> a<span style="color: #008000;">+</span>b<span style="color: #008000;">;</span>
     Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>c.<span style="color: #0000FF;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p> When I run this code on any machine, I am assured to get the value of c to be equal to be 30. I know when I access the variable &#8220;c&#8221; the next time, I will find it contains the value of 30. I know that two instructions from now, variables a,b,c  will be available for further manipulation. </p>
<p>My recent attempts at programming on the cloud has taught me several lessons, the most important one being,<em> programming to deploy on a cloud is almost like writing programs that you can never be certain about.</em> You can never maintain application state. This means no static variables, no relational datastore, no freedom to write into the filesystem etc. Think about it for a second and it will make sense why these seemingly harmless actions are prohibited. Filesystem access is a big no-no anywhere, but as for static variables, persistent classes, singletons etc, running this on many actual/virtual machines means, all these entities with their values have to be moved/replicated across the cloud. This becomes a non trivial problem especially when the state keeps constantly changing. I could live with all these restrictions by coding, painful but effective, workarounds. What I can&#8217;t do is, work with uncertainty. Here is an example :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="python" style="font-family:monospace;">  <span style="color: #ff7700;font-weight:bold;">from</span> google.<span style="color: black;">appengine</span>.<span style="color: black;">api</span> <span style="color: #ff7700;font-weight:bold;">import</span> memcache
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> get_greetings<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
  <span style="color: #483d8b;">&quot;&quot;&quot;get_greetings()
&nbsp;
  Checks the cache to see if there are cached greetings.
  If not, call render_greetings and set the cache
&nbsp;
  Returns:
    A string of HTML containing greetings.
  &quot;&quot;&quot;</span>
  greetings = memcache.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;greetings&quot;</span><span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">if</span> greetings <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">None</span>:
    <span style="color: #ff7700;font-weight:bold;">return</span> greetings
  <span style="color: #ff7700;font-weight:bold;">else</span>:
    greetings = <span style="color: #008000;">self</span>.<span style="color: black;">render_greetings</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> memcache.<span style="color: black;">add</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;greetings&quot;</span>, greetings, <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span>:
      <span style="color: #dc143c;">logging</span>.<span style="color: black;">error</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Memcache set failed.&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> greetings</pre></td></tr></table></div>

<p> The code is an example on using the built in caching mechanism on appengine. Notice the line of code given below; its supposed to return the value of the item in the cache with the key <em>greetings</em></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">greetings = memcache.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;greetings&quot;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Here&#8217;s the question: what is the guarantee that the value, which I inserted into the cache with a large timeout, is actually available. Whenever I write this line of code, do I have to write the failsafe code also(line 15,19) ? I am trying to model state using variables in the cache, mainly because its the next best thing to persistent classes and is less expensive (computationally and financially) than the key/value datastore. How do I reliably do this ? I cant trust that the cache will be available and have to keep on constantly updating the failsafe mechanism ( in case of appengine, the datastore) which is inefficient and highly taxing on the application. What has given rise to this situation is the environment of the cloud. Its not a new problem by any means. With the introduction of new languages, language constructs and other programmatic abstractions, this kind of uncertainty in programming has always reared its ugly head. The lochness of the programming world.  And it will continue to do so; which is why we will have constructs like the assert(). My greatest worry is that I don&#8217;t see an elegant solution in the foreseeable future. </p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2009/02/23/uncertainty-in-programming-the-lochness-of-the-programming-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trends in online advertising</title>
		<link>http://riteshnayak.com/blog/2008/12/06/trends-in-online-advertising/</link>
		<comments>http://riteshnayak.com/blog/2008/12/06/trends-in-online-advertising/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 18:04:11 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Trends-Predictions-Inferences]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/?p=402</guid>
		<description><![CDATA[Advertising has come a long way since its inception. A simple concept of endorsing links to online resources has becoming a dominating factor on the web. But given the state of online advertising now, what is the roadmap and what can we expect in the future. 
 The answer is of course non trivial and I will [...]]]></description>
			<content:encoded><![CDATA[<p>Advertising has come a long way since its inception. A simple concept of endorsing links to online resources has becoming a dominating factor on the web. But given the state of online advertising now, what is the roadmap and what can we expect in the future. </p>
<p> The answer is of course non trivial and I will only make a fool of myself by trying to predict the answer, but there are certain inferences I have made based on my observation which I shall pen down. I divide the broad category of pc users into prospects and adless users. Prospects are users who are new or ignorant to concept of online advertising, people like my mother who doesn&#8217;t know people endorse links for money. This category could also include people who are open to targeted advertising and see a value add with it. These are people who wholeheartedly click on interesting links. The other category I call adless users, users who have been around the internet long enough to understand irrelevant ads and can spot and ignore ads in a page. Take the example of the ad below.<br />
<!--adsense--><br />
The adless users wont even realize they scrolled though the content and didnt even notice the ad, or read it. </p>
<p>More time a user spends online, the probability of him/her realizing the web is filled with irrelevant ads and over time becoming adless users. As a result, almost all users tend to move towards becoming adless users. This is dangerous for marketers, ad companies, publishers etc as there is a whole eco system depending solely depending on money made out of ads. As new users discover the web, their prospect phase is what publishers can hope to cash in on, but eventually the shift will happen. What happens then ?</p>
<p>Search engines are arguably the best places for advertising and probably the best place for demonstrating the phenomenon I call intrusive or endorsed content. Take the example below. </p>
<p><img src="http://rnayak.files.wordpress.com/2008/12/ad_meltdown.jpg" alt="Advertising Meltdown" width="450" /></p>
<p> Ads will stop being sidekicks and move into the foreground, I have shown the shift pictorically.  Payperpost got the next concept right, people wont read ads, but social media yes, so pay people to write about your product/service etc. More results on search engines will be  endoresed and most of them already are, how do you know a review you are reading of some product isnt already endorsed. Now here is the strangeloop bit, you could say you will search for bad reviews instead of good <a title="Problems with Macintosh" href="http://www.google.co.in/search?hl=en&amp;q=problems+with+macintosh&amp;btnG=Search&amp;meta=">like this.</a> It wont take long for the advertisers to see this trend as well and then pay for people to write moderately bad reviews inturn endorsing the product. You know that they know that you are looking for bad reviews !! </p>
<p> A surprising result on top caught my eye. A visit to the site will tell you immediately that the site isn&#8217;t half as good as the second or the third result, but still its on top. SEO has come a long way and to cheat search engines into making a page popular isn&#8217;t that hard. You can hire professionals to do that job. That in a wierd sense is a form of endorsing, a professional SEO group can start bidding for making pages more popular and start their own cartel for endorsed content. </p>
<p> The other strange phenomenon I see that people recognize big search brands, Google in particular, but don&#8217;t necessarily relate to the results( you can&#8217;t possible relate to the results). You could have the Google homepage serving ads from ask.com and nobody would know the difference if the results looked like Google returned them. Thats probably the reason there still are companies trying to capitalize on the search market. Take a look at the results page below.</p>
<p><img src="http://rnayak.files.wordpress.com/2008/12/ad_meltdown_2.jpg" alt="Ad meltdown 2" width="400" /></p>
<p>In this case the difference between a result from the index and an endorsement is a mere patch of color. How difficult do you think it is to remove that demarcation during difficult times.  Ethical boundries as meagre as color differences can be crossed very easily and corporations have showed time and again it can be done. </p>
<p>Thanks to the falling prices of bandwidth and also social media, video is the next big delivery mechanism and it was quite understandable that Google paid a billion and a half to capitalize on youtube&#8217;s huge market share and put intrusive ads on videos( you dont have a choice there, no adblock plus !! ). Same goes with pictures and audio. Radio, papers and the television have been doing it for years. </p>
<p>The world thought that we moved away from pop up advertising but we have just made the situation far worse. Ads will become more and more intrusive and there could come a time when content and advertisement are indistinguishable. More on this later.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2008/12/06/trends-in-online-advertising/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The possible end to outsourcing</title>
		<link>http://riteshnayak.com/blog/2008/05/12/the-possible-end-to-outsourcing/</link>
		<comments>http://riteshnayak.com/blog/2008/05/12/the-possible-end-to-outsourcing/#comments</comments>
		<pubDate>Mon, 12 May 2008 02:44:29 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/2008/05/12/the-possible-end-to-outsourcing/</guid>
		<description><![CDATA[  The last 20 years have been more than fruitful for Bangalore and India in general as the preferred destination for outsourcing, but the tide may soon ebb. The cost advantage that India presented to the west isn&#8217;t there anymore. True globalization of the Indian work force has meant multinational and international companies are [...]]]></description>
			<content:encoded><![CDATA[<p>  The last 20 years have been more than fruitful for Bangalore and India in general as the preferred destination for outsourcing, but the tide may soon ebb. The cost advantage that India presented to the west isn&#8217;t there anymore. True globalization of the Indian work force has meant multinational and international companies are recruiting in India, offering international salaries and providing immigration opportunities. The impact of this globalization is the increase in salaries that Indian companies have to match to find skilled labor. The increased opportunities also mean very alarmingly high attrition rate amongst tier 2 and lower companies.  In business processing outsourcing and ITES sector the attrition rate is almost twice that of Software. The rise in salaries especially in cities like Bangalore and Hyderabad have created high income inequalities amongst the lower and the middle class. The increased money and spending power has also raised costs of living. Its estimated that about 5000 people are entering Bangalore everyday in search of opportunities, but that&#8217;s easy math when you consider the population of India; This inflow of people have put severe infrastructure constraints in these cities. Clogged roads and sky high infrastructure costs are common in these cities. Companies are finding it hard to find breathing space in the city and the instability in the government means there is no end point to the woes faced by the IT companies.</p>
<p>For a new company trying to establish a presence in Bangalore, the costs of infrastructure are extremely high and the sheer amount of companies plus the income inequality created by the increased wages will assure that only high salaries will ensure loyal employees. That&#8217;s not even guaranteed. There is a resource crunch, high infrastructure costs and productivity numbers are beginning to decline. The cost advantage is clearly lost. Indian companies are setting shop in tier cities like Tumkur, Pune etc where the infrastructure costs are significantly lower and the local talent pool is still unadulterated by the outsourcing boom. This still isn&#8217;t the solution as the reason why cities like Bangalore saw the boom was due to high concentration of engineering workforce and also the output of engineers in the southern region thanks to the 1000 odd engineering colleges in the region. The setting up of companies here will only guarantee reduced costs and not skilled labor, which means poor quality software.</p>
<p>This situation isn&#8217;t new, it happened at route128 and also in the valley. This was the prime reason for outsourcing and now it seems we have come full circle. Falling dollar prices, recent slowdown in the US economy and the opportunities presented by countries in South East Asia, China and Russia which are currently centers of low costs means India faces severe competition. India&#8217;s economy is riding on the success of outsourcing exports and the currency has become costlier.  Outsourcing has become a victim of its own success and only time will tell what fate lies ahead for India.</p>
<p>I recently wrote an essay on the software bottleneck and the reasons behind some of measures to resolve the bottleneck which include outsourcing, open source etc. If you were interested in the reading material above, be sure to read the essay.</p>
<p><!--adsense#center--></p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2008/05/12/the-possible-end-to-outsourcing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using XMLRPC interface to Wordpress and Blogger</title>
		<link>http://riteshnayak.com/blog/2008/03/01/using-xmlrpc-interface-to-wordpress-and-blogger/</link>
		<comments>http://riteshnayak.com/blog/2008/03/01/using-xmlrpc-interface-to-wordpress-and-blogger/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 15:57:53 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/2008/03/01/using-xmlrpc-interface-to-wordpress-and-blogger/</guid>
		<description><![CDATA[ Im testing the XML-RPC interface to blog sites in order to buld a plugin to post blogs really fast. If this post is published on the blog then , it means Im one step away from finishing my plugin. Yaay!!
If you have developed a web application and want users to post to their blogs [...]]]></description>
			<content:encoded><![CDATA[<p> Im testing the XML-RPC interface to blog sites in order to buld a plugin to post blogs really fast. If this post is published on the blog then , it means Im one step away from finishing my plugin. Yaay!!</p>
<p>If you have developed a web application and want users to post to their blogs using your application, this is the way to do it. Its really simple.<a href="http://www.dentedreality.com.au/bloggerapi/" target="_blank"> Here&#8217;s the library I tried. </a> Its really simple and works well for Blogger, but in Wordpress, the title of the post  doesn&#8217;t appear. For wordpress, you can use the MetaWeblogAPI for XML_RPC. Just download the XML-RPC implementation in php from <a href="http://phpxmlrpc.sourceforge.net/" target="_blank">here</a> and follow the instructions in <a href="http://hasin.wordpress.com/2006/07/15/using-blog-apis/" target="_blank"> this article</a>. That should just about do it , dont you think ?</p>
<p>Oh and this thing took me less than 20 minutes to do <img src='http://riteshnayak.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><!--adsense#center--></p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2008/03/01/using-xmlrpc-interface-to-wordpress-and-blogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personalization is one cookie away</title>
		<link>http://riteshnayak.com/blog/2007/08/13/personalization-is-one-cookie-away/</link>
		<comments>http://riteshnayak.com/blog/2007/08/13/personalization-is-one-cookie-away/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 19:22:46 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Trends-Predictions-Inferences]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Unsolved problems]]></category>
		<category><![CDATA[Web News]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/2007/08/13/personalization-is-one-cookie-away/</guid>
		<description><![CDATA[I wrote about personalization some time back and about how we should actually be approaching this problem. Google has got their act into place and are making your own light weight personalization meter, but its for ads  
Google is going to put a cookie in your browser that will record information everytime you read [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://riteshnayak.com/blog/2007/05/28/personalization-we-are-still-getting-there/" target="_blank">I wrote about personalization </a>some time back and about how we should actually be approaching this problem. Google has got their act into place and are making your <a href="http://www.google.com/ads/gcc_privacy.html" target="_blank">own light weight personalization meter</a>, but its for ads <img src='http://riteshnayak.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p><a href="http://googleblog.blogspot.com/2007/08/online-ad-serving-tests.html" target="_blank">Google is going to put a cookie in your browser</a> that will record information everytime you read an ad served by Google. The cookie helps Google predict what kinds of ads the person clicks on and will probably help serve better and more relevant ads. Up until now the ads are served based on the content of the site and also the publisher&#8217;s preference on the ads. The  cookie also doubles up as a proof of click ( think click fraud) and more material for publishers to analyse the hits to their ads and mine for patterns. Though the purpose is for ads, Im happy its a step ahead in personalization. The cookie acts like a distributed store of personal information that can be mined by ad servers and then acted upon.</p>
<p>The possibilities of this technology could be endless. Based on <a href="http://riteshnayak.com/blog/2007/05/28/personalization-we-are-still-getting-there/" target="_blank">my previous post</a>, where I wrote about a distributed implementation of a personalization database which all applications can use to customize data better, google&#8217;s cookie is one step towards such a solution. If every browser had cookies of personalized information then applications ( aka good applications) can mine these cookies and get useful information about the persons Net habits and preferences. But a cookie has size restriction and cannot probably be used to store the abundance of personalization information. You can use a add on activex plugin or a firefox addon like <a href="http://riteshnayak.com/blog/2007/07/05/getting-familiar-with-google-gears/" target="_blank">google gears with underlying SQLite database</a> and do wonders with it. Of course this would mean about two years of thinking of standards and more bureaucratic gibberish, but once done, it will be a truly distributed system and the web, partially personalized.</p>
<p>You could be served the right category of blogs on wordpress, get the right videos on the opening page of you tube, see the relevant news on CNN , see the most relevant feeds on your RSS reader and much more. Personalization ahoy !!</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2007/08/13/personalization-is-one-cookie-away/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>$100 Laptop &#8211; the next market for monopoly</title>
		<link>http://riteshnayak.com/blog/2007/06/11/100-laptop-the-next-market-for-monopoly/</link>
		<comments>http://riteshnayak.com/blog/2007/06/11/100-laptop-the-next-market-for-monopoly/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 16:06:24 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/2007/06/11/100-laptop-the-next-market-for-monopoly/</guid>
		<description><![CDATA[People are always on the lookout for the next software market and a chance to consolidate. But more often than not, a market is entered by a minimum of three players of which one struggles to hold on to the pole position. Take blogging for example, Blogger came in and made things real jazzy but [...]]]></description>
			<content:encoded><![CDATA[<p>People are always on the lookout for the next software market and a chance to consolidate. But more often than not, a market is entered by a minimum of three players of which one struggles to hold on to the pole position. Take blogging for example, <a href="http://blogger.com" target="_blank">Blogger</a> came in and made things real jazzy but others were soon to follow and now <a href="http://wordpress.com" target="_blank">wordpress </a>is giving blogger a serious run for its money. Similarly, in every available space, there are entrants and uniques and theÂ  entrants are usually taken over by google <img src='http://riteshnayak.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://wiki.laptop.org/images/thumb/6/6c/Green_and_white_machine.jpg/180px-Green_and_white_machine.jpg" height="140" width="180" /></p>
<p>So whats the next big market ? its the $100 laptop. Almost everyone wants to take a shot at something in that project. Even MS got into the act and decided to give out XP for $3. What makes this market lucrative is its sheer number. Its estimated that millions of laptops will be sold and if the project does well, the same will even be extended to third world/developing countries in an effort to provide some exposure and also bridge the cultural and geographic divide. The laptop in itself is a marvel in design. Popularly called XO , this machine is <a href="http://laptop.org/laptop/design/index.shtml" target="_blank">designed </a>with the emerging countries in mind and a lot of work has gone into its usability front.</p>
<p><a href="http://laptop.org/" target="_blank" title="olpc"><img src="http://riteshnayak.com/blog/wp-content/uploads/olpc.jpg" alt="olpc" /></a></p>
<p>Yes, its an educational project, not a commercial one, but still once those children grow up and begin to realize the importance of software, they will be clamoring to use better and better. More importantly, <strong>its the recognition of a brand that will touch millions of people</strong>. Everybody wants a piece of it &#8230;. do you ?</p>
<p>If you are a developer and you are interested in knowing more about the XO project and wish to contribute then you can read <a href="http://wiki.laptop.org/go/Developers_program" target="_blank">their wiki here</a> or visit <a href="http://dev.laptop.org/" target="_blank">their developmentÂ  portal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2007/06/11/100-laptop-the-next-market-for-monopoly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Check out Blogmusik</title>
		<link>http://riteshnayak.com/blog/2006/09/30/check-out-blogmusik/</link>
		<comments>http://riteshnayak.com/blog/2006/09/30/check-out-blogmusik/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 05:38:31 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/2006/09/30/check-out-blogmusik/</guid>
		<description><![CDATA[Check out blogmusik.netÂ  with its cool virtual I-pod like interface and excellent streaming. Search for songs you want and play them. Registering has the adventage of saving favorites in a playlist. From what I read, its unlicensed music and will be taken down in some time . But until then enjoy great music.
I also recommend [...]]]></description>
			<content:encoded><![CDATA[<p>Check out <a href="http://blogmusik.net" target="_blank">blogmusik.netÂ </a> with its cool virtual I-pod like interface and excellent streaming. Search for songs you want and play them. Registering has the adventage of saving favorites in a playlist. From what I read, its unlicensed music and will be taken down in some time . But until then enjoy great music.</p>
<p>I also recommend <a href="http://pandora.com ">pandora</a> and <a href="http://live365.com " target="_blank">live365</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2006/09/30/check-out-blogmusik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BBauth by Yahoo</title>
		<link>http://riteshnayak.com/blog/2006/09/30/bbauth-by-yahoo/</link>
		<comments>http://riteshnayak.com/blog/2006/09/30/bbauth-by-yahoo/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 05:27:48 +0000</pubDate>
		<dc:creator>Ritesh</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://riteshnayak.com/blog/2006/09/30/bbauth-by-yahoo/</guid>
		<description><![CDATA[Yahoo&#8230;..make your application use data from yahooo accounts of users. A new authentication mechanism by yahoo lets you retrieve yahoo data( i think its data like contacts, calendar, briefcase, photos)  by redirecting users to their secure yahoo login page. Once in the page the user has to enter their credentials and allow for you [...]]]></description>
			<content:encoded><![CDATA[<p>Yahoo&#8230;..make your application use data from yahooo accounts of users. A new <a href="http://developer.yahoo.com/auth/" target="_blank">authentication mechanism</a> by yahoo lets you retrieve yahoo data( i think its data like contacts, calendar, briefcase, photos)  by redirecting users to their secure yahoo login page. Once in the page the user has to enter their credentials and allow for you ( 3rd party site) to access his/her data. You will have to register your site with yahoo however to be able to use this service and its BSD licensing(FREE). Pretty cool I must say.</p>
]]></content:encoded>
			<wfw:commentRss>http://riteshnayak.com/blog/2006/09/30/bbauth-by-yahoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

