Wednesday, September 6, 2006

Web services and utility computing meet at Amazon

Amazon web services has published more and more items based on the ideas of virtualization and utility computing. It seems that Amazon will virtualize every piece of IT and make them as utility services: from storage (Amazon Simple Storage Service (Amazon S3)) to messaging bus (Amazon Simple Queue Service (Amazon SQS)) to application hosting (Amazon Elastic Compute Cloud (Amazon EC2)). Even the human resource is virtulized into Amazon Mechanical Turk as "Artificial Artificial Intelligence". The idea is really interesting and crazy. I find reward prices for most jobs in the "Artificial Artificial Intelligence" machine are ridiculous. It is just a test now, but may become popular in the future because of divers human resource markets in the world.

The concepts of virtulization and utility computing have been around for couples of years, Amazon does a great job to realize them in B2C market.

Wednesday, August 30, 2006

Spell check for text inputs in Firefox

For those who always type but not write, typing text without spell checking is really painful. Most editors support spell checking. Some web applications like Gmail also support that. There are lots of text input areas on web pages needing this feature. For Firefox, you can use SpellBound. The old versions of SpellBound can be found at http://spellbound.sourceforge.net. You can read this post at MozillaZine for the development version for Firefox 1.5.0. For IE, you may look at ieSpell.

Tuesday, August 29, 2006

More debates coming about REST and WS

In a talk between Mark Baker and Stefan Tilkov published on InfoQ titled "Give it a REST: Mark Baker on Web Services", Mark Baker says that

Web services build upon HTTP, but they don't build upon the Web. The Web uses HTTP as an application contract which enables the loosely coupled exchange of documents between applications, while Web services uses HTTP as a bit pipe - as a transport protocol. Doing the latter instead of former means that you're starting from scratch, and not taking advantage of the existing network effects in the Web.


This is new for me about the difference between the web and another "web" in web services. I consider the web to be a space of information, and the end applications of web so far are agents(web browsers) with humans behind them. So how about the space of services? I imagine most agents(services) in that space are autonomous, and they are not directly controlled by the human users. In the case that most current services, e.g. google.com, amazon.com, are targeting human customers, there is no big difference between the space of information and the space of services. However, I suspect that there will be in the future.

I agree with his point that SOAP is essentially a generic XML envelope. However, I cannot see what to replace the roles of WSDL and UDDI for service description and discovery. My opinions have a root in the study of agent-based software systems.

His suggestion about starting REST is

It's technically possible, but from what I've seen of Web services toolkits (even those that claim to "support REST"), there's a very good chance that it'll be more trouble than it's worth. My advice would be to start with mature client and server Web frameworks in your language of choice, and to read up on what others are doing with REST/POX/XML-HTTP style services as replacements for traditional "Web services". Then apply that to the simplest possible problem you have, and once you've conquered that, move on to more complex problems.


Again, the assumption of this method is that services are just part of the web.

Friday, August 18, 2006

The so-called "computer revolution" and "information revolution"

Alan Kay, the recipient of 2003 Turing Award for his contributions to object-oriented programming languages and personal computing, points out that "the computer revolution" has not happened yet :
The printing press was invented in the middle of the 15th century, yet it took 100 years before a book was considered dangerous enough to be banned. 150 years before science was invented, almost 200 years before a new kind of political essay was invented…The commercial computer is now about 50 years old and is still imitating the paper culture… we could claim that the computer revolution hasn’t even started.


Although it may not be a revolution from the current aspect, the computer is changing our life to what we cannot even imagine. Among all the computer-related technology development, the emergence of Internet is most significant. The use of Email and World Wide Web (WWW, or Web) boosts the popularity of Internet, though they are not the original design goals of Internet. The web has changed so many aspects of human life such as mass media, business, entertainment, science, and politics. It even introduces new elements to languages and cultures.

It is Nick's and Joe's articles that remind me to post part of my recent writing here.

You can watch Alan Kay's keynote at OOPSLA 1997 titled "The Computer Revolution hasn't happend yet."

Thursday, June 29, 2006

Testing, modeling, and simulation of large-scale service-oriented systems

When many enterprises transfer to web services, large-scale intra- and inter-organization service-oriented systems are emerging. Compared to software systems such as stand-alone desktop applications and multi-tier web applications, we almost have no experience about testing large-scale service-oriented systems. A new level of complexity arises from the scale, open, and dynamics of such distributed systems.

When a service-oriented application is deployed, we expect that most aspects of its behavior are by design. However, when these applications are integrated to form large-scale systems, we have no confidence about how the whole system will work based on the knowledge of each application that could be very limited if the integrations are inter-organization. Service-oriented systems are open: A new application following the service contracts can join in and leave the system anytime. The dynamics of these systems are not just reflected on their scales, but also the structures. An approach to elicit knowledge for designing and managing such systems is modeling and simulation.

Frank Cohen writes an excellent article on testing SOA . The purpose of testing is more focused on performance and scalability rather than functionality. Werner Vogels has two posts on scalability and performance that help to understand these terms in the context of distributed systems.

Thursday, April 13, 2006

I'm a Mandarin!?

You're an intellectual, and you've worked hard to get where you are now. You're a strong believer in education, and you think many of the world's problems could be solved if people were more informed and more rational. You have no tolerance for sloppy or lazy thinking. It frustrates you when people who are ignorant or dishonest rise to positions of power. You believe that people can make a difference in the world, and you're determined to try.

Talent: 51%
Lifer: 33%
Mandarin: 59%

Take the Talent, Lifer, or Mandarin quiz.

Thursday, April 6, 2006

The best text editor

Many programmers have experiences of using UltraEdit as the code editor, even if they have some complicated IDE available. However, UE is a shareware ... You may want to try something that you do not need to care about expiration, then PSPad is the best text editor for you. I would like to say that PSPad suplies all the features I need. You can find an interesting artical on various editors here.