<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4237299616249495356</id><updated>2011-11-27T16:11:19.322-08:00</updated><title type='text'>Technolog</title><subtitle type='html'>Thoughts on Technology and Trends</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-9050833839064203001</id><published>2010-05-04T22:17:00.000-07:00</published><updated>2010-05-05T04:36:08.930-07:00</updated><title type='text'>CAP Theorem: An informal proof</title><content type='html'>&lt;div&gt;[Attention: Pending peer review]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Prof. Eric Brewer made a conjecture in the &lt;a href="http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf"&gt;keynote speech&lt;/a&gt; at the Principles of Distributed Computing (PODC) conference in 2000. It has since been called the CAP theorem and goes as follows:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;A distributed system cannot guarantee all three properties, namely, consistency (C), availability (A), and partition tolerance (P) at the same time in the presence of network failures. It can only guarantee any two of the three.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CAP theorem has important implications for web service designers and users. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This was formally proved by &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.20.1495&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;Gilbert and Lynch&lt;/a&gt; of MIT in 2002. The formal theorem is nice but hard to understand for mere mortals like us. So I have tried to give a more informal proof that is more comprehensible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For simplicity, let's assume that the distributed system has just one object O - say, the number of tickets available for a movie show at 1 pm today. So it is just one number. We have built an awesome web service that offers just 2 operations: read ticket count, and update ticket count. The web service runs on a distributed system consisting of 100 nodes scattered across the internet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some definitions:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Consistency &lt;/b&gt;that web service users expect is &lt;a href="http://en.wikipedia.org/wiki/Linearizability"&gt;linearizability&lt;/a&gt;, meaning that if there are simultaneous concurrent reads and writes to the object O, the distributed/parallel system should linearize or sequence these operations in such a way that it appears to the user as executing on a single node. In effect, read operation return the value posted by the last update, and updates happen sequentially one after another.  For example, if the initial value of O is 1000 and I update it to 999 via node 53, and the next instant someone on node 72 asks for the value of O, the system should return 999 and not 1000. In other words, the users of the web service don't care if there is single server behind the web service or a massive system distributed across the four corners of the planet. They want to see the updates they made most recently, and that's it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Consistency comes in many forms.  One is strong consistency which says that any subsequent read that follows an update will always see the latest update. The other is weak consistency which says that only reads that come after certain elapsed time (called the inconsistency interval or inconsistency window) will see the update. There is no one form of consistency that is suitable for all applications. Banks need strong consistency because they handle money, but airplane reservations are ok with weak consistency because they allow overbooking. (See &lt;a href="http://cacm.acm.org/magazines/2009/1/15666-eventually-consistent/fulltext"&gt;Eventually Consistent&lt;/a&gt; for better definitions). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Availability&lt;/b&gt; means that when a read or update operation is  invoked on the system, the system will always complete the operation and respond back with a success or failure. To an observer, the web site is available.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Partition tolerance&lt;/b&gt;  means that if there is a network partition, then all the updates made to the system during the outage will be captured and propagated to all the nodes when the outage completes. That is, no updates are lost. By network partition, we mean that one or more nodes are unable to communicate with one or more other nodes in the distributed system. As a result, and during a network partition, the inconsistency interval increases dramatically - many times the normal inconsistency interval. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Informal proof&lt;/b&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Case 1&lt;/b&gt;: A and P are satisfied but C is not.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's assume that there is a network partition, i.e., some set of nodes in the distributed systems cannot communicate with another set of nodes, but each node is alive and well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will now show that either one of C, A or P is not possible or we arrive at a contradiction.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's say the user invokes the web service to make an update during the network partition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The system now has two choices: to allow the update or not allow the update. If the system decides to not allow the update, then the system is not Available (A).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the system decides to allow the update, then the system is Available. However, the question is - will the update reach all the nodes?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the update does not reach all the nodes, then the system is not partition tolerant (P). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, if the update reaches all the nodes, the system is partition tolerant (P). But when do the updates reach the nodes?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the updates reach instantly or within the inconsistency interval, then the network is ok and there is no network partition  - a contradiction to our assumption we made at the start of the proof.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the updates do not reach all the nodes instantly or within the  inconsistency interval, then some nodes in the system have not been informed of the update. Thus the value of O is different on different nodes after the inconsistency interval has elapsed. Therefore the system is not Consistent (C).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Case 2&lt;/b&gt;: If A and C are satisfied by the system, then P is not satisfied.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's say there is a network partition in progress. Let's say the user invokes the web service to make an update during the network partition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The system now has two choices: to allow the update or not allow the update. If the system decides to not allow the update, then the system is not Available (A).&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the system decides to allow the update, then the system is Available. However, the question is - will the update be reflected on all the nodes?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the update is not reflected on all the nodes, then the system cannot be consistent (C). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the update is reflected on all the nodes, then the system is consistent (C). However, this implies that communication was possible between the nodes. This contradicts our assumption that there was a network partition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This implies that the update made during the network partition was not reflected on all the nodes. Since the system is consistent (C), and the only option for it to remain consistent is to abandon the update made during the network partition. This means the system is not Partition Tolerant (P).&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Case 3&lt;/b&gt;: If C and P are satisfied by the system, A is not satisfied.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's say there is a network partition, and let's assume the system is consistent (C). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since the system is consistent, it must ensure that all the updates are made available to all the nodes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When there is a network partition, the system has two choices: to ignore the updates made during the network outage, or to save them for later updates.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the system ignores the updates made during the network outage, then it is not partition tolerant (P).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Therefore the system must save the updates for propagating them to all the nodes when the network outage is done. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given that the system is consistent (C), it cannot allow reads to proceed anywhere in the system as long as there are pending updates to be propagated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the systems allows the reads to proceed before the updates are propagated, then the reads will see old values and not the latest values waiting to be propagated, thus contradicting consistency (C) assumption.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Therefore it must not respond to the read requests coming into the system. This means the system is not Available (A).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;End of Informal proof&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Amazon's web services make various tradeoffs between A and C given P. Interested readers can read Werner Vogels' article on being &lt;a href="http://cacm.acm.org/magazines/2009/1/15666-eventually-consistent/fulltext"&gt;Eventually Consistent&lt;/a&gt;. It is vital for web developers to understand the limitations of web services so that they can build more reliable applications that depend on web services.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-9050833839064203001?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/9050833839064203001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2010/05/cap-theorem-informal-proof.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/9050833839064203001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/9050833839064203001'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2010/05/cap-theorem-informal-proof.html' title='CAP Theorem: An informal proof'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-3601927245485606127</id><published>2009-10-29T23:59:00.000-07:00</published><updated>2009-10-30T01:44:56.902-07:00</updated><title type='text'>Cost of YouTube Service on Amazon S3</title><content type='html'>YouTube hit a milestone recently - it served &lt;a href="http://youtube-global.blogspot.com/2009/10/y000000000utube.html"&gt;1 billion videos per day&lt;/a&gt;. I was wondering how much it would cost Google to serve these videos. It seems to be a lot but how much?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since we don't know Google's hosting costs, let's calculate it in a different way - from the published rates of Amazon S3 service. Note that this calculation is primarily focused on storage and bandwidth costs. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are some stats to work with:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.websiteoptimization.com/speed/tweak/average-web-page/"&gt;average video size on YouTube is 10 MB&lt;/a&gt; (maybe slightly dated)&lt;/li&gt;&lt;li&gt;videos served per month 30 billion&lt;/li&gt;&lt;li&gt;20 hours of video uploaded each minute, or 864,000 hours of video per month&lt;/li&gt;&lt;li&gt;average size of 1 hour of video = 0.5GB (calculated at bit-rate of 1150 kbps for VCD quality vide0)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Data transferred out per month to view the videos is:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;30billion * 10MB = 300 billion MB  = 292,968750 GB&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From the &lt;a href="http://calculator.s3.amazonaws.com/calc5.html"&gt;Amazon S3 calculator&lt;/a&gt;, this comes to $29 million/month.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cost of videos transferred in per month is:&lt;/div&gt;&lt;div&gt;0.5GB * 864000 = 432,000 GB&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From the Amazon S3 calculator, it is $43,200/month.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Data transfer out dominates the data transfer-in costs. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Storing the new video each month costs $66,000/month. (Cost of holding previous videos is not calculated since I don't have that data).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The grand total is around $29,366,380/month or about $352 million per year.  The real cost to Google would be lower than this (perhaps by 10-20%), but $352 million seems to be the upper limit for this year. This is quite similar to the estimates made by &lt;a href="http://www.multichannel.com/article/339947-YouTube_s_Bandwidth_Bill_Estimated_At_300M_For_2009.php"&gt;Credit Suisse report&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-3601927245485606127?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/3601927245485606127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/10/cost-of-youtube-service-on-amazon-s3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/3601927245485606127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/3601927245485606127'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/10/cost-of-youtube-service-on-amazon-s3.html' title='Cost of YouTube Service on Amazon S3'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-6080461745872781463</id><published>2009-10-29T22:45:00.000-07:00</published><updated>2009-10-29T23:26:21.519-07:00</updated><title type='text'>Cost of Amazon s3 vs Apple's MobileMe</title><content type='html'>I have been using Apple's MobileMe as a backup solution for a while and was wondering if Amazon S3 would work out cheaper than MobileMe. With Firefox extension such as &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3247"&gt;S3Fox&lt;/a&gt; it is equally easy to use Amazon s3 for backup. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MobileMe costs $99/year for 20GB storage and 200GB of data transfer per month. Using the &lt;a href="http://calculator.s3.amazonaws.com/calc5.html"&gt;Amazon Calculator&lt;/a&gt;, I entered the following numbers: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Storage: 20 GB-months, i.e., using the full storage of 20GB per month&lt;/li&gt;&lt;li&gt;Data transfer in: 100GB/month, and Data transfer out: 100 GB/month. This is assuming my data transfer is equally used between input and output. This is usually not the case but let's assume it for simplicity in calculation.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Amazon S3 cost comes to $3 for storage/month and $27 for data-transfer/month, for a grand total of $30/month, or $360/year, a whopping 3.6 times more than MobileMe. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More than the storage, it is the data-transfer costs that add up at Amazon. So if you were to go easy on the data-transfer (a typical use case when used as a backup), then the costs will come down. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What is the break even point? After tweaking the numbers, I found that if you store approximately  20GB/month and your data transfer is approximately 40GB/month (in and out included), then the price of Amazon s3 and Apple's MobileMe are the same. Beyond this, MobileMe is a better value. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In other words, Amazon S3 is a better value if you are mainly interested in using it as a storage device and data-transfer is small. On the other hand, if your data-transfer needs are high (e.g., as in hosting a popular video), MobileMe is better value. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-6080461745872781463?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/6080461745872781463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/10/cost-of-amazon-s3-vs-apples-mobileme.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/6080461745872781463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/6080461745872781463'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/10/cost-of-amazon-s3-vs-apples-mobileme.html' title='Cost of Amazon s3 vs Apple&apos;s MobileMe'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-5315667526361135628</id><published>2009-10-25T00:56:00.000-07:00</published><updated>2009-10-25T01:15:32.521-07:00</updated><title type='text'>Kindle App on the iPhone</title><content type='html'>Recently, I was very excited about buying the new Kindle with international wireless. After doing a little bit of research, I stumbled upon the &lt;a href="http://www.amazon.com/gp/feature.html/ref=kinww_ddp?docId=1000301301"&gt;Kindle App for iPhone&lt;/a&gt;. Guess what, it is an excellent app. You can easily buy books from the Kindle store and it will appear on your iPhone.  The iPhone app was  so easy to use that I wonder if it is really necessary to buy the Kindle Reader.&lt;br /&gt;&lt;br /&gt;Granted that the Kindle reader has a bigger screen and the battery lasts longer than the iPhone, but the iPhone screen is good enough for me.  If you intend to read a book continuously for a long time, the Kindle may be better on your eyes, but for a quick read to kill time, the iPhone is good enough.&lt;br /&gt;&lt;br /&gt;One thing I found lacking in the Kindle app for iPhone is the settings button. There is no way to prevent the app from using the wifi/3G/GPRS network for internet access when you don't want it to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-5315667526361135628?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/5315667526361135628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/10/kindle-app-on-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5315667526361135628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5315667526361135628'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/10/kindle-app-on-iphone.html' title='Kindle App on the iPhone'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-2870548626967503249</id><published>2009-09-15T10:17:00.000-07:00</published><updated>2009-09-15T10:27:24.606-07:00</updated><title type='text'>Google's Fast Flip or Fast Flop?</title><content type='html'>Fast Flip is an evolutionary step ahead in browsing for information. To determine if this is going to be a winner, we need to determine if Fast Flip is going to be a win-win-win for readers, publishers, and Google itself.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Who is the target audience?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fast Flip is similar to a RSS feed reader except that you can also see the page as the website intended you to see it. If you don't care about the visual factor and any formatting is good enough for you, then Fast Flip provides no additional advantage. If you already have a feed reader, would you use Fast Flip? Not likely. So the target audience is mostly consumers who do not use a RSS feed readers - and that is the majority of the internet users.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Is it a win-win-win?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Consumers are certainly pressed for time. They would prefer any service that would eliminate the need for them to visit multiple websites.  That's why News aggregators such as Yahoo news, Google news are popular. It gives them a quick overview of the day's news. If users want to know more about an article, they click. So what's the problem that Fast Flip is trying to solve? Is it that people are frustrated about slow websites? This was a problem a decade ago. Most people have broadband now. So the claim that websites are slow doesn't seem to make sense, or does it? We will revisit this a little later.&lt;br /&gt;&lt;br /&gt;There is one interesting use case where the slowness becomes apparent. If there is an extremely popular article that everybody wants to read now but the source website can't handle the traffic, then a service such as Fast Flip backed by Google can enable users to read the story without experiencing any delay. In this case, it's a win-win-win for readers, publishers, and Google. But this is such a rare event. Clearly, Google is not banking on this use case for its service.&lt;br /&gt;&lt;br /&gt;However, generalizing the above idea raises an interesting thought. What if the publishers "outsource"  hosting of their content to Google Fast Flip - not as in web hosting, but in caching the image of their web page? Since most readers flip through information, why waste bandwidth and hosting resources on consumers that simply spend 20 seconds or less on a website. They don't even look at the ads, let alone click on them. However, the users that click through Fast Flip are the truly interested ones. To the publishers, this is the subset of readers that are of high value - they come to the site and stay longer. Displaying ads to this audience can command a much higher premium. Even though the participating websites will see a decline in traffic, the quality of the traffic will increase and thus drive their ad revenues higher. Given that Google is sharing revenue with participating web sites, the revenues are still coming in but slightly less. This is the cost of "outsourcing" the content to Google. But this will be offset by a reduction in infrastructure costs. Overall, it will benefit the publishers, but only if they transfer a significant chunk of their traffic to Google Fast Flip.&lt;br /&gt;&lt;br /&gt;In short, Google wants to keep the low value but large number of visitors on Fast Flip, but send the fewer but higher value visitors to the participating website. Is this a good deal for the publishers?&lt;br /&gt;&lt;br /&gt;Now let's revisit the "problem" of a website being slow. Given that most consumers spend no more that 20 seconds on a web page, a 10 second staggered wait time to fully load the web page is not uncommon these days. And that's 50% of a visitor's attention to a website. And that's is indeed too long! Fast Flip solves this problem and removes 50% of a reader's time and that is indeed huge. So assuming the content is deep, users will indeed opt to use Fast Flip. I can even see the standard Google search results being replaced by Fast Flip one day.&lt;br /&gt;&lt;br /&gt;Thus Fast Flip seems to be a win-win-win for all, consumers, publishers, and Google. It does seem to make business sense.  Will it work out? Only time will tell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-2870548626967503249?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/2870548626967503249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/09/googles-fast-flip-or-fast-flop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/2870548626967503249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/2870548626967503249'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/09/googles-fast-flip-or-fast-flop.html' title='Google&apos;s Fast Flip or Fast Flop?'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-7710911273140616325</id><published>2009-08-27T00:47:00.000-07:00</published><updated>2009-08-27T01:07:38.328-07:00</updated><title type='text'>2 Great Tools to Check Global Accessibility to Your Website</title><content type='html'>Would you like to know how long it takes for your customers/readers across the world to reach your website? Any techie would know that you can use the ping tool from your machine. But how do you reach the four corners of the world to do the ping test?&lt;br /&gt;&lt;br /&gt;Try &lt;a href="http://www.just-ping.com/"&gt;just-ping.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is a web tool that pings your website from all around the world, in fact, from 38 locations around the world at the time of this writing.&lt;br /&gt;&lt;br /&gt;Next is the &lt;a href="http://www.just-traceroute.com/"&gt;just-traceroute.com&lt;/a&gt; , again from the same  people.&lt;br /&gt;&lt;br /&gt;This has remote terminals across the world and allows you to see the route from the machine to your website. This is particularly useful to debug latency problems, and also DNS problems.&lt;br /&gt;&lt;br /&gt;Both tools will give you a glimpse into the performance of your website as seen by your customers. Of course, network latency is only part of the total performance, but it is an important one and cannot be ignored.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-7710911273140616325?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/7710911273140616325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/08/2-great-tools-to-check-global.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/7710911273140616325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/7710911273140616325'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/08/2-great-tools-to-check-global.html' title='2 Great Tools to Check Global Accessibility to Your Website'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-6756650715561197136</id><published>2009-08-21T05:42:00.001-07:00</published><updated>2009-08-21T05:50:47.400-07:00</updated><title type='text'>Superb free book for Software Architects</title><content type='html'>If you are a software architect or want to be a software architect, I highly recommend this superb free book from Microsoft. It is really a treasure trove of information for architecting software systems. It is not an academic book, rather, it incorporates wisdom from the field.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/AppArch"&gt;Application Architecture Guide 2.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Although it includes information on how to build applications on the .NET platform, it's utility is not restricted to just .NET. The principles and guidelines can be applied to non-microsoft platforms too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-6756650715561197136?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/6756650715561197136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/08/superb-free-book-for-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/6756650715561197136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/6756650715561197136'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/08/superb-free-book-for-software.html' title='Superb free book for Software Architects'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-5331915438032969233</id><published>2009-07-29T01:29:00.000-07:00</published><updated>2009-07-29T08:23:20.112-07:00</updated><title type='text'>The disruptive power of  URL shorteners</title><content type='html'>The popularity of URL shorteners has taken off ever since Twitter launched. We are increasingly seeing the short URLs everywhere. In fact, nobody would ever want to send a regular link again - even via email. Why? Simply because you get the tracking ability when you shorten the URL. For example, &lt;a href="http://bit.ly/"&gt;bit.ly&lt;/a&gt; gives you the click count on a URL and it gives you an idea about the reach of your network.&lt;br /&gt;&lt;br /&gt;However, this blog post is not about the benefit of shortening the URL. Instead, I see in the URL shorteners the power to disrupt the status quo in the search industry.  Yes, that's right! Google can be toppled! By these tiny URL shortener companies. I hope Google is reading this.&lt;br /&gt;&lt;br /&gt;How you may ask? Here's how. Have you noticed this little button becoming more ubiquitous:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_slJJvpVcPts/SnAMsQK949I/AAAAAAAAAL0/l57CB-DAqqM/s1600-h/retweetbutton.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 68px; height: 80px;" src="http://1.bp.blogspot.com/_slJJvpVcPts/SnAMsQK949I/AAAAAAAAAL0/l57CB-DAqqM/s320/retweetbutton.gif" alt="" id="BLOGGER_PHOTO_ID_5363801110593004498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This button is a service provided by &lt;a href="http://www.tweetmeme.com/"&gt;Tweetmeme&lt;/a&gt; and helps readers do a 1-click tweet of the web page, and I have used this on my website at &lt;a href="http://www.mashedge.com/"&gt;www.mashedge.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Guess what happens when you add this button to your web page? The very first step in generating the button is to shorten the URL by a service like &lt;a href="http://bit.ly/"&gt;bit.ly&lt;/a&gt;. &lt;span style="font-style: italic;"&gt;So, the URL shortener is the first one to see your new web page or blog entry as soon as it is born&lt;/span&gt;. And guess what, it can be hours or days before this web page shows up in the search results. This is the gap that the URL shorteners can exploit to provide a unique service,  and a lucrative one too. Thus, the URL shorteners are becoming the gatekeepers to new web pages. They have new information that nobody else has. And with it, comes the power to disrupt.&lt;br /&gt;&lt;br /&gt;Now, a real-time search service (probably there is one already that I am not aware of?) can be built on top of this stream of brand new URLs popping up all over the web. And nobody can beat this service in terms of freshness, not Twitter and not Google. When the results of this real-time service are aggregated with the conventional search engine results, you will have a new order in the search engines. Unless of course, Google buys up all the URL shorteners.&lt;br /&gt;&lt;br /&gt;And the search service can be built at a fraction of the cost of Google. You don't need the armies of robots to discover these new URLs. They are being offered to the URL shorteners on a golden platter.&lt;br /&gt;&lt;br /&gt;So, if the URL shorteners don't get into the search business, they will be very quickly acquired by one of the search companies. Expect these acquisitions to be have a huge price tag!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.twitter.com/kiran_achyutuni"&gt;Follow kiran_achyutuni on Twitter.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-5331915438032969233?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/5331915438032969233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/07/disruptive-power-of-url-shorteners.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5331915438032969233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5331915438032969233'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/07/disruptive-power-of-url-shorteners.html' title='The disruptive power of  URL shorteners'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_slJJvpVcPts/SnAMsQK949I/AAAAAAAAAL0/l57CB-DAqqM/s72-c/retweetbutton.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-5367803837571583989</id><published>2009-07-22T05:44:00.000-07:00</published><updated>2009-07-23T22:43:51.787-07:00</updated><title type='text'>Twitter vs Google: Twitter Winning</title><content type='html'>I am simply blown away by the power of real-time search in Twitter. Provided you choose to follow the right people, you can get a wealth of high-quality relevant real-time information from Twitter. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Google prides itself on providing relevant and fresh results but the little blue bird is beating the gorilla hands down. So, why is this? It's because of millions of users constantly searching their favorite corners of the web and tweeting about interesting articles. The collective search power of humans is trumping the computer algorithms of Google.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The question arises -can this be automated? Yes, parts of it can be automated - as in RSS feeds etc. The search engines can be informed in real-time about the existence of new content. So, why are Google and other search engines lacking? The answer is that a human being is the ultimate judge in quality and relevance, and that cannot be automated. Whenever a Tweet happens about a particular story, the user has voted on it about its quality. The Tweeter has put his/her reputation on the line by recommending a link. That's why it is a high-quality recommendation. The relevant users pick it up and it spreads like wild fire. It's the user community that is making the difference in Twitter and putting it over the top.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, my use of Google search has decreased after discovering the power of Twitter! Has yours too?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some useful links&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://business.twitter.com/twitter101/"&gt;Official Twitter 101 for business&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pcmag.com/article2/0,2817,2341095,00.asp"&gt;Top 10 Twitter tips for Beginners&lt;/a&gt; (from PC Magazine)&lt;/li&gt;&lt;li&gt;&lt;a href="http://technorati.com/tag/%40twitter_tips"&gt;Technorati's @twitter_tips&lt;/a&gt; (articles from the blogsphere that are tagged as twitter_tips)&lt;/li&gt;&lt;li&gt;&lt;a href="http://twitter.alltop.com/"&gt;Alltop twitter Stories&lt;/a&gt; (Keep track of the latest stories on Twitter)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pamil-visions.net/105-twitter-apps/22870/"&gt;105 Twitter apps for PR&lt;/a&gt; (although it is directed to PR people, this is a useful list of all audiences).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-5367803837571583989?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/5367803837571583989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/07/twitter-vs-google-twitter-wins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5367803837571583989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5367803837571583989'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/07/twitter-vs-google-twitter-wins.html' title='Twitter vs Google: Twitter Winning'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-143242403220925374</id><published>2009-04-18T22:22:00.000-07:00</published><updated>2009-04-18T22:31:45.568-07:00</updated><title type='text'>IE Browser caching issues</title><content type='html'>Internet Explorer (IE) caches web pages differently when compared to Firefox and Safari. And so, the website developer must take extra care to ensure that their website works as expected in IE.&lt;br /&gt;&lt;br /&gt;Here are some tips:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure you set the expiration date for every page. If yours is a dynamic web site, make sure to set the expiration date to 'now' so that the browser is forced to refetch the page.&lt;/li&gt;&lt;li&gt;If you are using AJAX, make sure your XMLHttp requests that use the 'get' method use an URL that changes with time.&lt;/li&gt;&lt;/ol&gt;I have added links to good webpages that talk about this issue in this web book &lt;a href="http://www.mashedge.com/web_book_topics/422"&gt;Mashedge Chapter: Browser Compatibility&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-143242403220925374?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/143242403220925374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/04/ie-browser-caching-issues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/143242403220925374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/143242403220925374'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/04/ie-browser-caching-issues.html' title='IE Browser caching issues'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-4757649621016942597</id><published>2009-03-23T05:57:00.000-07:00</published><updated>2009-03-23T06:07:28.003-07:00</updated><title type='text'>Why Google wins</title><content type='html'>Ever wonder how Google maintains its #1 position among search engines? Here's one reason: they send their robots to find places where stuff changes.&lt;br /&gt;&lt;br /&gt;I first put up my website www.mashedge.com on a limited alpha test over a month ago. The first day I put it up, Googlebot was there and has been a regular visitor since. Only in the last 1 week, I have seen the MSN bot come by. There has been no trace of the Yahoo bot even now. If Microsoft and Yahoo want to catch up with Google, they better get their bots working right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-4757649621016942597?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/4757649621016942597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/why-google-wins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/4757649621016942597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/4757649621016942597'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/why-google-wins.html' title='Why Google wins'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-5262553060311786882</id><published>2009-03-07T07:22:00.000-08:00</published><updated>2009-03-07T21:03:09.250-08:00</updated><title type='text'>Setting up sendmail relay with Airtel India as the ISP</title><content type='html'>This post is meant for those users who meet these requirements:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You have obtained a static IP address from Airtel India.&lt;/li&gt;&lt;li&gt;You have set up your host correctly - see my &lt;a href="http://technolog-kiran.blogspot.com/2009/03/sendmail-from-hosts-with-static-ip.html"&gt;previous post&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You plan to host a mailserver on your host with the ip address from step 1.&lt;/li&gt;&lt;li&gt;You plan to use sendmail as the MTA (mail transport agent).&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;In order for sendmail to successfully relay messages to your ISP, and then onto the recipients, there are a number of steps to configure sendmail correctly. Some of these are required to eliminate spam (a very honorable goal).&lt;br /&gt;&lt;br /&gt;First, you need to ask Airtel to enable your sendmail daemon to connect to their sendmail daemon on port 25. This is accomplished by sending a email to their customer service care.karnataka@airtel.in with cc: to d.blr@airtel.in. (Note these e-mail addresses will be different if you are in a different region in India). This step  is mainly to get written confirmation from you that you will not send spam and have anti-virus measures properly done on your host.&lt;br /&gt;&lt;br /&gt;Second, once port 25 is enabled, go to &lt;a href="http://reay.airtelbroadband.in/"&gt;relay.airtelbroadband.in&lt;/a&gt; and register the e-mail address for which you need the relay. Let's say the webserver on your host will send mails from email address foo@blah.com, then you do the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;use the DSL userid and DSL password that Airtel gave you.&lt;/li&gt;&lt;li&gt;In the relay addresses form, add "foo@blah.com". In the password field, enter the auth password of  your choice for this email address, let's say it is "mypwd". Only emails from this address will be relayed. Everything else will be rejected by Airtel. Note that you should choose this email address to be the &lt;span style="font-style: italic;"&gt;login account of your mailserver&lt;/span&gt; on your mailserver machine.  In case you want to change this address later, you can login to relay.airtelbroadband.in with "foo@blah.com" and "mypwd" and then update the email address and/or passwd.&lt;/li&gt;&lt;/ol&gt;You should see that the email has been successfully registered. This completes the setup at Airtel ISP.&lt;br /&gt;&lt;br /&gt;Now the important part on your side.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;cd to /etc/mail&lt;/li&gt;&lt;li&gt;edit authinfo file and add this line: &lt;span style="font-size:85%;"&gt;AuthInfo:relay.airtelbroadband.in "U:foo@blah.com" "I:foo@blah.com" "P:mypwd" "M:DIGEST-MD5 LOGIN PLAIN"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;edit sendmail.mc and add these lines. For more info about this, see this &lt;a href="http://www.mashedge.com/web_book_topics/128"&gt;sendmail chapter&lt;/a&gt; at Mashedge: &lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;define(`SMART_HOST', `esmtp:relay.airtelbroadband.in')dnl&lt;br /&gt;FEATURE(authinfo)dnl&lt;br /&gt;define(`confAUTH_OPTIONS', `A')dnl&lt;br /&gt;TRUST_AUTH_MECH(`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl&lt;br /&gt;define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl&lt;br /&gt;define(`confAUTH_REALM',`blah.com')dnl&lt;br /&gt;define(`confCACERT_PATH', `&lt;yourcertpath&gt;/')dnl&lt;br /&gt;define(`confCACERT', `&lt;yourcertpath&gt;ca-bundle.crt')dnl&lt;br /&gt;define(`confSERVER_CERT', `&lt;yourcertpath&gt;sendmail.pem')dnl&lt;br /&gt;define(`confSERVER_KEY', `&lt;yourcertpath&gt;sendmail.pem')dnl&lt;br /&gt;define(`confCLIENT_CERT', `&lt;yourcertpath&gt;sendmail.pem')dnl&lt;/yourcertpath&gt;&lt;/yourcertpath&gt;&lt;/yourcertpath&gt;&lt;/yourcertpath&gt;&lt;/yourcertpath&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After you do these, do the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;make -C /etc/mail  (This will regenerate all the files required for sendmail)&lt;/li&gt;&lt;li&gt;/usr/sbin/service sendmail restart&lt;/li&gt;&lt;/ul&gt;This completes the setup.&lt;br /&gt;&lt;br /&gt;You can test if sendmail is actually sending email by sending one test email as foo@blah.com from your host. Check the /var/log/maillog for any errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-5262553060311786882?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/5262553060311786882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/setting-up-sendmail-relay-with-airtel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5262553060311786882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5262553060311786882'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/setting-up-sendmail-relay-with-airtel.html' title='Setting up sendmail relay with Airtel India as the ISP'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-4366340768954491245</id><published>2009-03-02T20:44:00.000-08:00</published><updated>2009-03-02T22:01:27.705-08:00</updated><title type='text'>Sendmail from hosts with static IP addresses</title><content type='html'>Configuring sendmail to relay mails is straightforward. Look at this &lt;a href="http://www.mashedge.com/web_book_topics/128"&gt;chapter on sendmail&lt;/a&gt; at Mashedge for suggestions by  folks on the internet. The implicit assumption is that your host is &lt;span style="font-weight: bold;"&gt;allowed&lt;/span&gt; to send e-mail.&lt;br /&gt;&lt;br /&gt;So, why would your host not be allowed to send mail? Due to the proliferation of spam, e-mail providers (such as Google, Yahoo etc) will refuse to relay mail from sendmail from a host unless both the DNS lookup and the reverse DNS lookup match for that host sending e-mail.&lt;br /&gt;&lt;br /&gt;Let's  say you have a domain name "blahblah.com". You get an static IP address from your ISP a.b.c.d.&lt;br /&gt;&lt;br /&gt;You fix the DNS by adding the "A" entries using the domain management tools provided by the vendor from who you purchased the domain name. When  you do "nslookup blahblah.com", you should see that "blahblah.com" resolves to "a.b.c.d". This is the easy part.&lt;br /&gt;&lt;br /&gt;The next part is the reverse DNS. In this case, a lookup via the unix command "dig -x a.b.c.d" should resolve to "blahblah.com". Instead it will resolve to your ISP provider. Unless this part is fixed, you will NOT be able to send mails via sendmail from your host "blahblah.com".  Fixing this is not in  your control and you must contact your ISP to do the needful.&lt;br /&gt;&lt;br /&gt;If you attempt to send mails without fixing the reverse DNS, your SMTP provider will reject the e-mail with an error 550 5.7.1 (IP name may be forged). Yikes! See here for more details about &lt;a href="http://www.sendmail.org/%7Eca/email/relayingdenied.html"&gt;relaying denied&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-4366340768954491245?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/4366340768954491245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/sendmail-from-hosts-with-static-ip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/4366340768954491245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/4366340768954491245'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/sendmail-from-hosts-with-static-ip.html' title='Sendmail from hosts with static IP addresses'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-2572318932601075824</id><published>2009-03-01T01:53:00.000-08:00</published><updated>2009-03-01T02:37:31.821-08:00</updated><title type='text'>Open Source for your PC - Slowly advancing forward.</title><content type='html'>After using Apple Mac for years, I reluctantly bought a PC (&lt;a href="http://www.sony.co.in/product/vgn-ns25g"&gt;S0ny VAIO NS VGN-NS25G&lt;/a&gt;) with windows vista on it!  I was forced to because an accounting software that I planned to use (Tally) runs only on windows.&lt;br /&gt;&lt;br /&gt;Not wanting to fork out more money for other Microsoft programs, I explored open source out there.&lt;br /&gt;&lt;br /&gt;Here are the recommendations:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.openoffice.org/"&gt;OpenOffice&lt;/a&gt; is quite an excellent replacement for Microsoft Office.&lt;/li&gt;&lt;li&gt;Mozilla's &lt;a href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt; with &lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/2313"&gt;Lightning&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/7307"&gt;Google  Contacts&lt;/a&gt; add-ons is a no-brainer replacement for Microsoft Outlook.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;OpenOffice is getting major traction. Even some big banks in India have begun to use OpenOffice and it is real easy to download and set it up.&lt;br /&gt;&lt;br /&gt;It is easy to configure Thunderbird to fetch e-mail from your e-mail provider. Using Google mail with IMAP was quite trivial. On the whole it took me about 3-4 hours to download and set up my laptop PC.&lt;br /&gt;&lt;br /&gt;However, can my grandfather or father do this? Not likely. Can a non-computer professional set up their own PC with open source software? Not likely.&lt;br /&gt;&lt;br /&gt;While all the great pieces of open source software exist and together can easily give Microsoft a run for their money, what is lacking is a comprehensive one click solution to install and set up all the various pieces of open source software into a complete workable solution on a PC running Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-2572318932601075824?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/2572318932601075824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/open-source-for-your-pc-slowly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/2572318932601075824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/2572318932601075824'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/03/open-source-for-your-pc-slowly.html' title='Open Source for your PC - Slowly advancing forward.'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-5158313689611452123</id><published>2009-02-24T08:02:00.000-08:00</published><updated>2009-02-24T08:17:59.356-08:00</updated><title type='text'>Connecting the domain name and your  static IP address for your website</title><content type='html'>So, I got a static IP address from my ISP. Here are the main steps to follow in order for users to find your website using your domain name.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Assign the IP address to your modem-router. Set up port forwarding in the modem-router to point to the webserver machine. Here I assume the modem-router is also the DHCP server. Port forwarding is easy if the modem-router is in the same subnet as the webserver. It is a simple one-step port forwarding.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Secure your modem. This is extremely important because there are always hackers trying to find easy entry into systems. Change the default modem-router password. Block all ports except the ports you want to expose (i.e., port 80 and 443). Enable the system log for monitoring. You really need to be paranoid about this. You can use tools such as open source nmap to find security holes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. If there is another router between the modem-router and your server, there will be additional complications. Multi-router port forwarding can be complex but this depends on the kind of router you have. You may need to turn 2nd router into an access point.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Change the DNS records.  Change the old "A" entries to use your new IP address.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Within a hour, users can get to your website via the domain name into your webserver.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-5158313689611452123?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/5158313689611452123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/02/connecting-domain-name-and-your-static.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5158313689611452123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/5158313689611452123'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/02/connecting-domain-name-and-your-static.html' title='Connecting the domain name and your  static IP address for your website'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4237299616249495356.post-3952958418331881901</id><published>2009-02-13T09:52:00.000-08:00</published><updated>2009-02-13T09:53:40.882-08:00</updated><title type='text'>Welcome</title><content type='html'>This is a blog about all things technical.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4237299616249495356-3952958418331881901?l=technolog-kiran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolog-kiran.blogspot.com/feeds/3952958418331881901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technolog-kiran.blogspot.com/2009/02/welcome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/3952958418331881901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4237299616249495356/posts/default/3952958418331881901'/><link rel='alternate' type='text/html' href='http://technolog-kiran.blogspot.com/2009/02/welcome.html' title='Welcome'/><author><name>Kiran</name><uri>http://www.blogger.com/profile/13548811463473168242</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_slJJvpVcPts/SY6DBKJmFdI/AAAAAAAAAK4/VpDqOVbhwy4/S220/kiran-2009.gif'/></author><thr:total>0</thr:total></entry></feed>
