A music player is useful only when we cannot sing for ourselves.
31 Dec 2010
29 Dec 2010
Are you a teacher?
If they do take the bricks and cement they are offered, don't give your building plan to them. If you can, share with them your building plan and construct the buildings in front of their eyes. But if you cannot do that, throw away your plan or just hide it from your students.
If you are a parent, substitute "kids" in place of "students" in these paragraphs. Because parents are the first teachers of every kid.
28 Dec 2010
What my 2010 has been like
First, I'll list the non-positives since the list is short :) I couldn't get together with an amazing person I wanted to live with; an already broken relationship with a friend has broken down almost completely, and naturally. I am not sure if I can make enough money to pull off everything I have started. I have left my parents -- my father at least -- in a not-so-happy state of mind.
Now for the positives. I went through my second surgery, and I don't have a screwed up leg anymore ;-) My brother Saravanan is someone I can call as my soul mate. I have always liked to travel with him. This year we went on two bike rides. I designed t-shirts for myself and as gifts. I finished reading two big novels: Crime and Punishment and Anna Karenina. For a slow reader like me, it's really surprising I managed to finish both novels within a year.
I learned photography and managed to take some good pictures. Went on my dream bike ride. Contemplated a lot, philosophized a lot. I have a feeling that I am a bit more mature now than I was in the beginning of 2010.
Best of all, I started working on fixing my long time gripe: Hyderabad. I blindly chose a place and started working on a transfer. Things are going pretty good, and I will be leaving Hyderabad in about two months. I am so insanely happy I even thought about printing a t-shirt that says "I survived 5 years of Hyderabad". So yeah... that's about it. Looking forward to an even more interesting 2011.
PS: It's surprising to me that there's no mention about my work in this post... maybe I don't care so much about my work?
27 Dec 2010
Quotes from Gladiator
- [People should know when they are conquered.]
Would you, Quintus? Would I? - At my signal unleash hell.
- Brothers, what we do in life echoes in eternity.
- Ah, there's always someone left to fight.
- Your faults as a son is my failure as a father.
- Don't die, they'll feed you to the lions. They are worth more than we are!
- Spaniard, why don't you fight? We all have to fight.
- He'll bring them death and they'll love him for it.
- You have a great name. He must kill your name before he kills you.
- We mortals are but shadows and dust.
14 Dec 2010
Swyping: first impressions
The biggest challenge for me in adapting to swyping (vs. typing) is the shift in the mental model of text input. Instead of making letter mistakes I make word mistakes now, and that's not really a pleasant thing. Has my text input accuracy improved? Maybe, but I can't say I'm happy with it. I have a feeling that I would be a lot happier with a physical keyboard than this swyping business. (Just now I had to make three attempts before I can get the word "keyboard" right.)
The built-in keyboard in Gingerbread is pretty good, when combined with autocomplete. I think I will probably stick to the standard keyboard for long text inputs, and use Swype when I don't feel like expending the energy required for typing correctly on the soft keyboard.
Text input through soft keyboards is indeed a problem, but Swype doesn't provide a solution to it; instead, it introduces a new problem. In my current view both problems are pretty much of the same magnitude. Most likely, Swype will soon become irrelevant because Google is serious about improving their keyboard.
13 Dec 2010
Quotes: Anna Karenina
- Women with a shadow usually come to a bad end.
- To know love, one must make mistakes and then correct them.
- Alexey Alexandrovitch was standing face to face with life, with the possibility of his wife's loving someone other than himself, and this seemed to him very irrational and incomprehensible because it was life itself.
- "I do my best, Konstantin Dmitrievitch, d'ye see, as I would for my own father. I don't like bad work myself, nor would I let another man do it. What's good for the master's good for us too. To look out yonder now," said Vassily, pointing, "it does one's heart good."
- A cigar is a sort of thing, not exactly a pleasure, but the crown and outward sign of pleasure.
- The walls of home are a support.
- Whatever our destiny is or may be, we have made it ourselves, and we do not complain of it.
- There is a way out of every position.
- God sends the cross and sends the strength to bear it.
- If it's a good thing for you, it's a good thing for everyone.
- No sort of activity is likely to be lasting if it is not founded on self-interest, that's a universal principle, a philosophical principle.
- Hypocrisy in anything whatever may deceive the cleverest and most penetrating man, but the least wide-awake of children recognizes it, and is revolted by it, however ingeniously it may be disguised.
- God gave the day, God gave the strength. And the day and the strength were consecrated to labor, and that labor was its own reward. For whom the labor? What would be its fruits? These were idle considerations -- beside the point.
- Anything's better than lying and deceit.
- To sleep well one ought to work, and to enjoy oneself one ought to work too.
- Women are the chief stumbling block in a man's career. It's hard to love a woman and do anything. There's only one way of having love conveniently without its being a hindrance -- that's marriage.
- What's the use of being dreary?
- If one wants the result, one must admit the means.
- There's less charm in life, when one thinks of death, but there's more peace.
- Love those that hate you, but to love those one hates is impossible.
- "I have heard it said that women love men even for their vices," Anna began suddenly, "but I hate him for his virtues."
- I cannot paint a Christ that is not in my heart.
- It is hard for anyone who is dissatisfied not to blame someone else, and especially the person nearest of all to him, for the ground of his dissatisfaction.
- One may sit for several hours at a stretch with one's legs crossed in the same position, if one knows that there's nothing to prevent one's changing one's position; but if a man knows that he must remain sitting so with crossed legs, then cramps come on, the legs begin to twitch and to strain towards the spot to which one would like to draw them.
- But one must call things by their names.
- A wife is a care, but it's worse when she's not a wife.
- It's awful to think that any outsider can shatter our happiness.
- If one loves anyone, one loves the whole person, just as they are and not as one would like them to be.
- I don't want to prove anything; I merely want to live, to do no one harm but myself. I have the right to do that, haven't I?
- In love there's no more nor less. I love my daughter with one love, and her with another.
- Energy rests upon love; and come as it will, there's no forcing it.
- There are no conditions to which a man cannot become used, especially if he sees that all around him are living in the same way.
- In order to carry through any undertaking in family life, there must necessarily be either complete division between the husband and wife, or loving agreement. When the relations of a couple are vacillating and neither one thing nor the other, no sort of enterprise can be undertaken. Many families remain for years in the same place, though both husband and wife are sick of it, simply because there is neither complete division nor agreement between them.
- Respect was invented to cover the empty place where love should be.
- Where love ends, hate begins.
- Goodness is outside the chain of cause and effect.
- I know nothing, nothing, and I can know nothing but what has been told to me and all men.
10 Dec 2010
Rounding
We know that there are billions of books in the world. And all of them are unique. Every one of them is different from everything else. Is that because every book uses unique words? No. Is that because every book uses unique phrases? No. Is that because every book uses unique sentences? No. Is that because every book has unique paragraphs? No. Is that because every book has unique chapters? Maybe not. If you have ever tried writing a book, you'd know that what reaches the readers is only one version what you had written. You would have written several books that share many chapters, and you published the one book that was the best among them all. So, a book is unique only when you see it from cover to cover as a whole.
But how do we judge books? Isn't it common to say "A few chapters in the middle are a little boring, but it's a pretty good book"? Isn't it common to remember only a few parts of a book and forget everything else from it? Isn't it common to skip a chapter in a book because it's way too boring? Are we not rounding a book when we judge it by excluding certain parts from it? Why do we always want to judge an incomplete thing than to simply not have an opinion about it?
Same applies to people. A person is what they are, what they do, what happens to them from their birth to end. I think knowing even oneself is extremely hard without rounding... let alone knowing others. But how we have put everyone we know in buckets like "good person", "crazy dude", "smart chick", etc!
Colours
Really really really long time back, when there weren't many people on earth, there lived two men. I don't know their names, but let's call them Ganesan and Murugan. When electromagnetic ration (aka light) with a certain frequency between 540 and 610 THz passed through Ganesan's eyes, he saw a shade of this color: . However, for the same radiation Murugan saw a shade of . Likewise, Ganesan saw the light of a certain frequency between 610 and 670 THz as but Murugan saw the same light as .
Ganesan saw plants and leaves in , and seas and sky in . Murugan saw plants and leaves in and seas and sky in . They spoke to each other about how there's something visually similar between sea and sky and between leaves and plants. They decided to call that similarity "colour". They decided that they would call the "colour of leaves" green and the "colour of sky" blue. Keeping that as the starting point, they identified and named plenty of other colours. But never could they know that one person's green was another person's blue.
9 Dec 2010
Fear stays silent while passion speaks
Some quotes I liked from the video:
- Every transition brings with it personal growth.
- It's easier to gain speed at a turn.
- Opportunity is a mould that is waiting to be reshaped.
- Leaders blur boundaries.
- The best way to get recognition is to give it away.
Paradigm shift of computing industry
We've gone from a point where we had reliable disks and unreliable networks to a world where we have reliable networks and the absense of a disk or an unreliable disk or we don't really care about the disk.(Video available on YouTube)
1 Dec 2010
How I am saving time
Some time back I realized that I don't get any time to read. I didn't like that fact. I started watching my daily activities and figured what all were taking my time. The first thing was email. Every random vendor was sending me promotions. I spent about two weeks actively unsubscribing or creating filters to stop spam from interrupting me.
Next was staying away from Facebook. There are two reasons why I don't use Facebook much. First is that it doesn't have a useful search functionality. If I post something on Facebook today, I cannot find that post 3 months later by searching. The second reason is that there's too much of mindless stuff going on in Facebook.
Third one was cleaning up my Google Reader feeds. I had subscribed to Jeyamohan's blog though I hardly read the posts he writes. I can always go read directly from his site if I have time. Likewise I unsubscribed from some Android forums that weren't of good use of my time.
The final thing was to unfollow some people on Twitter. @adsahay is a friend, but he doesn't post any personal updates on Twitter. @lavsmohan posts several tweets a day and most of them are boring. (Her blog is pretty good, by the way; her blog is still on my Reader.) Then a few other people from Tamil film industry. They were mostly giving film news updates; that's not something I'd want to read everyday. Unfollowing them all has made my Twitter timeline a lot slimmer.
All these have given me a good amount of spare time which I can use to write and read something I can feel good about.
29 Nov 2010
Harsha Bogle's speech at IIMA
Some quotes I collected from the speech:
- Great teams become great because they excel in their preparation.
- Take care of the runs, dollars will take care of themselves.
- The moment going wrong falls into your possibility map, then you do go wrong.
- For a purely selfish reason, if not for anything else, always surround yourself with people who are better than you.
- You cannot marry someone who is marrying 22 hundreds.
- Arrogance often comes in the way of excellence. It's one of the biggest stumbling blocks on the path of excellence.
- I was willing to be a non-striker.
- In the world of excellence if your ego and anger are on your side, you don't need opponents.
- Once you go beyond a certain level, ability or talent is the most useless virtue to possess. It's what you do with that talent that matters.
- The more mistakes you make, the more you know what not to do. If you can be outstanding at knowing what not to do, then the road to what to do opens up before you, doesn't it?
- I think excellence is more about humility, actually, even more than luck. Because unless you are humble you'll never hang around, you'll never be willing to do what it takes for that opportunity to come.
- Some of us never know how good we are.
28 Nov 2010
What does this mean?
The deal here is that I fell on the ground so it was obvious to the car guy that I must have been the one who hit him. The guy who helped me get up was the one who hit me, it seems. I knew it only after he told me that. He helped me get off the road so I'm pretty sure he didn't lose his balance after he hit me.
Now, the car guy says I and the other motorcyclist should pay him for the damage. He was asking us a few thousand rupees, which neither of us were willing to pay. So we went to the police, who made me pay him 1500. (I don't know how much the other guy paid.)
When I handed my share to the car guy, he started arguing with me that I was paying a lot lesser than I owe. He started telling me how generous he has been: "You both together pay me 4.8k, and I, who doesn't have to take any responsibility whatsoever, will pay the remaining 1k from my pocket."
My opinion is that since this is an accident everyone takes equal responsibility, like grown ups. So I told him he has as much responsibility as I do. He didn't like that. Anyway, I digress.
The other biker told the police officer that he is earning only 6k per month so he cannot pay pretty much anything for the loss. I thought about it. What if the biker had decided to take off after the accident? I would have told this car guy that it wasn't my fault, but being the
The biker, like a responsible adult stayed on the accident spot even though he could have simply gone off and no one would have known anything. He was harassed by the police and he had to pay money for the loss. Why did he do that? Police, who should have filed a case and made the insurance companies pay for the loss threatened this guy and made him pay from his pocket. I didn't have the balls to talk to the police and tell them to involve insurance companies in the scene.
Maybe life is not a courtroom. Maybe you cannot accuse only one party for what happens. Maybe there's no point in talking about right and wrong. But what does the incident today mean? What am I to write on my notebook about this incident? Only thing I can say is that it was not very pleasant.
25 Nov 2010
Changes
If every moment is about change, and life is one stream of changes, maybe changing is all that matters. Maybe I should be a lot more willing to change, ignoring my habits and dogmas.
21 Nov 2010
Someone changed the rules behind my back
At a certain point, how well you do your work ceases to matter. It's like, you have finished level one and you're ready for level two. Level two is played with different rules. What helped you pass first level -- doing your job well -- still remains important, but that's not going to help you pass the second level. Finding good opportunities is the key in second level. Engaging yourself in 'critical' assignments is an important thing you should do to keep your place in the game.
Also, no one tells you when you are promoted to the next level.
19 Nov 2010
Teacher
A teacher is blessed because he can influence hundreds, if not thousands of people's lives. He can inspire them to bring out the best in them. The same is his curse. Several students leave their schools hating most of their teachers. There will be students whom he'd have inspired in a positive way. But he is oblivious to most, if not all achievements of those students.
18 Nov 2010
15 Nov 2010
Chrome freezes
(Why does this happen? Is there an alternative to using this extension? I have no idea. But removing that extension seems to solve the problem.)
13 Nov 2010
One more observation on addictions
Moments
9 Nov 2010
Finding Indic language content on Google search
Set your Google interface language to Tamil and search for [vairamuthu], you'd get a result page like this:
It works for all Indic languages. Here's a screenshot of the Hindi interface:
8 Nov 2010
How I use Synergy
Basic setup is done by writing a configuration file on the server machine as shown in Synergy manual. In addition to letting you share keyboard and mouse, Synergy does another sweet thing: it synchronizes clipboards on all the connected machines. What this means is that you can copy some text on one computer and paste it on another! I love this feature. But one thing I was not comfortable with: all Synergy communication over the network is done in plaintext. Every day I would be sending a lot of information over the wire without even being aware of it! URLs, email addresses, code snippets, and so on. I don't like it.
Any TCP/IP connection can be encrypted (without the app having to support encryption) using SSH tunnels. Synergy site has some information about using tunnels to secure Synergy traffic. Using that setup requires typing a password to establish the tunnel every time I start
synergyc
, the Synergy client program. I don't like that either.First thing I did was to set up public key/private key authentication to the server computer -- one on which I run synergys, and run ssh-agent on the client computer -- one on which I run synergyc. (Mark A. Hershberger has written a detailed guide for doing this.) This would let me log into the server from the client without having to type a password. Then, I wrote a Python script that would set up an SSH tunnel and start Synergy client. Now, instead of running synergyc command I run my synergyc.py script, and everything works as expected.
The script sets up a tunnel and starts the client. My first version, which I wrote a few years ago, was very naive. For example, it would freak out when the client loses connection to the server, and I will have to manually restart the client. Now the script is much improved and works pretty well for my usage. The script is available on GitHub. Feel free to use it, review the code, send patches, send feedback/bug report, etc. (Remember to change
SERVER_HOST_NAME
in the script to your server's host name before using the script though :)
Hyderabad... it gets on my nerves again
I spend about an hour in Hyderabad traffic almost everyday. That ensures that I keep disliking this city. People here don't seem to understand right of way, and that pisses me off. My mind goes "dude, why don't you just let me go?" From the little I have seen, they are just ignorant of right of way and it all becomes someone else's problem. The traffic is equally bad, if not worse, when it's raining or dark.
And the traffic cops... oh my goodness! They don't even care if someone is driving on the wrong side of the road. Several times they have encouraged me to go past a junction when the signal is red! One thing they do well is sit on your pillion, direct you to the close by ATM to get some bribe because you are not wearing a helmet or your bike doesn't have an AP registration number. (Oh sure, you can drive with a TG number plate.) Disgusting is the word!
7 Nov 2010
Gratitude
Well, I am thanking this rickshaw driver because he took me to this place. Shouldn't I be thanking the government and all labourers for paving and maintaining these roads? Shouldn't I be thanking every single employee of Bajaj for making the rickshaw? Shouldn't I be thanking the petrol pumps for making motor vehicles practically feasible? Shouldn't I be thanking my employer for paying me enough to make rickshaw rides affordable to me? Shouldn't I be thanking all my teachers -- everyone who has taught me in my entire life -- for making me eligible for getting this job? Shouldn't I be thanking my family for all the hardships they went through to give me the quality education I got? Shouldn't I be thanking the doctor who treated my broken leg so I can now walk around independently? Shouldn't I be thanking my laundryman for washing my clothes on time so I could come out with good clothes?
Shouldn't I be thanking the entire universe for every nanosecond of my existence?
6 Nov 2010
The story of my running behind a bitch
A little distance after crossing Mehdipatnam bus stand, I saw a (female) dog running in the opposite direction. It went past me 2 metres, turned around, and started following me. At a safe 0.5 to 1 metre distance the dog was now following me. Every now and then it would come close to me so that I'd notice it. It kept on coming with me till the Food World signal, which is about a kilometre from the bus stand. I knew the dog is looking for food, and I didn't want to go without giving it anything. I mean, it had followed me for a kilometre! But there was a problem.
There were no shops on the side of the road we were in. I had to cross the road to find anything to feed the dog. I was pretty sure the dog won't cross the road with me. So I decided that I would cross the road and see if the dog was still in sight. If I could see it I'd buy something for it; otherwise I'd just go home. So, I crossed the road -- which took longer than I would have liked -- and looked back. The dog had stayed behind like I had thought. It had moved a bit, but it was still there and I could see it. So I went ahead and bought a pack of some cheap biscuit. I crossed the road again to get back to the dog.
The dog had moved further and now it was a good 50 metres away from me. "Well, I have bought the biscuits already, now I have no choice but to follow the dog," I told myself and started walking towards it. The dog was moving slowly towards the bus stand, i.e. the direction opposite to my house. I would have walked for about 45 seconds when I noticed these three lads walking before me. One of them decided to amuse himself by throwing a stone at the dog I was chasing. The stone didn't hit the dog, but the dog started running fast to save itself from being attacked.
"Oh shit," I said to myself and started walking fast. The dog was very far now -- maybe 150 metres away from me, and it was running! I started to walk fast, but I couldn't keep up with the running dog. By the time I was near it, the dog had reached the bus stand already! I was only a metre away from the dog, and I had to make it pay attention to me. I threw a biscuit at it. Scared, the dog moved away. It stopped some 3 metres from me and stared at me to see what I was up to. I took another biscuit and offered it. It came near me cautiously and ate the biscuit off my hand. Then I showed her the biscuit that I had thrown first. She ate that too. After it had eaten two biscuits, I unwrapped and kept the whole pack down on the floor. It started eating, and I started walking back home. This is what I had in mind then... "Bitch... it made me walk two extra kilometres!" :)
27 Oct 2010
26 Oct 2010
Living on the cloud
17 Oct 2010
Time
Type to switch windows on KDE
A couple days back I stumbled upon a KDE 4 feature. Looks like KDE would let us use the Run dialog box (which is activated by pressing Alt+F2 from any application) to switch between open windows. I am the kind that has a lot of windows open all the time. Sometimes it might be easier/faster to type few letters of a window title to switch to it, and this feature does exactly the same.
12 Oct 2010
Truths and myths
Uncertainties
11 Oct 2010
Context
Context is everything. You can be a happy person or an unhappy person depending on where you position yourself. And also, like they say, be careful what you wish for.
2 Oct 2010
Code coverage
If you have written automated tests for computer programs, you are very likely to be familiar with code coverage. Almost everyone agrees that 100% code coverage from your tests doesn't mean that your code doesn't have any bugs. I have been told this by experts, and I accepted it as such all this while. Suddenly a few days back I could come up with an example where the test coverage is indeed 100%, and yet one bug goes unnoticed.
This example is an extremely simple case (you can even call it stupid) and the bug is on your face. But in real systems bugs may not be so apparent. Here is the code we are testing:
package in.manki.samples;
public class Coverage {
public long factorial(int n) {
long f = 0L;
if (n > 3) {
f = 1L;
}
for (int i = 1; i <= n; ++i) {
f *= i;
}
return f;
}
}
And here is the first version of the automated test:
package in.manki.samples;
import junit.framework.TestCase;
public class CoverageTest extends TestCase {
public void testFactorial() {
assertEquals(120L, new Coverage().factorial(5));
}
}
The test passes and Emma says I have 100% code coverage:
[class, %] [method, %] [block, %] [line, %] [name]
100% (2/2) 36% (12/33)! 17% (91/549)! 23% (34/150)! junit.runner
71% (5/7)! 40% (41/102)! 35% (442/1272)! 38% (123.8/324)! junit.framework
100% (2/2) 56% (20/36)! 47% (247/530)! 48% (63.2/131)! junit.textui
100% (2/2) 100% (4/4) 100% (35/35) 100% (10/10) in.manki.samples
Adding the following test would expose the bug, but if we simply go by coverage numbers we would deceive ourselves that the code is thoroughly tested.
package in.manki.samples;
import junit.framework.TestCase;
public class CoverageTest extends TestCase {
public void testFactorial() {
assertEquals(120L, new Coverage().factorial(5));
}
public void test2Factorial() {
assertEquals(2L, new Coverage().factorial(2));
}
}
Google's Testing Blog has a very good post on code coverage; it's worth reading it if you haven't already.
Why social?
"Shall we go watch Sadhi Leelavathi?" my father asked me. But I wanted to watch Badsha. Not because I liked Rajini Kanth. In fact, I have never liked him. Even as a kid I liked Kamal Hassan more than Rajini Kanth. My father of course knew better and we went to Sadhi Leelavathi. The movie was hilarious, but I was probably the only person who didn't laugh in the theater. When I saw Sadhi Leelavathi later on, after I was over with being pissed with my father for not taking me to Badsha, I really loved it. But on that day, I wanted to watch Badsha first because all my friends had seen that movie and they were all talking about it in the class.
Likewise, I haven't seen many movies in IMDB's top 250 list. But today I watched Loins of Punjab because my friend Chenthil suggested it (and loved the movie, by the way). Only now I understand why "social" is such a buzzword and every company wants to make their products more social. Earlier maybe social wasn't possible, or no one thought about it. Now, we don't care much what Experts Opinions are, but we want to what our Friends Opinions are. I must say I am liking this change.
24 Sept 2010
Learning
Now what I think is, when one is ready to learn -- when one is receptive to lessons -- he finds his lessons from pretty much anything. Guru and disciple are not two different entities, but the disciple has his guru in himself. Guru, and his teachings, all come from within the disciple. And that's why learning is always an intimate and personal experience.
23 Sept 2010
Customizing Gmail's Priority Inbox
In this post I am going to say how I changed Priority Inbox to suit my needs. I should first say how I have organized my Gmail mailbox. If there's a mail that I might need in the future but only occasionally, I star that mail. Some of my starred mails have the license key for software I bought, links to my Internet domain's control panel, etc. I don't need these information often, but when I do need them, I find it hard to locate them by searching.
There's another set of mails that make my "to-do list". I add a mail to my to-do list by applying "pending" label to it. Let's say I receive a bill for my Internet connection, and I am planning to pay it only a few days later. I'd mark it as "pending" so I can get back to it later. Once I have made the payment, pending label is removed from that mail.
Before Priority Inbox, I was using Multiple Inboxes Gmail labs feature to show my "pending" mails above my inbox. If I can somehow make the "Starred" section of my Priority Inbox view to show my "pending" mails, I will get my old inbox view back. This is how I did that:
I clicked on the title of the Starred section, and choose "More options..." item.
This showed me all my labels. I selected "pending " from the menu.
That's it. Now my Starred section has been replaced with more useful "pending" section.
There are more ways to customize your priority inbox. Open Settings > Priority Inbox in your Gmail and explore the options available there.
20 Sept 2010
19 Sept 2010
Slow poison
1. The movie Adaptation. I first saw the movie, and I didn't really like it much. Somehow I didn't want to accept that and told myself that it was an okay movie. But later, different scenes from the movie came to my mind every now and then, and I started liking those scenes. Bit by bit the movie grew on me, and a few days ago I saw the movie once over again. I am thinking I will see it again after some time.
2. My long bike ride, Pilgrimage 2010. As soon as I was back it was just another ride/vacation for me. Nothing remarkable. But every now and then I get a glimpse of how that trip has changed me. Then I called it a pilgrimage just for the kicks. But in retrospect, I think that was indeed a real pilgrimage. And this pilgrim wants more and more such pilgrimages in life!
Accidents happen
About 6 hours back, I was on the road going on my bike to see a friend. A city bus decided to stop for whatsoever reason, so the Santro following that bus had to stop suddenly too. I was behind the Santro and I was impressed that I had avoided hitting the car by literally an inch. Just when I was thinking "not bad," something happened and my bike fell on the road. I turn back and see a truck. That truck must have hit my bike from behind.
I scream and curse the guy, all in Tamil. In the back of my mind I knew this guy won't understand a bit of what I am saying, and I kinda convinced myself that he isn't hearing anything of what I shout. After a round of shouting I decide to get the bike up and see if there's any damage. But the truck has to move a little for me to do that. I extend my arm fully and shout "பின்னால போ" ("get back") and he immediately goes a little back.
I pick the bike up, put it on the side stand, and look around it. There isn't any visible damage. And the driver and the other man in sitting in the truck are looking very apologetic. There isn't anything productive to do there. So I start the bike and just go.
This is almost nothing. Just one blow from behind, that too on the bike, not on me. When I was doing all the shouting and checking the bike I didn't hear the song that was playing. I mean, not "listen", I just didn't hear it! My body was shaking for another few minutes, which I noticed only after getting off the bike after reaching the place I was going to. I wonder how it would have been to the guy who got hit directly by my bike about 3 years ago! It was fully his mistake and all that, but I really do feel sorry for hitting that guy. Whosoever you are, where you are now, dude, I am really sorry, and I apologise for hitting you from behind.
13 Sept 2010
Things I've discovered about myself - 2
- I hate it when friends don’t trust me.
- I don’t like it much when others complain about things that I’m indifferent to.
- I sometimes make typos while writing my own name.
- I like to show off.
- I’m claustrophobic.
- I don’t like air-conditioning.
- I like doing things that involve physical labour.
- I like movies, but I like it better when someone I trust chooses movies for me.
- I don’t experiment by trying out different food. I’m conservative in that way.
- Although I sometimes try insane combinations. Like mixing pineapple and mango pickle. Or mixing chocolate and curd.
- I have the ability to, and I sometimes do, manipulate people.
12 Sept 2010
Blessing in disguise
Jan 1, 2009: I get back to my regular life, though I still depend on a walker to move around.
Feb 28, 2009: I go to Warangal with a couple of friends. Of course, I carry a crutch with me.
Since then, the frequency of my travel has increased. The way I look at life has changed. The intensity with which I live has increased.
It's amazing how all bad things have some good in them and all good things have some bad in them.
Confession of an optimist
10 Sept 2010
Random Thoughts: Togetherness
If you believe that someone else's love and togetherness is going to bring happiness and meaning to your own life, you are bound to be miserable, no matter if you do or don't attain that person's love.
8 Sept 2010
Random Thoughts: Final conversation
1 Sept 2010
Random Thoughts: Acceptance
Some tips for long motorcycle rides
- Add bike maintenance to your plan. If your ride is long enough to require bike maintenance, factor that into your plan. After reaching Manali, both our bikes needed some maintenance to be done. Like, cleaning and lubricating the chain, changing the engine oil, etc. Luckily we had allocated one day at Manali for resting. We used that day for getting the bikes done up.
- Pack in small small plastic bags. I had kept all my shirts and inner wears in one plastic bag, my jeans, track pants, etc. in another bag, chargers and other electronics in another bag, and so on. This way they have a good internal arrangement, and they won't get wet if it rains. Our saddle bags are supposedly water-proof, but without the plastic bags it would have been a really bad scene.
- Take only what you really need. For a 3 weeks bike ride I carried 5 t-shirts and 1 pair of jeans. When a close friend advised us to carry one pair of jeans it seemed ridiculous at first. But if we are going to be wearing our riding gears all day long, what's the point of carrying regular clothes?
- Don't carry tools that you don't know how to use. Or tools that you can find at a mechanic's. This is pretty much the same as the previous one. We found a "list of tools to carry" online and we bought them all enthusiastically. Including a heavy foot pump! After a good friend's advice we decided not to carry the pump and several other tools and spares we had. It turned out that we didn't need any of those tools.
- Add buffer days to your plan. Keeping a reasonable number of days as buffer would be useful if something unplanned comes up. If everything goes well, you can always think of something to do in those extra days. (I had two spare days after the trip. I visited Taj Mahal in one day, and returned early and rested in the other spare day.)
- Remember it's a vacation. This may not be applicable to everyone, but I like this one enough to add to the list :) Our 3rd day in Leh, we woke up at 8 in the morning. Both I and my brother were tired. I had said the previous day that we should either go to Hunder next day or do white water rafting. But we were too tired to anything, so we decided to sleep more and relax rather than forcing ourselves to go visit places. I mean, if we don't allow ourselves to relax and rest, what's the point of taking a vacation?!
30 Aug 2010
Random Thoughts: Dance
PS: I already posted this on Twitter, but this one is so close to my heart I want a place for this in my blog :)
29 Aug 2010
Self-help
23 Aug 2010
De-stressing your bike's engine
Reduce the idle speed of the engine if it's too fast. Recommended idle speed for your bike, how to change the idle speed, etc. vary for each bike. For Honda Unicorn, the recommended idle speed is 1400 ± 100 rpm. You can adjust the idle speed by adjusting the knob shown in the picture. One thing to keep in mind while adjusting idle speed is that, you should ride the bike for 2 or 3 kilometers to warm the engine up before setting the idle speed.
Loosen the clutch cable if it's too tight. But how do you know if the clutch is too tight? A few symptoms I know of are:
- The bike's pick up is slower than usual.
- The engine stresses more than usual even at slow speeds.
- When you have to use the clutch very frequently -- for example in stop-and-go traffic -- because the clutch is too tight your fingers become sore quicker.
22 Aug 2010
Open vs. closed systems
From the little I know, it's very simple to do that on a WordPress blog. But Blogger hosts my blog. I have no choice but to wait for Blogger to act on this. I sometimes (very infrequently) think of moving my blog to Google App Engine so I can have all the power I might need for customizing it. But then, maintaining a blog is a lot of work, and that's one of the primary reasons I use Blogger.
21 Aug 2010
Review and clean up your Twitter connections
The best part about OAuth is that when you stop using an app, you can revoke the permissions you gave to that app. (You can do that from Twitter Connections settings.) If you had shared your password with an evil person or app, your only choice is to change the password.
Today I was casually going through my Twitter settings and found that I had authorized many third party clients to tweet on my behalf. I had stopped using most of those clients, but I didn't know that these permissions are persistent (i.e. authorizations persist even after we uninstall the clients).
20 Aug 2010
Random Thoughts: Choices
We make choices all the time. But never can we know if a choice we once made was the best we could have or not. We just live the choices we make.
17 Aug 2010
Random Thoughts: Horse riding
Random Thoughts: Self
- Proving to the world is proving to self.
- Being angry is being angry with oneself.
16 Aug 2010
Random Thoughts: Bitterness
11 Aug 2010
A respect hungry mind
I get really pissed when people don't respect me. I expect all my friends to respect me. Especially when the relationship is not going great. I messaged a friend last night and haven't gotten any response whatsoever till now. And that's eating my head since morning. Our relationship never was smooth and it's rough as I write this. (Although that friend might think otherwise.) So, in this relationship my expectation to be respected is a little high and that person just doesn't stand up to it.
A part of my mind says only I am to be blamed if I am not happy. Another part of my mind wants to call that friend and say how bad I feel. And the first part tells the second part that I just shouldn't be bothered about this whole thing and move on with things that matter. After all, spending one's energy on hopeless things doesn't make any sense at all.
One important thing is to learn how to respond to that friend next time when I face her and how much value I really give to that friendship. Maybe I am valuing that friendship a little too much now.
10 Aug 2010
Pilgrimage 2010: Manali-Leh highway
On our way to Leh from Manali we had faced a lot of difficulties. It was raining in Pang, a place where it usually never rains because of its high altitude. We had to stop at Pang for a night and because of the altitude neither of us could sleep well. I even experienced a very mild AMS. Because of the mild AMS, I had to walk out of our tent in rain to throw up. (I still remember some local lady telling me Kahaan jaate ho? Gir jaaoge! meaning "Where are you going? You will fall!")
The next day's ride was even worse. Around 11 in the morning Saravanan signals me to stop. We both stop and he says both his hands are completely unresponsive. "Take your helmet off and breath well", I tell him. But his fingers just wouldn't let him do anything. I take his gloves off, help him take the helmet off. We both eat something we had, and drink some water. We keep our hands on the hot engines and the exhausts of the bikes. We did this all while it was raining! After a few minutes Saravanan feels a little better and I tell him that we'd ride to some place where we get food. A place where we can sit and relax without getting wet. We stopped at the first tea shop we saw and ate hot Maggi, drank tea before we continued.
After all this, we both didn't want another Pang in that trip. That's one reason why we didn't spend the night in Pangong lake -- "no high altitude nights any more", we had decided though neither of us had explicitly said that. This made both of us hesitate a little to take the same route back. For various reasons I firmly decided that we will take the same route, and Saravanan agreed too, albeit with hesitation. (I kept telling myself this quote from The Matrix: "The real test for any choice is having to make the same choice again, knowing full well what it might cost.")
It didn't rain on our way back. That made the ride a lot easier. We had been expecting the worst experience of our life, but the reality was way different. We saw how good those roads were. (All this while "There are no roads at all" was our impression about that route!) Because we wanted to reach Manali as early as possible I had decided that I won't stop to take pictures. So my focus was only on the roads. And on the sceneries around. This time I saw everything in a new light. I saw the beauty and breathtaking views of the terrains, as if I was seeing them for the first time. It was a much pleasant experience riding back.
Yesterday evening Saravanan told me: "Riding back on the same route was probably one of the best decisions we made." We would have missed such a beauty if we had taken the Srinagar route, and worse, the image of Manali-Leh route in our minds would have been of a "roadless difficult terrain that's beautiful here and there". But in reality, that route is one of the most beautiful things I have seen in my life. I'm glad I didn't fall for the Srinagar route's "new terrain" bait :-)
See Pilgrimage 2010 for some background on what "Pilgrimage 2010" is.
Pilgrimage 2010: tents
See Pilgrimage 2010 for some background on what "Pilgrimage 2010" is.
8 Aug 2010
Pilgrimage 2010: tidbits
- Packing for a 21-day trip is way different from packing for a 2-day trip.
- India is vast. It took us 10 days of riding (plus one day of rest) to reach Leh from Hyderabad. We felt like tiny ants climbing their fastest on a tall mountain.
- Maharashtra is beautiful.
- Monsoons are probably the best time to ride in India. As long as you have proper rain gear.
- Nexus One is a pretty good phone to carry while traveling.
- I love Vodafone. (I like the name Hutch though.) It just works wherever I go. When other two phones we carried (BSNL and AirTel) were completely dead in Kashmir, my Vodafone worked just fine.
- One way traffic is boring. I'd choose old two-way highways any day.
- It's amazing how well one can drive while sleeping.
- I have wanted to be a cab driver for a while. Now I think I'd rather be a truck driver.
- I like trucks for their enormous size and beauty.
- I like roads; I find them beautiful.
- Traveling aimlessly and having time to spare lets you think free. We should note that Pirsig wrote both his books while he was traveling.
- On some national highway it was written that a good driver is seldom hurt. I agree.
Pilgrimage 2010
On the bike, I covered about 13 national highways and more than 20 state highways. I would have approximately burned 105 to 110 litres of petrol. Here's the rough route map of my travel, excluding public transport. (Click on the picture to see it in the original size, or see the route on Google Maps.) With me was my brother Saravanan, who took his bike from my native place Kovilpatti. His trip is 1100km longer than mine.
I couldn't believe myself when we started on 17th morning. We kept riding. As days went by we saw new terrains and new people. Yet it was all only like a dream; I couldn't believe it was really happening. Now, everything is over and I shall be at work tomorrow doing whatever I usually do; yet it still feels like a dream.
PS: Pictures I took during this trip are available as a Picasa web album.
1 Jul 2010
Android tips #2
- You probably know that the Google Search widget on the home screen can search the contents of your phone too, from Android 2.2 onwards. But did you know that you don't really need the Search widget to be on your home screen to use search? You can simply press your phone's Search soft key when you are on the home screen, and that would bring the search UI of the widget (even if the widget is not present anywhere in any of your home screens).
- You can type a phone number and dial it directly from your phone's search interface (either from Google Search widget or by pressing Search soft key when in home screen). You can also type a phone number and create a new contact with that phone number from the search UI itself.
- This is a feature I know I will be using very often, but I know it's not for everyone. You can press and drag upwards on the soft keyboard to reveal two rows at the top that have numbers and few special characters. Will be handy when having to type one symbol or a digit in the middle of a phrase.
27 Jun 2010
This day
Now I should say I am really happy with my work as such, and my life in general. Last night I was sleepy by 9.30pm but suddenly got some idea and sat down to build something that a friend of mine can use in her blog. That made me sit till midnight or so. Woke up early this morning. Tweaked the code I had written last night; spoke to the friend; got some feedback; planned something big for what we were doing.
Then randomly I decided to go to office. Went to office; helped another friend in his project; did some office work too while I was at it; went out to meet some friends; spent some time out; and now I am home, typing this. Surprisingly, I was calm and driving responsibly on the road. My blood pressure didn't rise when the car before me was just too slow. I didn't cut anyone off in my urge to go past everyone. I didn't swear much. When people cut me off I did get irritated, but I didn't go mad like I do nowadays.
Life is suddenly good.
21 Jun 2010
Android tips
- This is a question I have been asked several times by my friends who use Android. How would you delete or forward a single message in an SMS conversation? Long press is the answer. Long press the message you want to delete or forward and you will get a menu that will let you do it.
- Android's built-in SMS app will not autocomplete phone numbers of your contacts that are not marked as "mobile". Not everyone has correctly categorized phone numbers in their contact list, and it could be a pain. There are two ways to solve it: 1. correctly classify mobile phone numbers as mobile numbers in your contact list; this can be hard to do. 2. Use a third-party app like Handcent SMS for messaging. Handcent SMS lets you configure if you want to see non-mobile numbers while composing SMS.
- Let's say you have a phone without a physical keyboard. You are in some UI where there is no text entry field, but you want to type something. For example, imagine you are seeing your contacts list, and you want to find a contact by typing the contact's name. (It's faster than scrolling and finding it.) What you can do is long press Menu button, and that will bring the soft keyboard. Now type the first few letters of the contact to filter the contact list.
- You know that all your Google Talk chat history is available in Gmail. But did you know that you can search your chat log from within Android's Google Talk app itself? When you are in Google Talk app, press the Search button and enter your search query. This will show all chats that match your search query. Opening a result would show you the chat log in the same way Gmail does. You can even reply to that chat by email or chat from there itself. This can be extended to other apps too. Any app's search functionality can be activated by pressing Search key when you are in that app. You press Search button when in home screen, it brings the regular Google search (or phone search in 2.2/Froyo and above). You press Search button when in Gmail app, it brings the Gmail search box.
Apple products: why I don't want them?
What do I think of this as a user? Let's think about one feature: copy-paste. I agree that copy-paste is not a great experience on Android. I have never used any iOS device, so I can't compare Android and iOS. But I am inclined to believe that iOS does it much better than Android.
Apple took the time to think about how to do copy-paste right, and they introduced it only in version 3 of their OS. Had I owned a first generation iPhone, not having the ability to copy-paste on my phone would be a severe limitation to me. Likewise, iOS devices don't do over-the-air syncing yet. Maybe Apple will implement it in the "right way" at some point, and they might even prove that Android's way of syncing is inferior to what they can do.
But it all doesn't mean much to me. I think of myself as an advanced user who can figure things out when something is not working. Even if it's a little sloppy, I want my features right now; I can't wait for my device manufacturer to think hard and get it Just Right.
(I have more reasons for not wanting Apple products; this is just one in the list.)
Running
You can run in the streets, smiling at people you see. You can run in the beaches, listening to the waves. You can run in the mountains, ascending towards the sky. And you can also run on a treadmill in an air-conditioned room.
17 Jun 2010
13 Jun 2010
Random thoughts: Overcoming addictions
Getting rid of addictions is not easy. In fact, it can be one of the hardest things one would accomplish in life. Let's say I'm trying to overcome my addiction for smoking. Not smoking is not really the hard part. Handling the vacuum that results from the 'non-smoking' is relatively very hard. Addicts have designed their every day around their addiction. They unconsciously or consciously allocate a portion of their days for their addiction. When they quit, they have quite a bit of free time with nothing to do. It's extremely easy to embrace their addiction back to fill that void.
Many people say that you should say positive things and think positive things, and that being positive is good in general. If I extend that to handling addictions, I can think of an approach. Rather than saying "I don't want to do that," try saying "I want to do this". Rather than spending your energy on "I don't want to smoke," focus on something like "I want to paint". Now you are setting yourself up in a new environment where you have lesser time to smoke. You're focusing on spending your time creatively. That should be a lot easier than simply wanting to throw something away without any clue about what would you'd replace it with.
11 Jun 2010
The world and me
9 Jun 2010
Android task killers
As I am writing this, a search for [task killer] in Android Market finds 88 apps. All these task killers come in different sizes and colours and varieties; yet their primary function is one thing: kill the apps that are running in the background. One of the first documents one would read when they learn Android development is Application Fundamentals page of Android Developer Guide. It says:
[An activity] is stopped if it is completely obscured by another activity. It still retains all state and member information. However, it is no longer visible to the user so its window is hidden and it will often be killed by the system when memory is needed elsewhere.This means that Android keeps an app in background because the user might switch back to that app in some time. This work flow would be familiar to you. You are reading an email in the Gmail app and you receive an SMS. You open the SMS from the notification bar and reply to it. When you are done with the SMS you press Back key of your phone and you are back in Gmail, in exactly the place where you left. You can continue to do what you were doing in Gmail. To make this possible, Android keeps Gmail app's state in memory.
Let's say you don't come back to Gmail, but you open a game and start playing. And let's assume this game needs a lot of memory. Now Android would kill the Gmail app automatically and reclaim the memory used by Gmail. It's given to the game you just started.
Android keeps recent apps in memory that would otherwise be left empty and kills apps and reclaims memory exactly when it is required. This lets you get back to the state in which you left an app so you can continue whatever you were doing.
All these task killers do is kill the background apps immediately discounting the possibility that you might want to go back to the same app. If you are thinking task killers make your phone faster, think again. They are actually making you slow.
2 Jun 2010
Buzz feed widget for your blog
The widget shows your 6 recent activities on Buzz. It links to your Google Buzz profile at the bottom. For each post, it adds a link to the Buzz item and shows number of likes and comments. This was my feed at the time of posting:
If you are adding this widget to your blog, don't forget to replace all occurrences of
BUZZ_USER_ID
with your own Buzz user id. If you want to add this to your Blogger blog, but you are not sure how to do it, About.com has an article showing how to add any such widget to Blogger. This is all HTML, JavaScript, and CSS. So, you should be able to toss this code into any blog or web page and it should work.If you don't use Blogger, you can use the following code to get the widget on your blog. (Don't forget to replace all occurrences of BUZZ_USER_ID with your own Buzz user id.)
<style type="text/css">
#buzz-widget {
width: 95%;
padding: 2px;
}
#buzz-header {
text-align: center;
}
#buzz-footer {
text-align: right;
}
#buzz-footer a {
text-decoration: none;
font-weight: bold;
}
.buzz-feed {
padding: 0;
margin: 0;
}
.buzz-feed .buzz-entry {
list-style-type: none;
text-indent: 3px;
border-bottom: 1px dotted gray;
padding: 0.5em 0 0.5em 0;
background-image: none;
}
img.buzz-icon {
vertical-align: text-bottom;
width: 16px;
height: 16px;
}
</style>
<div id="buzz-widget">
<div id="buzz-feed"></div>
<div id="buzz-footer"><img src="http://goo.gl/TmmA" class="buzz-icon" /> <a href="http://www.google.com/profiles/BUZZ_USER_ID">View all buzz »</a></div>
</div>
<script type="text/javascript">
function getVerb(verb) {
verbs = {
'post': 'Posted',
'share': 'Shared'
};
return verbs[verb] || 'Posted';
}
function normalizeTitle(title) {
var MAX_LEN = 30;
if (title.length > MAX_LEN) {
return title.substr(0, MAX_LEN - 3) + '...';
} else {
return title;
}
}
function getAttachmentHtml(attachments) {
for (var i = 0; i < attachments.length; ++i) {
var atch = attachments[i];
if (atch.type == 'photo' || atch.type == 'video') {
return '<img src="' + atch.links.preview[0].href + '">';
}
}
return '';
}
function getItemHtml(item) {
var html = getVerb(item.verbs[0]);
var linkUrl = '';
if (item.links.alternate[0]) {
linkUrl = item.links.alternate[0].href;
html += ' <a href="' + linkUrl + '">' +
normalizeTitle(item.title) + '</a>';
} else {
html += normalizeTitle(item.title);
}
html += ' on ' + item.source.title;
if (item.object.attachments) {
var attachmentHtml = getAttachmentHtml(item.object.attachments);
if (attachmentHtml) {
if (linkUrl) {
html += '<br><a href="' + linkUrl + '">' + attachmentHtml + '</a>';
} else {
html += '<br>' + attachmentHtml;
}
}
}
var numComments = item.links.replies[0].count;
if (numComments > 0) {
html += '<br><img src="http://goo.gl/Y4eU" class="buzz-icon"> ' +
numComments + (numComments > 1 ? ' comments' : ' comment') + ' ';
}
var numLikes = item.links.liked[0].count;
if (numLikes > 0) {
if (numComments > 0) {
html += ' '
} else {
html += '<br>';
}
html += '<img src="http://goo.gl/0l9D" class="buzz-icon"> ' +
numLikes + (numLikes > 1 ? ' likes' : ' like');
}
return html;
}
function showFeed(response) {
var entries = [];
var items = response.data.items;
for (var i = 0; i < items.length; ++i) {
entries.push(getItemHtml(items[i]));
}
document.getElementById('buzz-feed').innerHTML =
'<ul class="buzz-feed"><li class="buzz-entry">' +
entries.join('</li><li class="buzz-entry">') +
'</ul>';
}
</script>
<script type="text/javascript"
src="https://www.googleapis.com/buzz/v1/activities/BUZZ_USER_ID/@public?alt=json&max-results=6&callback=showFeed">
</script>