Sunday, 29 December 2013

Bundle of sticks

Swami Gulagulaananda said:
"Uththishtata Bharatha... (Arise India)"

[This post may seem to be mixing two issues - Deal with it :) ]

"Take a twig and you can snap it between your fingers, take a bundle of sticks and you can't do anything to it" is the summary of the lesson imparted by the ailing old father to his bickering sons. We all know that.

When Alexander the Great arrived at Takshashila (current Pakistan), and was all set to invade India, the entire sub continent was made up of numerous kingdoms. These kingdoms individually were relatively small, save Magadha which was larger. There was still a concept of Bharath, which is modern India, but then they were all individual kingdoms. Alexander was poised to defeat India and kings like Ambhi even sided with the foreigner in his quest to invade Bharath. Chanakya foresaw what would happen if Alexander continued on this path, as you might have too - Each twig could be easily snapped by Alexander. He decided to form the bundle of sticks, an alliance of kingdoms which could together defeat the invading foreigner. But each of the kingdoms had too much vanity and arrogance and they didn't align with one another. Their petty individual problems occluded their vision of the big picture, something that Chanakya could see. They fell like dominoes.

Today's world is not so different from then. I am not even going to play the one string banjo of religion and caste - something that we are fully aware of. India is a country of diversity. We have people who speak different languages, belonging to different castes, subcastes, sub-sub-castes and so on, different religions, different social strata, who work in different fields etc. But there has to be one very important state of mind that has to develop in all of us - That we are all equal. We are all equal. If this mindset does not develop in us, and even if, for a moment, we think we are better than someone else, this unity cannot prevail. If you think that being a Christian is better than being Hindu and that only Christ can lead you to heaven, then you are not being equal. If you think only Allah can deliver you heaven and everyone else is a Kafir (heretic I believe?) then you are not equal. If you believe being Brahmin is superior and you should not touch a "low caste" person, you are not equal. Forget this... If you think a software engineer is better than a mechanical engineer, you are not equal. If you feel iPhone users are superior, then you are an idiot :P It means that you have to respect people and don't try to compare them.

In today's political scenario where the incumbent party is clearly scam ridden and dirty, the one ray of hope is Narendra Modi. There is also Arvind Kejriwal but he's a newbie who still has to prove a lot. Right now, people are being like the smaller kingdoms of ancient Bharath. A lot of AAP supporters are developing a mindset that they are the only clean party. Many other people are busy calling Kejriwal an agent of Congress and so on. Meanwhile politicians are busy appeasing Muslims to get a large chunk of votes and others are cursing Hindus for being divisive on caste. Meanwhile, there are people like this:
The formation of a union is extremely important. Even lousy European countries, individually whose sizes are comparable to Indian states have decided to align and form the European Union. African Union, Soviet bloc (Russia, Ukraine and Armenia?) are other examples. Everyone has realised that true strength exists only when you are united. Therefore, I believe that instead of having differences of opinions all the time, we should come together and vote as one big block and give Narendra Modi a thumping majority. All this bullshit about you being secular or an LGBT supporter is secondary - If you don't have a country, your rights are meaningless. If you don't have food to eat and a roof over your head, your right to be gay is meaningless. At the rate at which the incumbent government has brought ruin to the country, we will soon be on the road fighting for basic amenities. Once the so called MVP of Narendra Modi government is formed, everything else can be fixed later. I, therefore, urge people to become united and vote for Narendra Modi - Some of you may feel AAP is cleaner, but by splitting votes, there is always a possibility that Congress might come back to power - While AAP by itself cannot win in these upcoming elections, Modi has the brightest chance - therefore don't split your votes.

There is another lesser known story. Once, a large boulder in the middle of the busy market street seemed to be the source of nuisance for everyone. People cursed it, cursed the government, cursed lazy people and went around it. An old lady noticing the plight of her fellow citizens decided to push the boulder out of the way. On seeing the fragile old lady's efforts, two soldiers who were standing around came to her aid and pushed it out of the way. Once the boulder was pushed out of the way, she found a purse under the rock which had a note that said - To whoever pushes the boulder out of the way. The soldiers smiled and handed the purse to the lady, a gift from their king...

Most of us are the passersby. We look around at the problems, we curse a lot of people, contractors for poor roads, bad teachers for poor education, corrupt politicians for all the scams, etc. But we don't put in any effort towards fixing it. And by any effort, I mean zero. I don't intend to sound like I am complaining. We can actually become teachers, or write software to spread education, or do something to fix these issues. But we are all self involved and trying to make our own lives more comfortable - I am, of course, including myself in this. We should probably think of ways to improve lives of other people - Simple solutions that can ease a lot of difficulties.

Now is the time for us to act. Let us not be like the foolish kings who could not foresee the future. Let us awake and arise and put aside all our differences for some time, gay or straight, Hindus, Muslims or Christians, Upper Caste or Lower, everyone unite and vote together for Modi...

Thursday, 31 October 2013

Of Systems and Designs (Non Technical)

Swami Gulagulaananda said:
"The ability to handle rejection is an important quality to have"

[I started reading this fantastic book called "Design Of Everyday Things" by Donald A. Norman. The book is highly recommended by the way. This post is inspired by the book. Let me start off by saying I am no expert - these are my opinions only]

Systems and Designs seem to be very technical words. But, to me, they are more like common sense. These days, that is... Actually, from yesterday, because I started reading this book and now I have suddenly become an expert in the area.

Driving in Bangalore is a pain, which most of you are aware of. But driving a car can get a little more annoying because of all the motorcycles that swarm around you. Motorcycles are inherently unstable and tend to move in unpredictable paths in excessive traffic. So a driver of a car has to be extra careful when he drives because he has to concentrate on a number of haphazardly moving vehicles on both sides. The following is a scenario I encounter almost everyday.

I am on the left because I want to turn to the left. However, there are motorcycles that want to go straight but don't find enough space on the right side. So they creep in the space between my car and the pavement and go ahead. This is particularly annoying when I am turning to the left because it is idiotic of him to come in that space.

But it happens. Invariably... Every single day...

How do you fix this? Simple, educate everyone. This is not really as simple as it sounds. One, because it is an extremely time consuming task. Two, there are always idiots who will do it. To rely on the intelligence of people, therefore, becomes difficult. To fix this, we need to come up with systems.

A good system, according to me, is something that is idiot-proof. Something that should become impossible to break. My solution to this particular problem, that I have been effectively using everyday, is to drive very close to the pavement, so close that all hopes of finding subatomic spaces between my car and the pavement are completely eliminated. I have seen motorcyclists trying to sneak into small spaces and I cover even that area till they give up and wait. As you can notice, it is sheer impossibility that prevents any attempts.

One of  the nicest things I like is the Sim card design - If you observe a sim card, it has a small inclined cut on one of the corners. This makes it possible to insert a Sim card in only one way. Any other way, the card simply gets rejected. Norman gives the example of the floppy disk which also follows a similar principle. There can be only one way to do it - therefore, it becomes impossible to screw things up. Now think how many times you have messed up inserting your pen drive into the USB slot - I hate putting it in the wrong way, flipping it around and trying again. And think how your laptop charging points are designed and your mobile phones... Either universal or only one way.

I have a similar watch. It shows time (Du'h). It also shows the date, day and has a stop watch feature. So naturally all of these are settable. A frequent problem that analogue watches have is the 30-31 day problem. When a month has 30 days, on the first of the next month, the watch still shows 31. So I need to increment the date. Alright... We understand the problem. Now, how do I do that?

I know I can set the time, the date, day, start and stop the stop watch, reset the stop watch and also tweak the starting position of the stop watch. It has 3 controls on the right side - 2 buttons and a standard screw. The button on the top is used to start and stop the stop watch. The other button is used to reset the stopped stopwatch. Everybody knows that the screw is used to set the time. How? Well, obviously you pull it and turn it and push it back. Great! But how do I set the date and day? The screw can be pulled a little and all the way. Pulling it a little bit and turning it around sets the the time and pulling it all the way is for setting dates... Or vice versa, I can't remember. But which way should it be turned for the date? And which for the day? I can't remember. Does it mean I am an idiot? How do I manage it? You might have guessed it because you think it is obvious - Trial and Error. You pull it half and turn the screw a little bit and see what happened. Did the minute hand move? Ok, wrong level. Pull it all the way and slowly turn it. Did the date change? Great!! If you didn't want to change the date but you did it anyway, you have to rotate it 30 more times!!

You see, the system is allowing me to do as I wish - and so mistakes happen. And that happens because of an improper design. Which direction to turn to change the date or how much to pull to change the time, are not based on anything logical or natural. They are completely arbitrary. Arbitrary things are naturally difficult to remember... That's why people come up with mnemonics and associative memory techniques to remember arbitrary things. Another fantastic book to read is 'Thinking Fast and Slow'. So, to summarise, in this case, this watch is a flawed design. Anything arbitrary is wrong.

I had another funny experience - My friend Mayur got a new fancy pen. I asked him to show it, and I tried to pull what appeared to be the cap to see it. The moment I began, he said "Hang on, hang on, that's not the way..." and pressed it. Think about it - How difficult is it to use a pen? :P But you have gone through this before too. The classic Reynolds 045 ball point pen, for example, is impossible to mess up. Some fancy pens look like you have to do something else, but actually you have to do something else. Which is weird... and flawed.

This is a technical paragraph - feel free to skip... Amod and I had a bad experience when we started learning jQuery. On click of a button, we would clear a div, make an ajax call and create a table html structure and populate the div by using jQuery append. Okay, we know it's wrong to do such things now and use more elegant ways, but we were beginners then. If a person pressed the button once, the code worked fine. But what happens if a person presses the button twice? Ajax being asynchronous resulted in the div getting cleared for each click once, ajax calls being made and the responses of both getting appended, which means, two tables got appended. Clearly wrong. You can argue and say - Don't press  twice. But that's not the point. The design is flawed and  the system is wrong. To avoid it, either fill entire html (use html instead of append) or disable the button till the callback is completed...

To summarise, designs and systems should inherently avoid mistakes from being made. I am no expert in the field, I was just excited to share these views and recommend the two books to everyone.

Saturday, 26 October 2013

Of Random Seeds and Other Random Bits

Baba Gyani Triviani said:
"If you believe in fate and destiny, then the randomness in this world is pseudo-randomness"

Random Number Seed
I am sure most of you would have used a Random number generating piece of code in your program at some point of  time or another. And when you were looking up code, you would have noticed the word 'seed' but would have ignored it. Some of you would have even noticed a word called pseudo-random number generator. Well, I did. And I didn't know what this seed was until a few days back.

Let's try out an experiment. I will use Python in this post, but you can use any other language - Java, Ruby and they will all behave in the exact same way.
>>> import random
>>> random.random()
0.23108685984562283
>>> random.random()
0.017276293409835386
If you try this piece of code on your machine, your results will be different from mine. Isn't that obvious? It IS a random number generator after all, you might say. Now let's do something a little different. Try out the following code...
>>> import random
>>> random.seed(5)
>>> random.random()
0.6229016948897019
>>> random.random()
0.7417869892607294
The only difference is  that I have written an extra line with seed and I am passing 5 as the parameter. If you try out this piece of code now, you will see that the random numbers that you are getting is the same as what I am getting. ! So that means that random numbers are not as random as we think they are. You can try by opening another terminal and issuing same commands and your results will match.

Variable arguments in Javascript
Most of you are familiar with varargs - If you want a function to accept variable number of arguments,  you use the standard ellipsis notation - works in C, Java... But does it work in Javascript? No. So how do you do it? I was browsing through Coffeescript and I noticed the varargs ellipsis notation. On checking the generated Javascript code, I noticed something interesting.

So this is what you should try. Fire up your console in Google Chrome and type the following:

function test() {
   console.log(arguments);
}

test('hey');
test('hi', 'hello', 'howdy');
test();

And the outputs are:
["hey"]
["hi", "hello", "howdy"]
[]

As you can see, though the function test doesn't look like it is accepting any arguments, arguments can be passed and accessed using a special 'arguments' variable. It is basically an array and you can use it to check if arguments were passed or not, how many were passed and which argument is what. Fancy, huh?

Closures in Javascript
Apparently, to be called some kind of an expert in Javascript, you should be able to talk intelligently about Closures. For a long time, I used to stare blankly at the word. Eventually I decided to see what all the fuss was about. 

But before I tell you what closures are, I wanted you to know this simple piece of code. If you know it, go ahead. Otherwise try it out. Functions in Javascript can be written in two ways:

function sayHello(name) {
   console.log("Hello " + name);
}

sayHello = function(name) {
   console.log("Hello " + name);
};

Both work - The difference is that, the first one is available the moment your scripts begins to execute, the second one is available only after that line gets executed. What it means is that, I can call sayHello in a line that precedes the actual function definition in the first case. However, if I write it in the second way, it is available only after that line. An attempt to call it before will make your program to crash out - You are attempting to use it before defining it.

The advantage of the second style is that you can change the entire function behaviour but retaining the same name. Here's an example:
chameleon = function() {   console.log("I am green in colour");}; 
chameleon(); 
chameleon = function() {   console.log("I am brown in colour");} 
chameleon();
As you can see, the functions entire behaviour changes. This happens if you define it in the other style as well, but since this is like a variable, you can use this style to accept functions that get returned from other functions. The following example clarifies this point while also explaining closures.

So here's a simple example for closure.
function outer(x) {
    this.x = x;
    return function(y) {
        console.log(x + y);   
    }
} 

a = outer(5);
b = outer(10);

a(10);
b(10);


So essentially, we have a function called outer that accepts one parameter - x, and it returns a function (That's one feature I love about JS - the ability to pass functions around like any other variable). So, a and b will store the returned functions. But these two functions are not exactly identical. Since the 'x' parameter was different, the 'x' inside the returned functions are different too. To clarify, the 'x' inside the console.log gets hard-coded to whatever was passed - 5 for the a, 10 for b.

So when we call a and b with 10 as argument, the sum becomes 5 + 10 = 15 for a  and 10 + 10 = 20 for b. That's how you can a single function to behave differently depending on arguments.

Object oriented programming in Javascript
I thought of writing a bit about prototypes here - but then I thought that, rather than doing that, you should give CoffeeScript a chance. It's very easy to learn and you can do things in a better way. Like class definition is much cleaner in it and it takes care of the dirty work behind the scenes for you. It eventually generates Javascript and you don't have to worry about it.

Sunday, 20 October 2013

The (fake) Quest To Eradicate AIDS with Mythical Mystical Indian roots

Swami Gulagulaananda said:
"When in a game, play..."

I have won several lotteries organised by Shell, Coca Cola and other companies. Each prize was no less than 500,000 GBP. And I have also been fortunate to share my surname with super rich heirless millionaires, facilitating unscrupulous lawyers to wire their enormous funds into my account so that I can send them their share for making it happen. Considering the number of lotteries I have won and number of inheritances in my name, I am richer than Bill Gates ten times over.

But alas, we are aware of how scams work. Some of us, at least. So I continue to be penniless as before.

Recently, I got an email - The brevity of which prompted me to reply, and then began an interesting conversation.
from: Robert Adair
to: r-adair@hotmail.co.ukdate: 17 October 2013 21:29subject: Your revert awaited
having a proposal to discuss with you
To which I replied, with equal conciseness...
Regarding what
And I got a reply to that...
from: Robert Adair
to: Nikhil Baliga
date: 18 October 2013 13:42subject: RE: Your revert awaited
I am Robert Adair from the United Kingdom.There is huge demand for Indian herbal roots in my company
presently. My Boss is desperate in need of the roots for Pharmaceutical productions even
willing to buy at a higher rate. He is ready to send a purchase officer to meet the seller in
India,to receive this product and pay instantly.
But due to my interest in the business,i don't wish to reveal the real seller's contact to my
boss. Hence,I am soliciting your help to stand as a middleman to do this business on my behalf
and the profit would be shared between us. Profit will be healthy in this deal.
For further detail about the business,kindly reply
Sincerely,Robert Adair
Healthy profits. Time to pretend to be a sucker... but a cautious one. We don't want to set off any alarm bells. So I replied...
Sure, it sounds interesting. It'd be great if you can provide more information.
So he sent me his business proposal. It might be a little long to read, but I think you should quickly go through it. Just for kicks... (There's a tl;dr at the end of the mail for the lazy ones)
PURCHASE OF ANTI HIV/AIDS RAW MATERIAL EDUIN SALVE  ROOTSAttn. Sir,I am a foreign purchasing Manager/Pharmacist to the above mentioned company; a subsidiary of Shire Pharmaceutical Limited UK.I got your contact from the internationalbusiness directory out of desperate search for a reliable and abusiness minded person in your country for a mutual and urgentbusiness transaction requiring maximum confidentiality and trust,hence I am contacting you. I and my Regional director use to visit your country India for the purchase of the above mentioned HIV EDUIN SALVE ROOTS . The botanical name of this Raw Material is  Eduin Salve Herbal Roots This Eduin Salve Herbal Roots raw materials used for the preparation/manufacturing of ANTI HIV/AIDS drugs in the United Kingdom . I wish to seek your cooperation in having an alliance with you in the outright purchase of these raw materials from the original seller in your country, and resell to our company. This seeds is sold at the rate of ($1,800.00) per packet. The seller of this seeds is a citizen of your country India .We have come to purchase these raw materials from him in several occasions. I will want you to be the middle man between the original seller of this products and my company. Where by you will purchase these products from the original seller at the rate of ($1,800.00) per a packet and resell to our company at the rate of ($3,150.00) as against($2,400.00) per a packet which we normally buy the products from the former middle man who has never kept to our sharing agreement. The over inflated profit that is added to it will be shared by both of us. That’s you will have 60% while 40% will be for me. This over inflated profit shall be calculated on the basis of the number of packets that you are able to supply us for purchase in any of our trip to India . I shall give to you my bank account details where you will send in my entitlement.Please NOTE that my regional director will not make any payment to you without seeing the products with you due to past experience. That’s you are going to make the out right purchase of these products from the original seller and resell to us when we must have finish discussion with you on our arrival in India. The payment is usually done on Bank to Bank transaction or cash in hand. That’s after seeing the number of packets supplied by you and the total amount calculated; we shall immediately proceed with you to our nearest correspondent Bankers trust here in India for instant payment into your account. We will be able to make any payment to the tone of the number of packets supplied to us on our arrival. I shall give to you the direct contact of the original seller for you to make enquiries about these raw materials after you must have given me your consent in this proposal. I will also give you details on how to contact my company officially over these raw materials and the new price of $3,150.00 per a packet after you must have concluded with the original seller. Because my company also serves as a distributing company of this products to some other companies in United Kingdom . All other information shall be given to you when you must have agreed to handle this proposal with utmost confidentialityFor your fullest cooperation, hoping to hear from you in a soonest possible time.Contact Number +448719746257   Regards,Mr Robert Adair
tl;dr: Guy says there're some roots that he wants me to purchase for $1800 and sell it at $3150. The profit is divided between me and him in 60:40 ratio. I have to pay upfront. His boss is clever to not pay upfront.

I am a poor average person from a third world developing country. Can you expect me to have $1800? So I ventured...
Hi Robert,

Thanks for the explanation. The deal certainly looks exciting and I am interested to pursue this offer.

However, $1800 is a lot in Indian Rupees and I don't have that much liquid cash to purchase the packets. I understand from your mail that your regional manager is not willing to pay the money upfront. However, since you and I are going to be business partners, I'd like you to transfer the money to my account. In return of the trust that you display, I am willing to share 50% of my profit, thereby giving you 70% of the total money. So rather than a 60-40 arrangement, it becomes a 30-70 arrangement.

I am really looking forward to hearing from you.

Thanks and Regards,Nikhil Baliga
I tried to be smart, huh? I wanted to see how he would evade it. But the tenacious little bugger played the sick card (What's next, dog ate my homework?) He replied thus, and in all caps:
THANKS FOR YOUR RESPOND I HAVE TO ENLIGHTEN YOU MORE ABOUT THIS BUSINESS TRANSACTION, THIS BUSINESS IS BUYING AND SELLING BUSINESS. YOU ARE TO BUY FROM THE INDIA DEALER AND RE-SELL TO THE COMPANY. SHIRE PHARMACEUTICAL LIMITED UK . THE COMPANY WILL BE SENDING THEIR SALES REPRESENTATIVE TO INDIA TO PURCHASE THIS PRODUCT,MIND YOU I HAVE A PARTNER IN INDIA BEFORE HIS NAME IS MR. PRADEEP GUPTA , HE BETRAYED ME IN THE BUSINESS AFTER SOME TRANSACTION, THAT IS WHY I REALLY NEED A GENUINE AND RELIABLE PERSON. MR. PRADEEP GUPTA , AFTER THE TRANSACTION HE DID NOT SEND MY OWN PERCENTAGE TO ME ACCORDING TO OUR ARRANGEMENT. NOW THE COMPANY HAS TOLD ME TO SUPPLY THE SAME PRODUCT AGAIN, I NEED SOMEONE WHO IS TRUTH WORTHY SO IF YOU KNOW YOU CAN HANDLE THIS TRANSACTION FOR ME WITHOUT ANY DOUBLE MIND I WE BE GLAD TO RECEIVE YOU AS A PARTNER. (2) I AM BRINGING THIS TO YOUR KNOWLEDGE THAT I DON'T WANT THE COMPANY TO KNOW THE DEALER OF THIS PRODUCT TO ENABLE US REMAIN AS THE SUPPLIER OF THE MATERIAL. BECAUSE IF THEY KNOW THE DEALER OF THE PRODUCT THEY WILL BEING GOING DIRECTLY TO THE DEALER TO BUY THE PRODUCT. I SUPPOSE TO COME DOWN TO INDIA BY MYSELF TO BUY THE PRODUCT BUT BECAUSE OF THE ACCIDENT THAT KEEP ME IN THE HOSPITAL BED. THIS THE REASON WHY I NEED SOMEONE IN INDIA WHO CAN HANDLE IT FOR ME. (3)AND ALSO YOU DO NOT NEED ANY LICENSE TO DEAL ON THIS RAW MATERIAL.BECAUSE A LOT OF ORGANIZATIONS ARE LOOKING FOR GOOD WAYS OF ERADICATING THE EPIDEMIC OUT OF THE GLOBE WORLD BECAUSE OF ITS DEADLY NATURE. SO PEOPLE THAT DEAL ON THIS MATERIAL ARE RESPECTED PEOPLE IN THE HEALTH WORLD.THAT MEANS THE BUSINESS DID NOT REQUIRE LICENSE BECAUSE THE COMPANY SALES REPRESENTATIVE IS COMING TO INDIA TO BUY IT FROM YOU. AND THEY ARE COMING WITH CASH MONEY. YOUR COMMISSION SINCE YOU ARE THE EXECUTOR YOU WILL TAKE 60% FROM THE PROFIT AND I THAT INTRODUCE YOU TO THE BUSINESS WILL TAKE 40%.SO ACCORDING TO YOUR QUERRY IN YOUR PREVIOUS MAIL, ONE PACKET CONTAINS 10SATCHETS AND ONE SATCHET IS 5GRAM SO 1PACKET IS 50GRAMS SO PLEASE DO LET ME KNOW IF YOU CAN HANDLE IT. TO ENABLE ME TO GIVE YOU THE INDIA DEALER CONTACT. PLEASE YOU ARE TO PROVIDE ME YOUR DETAILS. FULL NAME:PARTNER NAME IF ANY. NACOMPANY NAME:HOUSE ADDRESS:A COPY OF YOUR I.D CARD OR DRIVING LICENSE.CONTACT NUMBERREGARD.ROBERT ADAIR

Somehow the mail made me scroll to the bottom looking for "I agree with terms of license" button. So I have now decided  to reward his efforts. I played the fool card thus...
Hi Robert, 
   Thanks for the explanation. I understand from your mail that you are looking for a trustworthy and reliable business associate. I can assure you that I will not betray you like Pradeep Gupta. Please send me the details of the supplier from whom I have to purchase the boxes and number of boxes that you would like me to purchase. Once I have purchased the boxes, I will get in touch with you. Can I use my credit card to make the purchases? 
Thanks and Regards,
Nikhil Baliga
The reply came as expected.
SO PLEASE DO LET ME KNOW IF YOU CAN HANDLE IT. TO ENABLE ME TO GIVE YOU THE INDIA DEALER CONTACT. PLEASE YOU ARE TO PROVIDE ME YOUR DETAILS.
FULL NAME: 
PARTNER NAME IF ANY. NA 
COMPANY NAME: 
HOUSE ADDRESS: 
A COPY OF YOUR I.D CARD OR DRIVING LICENSE. 
CONTACT NUMBER 
REGARD ROBERT ADAIR
What do I do next? Any suggestions? I was thinking of creating a fake profile and sending all this fake information to him with a well photoshopped fake license or something.

Some salient points to observe:
  • The plant that he mentions is not the scientific name of anything. Google searches resulted in nothing relevant. In fact, it sounds like a Marathi surname :P
  • For a Brit, the quality of his English is dropping like crazy with every other mail.
  • Replies look like standard templates. There is a disconnect between my mails and his replies
  • Identity thief, drug dealer or plain scamster?
  • And no, I am not jobless. I am just trying to get some kicks and also understand the modus operandi. But it's mostly for the kicks

Saturday, 17 August 2013

Jailbreak old iPod - Convert to hand held computer

Swami Nikhilaananda said:
"An Apple a day will definitely make me bankrupt"

[The purpose of this post is not to tell you how to get themes, mod or dropdown menus]

I have an old iPod - 2nd Generation 8 GB one lying around. With the rapid rate at which technology becomes obsolete, I often wonder if investing money into buying gadgets really makes sense. Apple promptly stopped support for the older generations of devices, with no software updates beyond 4.2.1 and none of the newer apps work on my device either. Which means, I have to be happy with whatever apps I had installed. It suddenly went from a savvy gadget to ordinary music player - something that phones do as well.

I also have a Raspberry Pi and I thought - it would be really cool if I can somehow make my iPod a screen for the Raspberry Pi - Act as a monitor. That'll give me a small computer of sorts. My first thought was to run a VNC server on the Pi and a VNC player on the iPod because I was looking for a GUI. However, the VNC thing didn't really pan out because the apps are no longer compatible with my old device.

So I jailbroke
There used to be this great site called jailbreak.me that would let me jailbreak my device just by going to that site and sliding a button. But that site no longer supports older devices. Greenpois0n came to the rescue

I followed instructions and jailbroke my device in about 5 minutes or less. Then I was able to do some very interesting things. Jailbreaking gives you root access to your device.

To log in as root, type in:
su - root
and the default password is - alpine

OpenSSH
If you install OpenSSH through Cydia on your iPod, you can SSH into your iPod from your computer. Also, it is highly advisable that you change your passwords.

MobileTerminal
Next, install MobileTerminal. This is where most of your cool stuff happens. This gives you a Terminal Emulator in which you can run commands like ls, locate, grep, find etc. It also gives you 'apt-get' abilities.

Python
Install Python. And Python setup tools to get easy_install. There's also Ruby if you prefer that.

VIM
Clearly you need an editor to stuff. So I installed VIM with sudo apt-get install vim. You can do all your regular vim stuff.

SSH to your computer
Just for kicks, ssh into your computer from your iPod and shut it down :P Or list files or whatever. Which means I can ssh into my Pi as well.

Install sudo
Root access is always dangerous. Install sudo with apt-get. Then Add yourself to the sudoers list using visudo.

wget
Install wget. While typing small commands is fun, typing out large files is pretty time consuming in a small keyboard. I was trying to type in a config file that was six lines, but considering the special characters were more than a few, it was time consuming switching between keyboards. So I typed it on my laptop and did a wget to my iPod.

iFile
iFile is a great tool that I greatly recommend. It gives you a file explorer and also the ability to view, upload and download files from your laptop by making your iPod into a webserver. It's a shareware and I think is a small price to pay for the great features.

Lighttpd
I thought nginx would be cool to run, but since I didn't find it, I installed lighttpd and got it up and running. I couldn't believe it when "It works" on my laptop screen. My iPod was actually hosting a page

Databases
I think sqlite is already installed, there's Postgres and mysql too! I haven't really explored much.

Other Tools
Other tools such as awk, sed, zip etc. are also available.

There's a lot more to explore
I was just excited to share this small finding with the rest of you who might have thought that your old iPods are useless. Now you can do a lot of things with it. Also, not all commands work on the iPod, for example, I could not add another user. But still, it's pretty cool. And share your findings with me as well.

Friday, 9 August 2013

The Rama Krishna Paradigms

Swami Gulagulaananda said:
"The moral fabric is netted, the sizes of holes not constant"

Let me start off by saying that the attitude in this post is intentionally cynical

As kids, we are taught a series of moral lessons - "Don't hurt others", "Don't steal from others"... and as we grow up "Don't covet others' wives" and so on. As children, we are taught to take these statements as truths, we don't question them, we simply accept them. The reason being that we don't have the maturity and experience to validate them. So we accept them, and we follow them.

As we grow up, we gain both experience and maturity. At this point, we can begin to validate our lessons and accordingly strengthen those that matched with reality and discard those that didn't. AI junkies will consider this as strengthening of synapses and those who've read 'I'm OK, You're OK' will relate this with the PAC model.

This is however true if we have the maturity and intelligence and more importantly, the disposition and inclination to validate what we were taught.

Consider a person whose father is a criminal. He is taught that all policemen are evil. If the child has not been taught to think independently, the child will continue to see policemen as evil. A man who is an absolute believer of God will teach his child about God and imbibe it deeply into him. He will also warn him of others who will dissuade him away from the path of God, calling those people are heretics... This is precisely how religious fanatics or fanatics in general are created. They lack the ability to be unbiased.

This example above makes one wonder what is correct. For, a person teaches his child the kind of wisdom he has gained over the years, the kind of things that HE thinks is correct. If he is a criminal, then he and policemen are natural enemies and therefore it is the truth for him. Now this lesson is not an absolute truth - but just truth from his perspective.

Extending this, lessons such as "Don't lie", "Don't steal" etc. are also truths from someone's experiences or view points. To summarise, all moral lessons and moral truths are someone's opinions.

Now the moment something becomes subjective or true from someone's perspective, it is not necessarily true for everyone. It is therefore bendable, flexible, mutable and expendable. The entire system of morality is therefore flexible and varies from people to people. Morality therefore boils down to what most people around you think it is.

People in the past anticipated or would have observed this kind of thinking and therefore they associated morality with God. If you do this, you will go to heaven and if you do that, you will go to hell. By portraying paradise and burning flesh, and associating it with judgment based on merits accumulated, they tried to ensure people will stick by what they thought was best for society. Note that I am not saying good or bad because they are subjective. Stealing is bad, revenge is bad and so on - lessons such as these kept people from doing things that would bring about an entire system of anarchy and lawlessness, and if such an environment existed, society couldn't have progressed to what it has today.

Why you ask? Many of the scientists who brought about revolutionary technologies are perhaps wimpy looking and powerful muscular people could have broken necks. But fear of being judged by God prevented  them from doing such things. If God didn't judge them, society would definitely. There are always people who don't care about judgments and therefore the system of law was needed.

Rama and Krishna are two great heroes of our past, God to many, mythological to some, historical characters to some. But Rama and Krishna are quite different in their personalities. While both of them appear to be perfect in all ways, knew all the arts, stood and fought for justice, were good looking and made all girls around them swoon, great warriors and so on, they were also very different.

Rama was an ideal person. He followed all the rules of Dharma, dotting all the i's and dashing all the t's. He was a boy scout, flawless in his execution. On the other hand, Krishna bent many rules. The simplest example was tricking Drona by getting Yudhishtira to say Ashwaththama was dead and blowing his conch when Yudhishtira was saying that it was the elephant Ashwaththama, thereby intentionally getting Drona to think incorrectly that it was his son Ashwaththama who was dead. Rama would have never done it.

Now the question is, was Krishna right in doing it? Purists (Rama) will say that it is fighting dirty, you were misleading him intentionally while others will say that it was right, he wanted to win the war and he got things done. Morality is full of examples such as these. Not everything is in absolute black and white, rather everything is in varying shades of grey.

However, it cannot be told with absolute certainty that Rama would have behaved in the same way he did if he was there during Krishna's time. For, our actions are also largely governed by those around us. Rama's world was one filled with more overall "goodness" - where more people were (conventionally) just. Even Ravana was like that, he never forced himself upon Sita. Krishna's time was more corrupt, with people like Duryodhana and Dushasana having no limits to how low they would stoop (nothing compared to the world we live in though, again, the lowness being subjective)

What I have noticed is that we live in a hypocritical society. We are taught to do a lot of things, but in reality, none of them is followed. Everybody bends rules when it is convenient. And we only point fingers at those who do things that we wouldn't do because we are afraid of repercussions (either legal or of being talked about), not because we think it is right. We all have rules, but as situations arise, we start dropping them one by one. We pass comments about how immoral strip clubs are and then when you get a chance to go to Las Vegas, you are immediately asked "So, you went to strip clubs huh?" because it is expected that people will go. The so called moral fabric is basically a material made of nets with holes all over.

The society that we are in currently exists in the way it is, not because of the inherent goodness of people, not because people in general are good but because of rule of law. Imagine for a moment, a world where you cannot be penalised for anything. Imagine a world where you cannot be jailed or punished. What would happen? If people don't fear accountability, if people don't fear being talked about, if people don't fear punishments, will they continue to live by following the rules of Dharma? Of righteousness and justice and ideals?

Chanakya said that straight trees are cut first. So to be a Rama in this modern world doesn't seem viable. One must therefore not live based on ideals that have been taught or handed to us, rather constantly learn from the surroundings and from others' experiences and adapt one's policies, beliefs and principles continuously. One must therefore attempt to be a Rama in Rama's world and a Krishna in Krishna's world and definitely not a Rama in Krishna's world for it is as incongruous as it is fatal.

Tuesday, 25 June 2013

Kodachadri Trek - An Experience

Swami Nikhilaananda said:
"And then when I saw the leeches, blood drained from my face..."

A cool breeze blew past me, reminding me to prepare myself for the obstacles ahead. I looked up at the sky and felt like a giant, for the clouds seemed to be within my reach. In the epic Mahabharata, in the Mahaprasthanika Parva, the Pandavas and Draupadi begin their journey up the Himalayas to reach heaven. And then a dog accompanied them... I knew I was about to embark upon a similar journey; I sensed I was very close to heaven, for nowhere else can beauty of this magnitude exist - the lush leaves of plants and trees all around me painted in various hues and shades of green, the soft gurgle of the stream, the eternal croaks of frogs and chirps of mysterious birds that refused to show themselves... The entire area seemed to be the epitome of vibrant life, for even the fallen trees were teeming with life, with  mosses and colourful mushrooms growing side by side, a perfect example of what life in harmony meant. And yes, there was a dog ready to climb up the hill.

Kodachadri, the tallest hill of the Western Ghats had been in my bucket list for quite some time. It's time, I thought to myself as I looked at the sky once more. The colour blue was nowhere to be seen with white and grey taking up the space left by the green canopy. I didn't need to be a weatherman to guess it would rain anytime (if I was a weatherman, I'd have probably gotten that wrong) and I put on my cap and arranged my jacket over my bag to ensure that no water could fall on it. Bags are only water resistant, not water-proof, a lesson I learnt the hard way after losing a mobile phone (and almost losing a laptop) to the rains of Bangalore.

I began to walk with deliberately short steps. I could feel my excitement surging within, pushing me to increase my strides but I resisted the temptation for I have learnt from the past that a trek is more about sustained efforts rather than bursts of energy. To succeed in life, it is more important to sustain efforts - Even minuscule drops of water and minuscule grains of sand eventually wear out the most powerful of rocks. I crossed a small stream and walked through a narrow path. The gradual variations of the landscape did nothing to sap my energy and the full breaths of fresh unpolluted air seemed to energise me with every passing step. The soft sunbeams that had crept through the clouds did nothing more than gently kiss the ground and illuminate the forest. I approached what seemed to be a stream about ten feet wide and a couple of rocks in between. It might be an obvious choice to jump across the rocks to reach the other side, and it wasn't a bad idea. I didn't want to get my shoes wet (I realise as I write this that I was naive) and I decided to jump across. I was confident of clearing that distance, I have done it several times in the past. The only thing I hadn't factored in was the soft soil at the edge of the stream, the place where I was to make the leap. Before you think I slipped and fell, I didn't :) Instead, my foot sank in the slush and my shoes and jeans got really dirty. I did manage to jump across on the rocks but then the purpose had been defeated. On the other side, I looked at my shoes and shrugged - after all, roughing it out was the objective, wasn't it?

It had started raining by then and I decided to continue walking. Little by little, I could feel my breathing getting heavier. The slope was beginning to get increasingly steeper and the rain continued to batter the canopy. I had finally reached a point where my breathing and my heart could not keep pace with my will, my ears were getting hotter despite the cool rains. I stopped and hurriedly pulled out a bottle of orange juice, thinking of satiating myself with a few gulps of the sour-sweet nectar, and before I knew it, I was chugging away the entire bottle. I exhaled heavily a few times and felt normalcy returning. I replaced the empty bottle in my bag and felt a sting on my right leg. I bent down to observe it better, pulled up my jeans a bit and rolled down the sock to see two slimy leeches looking bloated, greedily satiating themselves just as I had with the juice. A surge of anger grew in me because of their bloated appearance at my cost and I angrily flicked my finger at them, and then repeated the action. The leeches reacted to the initial flicks by lazily raising their heads and before they could strike again, I flicked them off me. I noticed that they had left small round red marks, battle scars for me to show to the rest that I had been to the famed leech-land. They say salt works wonders on them and I was carrying salt in my bag too, but considering my impatience and their impudence, I thought flicking them would be faster than giving them salt (to taste?)

To me, the entire scenery seemed straight out of a game (Call of Duty Black Ops - Vietnam Jungle or Disney's Tarzan) or a really vivid setting of a movie (like Avatar) because I encountered fallen trees over which I had to climb and two fallen trees such that I had to climb over one and go under the other. The mud was slippery in some places and I would gingerly place my feet one at a time after ensuring that the foothold was sufficiently stable, reminiscent of a leech's movement. There were numerous beautiful sights that have unfortunately only been captured in my mind but not with a camera owing to the rains. Suddenly there was a gushing stream, the water merrily jumping over rocks. This was no rain water flowing down the slope. It was a stream, for the water looked clear and full of energy. I continued walking towards the source and I saw the intensity increasing as in fell off large rocks and made its way between boulders. The noise grew louder as I continued and lo! A magnificent waterfalls that seemed over fifty feet stood in the middle of the forest. I could approach it either over some rocks from the side or a large log in the centre, but prudence made me avoid the log. The child in me wanted to excitedly climb over the log but the mossy surface and the adult in me prompted me to exercise caution. I sat around ten feet from the waterfall, letting the droplets in the air settle over me and form a continuous surface of tiny bubbles all over my arms. Suddenly, I appeared to have been made of tiny diamonds glistening in the sunlight.

I decided to continue my journey. The next move didn't seem that straightforward because the slope was greater than sixty degrees. The ascent had to be made by holding on to a thin tree, and it was at that moment that my folly of packing a very heavy bag manifested itself. Remember that all this time, I had been lugging a heavy bag on my shoulders but it had been more of a hike so far. Considering this new manoeuvre required the usage of my hands and legs simultaneously at a steep angle, the bag proved to be a major hassle. For after I pulled myself up partially, the weight of the bag pulled me down just as I was about to complete that manoeuvre. Meaning, that I was dangling at an odd angle. Making a mental note to pack lighter the next time around, I heaved myself up exerting significant amount of energy and cursing myself. My foolishness was compounded due to the fact that my jacket was simply placed on my bag and not attached anywhere and so I was worried it would fall off if I made too many quick movements. These small things might seem silly to the reader, but they are important, especially when you are hanging at an odd angle with a heavy bag on your shoulder and a jacket that's about to fall off :)

The climb became significantly harder as the path became steeper and narrower. What served as a constant motivation to charge ahead was not the will to complete the trek or reach the top but the fear that staying in one place longer than that critical amount of time would attract a horde of blood sucking leeches. After the grueling trek through the jungles the path came into an opening where I saw a vast field. I walked along the bunds on the side, the dog merrily and effortlessly walking ahead of me. The path opened into what seemed to be a large grassy hill, the ones we normally associate Switzerland with. The clouds seemed to have descended to an all time low, or perhaps I had climbed to an all time high, for heaven seemed to be with reaches now. It was time to break for lunch.

After a hurried ingestion of some insipid rice, I resumed the climb. This was the last leg of the trek and the hardest. With all the energy having been sapped out, I kept telling myself - The next stop is after thirty steps, the next step is after twenty five steps... And at one point, I just lay on the slope admiring the beautiful scenery across - For as far as I could see, the green hills with clouds over their tips seemed to fill the horizon. [Have a look here - Press F11 for fullscreen of browser, double click to zoom in a bit, and then pan around]



As I continued my ascent, the cool wind blew past me continuously, covering my surroundings with the clouds I had seen below. I had reached my goal, my destiny... I looked below and saw that I had ascended beyond the clouds and was jubilant of my little achievement, I had indeed transcended beyond, and left the entire world behind me. I had finally done it.

And then I looked up and there were still clouds. And much to my dismay, there was still so much to do. The celestial vehicle didn't come to pick me up, the dog didn't turn into Yama, I didn't reach Swarga... But yes, I did manage to catch a glimpse of heaven on earth. Kodachadri, the most scenic place I have been to till today.

[Trust me when I say this, these pictures nor this description offer no substitute to the real experience]

Please Note:
Although I chose to narrate it like the dog and I were the only ones on the trek, the reality was that I went on this trek with my good friend Karthik HS and a group of around 35 people with the Bangalore Mountaineering Club. I was very happy with the way they organised it and would highly recommend them. The dog was also there :)

You may also like to read:
Skandagiri Trek - Comedy of Errors

Wednesday, 5 June 2013

Reflections of the Complacent

Swami Gulagulaananda said:
"Pardon my affectations, this is me being a flibbertigibbet"

I stared into his eyes as he stared into mine. Some times I wonder if eyes are really the window to the soul, and if he could read my mind through my eyes. "What's your plan?", I asked him. "I am going to write a blog post with them", came the reply. "For the life of it, I can't believe that I can't remember most of these words, you know?", he continued. I could sense anguish in his exasperated voice. "And that's why I am going to write this post, even if it ends up being a rigmarole", he paused.

"Rigmarole", I smiled, and took out my phone. I have a need to find the meanings of words if I don't know the meaning, an OCD of sorts. So I have a dictionary app handy all the time. "Looking in the lexicon, eh?" he grinned. "What's the point of this?" I asked him, getting rather annoyed at the bombastic words. "Lamarck is a genius, my friend", he replied. "Who?" I asked. "Lamarck, the man who spoke about the theory of use and disuse. you see, without regular use, you forget things you learned, you lose the skills you developed and perhaps once excelled. We have to use and keep them sharp all the time, lest we forget them all", he sounded profound.

"So your goal is to sound ostentatious?" I asked. "Far from it", he smiled, "the goal is to make words my factotum." I was beginning to doubt if he was even using some of these words in the right sense. I remembered a couple of incidents where certain friends simply used words based on dictionary meanings. This happened a few years back. It was around 9:30 AM then, and my friend and I were travelling in the bus. He turned to me and said "I can't believe there is this much traffic in the wee hours." You see, the dictionary, oh I am sorry, the lexicon defines it as 'early morning' and it doesn't specify how early. It is an easy mistake to make if you don't have good examples. I believe dictionaries should include them as well. Another friend of mine told me that the director of a college had eloped from hostel. I asked him, "Really? He got married in college?" and he replied, "Who said anything about marriage?" It was bewildering. "You just said he eloped, didn't you?" I asked. "Yeah, the word elope means to run away", he said. And his GRE book had defined it as run away. Indeed, GRE books seemed to believe in Lamarck's theory, use the words as much as you can.

"Alright, alright", I said, "I need some water." He raised his eyebrows and said, "I am not your flunkey, nor am I your lackey. If you want it, get it yourself. I haven't reached the nadir of my fortunes," he replied brusquely. "Nadir? Nadir Shah? What?" I asked. I was beginning to get irritated, but I continued listening. This bloke was pretty irritating, but I found I could learn from him if I could resist my urge to punch him squarely in the face. "Nadir, it means the lowest point", he replied.

"Are you preparing for GRE? What's with you today?" I asked him. He grinned at me and said, "No, can't a cove revise words? Can't a bloke create an artificial situation just so that he can use the words in an attempt to remember them?"
"Artificial situation? You mean, you are twisting the context so that you can use your words?"
"No, it means this isn't real"
"Isn't this real?"
"Real? Plane mirrors don't project real images, they are always virtual, remember?"
"Plane Mirror?"
"Well, of course... You are here to help me reflect"

Sunday, 26 May 2013

Of Beliefs and Prophets

Swami Gulagulaananda said:
"Problems don't arise due to beliefs... Problems arise when you force it upon others"

Religion has been around for thousands of years and I am sure it is not going to go anywhere anytime soon. With the advent of Social Media, information can travel across the world rapidly. These are two facts.

There is nothing wrong with believing in something. We all go through life's ups and downs - and some times we are alone when we are down. Sometimes, we don't have anyone to fall back upon though we would have loved to have someone to reassure us. And when you feel all is lost, you find solace in God. You pray to God, pray that all your troubles go away. You derive strength from faith. Even if your problems don't all go away, you feel invigourated. Problems are given to you only because God knows you have the strength to solve it, they say... And even if you didn't, it works - perhaps a placebo effect. People do remarkable things because of faith...

People do remarkable things because of faith - A sentence that looks ordinary, but has both positive and negative connotations. Positive, I have already explained above.

The downside of faith is the urge to make others believe in what you believe in. It's okay to believe in something. But to force your beliefs upon others is absolute blasphemy! That's right, I intentionally used the word blasphemy because you are thinking you are doing God's work by spreading His words to others, but that itself is true sacrilege.

I have had innumerable conversations with some christians who have called me a lost soul who has tread away from the path of God, who have asked me to accept christ into my heart for he died for my sins and that he is the only path to heaven. I asked them - If I don't believe in christ, will I go to hell? And they gave a resounding yes.

Today I saw a photo in a Facebook page called Muslims and India, that I have attached below.

These kind of statements are absolutely unacceptable. If you are telling this as part of a generic scholarly discussion with no connotations, great, go for it. Unfortunately this is not what they are doing. Rather, they are trying to say something entirely different. Apparently there is another hotshot called Zakir Naik who's supposed to be a man who speaks with a really hypnotic twisted logic (I haven't personally read or listened to him, but I have heard a lot about him)

This photo had comments that said - In that case, we should respect the Vedas. What does this mean? So if the Vedas hadn't foretold the advent of prophet, you wouldn't respect it? Then what kind of secularism are we talking about?
Suggested Reading - If you believe this guy: 
[1]Prophet in Hindu Scriptures – An analysis (Part 1)  
[2] Bhavisya Purana and the Prophet Mohammed

Problems don't arise due to faith - It happens only when you say "You are wrong, I am right... So start accepting what I am saying" You can never be right, nor can I - That's why it's called belief. This is especially true for atheists who keep bringing in science all the time. Science is awesome, and I am a big fan - No doubt. But science also needs proof for everything. Just because something cannot be explained, it doesn't mean it's not true. There are still a lot of unexplained events that happen and until you can explain it all, there still is space for supernatural to exist. At the same time, it doesn't mean that you should stop researching something just because it could be supernatural. If you are not totally open to every possibility, you are not much of a science guy. You have to categorically disprove everything. Atheism is also a faith, and it's okay to be an atheist. Just don't go around mocking a believer. Likewise.

It might be sounding like a refrain by now, but I would like to reiterate the point I am making in this post - Problems don't arise due to beliefs... Problems arise when you force it upon others. Wars, terrorism, communal violence and misunderstandings - all stem up because you are comparing two faiths, when you start doing things in the name of faith, when you make it your life's goal to spread your faith. Don't do that! Why can't you let people be the way they are. Do what you want to do, don't hurt others.

Ha! Don't hurt others - Ahimsa paramo dharma - a belief of Hindus... Now am I forcing my beliefs on you? :-) Think about it.

Friday, 24 May 2013

How much thought do we apply?

Swami Gulagulaananda said:
"In mob psychology, if there is success, everyone shares the fruit, if there is failure, the leader gets hanged"

Just the other day I was reading a very interesting book that spoke about how application of mind to do something beyond the mundane autopilot mode applies considerable stress on us. For example, an experienced driver doesn't require much thought while driving everyday to work. Not much thought is applied on when to brake and when to accelerate. Experience makes you do this automatically. Same goes for typing. I don't see which key is where, the only thing that comes to my mind is the word that I have to type and the word gets typed. However, considerable amount of strain comes when I have to multiply 43 x 76 or if I have to remember a couple of numbers in mind like 46.83 and 35.78 for some time (working memory)

It might seem obvious to some of you that activities such as mathematical calculations are not really natural while walking and driving are natural (or have become natural due to practice) and thus are not equal in terms of taxation. But what is more interesting is the fact that thought does not get applied in situations where it could have been easily applied, ergo creating easily avoidable messes.

A simple example was a sight I saw a couple of days back. I was driving back home and I was on a road that was quite wide but the parked vehicles on either side made it possible for only two vehicles to pass at a time - One in each direction. If a vehicle in my direction went to the other lane, he would be going head-on in front of the vehicle coming in the opposite direction. And then, in front of me, I beheld a spectacle that aroused mixed feelings in me, one of deep thought that makes me write this post and the other, a primal feeling of rage that urged me to get out of the car and bash in the skulls of the morons who I beheld in mixed feelings of amusement and anger.

Let me explain the situation. A bus was coming in the opposite direction, and there wasn't much space for the driver to come through because a hot-shot in my lane was partially in his way. The bus was waiting for the car to move out of his way so that he could continue his journey. The rest of us were patiently waiting in a single queue. The scene was obvious to anyone who saw it - A series of cars, one behind the other with no space between any two, waiting patiently for the erroneous car to make way, with the bus driver waiting. And then an auto-driver and a couple of two-wheelers, and a couple more autos and cars came in the other lane, passing by us and waiting in front of the bus.



It seemed stupid to me. But then it raises a question as to why they did that. It could mean one of the following.

  • They simply lack the ability to think ahead. They have no ability to predict
  • They can think ahead, they just don't care
An inability to think ahead, predict and forecast something that is this obvious is definitely very troubling. Many of you reading this might simply dismiss this as an impossibility. "Are you trying to say someone can't predict even this much? You are being crazy..." you might say. But it's true in some cases. I have seen uneducated people doing a lot of things that are obviously dumb to us. It could also be that they could predict it if they applied some thought, but then they might ignore it because it causes strain.

Strain while thinking is natural - Many times, I have put off solving some puzzles just because "I was not in the right mood" - as in, the strain (could seem minuscule when in the 'right' state of mind) is too much to bear when you are hungry or tired or preoccupied. In fact, according to a book I was reading, some judges refused parole to prisoners when their blood glucose dropped (hungry) much more often than when their blood glucose was high (had food). Food affects thinking...

However, this logic could be true for the first guy. Isn't it rather curious that all of them are doing the same? Is it possible that everyone is hungry? I believe this is where mob psychology takes over. Very few people are willing to take risks - they fear repercussions. But if someone is willing to take a risk, there are plenty to follow. A majority of people are followers, not leaders (Read about the Pareto Principle) and apparently people are willing to follow fools (explains not just this traffic thing but also elsewhere... like politics) if someone is willing to lead. The reason is - If there is success, everyone shares the fruit, if there is failure, the leader gets hanged.

In case of this particular case, nobody is going to go to each and every erring vehicle and admonish them. No. People would rather abuse the first guy for leading an army of fools. The rest of them have nothing to lose and everything to gain in case they succeed in going through.

On the other hand, probably they are thinking ahead and they don't care... This would mean that people are essentially selfish and are just focussing on their success and they don't care who they are stepping on in the process. As long as I am getting what I want, who cares about the rest, right? To each his own. The problem with this approach is, there is no 'overall progress'. Notice that this is not applicable just to traffic. If you are focussing only on yourself, this kind of growth is useless. If you are the only educated guy in a town full of uneducated people, your education has no value. People will simply not be capable of appreciating you.

A very interesting thing I have noticed is that people don't like to lose momentum while driving. They don't want to brake, they would rather instantaneously change direction. So a guy who was riding straight, on seeing a vehicle blocking his path will start drifting tangentially. In the process, other people whose path he is now blocking end up braking.

Clearly, I could go on and on and I am sure most of you are aware of the endless supply of stories and idiots on the road. But the purpose of this post was simply to say that behind the scenes of a mundane traffic jam, a lot of thought goes through - consciously or subconsciously... (or maybe no thought is applied - which explains a lot!)

Friday, 10 May 2013

One Shoe Doesn't Fit All

Swami Gulagulaananda recounted the old saying:
"Before you judge me walk a mile in my shoes"

A great thing about being in India is the myriad colourful lives that you get to see around you. Different people living their lives in their own ways. And every single person has different qualities that define him or her, their own personal idiosyncrasies and peculiarities that make them what they are, that define them. Some are logical, some are cold, some are jumpy, some sensitive, some optimistic, some pessimistic,  some balanced, some depressed and some ecstatic... You get the picture.

But it gets interesting when you try to analyse why people are the way they are. As in, we are aware of what qualities are desirable and what are not. Like, optimism in general is considered a good quality while pessimism is not. I say 'in general' because there have to  be certain negative inclinations at times too, for it helps us prevent pitfalls due to over-enthusiasm. But in general, a positive mindset is good. We similarly prefer a warm jolly fella to a cold logical person who weighs everything in terms of profit and loss, including relationships and what he can gain out of becoming your friend.

But despite knowing what's good and what's bad, we are not all good all the time. For instance, we know that in times of a stressful period or emergency, we should not react in a knee-jerk fashion. Instead we should ruthlessly priortitise and work according to a virtual flowchart. We know this in theory, but how many of us can put it to practice? Many, in a fit of panic, forget what should be done next. "My mind went blank" they say. And events such as these clearly indicate that different people are very different. Some of these qualities are inherited, genetically or sub-consciously, some are developed through training - either by self or professionally, some are developed in you due to situations around you that mould you to become what you are.

I like to think of the last one as policies. Take an example of a person who gets betrayed by his friends each and every time he got close to one. The first time, he probably takes it as misfortune. The second time he might blame his luck or general decadence of society. But if it happens multiple times, irrespective of whom he blames, he develops a wall around him, and tries hard to not be friends with people. If you are not friends with someone, you don't trust them beyond a certain level and therefore, you cannot be betrayed - This is a policy he adopts for himself. This probably is good for him. But what happens when someone new meets him and likes him and genuinely wants to be friends with him? No matter how hard he tries, he cannot get closer than a certain level, for an invisible wall separates them. The second person simply cannot understand why beyond a certain level, overtures are no longer entertained. In fact, there are subtle hints of rebuffing. The reason for the rebuff is not clear to him and he probably concludes this as some kind of introvert behaviour, a peculiarity or an idiosyncrasy. He does not realise that there was a history of betrayal that made him the way he is...

And this is true about a lot of things. There are some who are fiercely independent, there are some who don't want to fall in love (again), some who insist on going back to their home towns all the time... Perhaps Mr. Independent was let down by people on whom he relied on. So he concluded that if you rely on someone, you will be let down, it's better to do things yourself instead. This could result in further policies from being developed, such as - 'I was let down, I should not let others down' or 'I was able to do things myself, perhaps he should learn to do it himself too...' The first case results in a good quality - a helping nature. The second results in a conscious refusal to help. Understand that the refusal is not stemmed from dislike or Schadenfreude. Au contraire, the person thinks he is doing you a favour because it worked really well for him. But again, all people are not the same. Perhaps Mr. Independent was a talented person and it worked for him, but for the help-seeker, it is not a possibility to learn and do it by himself which is why he was seeking help. A refusal comes as a blow to him (resulting in policies of his own)

In fact, much of what I have said in this post is already known to most of you and are found in various forms in proverbs. Here are a couple I was reminded of... "Once bitten, twice shy" and "Before you judge me walk a mile in my shoes"

We are all, in a way, a product of our environments and people over time. We shouldn't hastily judge other people. At the same time, we should be perceptive to environments too. Like for example, a person who is accustomed to getting his way all the time tends to expect it in a new environment - and he doesn't see that he is annoying other people in the process. (In the work context) He tries to push his agenda all the time, the others get annoyed and go out of their way to push his work down the priority list resulting in the pusher getting miffed. Environments are different all the time, and people should adapt accordingly.

A very interesting fact though, is that the same situations result in entirely different opinions being formed in different people - Of course, it is because the cumulative policies till then are different due to different environments in the past. An interesting question raised by Ramesh Radhakrishna was - "If there are twin brothers who have gone through the exact same experiences all the time, will they be thinking the same all the time?" An extension question would be, given the same situation, would their reactions be exactly the same? Something to think about...

To summarise, don't judge others hastily... You perhaps know how he is, you don't know why he is the way he is.

***
You Might Also Like To Read:
A Chain Always Breaks At The Weakest Link

Sunday, 5 May 2013

Golem - A Flying Robot - Idea for a project

Baba Gyani Triviani said:
"Look up in the sky, it's a bird, it's a plane... No, it's Golem!"

Project Golem

(Note: Golem is a mechanical robot in 'Batman of the future' which is controlled by a guy remotely such that movements of his hands translates to corresponding movements of the robot, much like the movie 'Real Steel')

I had been to Ayana, a hackathon in PESIT recently and saw quite a few hardware hacks. With the arrival of Arduino into the market, robots seem to have become quite ubiquitous, which is a good sign. Students, most of the time, design and build single purpose robots, that could be a line following one or a maze solving one. Rarely are they developed as systems.

The Raspberry Pi is an interesting device - The size of a credit card, it comes with 2 USB ports, an ethernet port, a power in port, an HDMI port, a video out and a sound out along with an SD card slot. The cost is supposed to be around $25. The advantage of a Raspberry Pi over Arduino is that, Raspberry Pi runs a full fledged Linux distribution on it, meaning that it is an onboard computer rather than just a microcontroller and thus allows for cooler and harder things to happen easily, like image processing, for example.

For some time now, I have wanted to build a flying robot that has the following specifications. Go through it if you are interested and let me know what you think.

First and foremost, the idea is to have the robot developed in terms of modules and independently. This may seem obvious to experienced people but it is something that students don't use for an approach. To see an example of what I mean, and this example is pertinent to the project, consider the control of the robot - The  robot can move back and forth and this instruction comes from a remote control. The remote control could be a video game joystick, a Kinect, a custom controller, or something else. The robot should not concern itself with 'who' is sending this instruction. Once the instruction is received, it should simply process it. This allows for complete decoupling of the controller and the robot. People who work with web services are, I am sure, very familiar with this concept. You get a JSON and you how you use it is up to you. The advantage is, the people who are building the robot itself know the 'contract' or what to expect from the controller. It is up to the controller maker to implement it. And they can work independently

Disclaimer:
It's been a long time since I worked on these kinds of things - So most of what I say here will be pulled out from memory and/or simply visualised. Some might be outdated, some could be grossly incorrect. Let me know if  there are better alternatives. This is just a brainstorming post. I have done no research, so some things could be impossible or be done elsewhere and I am not aware of it.

Ok, now for the characteristics of the robot itself.

Requirements:

The robot should be able to move on ground and in air

  • It should move on ground - 2 wheels plus Goli castor (steel ball bearings)? or 4 wheels?
  • It should fly - four vertical propellers?

Moving on ground, achievable by using H-Bridge

Moving in air, if all propellers turn at the same speed, I am guessing it will be level. If two slow down, the bot will tilt and move in that direction...

  • Controller is a Raspberry Pi - Full fledged Linux distro is more powerful than simpler controllers
  • Has a camera on board. Streams video. Helpful in navigation, recording...
  • Has sensors on board to prevent collision or falling off stairs or hitting ceilings - should override manual controls... Similar to forward collision avoidance systems in cars. (Sensors are IR or SONAR or something else?)
  • Has accelerometer (and/or gyro) to measure tilt - very useful for auto-stabilisation and can be used to override manual errors, like extreme tilts will not result in crashing (can it happen?) Also, how cool would it be to use control systems here? Does it make sense?
  • Since it has auto-stabilisation and sensors at the bottom, auto-landing should also be possible.

Controller

As discussed previously, the controller is independent of the device
  • Can be controlled using custom controller - wireless radio transmission that has buttons and knobs or whatever
  • Would be cooler if XBox controller is used instead
  • Even cooler if you can use a Kinect to control it
  • Another super idea (inspired by junior, Suraj Srinivas) is to have accelerometer connected to gloves. The user moves his hands around and that is translated into robot movements in the air
  • Autonomous and by learning?
Of course, more than one can work simultaneously... Since it has a camera and a full fledged operating system, it can do a variety of image processing functions.

It can be used in a variety of places - Let your imagination run free.

As you can see, all functions that are independent of one another can be developed independently. Flight and ground motion are independent, for instance. Camera and motion are independent too. And so on.

The design, however, should account for things that will be or could be added in the future too - for example, if you have not accounted for additional weight that could be added in the future, your robot may not fly at all! So think of all the features that you may add in the future. Modules like sensors should be little pluggable pieces and not soldered to the main board.

All in all, I think this project is going to be delightful to watch if completed. It has a broad range of topics to learn too, like electronics, image processing, control systems, programming, etc. And since they are independent, it is not as daunting as it seems. As in, things will work even if certain things are not implemented.

So yeah, that's an idea I have been thinking of for quite some time. Let me know your opinions on it.

Saturday, 20 April 2013

Rapes are sour

Swami Gulagulaananda wondered:
"Sāma, Dāna, Bheda, Danda - Which of them is the most effective of all?"

Sāma, Dāna, Bheda, Danda
This is a political methodology to approach a given situation. Start with conciliation or gentle persuasion (Sāma). If that does not help, offer money/material wealth (Dāna). If that still does not change the status quo, use threat or cause dissension (Bheda). Use punishment or violence (Danda) to resolve the situation where the previous three fail


Media in India has lost all credibility. And just like the boy who cried wolf, it has become difficult to judge when the media is being aggressive with an honest intention and when they are messing with our minds. Of late, every day I see a report on rape, and I wonder if the rapes have been happening with this frequency all along or if it is being reported more frequently after the ghastly Delhi incident that made the entire country livid. Whatever the reason be, it is not pertinent to the discussion, it was just a point I was pondering on. Indian news channels repeatedly hit rock bottom, the latest case being India TV interviewing 5 year old children about rapes, a tweet that I saw said...
This is what Indian news channels have drooped to! India TV, u piece of shit...how can u interview 5 year olds regarding rape!
I was wondering why it is that so many rapes are happening. When I think of breaking the simplest of rules, two things cross my mind. The wrongness of it and the fear of repercussions. It is like this. Most companies allow unrestricted internet access. This means that it is possible for me to download movies or some personal files using the office network. But the good guys don't do it. Firstly, because it is wrong to use something that is provided to you with the intention of being used for official purposes. Just because it is open doesn't mean you misuse it. Sir M Vishveshwarayya used to use his personal pen while writing personal letters even when he was the Diwan of Mysore and refused to be driven by an official car after his last day at work. This behaviour cannot be enforced, it has to come from within. This is driven by ethics, conscience and morality.

Fear of repercussions is the next thing. If I was using the office internet to download movies, and if I got caught, I could potentially lose my job. That fear serves as a deterrent.

I wondered why these rules are not getting applied when it comes to rape? People who are forcing themselves upon somebody else, beating them up viciously and going to such extents as bashing them ruthlessly with iron rods or leaving them to bleed and die clearly throw the idea of conscience and morality out of the window. However, if good behaviour is reinforced in the minds of children as they grow up, it becomes firmly rooted. I believe this definitely works. Recently, I saw a young boy from a village talking to another young boy as I stood in the line for the Aadhar card - "Why are they making us fill out these forms? Anyway they are going to throw it away. It's a waste of paper. Unnecessarily they are chopping off trees" I was pleasantly surprised. He looks like one of those uneducated chumps from the outside, but they were not joking when they said "Don't judge a book by its cover" because his attitude is something that most of the so called educated people don't have. The principle of reinforcing good moral behaviour in the minds of people, in my opinion, aligns with Sāma of Sāma, Dāna, Bheda, Danda.

Perhaps in this modern world of growing decadence, prurience of the lecherous cannot be checked by the mind and since they seek an outlet, I wondered if prostitution should be legalised. This has always been a major topic of discussion and it came to my notice while I was looking up some facts that in India, prostitution is legal but not regulated and running of brothels is illegal. If you look at prostitution at the very outset, it seems like a simple transaction, where one seeks sex and is willing to offer money while the other seeks money and is willing to offer sex. Assume for a moment that things are indeed this simple. Then, would prostitution help mitigate rapes? I doubt it, because of the stigma attached to it. People think of prostitution as amoral. Therefore, a person who frequents a house of ill repute will fall in the eyes of the society. What if, for arguments sake, there is no social stigma attached to it? I would like to think that then there would be a decrease in the number of rapes because now you have a legitimate outlet. However, things are apparently not as simple as this. There is in fact a very good website that discusses the pros and cons of legalising prostitution with views of scholars supporting both sides with statistics and data. If it would work, however, I would think that it aligns with Dāna of Sāma, Dāna, Bheda, Danda.

The main reason for a number of laws being openly flouted in India is the pace at which the legal machinery works - The speed of continental drift, or snail's pace to use a more common analogy. People are more or less confident that you can do anything and get away with it. And the media likes to believe that justice is dispensed only if it creates a hullabaloo - and sadly, many times, it is true. Without external pressure, without people coming out onto the streets holding placards and shouting slogans, things simply don't seem to work. Imagine a country where justice was speedily dispensed, a country where fear of repercussion and fear of being brought to justice scares the hell out of people who are on the verge of committing crimes, fear of the Batman or Dexter or Yagami Light (Many times, I wonder if vigilante justice is the way to go) - The same Indians who throw garbage wherever they please in India like the whole country is their personal fief quiver in their pants when they visit a middle eastern country out of fear of being flogged. It is remarkable that the same rule breakers don't break a single rule in a foreign country - Fear, a primal emotion is indeed a powerful motivator. When you are right, you have nothing to fear and when you are wrong, you should fear the weight of the legal machinery, a country such as this will be an ideal state. Yes, I understand that India is no ordinary country and for a country with a population such as ours, it is understandable that things are not as fast as in one of those puny European countries. At the same time, knowing the problems is half the solution. It is remarkable that we still don't have faster justice being dispensed, with cases remaining unsolved even after 15 years - Not the ordinary ones, but high profile ones. Fear of repercussions aligns with Bheda and Danda of Sāma, Dāna, Bheda, Danda.

All of this is purely armchair debate, and I have not even the faintest of ideas regarding the kind of pain, suffering, humiliation and trauma that the victims suffer, not just physical but mental and emotional... The purpose of this post is merely to look at it objectively and is merely a reflection of thoughts. If you do have any comments, do leave them here. And it would be great if you can participate in a simple poll.