Sunday, September 21, 2008

Niagara

I am always awestruck on seeing this falls, the power and beauty of the falls makes me to go this place again and again. I planned on making a trip to Niagara for the 7th time in a span of 3 years, one difference this time is I was armed with a Nikon D80 for capturing the awe and splendour of the falls.

We rented a car, we decide to pack our food and take it there rather than eating outside. We hit the road @6 in the morning, I know it is quite early for a saturday
morning :). It is a 300 miles drive from Scranton to Niagara, the drive isnt too tough, there wasnt much traffic in the morning. I started driving the car and we had our first stop/breakfast break @8.30 in the morning. Home made kichadi for morning breakfast was just too good. Then my friend started driving the car,I have this very bad habit, I like to drive the car or I would prefer to sleep in the back seat. I caught some sleep for 2 hours when he was driving, we stopped for our second break some 50 miles from Niagara for a coffee and french fries, I just love junk food.


I did not want to go on any rides in Niagara falls, I was just there to see the Niagara and enjoy the view. Our timing was just too good, it is a normal weekend and there wasnt much crowd for the ride Maid of the Mist( they take you in a small boat right under the Horseshoe falls). Engineering marvel is @ the best in Niagara, they do the unthinkable by controlling the amount of water that can flow in the falls. The ride what my friends went was the last for the day. They had to decrease the flow of water in Niagara falls due to some emergency, there wasnt much information available to us at that point of time.

We had our lunch @3 and then decided to go for Jet boat ride in the Niagara gorge. It was one of the best rides I ever had. Niagara gorge has lot of class 6 rapids, they take the jet boat through that. It was just too much fun. Timing was good there too, we went for the 5.30 P.M ride, if we have gone for 4 of clock ride the ride could have just been a normal ride since they decreased the flow of water due to some emergency.

We were right in time for the Niagra Night view. I did not speak to anyone for sometime, I was awestruck for sometime. I tried to capture the beautiful night view in my camera here
It was an awesome trip.

We had our dinner in a worst Indian restaurant in Niagara welcome center, the food really sucks there. I would suggest no one to go there. It was the only bad thing in the entire trip. we hit the road @11.15 P.M, I was too tired to drive, I drove for inital 1.45 mins then my friend took over from me. I took the back seat and slept really well, we reached scranton @4 in the morning. It was a well planned, well executed trip.

I want to take my parents to Niagara when they visit me in US next year.

Monday, September 15, 2008

Inflation and Dollar Vs Currency Exchange Rates

Being in US, the dollar exchange rate and Indian inflation controls my savings range. I was trying to understand on what changes the Dollar Vs Rupee exchange rates and figured that many like me would have the same questions. Economics is about Demand Vs Supply. As most of you would be aware that world business is done in US dollars. Any change to the value of the US Dollar will affect Indian Economy too.

Statutory Warning: This blog may be very dry for lots of people as it is related to economics.

Inflation

Inflation usually refers to the general rise in the level of prices of goods and services over a period of time. India’s current inflation is 12%, which means for example if you have bought 100 pencils for 100 rupees a year back you have pay 112 rupees to get 100 pencils. Money is getting devalued, more money chasing less goods that is leading to price increase, Demand Vs Supply. Central Bank or RBI tries to control India’s inflation. How they do it??? They increase the interest rates and the percentage of money what the banks should hold. What happens if they increase the interest rates, it decreases the money in the market or money circulation in the market. Less Money and more goods, inflation will come down. Then there will be next question on how more money comes to the market, who else RBI prints and releases it to the market. We can think on why RBI can’t increase the rates to have Inflation under control. There is a flipside to it. How Inflation does controls the Dollar Vs Rupee Exchange Rates

Dollar Vs Rupee Exchange Rates

India allows FDI or Foreign Direct Investment, to see the list and percentage of investments allowed in different areas refer to the link << http://www.dipp.nic.in/manual/fdi_manual_11_2006.pdf>> . How does this control the Dollar Vs Rupee Exchange Rates? India is considered to be the economically booming country, lot of FDI’s are going into India for example from buying HUTCH and naming it as VODAFONE, NOKIA factory being opened in India, all those investments are done in through Rupees. Dollar has to be exchanged into rupees and then the investment has to be done. More Dollar --> Less Rupee in the market, Rupee will appreciate and that will affect the conversion rate. RBI controls the Dollar Vs Rupee Exchange Rates too, how do they do it either by increasing the interest rates to suck the excess rupee out of the market, which would decrease the value of rupee and then it inturn increases the value of the dollar trade with rupee. Why should RBI do it ??? To keep the Export market in India including IT industry to be profitable, more export a country does more economically strong it will become.

I am not sure on how clear I have written this blog, since it is a very very grey area for me too, I am trying to understand the economics behind these exchange rates.

Wednesday, September 10, 2008

Google Chrome

Google Chrome

It is a not a new buzz word. It is going next Gen web browser. Just due to the amount of features what it offers beneath the browser. Quite a lot of architecture changes to a browser

Tabbing

Opening a Tab in a window was a craze when it first came out in FireFox or Mozilla, IE also copied it soon. But there were host of problems with the way Tabs were architectured to run internally in the browser. It was designed as One Process per Window, so if you open multiple tabs within the same window it is single process and multiple threads and it all shared the same address space in windows. So a programmer who knows hack into this can read the data handled in the next tab, for example you have opened a credit card statement in one tab and some website which runs the Malware in the next tab, the Malware can read the credit card statement since it is under the same process. If 1 of the 10 tabs that were opened in a window crashes then the whole window will crash. All these problems have been alleviated in Google Chrome.
1 Tab -- > 1 Process  1 address space. It is crash proof against other bad tabs.

JavaScript

Performance
JavaScript is the most important thing in web today. There are so much complex things done with JavaScript today, the performance of JavaScript affects the web applications.
Being a web developer myself, I know the pain of trying to improve the performance of slow running web application, most of the times the culprit is the slow running or slow loading Java Script. Browsers are inherently single threaded, Browsers have to handle the control the JavaScript when it starts executing, the browser cannot do anything till the JavaScript finishes execution and handles the control back to the Browser. If there are 10 tabs opened in a window and 1 tab starts executing the complex JavaScript, then the all the 10 tabs will stop responding till the execution of JavaScript is complete. With 1 Tab -- > 1 Process  1 address space this problem is addressed.

Compatibility

When you write a web application with lot of JavaScript in it then the web application has to be tested for compatibility since the JavaScript implementation and support is different in different browsers. Again being the web developer, seeing something not working properly in one browser to the other can be nasty. I wish JavaScript had a Virtual Machine which takes care of the internal implementation rather than the developer worrying about those. My prayer for a VM in JavaScript has been partially answered, with the introduction of JavaScript Virtual Machine V8. I wish that the JavaScript VM becomes a standard and other browsers also adapt this.

Memory Handling

The main problem with the JavaScript is Bad Garbage Collection, I would say worst Garbage collection. Current Browsers with the existing JavaScript uses Conservative Garbage Collection. It is like you have a Rack full of bundled clothes and searching for a small Handkerchief in the mess, you wouldn’t know where the Handkerchief would be so it is going to take more time to find it. If you exactly know where the Handkerchiefs are stored it would make it faster to search and find those, that is what the JavaScript VM V8 does. It also does an Incremental Garbage collection which can result in the applications being more interactive like a smoother drag and drop in the netflix applications.


Security

As I said earlier in the Tabbing section of the blog 1 Tab  1 Processes  1 Address Space. This architecture change has enabled the Sandboxing of the Tabs, means they can use the processor for computing but they cannot use it for read files from the machine or write files in the machine. Plugins have always been a big headache for the security of the browser’s (client) machines that run those. Plugins can access anything in the browsers machine and read or write things. For example if we install a Adobe Plugin in the browser, that does not fall under the standard security, they generally run at a higher level and generally works with the renderer( the part of the browser) which graphically displays the web page to the user. Renderer and Plugins run in the same address space. But in Google Chrome the plugins have been isolated and have been kept in a separate address space or sandboxed in a separate address space, so the security threat is minimized to a great extent. Another major problem with internet security is phishing attacks, it is like for example there is a bank site called www.icici.com and there is a hacker who opens a www.icicibank.com , how would you know what is the original site and where to enter the password, Google Chrome claims to warn the users against the phishing attacks and keeps updating the list of phishing websites. This sounds interesting but not sure on how well it would work.


End user should not worry about what happens under the hood of the browser and shouldn’t find a difference between the application written as a thick client (stand alone application) or thin client (browser), usability of the application shouldn’t get affected, and there are limitations with writing applications of that kind with the existing technologies and with the existing browsers. I hope Google chrome can address that problem too. Definitely a good start but way to go.