<?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>The Usware Blog - Django Web Development &#187; google</title>
	<atom:link href="http://uswaretech.com/blog/category/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://uswaretech.com/blog</link>
	<description>Building Amazing Webapps</description>
	<lastBuildDate>Tue, 08 Jun 2010 14:59:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.</title>
		<link>http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/</link>
		<comments>http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 09:20:33 +0000</pubDate>
		<dc:creator>shabda</dc:creator>
				<category><![CDATA[api]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[utilities]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://uswaretech.com/blog/?p=667</guid>
		<description><![CDATA[TL;DR version: Here is an app to allow logging in via twitter, facebook, openid, yahoo, google, which should work transparently with Django authentication system. (@login_required, User and other infrastructure work as expected.) Demo and Code.Longer version follow: We are releasing our new app. Django-Socialauth. This app makes it awfully easy, to allow users to login [...]


Related posts:<ol><li><a href='http://uswaretech.com/blog/2009/04/develop-twitter-api-application-in-django-and-deploy-on-google-app-engine/' rel='bookmark' title='Permanent Link: Develop Twitter API application in django and deploy on Google App Engine'>Develop Twitter API application in django and deploy on Google App Engine</a></li>
<li><a href='http://uswaretech.com/blog/2009/02/how-to-build-a-facebook-app-in-django/' rel='bookmark' title='Permanent Link: How to build a Facebook app in Django'>How to build a Facebook app in Django</a></li>
<li><a href='http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/' rel='bookmark' title='Permanent Link: Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.'>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>TL;DR version: Here is an app to allow logging in via twitter, facebook, openid, yahoo, google, which should work transparently with Django authentication system. (@login_required, User and other infrastructure work as expected.) <a href="http://socialauth.uswaretech.net/">Demo</a> and <a href="http://github.com/uswaretech/Django-Socialauth/tree/master">Code</a>.Longer version follow:</p>

<hr />

<p>We are releasing our new app. <a href="http://github.com/uswaretech/Django-Socialauth/tree/master"><strong>Django-Socialauth</strong></a>. This app makes it awfully easy,
to allow users to login your site using Yahoo/Google/Twitter/Facebook/Openid. A demo is available <a href="http://socialauth.uswaretech.net/">here</a>.</p>

<p>This is released under an <a href="http://www.opensource.org/licenses/attribution.php">Attribution Assurance License</a>. A copy of the same is
provided included with the code.</p>

<p>After installing this app, you can use @login_required on any view and users identified
via any means can access protected content.</p>

<hr />

<p>We provide services to integrate and implement this, for a low price of USD 1600.
Please contact us at <a href="mailto:licenses@uswaretech.com">licenses@uswaretech.com</a> to discuss your exact needs.</p>

<hr />

<p>The README is copied here for convenience.</p>

<h3>What it does.</h3>

<p>Allow logging in via various providers.</p>

<h4>Logging In</h4>

<p>This is a application to enable authentication via various third party sites.
In particular it allows logging in via</p>

<ol>
<li>Twitter</li>
<li>Gmail</li>
<li>Facebook</li>
<li>Yahoo(Essentially openid)</li>
<li>OpenId</li>
</ol>

<p>Libs you need to install</p>

<ol>
<li><a href="http://pypi.python.org/pypi/python-openid/">python-openid</a> (<code>easy_install</code>)</li>
<li>python-yadis (<code>easy_install</code>)</li>
<li><a href="http://oauth.googlecode.com/svn/code/python/oauth/">python-oauth</a>(<code>easy_install</code>)</li>
</ol>

<p>The API Keys are available from</p>

<ul>
<li><a href="http://www.facebook.com/developers/createapp.php">http://www.facebook.com/developers/createapp.php</a></li>
<li><a href="https://developer.yahoo.com/dashboard/createKey.html">https://developer.yahoo.com/dashboard/createKey.html</a></li>
<li><a href="https://www.google.com/accounts/ManageDomains">https://www.google.com/accounts/ManageDomains</a></li>
<li><a href="http://twitter.com/oauth_clients">http://twitter.com/oauth_clients</a></li>
</ul>

<h4>How it works.</h4>

<p>Openid: Users need to provide their openid providers. Talk to the providers and
login.<br />
Yahoo: Yahoo is an openid provider. Talk to Yahoo endpoints. (Endpoint: http://yahoo.com)<br />
Google: Google is a provider. Talk to them. (Endpoint: https://www.google.com/accounts/o8/id)<br />
Facebook: Facebook connect provides authentication framework.<br />
Twitter: We use Twitter Oauth for authentication. In theory, Oauth shouldn&#8217;t be
used for authentication. (It is an autorisation framework, not an authentication one),
In practice it works pretty well. Once you have an access_token, and a name, essentially
authenticated.</p>

<p>References</p>

<ol>
<li><a href="http://socialauth.uswaretech.net/">Demo of app</a></li>
<li><a href="http://github.com/uswaretech/Django-Socialauth/tree/master">Code for app</a></li>
<li><a href="http://openid.net/developers/">http://openid.net/developers/</a></li>
<li><a href="http://developer.yahoo.com/openid/">http://developer.yahoo.com/openid/</a></li>
<li><a href="http://code.google.com/apis/accounts/docs/OpenID.html">http://code.google.com/apis/accounts/docs/OpenID.html</a></li>
<li><a href="http://apiwiki.twitter.com/OAuth-FAQ">http://apiwiki.twitter.com/OAuth-FAQ</a></li>
<li><a href="http://developers.facebook.com/connect.php">http://developers.facebook.com/connect.php</a></li>
</ol>

<h2>Below the hoods</h2>

<ol>
<li>For all providers(except Facebook) there are two urls and views. (start and done)</li>
<li>Start sets up the required tokens, and redirects and hands off to the correct
provider.</li>
<li>Provider handles authentication on their ends, and hands off to Us, providing
authorization tokens.</li>
<li>In done, we check if the user with these details already exists, if yes, we
log them in. Otherwise we create a new user, and log them in.</li>
</ol>

<p>For all of these, we use standard django authenication system, with custom
<code>auth_backends</code>, hence all existing views, and decorators as <code>login_required</code>
will work as expected.</p>

<h2>Urls</h2>

<pre><code>/login/ Login page. Has all the login options  
/openid_login/ AND /openid_login/done/  
/yahoo_login/ AND /yahoo_login/done/  
/gmail_login/ AND /gmail_login/done/  
/twitter_login/ AND /twitter_login/done/  
/facebook_login/done/ We dont have a start url here, as the starting tokens are  
set in a popup, as per FB Connect recommendations.
</code></pre>

<h2>Implementation</h2>

<ol>
<li>Install required libraries.</li>
<li>Get tokens and populate in localsettings.py</li>
<li>Set the token callback urls correctly at Twitter and Facebook.</li>
<li>Add the OpenId middleware. Set the Authentication backends. (Set in localsettings.example.py)</li>
</ol>


<p>Related posts:<ol><li><a href='http://uswaretech.com/blog/2009/04/develop-twitter-api-application-in-django-and-deploy-on-google-app-engine/' rel='bookmark' title='Permanent Link: Develop Twitter API application in django and deploy on Google App Engine'>Develop Twitter API application in django and deploy on Google App Engine</a></li>
<li><a href='http://uswaretech.com/blog/2009/02/how-to-build-a-facebook-app-in-django/' rel='bookmark' title='Permanent Link: How to build a Facebook app in Django'>How to build a Facebook app in Django</a></li>
<li><a href='http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/' rel='bookmark' title='Permanent Link: Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.'>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/feed/</wfw:commentRss>
		<slash:comments>144</slash:comments>
		</item>
		<item>
		<title>Python Wrapper on Bing API</title>
		<link>http://uswaretech.com/blog/2009/06/bing-python-api/</link>
		<comments>http://uswaretech.com/blog/2009/06/bing-python-api/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 06:39:33 +0000</pubDate>
		<dc:creator>lakshman</dc:creator>
				<category><![CDATA[api]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[bing]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://uswaretech.com/blog/?p=515</guid>
		<description><![CDATA[The newly launched search engine Bing has a simple restful API. We have created a thin Python wrapper over this API, which allows to query the Bing servers in a very pythonic way. Installing this is as easy as easy_install bingapi. [Or get it here or here ] Using from bingapi import bingapi bing = [...]


Related posts:<ol><li><a href='http://uswaretech.com/blog/2009/06/yahoo-boss-python-api/' rel='bookmark' title='Permanent Link: Yahoo BOSS python api'>Yahoo BOSS python api</a></li>
<li><a href='http://uswaretech.com/blog/2009/06/better-python-package-management-using-source-and-version-control-systems/' rel='bookmark' title='Permanent Link: Better Python package management using source and version control systems'>Better Python package management using source and version control systems</a></li>
<li><a href='http://uswaretech.com/blog/2009/03/finding-keywords-using-python/' rel='bookmark' title='Permanent Link: Finding keywords using Python'>Finding keywords using Python</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>The newly launched search engine <a href="http://www.bing.com/">Bing</a> has a simple restful API. We have created a thin Python wrapper over this API, which allows to query the Bing servers in a very pythonic way.</p>

<p>Installing this is as easy as <code>easy_install bingapi</code>.</p>

<p>[Or get it <a href="https://svn.uswaretech.com/bingapi/">here</a> or <a href="http://pypi.python.org/pypi/bingapi/0.01">here</a> ]</p>

<p>Using</p>

<pre><code>from bingapi import bingapi
bing = bingapi.Bing(&lt;appid&gt;)
bing.do_web_search('Usware Technologies')
</code></pre>

<hr />

<p>The README from the project is posted below, which provides more details on using this.</p>

<p>bingapi.py is a very thin python wrapper over the Bing API.
Bing provides a very simple Restful interface to their search engine
and provides results in JSON and XML interface.</p>

<p>With bingapi.py, we query the rest urls to get the JSON response,
which is parsed with simplejson.py. bingapi.py just adds simple niceties
like logging and error handling.</p>

<h3>Installing bingapi.py</h3>

<pre><code>easy_install bingapi
</code></pre>

<p>or Svn it from <code>https://svn.uswaretech.com/bingapi/</code></p>

<h3>Using bingapi.py</h3>

<p>To use this library, you need to have an Appid from Bing. You can get it from

http://www.bing.com/developers/createapp.aspx</p>

<p>The meat of bingapi.py is <code>talk_to_bing</code> function. It takes a query(eg. salsa)
and a sources(eg. web) and other optional parameters in extra_args
(eg. {&#8216;web.offset&#8217;: 40}) and returns the dictionary of Bing&#8217;s response.</p>

<p>eg</p>

<pre><code>In [2]: from bingapi import bingapi

In [3]: bing = bingapi.Bing('&lt;Your Appid&gt;')

In [4]: bing.talk_to_bing('salsa', sources='web')
Out[4]: 
..........

In [5]: bing.talk_to_bing('salsa', sources='web', extra_args={'web.offset':40})
Out[5]: 
..........
</code></pre>

<p>Class <code>Bing</code> also provides utility functions to do the various types of seraches
so you dont have to remember the source type.</p>

<p>The various functions available are,</p>

<pre><code>do_web_search
do_image_search
do_news_search
do_spell_search
do_related_search
do_phonebook_search
do_answers_search
</code></pre>

<p>All of them are used similarly.</p>

<pre><code>In [6]: bing.do_web_search('salsa')
Out[6]: 
..........

In [7]: bing.do_image_search('salsa')
Out[7]: 
..............

In [8]: bing.do_answers_search('what is salsa')
Out[8]: 
...............
</code></pre>

<p>If you want to use multiple sources in one call you can use <code>talk_to_bing</code>
directly as</p>

<pre><code>In [10]: bing.talk_to_bing(query='salsa', sources='web news')
Out[10]:
............
</code></pre>

<p>But, but.. Why bing? you ask. Well, other than the fact that bing search is indeed better in some areas, particularly multimedia, bing has fairer <a href="http://www.bing.com/community/blogs/developer/archive/2009/05/28/announcing-the-new-live-search-api-version-2-0-beta.aspx">usage quota and API restrictions</a>.</p>

<h3>Resources</h3>

<ul>
<li><a href="http://www.bing.com/developers/">http://www.bing.com/developers/</a></li>
<li><a href="http://pypi.python.org/pypi/bingapi/0.01">http://pypi.python.org/pypi/bingapi/0.01</a></li>
</ul>

<hr />

<p>Developing a search mashup? Bing API? <a href="http://uswaretech.com/blog/2008/04/new-tutorial-building-a-search-engine-with-appengine-and-yahoo/">Yahoo</a>, Google APIs? <a href="http://uswaretech.com/contact/">We can help</a>.</p>


<p>Related posts:<ol><li><a href='http://uswaretech.com/blog/2009/06/yahoo-boss-python-api/' rel='bookmark' title='Permanent Link: Yahoo BOSS python api'>Yahoo BOSS python api</a></li>
<li><a href='http://uswaretech.com/blog/2009/06/better-python-package-management-using-source-and-version-control-systems/' rel='bookmark' title='Permanent Link: Better Python package management using source and version control systems'>Better Python package management using source and version control systems</a></li>
<li><a href='http://uswaretech.com/blog/2009/03/finding-keywords-using-python/' rel='bookmark' title='Permanent Link: Finding keywords using Python'>Finding keywords using Python</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://uswaretech.com/blog/2009/06/bing-python-api/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</title>
		<link>http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/</link>
		<comments>http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/#comments</comments>
		<pubDate>Thu, 08 May 2008 16:31:53 +0000</pubDate>
		<dc:creator>shabda</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://42topics.com/blog/?p=54</guid>
		<description><![CDATA[This is a parable in two parts. Story and the Moral. If you are in a hurry you might want to skip ahead to the moral (But you miss the beautiful story). The Story Long ago was the kingdom of Foobr, a kingdom mostly of shepherds, who grazed their sheep under the benevolent but watchful [...]


Related posts:<ol><li><a href='http://uswaretech.com/blog/2008/04/parable-of-the-captcha-the-futility-of-fighting-automated-spam-with-automated-methods/' rel='bookmark' title='Permanent Link: Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.'>Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.</a></li>
<li><a href='http://uswaretech.com/blog/2008/04/parable-of-the-nofollow/' rel='bookmark' title='Permanent Link: Parable of the nofollow'>Parable of the nofollow</a></li>
<li><a href='http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/' rel='bookmark' title='Permanent Link: Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.'>Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>This is a <a href="http://en.wikipedia.org/wiki/Parable">parable</a> in two parts. <a href="#story"> Story</a> and the <a href="#moral">Moral</a>. If you are in a hurry you might want to skip ahead to the <a  href="#moral">moral</a> (But you miss the beautiful story).</p>

<p><a name="story"></a></p>

<h3>The Story</h3>

<p><img src="http://uswaretech.com/blog/wp-content/uploads/2008/05/sheep.jpg" alt="" title="sheep" width="132" height="126" class="left" />
Long ago was the kingdom of Foobr, a kingdom mostly of shepherds, who grazed their sheep under the benevolent but watchful eyes of their King Oggle. There were all types of shepherds in the kingdom, some had only a few sheep, and some had a few hundreds. The sheep too were of all types and varieties, some gave a ton of wool, and some only a few bales.</p>

<blockquote class="right">
What <del>man</del> webmaster of you, having an hundred <del>sheep</del> sites, if he <del>lose one of them</del> gets one penalised, doth not leave the ninety and nine in the wilderness, and go after that which is lost, until he find it?
<br />
<a href="http://scripturetext.com/luke/15-4.htm">Luke 15:4</a>
</blockquote>

<p>For a long time the kingdom, and its economy based on wool prospered well. It was not a very efficient marketplace, though, as the shepherds who had more sheep grazed more of the common fodder and pastures, and these shepherds got rich. The shepherds who had a single but more productive sheep could only make so much wool!</p>

<p><img src="http://uswaretech.com/blog/wp-content/uploads/2008/05/crown.jpg" alt="" title="crown" width="113" height="123" class="right" />
The king though of himself as hard but fair. &#8220;Ah! I need to overcome this inefficiency in my kingdom. I need to reward those who use resources judiciously, and punish those who have a lot of inefficient sheep.&#8221; he thought. He asked his Sages to get to work to determine which sheep were inefficient, and needed to be killed! &#8220;This will increase the efficiency in my kingdom, and make  the kingdom happier overall.&#8221;</p>

<p>The sages worked hard, analyzed millions of records and found out that red sheep were less efficient than other sheep. &#8220;If we kill all the red sheep, the efficiency of the kingdom will go up by 10% and in two years the production by 5%.&#8221; The king was duly impressed and ordered all the red sheep killed. As promised, the efficiency increased by 10% overnight!</p>

<p><code>****</code></p>

<p>Ramu was a simple shepherd. He had but one sheep. It was efficient, but as luck would have it red in color. The king&#8217;s decree left him without a means of income. &#8220;I guess this was my bad luck. I will not buy a red sheep next year, and buy only the most efficient sheep.&#8221;</p>

<p>For some reason, unexplained at that time, the quick gains in efficiency were not maintained. &#8220;I know, we need to kill the least efficient sheep again.&#8221; So the sages went back to their laboratories again, and found that now the pink sheep were the least efficient. The king ordered all pink sheep destroyed. Guess what was the color of Ramu&#8217;s sheep?</p>

<p>Ramu was not alone in this misery of his. Many other people, who had but one sheep had their sheep killed, and went to a starving condition. The real culprits, the people who the king wanted to target, the people who had hundreds of sheep, lost many of their sheep as well, but only a percentage of their total sheep. Everyone saw this happening, and even those people who had only one efficient sheep decided to hedge their bets, and started having many inefficient sheep. The more sheep the king killed, the more prudent it became to have many inefficient sheep. In no time efficiency had plummeted, and total production of wool was a fraction of earlier.</p>

<p><a name="moral"></a></p>

<h3>The Moral</h3>

<p>Spam in webpages is a major problem facing search engines. For long the Search Engines have tried to counter this problem by algorithms in which nobody knows which website will be classified as spam. If the algorithms decides that your website is spam, boo, it is toast.</p>

<p>With Google driving <a href="http://searchengineoptimism.com/Google_refers_70_percent.html">most</a> of the traffic to most sites, no webmaster can afford to have his only source of income depend on Google&#8217;s whims. This means that they must hedge their bets against the vagaries of Google&#8217;s changing guidelines, and instead of building one kick-ass website must build a large number of websites. Bye-bye engaging content, welcome mediocrity.</p>

<p>For trade to flourish, and for wealth to be made there must be a set of rules which everybody knows, a priory, and if they hold themselves to these rules they must be assured of their safety. This is not the case on the Internet. On the internet, rule of <a href="http://www.google-watch.org/">man</a>, not rule of <a href="http://en.wikipedia.org/wiki/Rule_of_law">law</a> works. Google is the judge, jury and executioner. This leads to a wild west landscape where webmasters must hedge their bets by having a large number of so-so websites.</p>

<p>In security, for long we have known that &#8220;<a href="http://en.wikipedia.org/wiki/Security_through_obscurity">Security through Obscurity</a>&#8221; does not work. I postulate that even in fighting spam, &#8220;Security through Obscurity&#8221; does not work. After all for ten years Search Engines have tried fighting spam though Security through Obscurity, is it not time that we rethink the strategies?</p>

<p>One of the biggest inventions for English society, which allowed their citizens certain inviolable rights, and which allowed them to build a strong society on rule of law, not rule of men was the <a href="http://en.wikipedia.org/wiki/Magna_Carta">Magna Carta</a>, which proclaimed,</p>

<blockquote>
NO Freeman shall be taken or imprisoned, or be disseised of his Freehold, or Liberties, &#8230; but by lawful judgment of his Peers, or by the Law of the Land&#8230;.
</blockquote>

<p>We need a similar proclamation</p>

<blockquote>
No Website shall be taken or penalized, or be relieved of its Ranking, or Traffic, &#8230;. but by the lawful judgement of the Law of the Land which are known to all &#8230;.
</blockquote>

<p>This will give the webmasters the peace of mind to focus their energies on one website, with deep and engaging content instead of making them hedge their bets on many mediocre web site. It will give the peace of mind that they will not be penalized by an ever changing law, which will make some of their tactics shady, and take away their only source of income.</p>

<p>Here is to a better internet.</p>

<hr />

<p>If you liked this, you might also like <a href="http://42topics.com/blog/2008/04/parable-of-the-captcha-the-futility-of-fighting-automated-spam-with-automated-methods/">Parable of the Captcha</a> or <a href="http://42topics.com/blog/2008/04/parable-of-the-nofollow/">Parable of the Nofollow</a>. The name is of course stolen from <a href="http://en.wikipedia.org/wiki/Parable_of_the_Lost_Sheep">Parable of the Lost Sheep</a></p>

<p>Oh and yes, <a href="http://www.42topics.com/">42topics</a> is live now. Did you know we have an <a href="http://www.42topics.com/SEO/">SEO</a> section, and that you can <a href="http://42topics.com/createtopic/">create a topic</a> about topics you care about?</p>


<p>Related posts:<ol><li><a href='http://uswaretech.com/blog/2008/04/parable-of-the-captcha-the-futility-of-fighting-automated-spam-with-automated-methods/' rel='bookmark' title='Permanent Link: Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.'>Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.</a></li>
<li><a href='http://uswaretech.com/blog/2008/04/parable-of-the-nofollow/' rel='bookmark' title='Permanent Link: Parable of the nofollow'>Parable of the nofollow</a></li>
<li><a href='http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/' rel='bookmark' title='Permanent Link: Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.'>Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Parable of the nofollow</title>
		<link>http://uswaretech.com/blog/2008/04/parable-of-the-nofollow/</link>
		<comments>http://uswaretech.com/blog/2008/04/parable-of-the-nofollow/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 08:35:47 +0000</pubDate>
		<dc:creator>piyush</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://42topics.com/blog/?p=18</guid>
		<description><![CDATA[Part 1: Webpage and the Umans In a time not so long ago, and not so far off existed a country called Theweb. It was a well populated place, popluated with upstanding citizens who called themselves Webpage, and lived together in harmony. Each Webpage knew some other web pages in Theweb, and though well of [...]


Related posts:<ol><li><a href='http://uswaretech.com/blog/2008/04/parable-of-the-captcha-the-futility-of-fighting-automated-spam-with-automated-methods/' rel='bookmark' title='Permanent Link: Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.'>Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.</a></li>
<li><a href='http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/' rel='bookmark' title='Permanent Link: Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.'>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</a></li>
<li><a href='http://uswaretech.com/blog/2009/03/ajax-seo/' rel='bookmark' title='Permanent Link: AJAX &amp; SEO'>AJAX &amp; SEO</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><h3>Part 1: Webpage and the Umans</h3>

<p><img class="left" src="http://uswaretech.com/blog/wp-content/uploads/2008/04/rel_nof.jpg" alt="" title="rel_nof" width="240" height="180" class="alignnone size-medium wp-image-26" />
In a time not so long ago, and not so far off existed a country called <code>Theweb</code>. It was a well populated place, popluated with upstanding citizens who called themselves <code>Webpage</code>, and lived together in harmony.</p>

<p>Each Webpage <a href="http://en.wikipedia.org/wiki/Hyperlink">knew</a> some other web pages in Theweb, and though well of them. You could ask a Webpage if they knew another Webpage, and they always replied truthfully.</p>

<p>Next to Theweb existed another country called <code>Realworld</code>. Its citizens, called <code>Umans</code> started to trade with Theweb, and Webpages. When Umans wanted any information, they traded with Webpage which had the information. This trade of information for time worked well, but for one problem.</p>

<p>For Umans finding the Webpage they wanted to Trade with was hard, as there were too many Webpages. Asking each page, if they had the information the Uman seeked, or knew a Webpage who did, was difficult for the Umans.</p>

<p>Meanwhile some Umans had created a Deus ex machina to solve this problem. Called the <code>G.O.Gle</code>, it had knowledge of each Webpage from Theweb. Umans could ask the G.O.Gle, which Webpage had the information they seeked, and the G.O.Gle found the correct answers.</p>

<p>Yet the G.O.Gle needed to find which Webpage was more important. For this it devised as system, where it asked each Webpage about the other Webpages they knew about. The Webpage which was known by many Webpages was deemed to be important, and the G.O.Gle asked more Umans to trade with that Webpage.</p>

<p>This system seemed to work well, with trade between Umans and Webpages flowing freely. Yet when trade starts, can corruption be far behind? Unlike Theweb, Realworld had evil citizens as well. Called <code>S.P.Ammers</code>, they wanted to divert the trade to the Webpages they wanted. S.P.Ammers could <a href="http://en.wikipedia.org/wiki/Blog_spam"><code>hypnotise</code></a> a Webpage into telling the G.O.Gle about pages they did not know about.</p>

<p>This baffled the G.O.Gle. Earlier each Webpage told about the other Webpages it knew about truthfully. So using popularity of the Webpage, it could find which Webpage was important. Now it could not be sure if the Webpage was telling the truth, or it has been hypnotized by any S.P.Ammer. The G.O.Gle was stumped, its results started getting flawed, the trade between Webpage and Umans was disrupted.</p>

<h3>Part 2: Revenge of the G.O.Gle</h3>

<p>After trying to find a solution to this problem for a long time, the G.O.Gle had a brainwave. &#8220;Why not solve this problem at the source. Let the Webpages deal with this problem.&#8221; So G.O.Gle, who now had a huge say in the trade, asked Webpages to deal with other Webpages in a different way. Earlier, when asked if a Webpage knew another Webpage, they could have said &#8220;Yes, I know her&#8221; or &#8220;No, I do not know her&#8221;. Now when a Webpage knew another Webpage, but was not sure if it was work of S.P.Ammer, it could also say &#8220;Yes, I know her. <code>NOFOLLOW</code>.&#8221;.</p>

<p>Everyone was amazed by the great wisdom shown by the great wisdom shown by the G.O.Gle, and praised this solution.</p>

<h3>Part 3: Collateral damage</h3>

<p>A few years had passed, and the work of S.P.Ammers was still relentless. They were still busy hypnotizing Webpage, to suit the trade to their liking. What everyone seemed to have forgotten in the affair of the Nofollow, was that there were other methods of trade apart from going via G.O.Gle. And for S.P.Ammers hypnotizing the Webpages did not take any work. Given enough volumes, they could still mould the Trade to their liking.</p>

<p>And also by now Webpages had become very wary of other Webpages. If they were not absolutely sure about the other Webpage, they were telling, &#8220;Yes, I know her. NOFOLLOW.&#8221;.</p>

<p>The whole Theweb was build on the premise of one Webpage knowing many other Webpages. They even had a name for this relationship, <code>Hyperlinks</code>.</p>

<p>Influencial citizens like Ms. <code>W.I.Kipedia</code>, refused to know any one. Even if she knew a Webpage, and being such an upstanding citizen, she knew all the nice people, she told &#8220;Yes, I know her. NOFOLLOW.&#8221;.</p>

<p>For the G.O.Gle also this proved to be can of worms. The basic information using which they were able to find which Webpages were important was skewed, and so the results with G.O.Gle were skewed as well.</p>

<h3>Part 4: The Good news</h3>

<p>Unfortunately there is no good news. The few years have passed, and S.P.Ammers have been winning. More people are falling back behind the wall of blanket Nofollow, without regards for whether this will deter spammers. There is less data avaialable for the G.O.Gle to find important Webpages, which maens that unimportant ages are considered important. Trade between Theweb, and Realworld is happening, but spammers can turn the flow of trade to their will.</p>

<h3>Moral of this Parable</h3>

<p>There is no parable without morals, is there? Nofollow, of course, have not been as successful as first promised. Sites with clean link sources like <a href="http://en.wikipedia.org">Wikipedia</a> label all external links as nofollow. This means that useful webpages, which Wikipedia links to(and hence are important and useful), are ranked lower than a page which a spammer creates, and which are linked from a link farm.</p>

<p>So what is the solution? As argued in <a href="http://www.shirky.com/writings/group_enemy.html">The Tragedy of the Commons</a>, some social problems have no purely technical solution. This problem falls in one of those problems. A much better solution is to use something like <a href="http://akismet.com/development/api/">Akismet API</a> to check if a link looks like spam, and let user handle the few false negative which happen.</p>


<p>Related posts:<ol><li><a href='http://uswaretech.com/blog/2008/04/parable-of-the-captcha-the-futility-of-fighting-automated-spam-with-automated-methods/' rel='bookmark' title='Permanent Link: Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.'>Parable of the Captcha &#8211; The futility of fighting automated spam with automated methods.</a></li>
<li><a href='http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/' rel='bookmark' title='Permanent Link: Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.'>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</a></li>
<li><a href='http://uswaretech.com/blog/2009/03/ajax-seo/' rel='bookmark' title='Permanent Link: AJAX &amp; SEO'>AJAX &amp; SEO</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://uswaretech.com/blog/2008/04/parable-of-the-nofollow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Marketing lessons from Google</title>
		<link>http://uswaretech.com/blog/2008/04/marketing-lessons-from-google/</link>
		<comments>http://uswaretech.com/blog/2008/04/marketing-lessons-from-google/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 08:31:36 +0000</pubDate>
		<dc:creator>shabda</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://42topics.com/blog/?p=12</guid>
		<description><![CDATA[Widely respected for their engineering talent, and amazing hacker culture, Google is never credited for the amazing marketing they do. When we look for the companies which have done a great job at marketing/branding, we think of Guiness, Apple, or Ikea. Today I want to talk about the marketing lessons we can learn from Google. [...]


Related posts:<ol><li><a href='http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/' rel='bookmark' title='Permanent Link: Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.'>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</a></li>
<li><a href='http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/' rel='bookmark' title='Permanent Link: Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.'>Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.</a></li>
<li><a href='http://uswaretech.com/blog/2008/04/google-appengine-first-impressions/' rel='bookmark' title='Permanent Link: Google Appengine &#8211; First Impressions'>Google Appengine &#8211; First Impressions</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Widely respected for their engineering talent, and amazing hacker culture, Google is never credited for the amazing marketing they do. When we look for the companies which have done a great job at marketing/branding, we think of Guiness, Apple, or Ikea. Today I want to talk about the marketing lessons we can learn from Google.</p>

<h3>It is all about the ROI.</h3>

<p>For <a href="http://barcamp.org/BarCampHyderabad5">Barcamp Hyderbad</a>, Google let us use its offices. They generally let you use their premises for <a href="http://code.djangoproject.com/wiki/Sprint14Sep">hacker events</a>. Let us calculate the ROI for Google for allowing this event.</p>

<p>This event was on Saturday, so cost of distraction to normal operations was minimal. There is some cost incurred in lighting and electricity, and Google&#8217;s famed free snacks. For this the 300 odd hackers, in this event, get to see Google&#8217;s campus/infrastructure/people first hand. In many companies in India, the cost to get an employee is in the ballpark of INR 50000. If even ten people from this group decide to sometime join Google, the ROI for Google is made up, many, many times over.</p>

<p>This is such a no-brainer, I always wonder why every company does not go all out to ask people to organize such events in their campuses.</p>

<h3>Owning a word in prospect&#8217;s mind is the best way you can market your self.</h3>

<p>&#8220;The most powerful concept in marketing is owning a word in the prospect&#8217;s mind&#8221; &#8211; So says <a href="http://blog.kowalczyk.info/articles/22-marketing-laws.html">Al Ries</a>.</p>

<p>Google does not yet own own the word search, at least not yet. But they own the word, PAGERANK, in the prospect&#8217;s(webmaster&#8217;s) mind. Now pagerank is a grossly overhyped concept, and is just one of the 200+ factors even Google considers when ranking a page. Yet as this is simple and easy to understand concept, countless webmasters have spent countless hours agonizing over their pagerank. Using pagerank, Google is able to push their toolbar(people install toolbar so that they can see the page rank of each web page), which helps them get more data, and to further refine their search.</p>

<h3>You should always be pushing your products.</h3>

<p>In his book <a href="http://www.amazon.com/High-Performance-Entrepreneur-Subroto-Bagchi/dp/0670999180">The High Performance Enterpreneur</a>, <a href="http://www.mindtree.com/aboutus/subroto_bagchi.html">Subroto Bagchi</a> tells the story when he was in a high profile keynote address by Bill Gates. Subroto Bagchi was sitting expecting Bill Gates to tell the directions IT was going to take, and give a speech befitting a visionary, and instead BG gave a speech telling how great Windows XP was, and a sales pitch about WinXP. &#8220;If you are not proud of your product, and sell it at every opportunity, who will&#8221; &#8211; infers SB.</p>

<p>Google mixes new products it launches, or wants to give a boost, very strongly in its organic search results. A <a href="http://www.google.com/search?hl=en&amp;rlz=1B3GGGL_enIN217IN217&amp;q=video&amp;btnG=Search">search for video</a> shows embedded Youtube links in organic search results. Most <a href="http://www.google.com/search?hl=en&amp;rlz=1B3GGGL_enIN217IN217&amp;q=django&amp;btnG=Search">searches</a> link to Google-groups, and Google videos. For a long time Google pushed Booksearch with web searches. Not that it is bad, but you must always be pushing your product, <a href="http://42topics.com">nepotistically</a>.</p>

<h3>If you can&#8217;t be first in a category, set up a new category you can be first in.</h3>

<p>This is again from <a href="http://en.wikipedia.org/wiki/The_22_Immutable_Laws_of_Marketing">The 22 Immutable Laws of Marketing</a>. Google can not beat Microsoft in desktop office suites, so they start a web based office suite. This seems so obvious, and yet Microsoft and Yahoo are trying to better search by playing by Google&#8217;s rules. They might create better algorithms(and I profesize that Yahoo&#8217;s algorithm is at least as good as Google&#8217;s), but <a href="http://anand.typepad.com/datawocky/2008/03/more-data-usual.html">more data beats better algorithms</a>, and Google has way more data than Yahoo or Microsoft have. Social search has so much potential, and yet we see <a href="http://search.wikia.com/wiki/Search_Wikia">half baked products from Wikia</a>?</p>

<h3>You can get away with murder, you just need to position yourself right.</h3>

<p>What would you call a software which logged every search you did, sites you visited, times you stayed on them? If not from Google, spyware, if from Google, toolbar.
Of course, you can classify this as an example of <a href="http://www.sethgodin.com/permission/">permission marketing</a>, by showing you the page rank of all sites, easy access to Google sites, they get permission to track you, and data mine you.</p>


<p>Related posts:<ol><li><a href='http://uswaretech.com/blog/2008/05/parable-of-the-single-sheep-or-how-google-is-destroying-the-internet-and-nobody-seems-to-know/' rel='bookmark' title='Permanent Link: Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.'>Parable of the single sheep &#8211; Or How Google is destroying the internet, and nobody seems to know.</a></li>
<li><a href='http://uswaretech.com/blog/2009/08/django-socialauth-login-via-twitter-facebook-openid-yahoo-google/' rel='bookmark' title='Permanent Link: Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.'>Django-SocialAuth &#8211; Login via twitter, facebook, openid, yahoo, google using a single app.</a></li>
<li><a href='http://uswaretech.com/blog/2008/04/google-appengine-first-impressions/' rel='bookmark' title='Permanent Link: Google Appengine &#8211; First Impressions'>Google Appengine &#8211; First Impressions</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://uswaretech.com/blog/2008/04/marketing-lessons-from-google/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
