Saturday, October 3, 2015

Difference between two numbers in a system with limited operation

One of my friends, Ravi, asked me a question today and he said that it was asked to him by one of his interviewers some time back. Here is the problem statement:

You are designing a new computing system in which following four operations are possible as of now:

(1) Assignment of a variable to another : x = y.
(2) Assignment of zero to a variable : x = 0.
(3) Increment a variable : x++.
(4) Looping in a way which takes a number (variable) as argument and loops for that number (variable) even if you change that variable's value inside the loop. You can't break out of the loop.

How to calculate difference of two numbers "x - y" in the above system?

After spending some time in thinking about the solution, here is what I came up with:

There is one more information given to us. The system is new and designed by us. Hence, we know the architecture of the system and hence the highest positive value possible in that system after which a variable becomes zero if incremented by 1. 
Now, we can assign the highest possible value for that architecture, say 65535 for 16-bit as we are allowed to assign a value to a variable. Then we can increment it twice to get the output as 1. We see that if we add 2 to the highest value we get 1, in a similar fashion, we can add 'n' to the variable having highest value to get 'n-1'. So, we see that in the first iteration, we start with 'n' and get 'n-1'. We can then start with 'n-1' and we will get 'n-2' and so on. We will get 'n-y' after 'y' iteration. Here we can take "x = n". 

Hence we will get "x - y" with the set of operation defined in the problem statement above and one more additional information about the highest number possible in the system. 

Saturday, August 22, 2015

Valley of Flowers and Badrinath journey

It is indeed a 'Devbhoomi' (Land of Gods). It is Uttarakhand in India. We returned from Valley of Flowers and Badrinath last weekend and I am writing down my experience and itinerary for the same. 

We had a flight to Delhi in the evening of 8th of August. Then we boarded on a train to Haridwar at night and reached there next morning. The railway station was full with pilgrims. We couldn't get a bus direct to Govindghat. Someone suggested to go to Rishikesh and from there we will get a bus to Govindghat. We went to Rishikesh and it took three hours to complete this journey through a bus. Though it should have taken only one but it was a festival season and there were thousands of pilgrims going to offer 'Ganga jal' (holy water of the river Ganga) to Lord Shiva in a temple nearby. I had a chat with one of the devotees and he said that they were going to a place called Neelkanth. The same offering happens at a place called Deoghar (Home of the Lord) now in Jharkhand (earlier in Bihar). So I was able to relate to the activities the pilgrims do and their dressings also which is of saffron color. 

Once we reached Rishikesh, we got to know that we won't get a direct bus to Govindghat but we will get a bus to Chamoli from where we will get a bus/ transporter car to Govindghat. Therefore, we boarded on the bus to Chamoli. There were five of us, three of whom were college friends including me. It was a wonderful journey to Chamoli. We enjoyed a lot and got to see a lot of places which we don't see in our city lives. The air was very soothing and pleasant. It was without the polluted city air. The bus stopped at place and we had lunch there. The food was good. People from several other countries also come and visit these places. The locals on those hilly areas also boarded on the bus now and then and I got a chance to hear their language and observed their lifestyle too. It was a great journey to Chamoli where we reached in the evening. Luckily, we got a vehicle to Joshimath where we reached soon enough to stay at night. We took government run hotel and a double bedroom costed us INR 660. Hot water was available in INR 25 each bucket the very next morning. 

Next morning we started our journey from Joshimath through a four wheeler vehicle (I have forgot the name) and reached Govindghat in an hour or an hour and a half. The trek to Ghangaria (which is a one-road village) started from Govindghat then. It is a 13 km trek mainly ascend alongside the river Lakshman Ganga. Though there are few descends and plain walks too. One can take mules/ porters for the backpacks or self. I took a mule in INR 700 for my backpack after trekking for about four kilometres. The walking stick which I bought from Govindghat in INR 20 helped me a lot throughout the trek. Along the way one can find several small villages where food is available at slightly higher price than plain lands. There was an old lady who was selling Apples along the way. We bought few kilos of apples from her and she seemed to be happy. She had told us about 2013 floods which washed her home away and they had nothing to do. She showed her home down the hill. There were few apple trees near to the river. We stayed in Ghangaria that evening. I got sick the next day and had to take bed rest the entire day. My friends went to Valley of Flowers (VoF) that day which is a 5 km trek from Ghangaria. I went to VoF the next day alone. Going there alone taught me several important aspects of life and I enjoyed it a lot. There were many other trekkers whom I got a chance to interact with along the way to VoF. One of them gave me two chocolates too, I think in courtesy to the water I gave him to drink. They talked to me in Bangla (a very popular language mainly spoken in the eastern part of India and across the globe now). The trekkers included folks from all stages in life. There were kids, old trekkers, and young ones too.  At the end of the trek to VoF I got a chance to talk to an old man who went there with his friends. Though he didn't complete his journey to the inside of VoF and he returned from the river at the perimeter of VoF, but he told me something which I can never forget. My old friend told me, "Though I am returning from here but you, my friend, go ahead and complete this journey". After that he patted on my back as an encouragement to complete the trek. We talked in Bangla and then I realized that many people who go there speak Bangla as I had interacted with few of them and heard others speaking in the same language. There were many groups on the trek like a group of boys and girls who seemed to be from a college, a Mahrashtrian family, many Sikh brothers, etc. 


The Valley of Flowers was covered with lots of flowers and many of them have great medical benefits. The flowers were of various colours ranging form Blue, Yellow, Pink, etc. There was a 25 minutes documentary which we watched the previous evening and it costed INR 30. It gave us good idea about the history of the place and information about the flowers. The VoF and Ghangaria are open to everyone only for a brief period of three months and I got to know from a guide that the flowers which bloom there in huge numbers also may vary in different times within those three months. Initially, there were very less clouds in the valley, but it started increasing as the day passed and it rained sometimes. I went inside the valley and used to stop and view the amazing valley along with its flowers and wonderful natural beauty. I didn't go till the end where there was a beautiful blanket of ice which I could see from a distance in the valley. I knew that I had to return sometime but I didn't want to. There were many waterfalls in the valley which were producing the sound which felt as if I always wanted to hear them. At the end I had to return half-heartedly as I wanted to see more but I was satisfied to some extent since I visited the place at least. Overall it was a wonderful and life-learning experience. 

My friends had gone to Sri Hemkund Sahib ji (which is a Gurudwara) that day and I heard that it was even more difficult trek than VoF. There is a temple called 'Lokpal' where a guide told me that 'Sheshnag' was granted the boon to have birth as 'Lakshman', the younger brother of Lord Rama. 

The day came when we had to trek back to Govindghat and it took about five hours for the same. We went to Badrinath from there through a hired vehicle and visited the temple there. The temple is a must visit holy place near to the river Alakananda and I enjoyed a lot there as very few people were there during that evening. Next morning, we boarded on a sharing vehicle to Joshimath. We also visited Lord Hanuman temple called "Hanuman Chatti" along the way. It is said that Lord Hanuman broke Bheem's ego there and taught him a lesson during Mahabharata times. We had to face landslides at two places. Finally we reached Joshimath and then took another sharing vehicle to Chamoli where we had lunch and took another sharing vehicle to Rishikesh. We reached at Rishikesh at night and then took a bus to Haridwar from where we had reservations in a train to Delhi where we stayed at a friend's appartment. We had flight back to Bangalore on Sunday and thus ended our nine days journey to "Valley of Flowers". 

Here is a list of places you need to be to reach VoF and Badrinath (optimized list which we couldn't follow):
Delhi to Haridwar : Night train
Haridwar to Govindghat: Bus
Govindghat to Ghangaria : Trek/ Mule 
Stay at Ghangaria (@ INR 600 double bed to INR1000 on average).
Ghangaria to Valley of Flowers : Trek (about 5 KM after 2013 floods).
Ghangaria to Hemkund : Trek/ Mule.
Ghangaria to Govindghat : Trek/ Mule.
Govindghat to Badrinath: Bus/ Sharing/hire vehicle.
Stay at Badrinath (@ 300 four bed, guest house near bus stop; other hotels available).
Visit temple and nearby places at Badrinath. 
Badrinath to Haridwar : Bus [or Badrinath to Joshimath/Chamoli and from there to Haridwar/Rishikesh]
Haridwar to Delhi : Train.

NOTE: Suggestion is to take medicines for common issues along with you during the trek on hilly areas and drink mineral water if the local water doesn't suite you.

Friday, June 5, 2015

InMobi hackathon

The day came when I had to go to participate in a Hackathon once again after a long period. It was Saturday and I woke up early morning so that I can reach at the venue on time. InMobi's office in Bangalore is a masterpiece, I must say. First line of selection process was online where our ideas were filtered and we were called at the facility after our ideas were chosen. I was joined by my friend Ravi and like every team we were allotted two cubes - the open cubes at InMobi. After Mohit's sesssion about the hackathon we went to our cubes and settled. All the teams had a mentor and we were asked to formalize our idea within a limited time. It was reviewed by our mentor after the time was over. Then we started thinking about how to approach the problem.

I got a chance to interact with Soumya during lunch. He works at InMobi on databases. He is a cool guy and we interacted a lot and shared some quality time on the lunch table. We went back to our cubes after lunch. I had few discussions with Ravi as he was facing some issues with his web interface. I was thinking about each of the modules of our idea and trying few things on linux and writng scripts for those. It was 3 in the afternoon and there was a laughter session by Sanjay Manaktala. We laughed a lot!! and it was really helpful in rejuvenating a new source of energy within us. We went back and resumed our work. After some time, we had few lines of codes working and we could actually showcase something of our idea. It was 7 in the evening and there was a third round of review by our mentor. We had a great support from Siva and his inputs were truly helpful. We had dinner after some time and I must say that the food was awesome like lunch and breakfast.

It was midnight and we decided to come back to our home and then go back to the arena next morning. We went back to the arena next morning and saw that few folks looked as if they didn't sleep at night. I met with my friend Tushar again in the morning. He had also participated in the Hackathon. It was a wonderful experience and a perfect refresher for me after college. We enjoyed the environment at InMobi a lot and I am eagerly waiting for the next one.  

Monday, March 9, 2015

The FREAK Attack

Last week saw one more security attack. It was named as the "FREAK" attack and is basically an MITM (Man In The Middle) attack which targets the "downgrade to weaker algorithm" property. It downgrades to export grade algorithm. As a countermeasure to this attack, the support for export cipher suites has to be disabled. Several write-ups are worth mentioning and the readers are suggested to go through each of the links mentioned in the references below in detail.  

References:

Saturday, January 24, 2015

virtualbox window resizing

From quite a few days I was annoyed with the small screen size of my Ubuntu installation in virtualbox. Tried a lot of package installations and reboots, but nothing worked. Finally, the following set of commands worked:

sudo apt-get install build-essential module-assistant
sudo m-a prepare
cd to VBOXADDITIONS which is there in /media/
sudo ./VBoxLinuxAdditions.run
sudo reboot

And the window should be fitting the screen after the reboot.