<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUEDQX0_eip7ImA9WhFSFk0.&quot;"><id>tag:blogger.com,1999:blog-28645193</id><updated>2013-06-19T12:07:50.342+10:00</updated><category term="linux" /><category term="firefox" /><category term="story" /><category term="code/coding" /><category term="ui" /><category term="t-shirt" /><category term="photo" /><category term="travel" /><category term="android" /><category term="opinion" /><category term="tips" /><category term="pilgrimage-2010" /><category term="nonsensical" /><category term="quotes" /><category term="gadget" /><category term="me-me-me" /><category term="blogging" /><category term="random-thoughts" /><category term="review" /><category term="grumble" /><category term="pseudopoetry" /><category term="recommendations" /><category term="chrome" /><title>manki’s weblog</title><subtitle type="html">I don’t write to advocate my ideas; I write to outgrow them.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.manki.in/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.manki.in/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Muthu Kannan</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>447</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/manki" /><feedburner:info uri="manki" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmanki" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmanki" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmanki" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/manki" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmanki" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fmanki" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmanki" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry gd:etag="W/&quot;DkUMR3wzfSp7ImA9WhFSFEo.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-1325259644020795159</id><published>2013-06-17T23:04:00.001+10:00</published><updated>2013-06-17T23:04:46.285+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-06-17T23:04:46.285+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>“Seeing” gods</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Every believer defines god to be supernatural. Assuming that is indeed true... if a god walks in front of us, would our limited senses and intelligence be able to “see” the god? It’ll be like measuring pressure with a ruler. We just won’t have what it takes to see a god!&lt;br /&gt;
&lt;br /&gt;
Given we have no way of really seeing gods, can it be that gods do really walk around right here on earth, among us?&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/J5CbyNyAJDk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/1325259644020795159/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/06/seeing-gods.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1325259644020795159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1325259644020795159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/J5CbyNyAJDk/seeing-gods.html" title="“Seeing” gods" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/06/seeing-gods.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08MQ3s5fip7ImA9WhBWEEo.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-4207080080048080921</id><published>2013-04-04T23:51:00.001+11:00</published><updated>2013-04-04T23:51:22.526+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-04T23:51:22.526+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Possessiveness</title><content type="html">&lt;p dir="ltr"&gt;Possessiveness is dominating in the name of love.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/nqHv6QODwkw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/4207080080048080921/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/04/possessiveness.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4207080080048080921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4207080080048080921?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/nqHv6QODwkw/possessiveness.html" title="Possessiveness" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/04/possessiveness.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AEQX87fCp7ImA9WhBQFUw.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-8841386670114520468</id><published>2013-03-17T20:15:00.000+11:00</published><updated>2013-03-17T20:15:00.104+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-17T20:15:00.104+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>The world keeps changing</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Chanced upon this &lt;a href="http://instagram.com/p/W2BuMLQLRB/"&gt;picture by todayshow&lt;/a&gt; on Instagram:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;a href="http://instagram.com/p/W2BuMLQLRB/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-PfSpqIeyKRo/UUWIN23QqOI/AAAAAAAAZVE/jCVGbD2bNk4/s1600/2005-vs-2013.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
First thing that came to mind was a disapproval for the change the world has gone through. &amp;nbsp;But soon I realised I am not here to judge anything/anyone. &amp;nbsp;The world has changed, for better or worse. &amp;nbsp;And it’s the nature of the world to keep changing in its every living moment. &amp;nbsp;Just acknowledge the change and go on.&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/m0e-tznAwp0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/8841386670114520468/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/03/the-world-keeps-changing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8841386670114520468?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8841386670114520468?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/m0e-tznAwp0/the-world-keeps-changing.html" title="The world keeps changing" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-PfSpqIeyKRo/UUWIN23QqOI/AAAAAAAAZVE/jCVGbD2bNk4/s72-c/2005-vs-2013.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/03/the-world-keeps-changing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIMSHY4fCp7ImA9WhBRGE8.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-7314958466436711902</id><published>2013-03-09T22:13:00.000+11:00</published><updated>2013-03-09T22:13:09.834+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-09T22:13:09.834+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Competing by creating value</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I started using &lt;a href="https://www.dropbox.com/"&gt;Dropbox&lt;/a&gt; three years ago. &amp;nbsp;I really liked Dropbox because they were the only cloud storage service to support Linux. &amp;nbsp;They have a very good web interface; their UI is pretty good; their service is &lt;b&gt;very&lt;/b&gt; reliable; their security is pretty good too, in my view.&lt;br /&gt;
&lt;br /&gt;
Google launched&amp;nbsp;&lt;a href="https://drive.google.com/"&gt;Drive&lt;/a&gt;&amp;nbsp;last year.&amp;nbsp;&amp;nbsp;Their web UI is much inferior to Dropbox’s.&amp;nbsp;&amp;nbsp;They don’t support Linux. &amp;nbsp;It’s uncertain if they’ll ever support Linux; even if they did, they may soon decide to &lt;a href="http://www.omgubuntu.co.uk/2012/04/google-officially-drop-picasa-for-linux"&gt;withdraw&lt;/a&gt;. &amp;nbsp;Despite all this, I will be seriously considering a switch to Drive if/when there is a Linux client for it.&lt;br /&gt;
&lt;br /&gt;
Dropbox has been in the business since 2008. &amp;nbsp;They have done an excellent job of building a reliable cloud storage service that people &lt;i&gt;want&lt;/i&gt; to use. &amp;nbsp;With their APIs, they have built an ecosystem around their service with &lt;a href="http://daringfireball.net/linked/2012/12/17/dropbox-linchpin"&gt;noticeable success&lt;/a&gt;. &amp;nbsp;But now Google comes along trying to build a &lt;a href="http://www.theverge.com/2013/2/8/3967422/google-drive-now-highlights-third-party-apps-alongside-docs"&gt;much richer ecosystem&lt;/a&gt; of web apps. &amp;nbsp;If Dropbox is a bridge for aspiring apps to connect to the future, Drive wants to be a building block of that future.&lt;br /&gt;
&lt;br /&gt;
One way to think about Drive is as a personalised office suite with apps from different vendors. &amp;nbsp;You can use LucidChart for creating diagrams; UJAM for creating music; Google Docs for creating documents — all from within drive.google.com! &amp;nbsp;All these apps store the data in your Google Drive so your data is always with you on all your devices. &amp;nbsp;It’s clearly a better model than Dropbox’s; and more ambitious and risky at the same time. &amp;nbsp;If Drive’s aspirations work out well, Dropbox and other competitors will have a tough time catching up.&lt;br /&gt;
==========&lt;br /&gt;
&lt;br /&gt;
This is something I like to learn from Google. &amp;nbsp;They know how to compete with players who are already dominant in a field. &amp;nbsp;When Google launched Chrome, everyone said “we don’t need another browser”. &amp;nbsp;Chrome today has captured an enormous share of the market. &amp;nbsp;Chrome did not try to do things that people loved about Firefox or Safari or Opera. &amp;nbsp;Instead, Chrome has been focusing on things that are useful and unique. &amp;nbsp;(Syncing profile data, supporting bundled apps, etc. are some examples that come to mind.)&lt;br /&gt;
&lt;br /&gt;
Maybe winning is a byproduct of focusing on your strengths, bringing something new and useful to the table, and continuously improving your product.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/T7uIXM0sSCg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/7314958466436711902/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/03/competing-by-creating-value.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/7314958466436711902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/7314958466436711902?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/T7uIXM0sSCg/competing-by-creating-value.html" title="Competing by creating value" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/03/competing-by-creating-value.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCQH8_fCp7ImA9WhBSGU8.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-2735507929403213154</id><published>2013-02-27T12:39:00.000+11:00</published><updated>2013-02-27T12:39:21.144+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T12:39:21.144+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Happiness and distraction</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Happiness is inversely proportional to distraction. &amp;nbsp;The more you’re distracted, the less happy you are.&lt;br /&gt;
&lt;br /&gt;
Related: &lt;a href="http://blog.manki.in/2012/06/purpose-happiness-and-buddhism.html"&gt;Purpose, happiness, and Buddhism&lt;/a&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/7xYT_OKfjLM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/2735507929403213154/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/02/happiness-and-distraction.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/2735507929403213154?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/2735507929403213154?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/7xYT_OKfjLM/happiness-and-distraction.html" title="Happiness and distraction" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/02/happiness-and-distraction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEMRn85eip7ImA9WhNaF0o.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-8607825470898734198</id><published>2013-02-02T14:44:00.000+11:00</published><updated>2013-02-02T14:44:47.122+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-02T14:44:47.122+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><title>Just how fast is USB 3.0?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
USB 3.0 isn’t exactly new, and everyone knows how fast it is compared to USB 2.0. &amp;nbsp;I bought my first USB 3.0 device yesterday — an external hard disk — and I was curious how fast it really was. &amp;nbsp;I used &lt;code&gt;hdparm&lt;/code&gt; as described in an &lt;a href="http://askubuntu.com/a/87036"&gt;Ask Ubuntu answer&lt;/a&gt; to compare the speeds of 3 different storage devices I had.&lt;br /&gt;
&lt;br /&gt;
Fastest was, unsurprisingly, the internal mSATA SSD my laptop had, at about 180MBps. &amp;nbsp;The new USB 3.0 hard disk (a Western Digital one) managed to read data at 105MBps. &amp;nbsp;This number is very impressive when juxtaposed next to my old USB 2.0 drive (a Hitachi) which could read only at around 34MBps.&lt;br /&gt;
&lt;br /&gt;
Raw numbers for the curious and for posterity:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;% sudo hdparm -Tt /dev/sda    # Internal SSD
/dev/sda:
 Timing cached reads:   8624 MB in  2.00 seconds = 4314.43 MB/sec
 Timing buffered disk reads: 544 MB in  3.02 seconds = 179.89 MB/sec

% sudo hdparm -Tt /dev/sdb    # USB 3.0 external HDD
/dev/sdb:
 Timing cached reads:   8584 MB in  2.00 seconds = 4293.72 MB/sec
 Timing buffered disk reads: 318 MB in  3.01 seconds = 105.54 MB/sec

% sudo hdparm -Tt /dev/sdb    # USB 2.0 external HDD
/dev/sdb:
 Timing cached reads:   8434 MB in  2.00 seconds = 4219.40 MB/sec
 Timing buffered disk reads: 102 MB in  3.03 seconds =  33.69 MB/sec
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/nbap-MWsjzk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/8607825470898734198/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/02/just-how-fast-is-usb-30.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8607825470898734198?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8607825470898734198?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/nbap-MWsjzk/just-how-fast-is-usb-30.html" title="Just how fast is USB 3.0?" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/02/just-how-fast-is-usb-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YEQX4zfip7ImA9WhNUFk0.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-5845586033147340295</id><published>2013-01-08T10:25:00.000+11:00</published><updated>2013-01-08T10:25:00.086+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-08T10:25:00.086+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="story" /><title>Local discount</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I walk through&amp;nbsp;&lt;a href="https://plus.google.com/100497380983146845408/"&gt;Darling Harbour&lt;/a&gt; to work everyday. &amp;nbsp;I’d often stop at &lt;a href="http://www.harbourside.com.au/"&gt;Harbourside&lt;/a&gt; mall to grab something to eat or a cup of coffee. &amp;nbsp;It’s been a routine for almost two years now. &amp;nbsp;Today, as I was walking towards Gloria Jeans, a shop on the way attracted my attention with the sign “Best cappuccino in Darling Harbour”. &amp;nbsp;I thought I’d try their coffee today. &amp;nbsp;After ordering my &lt;a href="http://en.wikipedia.org/wiki/Flat_white"&gt;flat white&lt;/a&gt;, I noticed that the price wasn’t exactly cheap. &amp;nbsp;It was $4.80 here, while it’d cost me only $4 in Gloria Jeans, or $3.5 in the shop right next to my home.&lt;br /&gt;
&lt;br /&gt;
I like clearing out my wallet of all coins, and today I had $4.90 in coins in my wallet. &amp;nbsp;I paid $4.80 in coins, and the shopkeeper asked me, “Do you work here, sir?”. &amp;nbsp;“No, I work in Pyrmont. &amp;nbsp;I live in the city, so I walk through this way”, was my response. &amp;nbsp;He gave 80 cents back and told me that locals get a discount in all shops in the mall. &amp;nbsp;He said, “When you buy something in this mall, tell them you work here and get a discount. &amp;nbsp;Even if you’re just walking through, you are eligible.”&lt;br /&gt;
&lt;br /&gt;
You have no idea how pleased I am!&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/QCzQlAuvWAk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/5845586033147340295/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/01/local-discount.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/5845586033147340295?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/5845586033147340295?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/QCzQlAuvWAk/local-discount.html" title="Local discount" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/01/local-discount.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YHQ34-cCp7ImA9WhNUEEQ.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-5737459537149941858</id><published>2013-01-02T12:45:00.000+11:00</published><updated>2013-01-02T12:45:32.058+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-02T12:45:32.058+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="me-me-me" /><title>Yearly review: 2012</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
As each year ends, I’d think “wow, this year was great”, and 2012 was no exception. &amp;nbsp;Contrary to last few years, I am extremely satisfied with how my work has improved. &amp;nbsp;Often, it feels like I am back in my &lt;abbr title="Madurai Kamaraj University"&gt;&lt;a href="http://en.wikipedia.org/wiki/Madurai_Kamaraj_University"&gt;MKU&lt;/a&gt;&lt;/abbr&gt; days. &amp;nbsp;I love going to work most days.&lt;br /&gt;
&lt;br /&gt;
On the personal front things are a little bit different, though. &amp;nbsp;I am not &lt;a href="http://blog.manki.in/search/labels/quotes"&gt;reading&lt;/a&gt; as much as I used to; I am not writing as much as I used to; I am not &lt;a href="http://blog.manki.in/search/labels/random-thoughts"&gt;thinking&lt;/a&gt; as much as I used to. &amp;nbsp;I probably don’t write as much code as I used to for my “hobby” projects. &amp;nbsp;But it’s understandable because I devote a lot of time for my work. &amp;nbsp;I sometimes even want to work during weekends, which is completely unlike me. &amp;nbsp;(I’d usually leave work behind when I leave office.)&lt;br /&gt;
&lt;br /&gt;
I didn’t travel much this year, but I did do a few road trips, including a 1.5 weeks trip to (a part of) the Australian Outback. &amp;nbsp;I was super-active on Google+ for a few months, but I think my interest has been slowly waning like it does on any social networking platform. &amp;nbsp;That’s probably a good thing because I can use that time in doing things that are more meaningful — like reading books or writing code.&lt;br /&gt;
&lt;br /&gt;
Earning in dollars makes many things possible, but like everything else in life that comes at a price, too. &amp;nbsp;Staying away from family has made me realise how much I identify myself as a part of my family rather than my own individual self. &amp;nbsp;The desire to do something meaningful to people of my town, my state, and my country, has been intensifying too. &amp;nbsp;Sadly, I just can’t figure out what it is that I can do. &amp;nbsp;Hopefully I would some day.&lt;br /&gt;
&lt;br /&gt;
When I was in college, I had deep disrespect for a kind of people. &amp;nbsp;I can’t quite describe them in words, but they’re ambitious, they seem to work hard, they have habits that look very artificial (like consciously avoiding negative thoughts). &amp;nbsp;Over the past few years, I know I am slowly becoming one of that kind. &amp;nbsp;Only difference is, now I am seeing those&amp;nbsp;despised&amp;nbsp;characteristics from inside out and they don’t seem all that bad.&lt;br /&gt;
&lt;br /&gt;
Overall, I enjoyed all of 2012. &amp;nbsp;Thinking about it, I think there wasn’t a single day when I wasn’t willing to die. &amp;nbsp;Quoting &lt;a href="http://youtu.be/K63VrBqSN5w?t=1m38s"&gt;Dido&lt;/a&gt; here would be appropriate, I think.&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;Just this life, I need no other&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Just this day, I need no more&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Just this moment, let it all stop here&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Let it all stop here I’ve had my fill.&lt;/i&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/S1fb_YKWQrI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/5737459537149941858/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2013/01/yearly-review-2012.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/5737459537149941858?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/5737459537149941858?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/S1fb_YKWQrI/yearly-review-2012.html" title="Yearly review: 2012" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2013/01/yearly-review-2012.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QMQX49fCp7ImA9WhNQE0Q.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-8635443907766011725</id><published>2012-11-20T19:16:00.000+11:00</published><updated>2012-11-20T19:16:20.064+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-20T19:16:20.064+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Improving someone else’s product</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I spent a nontrivial amount of time writing code for uploading photos to Flickr from a web app of mine. &amp;nbsp;Flickr has apparently made it easier to upload pictures now, so my friend — the only user of my app — doesn’t upload pictures from my app anymore.&lt;br /&gt;
&lt;br /&gt;
Lesson learned: By making your product a mere feature of &lt;i&gt;someone else&lt;/i&gt;’s product, you’re giving up control over your own userbase. &amp;nbsp;(Related: &lt;a href="http://thenextweb.com/twitter/2012/11/16/twitterfight/"&gt;Twitter and developers, a love story&lt;/a&gt;)&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/off5rcvEWkE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/8635443907766011725/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/11/improving-someone-elses-product.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8635443907766011725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8635443907766011725?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/off5rcvEWkE/improving-someone-elses-product.html" title="Improving someone else’s product" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/11/improving-someone-elses-product.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YHRnszfyp7ImA9WhNRE0s.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-1415608381623419964</id><published>2012-11-08T21:05:00.001+11:00</published><updated>2012-11-08T21:05:37.587+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-08T21:05:37.587+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Better tools, better results</title><content type="html">&lt;p dir="ltr"&gt;Get the best tool you can get.&amp;nbsp; A lousy keyboard causes more grammar and spelling errors.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/ikWjNK5D3sg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/1415608381623419964/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/11/better-tools-better-results.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1415608381623419964?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1415608381623419964?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/ikWjNK5D3sg/better-tools-better-results.html" title="Better tools, better results" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/11/better-tools-better-results.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8CQX4zeyp7ImA9WhNTGE0.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-1021405008830855649</id><published>2012-10-21T18:17:00.000+11:00</published><updated>2012-10-21T18:17:40.083+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-21T18:17:40.083+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="me-me-me" /><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Shying away from success</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I wonder if I have been shying away from success. &amp;nbsp;I know I &lt;a href="http://blog.manki.in/2010/05/things-ive-discovered-about-myself.html"&gt;fear the unknown&lt;/a&gt;. &amp;nbsp;What happens after completing a task or project is probably “new and unknown”, and I subconsciously avoid it just so that I don’t have to face unknowns.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/aSiFXy47zLg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/1021405008830855649/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/10/shying-away-from-success.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1021405008830855649?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1021405008830855649?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/aSiFXy47zLg/shying-away-from-success.html" title="Shying away from success" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/10/shying-away-from-success.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMQ3o5eyp7ImA9WhNTEkk.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-4628113315090789134</id><published>2012-10-15T07:44:00.001+11:00</published><updated>2012-10-15T07:44:42.423+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-15T07:44:42.423+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>No parentheses</title><content type="html">&lt;p dir="ltr"&gt;I think the next improvement I should make to my writing is to drastically reduce the number of times I include notes in parentheses.&amp;nbsp; They make reading unnecessarily hard without adding much value.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/oCeM45di3DI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/4628113315090789134/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/10/no-parentheses.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4628113315090789134?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4628113315090789134?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/oCeM45di3DI/no-parentheses.html" title="No parentheses" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/10/no-parentheses.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYBRX44fip7ImA9WhJaFUQ.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-2272278908614858079</id><published>2012-10-07T17:09:00.000+11:00</published><updated>2012-10-07T17:09:14.036+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-07T17:09:14.036+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="me-me-me" /><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Bad writing</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I was chatting with a friend and remembered something I had blogged about. &amp;nbsp;Naturally, I shared the link to the post. &amp;nbsp;That post was written two years ago, and it wasn’t the best of my writing. &amp;nbsp;After reading, she said I had come a long way from that point and I write much better these days.&lt;br /&gt;
&lt;br /&gt;
I didn’t start writing because I wanted to become better at writing; I have always been a person who likes to write... it’s a way of self-expression for me. &amp;nbsp;English isn’t my first language, but my primary blog (this blog) is in English. &amp;nbsp;God only knows why. &amp;nbsp;My posts from years ago are nothing to be bragged about. &amp;nbsp;They are childish thoughts expressed in an awkward way. &amp;nbsp;Not that I have become a great writer now, but I have improved over time.&lt;br /&gt;
&lt;br /&gt;
The way to improve writing is to exercise bad writing. &amp;nbsp;You know your writing is horrible, and yet you keep on writing. &amp;nbsp;Some day you’ll find yourself writing like a good writer. &amp;nbsp;I don’t know about others, but my takeaway from this is that there isn’t anything inherently good or bad. &amp;nbsp;Everything is equally good and bad.&lt;br /&gt;
&lt;br /&gt;
Going back to writing well. &amp;nbsp;As I said, I like writing. &amp;nbsp;I think good writing should feel like the writer wrote it effortlessly... like words dancing together to make the text, and not like odd components stacked together. &amp;nbsp;If I were to wish, I’d say I want to write like &lt;a href="http://en.wikipedia.org/wiki/Rob_Pike"&gt;Rob Pike&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Bruce_Eckel"&gt;Bruce Eckel&lt;/a&gt;. &amp;nbsp;Those are two authors I loved reading... people from whom I have learned many things.&lt;br /&gt;
&lt;br /&gt;
If you have been trying to become better at something, I think you’d like watching &lt;a href="http://www.youtube.com/watch?v=BI23U7U2aUY&amp;amp;feature=youtu.be"&gt;this video&lt;/a&gt;. &amp;nbsp;(Source:&amp;nbsp;&lt;a href="http://daringfireball.net/linked/2011/04/27/glass-perseverance"&gt;Daring Fireball&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/BI23U7U2aUY" width="420"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/V4vTb1HA_YQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/2272278908614858079/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/10/bad-writing.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/2272278908614858079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/2272278908614858079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/V4vTb1HA_YQ/bad-writing.html" title="Bad writing" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/BI23U7U2aUY/default.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.manki.in/2012/10/bad-writing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8DRXwyeCp7ImA9WhJaFUU.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-1209942035513154754</id><published>2012-10-07T14:34:00.002+11:00</published><updated>2012-10-07T14:34:34.290+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-07T14:34:34.290+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Winning and losing</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
If you’re not willing to lose, you have a rather slim chance of winning.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/Td1TZdjMsaU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/1209942035513154754/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/10/winning-and-losing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1209942035513154754?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/1209942035513154754?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/Td1TZdjMsaU/winning-and-losing.html" title="Winning and losing" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/10/winning-and-losing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4GQng-eCp7ImA9WhJbGEU.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-468891833935321602</id><published>2012-09-29T12:01:00.000+10:00</published><updated>2012-09-29T12:15:23.650+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-29T12:15:23.650+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title>Don’t pay for web hosting if you don’t have to</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
A few months ago, I moved all my websites, including my personal homepage &lt;a href="http://www.manki.in/"&gt;www.manki.in&lt;/a&gt; to Google hosting. &amp;nbsp;(That is, some Google product running on my own domain.) &amp;nbsp;However, there was one piece in the puzzle that was still with my web hosting provider: redirecting any requests to the &lt;a href="http://support.google.com/blogger/bin/answer.py?answer=139485"&gt;naked domain&lt;/a&gt; &lt;i&gt;manki.in&lt;/i&gt; to &lt;i&gt;www.manki.in&lt;/i&gt;. &amp;nbsp;Once the request reaches &lt;i&gt;www.manki.in&lt;/i&gt;, Google would take care of it from there on.&lt;br /&gt;
&lt;br /&gt;
This was the setup of my site for several months, until yesterday. &amp;nbsp;Only yesterday I found out an awesome feature &lt;a href="http://www.google.com/apps"&gt;Google Apps&lt;/a&gt; has. &amp;nbsp;It can redirect requests to your naked domain to any subdomain you specify. &amp;nbsp;Precisely the one thing I was paying my web hosting provider for! &amp;nbsp; And Google would do this for free because I am on their &lt;a href="http://www.google.com/enterprise/apps/business/pricing.html"&gt;free Google Apps plan&lt;/a&gt;. &amp;nbsp;That amounts to saving more than $50 a year. &amp;nbsp;Very cool!&lt;br /&gt;
&lt;br /&gt;
Essentially, I had to set up &lt;a href="http://en.wikipedia.org/wiki/List_of_DNS_record_types"&gt;DNS A records&lt;/a&gt; to point my domain name to Google’s IP addresses and tell Google Apps which subdomain I wanted the requests to go to. &amp;nbsp;Check &lt;a href="http://support.google.com/a/bin/answer.py?answer=2518373"&gt;Google’s help page&lt;/a&gt; for detailed step-by-step instructions.&lt;br /&gt;
&lt;br /&gt;
One last thing you need to do is disconnect your domain name from your hosting provider’s IPs so your users are always sent to the right place. &amp;nbsp;Once you have added the A records to map your domain to Google’s IPs, &lt;b&gt;delete all original A records&lt;/b&gt; so your domain is not pointing to your hosting provider anymore. &amp;nbsp;When your hosting contract runs out next year, you can simply not renew it :)&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/i6oFovA-1Jc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/468891833935321602/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/dont-pay-for-web-hosting-if-you-dont.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/468891833935321602?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/468891833935321602?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/i6oFovA-1Jc/dont-pay-for-web-hosting-if-you-dont.html" title="Don’t pay for web hosting if you don’t have to" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/dont-pay-for-web-hosting-if-you-dont.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4DSH05eCp7ImA9WhJbGUs.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-8745643451058610793</id><published>2012-09-18T23:34:00.000+10:00</published><updated>2012-09-30T10:12:59.320+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-30T10:12:59.320+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="opinion" /><category scheme="http://www.blogger.com/atom/ns#" term="code/coding" /><title>Error-handling: Java vs Go</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="https://fotoblogr.appspot.com/"&gt;FotoBlogr&lt;/a&gt; is the first toy I wrote using &lt;a href="http://golang.org/"&gt;Go&lt;/a&gt;. &amp;nbsp;As a part of FotoBlogr, I also wrote a &lt;a href="http://code.google.com/p/flickgo/"&gt;Flickr client library&lt;/a&gt;, an &lt;a href="http://code.google.com/p/go-gaesupport/"&gt;App Engine helper library&lt;/a&gt;, (unpublished) Blogger client, and Picasa client, so I got to see some idiomatic Go. &amp;nbsp;One thing I really missed when writing Go was exceptions. &amp;nbsp;Many things that are one-liners in languages with exception support (Java, Python, etc.) become 3 or 4 lines in Go. &amp;nbsp;Let’s take parsing a string as an integer for example. &amp;nbsp;In Java, you’d write:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;int n = Integer.&lt;a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt(java.lang.String, int)"&gt;parseInt&lt;/a&gt;(str);&lt;/code&gt;&lt;/pre&gt;
and you’re done. &amp;nbsp;If you expect this conversion to fail, you’d catch &lt;a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NumberFormatException.html"&gt;&lt;code&gt;NumberFormatException&lt;/code&gt;&lt;/a&gt;, but it’s not mandatory. &amp;nbsp;Compare this to equivalent Go code:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;n, err := strconv.&lt;a href="http://golang.org/pkg/strconv/#Atoi"&gt;Atoi&lt;/a&gt;(str)&lt;/code&gt;&lt;/pre&gt;
Of course, you can choose to ignore the error by using an &lt;a href="http://golang.org/ref/spec#Blank_identifier"&gt;underscore&lt;/a&gt; in the place of &lt;code&gt;err&lt;/code&gt;, but it still won’t be as expressive like in Java. &amp;nbsp;For instance, you cannot write &lt;code&gt;return math.Sqrt(strconv.Atoi(str))&lt;/code&gt;. &amp;nbsp;You must write that in two different statements:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;n, _ := strconv.Atoi(str)
return math.Sqrt(n)&lt;/code&gt;&lt;/pre&gt;
Of course, this is wrong, and it should actually be something like:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;n, err := strconv.Atoi(str)
if err != nil {
  // Handle this error.
}
return math.Sqrt(n)&lt;/code&gt;&lt;/pre&gt;
It was &lt;i&gt;very&lt;/i&gt; annoying to get used to writing code this way... almost as if writing dumb code.&lt;br /&gt;
&lt;br /&gt;
Fast forward a few months. &amp;nbsp;I had moved to a C++ project where the style guide prohibits using exceptions. &amp;nbsp;Existing code in this project ignored errors in several places, but when I was writing new code I always made sure I did something about errors... at the minimum log it and proceed. &amp;nbsp;I didn’t have to make a conscious effort to do that; writing Go code had trained me to naturally think about error handling. &amp;nbsp;It felt &lt;i&gt;awkward&lt;/i&gt; to not check for errors, in fact.&lt;br /&gt;
&lt;br /&gt;
Now, I am fixing a bug in a Java project. &amp;nbsp;This is an old project with design decisions independently made by hundreds of engineer over several years. &amp;nbsp;The change itself is fairly simple: instead of simply sending a request to an RPC server, now we have to first check whether it’s okay to send that request. &amp;nbsp;If this query fails, we’d show an error message to the user. &amp;nbsp;But the complication is this: I’m changing a void method that does not throw any exceptions. &amp;nbsp;(This method in effect promises all its callers that it can never fail!) &amp;nbsp;This method is being called by half a dozen classes, which are being called a few others, and so on. &amp;nbsp;Unless I touch a large number of files to handle the new error, I can’t get the code to compile.&lt;br /&gt;
&lt;br /&gt;
I was discussing this issue with a teammate and what he said was remarkable. &amp;nbsp;He said, “Every method in every class should throw a &lt;a href="http://www.javapractices.com/topic/TopicAction.do?Id=129"&gt;checked exception&lt;/a&gt;&amp;nbsp;irrespective of whether that method can fail or not. &amp;nbsp;If it cannot fail today, maybe it can tomorrow.” &amp;nbsp;He didn’t &lt;i&gt;literally&lt;/i&gt; mean that, of course. &amp;nbsp;What he meant was we weren’t using checked exceptions as extensively as we should have. &amp;nbsp;If this method I am changing now threw &lt;i&gt;some&lt;/i&gt;&amp;nbsp;checked exception, I could simply use that in my client code without scratching my head too much. &amp;nbsp;This is &lt;i&gt;precisely&lt;/i&gt; what Go does. &amp;nbsp;Almost all functions return an error status. &amp;nbsp;You can choose to ignore it, but when someone new to the codebase reads it, it’s obvious you’re ignoring an error. &amp;nbsp;I’m starting to think that Go’s way of error-handling is a much superior way than Java’s and C++’s.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="sidenote"&gt;
SIDENOTE: The easy and obvious fix is to throw a &lt;a href="http://docs.oracle.com/javase/6/docs/api/java/lang/RuntimeException.html"&gt;&lt;code&gt;RuntimeException&lt;/code&gt;&lt;/a&gt; and catch it in only the places I like to change now. &amp;nbsp;But that’s a really wrong way to fix a problem like this. &amp;nbsp;First of all, &lt;code&gt;RuntimeException&lt;/code&gt;s are not meant for cases like this. &amp;nbsp;They are for things like division by zero, dereferencing a null pointer, etc. &amp;nbsp;Things that can happen in &lt;i&gt;any&lt;/i&gt; code and thus are impractical to handle specifically. &amp;nbsp;Since they are rare and usually very serious, they are allowed to propagate through deep call stacks. &amp;nbsp;Defining application errors, input errors, etc. as &lt;code&gt;RuntimeException&lt;/code&gt; can lead to severe debugging issues over time. &amp;nbsp;You really don’t want that.&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/tMp7DiDHyN8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/8745643451058610793/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/error-handling-java-vs-go.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8745643451058610793?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8745643451058610793?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/tMp7DiDHyN8/error-handling-java-vs-go.html" title="Error-handling: Java vs Go" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/error-handling-java-vs-go.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DR3Y6cSp7ImA9WhJUF0s.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-6634248763376129268</id><published>2012-09-16T14:09:00.001+10:00</published><updated>2012-09-16T14:14:36.819+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-16T14:14:36.819+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="me-me-me" /><title>White headphones</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
At work, we can pick up headphones for free. &amp;nbsp;You just walk into the place where they’re kept, take one, and walk away. &amp;nbsp;You don’t have to ask anyone, and you don’t have to tell anyone. &amp;nbsp;I took a really nice Sennheiser pair a couple weeks ago. &amp;nbsp;Though they are expensive (about $60), it was painful to use them. &amp;nbsp;10 minutes into wearing them, my ears would be paining real bad.&lt;br /&gt;
&lt;br /&gt;
I decided I’d just buy a better pair myself. &amp;nbsp;Being a predictable BoseSheep, I went to Bose (like iSheep buying Apple without thinking). &amp;nbsp;They had two different models: &lt;a href="http://worldwide.bose.com/axa/en_au/web/oe2_audio_headphones/page.html"&gt;OE2&lt;/a&gt; and &lt;a href="http://worldwide.bose.com/axa/en_au/web/ae2_audio_headphones/page.html"&gt;AE2&lt;/a&gt;. &amp;nbsp;OE is on-ear while AE is around-ear. &amp;nbsp;AE2, when worn, doesn’t even touch your ears so they are more comfortable than OE2.&lt;br /&gt;
&lt;br /&gt;
But I am not a rational buyer... I’ve never been one. &amp;nbsp;Very often I’d buy things for totally random reasons. &amp;nbsp;This time I decided to buy the OE2 because that was the only model available in white. &amp;nbsp;AE2 came in one colour and that was black. &amp;nbsp;I just cannot buy a black toy when there’s &amp;nbsp;a white alternative.&lt;br /&gt;
&lt;br /&gt;
Within two days of usage, I don’t like the OE2 because it’s pushing on my ears almost like the Sennheiser. &amp;nbsp;Unhappily but with no other choice, I go to Bose Store again to return the OE2 and pick up an AE2. &amp;nbsp;To my surprise, they had white AE2s now! &amp;nbsp;Bose must have launched these in the two days I had the OE2! &amp;nbsp;Funny how lucky I get :)&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/gUp4QNnL4B0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/6634248763376129268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/white-headphones.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/6634248763376129268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/6634248763376129268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/gUp4QNnL4B0/white-headphones.html" title="White headphones" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/white-headphones.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMAQ3oycSp7ImA9WhJUE04.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-10205023119587652</id><published>2012-09-11T13:17:00.000+10:00</published><updated>2012-09-11T13:17:22.499+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-11T13:17:22.499+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Slow = bad</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Having to wait for machines repeatedly is one of the most demoralising things you can experience when trying to get something done.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/3K4V98Re2EI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/10205023119587652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/slow-bad.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/10205023119587652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/10205023119587652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/3K4V98Re2EI/slow-bad.html" title="Slow = bad" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/slow-bad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINSX45cSp7ImA9WhJUEUU.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-6236281188793527543</id><published>2012-09-09T21:03:00.000+10:00</published><updated>2012-09-09T21:03:18.029+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-09T21:03:18.029+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code/coding" /><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Understanding code</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
You don’t understand a piece of code until you can confidently add features to it.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/6SHYK4RxCMM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/6236281188793527543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/understanding-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/6236281188793527543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/6236281188793527543?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/6SHYK4RxCMM/understanding-code.html" title="Understanding code" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/understanding-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QFQ3Yyfip7ImA9WhJUEUg.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-817907419689433242</id><published>2012-09-09T12:55:00.000+10:00</published><updated>2012-09-09T12:55:12.896+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-09T12:55:12.896+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><title>Is screen the only advantage tablets have?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Quite often, I find myself wanting to read on my Nexus 7 than on my laptops. &amp;nbsp;Checking my Google Reader, reading any article that’d take more than a couple of minutes, reading Kindle books... I prefer the tablet for all these. &amp;nbsp;This is not surprising because the Nexus 7 has a 216-dpi screen while my laptop has an incomparable 96-dpi screen.&lt;br /&gt;
&lt;br /&gt;
When it comes to doing some real work... work that involves multitasking and/or precision, touch devices are &lt;i&gt;very&lt;/i&gt; inadequate. &amp;nbsp;Think of writing code, for instance. &amp;nbsp;I’d have 6+ browser tabs open with various manuals, one terminal for building and running the code, one or two more terminals for other random stuff, one editor/IDE window (usually GVim; occasionally Eclipse), and a few more browser tabs that are pure distraction (Gmail, Google+, etc.) &amp;nbsp;A touchscreen device without overlapping windows just won’t work for this use case.&lt;br /&gt;
&lt;br /&gt;
Android’s multitasking UI would improve over time, but I doubt if it can catch up with current desktop OSes in the next two years. &amp;nbsp;On the other hand, it’s likely that before the end of 2013 there will be enough high-res monitors and laptops in the market. &amp;nbsp;When that happens, I may use the laptop a lot more frequently than the tablets.&lt;br /&gt;
&lt;br /&gt;
While tablets may replace laptops for quite a few people going forward, I don’t see myself giving up the&amp;nbsp;functionality&amp;nbsp;I get from desktop OSes.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/oTM5News0wk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/817907419689433242/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/is-screen-only-advantage-tablets-have.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/817907419689433242?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/817907419689433242?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/oTM5News0wk/is-screen-only-advantage-tablets-have.html" title="Is screen the only advantage tablets have?" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/is-screen-only-advantage-tablets-have.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQMQX06eCp7ImA9WhJVFUk.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-5485602231142786413</id><published>2012-09-02T10:06:00.000+10:00</published><updated>2012-09-02T10:06:20.310+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-02T10:06:20.310+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code/coding" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><title>Inspecting 302 HTTP headers</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Let’s say you want to inspect the response header for an HTTP request. &amp;nbsp;But the response is a 302, so your browser immediately navigates to the new location and you never get to see the 302 response (and the headers).&lt;br /&gt;
&lt;br /&gt;
One way to solve this problem would be to install a browser extension that would keep the headers for you even after the redirect has happened. &amp;nbsp;But I’m not a big fan of installing browser extensions for functionality that I very rarely need. &amp;nbsp;So I use the &lt;code&gt;wget&lt;/code&gt; command instead:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;wget -S -O/dev/null --max-redirect=0 'http://www.google.com/'&lt;/code&gt;&lt;/pre&gt;
&lt;code&gt;-S&lt;/code&gt; flag tells wget to print the headers to &lt;code&gt;stderr&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;-O/dev/null&lt;/code&gt; discards the response body (by writing it to the null device)&lt;br /&gt;
&lt;code&gt;--max-redirect=0&lt;/code&gt; tells wget to not follow any redirects.&lt;br /&gt;
&lt;br /&gt;
This is the 302 redirect google.com sends for redirecting users to country-specific Google domain:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;--2012-09-02 09:54:33--  http://www.google.com/
Resolving www.google.com (www.google.com)... 74.125.237.50, 74.125.237.48, 74.125.237.52, ...
Connecting to www.google.com (www.google.com)|74.125.237.50|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 302 Found
  Location: http://www.google.com.au/
  Cache-Control: private
  Content-Type: text/html; charset=UTF-8
  [&lt;i&gt;...snip...&lt;/i&gt;]
  Date: Sat, 01 Sep 2012 23:54:33 GMT
Location: http://www.google.com.au/ [following]
0 redirections exceeded.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/7CWvDylL8M0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/5485602231142786413/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/09/inspecting-302-http-headers.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/5485602231142786413?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/5485602231142786413?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/7CWvDylL8M0/inspecting-302-http-headers.html" title="Inspecting 302 HTTP headers" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/09/inspecting-302-http-headers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YERH89eyp7ImA9WhJVEU0.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-8711217331789107854</id><published>2012-08-28T06:58:00.000+10:00</published><updated>2012-08-28T06:58:25.163+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-28T06:58:25.163+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="recommendations" /><title>Some monospace fonts</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Being the monospace font freak that I am, I recently found PT Mono and have fallen in love with it. &amp;nbsp;Turns out, I’ve been liking the PT family of fonts for a while: I have been using PT Sans for this blog’s headings. &amp;nbsp;You can &lt;a href="http://www.paratype.com/public/"&gt;download PT Mono (and others)&lt;/a&gt;&amp;nbsp;for free from ParaType’s web site.&lt;br /&gt;
&lt;br /&gt;
If PT Mono is my newly found attraction, I have been really liking Envy Code R for its extreme readability. &amp;nbsp;If I had to pick a single monospace font to live with for the rest of my entire life, I’d choose Envy Code R. &amp;nbsp;You can &lt;a href="http://www.fontsquirrel.com/fonts/Envy-Code-R"&gt;download Envy Code R&lt;/a&gt; for free from Font Squirrel.&lt;br /&gt;
&lt;br /&gt;
If you’re into serif monospace fonts, give &lt;a href="http://www.dafont.com/verily-serif-mono.font"&gt;Verily Serif Mono&lt;/a&gt; a try. &amp;nbsp;This used to be my favourite font until I stumbled upon Envy Code R.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/manki/~4/UNnTSRI7wnM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/8711217331789107854/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/08/some-monospace-fonts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8711217331789107854?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/8711217331789107854?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/UNnTSRI7wnM/some-monospace-fonts.html" title="Some monospace fonts" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/08/some-monospace-fonts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HQXs6fSp7ImA9WhJQFkU.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-7494426676857813000</id><published>2012-07-30T22:37:00.002+10:00</published><updated>2012-07-31T09:12:10.515+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-31T09:12:10.515+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Poor battery life after Android 4.1 (Jelly Bean) update?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
If your Android phone was recently updated to Android 4.1 (aka Jelly Bean) and you have been seeing really bad battery life ever since, read on. &amp;nbsp;It could be that Google+ sync has been enabled by the update and that’s using up a lot of power. &amp;nbsp;Go to your phone’s &lt;i&gt;Settings &amp;gt; Accounts &amp;gt; Google&lt;/i&gt; settings screen. &amp;nbsp;For every Google account listed, deselect the &lt;i&gt;Google+&lt;/i&gt; option. &amp;nbsp;This should bring back sane battery life to your phone.&lt;br /&gt;
&lt;br /&gt;
See&amp;nbsp;&lt;a href="http://blog.manki.in/2011/01/demystifying-android-power-usage.html"&gt;Demystifying Android power usage&lt;/a&gt;&amp;nbsp;for more generic tips on saving battery life on Android devices.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/manki/~4/JjvYallsVlw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/7494426676857813000/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/07/poor-battery-life-after-android-41.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/7494426676857813000?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/7494426676857813000?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/JjvYallsVlw/poor-battery-life-after-android-41.html" title="Poor battery life after Android 4.1 (Jelly Bean) update?" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.manki.in/2012/07/poor-battery-life-after-android-41.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkABRXg-eCp7ImA9WhJQEE8.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-4179947360291247467</id><published>2012-07-23T15:19:00.000+10:00</published><updated>2012-07-23T15:19:14.650+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-23T15:19:14.650+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="me-me-me" /><title>Kovilpatti boy</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
It’s been 5 weeks since I came to India. &amp;nbsp;I have been living in our new house since my arrival, and it’s been pretty good. &amp;nbsp;Wide open sky with almost no light pollution. &amp;nbsp;This time of the year is usually windy, and I quite like the weather. &amp;nbsp;Being with my family has always made me happy.&lt;br /&gt;
&lt;br /&gt;
Went out on my bike (a motorcycle) to a few places. &amp;nbsp;Even after seven years, I think my bike is pretty good and I like it the same. &amp;nbsp;The reason for the possessiveness I have about the bike and my riding gear has been unfathomable. &amp;nbsp;I just don’t want to share them with anyone! &amp;nbsp;Have a slightly longer ride coming up tomorrow; looking forward to it. &amp;nbsp;Want to take some pictures during the trip too; let’s see how that works out.&lt;br /&gt;
&lt;br /&gt;
I would have liked to be a bit more productive at work, but the lack of productivity hasn’t made me &lt;i&gt;very&lt;/i&gt; unhappy. &amp;nbsp;My mind keeps telling me that this is my place. &amp;nbsp;I really want to come back here and start living here again... like the Kovilpatti boy that I am. &amp;nbsp;There’s something magical about this place... maybe.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/manki/~4/rYrjxWz51F8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/4179947360291247467/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/07/kovilpatti-boy.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4179947360291247467?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4179947360291247467?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/rYrjxWz51F8/kovilpatti-boy.html" title="Kovilpatti boy" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.manki.in/2012/07/kovilpatti-boy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MHQnc5cCp7ImA9WhVaE0Q.&quot;"><id>tag:blogger.com,1999:blog-28645193.post-4998278250543252323</id><published>2012-06-11T17:23:00.001+10:00</published><updated>2012-06-11T17:23:53.928+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-11T17:23:53.928+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random-thoughts" /><title>Better than animals</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
“Even when they don’t know much—or not at all—about Americans, many Indians think that Indians are generally better than Americans. &amp;nbsp;Do you think it’s correct to think that way?” &amp;nbsp;When I ask people this question, they almost always say “No, it’s not appropriate to think ill of others without knowing them well”. &amp;nbsp;Or they’d say “It’s incorrect to generalise all Americans or Indians that way”.&lt;br /&gt;
&lt;br /&gt;
However, when I discuss morality with them, an argument they love to put forth is that “We are humans, shouldn’t we be better than animals?” &amp;nbsp;I just don’t understand why. &amp;nbsp;Vast majority of us don’t know much about the lives animals live. &amp;nbsp;We don’t know why individual’s free will should yield to society’s morals. &amp;nbsp;We can’t be sure if we &lt;i&gt;are&lt;/i&gt;&amp;nbsp;actually better than animals to begin with. &amp;nbsp;But somehow we as a society have to live “better” than animals!&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/manki/~4/wqODd8ksFUY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.manki.in/feeds/4998278250543252323/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.manki.in/2012/06/better-than-animals.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4998278250543252323?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28645193/posts/default/4998278250543252323?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/manki/~3/wqODd8ksFUY/better-than-animals.html" title="Better than animals" /><author><name>Muthu Kannan</name><uri>https://plus.google.com/106688440131495596771</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-If1nEpLjBhA/AAAAAAAAAAI/AAAAAAAAa4w/qkGNn-3twss/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.manki.in/2012/06/better-than-animals.html</feedburner:origLink></entry></feed>
