Tuesday, October 25, 2005

nytimes: great story on mashups and ajax and google

oct 24th

this business of mash-ups will do better and better. google stock may hit $400 :-) i should have bought at $120, but no, i was too hesitant.

now that indian stocks are tanking, and so is the rupee, this is a good time to buy into india mutual funds especially sectoral ones. p/e ratios are not too high yet, and the indian market has some way to go still. we're seeing a temporary trough because FIIs are re-evaluating the american market, and the bite of high oil prices is hurting.

back to the article, two things google has done well:

1. using ajax technology to make the online experience *almost* indistinguishable from the experience you get with locally loaded software

2. opening up the apis to their various products, esp. google maps and google earth which may be big winners

google map (because of ajax) is a quantum leap over mapquest and other mapping programs because of its dynamic nature: you can drag things around just as though you had the software loaded locally.

i think there's a big opportunity for outsourcing AJAX and Google API skills. what do you think? btw, there is increasing interest in legal, medical and financial outsourcing to india.

http://www.nytimes.com/2005/10/20/technology/circuits/20maps.html

i liked the trulia and homepricerecords sites in particular. good to know how much my house is worth, not that i am selling it :-)

27 comments:

kaunteya said...

Not related to this post but found this pretty interesting. This article was posted in economictimes.com !! is is true ?

http://economictimes.indiatimes.com/articleshow/1264102.cms


NEW DELHI: Salaries drawn by sweepers, attendants, drivers and helpers
working at power giant NTPC can arouse strong envy among students from
IIMs and IITs as the packages offered to school dropouts comes very
close to what top MNCs might offer B-school graduates.

Lal Beni, who perhaps never went to school and works as a sweeper in
National Thermal Power Corporation, draws an annual package of Rs
8,68,146. One Safal Ram working as a helper in the company enjoys a
handsome package of Rs 8,98,369 per annum, according to the annual
report of the Corporation.

List does not end here. Raghu Nath Sharma, a school dropout (quit
studies after 4th std), enjoys a remuneration of over Rs 6.5 lakh per
annum. Prem Singh, could not continue studies after 6th standard, brings
home Rs 7,89,821, which is well enough to embarrass a highly educated
person.

Satbir Singh, a driver who discontinued studies after 8th standard,
earns Rs 9,18,941 per annum which is few thousands less than R D Kapoor,
Bachelor of Engineering (Mechanical) and holds an MBA degree, and serves
as Director in the same company and takes home Rs 10,62383, the report
says.

After having struggled to acquire MSc and PhD degrees, one D N Roy,
Deputy General Manager in the company, could only manage half the salary
(Rs
5,21,903) as that of Satbir.

A senior driver Rumal Singh earns Rs 5,67,447 which is few thousands
more than that of Roy's.

Thirty six years of experience and BSc (Engineering) degree could fetch
only Rs 8,79,658 per annum for one S S Chakraborty, who serves as Chief
Executive Officer in one of the units under the company, the report
says.

The remuneration offered by the PSU includes salary, allowances, leave
encashment, leave travel concession, payment for subsidised leased
accommodation, reimbursement of medical expenses to employees and
employer's contribution to Provident Fund and other funds.

However, it does not include the monetary value of the medical treatment
provided in the Company's dispensaries/hospital of Project sites, since
it cannot be quantified employee wise.

In addition, the employees are entitled to gratuity/ group insurance in
accordance with Company's Rules.

The company also claims that none of the employees mentioned is related
to any directors in the Public Sector Unit.

Anonymous said...

Hi Kaunteya,

I am an ex-NTPC now in Canada. These figures are as usual "sensationalized" by our foolish media. NTPC has an excellent medical policy and it pays to get its employees treated at the very best hospitals free of cost. As these expenses have been fully paid by the company, they
appear under the head "salary", as per some provisions of the Companies Act of India. The companies act also mandates that earnings of employees who draw more than Rs 5 lakhs should be reported in the Balance Sheet. Some idiotic journalist has just sensationalized this…

DarkStorm said...

Regarding an earlier discussion on Ajax, I still dont understand how AJAX can be the microsoft killer. AJAX is a technology that allows you to make local javascript calls to the AJAX engine, instead of requesting the server.

From the Wikipedia
"Any response to a user action that doesn’t require a trip back to the server — such as simple data validation, editing data in memory, and even some navigation — the engine handles on its own. If the engine needs something from the server in order to respond — if it’s submitting data for processing, loading additional interface code, or retrieving new data — the engine makes those requests asynchronously, usually using XML, without stalling a user’s interaction with the application.”"

"Every user's action that normally would generate an HTTP request takes the form of a JavaScript call to the Ajax engine instead"

What I understand from this is that Ajax engine will need to run on an OS (where MS has the stronghold), or probably in IE, or as a plugin to IE.

No doubt Google is doing well, and it will continue to grow. But I think that it is the MS killer is just another piece of hype. You still need something to run AJAX engine on. Why MS is really taking the Google threat seriously is that it might affect its applications business, like MS Office, and to some extent, development tools, Visual Studio. And "hey Bhagwan, Javascript naheeeee". It is a really irritating thing to work on. Doesnt normally follow that "smooth flow" that a programming language must have. Not object oriented.

" Web server processing time is also saved, since much of it is done on the client."
Doesnt it break the "thick server, thin client" model. Of course, the javascript comes from the webserver, but still, maximum processing on the server part is contradicted.

nizhal yoddha said...

darkstorm, here's the way i understand it.

key to microsoft's success has been a) operating system revenues, b) office suite revenues. they make most of their profits from these two products.

they have managed to capture the developer community, meaning all developers write to windows APIs. therefore you as a user are forced to buy windows machines to run the software you want.

the AJAX approach allows the developer to write to a higher level platform, which is the AJAX APIs. since the ajax engine can run on any os, that means users and developers are not tied to windows. for instance, that means you could switch to linux or mac os or solaris and all your ajax apps will still work. this means potential loss of os revenues for microsoft.

next step of course is to have ajax-based analogs for word processing, spreadsheet and presentation graphics. if these web-based applications are as good as the ms office apps, there will be fewer buyers for ms office. the decision by massachussetts to drop ms office may spread.

in general, web services will erode the power of the desktop, because the pc basically becomes a dumb terminal.

yes, instead of being completely dumb, you need to run the ajax engine locally. but an ancient mac or dos machine or linux box can run ajax.

so the desktop cannot be totally thin, as in dumb terminal. actually it needs local processing just to run the windows system, so there is a minimum level of processing power required, but that can be provided by a 1990 vintage intel 386 box, even.

i think this is why ajax + web services + new apis from google + ajax-based open office all sound exciting, as they might break the hold microsoft has on the market. the business model may change.

DarkStorm said...

Your logic does have weight, Rajeev. It is a threat to MS Office applications. But the need for speed is never satisfied, I believe. Let us wait and watch. The market has always surprised. MS definitely faces a threat on the applications side and Win API side. .Net framework is as capable as the mature J2EE framework to create WebServices. So, the server side programming does not see much change, from status quo (J2EE dominating, .net framework has takers though). The applications and developer tools from Microsoft seem to be in for rough competition ahead. No wonder Steve Ballmer is all worked up, kicking chairs around. :)

kaunteya said...

Thank you Anon for your inputs on NTPC.

Nizhal Yoddha,
I feel MS has had a good run so far and it will continue to dominate OS market unless something really mind blowing comes to take users imagination. Even if Ajax+Google+Sun+Web services come together it will be difficult to replace the end users habit of using MS applications. For example even if i tell my end user to use a really exceptional Word Application she will try to resist the change. First of all she took months if not years to get used to the current application and she wouldn't want to undo that and learn a new thing. I have seen users resist to change even if it is for the better. It takes lot of sleek marketing to make user change to a different application.
We do not want to leave our comfort zone even if that zone is not efficient and we have a better choice.
Once our client wanted to replace the existing client-server system with a new web-based sleek looking application. We built that application over a period of 2 years often working weekends to make it really classy. You know what was the biggest hindrance in its launch? The end users lethargy towards using it.
We had to make them come and watch the demo again and again. I have left that company, but i know for sure that the client is still not using the new Application.
Point being, Microsoft has now become a habit more than a tool.
And as they say "bad habits die hard" :-)

Randhir said...

How different is AJAX from say DHTML which has been in existence for over 6 years?

Randhir said...

Kaunteya:
--------
Once our client wanted to replace the existing client-server system with a new web-based sleek looking application. We built that application over a period of 2 years often working weekends to make it really classy. You know what was the biggest hindrance in its launch? The end users lethargy towards using it.
---------

It's awfully difficult to move users from a client server app to a web based app given the limitation of web app (modal windows, printing issues, use of third party controls, browser compatitbility, etc...)

The fault lies with managment which failed to manage it's users expectations and deliver. If a company charters say about $2M to $3M to develop something for it's users, the sponsor will have a hard time explaining to his boss that users aren't ready to accept the new application because of bad habit.

This project seems like a perfect case study for a wide variety of things that can and will go wrong if it's not managed by someone who can literally herd cats. I don't believe technology or any human factors engineering could have been a issue here.

DarkStorm said...

Randhir said
-----------
How different is AJAX from say DHTML which has been in existence for over 6 years?

-----------
From whatever I have read, AJAX can asynchronously "talk" with the server, while the client is using his application. By asynchronous, it means that the client can continue to use the application, without waiting for acknowledgement from the server. Normally, in the web app model, when the user performs any action and submits it, the user has to wait for the server to return a response.

Also , AJAX makes local javascript (eeeekkss!!!) calls to the AJAX engine for tasks that are delegated to the client side. The engine talks to the server in the background.

Also, AJAX engine makes webservice calls, and not the http request and response model. (Though webservice itself works on SOAP over HTTP).

Supposedly much faster than current http request response model, because many common tasks can be delegated to the client.

DarkStorm said...

I somehow have a feeling, that more than users, it is the developers who will have to be coaxed into programming Javascript.
But good news regarding the AJAX engine. We can make webservice calls to Google API. Language independent. Your ajax engine might use Java or the C-family(C, C++, C#) or vb.net, it does not matter.

kaunteya said...

I am sorry for i was ignorant of Ajax. I read a few articles on Ajax and realise now what Rajeev was saying.
Yes, Ajax seems to have the potential to change the MVC-model that we are used to as far as web applications are concerned.
(Shit, i have so often told my wife of my desire to move out of this sleepy town and work in the bay area where i can remain on the cutting edge :-)) )

If we can have the power of running an application right out of our browser without having to make server trips , what the heck, everyone will go for it.
No need to install, no need to carry your lappy, just go on the net and start working.

I wouldn't predict doomsday for MS but surely Ajax + Google + Web services have the potential to make a dent in MS's domination.

Sorry for the previous post.

Randhir said...

>>Shit, i have so often told my wife of my desire to move out of this sleepy town and work in the bay area where i can remain on the cutting edge

The world is flattening (per Freidman) :-) so it won't matter where you reside.

Just make sure that cutting edge is not bleeding edge ;-)

nizhal yoddha said...

i am a little confused about this, but i think you dont even need a browser to run AJAX-based web applications. all you need is a javascript-compatible OS, which i believe just means the java virtual machine is running. or am i wrong?

for instance, the google desktop applications run on their own without a browser.

so that means they are os-independent and browser-independent. thus google is making itself less and less reliant on microsoft's products (os, ie). if others follow this direction and use the AJAX platform as their base, then microsoft will lose the developer community, which will surely hurt. and no, not only in developer tool sales, it is in *mindshare* and ability to control them.

in my opinion, controlling the independent ISV developers has beeen the biggest business success factor for microsoft. no wonder they spend so much effort on keeping them happy.

it's because of ISVs and our favorite apps that we all feel pressure to upgrade to the latest version of the OS (to microsoft's benefit) and then become forced (to intel's benefit as well) buy a new PC because the new OS is so resource hungry. otherwise except for the enthusiasts and early adopters (see geoffrey moore's crossing the chasm) nobody would bother to upgrade to new OS releases.

kaunteya made a good point about people not wanting to transition to new apps. absolutely true. the biggest hurdle is training and experience. but if forced, people will do it. i have been using openoffice for some time, and though it's not 100% compatible with ms office file formats, and the commands are different, it's reasonably intuitive and not that hard to learn if you know office. but it appears that 'free' isn't enough incentive to use it, but 'fiat' might be, if its file formats become widely accepted.

but then, why do people migrate from OS version to OS version? there too the inertia should come into the picture. the answer is that it is a forced migration, pressure coming from ISVs (as well as corporate MIS depts which want to support only one OS version). so if there is compelling reason or coercion it can overcome the inertia.

by the way, what are the specs for a pc to run the forthcoming vista os? 1 GB memory? or 2GB? 2Gz CPU? 100 GB hard disk? kiss goodbye to another $1000 in 2006.

Randhir said...

Rajeev,

Javascript in a browser can run even if the Java Virtual Machine is NOT on the machine (won't bet my farm on it but am pretty sure, remember the case when Microsoft wanted to remove JVM from their platform? and Sun came back kicking and screaming)

Only Google application I have is Google earth so not sure about other Google apps. I don't believe Google Earth is a what we'd call a "thin client". The data layer resides on the server but the presentantion layer and business layer is installed on the client's machine.

Remember the famous foot-n-mouth comment by Gates couple decades ago that 540 RAM should be enough for any PC? Isn't there some Murphy's law equivalent that states speed of machine and disk storage doubles for the same $ amount every couple years? If we can walk around with 30G in our jacket (iPod) would having 2G memory on our laptop be so bad? Personally moving to a new technology to an extent is infulenced by the actual cost of the hardware/software.
But in corporate world it's more than what is a better software or a cheap software - exhibit A: Linux. Those deeply entretched with Microsoft software haven't moved to Linux yet (atleast in couple dozen Fortune 500 companies I've seen in a specific health related sector). A lot revolves around ROI on adopting a new software and soft costs such as training, usability, support, maintainence, upgrade, ability to interface with other legacy application etc.

Darkstorm:
>>Also , AJAX makes local javascript (eeeekkss!!!) calls to the AJAX engine for tasks that are delegated to the client side. The engine talks to the server in the background.

Microsoft RDs (remote data scripting) did this in '98 or '99. Failed to catch on even in MS dev community because (IMHO) of 2 reason (a) worked only in IE and (b) security holes the size of Grand Canyon

DarkStorm said...

I am not sure if you need a browser to run the desktop google apps.

I suppose you need a Javascript engine, something that hosts javascript and executes them. I suppose, it is only the browser that can execute javascript. Even if the browser window is not open, you might need the browser to be present on the machine, so that the AJAX app can run, using the browsers javascript execution code.

So, google earth like apps might not run in the browser, but if they use AJAX, then javascript comes into the picture. Maybe, it will not run on a computer with no browser installed. I havent checked it up though. It is also possible that Google has the javascript handler built into the AJAX end of its applications.

AFAIK, the google earth is an exe file running on Windows. So the WinAPI would have been used. Seems logical, but I am not too sure about this though.

My grouse against client side Javascript is that I have always found it unreliable, tedious to program and debug-unfriendly. Also, it does not have a smooth flow like Java and C family. Reading javascript code feels "jerky".

DarkStorm said...

Rajeev,

MS site suggests minimum of 512 MB RAM for Vista OS. That means you can say 1GB RAM is atleast needed for a decent experience.

Also, most sites I have seen recommend 2GB if you want to use its advanced features/graphics systems.

Vista has changed the graphics subsystems drastically. You can now enable Vector graphics on Vista, (which needs a powerful graphics card). They have moved much of the graphics processing from CPU to the Graphics card. Of course, if you dont have a graphics card capable of lifting the weight, it runs normally, but you will not get the extra graphical thrills and frills.

Randhir said...

>>AFAIK, the google earth is an exe file running on Windows. So the WinAPI would have been used. Seems logical, but I am not too sure about this though.

You could be right about WinAPIs. My cousin with Apple (G5?) has been complaining that there's no Google Earth for Apple.

Something on Google that I found quite disturbing:
Google censorship and this one a persons personal experience

Anonymous said...

Randhir, that was a good post regarding google & china.

How long can the communist thugs in china suppress freedom & right to information? I predict china will implode ('splittist tendencies' as they like to call) into fragments pretty soon. In the meanwhile we should train the tibetans residing in our country to take up administrative/military duties when they go back to independant tibet.

nizhal yoddha said...

oops, i goofed on google earth. yes, it is a pretty big *application* that i remember downloading. it's a winAPI client-server application.

how about google desktop? come to think of it, this is also an application that i downloaded and now run on my machine (by the way, it's great for searching for stuff you know is *somewhere* on your PC). and it runs in the background, indexing away.

but it has a host of small applications that you can set up in the sidebar. these i think are AJAX based lightweight applications and they also dont need a browser. they run on their own. i think these are google's prototypes of word processing and other applications. any thoughts on this matter?

randhir and darkstorm, i have no problem with a 2GB machine for vista except that what i have now is a 256MB machine, and i'm darned if i'll buy a new box just to run vista. i generally have to be dragged kicking and screaming to new windows os. in fact i ran win95 till my old laptop gave up the ghost after five years. i am a laggard when it comes to os upgrades: i never upgrade. the only way i change os is if i buy a new machine.

i have been thinking of running my machine dual-booted with linux, but the process of getting it up and going sounds intimidating, although i am very happy with unix-like OS's. maybe when apple OSx comes out for intel, i'll run that dual-booted. no idea when though. or if.

Randhir said...

Rajeev,

I usually wait till Microsoft releases say the Service Pack 3 ;-) around the time the prices of hardware, software would have fallen to an affordable range and all the ancillary applications I like (personal finance, anti-virus, spam filter, email etc) would have released their Vista version.

Love cutting edge, not bleeding edge.

DarkStorm said...

When I double click on the google desktop icon in the system tray, it opens in the browser. It needs a browser to execute its javascript as far as I can see.

You can see the indexing processes running in the background while google desktop is in the system tray. GoogleDesktopCrawl.exe or something. There are 3 processes.

I tried an older Google desktop beta four months ago, maybe it does not need a browser now.

By the way, I tried Yahoo desktop search, and I found it faster and much better. It has two panes, one for your files listed, and other pane opens the document, txt, pdf or even emails, on the right hand side. I find it better to search emails via Yahoo rather than Outlook.

I think you dont really need 2 GB, if you dont need the graphical thrills. It might turn out something like win-XP on my workstation, it is set to classic Win2K look and feel, rather than the new XP look, which is more resource hungry( for those shadow and menu effects). There are some unofficial beta screenshots of Vista out there on some sites.

Guess , its the best to wait for SP3 of Vista, before taking the plunge. The reviews will be out by then, and the hardware too. We will have reason to switch then, given that 32 bit is on its way out gradually, and we will see more of 64 bit and dual core CPUs.

DarkStorm said...

>> i have been thinking of running my machine dual-booted with linux, but the process of getting it up and going sounds intimidating,


You can use the 256MB box for Linux, and 1 GB (optimal I guess, can go in for more later) for Vista, instead of dualBooting. Getting it up is not intimidating, IMHO, but to maintain can be a pain. Never know what can corrupt the boot. Also antiviruses dont take kindly to boot modifications. An antivir on win might trouble on linux changes in bootup config, later on.

DarkStorm said...

I said,
>> Getting it up is not intimidating,


I am sorry I meant Getting it up is intimidating, and maintaining it more so.

Anonymous said...

Google Desktop sidebar is not an AJAX application. Although AJAX application can theoretically run outside a browser also, but AJAX is not for that purpose and never used that way. AJAX is totally independent of Java. It is nothing but simple javascript calls which send xml requests over http to the web server. This request is normally sent asynchronously. Once the response is received it is processed using Javascript and then displayed. Google Suggest was the first AJAX application from Google. You type a letter in the search box. Your key events will be handled by some Javascript code which will send xml request to the web server and as a response it gets a list of words starting with your typed letter. Then Javascript code will show those words as a drop down in a div below that search box. AJAX engine is this javascript code which is sending request to the server and processing the response. Google Mail and Google Map are also AJAX applications. Google Desktop (ignoring the part where it shows search results in a browser, that result comes from a local web server) and Google Earth are thick client applications. AJAX (JavaScript XMLHttpRequest) is an old technology, becoming popular only now because of some successful demonstrations by Google.

DarkStorm said...

Hi Anon, Thanks for the info. Does the AJAX engine then host the javascript execution code.
Are there some new/predefined/fixed javascript method calls or it is regular client side javascript that you see on simple html pages.

But you need to display your results to the user. And how do you do that without going through the WinAPI. AJAX, IMHO is just another tech similar to J2ee web applications, just that it is a bit faster because the client is thick.

See, now you are basically pushing the processing to the client, and data handling to the server, like it was back in the earlier client server days. (VB/D2k/PB and Oracle/Sybase/SQLSvr) . So, you need to have the latest client to support the latest features of the app. Also, there might be some settings involved,( like you needed to setup DB connectivity on the client earlier). Not all browsers handle javaScript in the same way, even across versions of the same browser. Not all javaScript functions are supported by all browsers.

Somehow, I think AJAX is pushing us back to the early client-server days, though it might not be as problematic as it was back then.

DarkStorm said...

Hi Anon, I read your post again.
I think that the AJAX part is not on the browser. Because, like Google Suggest works, it does not refresh the page. If the browser sends info back and forth with the server, the page is refreshed. There is some other thing that is doing the asynchronous XML communication with server. How is that. I read about AJAX, but typically like hyped up , hot shot, supposed to solve all your problems , technologies, the real stuff has been obscured. It is more of marketing stuff out there. Like Java in the initial days.

Anonymous said...

@DarkStorm
<<<<
Hi Anon, Thanks for the info. Does the AJAX engine then host the javascript execution code.
Are there some new/predefined/fixed javascript method calls or it is regular client side javascript that you see on simple html pages.
>>>>>

There are some predefined javacript method calls which are used by all AJAX code. In Mozilla, it is XMLHttpRequest object and in IE it is ActiveXObject. Your javascript code will use these APIs to send back the request to the web server. To summarize, your client side javascript code will use these Javascript objects to send AJAX request and read AJAX responses.

<<<<<
But you need to display your results to the user. And how do you do that without going through the WinAPI. AJAX, IMHO is just another tech similar to J2ee web applications, just that it is a bit faster because the client is thick.
>>>>>

You display the result by using DHTML. You write html text to the document object. You don't need WinAPI.

<<<<
I think that the AJAX part is not on the browser. Because, like Google Suggest works, it does not refresh the page. If the browser sends info back and forth with the server, the page is refreshed
>>>

This is the beauty of AJAX. You don't need to refresh the web page. You send the request asynchronously and then receive the response and display the results using JavaScript and DHTML.

Look at some example AJAX code available on the web. That will clear most of your doubts.