Monday Jul 13, 2009

Web App War II: Office Web Apps (Office 2010 vs. Google Docs)

As expected, Microsoft presented Office 2010 at its WPC09 keynote this morning. The an hour long video of Office 2010 keynote is available online starting at 01:38:50 mark.

Office 2010..

The web apps of Office 2010 is a very polished response to Google Docs. Finally, after its Outlook web app started this modern web app warfare in 2000, Microsoft is able to make a strong challenge to Google. Google may have to commit significant resources to improve and innovate on Docs in the next few years. This will be an exciting event to watch...

Plan B, Cisco?

With Microsoft and Google fighting with office web apps having extended features for voice and conferencing support, Cisco is looking very much out of place with its Webex based strategy. What can Cisco do next?

BTW, Chrome OS Reviews...

Most reviews on the Chrome OS focusing on windows and netbooks are probably missing the real target. I think the Chrome OS is for making devices "Web App Ready". It is likely to archive what HotJava failed to do (running apps inside browser) with its in-browser Java VM almost 15 years ago. I had that deja vous feeling when watching the Chrome release announcement last year. By next year, I hope to see Chrome OS based set-top boxes allowing me to watch Laker games while twittering or working in Office web apps on my HDTV using an iPhone like remote control.

Tuesday Jul 07, 2009

Google announced Chrome based web OS

Wow!! Google announced the Chrome OS tonight. The following is a brief summary of Google's announcement:
  • an open source, lightweight operating system targeted at netbooks.
  • code will be open-sourced later this year
  • Chrome OS netbooks will be available in the second half of 2010
  • the OS run on both x86 as well as ARM chips
  • the OS is running on top of a Linux kernel
  • this is a new project, separate from Android
  • more updates in the fall

Looks like this is a virtual OS layer on top of a Linux kernel. Very much like what I pointed out last year when Chorme was released, see Google Chrome, a solid foundation for modern web applications.

Tuesday Jun 02, 2009

Bing, Wave, and Natal!!!

Googly Microsoft...

I am using Bing for almost two days and like it very much. In Web 1.0 days, I spent several years working on a vertical search start-up. Some of the concepts we prototyped then were similar to features now explored by Bing. Great work!! It is nice to see Microsoft moving on the right track this time. The only problem Bing has now is the lacking of data to show. At the minimum, before open for business, they should have crawled and indexed all Wikipedia family of sites completely to avoid the kind of problem I found... a single result from Bing which does not even match the search term "googly".

One googly result..

A Microsofty Google?

Also looked at Google's Wave for a while. For some reasons, Wave feels more like a traditional Microsoft project than Google's. Personally, I am not sure the concept shown in Wave will work.

Project of the year!!!

The most exciting project for me so far this year is Microsoft's Project Natal. I watched the demo video over and over again many times. This technology will greatly expand the future directions of Man-Machine communication. It will be incredible if someone can bring integrated voice recognition and 3D motion tracking, without Wii-like remote controls, to a price point available for consumer products. I am not sure Natal is ready for production yet. In the video, I found some indications of lagging between the display and player's action as shown in images below (watch the player on the right):

open arms..


However, it will be great if this technology can be matured for production within a year or two. At that time a lot of UI code will be rewritten to support a new generation of products!!!

Tuesday Apr 07, 2009

Google App Engine Java Support Announced

Very Cool!!! Google just announced App Engine Support for Java. I will be busy this weekend trying this out.

YouTube URL

Sunday Jan 25, 2009

REST rebranded: a quick overview of WOA...

A friend called yesterday, asking for a quick overview of Web-Oriented Architecture (WOA). The following is a summary of the discussion we had on WOA.

The initial discussion about WOA started around late 2005 and early 2006. Nick Gall of Gartner used the term "Web-Oriented Architecture" to represent the concept of "SOA plus REST". He later further defined it as:

This makes WOA a subset of SOA. As Dion Hinchcliffe pointed out, and later agreed by Nick Gall, the only difference between WOA and REST is the adaptation of service orientation. From the SOA point of view, REST can be considered as a sub style that primary concerns with how to define service interfaces using URI-based schema and HTTP verbs. Rebranding REST into WOA makes it easier to shift our focus from the traditional REST style user-to-system interfaces to current system-to-system ones addressed by WOA.

The growing interest in WOA in 2008 and 2009 is mostly driven by the popularity of cloud computing platforms for SaaS, S+S, and others. Web applications developed for cloud platforms, e.g., Google App Engine or Microsoft Azure, have many service-oriented issues that needed to be addressed. Unlike traditional web applications that can have everything needed be co-located in the same environment, cloud based web applications depend heavily on loosely coupled services resided within the cloud.

We both agree that 2008 is the very beginning of the shift from hosted web applications to cloud based ones. The interest in WOA/SOA (not implementations, but architectural styles) will continue to grow for foreseeable future.

Wednesday Oct 29, 2008

Oslo: Remodeling Windows!!!

Microsoft did a great job in posting many recording of PDC sessions on online in channel9 quickly. The session titled, "A lap around Oslo", by Douglas Purdy and Vijaye Raji provided a very good overview of the Oslo platform. I was able to watch several other sessions on Oslo also. This gives me a much different perspective of Oslo than I was able to learn last night from playing with the Oslo SDK. OK, I understand the key point of Oslo now.

    Oslo is the new direction that Microsoft has taken to replace the existing file system + registry based OS with a model driven architecture powered by Oslo.

With Oslo, Microsoft can make all applications to adopt the model driven architecture. Basically everything stored on PC today can be modeled, e.g.,

  • user data such as office documents, emails, images, and videos;
  • program files including dlls, exe, and registry data;
  • system configurations, logs, and even bios.

Wow! the windows OS and its applications can be completely remodeled. This will be a very exciting thing to watch.

Tuesday Oct 28, 2008

Oslo modeling platform: my first impressions...

Microsoft finally released to public its long-awaited Oslo modeling platform that was announced more than a year ago. There were a lot of press coverage on Oslo leading to the PDC this year. After reading Martin Fowler's somewhat postive review of Oslo, I decided to give it a test drive.

I downloaded the Oslo SDK from MSDN. The SDK contains two of the three Oslo components: M (the modeling language) and Oslo Repository, but missing the visual model editor, Quadrant. Follow instructions shown in videos on the Oslo developer site, I was able to create several simple models and store them into the repository. The SDK includes an implementation of Business Process Modeling Notation (BPMN) model. The BPMN model shows how typical DSL models can be implemented in M. The implementation style is similar to what one would do using other schema languages, e.g., XSD or RELAX NG.

M provides features not available in typical XML schema languages. For example, M supports import/export of types and allows functions be defined to compute values. M reminds me of a couple Object-Oriented DataBase (OODB) schema languages. In fact, Oslo is tightly coupled with the SQL server. M models are compiled into T-SQL code that can be run on the SQL server. The following is an example of an addresses model implemented in M:

module CV
    type Address 
        Id : Integer32 = AutoNumber();
        Street : Text;
        Zip : Integer32; 
    } where identity(Id);
    Addresses : Address\*;  // a collection, i.e., table
    MatchingZips(TargetZip : Integer32)  // a function
      from a in Addresses 
      where a.Zip == TargetZip 
      select a

and the corresponding compiled T-SQL code:

create table [CV].[Addresses]
  [Id] int not null identity,
  [Street] nvarchar(max) not null,
  [Zip] int not null,
  constraint [PK_Addresses] primary key clustered ([Id])

create function [CV].[MatchingZips]
  @TargetZip as int
returns table
  as return (
    select [a].[Id] as [Id], [a].[Street] as [Street], [a].[Zip] as [Zip]
    from [CV].[Addresses] as [a]
    where [a].[Zip] = @TargetZip

After few hours, my first impression of Oslo is not as warm as Martin's. I found that M and Oslo repository work without problems. The idea of translating models into SQL is interesting. There are also other interesting features in Oslo, but nothing that can be considered as great innovations in modeling yet. Overall, I think Oslo can become a solid product... and will likely revisit it again later.

Tuesday Sep 02, 2008

Google Chrome, a solid foundation for modern web applications

Another great project!! Google released the long awaited Google browser, Chrome, in open source today. Officially, Google said Chrome is not a web operating system, but a solid foundation for modern web applications.

A solid foundation for web applications

However, the fact is that Chrome+Gears is very close to a virtual operating system for Google software, i.e., web applications. The combination makes the underlying client-side OS transparent allowing the same Google software to be run on many platforms including phones and PCs. The resulting user experience is very much like having a ubiquitous Google OS where:

  • Google software can be installed and run on many devices including phones and PCs
  • Google software can be pre-loaded on devices and PCs to boost market share
  • Google software can run both on-line and off-line using cached data
  • Google software can have desktop shortcuts and run in its own window like regular applications
  • Google software can use platform specific desktop APIs to, e.g., indexing files on windows
  • Google software are available for search, chat, email, calendar, database, office applications, enterprise applications, shopping, read news, blogs, games, and more...

The sad thing is that while writing this blog. It reminds me much of the same feeling I had when seeing another browser product for the first time in 1995 named HotJava. One question I asked to the Sun engineer did the demo at that time was that can javascript be compiled and run on the Java VM? He replied "No!". Now, whether V8 can run Java bytecode or not is probably not an important question anymore... (Note: It is interesting to find out that the lead of HotSpot created V8, see page 13 of the Google Chrome comic book.)

Tuesday Aug 26, 2008

Ubiquity is here...

Great project!! Aza Raskin of Mozilla Labs announced the initial prototype of Ubiquity today. I have been playing with it most of the day. It is useful and fun to use.

Sunday Jun 08, 2008

Google Inside Web Apps: How to build thousands more of them..

Step 1: Collect more data into Bigtable...

Google won the web search war. After that Google turns its attention to web users trying to pull every bits of information from them into the Bigtable. Google has developed few dozens of data collection web applications, e.g., Gmail, Google Docs, Google Maps, Google Code, Google Groups, Google Analytics, Google Talk, Google Base, and Google Health. For several years, I wonder what will Google do with all the data collected in the Bigtable?

Step 2: Train more Bigtable programmers

After playing with Google App Engine for some time, I now believe that the main objective of App Engine was not to compete with companies like Amazon (S3/EC2) for the market share in cloud computing. Google already has one of the best cloud computing infrastructure. What is missing for Google? ...more Bigtable programmers!!! App Engine is a massive training project developed by Google to train Bigtable programmers. The gate was opened at Google I/O last month. All 150,000 on the waiting list are accepted into the App Engine program.

However, there is a big surprised waiting for these new recruits. Almost everything one has learned so far about web application development will not be applicable in App Engine. For example, you will find no use for knowledge on:

  • Operating Systems: Windows, Linux, Solaris, Mac OS, ...
  • Web/App servers: Tomcat, IIS, WebLogic, Websphere, JBoss, ...
  • Web/App Frameworks: Spring, Rails,, ...
  • Databases: Oracle, MySQL, SQL server, DB2, ...
  • Languages: Java, C#, PHP, VB, Ruby, Perl, ...

Like most people, I have to learn a new language, Python, and a new application framework, Django, to program against a new datastore, Bigtable. The only piece of prior knowledge that I found useful was from work done using AltaVista/Lucene/Nutch at a Web 1.0 search start up many years ago. Several techniques used then are applicable in solving Bigtable programming problems.

Step 3: Build thousands more Google Inside web apps

Google may be able to develop a hundred more Google Inside web applications on its own. However, to do more than that Google will have to rely on outside resources. A possible solution is to allow the next generation of Bigtable programmers to build web apps accessing Google data in the Bigtable directly. These apps, being inside Google, will have significant advantages over apps running outside that access Bigtable data via Google web APIs. With the ability to do server-side mashup inside Google, one can archive things that are not possible today's with client-side mashup technology. Thousands more new Google Inside web apps will be created to offer us more features than we can think of and, most importantly, to generate more profits for Google.

Thursday May 22, 2008

Data Portability: not a technical, but a political group?

It is never clear to me what does the Data Portability project do. I have visited their web site and read their wiki pages several times since late last year, but was never able to find anything concrete there. However, big name companies are joining the project one after another, e.g., Google, Facebook, LinkedIn, Twitter, Digg, and Microsoft

A blog by Eran Hammer-Lahav, The Big Pink Elephant of DataPortability, finally provides me with a good picture of what is going on here. The Data Portability project is just a user group for users of open standards like: OpenID, OAuth, RSS, and Microformats. The problem here is that Data Portability is trying to position itself in order to influence the future design of open standards. However, these open standard communities do not want to be influenced nor controlled by yet another group. Eran stated in the blog:

"... members of the OAuth, OpenID, and Microformats communities tried to convince the primary leaders of the DataPortability group to focus only on marketing and public relations. Everything else must be out of scope, ..."

So, the Data Portability project does not own anything but is trying to govern open standards developed by other communities. That explains why I was never able to find any technical information on its site. However, the Data Portability problem may be a political not technical one.

Sunday May 18, 2008

A dialog: Facebook and Google discussing Friend Connect

There are so much discussions on this issue. However, the most interesting exchange I found is the dialog between Facebook and Google published on their blog sites. In an announcement posted in Facebook developers blog, Charlie Cheever said the reason for blocking Google Friend Connect is:

"We’ve found that it redistributes user information from Facebook to other developers without users’ knowledge, ... is a violation of our Terms of Service."

This weekend, Google responded in a blog posted on Google Code blog, How Google Friend Connect Works. In the blog, Peter Chane, Sami Shalabi, and Mussie Shore provides a step-by-step example of how Friend Connect work with Facebook data. It explains that the only data redistributed is the URL of user public Facebook photo with user consent:

"3) The only user information that we pass from Facebook to third-party applications is the URL of the user's public photo."

This is a very interesting dialog between them. Will Facebook continue this dialog with a new blog next week?

Thursday May 15, 2008

Facebook disconnects Google Friend Connect

Facebook also made a swift response to Google's Friend Connect. Today (5/15), in a facebook developers blog, Charlie Cheever said:

"we’ve had to suspend Friend Connect’s access to Facebook user information until it comes into compliance."

The reason cited by Charlie is that:

"We’ve found that it redistributes user information from Facebook to other developers without users’ knowledge, ... is a violation of our Terms of Service."

Since Google did not make any immediate reply, I think they are trying to resolve this problem with Facebook behind the scene. We will know more in the next few days. Scobleizer has a blog on this that is worth reading.

For Google, the success of Friend Connect will depend more on the participation of its key OpenSocial partners, MySpace and Yahoo, than that from Facebook. Friend Connect needs a federation of 2 or 3 major social networks to make a difference. If Google and MySpace can work together to merge MySpace's "Data Availability" and Google's Friend Connect into a single project, then it will attract Yahoo's participation and will make Facebook's "Facebook Connect" a minor player in the federation space.

Wednesday May 14, 2008

Federated Social IDs: Google ID + Yahoo ID > OpenID

Zoho got a lot more new users today. The company announced a new feature to allow Login to Zoho with your Google or Yahoo! Accounts. This is a truly brilliant solution to attract new users whom may not be interested in leaving Google Docs to creat yet another account in Zoho. Now all these users can access Zoho using their Google/Yahoo ID.

zoho login

The most interesting thing about this is that Zoho's solution was made possible by Google's own Account Authentication API that allows third party web applications to request user authentication in order to access services protected by a user's Google account. But in this case the protected service is Zoho office.

This is a very practical solution for the multiple ID problem that other solutions, e.g., OpenID, are trying to address. Behind the scene, the process flow is very similar between that of OpenID and Google/Yahoo's. In this case, Google and Yahoo act as the ID provider to authenticate a user. The only key missing feature is the support for Single Sign-On (SSO). Hopefully, Google, Yahoo, and others can work together to develop a solution for SSO and added it to a popular standard like OpenSocial.

IMO, identity solutions like OpenID, CardSpace, and others are too complicated for average users comparing to the old Google/Yahoo/Microsoft/AOL ID. Why can't we use them to buy tickets, print pictures, and download music on the internet?

Friend Connect quickly with Ning

Ning made a swift response to Google's Friend Connect: "Yes!"

Marc Andreessen announced in his blog today that Ning will be rolling out support for Friend Connect in Jun. He plan to provide bi-directional support between Ning and Friend Connect:

  • making every Ning network available thru Friend Connect;
  • making Friend Connect available to every Ning network.

An excellent response by Ning. I will be interested seeing their offering next month. BTW, a recruiter called me today looking for OpenSocial programmers. Looks like OpenSocial programmers are in high demand now.




« July 2016